From ef6528b3728682f1d63f63c68a60fd5cfd410400 Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Sun, 25 Mar 2012 22:21:17 +0200 Subject: [PATCH 01/98] Changes to compile on Centos5.6 --- src/Mod/Machining_Distortion/ApplyingBC_IC.py | 7 +- src/Mod/Machining_Distortion/CMakeLists.txt | 6 +- src/Mod/Machining_Distortion/Init.py | 0 src/Mod/Machining_Distortion/InitGui.py | 0 .../MachiningDistortionCommands.py | 0 src/Mod/Machining_Distortion/Parameter.py | 0 src/Mod/Machining_Distortion/Parameter.ui | 0 .../Resources/machdist_resources.qrc | 0 .../Resources/ui/userprefs-base.ui | 0 .../User_Interface_Mach_Dist.py | 0 .../User_Interface_Mach_Dist.ui | 0 .../calculix_postprocess.py | 0 src/Mod/Machining_Distortion/mach_dist_gui.py | 195 ++++++++++-------- src/Mod/Machining_Distortion/machdist_rc.py | 0 src/Mod/Machining_Distortion/postprocess.py | 0 src/Mod/Machining_Distortion/postprocess.ui | 0 .../Machining_Distortion/postprocess_gui.py | 0 17 files changed, 121 insertions(+), 87 deletions(-) mode change 100644 => 100755 src/Mod/Machining_Distortion/ApplyingBC_IC.py mode change 100644 => 100755 src/Mod/Machining_Distortion/CMakeLists.txt mode change 100644 => 100755 src/Mod/Machining_Distortion/Init.py mode change 100644 => 100755 src/Mod/Machining_Distortion/InitGui.py mode change 100644 => 100755 src/Mod/Machining_Distortion/MachiningDistortionCommands.py mode change 100644 => 100755 src/Mod/Machining_Distortion/Parameter.py mode change 100644 => 100755 src/Mod/Machining_Distortion/Parameter.ui mode change 100644 => 100755 src/Mod/Machining_Distortion/Resources/machdist_resources.qrc mode change 100644 => 100755 src/Mod/Machining_Distortion/Resources/ui/userprefs-base.ui mode change 100644 => 100755 src/Mod/Machining_Distortion/User_Interface_Mach_Dist.py mode change 100644 => 100755 src/Mod/Machining_Distortion/User_Interface_Mach_Dist.ui mode change 100644 => 100755 src/Mod/Machining_Distortion/calculix_postprocess.py mode change 100644 => 100755 src/Mod/Machining_Distortion/mach_dist_gui.py mode change 100644 => 100755 src/Mod/Machining_Distortion/machdist_rc.py mode change 100644 => 100755 src/Mod/Machining_Distortion/postprocess.py mode change 100644 => 100755 src/Mod/Machining_Distortion/postprocess.ui mode change 100644 => 100755 src/Mod/Machining_Distortion/postprocess_gui.py diff --git a/src/Mod/Machining_Distortion/ApplyingBC_IC.py b/src/Mod/Machining_Distortion/ApplyingBC_IC.py old mode 100644 new mode 100755 index 5006fd9f7..ffefaf1f9 --- a/src/Mod/Machining_Distortion/ApplyingBC_IC.py +++ b/src/Mod/Machining_Distortion/ApplyingBC_IC.py @@ -61,14 +61,15 @@ def ApplyingBC_IC(Casedir,YoungModulus,PoissonCoeff,OUTER_GRID_No1,OUTER_GRID_No # AC_file.close() os.chdir(str(Casedir)) + fnull = open(os.devnull, 'w') if os.name != "posix": process = subprocess.Popen("type geometry_fe_input.inp Applied_Conditions.txt> final_fe_input.inp",shell=True) process.wait() process = subprocess.Popen("del /Q geometry_fe_input.inp",shell=True) process.wait() else: - CommandLine = "cat Applied_Conditions.txt >> geometry_fe_input.inp" - - + commandline = "cat Applied_Conditions.txt >> geometry_fe_input.inp" + result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) # + fnull.close() return diff --git a/src/Mod/Machining_Distortion/CMakeLists.txt b/src/Mod/Machining_Distortion/CMakeLists.txt old mode 100644 new mode 100755 index 6bf855e77..5dc518f21 --- a/src/Mod/Machining_Distortion/CMakeLists.txt +++ b/src/Mod/Machining_Distortion/CMakeLists.txt @@ -4,6 +4,8 @@ SET(MachDist_SRCS InitGui.py ApplyingBC_IC.py mach_dist_gui.py + machdist_rc.py + Parameter.py postprocess.py postprocess_gui.py calculix_postprocess.py @@ -15,11 +17,11 @@ SET(MachDist_SRCS SOURCE_GROUP("" FILES ${MachDist_SRCS}) -ADD_CUSTOM_TARGET( ALL +ADD_CUSTOM_TARGET(Machining_Distortion ALL SOURCES ${MachDist_SRCS} ) -fc_copy_sources(MachDistortion "${CMAKE_BINARY_DIR}/Mod/Machining_Distortion" ${MachDist_SRCS}) +fc_copy_sources(Machining_Distortion "${CMAKE_BINARY_DIR}/Mod/Machining_Distortion" ${MachDist_SRCS}) INSTALL( diff --git a/src/Mod/Machining_Distortion/Init.py b/src/Mod/Machining_Distortion/Init.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/InitGui.py b/src/Mod/Machining_Distortion/InitGui.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/MachiningDistortionCommands.py b/src/Mod/Machining_Distortion/MachiningDistortionCommands.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/Parameter.py b/src/Mod/Machining_Distortion/Parameter.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/Parameter.ui b/src/Mod/Machining_Distortion/Parameter.ui old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/Resources/machdist_resources.qrc b/src/Mod/Machining_Distortion/Resources/machdist_resources.qrc old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/Resources/ui/userprefs-base.ui b/src/Mod/Machining_Distortion/Resources/ui/userprefs-base.ui old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/User_Interface_Mach_Dist.py b/src/Mod/Machining_Distortion/User_Interface_Mach_Dist.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/User_Interface_Mach_Dist.ui b/src/Mod/Machining_Distortion/User_Interface_Mach_Dist.ui old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/calculix_postprocess.py b/src/Mod/Machining_Distortion/calculix_postprocess.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/mach_dist_gui.py b/src/Mod/Machining_Distortion/mach_dist_gui.py old mode 100644 new mode 100755 index 61945cafe..6edc6e906 --- a/src/Mod/Machining_Distortion/mach_dist_gui.py +++ b/src/Mod/Machining_Distortion/mach_dist_gui.py @@ -14,13 +14,13 @@ from ApplyingBC_IC import ApplyingBC_IC from calculix_postprocess import calculix_postprocess import FreeCAD,Fem,Part - +homepath = os.path.expanduser("~") class MyForm(QtGui.QDialog,Ui_dialog): def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.setupUi(self) - os.chdir("c:/") + os.chdir(homepath) #Define some global variables self.filename = QtCore.QString("") self.dirname = QtCore.QString("") @@ -188,14 +188,17 @@ class MyForm(QtGui.QDialog,Ui_dialog): self.button_select_file.setEnabled(False) self.button_select_output.setEnabled(False) self.button_start_calculation.setEnabled(False) - os.chdir("/") + os.chdir(homepath) ##Get values from the GUI if ( os.path.exists(str(self.dirname)) ): - os.chdir("c:/") + os.chdir(homepath) shutil.rmtree(str(self.dirname)) os.mkdir(str(self.dirname)) batch = open(str(self.dirname + "/" + "lcmt_CALCULIX_Calculation_batch.bat"),'wb') + batch.write("#!/bin/bash\n") + batch.write("export CCX_NPROC=4\n") + #Tell calculixs solver spooles how many cpus to use #batch.write("export CCX_NPROC=" + str(self.params.GetInt("NumberCPUs")) + "\n") #If we have a tcsh @@ -233,6 +236,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): ltc6 = self.JobTable.item(job,27).data(QtCore.Qt.DisplayRole).toDouble()[0] plate_thickness = self.JobTable.item(job,28).data(QtCore.Qt.DisplayRole).toDouble()[0] filename_without_suffix = self.JobTable.item(job,0).text().split("/").takeLast().split(".")[0] + print current_file_name meshobject = Fem.read(str(current_file_name)) #Perform PCA Fem.SMESH_PCA(meshobject) @@ -267,9 +271,11 @@ class MyForm(QtGui.QDialog,Ui_dialog): #Now lets check if the part is still in the billet due to the rotation. If not, we directly skip to the next rotation value if(Fem.checkBB(meshobject,translation,plate_thickness)): print "Too heavy rotations" + print str(plate_thickness) l= l + z_rot_intervall continue print "it seems that nothing changed" + print str(plate_thickness) #Use the placedment as optional argument for the write() method #translated_mesh.setTransform(translation) Case_Dir = str(self.dirname) + "/" + filename_without_suffix + "/" + filename_without_suffix +\ @@ -283,7 +289,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): os.mkdir(str(Case_Dir)) - os.chdir("c:/") + os.chdir(homepath) #Lets generate a sigini Input Deck for the calculix user subroutine sigini_input = open (str(Case_Dir + "/" + "sigini_input.txt"),'wb') @@ -309,103 +315,128 @@ class MyForm(QtGui.QDialog,Ui_dialog): meshobject.writeABAQUS(str(Case_Dir + "/" + "geometry_fe_input.inp"), translation) ApplyingBC_IC(Case_Dir, young_modulus,poisson_ratio,node_numbers[0],node_numbers[1],node_numbers[2]) #Now lets generate a LSF Job-File to be used by the Airbus Clusters - lsf_input = open (str(Case_Dir + "/" + "job.lsf"),"wb") - lsf_input.write("#!/bin/bash\n") - lsf_input.write("export CCX_NPROC=" + str(self.params.GetInt("NumberCPUs")) + "\n") - lsf_input.write("#BSUB -n "+ str(self.params.GetInt("NumberCPUs")) + "\n") - lsf_input.write("#BSUB -W 10:00\n") - lsf_input.write("#BSUB -o %J.out\n") - lsf_input.write("#BSUB -e %J.err\n") - lsf_input.write("#BSUB -J calculix\n") - lsf_input.write("#BSUB -q loc_all_hiio\n") - lsf_input.write(str("datadir=\"" + self.params.GetString("Linux Home Path") + "/" + self.dirname[str(self.dirname).rfind("/")+1:] + "/" + filename_without_suffix + "/" + filename_without_suffix + - "_"+"x_rot"+ str(int(j))+ - "_"+"y_rot"+ str(int(k))+ - "_"+"z_rot"+ str(int(l))+ - "_"+"z_l"+ str(int(i)) + "\"\n")) - lsf_input.write("cd $datadir\n") - lsf_input.write(self.params.GetString("Solver Link") + " -i final_fe_input\n") - lsf_input.close() - - batch.write(str("cd \"" + self.params.GetString("Linux Home Path") + "/" + self.dirname[str(self.dirname).rfind("/")+1:] + "/" + filename_without_suffix + "/" + filename_without_suffix + - "_"+"x_rot"+ str(int(j))+ - "_"+"y_rot"+ str(int(k))+ - "_"+"z_rot"+ str(int(l))+ - "_"+"z_l"+ str(int(i)) + "\"\n")) - batch.write("job.lsf\n") + #lsf_input = open (str(Case_Dir + "/" + "job.lsf"),"wb") + #lsf_input.write("#!/bin/bash\n") + #lsf_input.write("export CCX_NPROC=" + str(self.params.GetInt("NumberCPUs")) + "\n") + #lsf_input.write("#BSUB -n "+ str(self.params.GetInt("NumberCPUs")) + "\n") + #lsf_input.write("#BSUB -W 10:00\n") + #lsf_input.write("#BSUB -o %J.out\n") + #lsf_input.write("#BSUB -e %J.err\n") + #lsf_input.write("#BSUB -J calculix\n") + #lsf_input.write("#BSUB -q loc_dev_par\n") + #lsf_input.write(str("datadir=\"" + homepath + "/" + self.dirname[str(self.dirname).rfind("/")+1:] + "/" + filename_without_suffix + "/" + filename_without_suffix + + #"_"+"x_rot"+ str(int(j))+ + #"_"+"y_rot"+ str(int(k))+ + #"_"+"z_rot"+ str(int(l))+ + #"_"+"z_l"+ str(int(i)) + "\"\n")) + #lsf_input.write("cd $datadir\n") + #lsf_input.write("ccx -i geometry_fe_input\n") + #lsf_input.close() + batch.write("cd \"" + str(Case_Dir) + "\"\n") + batch.write("ccx -i geometry_fe_input\n") l= l + z_rot_intervall k = k + y_rot_intervall j = j + x_rot_intervall i = i+ z_offset_intervall - print "Ale Schleifen beendet" - batch.write("cd \"" + self.params.GetString("Linux Home Path") + "\"\n") - batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"sigini_output.txt\" -exec rm -f {} \;\n") - batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.out\" -exec rm -f {} \;\n") - batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.err\" -exec rm -f {} \;\n") - batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.dat\" -exec rm -f {} \;\n") - batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.sta\" -exec rm -f {} \;\n") - batch.write("tar cf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + ".tar\" \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n")) - batch.write("rm -rf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n") + batch.write("cd \"" + homepath + "\"\n") + #batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"sigini_output.txt\" -exec rm -f {} \;\n") + #batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.out\" -exec rm -f {} \;\n") + #batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.err\" -exec rm -f {} \;\n") + #batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.dat\" -exec rm -f {} \;\n") + #batch.write("find \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\" -name \"*.sta\" -exec rm -f {} \;\n") + #batch.write("tar cf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + ".tar\" \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n")) + #batch.write("rm -rf \"" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "\"\n") batch.close() - os.chdir("c:/") + os.chdir(homepath) fnull = open(os.devnull, 'w') - #Generate the full zip name: - zipname = tempfile.gettempdir() + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip" - #Check if the zip file already exists. If yes, then we have to remove it - if os.path.exists(zipname): - try: - os.remove(zipname) - except Exception,e: - print e - - #Zip the whole directory structure now and save the zip file in the temp folder for further processing - commandline = FreeCAD.getHomePath() + "bin/7z a -tzip -mx=0 " + "\"" + zipname + "\" " + "\"" + str(self.dirname) + "\"" - result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) - #somehow we have to check for a false return code! - if not result: - shutil.rmtree(str(self.dirname)) - - #Now send the zip file to the server for calculation - commandline = FreeCAD.getHomePath() + "bin/pscp -r -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ - "\"" + zipname + "\" " + self.params.GetString("Servername") + ":" + self.params.GetString("Linux Home Path") - result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) - #Now unzip, change into the directory and start the batch file - commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ - self.params.GetString("Servername") + " unzip -o \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\"" + # #Generate the full tar name: + # tarname = homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar" + # #Check if the tar file already exists. If yes, then we have to remove it + # if os.path.exists(tarname): + # try: + # os.remove(tarname) + # except Exception,e: + # print e + # + # #tar the whole directory structure now and save the zip file in the temp folder for further processing + # commandline = "tar cf \"" + tarname + "\" \"" + str(self.dirname) + "\" \n" + # print commandline + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # #somehow we have to check for a false return code! + # if not result: + # shutil.rmtree(str(self.dirname)) + # + # #Now send the zip file to the server for calculation + # commandline = "scp -r \"" + tarname + "\" " + self.params.GetString("Servername") + ":" + homepath + # print commandline + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # + # #Now untar, change into the directory and start the batch file + # commandline = "ssh " + self.params.GetString("Servername") + " tar -xf \"" + tarname + "\"" + # print commandline + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # + # commandline = "ssh " + self.params.GetString("Servername") + " chmod +x -R \"" + homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\"" + # print commandline + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # + # #Now we copy the batch file one level ahead as otherwise we cannot delete the calculation folder + # commandline = "ssh " + self.params.GetString("Servername") + " mv \"" + homepath + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "/lcmt_CALCULIX_Calculation_batch.bat\" " + homepath + # print commandline + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # + #Set proper rights on the batch file + commandline = "chmod +x \"" + str(self.dirname) + "/lcmt_CALCULIX_Calculation_batch.bat\"" print commandline result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) - commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ - self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\"" - print commandline - result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) - commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ - self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\"" - print commandline - result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) - #Now we copy the batch file one level ahead as otherwise we cannot delete the calculation folder - commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ - self.params.GetString("Servername") + " mv \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "/lcmt_CALCULIX_Calculation_batch.bat\" " + self.params.GetString("Linux Home Path") - print commandline + #Start the Batch-File + commandline = "\"" + str(self.dirname) + "/lcmt_CALCULIX_Calculation_batch.bat\"" + print commandline result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + # + + + #Now send the zip file to the server for calculation + # commandline = FreeCAD.getHomePath() + "bin/pscp -r -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # "\"" + zipname + "\" " + self.params.GetString("Servername") + ":" + self.params.GetString("Linux Home Path") + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # #Now unzip, change into the directory and start the batch file + # commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # self.params.GetString("Servername") + " unzip -o \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\"" + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\"" + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # self.params.GetString("Servername") + " chmod +x -R \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "\"" + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # #Now we copy the batch file one level ahead as otherwise we cannot delete the calculation folder + # commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # self.params.GetString("Servername") + " mv \"" + self.params.GetString("Linux Home Path") + "/" + str(self.dirname)[str(self.dirname).rfind("/")+1:] + "/lcmt_CALCULIX_Calculation_batch.bat\" " + self.params.GetString("Linux Home Path") + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) + # #Start the Batch-File + # commandline = FreeCAD.getHomePath() + "bin/plink -batch -l "+ self.params.GetString("Linux User Name") + " -pw " + self.params.GetString("Linux Password") + " " + \ + # self.params.GetString("Servername") + " " + self.params.GetString("Linux Home Path") + "lcmt_CALCULIX_Calculation_batch.bat" + # result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "plink -batch -l UN -pw PW dynabox \'/home/rmjzettl/" + str(self.dirname[str(self.dirname).rfind("/")+1:] + "/") + "lcmt_CALCULIX_Calculation_batch.bat\'" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "pscp -r -l UN -pw PW dynabox:\"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\" " + str(self.dirname)[0:3] - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "plink -batch -l UN -pw PW dynabox rm -f \"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\"" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "plink -batch -l UN -pw PW dynabox rm -f \"/home/rmjzettl/"+ str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\"" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "7z x \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\" -o\"" + str(self.dirname[0:str(self.dirname).rfind("/")]) + "\"" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "del /Q \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".tar\"" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) #commandline = "del /Q \"" + str(self.dirname)[0:3] + str(self.dirname)[str(self.dirname).rfind("/")+1:] + ".zip\"" - #result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) + #result = subprocess.call(commandline, shell = False, stdout = fnull, stderr = fnull) fnull.close() #Reset the GUI - os.chdir("c:/") + os.chdir(homepath) #Reset the table to be fully empty i = self.JobTable.rowCount() while i > 0: diff --git a/src/Mod/Machining_Distortion/machdist_rc.py b/src/Mod/Machining_Distortion/machdist_rc.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/postprocess.py b/src/Mod/Machining_Distortion/postprocess.py old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/postprocess.ui b/src/Mod/Machining_Distortion/postprocess.ui old mode 100644 new mode 100755 diff --git a/src/Mod/Machining_Distortion/postprocess_gui.py b/src/Mod/Machining_Distortion/postprocess_gui.py old mode 100644 new mode 100755 From ec1b0d8720613cf6c89ca732f43d4aedd7e072b8 Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Mon, 26 Mar 2012 10:06:16 +0200 Subject: [PATCH 02/98] Changes on Machining Distortion to account for Centos 5.6 compilation --- src/Mod/Fem/App/AppFem.cpp | 0 src/Mod/Fem/App/AppFemPy.cpp | 81 +++++++++++++++++- src/Mod/Fem/App/CMakeLists.txt | 0 src/Mod/Fem/App/FemMesh.cpp | 65 ++++++++++++-- src/Mod/Fem/App/FemMesh.h | 0 src/Mod/Fem/App/FemMeshObject.cpp | 0 src/Mod/Fem/App/FemMeshObject.h | 0 src/Mod/Fem/App/FemMeshProperty.cpp | 0 src/Mod/Fem/App/FemMeshProperty.h | 0 src/Mod/Fem/App/FemMeshPy.xml | 0 src/Mod/Fem/App/FemMeshPyImp.cpp | 0 src/Mod/Fem/App/HypothesisPy.cpp | 0 src/Mod/Fem/App/HypothesisPy.h | 0 src/Mod/Fem/App/Makefile.am | 0 src/Mod/Fem/App/PreCompiled.cpp | 0 src/Mod/Fem/App/PreCompiled.h | 0 src/Mod/Fem/CMakeLists.txt | 0 src/Mod/Fem/FemExample.py | 0 src/Mod/Fem/Gui/AppFemGui.cpp | 0 src/Mod/Fem/Gui/AppFemGuiPy.cpp | 0 src/Mod/Fem/Gui/CMakeLists.txt | 0 src/Mod/Fem/Gui/Command.cpp | 0 src/Mod/Fem/Gui/Makefile.am | 0 src/Mod/Fem/Gui/PreCompiled.cpp | 0 src/Mod/Fem/Gui/PreCompiled.h | 0 src/Mod/Fem/Gui/Resources/Fem.qrc | 0 src/Mod/Fem/Gui/Resources/Makefile.am | 0 src/Mod/Fem/Gui/Resources/UpdateResources.bat | 0 .../Fem/Gui/Resources/icons/Fem_FemMesh.svg | 0 .../Fem/Gui/Resources/translations/Fem_af.qm | Bin .../Fem/Gui/Resources/translations/Fem_af.ts | 0 .../Fem/Gui/Resources/translations/Fem_de.qm | Bin .../Fem/Gui/Resources/translations/Fem_de.ts | 0 .../Fem/Gui/Resources/translations/Fem_es.qm | Bin .../Fem/Gui/Resources/translations/Fem_es.ts | 0 .../Fem/Gui/Resources/translations/Fem_fi.qm | Bin .../Fem/Gui/Resources/translations/Fem_fi.ts | 0 .../Fem/Gui/Resources/translations/Fem_fr.qm | Bin .../Fem/Gui/Resources/translations/Fem_fr.ts | 0 .../Fem/Gui/Resources/translations/Fem_hr.qm | Bin .../Fem/Gui/Resources/translations/Fem_hr.ts | 0 .../Fem/Gui/Resources/translations/Fem_hu.qm | Bin .../Fem/Gui/Resources/translations/Fem_hu.ts | 0 .../Fem/Gui/Resources/translations/Fem_it.qm | Bin .../Fem/Gui/Resources/translations/Fem_it.ts | 0 .../Fem/Gui/Resources/translations/Fem_ja.qm | Bin .../Fem/Gui/Resources/translations/Fem_ja.ts | 0 .../Fem/Gui/Resources/translations/Fem_nl.qm | Bin .../Fem/Gui/Resources/translations/Fem_nl.ts | 0 .../Fem/Gui/Resources/translations/Fem_no.qm | Bin .../Fem/Gui/Resources/translations/Fem_no.ts | 0 .../Fem/Gui/Resources/translations/Fem_pl.qm | Bin .../Fem/Gui/Resources/translations/Fem_pl.ts | 0 .../Fem/Gui/Resources/translations/Fem_pt.qm | Bin .../Fem/Gui/Resources/translations/Fem_pt.ts | 0 .../Fem/Gui/Resources/translations/Fem_ru.qm | Bin .../Fem/Gui/Resources/translations/Fem_ru.ts | 0 .../Fem/Gui/Resources/translations/Fem_se.qm | Bin .../Fem/Gui/Resources/translations/Fem_se.ts | 0 .../Fem/Gui/Resources/translations/Fem_uk.qm | Bin .../Fem/Gui/Resources/translations/Fem_uk.ts | 0 .../Fem/Gui/Resources/translations/Fem_zh.qm | Bin .../Fem/Gui/Resources/translations/Fem_zh.ts | 0 src/Mod/Fem/Gui/ViewProviderFemMesh.cpp | 0 src/Mod/Fem/Gui/ViewProviderFemMesh.h | 0 src/Mod/Fem/Gui/Workbench.cpp | 0 src/Mod/Fem/Gui/Workbench.h | 0 src/Mod/Fem/Init.py | 0 src/Mod/Fem/InitGui.py | 0 src/Mod/Fem/Makefile.am | 0 src/Mod/Fem/convert2TetGen.py | 0 src/Mod/Fem/fem.dox | 0 72 files changed, 138 insertions(+), 8 deletions(-) mode change 100644 => 100755 src/Mod/Fem/App/AppFem.cpp mode change 100644 => 100755 src/Mod/Fem/App/AppFemPy.cpp mode change 100644 => 100755 src/Mod/Fem/App/CMakeLists.txt mode change 100644 => 100755 src/Mod/Fem/App/FemMesh.cpp mode change 100644 => 100755 src/Mod/Fem/App/FemMesh.h mode change 100644 => 100755 src/Mod/Fem/App/FemMeshObject.cpp mode change 100644 => 100755 src/Mod/Fem/App/FemMeshObject.h mode change 100644 => 100755 src/Mod/Fem/App/FemMeshProperty.cpp mode change 100644 => 100755 src/Mod/Fem/App/FemMeshProperty.h mode change 100644 => 100755 src/Mod/Fem/App/FemMeshPy.xml mode change 100644 => 100755 src/Mod/Fem/App/FemMeshPyImp.cpp mode change 100644 => 100755 src/Mod/Fem/App/HypothesisPy.cpp mode change 100644 => 100755 src/Mod/Fem/App/HypothesisPy.h mode change 100644 => 100755 src/Mod/Fem/App/Makefile.am mode change 100644 => 100755 src/Mod/Fem/App/PreCompiled.cpp mode change 100644 => 100755 src/Mod/Fem/App/PreCompiled.h mode change 100644 => 100755 src/Mod/Fem/CMakeLists.txt mode change 100644 => 100755 src/Mod/Fem/FemExample.py mode change 100644 => 100755 src/Mod/Fem/Gui/AppFemGui.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/AppFemGuiPy.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/CMakeLists.txt mode change 100644 => 100755 src/Mod/Fem/Gui/Command.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/Makefile.am mode change 100644 => 100755 src/Mod/Fem/Gui/PreCompiled.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/PreCompiled.h mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/Fem.qrc mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/Makefile.am mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/UpdateResources.bat mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh.svg mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_af.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_af.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_de.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_de.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_es.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_es.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_fi.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_fr.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_hr.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_hu.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_it.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_it.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_ja.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_nl.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_no.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_no.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_pl.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_pt.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_ru.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_se.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_se.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_uk.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_zh.qm mode change 100644 => 100755 src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts mode change 100644 => 100755 src/Mod/Fem/Gui/ViewProviderFemMesh.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/ViewProviderFemMesh.h mode change 100644 => 100755 src/Mod/Fem/Gui/Workbench.cpp mode change 100644 => 100755 src/Mod/Fem/Gui/Workbench.h mode change 100644 => 100755 src/Mod/Fem/Init.py mode change 100644 => 100755 src/Mod/Fem/InitGui.py mode change 100644 => 100755 src/Mod/Fem/Makefile.am mode change 100644 => 100755 src/Mod/Fem/convert2TetGen.py mode change 100644 => 100755 src/Mod/Fem/fem.dox diff --git a/src/Mod/Fem/App/AppFem.cpp b/src/Mod/Fem/App/AppFem.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/AppFemPy.cpp b/src/Mod/Fem/App/AppFemPy.cpp old mode 100644 new mode 100755 index 551e07eb6..79f6eb585 --- a/src/Mod/Fem/App/AppFemPy.cpp +++ b/src/Mod/Fem/App/AppFemPy.cpp @@ -149,7 +149,82 @@ static PyObject * SMESH_PCA(PyObject *self, PyObject *args) Base::Matrix4D Trafo = pca.Transform(); /*Let´s transform the input mesh with the PCA Matrix*/ inputMesh->getFemMeshPtr()->transformGeometry(Trafo); - //inputMesh->getFemMeshPtr()->getSMesh()->ExportUNV("C:/PCA_alignment.unv"); + //inputMesh->getFemMeshPtr()->getSMesh()->ExportUNV("C:/Temp/PCA_alignment.unv"); + //Now lets check if the smallest dimension of the BBox is oriented towards the Z-Axis. If not, lets rotate it around the X or Y axis + //Use the SMESH structure for that + // aMesh.Transform(Trafo); + + //Base::Rotation rotatex,rotatey,rotatez; + //const Base::Vector3d rotate_axis_x(1.0,0.0,0.0),rotate_axis_y(0.0,1.0,0.0),rotate_axis_z(0.0,0.0,1.0); + //double bbox_length_x,bbox_length_y,bbox_length_z; + ////Rotate around the each axes and choose the settings for the min bbox + //Base::Matrix4D final_trafo; + //Base::BoundBox3f aBBox; + ////Get the current BBOX and look for the size + //aBBox = aMesh.GetBoundBox(); + //bbox_length_x = aBBox.LengthX();bbox_length_y = aBBox.LengthY();bbox_length_z = aBBox.LengthZ(); + ////Now do the rotation stuff + //if (bbox_length_z < bbox_length_x && bbox_length_z < bbox_length_y) + // Py_Return; + //else if ( + + + //MeshCore::MeshKernel atempkernel; + + //float it_steps=10.0; + //double step_size; + //double alpha_x=0.0,alpha_y=0.0,alpha_z=0.0; + //double perfect_ax=0.0,perfect_ay=0.0,perfect_az=0.0; + + ////Do a Monte Carlo approach and start from the Principal Axis System + ////and rotate +/- 60° around each axis in a first iteration + //double angle_range_min_x=-PI/3.0,angle_range_max_x=PI/3.0, + // angle_range_min_y=-PI/3.0,angle_range_max_y=PI/3.0, + // angle_range_min_z=-PI/3.0,angle_range_max_z=PI/3.0; + + ////We rotate until we are 0.1° sure to be in the right position + //for (step_size = (2.0*PI/it_steps);step_size>(2.0*PI/3600.0);step_size=(2.0*PI/it_steps)) + //{ + // for(alpha_x=angle_range_min_x;alpha_xnext(); current_node.Set(float(aNode->X()),float(aNode->Y()),float(aNode->Z())); current_node = matrix * current_node; - if(current_node.z > billet_thickness || current_node.z < 0.0) + if(current_node.z > billet_thickness || current_node.z < -0.1) { //lets jump out of the function as soon as we find a //Node that is higher or lower than billet thickness @@ -563,7 +638,7 @@ static PyObject * minBoundingBox(PyObject *self, PyObject *args) float(0.0),float(0.0),float(0.0),float(1.0)); inputMesh->getFemMeshPtr()->transformGeometry(trans_matrix); - //inputMesh->getFemMeshPtr()->getSMesh()->ExportUNV("C:/fine_tuning.unv"); + //inputMesh->getFemMeshPtr()->getSMesh()->ExportUNV("C:/temp/fine_tuning.unv"); } PY_CATCH; diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp old mode 100644 new mode 100755 index 440b5cb01..ef78fd024 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -58,9 +58,13 @@ #include #include +//to simplify parsing input files we use the boost lib +#include + using namespace Fem; using namespace Base; +using namespace boost; TYPESYSTEM_SOURCE(Fem::FemMesh , Base::Persistence); @@ -374,23 +378,32 @@ void FemMesh::readNastran(const std::string &Filename) inputfile.open(Filename.c_str()); inputfile.seekg(std::ifstream::beg); std::string line1,line2,temp; + std::vector token_results; + token_results.clear(); Base::Vector3d current_node; std::vector vertices; vertices.clear(); + std::vector nodal_id; + nodal_id.clear(); std::vector tetra_element; std::vector > all_elements; std::vector element_id; element_id.clear(); + bool nastran_free_format = false; do { std::getline(inputfile,line1); if (line1.size() == 0) continue; - if (line1.find("GRID*")!= std::string::npos) //We found a Grid line + if (!nastran_free_format && line1.find(",")!= std::string::npos) + nastran_free_format = true; + if (!nastran_free_format && line1.find("GRID*")!= std::string::npos ) //We found a Grid line { //Now lets extract the GRID Points = Nodes //As each GRID Line consists of two subsequent lines we have to //take care of that as well std::getline(inputfile,line2); + //Get the Nodal ID + nodal_id.push_back(atoi(line1.substr(8,24).c_str())); //Extract X Value current_node.x = atof(line1.substr(40,56).c_str()); //Extract Y Value @@ -400,7 +413,7 @@ void FemMesh::readNastran(const std::string &Filename) vertices.push_back(current_node); } - else if (line1.find("CTETRA")!= std::string::npos) + else if (!nastran_free_format && line1.find("CTETRA")!= std::string::npos) { tetra_element.clear(); //Lets extract the elements @@ -422,6 +435,46 @@ void FemMesh::readNastran(const std::string &Filename) all_elements.push_back(tetra_element); } + else if (nastran_free_format && line1.find("GRID")!= std::string::npos ) //We found a Grid line + { + char_separator sep(","); + tokenizer > tokens(line1, sep); + token_results.assign(tokens.begin(),tokens.end()); + if (token_results.size() < 3) + continue;//Line does not include Nodal coordinates + nodal_id.push_back(atoi(token_results[1].c_str())); + current_node.x = atof(token_results[3].c_str()); + current_node.y = atof(token_results[4].c_str()); + current_node.z = atof(token_results[5].c_str()); + vertices.push_back(current_node); + } + else if (nastran_free_format && line1.find("CTETRA")!= std::string::npos) + { + tetra_element.clear(); + //Lets extract the elements + //As each Element Line consists of two subsequent lines as well + //we have to take care of that + //At a first step we only extract Quadratic Tetrahedral Elements + std::getline(inputfile,line2); + char_separator sep(","); + tokenizer > tokens(line1.append(line2), sep); + token_results.assign(tokens.begin(),tokens.end()); + if (token_results.size() < 11) + continue;//Line does not include enough nodal IDs + element_id.push_back(atoi(token_results[1].c_str())); + tetra_element.push_back(atoi(token_results[3].c_str())); + tetra_element.push_back(atoi(token_results[4].c_str())); + tetra_element.push_back(atoi(token_results[5].c_str())); + tetra_element.push_back(atoi(token_results[6].c_str())); + tetra_element.push_back(atoi(token_results[7].c_str())); + tetra_element.push_back(atoi(token_results[8].c_str())); + tetra_element.push_back(atoi(token_results[10].c_str())); + tetra_element.push_back(atoi(token_results[11].c_str())); + tetra_element.push_back(atoi(token_results[12].c_str())); + tetra_element.push_back(atoi(token_results[13].c_str())); + + all_elements.push_back(tetra_element); + } } while (inputfile.good()); @@ -431,10 +484,10 @@ void FemMesh::readNastran(const std::string &Filename) std::vector::const_iterator anodeiterator; SMESHDS_Mesh* meshds = this->myMesh->GetMeshDS(); meshds->ClearMesh(); - int j=1; + unsigned int j=0; for(anodeiterator=vertices.begin(); anodeiterator!=vertices.end(); anodeiterator++) { - meshds->AddNodeWithID((*anodeiterator).x,(*anodeiterator).y,(*anodeiterator).z,j); + meshds->AddNodeWithID((*anodeiterator).x,(*anodeiterator).y,(*anodeiterator).z,nodal_id[j]); j++; } @@ -442,7 +495,8 @@ void FemMesh::readNastran(const std::string &Filename) { //Die Reihenfolge wie hier die Elemente hinzugefügt werden ist sehr wichtig. //Ansonsten ist eine konsistente Datenstruktur nicht möglich - meshds->AddVolumeWithID( + meshds->AddVolumeWithID + ( meshds->FindNode(all_elements[i][0]), meshds->FindNode(all_elements[i][2]), meshds->FindNode(all_elements[i][1]), @@ -458,6 +512,7 @@ void FemMesh::readNastran(const std::string &Filename) } } + void FemMesh::read(const char *FileName) { Base::FileInfo File(FileName); diff --git a/src/Mod/Fem/App/FemMesh.h b/src/Mod/Fem/App/FemMesh.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshObject.cpp b/src/Mod/Fem/App/FemMeshObject.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshObject.h b/src/Mod/Fem/App/FemMeshObject.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshProperty.cpp b/src/Mod/Fem/App/FemMeshProperty.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshProperty.h b/src/Mod/Fem/App/FemMeshProperty.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshPy.xml b/src/Mod/Fem/App/FemMeshPy.xml old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/FemMeshPyImp.cpp b/src/Mod/Fem/App/FemMeshPyImp.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/HypothesisPy.cpp b/src/Mod/Fem/App/HypothesisPy.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/HypothesisPy.h b/src/Mod/Fem/App/HypothesisPy.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/Makefile.am b/src/Mod/Fem/App/Makefile.am old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/PreCompiled.cpp b/src/Mod/Fem/App/PreCompiled.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/App/PreCompiled.h b/src/Mod/Fem/App/PreCompiled.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/FemExample.py b/src/Mod/Fem/FemExample.py old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/AppFemGui.cpp b/src/Mod/Fem/Gui/AppFemGui.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/AppFemGuiPy.cpp b/src/Mod/Fem/Gui/AppFemGuiPy.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/CMakeLists.txt b/src/Mod/Fem/Gui/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Command.cpp b/src/Mod/Fem/Gui/Command.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Makefile.am b/src/Mod/Fem/Gui/Makefile.am old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/PreCompiled.cpp b/src/Mod/Fem/Gui/PreCompiled.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/PreCompiled.h b/src/Mod/Fem/Gui/PreCompiled.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/Fem.qrc b/src/Mod/Fem/Gui/Resources/Fem.qrc old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/Makefile.am b/src/Mod/Fem/Gui/Resources/Makefile.am old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/UpdateResources.bat b/src/Mod/Fem/Gui/Resources/UpdateResources.bat old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh.svg b/src/Mod/Fem/Gui/Resources/icons/Fem_FemMesh.svg old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_af.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_af.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_de.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_de.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_es.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_es.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_it.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_it.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_no.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_no.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pt.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_pt.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_se.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_se.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_zh.qm b/src/Mod/Fem/Gui/Resources/translations/Fem_zh.qm old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.h b/src/Mod/Fem/Gui/ViewProviderFemMesh.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Workbench.cpp b/src/Mod/Fem/Gui/Workbench.cpp old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Gui/Workbench.h b/src/Mod/Fem/Gui/Workbench.h old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Init.py b/src/Mod/Fem/Init.py old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/InitGui.py b/src/Mod/Fem/InitGui.py old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/Makefile.am b/src/Mod/Fem/Makefile.am old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/convert2TetGen.py b/src/Mod/Fem/convert2TetGen.py old mode 100644 new mode 100755 diff --git a/src/Mod/Fem/fem.dox b/src/Mod/Fem/fem.dox old mode 100644 new mode 100755 From 4af0ca1401716d47faec5d7111ffcd5281899f2c Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Tue, 27 Mar 2012 13:54:06 +0200 Subject: [PATCH 03/98] Removed dependency to libf2c as it is not needed my SMESH if we do not want to use MEFISTO2D --- src/3rdParty/salomesmesh/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdParty/salomesmesh/CMakeLists.txt b/src/3rdParty/salomesmesh/CMakeLists.txt index 314632396..ad500dcd5 100644 --- a/src/3rdParty/salomesmesh/CMakeLists.txt +++ b/src/3rdParty/salomesmesh/CMakeLists.txt @@ -173,7 +173,7 @@ FILE(GLOB StdMeshers_source_files src/StdMeshers/*.cpp src/MEFISTO2/*.cpp src/ME INCLUDE_DIRECTORIES(src/StdMeshers) ADD_LIBRARY(StdMeshers SHARED ${StdMeshers_source_files}) -TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools f2c gfortran) +TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools) SET(StdMeshers_CFLAGS "") IF(WIN32) SET(StdMeshers_CFLAGS "-DSTDMESHERS_EXPORTS -DMEFISTO2D_EXPORTS") From 72738a2956fc52c41eb2d1909c4d346824208413 Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Tue, 27 Mar 2012 16:14:58 +0200 Subject: [PATCH 04/98] Final adaptation to Centos 5.6 --- src/3rdParty/salomesmesh/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/3rdParty/salomesmesh/CMakeLists.txt b/src/3rdParty/salomesmesh/CMakeLists.txt index ad500dcd5..616972570 100644 --- a/src/3rdParty/salomesmesh/CMakeLists.txt +++ b/src/3rdParty/salomesmesh/CMakeLists.txt @@ -173,7 +173,7 @@ FILE(GLOB StdMeshers_source_files src/StdMeshers/*.cpp src/MEFISTO2/*.cpp src/ME INCLUDE_DIRECTORIES(src/StdMeshers) ADD_LIBRARY(StdMeshers SHARED ${StdMeshers_source_files}) -TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools) +TARGET_LINK_LIBRARIES(StdMeshers SMESH TKernel TKMath TKAdvTools gfortran) SET(StdMeshers_CFLAGS "") IF(WIN32) SET(StdMeshers_CFLAGS "-DSTDMESHERS_EXPORTS -DMEFISTO2D_EXPORTS") From 93893caa3dea53fc969575486d7f31fe1506d47a Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Wed, 28 Mar 2012 14:13:50 +0200 Subject: [PATCH 05/98] Adapt post-processing to redhat gnuplot --- src/Mod/Machining_Distortion/postprocess_gui.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Mod/Machining_Distortion/postprocess_gui.py b/src/Mod/Machining_Distortion/postprocess_gui.py index b6c6392a3..4ad1cfbce 100755 --- a/src/Mod/Machining_Distortion/postprocess_gui.py +++ b/src/Mod/Machining_Distortion/postprocess_gui.py @@ -42,7 +42,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): ltc_coeff = [] sigini = True for root, dirs, files in os.walk(str(self.dirname)): - if 'final_fe_input.frd' in files: + if 'geometry_fe_input.frd' in files: bbox_orig,\ bbox_distorted,\ relationship,\ @@ -51,7 +51,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): max_disp_y,\ min_disp_y,\ max_disp_z,\ - min_disp_z = calculix_postprocess(os.path.join(root,'final_fe_input.frd')) + min_disp_z = calculix_postprocess(os.path.join(root,'geometry_fe_input.frd')) if sigini: sigini = False lc_coeff,ltc_coeff = get_sigini_values(os.path.join(root,'sigini_input.txt')) @@ -113,12 +113,13 @@ class MyForm(QtGui.QDialog,Ui_dialog): "set view 80,05,1.3,1.0\n"+ "set title \"Abs Displacement in Z vs. Z-Level Offset and Rotation around Z-Axis\" 0,-2\n"+ "show title\n"+ - "set label \"L Coefficients used for the calculation:" + lc_coeff[0] + "," + lc_coeff[1] + "," + lc_coeff[2] + "," + lc_coeff[3] + "," + lc_coeff[4] + "," + lc_coeff[5][:-1] + "\" at screen 0.1, screen 0.95 left font \"Arial,8\"\n"+ - "set label \"LT Coefficients used for the calculation:" + ltc_coeff[0] + "," + ltc_coeff[1] + "," + ltc_coeff[2] + "," + ltc_coeff[3] + "," + ltc_coeff[4] + "," + ltc_coeff[5][:-1] + "\" at screen 0.1, screen 0.93 left font \"Arial,8\"\n"+ + "set pm3d\n"+ + "set label \"L Coefficients used for the calculation:" + lc_coeff[0] + "," + lc_coeff[1] + "," + lc_coeff[2] + "," + lc_coeff[3] + "," + lc_coeff[4] + "," + lc_coeff[5][:-1] + "\" at screen 0.1, screen 0.95 left\n"+ + "set label \"LT Coefficients used for the calculation:" + ltc_coeff[0] + "," + ltc_coeff[1] + "," + ltc_coeff[2] + "," + ltc_coeff[3] + "," + ltc_coeff[4] + "," + ltc_coeff[5][:-1] + "\" at screen 0.1, screen 0.93 left\n"+ "set label \"Z-Offset\\nin [mm]\" at screen 0.5, screen 0.1 center rotate by 0\n"+ "set label \"Rotation around Z-Axis\\nin [" + str(chr(248)) +"]\" at screen 0.91, screen 0.2 center rotate by 50\n"+ "set label \"Max Displacement Z direction\\nin [mm]\" at screen 0.03, screen 0.5 center rotate by 90\n"+ - "set xtics in nomirror offset character 0,-0.5\n"+ + "set xtics nomirror\n"+ "splot \"postprocessing_input.txt\" u 1:4:14 with pm3d title \"\"\n" + "exit" ) @@ -127,7 +128,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): gnu_plot_input_file.close() os.chdir(str(self.dirname)) fnull = open(os.devnull, 'w') - commandline = FreeCAD.getHomePath() + "bin/gnuplot/gnuplot gnu_plot_input.txt" + commandline = "gnuplot gnu_plot_input.txt" result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) fnull.close() From df017149c510b56a0b6f357671d6653ebc52d3a4 Mon Sep 17 00:00:00 2001 From: Sebastian Hoogen Date: Thu, 3 May 2012 14:03:07 +0200 Subject: [PATCH 06/98] OpenSCAD module fixes #3 #7 #25 #26 #28 #30 #35 #36 #41 --- src/Mod/CMakeLists.txt | 1 + src/Mod/Makefile.am | 2 +- src/Mod/OpenSCAD/CMakeLists.txt | 45 + src/Mod/OpenSCAD/Init.py | 26 + src/Mod/OpenSCAD/InitGui.py | 129 + src/Mod/OpenSCAD/Makefile.am | 32 + src/Mod/OpenSCAD/OpenSCAD.dox | 3 + src/Mod/OpenSCAD/OpenSCAD2Dgeom.py | 460 + src/Mod/OpenSCAD/OpenSCADCommands.py | 173 + src/Mod/OpenSCAD/OpenSCADFeatures.py | 433 + src/Mod/OpenSCAD/OpenSCADUtils.py | 115 + src/Mod/OpenSCAD/OpenSCAD_rc.py | 8268 +++++++++++++++++ src/Mod/OpenSCAD/Resources/OpenSCAD.qrc | 10 + .../icons/OpenSCAD_ColorCodeShape.svg | 136 + .../icons/OpenSCAD_RefineShapeFeature.svg | 402 + .../icons/OpenSCAD_RemoveSubtree.svg | 461 + .../icons/OpenSCAD_ReplaceObject.svg | 457 + .../Resources/icons/preferences-openscad.svg | 1368 +++ .../Resources/ui/openscadprefs-base.ui | 547 ++ src/Mod/OpenSCAD/TODO | 5 + src/Mod/OpenSCAD/colorcodeshapes.py | 81 + src/Mod/OpenSCAD/expandplacements.py | 78 + src/Mod/OpenSCAD/exportCSG.py | 260 + src/Mod/OpenSCAD/exportVersions.txt | 18 + src/Mod/OpenSCAD/importCSG.py | 885 ++ src/Mod/OpenSCAD/importVersions.txt | 58 + src/Mod/OpenSCAD/ply/ANNOUNCE | 40 + src/Mod/OpenSCAD/ply/CHANGES | 1093 +++ src/Mod/OpenSCAD/ply/PKG-INFO | 22 + src/Mod/OpenSCAD/ply/README | 271 + src/Mod/OpenSCAD/ply/TODO | 16 + src/Mod/OpenSCAD/ply/__init__.py | 4 + src/Mod/OpenSCAD/ply/lex.py | 1058 +++ src/Mod/OpenSCAD/ply/setup.py | 31 + src/Mod/OpenSCAD/ply/yacc.py | 3276 +++++++ src/Mod/OpenSCAD/prototype.py | 688 ++ src/Mod/OpenSCAD/replaceobj.py | 31 + src/Mod/OpenSCAD/tokrules.py | 132 + 38 files changed, 21114 insertions(+), 1 deletion(-) create mode 100644 src/Mod/OpenSCAD/CMakeLists.txt create mode 100644 src/Mod/OpenSCAD/Init.py create mode 100644 src/Mod/OpenSCAD/InitGui.py create mode 100644 src/Mod/OpenSCAD/Makefile.am create mode 100644 src/Mod/OpenSCAD/OpenSCAD.dox create mode 100644 src/Mod/OpenSCAD/OpenSCAD2Dgeom.py create mode 100644 src/Mod/OpenSCAD/OpenSCADCommands.py create mode 100644 src/Mod/OpenSCAD/OpenSCADFeatures.py create mode 100644 src/Mod/OpenSCAD/OpenSCADUtils.py create mode 100644 src/Mod/OpenSCAD/OpenSCAD_rc.py create mode 100644 src/Mod/OpenSCAD/Resources/OpenSCAD.qrc create mode 100644 src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ColorCodeShape.svg create mode 100644 src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RefineShapeFeature.svg create mode 100644 src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RemoveSubtree.svg create mode 100644 src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ReplaceObject.svg create mode 100644 src/Mod/OpenSCAD/Resources/icons/preferences-openscad.svg create mode 100644 src/Mod/OpenSCAD/Resources/ui/openscadprefs-base.ui create mode 100644 src/Mod/OpenSCAD/TODO create mode 100644 src/Mod/OpenSCAD/colorcodeshapes.py create mode 100644 src/Mod/OpenSCAD/expandplacements.py create mode 100644 src/Mod/OpenSCAD/exportCSG.py create mode 100644 src/Mod/OpenSCAD/exportVersions.txt create mode 100644 src/Mod/OpenSCAD/importCSG.py create mode 100644 src/Mod/OpenSCAD/importVersions.txt create mode 100644 src/Mod/OpenSCAD/ply/ANNOUNCE create mode 100644 src/Mod/OpenSCAD/ply/CHANGES create mode 100644 src/Mod/OpenSCAD/ply/PKG-INFO create mode 100644 src/Mod/OpenSCAD/ply/README create mode 100644 src/Mod/OpenSCAD/ply/TODO create mode 100644 src/Mod/OpenSCAD/ply/__init__.py create mode 100644 src/Mod/OpenSCAD/ply/lex.py create mode 100644 src/Mod/OpenSCAD/ply/setup.py create mode 100644 src/Mod/OpenSCAD/ply/yacc.py create mode 100644 src/Mod/OpenSCAD/prototype.py create mode 100644 src/Mod/OpenSCAD/replaceobj.py create mode 100644 src/Mod/OpenSCAD/tokrules.py diff --git a/src/Mod/CMakeLists.txt b/src/Mod/CMakeLists.txt index 995c104fd..181d3ef91 100644 --- a/src/Mod/CMakeLists.txt +++ b/src/Mod/CMakeLists.txt @@ -46,3 +46,4 @@ endif(FREECAD_BUILD_SANDBOX) add_subdirectory(Surfaces) add_subdirectory(Ship) +add_subdirectory(OpenSCAD) diff --git a/src/Mod/Makefile.am b/src/Mod/Makefile.am index bc7e873c5..e018e56c7 100644 --- a/src/Mod/Makefile.am +++ b/src/Mod/Makefile.am @@ -1,5 +1,5 @@ #SUBDIRS=Part Mesh Points Raytracing Image Drawing Complete Draft Test TemplatePyMod -SUBDIRS=Points Complete Draft Test TemplatePyMod Web Start Idf Arch Surfaces Ship +SUBDIRS=Points Complete Draft Test TemplatePyMod Web Start Idf Arch Surfaces Ship OpenSCAD #if HAVE_OPENCV SUBDIRS += Image diff --git a/src/Mod/OpenSCAD/CMakeLists.txt b/src/Mod/OpenSCAD/CMakeLists.txt new file mode 100644 index 000000000..65edb823a --- /dev/null +++ b/src/Mod/OpenSCAD/CMakeLists.txt @@ -0,0 +1,45 @@ +SET(OpenSCAD_SRCS + Init.py + InitGui.py + OpenSCAD_rc.py + OpenSCAD2Dgeom.py + OpenSCADFeatures.py + OpenSCADUtils.py + OpenSCADCommands.py + exportCSG.py + importCSG.py + prototype.py + tokrules.py + colorcodeshapes.py + expandplacements.py + replaceobj.py +) +SOURCE_GROUP("" FILES ${OpenSCAD_SRCS}) + +SET(ply_SRCS + ply/lex.py + ply/README + ply/yacc.py + ply/__init__.py +) +SOURCE_GROUP("ply" FILES ${ply_SRCS}) + +set(all_files ${OpenSCAD_SRCS} ${ply_SRCS}) + +ADD_CUSTOM_TARGET(OpenSCAD ALL + SOURCES ${allfiles} +) + fc_copy_sources(OpenSCAD "${CMAKE_BINARY_DIR}/Mod/OpenSCAD" ${all_files}) + +INSTALL( + FILES + ${ply_SRCS} + DESTINATION + Mod/OpenSCAD/ply +) +INSTALL( + FILES + ${OpenSCAD_SRCS} + DESTINATION + Mod/OpenSCAD +) diff --git a/src/Mod/OpenSCAD/Init.py b/src/Mod/OpenSCAD/Init.py new file mode 100644 index 000000000..9020bcb3a --- /dev/null +++ b/src/Mod/OpenSCAD/Init.py @@ -0,0 +1,26 @@ +# FreeCAD init script of the OpenSCAD module +# (c) 2001 Juergen Riegel + +#*************************************************************************** +#* (c) Juergen Riegel (juergen.riegel@web.de) 2002 * +#* * +#* This file is part of the FreeCAD CAx development system. * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* FreeCAD is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Lesser General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with FreeCAD; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#* Juergen Riegel 2002 * +#***************************************************************************/ diff --git a/src/Mod/OpenSCAD/InitGui.py b/src/Mod/OpenSCAD/InitGui.py new file mode 100644 index 000000000..e87158764 --- /dev/null +++ b/src/Mod/OpenSCAD/InitGui.py @@ -0,0 +1,129 @@ +# OpenSCAD gui init module +# +# Gathering all the information to start FreeCAD +# This is the second one of three init scripts, the third one +# runs when the gui is up + +#*************************************************************************** +#* (c) Juergen Riegel (juergen.riegel@web.de) 2002 +#* * +#* This file is part of the FreeCAD CAx development system. * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* FreeCAD is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with FreeCAD; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#* Juergen Riegel 2002 * +#***************************************************************************/ + +import FreeCAD +param = FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD") +openscadfilename = param.GetString('openscadexecutable') + + +class OpenSCADWorkbench ( Workbench ): + "OpenSCAD workbench object" + Icon = """ +/* XPM */ +static char * openscadlogo_xpm[] = { +"16 16 33 1", +" c None", +". c #61320B", +"+ c #5D420B", +"@ c #4F4C09", +"# c #564930", +"$ c #754513", +"% c #815106", +"& c #666509", +"* c #875F55", +"= c #6E7000", +"- c #756A53", +"; c #717037", +"> c #946637", +", c #92710E", +"' c #797A0A", +") c #7C7720", +"! c #8A8603", +"~ c #88886F", +"{ c #AF8181", +"] c #999908", +"^ c #BB8D8D", +"/ c #AAAA00", +"( c #A9A880", +"_ c #B5B419", +": c #C1A9A9", +"< c #B1B19A", +"[ c #BEBE00", +"} c #B9B8B4", +"| c #CACC00", +"1 c #D4D4BC", +"2 c #DBD2D0", +"3 c #EEEEED", +"4 c None", +"4444444444444444", +"4444443113444444", +"4444<;']]!;<^^24", +"444(&@!]]]=&#^{3", +"44<']')@++)!&*{^", +"44)]/[|//[/]'@{{", +"42=/_|||||[]!&*{", +"4(&][|||||[/'@#}", +"3-..,|||||[)&&~4", +"^*$%.!|||[!+/](4", +"^{%%%._[[_&/[_14", +":{>%%.!//])_[_44", +"2{{%%+!]!!)]]344", +"4:{{#@&=&&@#3444", +"44224}~--~}44444", +"4444444444444444"}; +""" + MenuText = "OpenSCAD" + ToolTip = "OpenSCAD workbench" + def Initialize(self): + import OpenSCAD_rc,OpenSCADCommands + commands=["ColorCodeShape",'RefineShapeFeature','ReplaceObject',"Edgestofaces",'ExpandPlacements','RemoveSubtree'] + import FreeCAD + param = FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD") + openscadfilename = param.GetString('openscadexecutable') + if openscadfilename: + commands.extend(['AddOpenSCADElement']) + self.appendToolbar("OpenSCADTools",["ColorCodeShape",'RefineShapeFeature','ReplaceObject','RemoveSubtree']) + self.appendMenu('OpenSCAD',commands) + #self.appendMenu('OpenSCAD',["AddOpenSCADElement"]) + ###self.appendCommandbar("&Generic Tools",["ColorCodeShape"]) + FreeCADGui.addIconPath(":/icons") + #FreeCADGui.addLanguagePath(":/translations") + FreeCADGui.addPreferencePage(":/ui/openscadprefs-base.ui","OpenSCAD") + def GetClassName(self): + #return "OpenSCADGui::Workbench" + return "Gui::PythonWorkbench" + + +Gui.addWorkbench(OpenSCADWorkbench()) +App.addImportType("OpenSCAD CSG Format (*.csg)","importCSG") +App.addExportType("OpenSCAD CSG Format (*.csg)","exportCSG") +App.addExportType("OpenSCAD Format (*.scad)","exportCSG") +import os +openscadbin = openscadfilename and os.path.isfile(openscadfilename) +if openscadbin: + App.addImportType("OpenSCAD Format (*.scad)","importCSG") + +if param.GetBool('debugRegisterPrototype'): + App.addImportType("OpenSCAD CSG prototype (*.csg)","prototype") #prototype + if openscadbin: + App.addImportType("OpenSCAD prototype (*.scad)","prototype") #prototype + diff --git a/src/Mod/OpenSCAD/Makefile.am b/src/Mod/OpenSCAD/Makefile.am new file mode 100644 index 000000000..ca0cf40f4 --- /dev/null +++ b/src/Mod/OpenSCAD/Makefile.am @@ -0,0 +1,32 @@ +#SUBDIRS=App Gui + +# Change data dir from default ($(prefix)/share) to $(prefix) +datadir = $(prefix)/Mod/OpenSCAD +data_DATA = \ + Init.py InitGui.py \ + OpenSCAD_rc.py \ + OpenSCAD2Dgeom.py \ + OpenSCADFeatures.py \ + OpenSCADUtils.py \ + OpenSCADCommands.py \ + exportCSG.py \ + importCSG.py \ + prototype.py \ + tokrules.py \ + colorcodeshapes.py \ + expandplacements.py \ + replaceobj.py + +nobase_data_DATA = \ + ply/lex.py \ + ply/README \ + ply/yacc.py \ + ply/__init__.py + + +EXTRA_DIST = \ + $(data_DATA) $(nobase_data_DATA) \ + CMakeLists.txt \ + OpenSCAD.dox \ + exportVersions.txt \ + importVersions.txt diff --git a/src/Mod/OpenSCAD/OpenSCAD.dox b/src/Mod/OpenSCAD/OpenSCAD.dox new file mode 100644 index 000000000..c48db6a63 --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCAD.dox @@ -0,0 +1,3 @@ +/** \defgroup TEMPLATE OpenSCAD + * \ingroup WORKBENCHES */ + diff --git a/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py b/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py new file mode 100644 index 000000000..7e6bddc9d --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCAD2Dgeom.py @@ -0,0 +1,460 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2012 Sebastian Hoogen * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +__title__="FreeCAD OpenSCAD Workbench - 2D helper fuctions" +__author__ = "Sebastian Hoogen" +__url__ = ["http://free-cad.sourceforge.net"] + +''' +This Script includes python functions to convert imported dxf geometry to Faces +''' + +class Overlappingfaces(): + '''combines overlapping faces together''' + def __init__(self,facelist): + self.sortedfaces = sorted(facelist,key=(lambda shape: shape.Area),reverse=True) + self.builddepdict() + #self.faceindex = {} + #for idx,face in enumerate(self.sortesfaces): + # self.faceindex[face.hashCode()] = idx + +# def __len__(self): +# return len(self.sortedfaces) + + @staticmethod + def dofacesoverlapboundbox(bigface,smallface): + return bigface.BoundBox.isIntersection(smallface.BoundBox) + + @staticmethod + def dofacesoverlapallverts(bigface,smallface): + def vertsinface(f1,verts,tol=0.001,inface=True): + '''check if all given verts are inside shape f1''' + return all([f1.isInside(vert.Point,tol,inface) for vert in verts]) + return vertsinface(bigface,smallface.Vertexes) + + @staticmethod + def dofacesoverlapboolean(bigface,smallface): + #import FreeCAD,FreeCADGui + #FreeCAD.Console.PrintLog('intersecting %d %d\n'%(bigfacei,smallfacei)) + #FreeCADGui.updateGui() + return bigface.common(smallface).Area > 0 + + def builddepdict(self): + import itertools + #isinsidelist = [] + self.isinsidedict = {} + #for bigface, smallface in itertools.combinations(sortedfaces,2): + for bigfacei, smallfacei in itertools.combinations(range(len(self.sortedfaces)),2): + try: + overlap = Overlappingfaces.dofacesoverlapboolean(\ + self.sortedfaces[bigfacei],self.sortedfaces[smallfacei]) + except: + overlap = Overlappingfaces.dofacesoverlapallverts(\ + self.sortedfaces[bigfacei],self.sortedfaces[smallfacei]) + if overlap: + #isinsidelist.append((bigfacei,smallfacei)) + smallinbig = self.isinsidedict.get(bigfacei,[]) + smallinbig.append(smallfacei) + if len(smallinbig) == 1: + self.isinsidedict[bigfacei] = smallinbig + + @staticmethod + def finddepth(dict1,faceidx,curdepth=0): + if faceidx not in dict1: + return curdepth+1 + else: + #print dict1[faceidx],[(finddepth(dict1,childface,curdepth)) for childface in dict1[faceidx]] + return max([(Overlappingfaces.finddepth(dict1,childface,curdepth+1)) for childface in dict1[faceidx]]) + + def findrootdepth(self): + return max([Overlappingfaces.finddepth(self.isinsidedict,fi) for fi in range(len(self.sortedfaces))]) + + def hasnoparent(self,faceindex): + return Overlappingfaces.hasnoparentstatic(self.isinsidedict,faceindex) + + @staticmethod + def hasnoparentstatic(isinsidedict,faceindex): + for smalllist in isinsidedict.itervalues(): + if faceindex in smalllist: + return False + return True + + #@staticmethod + #def subtreedict(rootface,parantdict): + # '''biuld a subtree dictinary''' + # newdict = parantdict.copy() + # del newdict[rootface] + # return newdict + + @staticmethod + def directchildren(isinsidedict,parent): + #return [child for child in isinsidedict.get(parent,[]) if child not in isinsidedict] + dchildren=[] + for child in isinsidedict.get(parent,[]): + direct = True + for key, value in isinsidedict.iteritems(): + if key != parent and child in value and parent not in value: + direct = False + if direct: + dchildren.append(child) + return dchildren + + #@staticmethod + #def indirectchildren(isinsidedict,parent): + # return [child for child in isinsidedict.get(parent,[]) if child in isinsidedict] + + @staticmethod + def printtree(isinsidedict,facenum): + def printtreechild(isinsidedict,facenum,parent): + children=Overlappingfaces.directchildren(isinsidedict,parent) + print 'parent %d directchild %s' % (parent,children) + if children: + subdict=isinsidedict.copy() + del subdict[parent] + for child in children: + printtreechild(subdict,facenum,child) + + rootitems=[fi for fi in range(facenum) if Overlappingfaces.hasnoparentstatic(isinsidedict,fi)] + for rootitem in rootitems: + printtreechild(isinsidedict,facenum,rootitem) + + def makefeatures(self,doc): + import FreeCAD + def addshape(faceindex): + obj=doc.addObject('Part::Feature','facefromedges_%d' % faceindex) + obj.Shape = self.sortedfaces[faceindex] + obj.ViewObject.hide() + return obj + + def addfeature(faceindex,isinsidedict): + directchildren = Overlappingfaces.directchildren(isinsidedict,faceindex) + if len(directchildren) == 0: + obj=addshape(faceindex) + else: + subdict=isinsidedict.copy() + del subdict[faceindex] + obj=doc.addObject("Part::Cut","facesfromedges_%d" % faceindex) + obj.Base= addshape(faceindex) #we only do subtraction + if len(directchildren) == 1: + obj.Tool = addfeature(directchildren[0],subdict) + else: + obj.Tool = doc.addObject("Part::MultiFuse","facesfromedges_union") + obj.Tool.Shapes = [addfeature(child,subdict) for child in directchildren] + obj.Tool.ViewObject.hide() + obj.ViewObject.hide() + return obj + + rootitems = [fi for fi in range(len(self.sortedfaces)) if self.hasnoparent(fi)] + for rootitem in rootitems: + addfeature(rootitem,self.isinsidedict).ViewObject.show() + + + def makeshape(self): + def removefaces(rfaces): + for tfi in directchildren[::-1]: + finishedwith.append(tfi) + #del faces[tfi] + if tfi in isinsidedict: + del isinsidedict[tfi] + for key,value in isinsidedict.iteritems(): + if tfi in value: + newlist=value[:] #we work on a shallow copy of isinsidedict + newlist.remove(tfi) + isinsidedict[key]=newlist + + def hasnoparent(faceindex): + for smalllist in self.isinsidedict.itervalues(): + if faceindex in smalllist: + return False + return True + + faces=self.sortedfaces[:] + isinsidedict=self.isinsidedict.copy() + finishedwith=[] + while not all([Overlappingfaces.hasnoparentstatic(isinsidedict,fi) for fi in range(len(faces))]): + #print [(Overlappingfaces.hasnoparentstatic(isinsidedict,fi),\ + #Overlappingfaces.directchildren(isinsidedict,fi)) for fi in range(len(faces))] + for fi in range(len(faces))[::-1]: + directchildren = Overlappingfaces.directchildren(isinsidedict,fi) + if not directchildren: + continue + elif len(directchildren) == 1: + faces[fi]=faces[fi].cut(faces[directchildren[0]]) + #print fi,'-' ,directchildren[0], faces[fi],faces[directchildren[0]] + removefaces(directchildren) + else: + toolface=fusefaces([faces[tfi] for tfi in directchildren]) + faces[fi]=faces[fi].cut(toolface) + #print fi, '- ()', directchildren, [faces[tfi] for tfi in directchildren] + removefaces(directchildren) + #print fi,directchildren + faces =[face for index,face in enumerate(faces) if index not in finishedwith] +# return faces + return fusefaces(faces) + +def findConnectedEdges(edgelist,eps=1e-6,debug=False): + '''returns a list of list of connected edges''' + + def vertequals(v1,v2,eps=1e-6): + '''check two vertices for equality''' + #return all([abs(c1-c2) 1: + innerdistances=[edges[i].Vertexes[-1].Point.sub(edges[i+1].\ + Vertexes[0].Point).Length for i in range(numedges-1)] + return max(innerdistances),min(innerdistances),outerdistance + else: + return 0.0,0.0,outerdistance + +def endpointdistancedebuglist(debuglist): + '''return the distance of of vertices in path (list of edges) as + maximum, mininum and distance between start and endpoint + it it expects a 'not reversed' flag for every edge''' + numedges=len(debuglist) + if numedges == 1 and len(debuglist[0][0].Vertexes) == 1: + return 0.0,0.0,0.0 + outerdistance = debuglist[0][0].Vertexes[(not debuglist[0][1])*-1].\ + Point.sub(debuglist[-1][0].Vertexes[(debuglist[-1][1])*-1].\ + Point).Length + if numedges > 1: + innerdistances=[debuglist[i][0].Vertexes[debuglist[i][1]*-1].\ + Point.sub(debuglist[i+1][0].Vertexes[(not debuglist[i+1][1])*\ + -1].Point).Length for i in range(numedges-1)] + return max(innerdistances),min(innerdistances),outerdistance + else: + return 0.0,0.0,outerdistance + +def edgestowires(edgelist,eps=0.001): + '''takes list of edges and returns a list of wires''' + import Part, Draft + # todo remove double edges + wirelist=[] + #for path in findConnectedEdges(edgelist,eps=eps): + for path,debug in zip(*findConnectedEdges(edgelist,eps=eps,debug=True)): + maxd,mind,outerd = endpointdistancedebuglist(debug) + assert(maxd <= eps*2) # Assume the input to be broken + if maxd < eps*2 and maxd > 0.000001: #OCC wont like it if maxd > 0.02: + print 'endpointdistance max:%f min:%f, ends:%f' %(maxd,mind,outerd) + + if True: + tobeclosed = outerd < eps*2 + # OpenSCAD uses 0.001 for corase grid + #from draftlibs import fcvec, fcgeo + #w2=fcgeo.superWire(path,tobeclosed) + w2=superWireReverse(debug,tobeclosed) + wirelist.append(w2) + else:#this locks up FreeCAD + comp=Part.Compound(path) + wirelist.append(comp.connectEdgesToWires(False,eps).Wires[0]) + #wirelist.append(comp.connectEdgesToWires(False,0.1).Wires[0]) + else: + done = False + try: + wire=Part.Wire(path) + #if not close or wire.isClosed or outerd > 0.0001: + wirelist.append(Part.Wire(path)) + done = True + except: + pass + if not done: + comp=Part.Compound(path) + wirelist.append(comp.connectEdgesToWires(False,eps).Wires[0]) + return wirelist + +def subtractfaces(faces): + '''searches for the biggest face and subtracts all smaller ones from the + first. Only makes sense if all faces overlap.''' + if len(faces)==1: + return faces[0] + else: + facelist=sorted(faces,key=(lambda shape: shape.Area),reverse=True) + base=facelist[0] + tool=reduce(lambda p1,p2: p1.fuse(p2),facelist[1:]) + return base.cut(tool) + +def fusefaces(faces): + if len(faces)==1: + return faces[0] + else: + return reduce(lambda p1,p2: p1.fuse(p2),faces) + +def subtractfaces2(faces): + '''Sort faces, check if they overlap. Subtract overlapping face and fuse + nonoverlapping groups.''' + return fusefaces([subtractfaces(facegroup) for facegroup in findoverlappingfaces(faces)]) + +def edgestofaces(edges,algo=3,eps=0.001): + #edges=[] + #for shapeobj in (objs): + # edges.extend(shapeobj.Shape.Edges) + #taken from Drafttools + #from draftlibs import fcvec, fcgeo + import Part + #wires = fcgeo.findWires(edges) + wires = edgestowires(edges,eps) + facel=[] + for w in wires: + #assert(len(w.Edges)>1) + if not w.isClosed(): + p0 = w.Vertexes[0].Point + p1 = w.Vertexes[-1].Point + edges2 = w.Edges[:] + try: + edges2.append(Part.Line(p1,p0).toShape()) + w = Part.Wire(edges2) + #w = Part.Wire(fcgeo.sortEdges(edges2)) + except: + comp=Part.Compound(edges2) + w = comp.connectEdgesToWires(False,eps).Wires[0] + facel.append(Part.Face(w)) + #if w.isValid: #debuging + # facel.append(Part.Face(w)) + #else: + # Part.show(w) + if algo is None: + return facel + elif algo == 1: #stabale behavior + return subtractfaces(facel) + elif algo == 0: #return all faces + return Part.Compound(facel) + elif algo == 2: + return subtractfaces2(facel) + elif algo == 3: + return Overlappingfaces(facel).makeshape() + +def superWireReverse(debuglist,closed=False): + '''superWireReverse(debuglist,[closed]): forces a wire between edges + that don't necessarily have coincident endpoints. If closed=True, wire + will always be closed. debuglist has a tuple for every edge.The first + entry is the edge, the second is the flag 'does not nedd to be inverted' + ''' + #taken from draftlibs + def median(v1,v2): + vd = v2.sub(v1) + vd.scale(.5,.5,.5) + return v1.add(vd) + try: + from DraftGeomUtils import findMidpoint + except ImportError: #workaround for Version 0.12 + from draftlibs.fcgeo import findMidpoint #workaround for Version 0.12 + import Part + #edges = sortEdges(edgeslist) + print debuglist + newedges = [] + for i in range(len(debuglist)): + curr = debuglist[i] + if i == 0: + if closed: + prev = debuglist[-1] + else: + prev = None + else: + prev = debuglist[i-1] + if i == (len(debuglist)-1): + if closed: + nexte = debuglist[0] + else: + nexte = None + else: + nexte = debuglist[i+1] + print i,prev,curr,nexte + if prev: + if curr[0].Vertexes[-1*(not curr[1])].Point == \ + prev[0].Vertexes[-1*prev[1]].Point: + p1 = curr[0].Vertexes[-1*(not curr[1])].Point + else: + p1 = median(curr[0].Vertexes[-1*(not curr[1])].Point,\ + prev[0].Vertexes[-1*prev[1]].Point) + else: + p1 = curr[0].Vertexes[-1*(not curr[1])].Point + if nexte: + if curr[0].Vertexes[-1*curr[1]].Point == \ + nexte[0].Vertexes[-1*(not nexte[1])].Point: + p2 = nexte[0].Vertexes[-1*(not nexte[1])].Point + else: + p2 = median(curr[0].Vertexes[-1*(curr[1])].Point,\ + nexte[0].Vertexes[-1*(not nexte[1])].Point) + else: + p2 = curr[0].Vertexes[-1*(curr[1])].Point + if isinstance(curr[0].Curve,Part.Line): + print "line",p1,p2 + newedges.append(Part.Line(p1,p2).toShape()) + elif isinstance(curr[0].Curve,Part.Circle): + p3 = findMidpoint(curr[0]) + print "arc",p1,p3,p2 + newedges.append(Part.Arc(p1,p3,p2).toShape()) + else: + print "Cannot superWire edges that are not lines or arcs" + return None + print newedges + return Part.Wire(newedges) diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py new file mode 100644 index 000000000..165f841a2 --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCADCommands.py @@ -0,0 +1,173 @@ +import FreeCAD,FreeCADGui +from PyQt4 import QtGui, QtCore + +class ColorCodeShape: + "Change the Color of selected or all Shapes based on their validity" + def Activated(self): + import colorcodeshapes + selection=FreeCADGui.Selection.getSelectionEx() + if len(selection) > 0: + objs=[selobj.Object for selobj in selection] + + else: + objs=FreeCAD.ActiveDocument.Objects + colorcodeshapes.colorcodeshapes(objs) + def GetResources(self): + return {'Pixmap' : 'OpenSCAD_ColorCodeShape', 'MenuText': 'Color Shapes', 'ToolTip': 'Color Shapes by validity and type'} + +class Edgestofaces: + def Activated(self): + from OpenSCAD2Dgeom import edgestofaces,Overlappingfaces + selection=FreeCADGui.Selection.getSelectionEx() + edges=[] + for selobj in selection: + edges.extend(selobj.Object.Shape.Edges) + Overlappingfaces(edgestofaces(edges,None)).makefeatures(FreeCAD.ActiveDocument) + for selobj in selection: + selobj.Object.ViewObject.hide() + FreeCAD.ActiveDocument.recompute() + + def GetResources(self): + return {'Pixmap' : 'python', 'MenuText': 'EdgesToFaces', 'ToolTip': 'Convert Edges to Faces'} + +class RefineShapeFeature: + def Activated(self): + import Part,OpenSCADFeatures + selection=FreeCADGui.Selection.getSelectionEx() + for selobj in selection: + #newobj=FreeCAD.ActiveDocument.addObject("Part::FeaturePython",'refine') + newobj=selobj.Document.addObject("Part::FeaturePython",'refine') + OpenSCADFeatures.RefineShape(newobj,selobj.Object) + OpenSCADFeatures.ViewProviderTree(newobj.ViewObject) + newobj.Label='refine_%s' % selobj.Object.Label + selobj.Object.ViewObject.hide() + FreeCAD.ActiveDocument.recompute() + def GetResources(self): + return {'Pixmap' : 'OpenSCAD_RefineShapeFeature', 'MenuText': \ + 'Refine Shape Feature', 'ToolTip': 'Create Refine Shape Feature'} + + +class ExpandPlacements: + '''This should aid interactive repair in the future + but currently it breaks extrusions, as axis, base and so on have to be + recalculated''' + def Activated(self): + import expandplacements + selobj=FreeCADGui.Selection.getSelectionEx()[0] + expandplacements.expandplacements(selobj.Object,FreeCAD.Placement()) + FreeCAD.ActiveDocument.recompute() + def GetResources(self): + return {'Pixmap' : 'python', 'MenuText': 'Expand Placements', 'ToolTip': 'Expand all placements downwards the FeatureTree'} + +class ReplaceObject: + def Activated(self): + import replaceobj + #objs=[selobj.Object for selobj in FreeCADGui.Selection.getSelectionEx()] + objs=FreeCADGui.Selection.getSelection() + if len(objs)==3: + replaceobj.replaceobjfromselection(objs) + else: + FreeCAD.Console.PrintError('please select 3 objects first') + def GetResources(self): + return {'Pixmap' : 'OpenSCAD_ReplaceObject', 'MenuText': \ + 'Replace Object', 'ToolTip': \ + 'Replace an object in the Feature Tree select old, new and parent object'} + + +class RemoveSubtree: + def Activated(self): + def addsubobjs(obj,toremoveset): + toremove.add(obj) + for subobj in obj.OutList: + addsubobjs(subobj,toremoveset) + + import FreeCAD,FreeCADGui + objs=FreeCADGui.Selection.getSelection() + toremove=set() + for obj in objs: + addsubobjs(obj,toremove) + checkinlistcomplete =False + while not checkinlistcomplete: + for obj in toremove: + if (obj not in objs) and (frozenset(obj.InList) - toremove): + toremove.remove(obj) + break + else: + checkinlistcomplete = True + for obj in toremove: + obj.Document.removeObject(obj.Name) + def GetResources(self): + return {'Pixmap' : 'OpenSCAD_RemoveSubtree', 'MenuText': \ + 'Remove Objects and thier Children', 'ToolTip': \ + 'Removes the selected Objects and all Children that are not referenced from other objects'} + +class AddSCADWidget(QtGui.QWidget): + def __init__(self,*args): + QtGui.QWidget.__init__(self,*args) + self.textEdit=QtGui.QTextEdit() + self.buttonadd = QtGui.QPushButton(u'Add') + self.buttonclear = QtGui.QPushButton(u'Clear') + self.checkboxmesh = QtGui.QCheckBox(u'as Mesh') + layouth=QtGui.QHBoxLayout() + layouth.addWidget(self.buttonadd) + layouth.addWidget(self.buttonclear) + layout= QtGui.QVBoxLayout() + layout.addLayout(layouth) + layout.addWidget(self.checkboxmesh) + layout.addWidget(self.textEdit) + self.setLayout(layout) + self.setWindowTitle(u'Add OpenSCAD Element') + self.textEdit.setText(u'cube();') + self.buttonclear.clicked.connect(self.textEdit.clear) + +class AddSCADTask: + def __init__(self): + self.form = AddSCADWidget() + self.form.buttonadd.clicked.connect(self.addelement) + def getStandardButtons(self): + return int(QtGui.QDialogButtonBox.Close) + + def isAllowedAlterSelection(self): + return True + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return True + + def addelement(self): + scadstr=unicode(self.form.textEdit.toPlainText()) + asmesh=self.form.checkboxmesh.checkState() + import OpenSCADUtils, os + extension= 'stl' if asmesh else 'csg' + tmpfilename=OpenSCADUtils.callopenscadstring(scadstr,extension) + if tmpfilename: + doc=FreeCAD.activeDocument() or FreeCAD.newDocument() + if asmesh: + import Mesh + Mesh.insert(tmpfilename,doc.Name) + else: + import importCSG + importCSG.insert(tmpfilename,doc.Name) + os.unlink(tmpfilename) + else: + FreeCAD.Console.PrintError('Running OpenSCAD failed\n') + +class AddOpenSCADElement: + def Activated(self): + panel = AddSCADTask() + FreeCADGui.Control.showDialog(panel) + def GetResources(self): + return {'Pixmap' : 'python', 'MenuText': \ + 'Add OpenSCAD Element...', 'ToolTip': \ + 'Add an OpenSCAD Element by entering OpenSCAD Code and executing the OpenSCAD binary'} + + +FreeCADGui.addCommand('ColorCodeShape',ColorCodeShape()) +FreeCADGui.addCommand('Edgestofaces',Edgestofaces()) +FreeCADGui.addCommand('RefineShapeFeature',RefineShapeFeature()) +FreeCADGui.addCommand('ExpandPlacements',ExpandPlacements()) +FreeCADGui.addCommand('ReplaceObject',ReplaceObject()) +FreeCADGui.addCommand('RemoveSubtree',RemoveSubtree()) +FreeCADGui.addCommand('AddOpenSCADElement',AddOpenSCADElement()) diff --git a/src/Mod/OpenSCAD/OpenSCADFeatures.py b/src/Mod/OpenSCAD/OpenSCADFeatures.py new file mode 100644 index 000000000..176dffc02 --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCADFeatures.py @@ -0,0 +1,433 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2012 Sebastian Hoogen * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +__title__="FreeCAD OpenSCAD Workbench - Parametric Features" +__author__ = "Sebastian Hoogen" +__url__ = ["http://free-cad.sourceforge.net"] + +''' +This Script includes python Features to represent OpenSCAD Operations +''' +class ViewProviderTree: + "A generic View Provider for Elements with Children" + + def __init__(self, obj): + obj.Proxy = self + self.Object = obj.Object + + def attach(self, obj): + self.Object = obj.Object + return + + def updateData(self, fp, prop): + return + + def getDisplayModes(self,obj): + modes=[] + return modes + + def setDisplayMode(self,mode): + return mode + + def onChanged(self, vp, prop): + return + + def __getstate__(self): +# return {'ObjectName' : self.Object.Name} + return None + + def __setstate__(self,state): + if state is not None: + try: + import FreeCAD + doc = FreeCAD.ActiveDocument #crap + self.Object = doc.getObject(state['ObjectName']) + except: + raise +# return None + + def claimChildren(self): + objs = [] + if hasattr(self.Object.Proxy,"Base"): + objs.append(self.Object.Proxy.Base) + if hasattr(self.Object,"Base"): + objs.append(self.Object.Base) + if hasattr(self.Object,"Objects"): + objs.extend(self.Object.Objects) + if hasattr(self.Object,"Components"): + objs.extend(self.Object.Components) + return objs + + def getIcon(self): + #if self.Object.Proxy.__class__ == MatrixTransform: + if isinstance(self.Object.Proxy,MatrixTransform): + return """/* XPM */ +static char * matrix_xpm[] = { +"16 16 3 1", +" c #0079FF", +". c #FFFFFF", +"+ c #000000", +" ......... .", +" ............. .", +" . . . . . .", +" . . . . . .", +" ............. .", +" . . . . . .", +" . . . . . .", +" ............. .", +" . . . . . .", +" . . . . . .", +" ............. .", +" ...........+. .", +" ..+..+..+..+. .", +" ............. .", +" ......... .", +"................"};""" + elif False: + return """/* XPM */ +static char * qm_xpm[] = { +"16 16 37 1", +" c None", +". c #FFFFFF", +"+ c #CBE3FF", +"@ c #70B3FF", +"# c #3092FF", +"$ c #0D7FFF", +"% c #047BFF", +"& c #1885FF", +"* c #56A6FF", +"= c #CFE5FF", +"- c #0079FF", +"; c #067CFF", +"> c #B9DAFF", +", c #88C0FF", +"' c #CAE3FF", +") c #F2F8FF", +"! c #FAFCFF", +"~ c #CEE5FF", +"{ c #459DFF", +"] c #2D90FF", +"^ c #EEF6FF", +"/ c #077CFF", +"( c #B1D6FF", +"_ c #3494FF", +": c #90C4FF", +"< c #037AFF", +"[ c #BCDBFF", +"} c #6EB2FF", +"| c #087DFF", +"1 c #A8D1FF", +"2 c #8AC1FF", +"3 c #1C87FF", +"4 c #CCE4FF", +"5 c #1F89FF", +"6 c #CDE4FF", +"7 c #027AFF", +"8 c #FDFDFF", +"....+@#$%&*=....", +"....-------;>...", +"....#,')!~{-]...", +"..........^-/...", +"..........(-_...", +".........:/<[...", +"........}-|1....", +".......2-34.....", +".......5-6......", +".......7-8......", +".......--.......", +"................", +"................", +".......--.......", +".......--.......", +".......--......."}; +""" + else: + return """/* XPM */ +static char * openscadlogo_xpm[] = { +"16 16 33 1", +" c None", +". c #61320B", +"+ c #5D420B", +"@ c #4F4C09", +"# c #564930", +"$ c #754513", +"% c #815106", +"& c #666509", +"* c #875F55", +"= c #6E7000", +"- c #756A53", +"; c #717037", +"> c #946637", +", c #92710E", +"' c #797A0A", +") c #7C7720", +"! c #8A8603", +"~ c #88886F", +"{ c #AF8181", +"] c #999908", +"^ c #BB8D8D", +"/ c #AAAA00", +"( c #A9A880", +"_ c #B5B419", +": c #C1A9A9", +"< c #B1B19A", +"[ c #BEBE00", +"} c #B9B8B4", +"| c #CACC00", +"1 c #D4D4BC", +"2 c #DBD2D0", +"3 c #EEEEED", +"4 c #FDFFFC", +"4444444444444444", +"4444443113444444", +"4444<;']]!;<^^24", +"444(&@!]]]=&#^{3", +"44<']')@++)!&*{^", +"44)]/[|//[/]'@{{", +"42=/_|||||[]!&*{", +"4(&][|||||[/'@#}", +"3-..,|||||[)&&~4", +"^*$%.!|||[!+/](4", +"^{%%%._[[_&/[_14", +":{>%%.!//])_[_44", +"2{{%%+!]!!)]]344", +"4:{{#@&=&&@#3444", +"44224}~--~}44444", +"4444444444444444"}; +""" + + +class MatrixTransform: + def __init__(self, obj,matrix=None,child=None): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that must be tranfsformed") + obj.addProperty("App::PropertyMatrix","Matrix","Matrix", "Transformation Matrix") + obj.Proxy = self + obj.Matrix = matrix + obj.Base = child + + def onChanged(self, fp, prop): + "Do something when a property has changed" + pass + + def updateProperty(self, fp, prop, value): + epsilon = 0.0001 + if abs(getattr(fp, prop) - value) > epsilon: + setattr(fp, prop, value) + + def execute(self, fp): + pass + if fp.Matrix and fp.Base: + sh=fp.Base.Shape#.copy() + m=sh.Placement.toMatrix().multiply(fp.Matrix) + fp.Shape = sh.transformGeometry(m) + #else: + #FreeCAD.Console.PrintMessage('base %s\nmat %s/n' % (fp.Base,fp.Matrix)) + +class ImportObject: + def __init__(self, obj,child=None): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that must be tranfsformed") + obj.Proxy = self + obj.Base = child + + def onChanged(self, fp, prop): + "Do something when a property has changed" + pass + + def execute(self, fp): + pass +# if fp.Base: +# fp.Shape = fp.Base.Shape.copy() + +class RefineShape: + '''return a refined shape''' + def __init__(self, obj,child=None): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that must be refined") + obj.Proxy = self + obj.Base = child + + def onChanged(self, fp, prop): + "Do something when a property has changed" + pass + + def execute(self, fp): + if fp.Base and fp.Base.Shape.isValid(): + sh=fp.Base.Shape.removeSplitter() + if sh.Placement.isNull(): + fp.Shape=sh + else: + fp.Shape=sh.transformGeometry(sh.Placement.toMatrix()) + +class GetWire: + '''return the first wire from a given shape''' + def __init__(self, obj,child=None): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that wire must be extracted") + obj.Proxy = self + obj.Base = child + + def onChanged(self, fp, prop): + "Do something when a property has changed" + pass + + def execute(self, fp): + if fp.Base: + #fp.Shape=fp.Base.Shape.Wires[0] + fp.Shape=fp.Base.Shape.Wires[0].transformGeometry(\ + fp.Base.Shape.Placement.toMatrix()) + +class Frustum: + def __init__(self, obj,r1=1,r2=2,n=3,h=4): + obj.addProperty("App::PropertyInteger","FacesNumber","Base","Number of faces") + obj.addProperty("App::PropertyDistance","Radius1","Base","Radius of lower the inscribed control circle") + obj.addProperty("App::PropertyDistance","Radius2","Base","Radius of upper the inscribed control circle") + obj.addProperty("App::PropertyDistance","Height","Base","Height of the Frustum") + + obj.FacesNumber = n + obj.Radius1 = r1 + obj.Radius2= r2 + obj.Height= h + obj.Proxy = self + + def execute(self, fp): + self.createGeometry(fp) + + def onChanged(self, fp, prop): + if prop in ["FacesNumber","Radius1","Radius2","Height"]: + self.createGeometry(fp) + + def createGeometry(self,fp): + if all((fp.Radius1,fp.Radius2,fp.FacesNumber,fp.Height)): + import math + import FreeCAD,Part + #from draftlibs import fcgeo + plm = fp.Placement + wires=[] + faces=[] + for ir,r in enumerate((fp.Radius1,fp.Radius2)): + angle = (math.pi*2)/fp.FacesNumber + pts = [FreeCAD.Vector(r,0,ir*fp.Height)] + for i in range(fp.FacesNumber-1): + ang = (i+1)*angle + pts.append(FreeCAD.Vector(\ + r*math.cos(ang),r*math.sin(ang),ir*fp.Height)) + pts.append(pts[0]) + shape = Part.makePolygon(pts) + face = Part.Face(shape) + wires.append(shape) + faces.append(face) + #shellperi=Part.makeRuledSurface(*wires) + shellperi=Part.makeLoft(wires) + shell=Part.Shell(shellperi.Faces+faces) + fp.Shape = Part.Solid(shell) + fp.Placement = plm + +class Twist: + def __init__(self, obj,child=None,h=1.0,angle=0.0): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that must be tranfsformed") + obj.addProperty("App::PropertyAngle","Angle","Base","Twist Angle in degrees") #degree or rad + obj.addProperty("App::PropertyDistance","Height","Base","Height of the Extrusion") + + obj.Base = child + obj.Angle = angle + obj.Height = h + obj.Proxy = self + + def execute(self, fp): + self.createGeometry(fp) + + def onChanged(self, fp, prop): + pass + #if prop in ["Angle","Height"]: + # self.createGeometry(fp) + + def createGeometry(self,fp): + import FreeCAD,Part,math + #tangle = -twist #openscad uses degrees clockwise + if fp.Base and fp.Angle and fp.Height and \ + fp.Base.Shape.isValid(): + #wire=fp.Base.Shape.Wires[0].transformGeometry(fp.Base.Placement.toMatrix()) + solids=[] + for faceb in fp.Base.Shape.Faces: + #fp.Base.Shape.Faces[0].check() + + #faceb=fp.Base.Shape.Faces[0] + #faceb=fp.Base.Shape.removeSplitter().Faces[0] + faceu=faceb.copy() + facetransform=FreeCAD.Matrix() + facetransform.rotateZ(math.radians(fp.Angle)) + facetransform.move(FreeCAD.Vector(0,0,fp.Height)) + faceu.transformShape(facetransform) + step = 2 + int(fp.Angle // 90) #resolution in z direction + zinc = fp.Height/(step-1.0) + angleinc = math.radians(fp.Angle)/(step-1.0) + spine = Part.makePolygon([(0,0,i*zinc) \ + for i in range(step)]) + auxspine = Part.makePolygon([(math.cos(i*angleinc),\ + math.sin(i*angleinc),i*fp.Height/(step-1)) \ + for i in range(step)]) + faces=[faceb,faceu] + for wire in faceb.Wires: + pipeshell=Part.BRepOffsetAPI.MakePipeShell(spine) + pipeshell.setSpineSupport(spine) + pipeshell.add(wire) + pipeshell.setAuxiliarySpine(auxspine,True,False) + print pipeshell.getStatus() + assert(pipeshell.isReady()) + #fp.Shape=pipeshell.makeSolid() + pipeshell.build() + faces.extend(pipeshell.shape().Faces) + try: + fullshell=Part.Shell(faces) + solid=Part.Solid(fullshell) + if solid.Volume < 0: + solid.reverse() + assert(solid.Volume >= 0) + solids.append(solid) + except: + solids.append(Part.Compound(faces)) + fp.Shape=Part.Compound(solids) + +class OffsetShape: + def __init__(self, obj,child=None,offset=1.0): + obj.addProperty("App::PropertyLink","Base","Base", + "The base object that must be tranfsformed") + obj.addProperty("App::PropertyDistance","Offset","Base","Offset outwards") + + obj.Base = child + obj.Offset = offset + obj.Proxy = self + + def execute(self, fp): + self.createGeometry(fp) + + def onChanged(self, fp, prop): + pass + #if prop in ["Offset"]: + # self.createGeometry(fp) + + def createGeometry(self,fp): + if fp.Base and fp.Offset: + fp.Shape=fp.Base.Shape.makeOffsetShape(self.Offset,1e-6) diff --git a/src/Mod/OpenSCAD/OpenSCADUtils.py b/src/Mod/OpenSCAD/OpenSCADUtils.py new file mode 100644 index 000000000..8f815b1e2 --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCADUtils.py @@ -0,0 +1,115 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2012 Sebastian Hoogen * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +__title__="FreeCAD OpenSCAD Workbench - Utility Fuctions" +__author__ = "Sebastian Hoogen" +__url__ = ["http://free-cad.sourceforge.net"] + +''' +This Script includes various pyhton helper functions that are shared across +the module +''' +def callopenscad(inputfilename,outputfilename=None,outputext='csg',keepname=False): + '''call the open scad binary + returns the filename of the result (or None), + please delete the file afterwards''' + import FreeCAD,os,subprocess,tempfile,time + osfilename = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetString('openscadexecutable') + if osfilename and os.path.isfile(osfilename): + if not outputfilename: + dir1=tempfile.gettempdir() + if keepname: + outputfilename=os.path.join(dir1,'%s.%s' % (os.path.split(inputfilename)[1].rsplit('.',1)[0],outputext)) + else: + outputfilename=os.path.join(dir1,'output-%d.%s' % (int(time.time()*10) % 1000000,outputext)) + if subprocess.call([osfilename,'-o',outputfilename,inputfilename]) == 0: + return outputfilename + +def callopenscadstring(scadstr,outputext='csg'): + '''create a tempfile and call the open scad binary + returns the filename of the result (or None), + please delete the file afterwards''' + import os,tempfile,time + dir1=tempfile.gettempdir() + inputfilename=os.path.join(dir1,'input-%d.scad' % (int(time.time()*10) % 1000000)) + inputfile = open(inputfilename,'w') + inputfile.write(scadstr) + inputfile.close() + outputfilename = callopenscad(inputfilename,outputext=outputext,keepname=True) + os.unlink(inputfilename) + return outputfilename + +def reverseimporttypes(): + '''allows to search for supported filetypes by module''' + + def getsetfromdict(dict1,index): + if index in dict1: + return dict1[index] + else: + set1=set() + dict1[index]=set1 + return set1 + + importtypes={} + import FreeCAD + for key,value in FreeCAD.getImportType().iteritems(): + if type(value) is str: + getsetfromdict(importtypes,value).add(key) + else: + for vitem in value: + getsetfromdict(importtypes,vitem).add(key) + return importtypes + + +def fcsubmatrix(m): + """Extracts the 3x3 Submatrix from a freecad Matrix Object + as a list of row vectors""" + return [[m.A11,m.A12,m.A13],[m.A21,m.A22,m.A23],[m.A31,m.A32,m.A33]] + +def multiplymat(l,r): + """multiply matrices given as lists of row vectors""" + rt=zip(*r) #transpose r + mat=[] + for y in range(len(rt)): + mline=[] + for x in range(len(l)): + mline.append(sum([le*re for le,re in zip(l[y],rt[x])])) + mat.append(mline) + return mat + +def isorthogonal(submatrix,precision=4): + """checking if 3x3 Matrix is ortogonal (M*Transp(M)==I)""" + prod=multiplymat(submatrix,zip(*submatrix)) + return [[round(f,precision) for f in line] for line in prod]==[[1,0,0],[0,1,0],[0,0,1]] + +def detsubmatrix(s): + """get the determinant of a 3x3 Matrix given as list of row vectors""" + return s[0][0]*s[1][1]*s[2][2]+s[0][1]*s[1][2]*s[2][0]+s[0][2]*s[1][0]*s[2][1]\ + -s[2][0]*s[1][1]*s[0][2]-s[2][1]*s[1][2]*s[0][0]-s[2][2]*s[1][0]*s[0][1] + +def isspecialorthogonalpython(submat,precision=4): + return isorthogonal(submat,precision) and round(detsubmatrix(submat),precision)==1 + +def isspecialorthogonal(mat,precision=4): + return abs(mat.submatrix(3).isOrthogonal(10**(-precision))-1.0) < 10**(-precision) and \ + abs(mat.submatrix(3).determinant()-1.0) < 10**(-precision) diff --git a/src/Mod/OpenSCAD/OpenSCAD_rc.py b/src/Mod/OpenSCAD/OpenSCAD_rc.py new file mode 100644 index 000000000..d733868be --- /dev/null +++ b/src/Mod/OpenSCAD/OpenSCAD_rc.py @@ -0,0 +1,8268 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created: Mo. Jun 25 14:52:51 2012 +# by: The Resource Compiler for PyQt (Qt v4.6.3) +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore + +qt_resource_data = "\ +\x00\x00\x44\x7f\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x3f\x3e\x0a\x3c\x75\x69\x20\x76\x65\x72\x73\x69\x6f\ +\x6e\x3d\x22\x34\x2e\x30\x22\x3e\x0a\x20\x3c\x63\x6c\x61\x73\x73\ +\x3e\x47\x75\x69\x3a\x3a\x44\x69\x61\x6c\x6f\x67\x3a\x3a\x44\x6c\ +\x67\x53\x65\x74\x74\x69\x6e\x67\x73\x4f\x70\x65\x6e\x53\x43\x41\ +\x44\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x3c\x77\x69\x64\x67\ +\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x57\x69\x64\x67\x65\ +\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x47\x75\x69\x3a\x3a\x44\x69\ +\x61\x6c\x6f\x67\x3a\x3a\x44\x6c\x67\x53\x65\x74\x74\x69\x6e\x67\ +\x73\x4f\x70\x65\x6e\x53\x43\x41\x44\x22\x3e\x0a\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x67\x65\ +\x6f\x6d\x65\x74\x72\x79\x22\x3e\x0a\x20\x20\x20\x3c\x72\x65\x63\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x78\x3e\x30\x3c\x2f\x78\x3e\x0a\ +\x20\x20\x20\x20\x3c\x79\x3e\x30\x3c\x2f\x79\x3e\x0a\x20\x20\x20\ +\x20\x3c\x77\x69\x64\x74\x68\x3e\x35\x37\x35\x3c\x2f\x77\x69\x64\ +\x74\x68\x3e\x0a\x20\x20\x20\x20\x3c\x68\x65\x69\x67\x68\x74\x3e\ +\x36\x32\x39\x3c\x2f\x68\x65\x69\x67\x68\x74\x3e\x0a\x20\x20\x20\ +\x3c\x2f\x72\x65\x63\x74\x3e\x0a\x20\x20\x3c\x2f\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x3e\x0a\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x77\x69\x6e\x64\x6f\x77\x54\x69\ +\x74\x6c\x65\x22\x3e\x0a\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\ +\x3e\x47\x65\x6e\x65\x72\x61\x6c\x20\x73\x65\x74\x74\x69\x6e\x67\ +\x73\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x3c\x6c\x61\x79\x6f\ +\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x56\x42\x6f\x78\x4c\ +\x61\x79\x6f\x75\x74\x22\x3e\x0a\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x70\x61\x63\x69\ +\x6e\x67\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6e\x75\x6d\x62\x65\x72\ +\x3e\x36\x3c\x2f\x6e\x75\x6d\x62\x65\x72\x3e\x0a\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x61\ +\x72\x67\x69\x6e\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6e\x75\x6d\x62\ +\x65\x72\x3e\x39\x3c\x2f\x6e\x75\x6d\x62\x65\x72\x3e\x0a\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x3c\x77\x69\x64\x67\ +\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x47\x72\x6f\x75\x70\ +\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x72\x6f\x75\x70\ +\x42\x6f\x78\x22\x3e\x0a\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x69\x74\x6c\x65\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\ +\x3e\x47\x65\x6e\x65\x72\x61\x6c\x20\x4f\x70\x65\x6e\x53\x43\x41\ +\x44\x20\x53\x65\x74\x74\x69\x6e\x67\x73\x3c\x2f\x73\x74\x72\x69\ +\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\ +\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x56\x42\x6f\x78\x4c\x61\ +\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x76\x65\x72\x74\ +\x69\x63\x61\x6c\x4c\x61\x79\x6f\x75\x74\x5f\x32\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\ +\x3d\x22\x51\x48\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\ +\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\ +\x61\x79\x6f\x75\x74\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\ +\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\x22\x66\ +\x63\x6c\x61\x62\x65\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\ +\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x4f\x70\x65\ +\x6e\x53\x43\x41\x44\x20\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\ +\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\x3a\x3a\x50\ +\x72\x65\x66\x46\x69\x6c\x65\x43\x68\x6f\x6f\x73\x65\x72\x22\x20\ +\x6e\x61\x6d\x65\x3d\x22\x67\x75\x69\x3a\x3a\x70\x72\x65\x66\x66\ +\x69\x6c\x65\x63\x68\x6f\x6f\x73\x65\x72\x22\x20\x6e\x61\x74\x69\ +\x76\x65\x3d\x22\x74\x72\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6d\x69\x6e\x69\x6d\x75\x6d\x53\x69\x7a\x65\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x69\x7a\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x77\x69\x64\x74\x68\x3e\x33\x30\x30\x3c\x2f\x77\x69\x64\ +\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x68\x65\x69\x67\x68\x74\x3e\x30\x3c\x2f\x68\x65\x69\x67\x68\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\ +\x73\x69\x7a\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\ +\x6e\x67\x3e\x54\x68\x65\x20\x70\x61\x74\x68\x20\x74\x6f\x20\x74\ +\x68\x65\x20\x4f\x70\x65\x6e\x53\x43\x41\x44\x20\x65\x78\x65\x63\ +\x75\x74\x65\x61\x62\x6c\x65\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\ +\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\x64\x73\ +\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x6f\x70\x65\x6e\ +\x73\x63\x61\x64\x65\x78\x65\x63\x75\x74\x61\x62\x6c\x65\x3c\x2f\ +\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\ +\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\ +\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\ +\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\ +\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\ +\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x3c\x69\x74\ +\x65\x6d\x3e\x0a\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\ +\x63\x6c\x61\x73\x73\x3d\x22\x51\x47\x72\x6f\x75\x70\x42\x6f\x78\ +\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x72\x6f\x75\x70\x42\x6f\x78\ +\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x69\x74\x6c\x65\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\ +\x4f\x70\x65\x6e\x53\x43\x41\x44\x20\x69\x6d\x70\x6f\x72\x74\x3c\ +\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x3c\ +\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x56\ +\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\x3d\ +\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x4c\x61\x79\x6f\x75\x74\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\ +\x61\x73\x73\x3d\x22\x51\x48\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\ +\x22\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\ +\x61\x6c\x4c\x61\x79\x6f\x75\x74\x5f\x35\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\x43\x68\x65\ +\x63\x6b\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x75\x69\ +\x3a\x3a\x70\x72\x65\x66\x63\x68\x65\x63\x6b\x62\x6f\x78\x76\x69\ +\x65\x77\x74\x72\x65\x65\x70\x72\x6f\x76\x69\x64\x65\x72\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\ +\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x72\x69\x6e\x67\x3e\x49\x66\x20\x74\x68\x69\x73\x20\ +\x69\x73\x20\x63\x68\x65\x63\x6b\x65\x64\x2c\x20\x46\x65\x61\x74\ +\x75\x72\x65\x73\x20\x77\x69\x6c\x6c\x20\x63\x6c\x61\x69\x6d\x20\ +\x74\x68\x69\x65\x72\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x69\ +\x6e\x20\x74\x68\x65\x20\x74\x72\x65\x65\x20\x76\x69\x65\x77\x3c\ +\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\ +\x6e\x67\x3e\x55\x73\x65\x20\x56\x69\x65\x77\x50\x72\x6f\x76\x69\ +\x64\x65\x72\x20\x69\x6e\x20\x54\x72\x65\x65\x20\x56\x69\x65\x77\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\ +\x74\x72\x79\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\ +\x72\x69\x6e\x67\x3e\x75\x73\x65\x56\x69\x65\x77\x50\x72\x6f\x76\ +\x69\x64\x65\x72\x54\x72\x65\x65\x3c\x2f\x63\x73\x74\x72\x69\x6e\ +\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\ +\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\x22\x20\x73\x74\x64\ +\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\x6f\x64\ +\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\x72\x69\ +\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\ +\x48\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\ +\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x61\x79\x6f\ +\x75\x74\x5f\x36\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\ +\x69\x3a\x3a\x50\x72\x65\x66\x43\x68\x65\x63\x6b\x42\x6f\x78\x22\ +\x20\x6e\x61\x6d\x65\x3d\x22\x67\x75\x69\x3a\x3a\x70\x72\x65\x66\ +\x63\x68\x65\x63\x6b\x62\x6f\x78\x6d\x75\x6c\x74\x6d\x61\x74\x72\ +\x69\x78\x66\x65\x61\x74\x75\x72\x65\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\ +\x6e\x67\x3e\x49\x66\x20\x74\x68\x69\x73\x20\x69\x73\x20\x63\x68\ +\x65\x63\x6b\x65\x64\x2c\x20\x4d\x75\x6c\x74\x6d\x61\x74\x72\x69\ +\x78\x20\x4f\x62\x6a\x65\x63\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\ +\x20\x50\x61\x72\x61\x6d\x65\x74\x72\x69\x63\x3c\x2f\x73\x74\x72\ +\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x55\ +\x73\x65\x20\x4d\x75\x6c\x74\x6d\x61\x74\x72\x69\x78\x20\x46\x65\ +\x61\x74\x75\x72\x65\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\ +\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\x64\x73\x65\x74\ +\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x75\x73\x65\x4d\x75\x6c\ +\x74\x6d\x61\x74\x72\x69\x78\x46\x65\x61\x74\x75\x72\x65\x3c\x2f\ +\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\ +\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\ +\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\ +\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\ +\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\ +\x61\x73\x73\x3d\x22\x51\x48\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\ +\x22\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\ +\x61\x6c\x4c\x61\x79\x6f\x75\x74\x5f\x37\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\ +\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x31\x32\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\ +\x69\x6e\x67\x3e\x54\x68\x65\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\ +\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x61\x63\x65\x73\x20\ +\x6f\x66\x20\x61\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x2c\x20\x70\x72\ +\x69\x73\x6d\x20\x6f\x72\x20\x66\x72\x75\x73\x74\x75\x6d\x2e\x20\ +\x49\x66\x20\x66\x6e\x20\x69\x73\x20\x67\x72\x65\x61\x74\x65\x72\ +\x20\x74\x68\x61\x6e\x20\x74\x68\x69\x73\x20\x76\x61\x6c\x75\x65\ +\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x69\x73\x20\x63\ +\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x20\x74\x6f\x20\x62\x65\x20\ +\x61\x20\x63\x69\x72\x63\x75\x6c\x61\x72\x2e\x20\x53\x65\x74\x20\ +\x74\x6f\x20\x30\x20\x66\x6f\x72\x20\x6e\x6f\x20\x6c\x69\x6d\x69\ +\x74\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x72\x69\x6e\x67\x3e\x4d\x61\x78\x69\x6d\x75\x6d\x20\x6e\x75\x6d\ +\x62\x65\x72\x20\x6f\x66\x20\x66\x61\x63\x65\x73\x20\x66\x6f\x72\ +\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x20\x28\x66\x6e\x29\x3c\x2f\ +\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x63\x65\x72\ +\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\ +\x6c\x53\x70\x61\x63\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\ +\x6d\x65\x3d\x22\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x65\x6e\ +\x75\x6d\x3e\x51\x74\x3a\x3a\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\ +\x6c\x3c\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x69\x7a\x65\x48\x69\x6e\ +\x74\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x69\x7a\x65\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\ +\x64\x74\x68\x3e\x34\x30\x3c\x2f\x77\x69\x64\x74\x68\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x68\x65\x69\x67\ +\x68\x74\x3e\x32\x30\x3c\x2f\x68\x65\x69\x67\x68\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\x69\x7a\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x73\x70\x61\x63\x65\x72\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\ +\x3d\x22\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\x53\x70\x69\x6e\x42\ +\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x75\x69\x3a\x3a\x70\ +\x72\x65\x66\x6d\x61\x78\x66\x6e\x73\x70\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\ +\x69\x6e\x67\x3e\x54\x68\x65\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\ +\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x61\x63\x65\x73\x20\ +\x6f\x66\x20\x61\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x2c\x20\x70\x72\ +\x69\x73\x6d\x20\x6f\x72\x20\x66\x72\x75\x73\x74\x75\x6d\x2e\x20\ +\x49\x66\x20\x66\x6e\x20\x69\x73\x20\x67\x72\x65\x61\x74\x65\x72\ +\x20\x74\x68\x61\x6e\x20\x74\x68\x69\x73\x20\x76\x61\x6c\x75\x65\ +\x20\x74\x68\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x69\x73\x20\x63\ +\x6f\x6e\x73\x69\x64\x65\x72\x65\x64\x20\x74\x6f\x20\x62\x65\x20\ +\x61\x20\x63\x69\x72\x63\x75\x6c\x61\x72\x2e\x20\x53\x65\x74\x20\ +\x74\x6f\x20\x30\x20\x66\x6f\x72\x20\x6e\x6f\x20\x6c\x69\x6d\x69\ +\x74\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\x61\x6c\x75\x65\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x6e\ +\x75\x6d\x62\x65\x72\x3e\x30\x3c\x2f\x6e\x75\x6d\x62\x65\x72\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\ +\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\x64\x73\ +\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x75\x73\x65\x4d\ +\x61\x78\x46\x4e\x3c\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\ +\x72\x65\x66\x50\x61\x74\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\ +\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\ +\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x69\ +\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\ +\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x48\x42\x6f\x78\ +\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\ +\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x61\x79\x6f\x75\x74\x5f\x38\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\ +\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\x3a\x3a\x50\ +\x72\x65\x66\x43\x68\x65\x63\x6b\x42\x6f\x78\x22\x20\x6e\x61\x6d\ +\x65\x3d\x22\x67\x75\x69\x3a\x3a\x70\x72\x65\x66\x63\x68\x65\x63\ +\x6b\x62\x6f\x78\x6d\x75\x6c\x74\x6d\x61\x74\x72\x69\x78\x66\x65\ +\x61\x74\x75\x72\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x44\ +\x65\x62\x75\x67\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\x20\x66\ +\x69\x6c\x65\x74\x79\x70\x65\x20\x74\x6f\x20\x70\x72\x6f\x74\x6f\ +\x74\x79\x70\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x72\x3c\x2f\x73\ +\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\ +\x3e\x44\x65\x62\x75\x67\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\ +\x20\x66\x69\x6c\x65\x74\x79\x70\x65\x20\x74\x6f\x20\x70\x72\x6f\ +\x74\x6f\x74\x79\x70\x65\x20\x69\x6d\x70\x6f\x72\x74\x65\x72\x3c\ +\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\ +\x72\x79\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\ +\x69\x6e\x67\x3e\x64\x65\x62\x75\x67\x52\x65\x67\x69\x73\x74\x65\ +\x72\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x3c\x2f\x63\x73\x74\x72\ +\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\x22\x20\x73\ +\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\ +\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\ +\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\ +\x22\x51\x48\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\ +\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x61\ +\x79\x6f\x75\x74\x5f\x33\x22\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\x6c\ +\x61\x79\x6f\x75\x74\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\ +\x67\x65\x74\x3e\x0a\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x47\x72\ +\x6f\x75\x70\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x72\ +\x6f\x75\x70\x42\x6f\x78\x5f\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\ +\x74\x69\x74\x6c\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x72\x69\x6e\x67\x3e\x4f\x70\x65\x6e\x53\x43\x41\x44\x20\x65\ +\x78\x70\x6f\x72\x74\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x51\x56\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\ +\x20\x6e\x61\x6d\x65\x3d\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x4c\ +\x61\x79\x6f\x75\x74\x5f\x32\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x6c\x61\x79\x6f\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x48\ +\x42\x6f\x78\x4c\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\x3d\ +\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x61\x79\x6f\x75\ +\x74\x5f\x32\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\ +\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\ +\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\ +\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x72\x69\x6e\x67\x3e\x6d\x61\x78\x69\x6d\x75\x6d\x20\ +\x66\x72\x61\x67\x6d\x65\x6e\x74\x20\x73\x69\x7a\x65\x3c\x2f\x73\ +\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x63\x65\x72\x20\ +\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\ +\x53\x70\x61\x63\x65\x72\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x65\ +\x6e\x75\x6d\x3e\x51\x74\x3a\x3a\x48\x6f\x72\x69\x7a\x6f\x6e\x74\ +\x61\x6c\x3c\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x69\x7a\x65\x48\x69\ +\x6e\x74\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x69\x7a\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x74\x68\x3e\x34\x30\x3c\x2f\x77\x69\x64\x74\x68\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x68\x65\x69\ +\x67\x68\x74\x3e\x32\x30\x3c\x2f\x68\x65\x69\x67\x68\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\x69\x7a\ +\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x73\x70\x61\x63\x65\x72\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\ +\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\ +\x22\x6c\x61\x62\x65\x6c\x5f\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\ +\x67\x3e\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x61\x6e\x67\x6c\x65\x20\ +\x66\x6f\x72\x20\x61\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x3c\x2f\ +\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\ +\x67\x3e\x61\x6e\x67\x75\x6c\x61\x72\x20\x28\x66\x61\x29\x3c\x2f\ +\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\ +\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\x3a\x3a\x50\x72\x65\ +\x66\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\x6f\x78\x22\x20\ +\x6e\x61\x6d\x65\x3d\x22\x64\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\ +\x42\x6f\x78\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x6d\ +\x69\x6e\x69\x6d\x75\x6d\x20\x61\x6e\x67\x6c\x65\x20\x66\x6f\x72\ +\x20\x61\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x3c\x2f\x73\x74\x72\ +\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x73\x75\x66\x66\x69\x78\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\ +\x3e\xc2\xb0\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\ +\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x31\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\ +\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6d\x61\x78\x69\x6d\x75\x6d\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\ +\x65\x3e\x33\x36\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\ +\x61\x6c\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x31\x32\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\ +\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\ +\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\ +\x3e\x65\x78\x70\x6f\x72\x74\x46\x61\x3c\x2f\x63\x73\x74\x72\x69\ +\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\ +\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\x22\x20\x73\x74\ +\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\x6f\ +\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\x72\ +\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\ +\x61\x73\x73\x3d\x22\x4c\x69\x6e\x65\x22\x20\x6e\x61\x6d\x65\x3d\ +\x22\x6c\x69\x6e\x65\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\ +\x6d\x65\x3d\x22\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x65\x6e\ +\x75\x6d\x3e\x51\x74\x3a\x3a\x56\x65\x72\x74\x69\x63\x61\x6c\x3c\ +\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\ +\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x34\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x72\x69\x6e\x67\x3e\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x73\x69\ +\x7a\x65\x20\x6f\x66\x20\x61\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\ +\x69\x6e\x67\x3e\x73\x69\x7a\x65\x20\x28\x66\x73\x29\x3c\x2f\x73\ +\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\ +\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\ +\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\x6f\x78\x22\x20\x6e\ +\x61\x6d\x65\x3d\x22\x64\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\ +\x6f\x78\x5f\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\ +\x22\x65\x6e\x61\x62\x6c\x65\x64\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x62\x6f\x6f\x6c\x3e\x74\x72\x75\x65\ +\x3c\x2f\x62\x6f\x6f\x6c\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x69\x7a\x65\x50\x6f\x6c\x69\ +\x63\x79\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x69\x7a\x65\x70\x6f\x6c\x69\x63\x79\x20\x68\x73\x69\x7a\ +\x65\x74\x79\x70\x65\x3d\x22\x4d\x69\x6e\x69\x6d\x75\x6d\x22\x20\ +\x76\x73\x69\x7a\x65\x74\x79\x70\x65\x3d\x22\x46\x69\x78\x65\x64\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x68\x6f\x72\x73\x74\x72\x65\x74\x63\x68\x3e\x30\x3c\x2f\x68\x6f\ +\x72\x73\x74\x72\x65\x74\x63\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x76\x65\x72\x73\x74\x72\x65\x74\x63\ +\x68\x3e\x30\x3c\x2f\x76\x65\x72\x73\x74\x72\x65\x74\x63\x68\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\x69\ +\x7a\x65\x70\x6f\x6c\x69\x63\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\x69\x6d\x75\ +\x6d\x53\x69\x7a\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x69\x7a\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x74\x68\x3e\x30\x3c\x2f\ +\x77\x69\x64\x74\x68\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x68\x65\x69\x67\x68\x74\x3e\x30\x3c\x2f\x68\x65\ +\x69\x67\x68\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x73\x69\x7a\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x72\x69\x6e\x67\x3e\x6d\x69\x6e\x69\x6d\x75\x6d\x20\x73\x69\ +\x7a\x65\x20\x6f\x66\x20\x61\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x61\x6c\x69\x67\x6e\x6d\ +\x65\x6e\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x65\x74\x3e\x51\x74\x3a\x3a\x41\x6c\x69\x67\x6e\x52\ +\x69\x67\x68\x74\x7c\x51\x74\x3a\x3a\x41\x6c\x69\x67\x6e\x54\x72\ +\x61\x69\x6c\x69\x6e\x67\x7c\x51\x74\x3a\x3a\x41\x6c\x69\x67\x6e\ +\x56\x43\x65\x6e\x74\x65\x72\x3c\x2f\x73\x65\x74\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x75\ +\x66\x66\x69\x78\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x6d\x6d\x3c\x2f\x73\x74\ +\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\x69\x6d\x75\x6d\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\ +\x6c\x65\x3e\x30\x2e\x30\x31\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x61\ +\x78\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x31\x30\x30\x30\x30\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\x61\x6c\x75\x65\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\ +\x75\x62\x6c\x65\x3e\x32\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\ +\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\x64\x73\x65\ +\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x65\x78\x70\x6f\x72\ +\x74\x46\x73\x3c\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\ +\x65\x66\x50\x61\x74\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\ +\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\ +\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\ +\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x6c\x61\x79\x6f\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x69\x74\ +\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\ +\x75\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x48\x42\x6f\x78\x4c\ +\x61\x79\x6f\x75\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x68\x6f\x72\ +\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x61\x79\x6f\x75\x74\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\ +\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x32\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x69\ +\x6e\x67\x3e\x63\x6f\x6e\x76\x65\x78\x69\x74\x79\x3c\x2f\x73\x74\ +\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x63\x65\x72\x20\x6e\ +\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x53\ +\x70\x61\x63\x65\x72\x5f\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\ +\x6d\x65\x3d\x22\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x65\x6e\ +\x75\x6d\x3e\x51\x74\x3a\x3a\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\ +\x6c\x3c\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x69\x7a\x65\x48\x69\x6e\ +\x74\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x69\x7a\x65\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\ +\x64\x74\x68\x3e\x34\x30\x3c\x2f\x77\x69\x64\x74\x68\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x68\x65\x69\x67\ +\x68\x74\x3e\x32\x30\x3c\x2f\x68\x65\x69\x67\x68\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\x69\x7a\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x73\x70\x61\x63\x65\x72\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\ +\x3d\x22\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\x53\x70\x69\x6e\x42\ +\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x73\x70\x69\x6e\x42\x6f\ +\x78\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\x61\ +\x6c\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x6e\x75\x6d\x62\x65\x72\x3e\x31\x30\x3c\x2f\x6e\x75\x6d\ +\x62\x65\x72\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\ +\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\ +\x65\x78\x70\x6f\x72\x74\x43\x6f\x6e\x76\x65\x78\x69\x74\x79\x3c\ +\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\ +\x74\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\ +\x69\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\ +\x3c\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\ +\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\ +\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\ +\x6f\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x79\x6f\x75\x74\x20\x63\ +\x6c\x61\x73\x73\x3d\x22\x51\x47\x72\x69\x64\x4c\x61\x79\x6f\x75\ +\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x67\x72\x69\x64\x4c\x61\x79\ +\x6f\x75\x74\x5f\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x69\x74\x65\x6d\x20\x72\x6f\x77\x3d\x22\x30\x22\x20\x63\x6f\ +\x6c\x75\x6d\x6e\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\ +\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\x22\ +\x6c\x61\x62\x65\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x4d\x65\x73\x68\ +\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x3c\x2f\x73\x74\x72\x69\x6e\ +\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x20\x72\x6f\x77\x3d\x22\x30\ +\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\x22\x31\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x63\x65\x72\x20\x6e\ +\x61\x6d\x65\x3d\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x53\ +\x70\x61\x63\x65\x72\x5f\x32\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x65\ +\x6e\x75\x6d\x3e\x51\x74\x3a\x3a\x48\x6f\x72\x69\x7a\x6f\x6e\x74\ +\x61\x6c\x3c\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x73\x69\x7a\x65\x48\x69\ +\x6e\x74\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x69\x7a\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x74\x68\x3e\x34\x30\x3c\x2f\x77\x69\x64\x74\x68\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x68\x65\x69\ +\x67\x68\x74\x3e\x32\x30\x3c\x2f\x68\x65\x69\x67\x68\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\x69\x7a\ +\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x73\x70\x61\x63\x65\x72\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x20\x72\x6f\x77\x3d\x22\x30\ +\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\x22\x32\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\ +\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\x20\x6e\x61\ +\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x33\x6d\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x72\x69\x6e\x67\x3e\x4d\x61\x78\x69\x75\x6d\x20\x4c\x65\x6e\ +\x67\x74\x68\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\ +\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x72\x69\x6e\x67\x3e\x4d\x61\x78\x4c\x65\x6e\x67\x74\x68\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\ +\x20\x72\x6f\x77\x3d\x22\x31\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\ +\x22\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\ +\x3a\x3a\x50\x72\x65\x66\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\ +\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x64\x6f\x75\x62\x6c\ +\x65\x53\x70\x69\x6e\x42\x6f\x78\x5f\x32\x6c\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x72\x69\x6e\x67\x3e\x4d\x61\x78\x69\x6d\x75\x6d\x20\x4c\x65\x6e\ +\x67\x74\x68\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\ +\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\ +\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x6d\x61\x78\x69\x6d\x75\x6d\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\ +\x65\x3e\x31\x30\x30\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\ +\x76\x61\x6c\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\ +\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\ +\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\ +\x3e\x6d\x65\x73\x68\x6d\x61\x78\x6c\x65\x6e\x67\x74\x68\x3c\x2f\ +\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\ +\x68\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\ +\x6e\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\ +\x2f\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\ +\x20\x72\x6f\x77\x3d\x22\x30\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\ +\x22\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\ +\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\ +\x5f\x34\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\ +\x6f\x6f\x6c\x54\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x4d\x61\x78\x69\ +\x6d\x75\x6d\x20\x41\x72\x65\x61\x3c\x2f\x73\x74\x72\x69\x6e\x67\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x6d\x61\x78\x41\ +\x72\x65\x61\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\ +\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\ +\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\ +\x74\x65\x6d\x20\x72\x6f\x77\x3d\x22\x31\x22\x20\x63\x6f\x6c\x75\ +\x6d\x6e\x3d\x22\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\ +\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\x44\x6f\x75\x62\x6c\x65\x53\ +\x70\x69\x6e\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x64\x6f\ +\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\x6f\x78\x5f\x32\x61\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\ +\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x72\x69\x6e\x67\x3e\x4d\x61\x78\x69\x6d\x75\x6d\x20\ +\x41\x72\x65\x61\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\ +\x6e\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\ +\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x6d\x61\x78\x69\x6d\x75\x6d\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\ +\x6c\x65\x3e\x31\x30\x30\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\ +\x22\x76\x61\x6c\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\ +\x6f\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\ +\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\ +\x67\x3e\x6d\x65\x73\x68\x6d\x61\x78\x61\x72\x65\x61\x3c\x2f\x63\ +\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\ +\x22\x20\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\ +\x67\x3e\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\ +\x63\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x20\ +\x72\x6f\x77\x3d\x22\x31\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\x22\ +\x34\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\ +\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\x3a\ +\x3a\x50\x72\x65\x66\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\ +\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x64\x6f\x75\x62\x6c\x65\ +\x53\x70\x69\x6e\x42\x6f\x78\x5f\x6c\x6c\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\ +\x69\x6e\x67\x3e\x4c\x6f\x63\x61\x6c\x20\x4c\x65\x6e\x67\x74\x68\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\ +\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\x69\x6d\x75\ +\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x6d\x61\x78\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x31\ +\x30\x30\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\x61\x6c\ +\x75\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\ +\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\ +\x65\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\ +\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x6d\x65\ +\x73\x68\x6c\x6f\x63\x61\x6c\x6c\x65\x6e\x3c\x2f\x63\x73\x74\x72\ +\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\ +\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\x22\x20\x73\ +\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x4d\ +\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\x74\ +\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x20\x72\x6f\x77\ +\x3d\x22\x30\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\x22\x34\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\x65\ +\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\x22\ +\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x34\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\ +\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x72\x69\x6e\x67\x3e\x4c\x6f\x63\x61\x6c\x20\x4c\x65\ +\x6e\x67\x74\x68\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\ +\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x72\x69\x6e\x67\x3e\x6c\x6f\x63\x61\x6c\x4c\x65\x6e\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\ +\x20\x72\x6f\x77\x3d\x22\x31\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\ +\x22\x35\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\ +\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x47\x75\x69\ +\x3a\x3a\x50\x72\x65\x66\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\ +\x42\x6f\x78\x22\x20\x6e\x61\x6d\x65\x3d\x22\x64\x6f\x75\x62\x6c\ +\x65\x53\x70\x69\x6e\x42\x6f\x78\x5f\x32\x61\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\x54\x69\x70\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x72\x69\x6e\x67\x3e\x44\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x3c\ +\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\ +\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6d\x69\x6e\x69\x6d\x75\x6d\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\ +\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\ +\x22\x6d\x61\x78\x69\x6d\x75\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x64\x6f\x75\x62\x6c\x65\x3e\x31\x30\ +\x30\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x76\x61\x6c\x75\ +\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x64\x6f\x75\x62\x6c\x65\x3e\x30\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x2f\x64\x6f\x75\x62\x6c\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\ +\x3d\x22\x70\x72\x65\x66\x45\x6e\x74\x72\x79\x22\x20\x73\x74\x64\ +\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\x6d\x65\x73\ +\x68\x64\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x3c\x2f\x63\x73\x74\ +\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\ +\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x50\x61\x74\x68\x22\x20\ +\x73\x74\x64\x73\x65\x74\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x73\x74\x72\x69\x6e\x67\x3e\ +\x4d\x6f\x64\x2f\x4f\x70\x65\x6e\x53\x43\x41\x44\x3c\x2f\x63\x73\ +\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\x6d\x20\x72\x6f\ +\x77\x3d\x22\x30\x22\x20\x63\x6f\x6c\x75\x6d\x6e\x3d\x22\x35\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x67\ +\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\x61\x62\x65\x6c\ +\x22\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\x6c\x5f\x34\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x6f\x6f\x6c\ +\x54\x69\x70\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x44\x65\x66\x6c\x65\x63\x74\ +\x69\x6f\x6e\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\ +\x79\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x72\ +\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x74\x65\x78\ +\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x72\x69\x6e\x67\x3e\x64\x65\x66\x6c\x65\x63\x74\x69\x6f\ +\x6e\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\ +\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\ +\x65\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x74\x65\ +\x6d\x20\x72\x6f\x77\x3d\x22\x31\x22\x20\x63\x6f\x6c\x75\x6d\x6e\ +\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x77\x69\x64\x67\x65\x74\x20\x63\x6c\x61\x73\x73\x3d\x22\x51\x4c\ +\x61\x62\x65\x6c\x22\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x61\x62\x65\ +\x6c\x5f\x35\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\ +\x74\x65\x78\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x72\x69\x6e\x67\x3e\x54\x72\x69\x61\x6e\x67\ +\x75\x6c\x61\x74\x69\x6f\x6e\x20\x73\x65\x74\x74\x69\x6e\x67\x73\ +\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\ +\x6d\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\ +\x75\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\ +\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\ +\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\x20\x20\x3c\x69\x74\ +\x65\x6d\x3e\x0a\x20\x20\x20\x20\x3c\x73\x70\x61\x63\x65\x72\x20\ +\x6e\x61\x6d\x65\x3d\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x53\x70\ +\x61\x63\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x20\x3c\x70\x72\x6f\ +\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\x6f\x72\x69\x65\ +\x6e\x74\x61\x74\x69\x6f\x6e\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x65\x6e\x75\x6d\x3e\x51\x74\x3a\x3a\x56\x65\x72\x74\x69\x63\ +\x61\x6c\x3c\x2f\x65\x6e\x75\x6d\x3e\x0a\x20\x20\x20\x20\x20\x3c\ +\x2f\x70\x72\x6f\x70\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x20\ +\x3c\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x6e\x61\x6d\x65\x3d\x22\ +\x73\x69\x7a\x65\x48\x69\x6e\x74\x22\x20\x73\x74\x64\x73\x65\x74\ +\x3d\x22\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x69\x7a\ +\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x3c\x77\x69\x64\x74\x68\ +\x3e\x32\x30\x3c\x2f\x77\x69\x64\x74\x68\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x68\x65\x69\x67\x68\x74\x3e\x34\x30\x3c\x2f\x68\ +\x65\x69\x67\x68\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x73\ +\x69\x7a\x65\x3e\x0a\x20\x20\x20\x20\x20\x3c\x2f\x70\x72\x6f\x70\ +\x65\x72\x74\x79\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x73\x70\x61\x63\ +\x65\x72\x3e\x0a\x20\x20\x20\x3c\x2f\x69\x74\x65\x6d\x3e\x0a\x20\ +\x20\x3c\x2f\x6c\x61\x79\x6f\x75\x74\x3e\x0a\x20\x3c\x2f\x77\x69\ +\x64\x67\x65\x74\x3e\x0a\x20\x3c\x6c\x61\x79\x6f\x75\x74\x64\x65\ +\x66\x61\x75\x6c\x74\x20\x73\x70\x61\x63\x69\x6e\x67\x3d\x22\x36\ +\x22\x20\x6d\x61\x72\x67\x69\x6e\x3d\x22\x31\x31\x22\x2f\x3e\x0a\ +\x20\x3c\x70\x69\x78\x6d\x61\x70\x66\x75\x6e\x63\x74\x69\x6f\x6e\ +\x3e\x71\x50\x69\x78\x6d\x61\x70\x46\x72\x6f\x6d\x4d\x69\x6d\x65\ +\x53\x6f\x75\x72\x63\x65\x3c\x2f\x70\x69\x78\x6d\x61\x70\x66\x75\ +\x6e\x63\x74\x69\x6f\x6e\x3e\x0a\x20\x3c\x63\x75\x73\x74\x6f\x6d\ +\x77\x69\x64\x67\x65\x74\x73\x3e\x0a\x20\x20\x3c\x63\x75\x73\x74\ +\x6f\x6d\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x3c\x63\x6c\ +\x61\x73\x73\x3e\x47\x75\x69\x3a\x3a\x46\x69\x6c\x65\x43\x68\x6f\ +\x6f\x73\x65\x72\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x20\x20\ +\x3c\x65\x78\x74\x65\x6e\x64\x73\x3e\x51\x57\x69\x64\x67\x65\x74\ +\x3c\x2f\x65\x78\x74\x65\x6e\x64\x73\x3e\x0a\x20\x20\x20\x3c\x68\ +\x65\x61\x64\x65\x72\x3e\x47\x75\x69\x2f\x46\x69\x6c\x65\x44\x69\ +\x61\x6c\x6f\x67\x2e\x68\x3c\x2f\x68\x65\x61\x64\x65\x72\x3e\x0a\ +\x20\x20\x3c\x2f\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\x67\x65\x74\ +\x3e\x0a\x20\x20\x3c\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\x67\x65\ +\x74\x3e\x0a\x20\x20\x20\x3c\x63\x6c\x61\x73\x73\x3e\x47\x75\x69\ +\x3a\x3a\x50\x72\x65\x66\x46\x69\x6c\x65\x43\x68\x6f\x6f\x73\x65\ +\x72\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x20\x20\x3c\x65\x78\ +\x74\x65\x6e\x64\x73\x3e\x47\x75\x69\x3a\x3a\x46\x69\x6c\x65\x43\ +\x68\x6f\x6f\x73\x65\x72\x3c\x2f\x65\x78\x74\x65\x6e\x64\x73\x3e\ +\x0a\x20\x20\x20\x3c\x68\x65\x61\x64\x65\x72\x3e\x47\x75\x69\x2f\ +\x50\x72\x65\x66\x57\x69\x64\x67\x65\x74\x73\x2e\x68\x3c\x2f\x68\ +\x65\x61\x64\x65\x72\x3e\x0a\x20\x20\x3c\x2f\x63\x75\x73\x74\x6f\ +\x6d\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x3c\x63\x75\x73\x74\ +\x6f\x6d\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x20\x20\x3c\x63\x6c\ +\x61\x73\x73\x3e\x47\x75\x69\x3a\x3a\x50\x72\x65\x66\x53\x70\x69\ +\x6e\x42\x6f\x78\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x20\x20\ +\x3c\x65\x78\x74\x65\x6e\x64\x73\x3e\x51\x53\x70\x69\x6e\x42\x6f\ +\x78\x3c\x2f\x65\x78\x74\x65\x6e\x64\x73\x3e\x0a\x20\x20\x20\x3c\ +\x68\x65\x61\x64\x65\x72\x3e\x47\x75\x69\x2f\x50\x72\x65\x66\x57\ +\x69\x64\x67\x65\x74\x73\x2e\x68\x3c\x2f\x68\x65\x61\x64\x65\x72\ +\x3e\x0a\x20\x20\x3c\x2f\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\x67\ +\x65\x74\x3e\x0a\x20\x20\x3c\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\ +\x67\x65\x74\x3e\x0a\x20\x20\x20\x3c\x63\x6c\x61\x73\x73\x3e\x47\ +\x75\x69\x3a\x3a\x50\x72\x65\x66\x43\x68\x65\x63\x6b\x42\x6f\x78\ +\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x20\x20\x3c\x65\x78\x74\ +\x65\x6e\x64\x73\x3e\x51\x43\x68\x65\x63\x6b\x42\x6f\x78\x3c\x2f\ +\x65\x78\x74\x65\x6e\x64\x73\x3e\x0a\x20\x20\x20\x3c\x68\x65\x61\ +\x64\x65\x72\x3e\x47\x75\x69\x2f\x50\x72\x65\x66\x57\x69\x64\x67\ +\x65\x74\x73\x2e\x68\x3c\x2f\x68\x65\x61\x64\x65\x72\x3e\x0a\x20\ +\x20\x3c\x2f\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\x67\x65\x74\x3e\ +\x0a\x20\x20\x3c\x63\x75\x73\x74\x6f\x6d\x77\x69\x64\x67\x65\x74\ +\x3e\x0a\x20\x20\x20\x3c\x63\x6c\x61\x73\x73\x3e\x47\x75\x69\x3a\ +\x3a\x50\x72\x65\x66\x44\x6f\x75\x62\x6c\x65\x53\x70\x69\x6e\x42\ +\x6f\x78\x3c\x2f\x63\x6c\x61\x73\x73\x3e\x0a\x20\x20\x20\x3c\x65\ +\x78\x74\x65\x6e\x64\x73\x3e\x51\x44\x6f\x75\x62\x6c\x65\x53\x70\ +\x69\x6e\x42\x6f\x78\x3c\x2f\x65\x78\x74\x65\x6e\x64\x73\x3e\x0a\ +\x20\x20\x20\x3c\x68\x65\x61\x64\x65\x72\x3e\x47\x75\x69\x2f\x50\ +\x72\x65\x66\x57\x69\x64\x67\x65\x74\x73\x2e\x68\x3c\x2f\x68\x65\ +\x61\x64\x65\x72\x3e\x0a\x20\x20\x3c\x2f\x63\x75\x73\x74\x6f\x6d\ +\x77\x69\x64\x67\x65\x74\x3e\x0a\x20\x3c\x2f\x63\x75\x73\x74\x6f\ +\x6d\x77\x69\x64\x67\x65\x74\x73\x3e\x0a\x20\x3c\x72\x65\x73\x6f\ +\x75\x72\x63\x65\x73\x2f\x3e\x0a\x20\x3c\x63\x6f\x6e\x6e\x65\x63\ +\x74\x69\x6f\x6e\x73\x2f\x3e\x0a\x3c\x2f\x75\x69\x3e\x0a\ +\x00\x00\x19\x09\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ +\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ +\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ +\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ +\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ +\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\ +\x73\x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\ +\x44\x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\ +\x74\x64\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\ +\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\ +\x70\x78\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\ +\x34\x70\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x32\ +\x39\x38\x30\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\ +\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x33\x32\x22\x0a\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\ +\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x33\x2e\x31\x20\x72\x39\ +\x38\x38\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\ +\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x54\x72\x65\x65\x5f\x50\ +\x61\x72\x74\x2e\x73\x76\x67\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x6f\x75\x74\x70\x75\x74\x5f\x65\x78\x74\x65\ +\x6e\x73\x69\x6f\x6e\x3d\x22\x6f\x72\x67\x2e\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x2e\x6f\x75\x74\x70\x75\x74\x2e\x73\x76\x67\x2e\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\x20\x20\x76\x65\x72\x73\ +\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x3e\x0a\x20\x20\x3c\x64\x65\ +\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\ +\x32\x39\x38\x32\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x38\x36\x34\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x37\x31\ +\x62\x32\x66\x38\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x38\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x32\x37\ +\x39\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\ +\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\ +\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\ +\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\ +\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\x3a\x20\ +\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\ +\x6f\x72\x69\x67\x69\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\x31\x2e\ +\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\ +\x76\x65\x32\x39\x38\x38\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\ +\x65\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\ +\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\ +\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\ +\x66\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\ +\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\ +\x3d\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\ +\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\ +\x22\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x35\x2e\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x2d\ +\x32\x2e\x38\x31\x38\x31\x38\x31\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x33\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\x6c\x61\ +\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x67\ +\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\ +\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\x0a\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\ +\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ +\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x33\x36\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\ +\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x37\x30\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ +\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ +\x2d\x79\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\ +\x69\x6d\x69\x7a\x65\x64\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\ +\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0a\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x32\x39\x38\x35\x22\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\ +\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\ +\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\ +\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\ +\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\ +\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\ +\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\ +\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\ +\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\ +\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\ +\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\ +\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\ +\x74\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\ +\x61\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\ +\x22\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x38\x34\x35\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x35\x38\x33\ +\x30\x36\x31\x34\x33\x2c\x30\x2c\x30\x2c\x30\x2e\x35\x38\x33\x30\ +\x36\x31\x34\x33\x2c\x2d\x31\x32\x2e\x36\x35\x34\x37\x38\x2c\x2d\ +\x37\x37\x2e\x34\x33\x38\x34\x34\x32\x29\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\ +\x30\x30\x38\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\x37\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x38\ +\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\x37\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\ +\x62\x65\x76\x65\x6c\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\ +\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\ +\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\ +\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\ +\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x39\x36\x2e\x31\x38\x34\x34\x34\x2c\x31\x34\x31\x2e\x34\x34\x39\ +\x36\x38\x20\x2d\x31\x39\x2e\x38\x31\x34\x34\x31\x2c\x37\x2e\x31\ +\x37\x39\x32\x31\x20\x32\x39\x2e\x34\x33\x34\x39\x2c\x33\x2e\x39\ +\x37\x32\x30\x39\x20\x2d\x30\x2e\x37\x32\x33\x35\x37\x2c\x33\x36\ +\x2e\x31\x32\x36\x36\x35\x20\x31\x37\x2e\x32\x35\x38\x38\x31\x2c\ +\x2d\x31\x30\x2e\x39\x34\x33\x38\x38\x20\x30\x2e\x35\x37\x35\x38\ +\x37\x2c\x2d\x33\x34\x2e\x33\x38\x34\x38\x35\x20\x2d\x32\x36\x2e\ +\x37\x33\x31\x36\x2c\x2d\x31\x2e\x39\x34\x39\x32\x32\x20\x7a\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x38\x32\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\ +\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x63\x63\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x38\ +\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\x37\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\ +\x62\x65\x76\x65\x6c\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\ +\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\ +\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\ +\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\ +\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x37\x35\x2e\x35\x37\x39\x34\x31\x2c\x31\x34\x38\x2e\x36\x35\x38\ +\x39\x20\x33\x30\x2e\x37\x30\x38\x38\x34\x2c\x33\x2e\x33\x36\x35\ +\x36\x32\x20\x30\x2c\x33\x36\x2e\x34\x37\x37\x31\x39\x20\x2d\x33\ +\x31\x2e\x31\x32\x33\x38\x33\x2c\x2d\x35\x2e\x30\x36\x34\x37\x39\ +\x20\x30\x2e\x34\x31\x34\x39\x39\x2c\x2d\x33\x34\x2e\x37\x37\x38\ +\x30\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\ +\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\ +\x30\x30\x38\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\ +\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\x37\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\ +\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\ +\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\ +\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\ +\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\ +\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\ +\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\ +\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x30\x36\x2e\x30\x35\x34\x33\x35\x2c\x31\x35\x32\ +\x2e\x30\x36\x39\x34\x38\x20\x31\x36\x2e\x37\x32\x35\x39\x38\x2c\ +\x2d\x38\x2e\x34\x30\x38\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\ +\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ +\x74\x79\x70\x65\x3d\x22\x61\x72\x63\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x66\ +\x66\x66\x66\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x31\x2e\x36\x31\x33\x37\x34\x34\x33\x38\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x35\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x63\x78\x3d\ +\x22\x34\x38\x2e\x30\x39\x30\x39\x30\x38\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x63\x79\x3d\x22\ +\x32\x37\x2e\x36\x33\x36\x33\x36\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x78\x3d\x22\x37\ +\x2e\x35\x34\x35\x34\x35\x34\x35\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x79\x3d\x22\x34\x2e\ +\x33\x36\x33\x36\x33\x36\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x6d\x20\x35\x35\x2e\x36\x33\x36\x33\x36\x33\x2c\x32\ +\x37\x2e\x36\x33\x36\x33\x36\x34\x20\x61\x20\x37\x2e\x35\x34\x35\ +\x34\x35\x34\x35\x2c\x34\x2e\x33\x36\x33\x36\x33\x36\x35\x20\x30\ +\x20\x31\x20\x31\x20\x2d\x31\x35\x2e\x30\x39\x30\x39\x30\x39\x2c\ +\x30\x20\x37\x2e\x35\x34\x35\x34\x35\x34\x35\x2c\x34\x2e\x33\x36\ +\x33\x36\x33\x36\x35\x20\x30\x20\x31\x20\x31\x20\x31\x35\x2e\x30\ +\x39\x30\x39\x30\x39\x2c\x30\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\ +\x72\x69\x78\x28\x31\x2e\x33\x39\x36\x30\x31\x37\x36\x2c\x30\x2e\ +\x34\x35\x30\x35\x34\x35\x33\x35\x2c\x2d\x30\x2e\x34\x32\x34\x34\ +\x37\x33\x32\x31\x2c\x31\x2e\x34\x38\x31\x37\x36\x34\x33\x2c\x2d\ +\x33\x39\x2e\x34\x39\x35\x37\x37\x33\x2c\x2d\x34\x37\x2e\x30\x33\ +\x31\x31\x31\x35\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x67\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x23\x66\x66\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\x2e\x32\x34\x39\x32\x37\ +\x36\x36\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x35\x33\x34\x38\x34\x35\ +\x39\x33\x2c\x30\x2c\x30\x2c\x30\x2e\x35\x34\x35\x39\x37\x32\x36\ +\x31\x2c\x2d\x33\x35\x2e\x39\x39\x33\x39\x34\x32\x2c\x2d\x34\x34\ +\x2e\x33\x38\x35\x34\x30\x34\x29\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x67\x33\x37\x36\x31\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\ +\x63\x63\x63\x63\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x36\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\x35\x2e\x35\ +\x37\x39\x34\x31\x2c\x31\x34\x38\x2e\x36\x35\x38\x39\x20\x33\x30\ +\x2e\x37\x30\x38\x38\x34\x2c\x33\x2e\x33\x36\x35\x36\x32\x20\x30\ +\x2c\x33\x36\x2e\x34\x37\x37\x31\x39\x20\x2d\x33\x31\x2e\x31\x32\ +\x33\x38\x33\x2c\x2d\x35\x2e\x30\x36\x34\x37\x39\x20\x30\x2e\x34\ +\x31\x34\x39\x39\x2c\x2d\x33\x34\x2e\x37\x37\x38\x30\x32\x20\x7a\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x66\x66\x30\x30\x30\x30\x3b\x66\ +\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\ +\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\ +\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\x2e\x32\x34\ +\x39\x32\x37\x36\x36\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x62\x65\x76\x65\x6c\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\ +\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\ +\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\ +\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\ +\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x36\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x30\x36\x2e\x30\ +\x35\x34\x33\x35\x2c\x31\x35\x32\x2e\x30\x36\x39\x34\x38\x20\x31\ +\x36\x2e\x37\x32\x35\x39\x38\x2c\x2d\x38\x2e\x34\x30\x38\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x23\x66\x66\x30\x30\x30\x30\x3b\x66\x69\ +\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\x2e\x32\x34\x39\ +\x32\x37\x36\x36\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ +\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\ +\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\ +\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\ +\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\ +\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\ +\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\ +\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\ +\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x23\x30\x30\x38\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\ +\x37\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\ +\x61\x74\x72\x69\x78\x28\x30\x2e\x35\x38\x33\x30\x36\x31\x34\x33\ +\x2c\x30\x2c\x30\x2c\x30\x2e\x35\x38\x33\x30\x36\x31\x34\x33\x2c\ +\x2d\x31\x33\x2e\x32\x30\x30\x32\x33\x35\x2c\x2d\x34\x37\x2e\x32\ +\x35\x36\x36\x32\x34\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x67\x33\x37\x36\x39\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\ +\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\ +\x63\x63\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x37\x37\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\x32\x2e\x31\x33\x30\ +\x36\x30\x32\x2c\x31\x35\x31\x2e\x34\x32\x38\x33\x36\x20\x2d\x31\ +\x37\x2e\x39\x34\x33\x34\x30\x38\x2c\x31\x36\x2e\x32\x32\x32\x33\ +\x38\x20\x33\x32\x2e\x35\x35\x33\x32\x33\x36\x2c\x31\x32\x2e\x37\ +\x30\x33\x34\x34\x20\x39\x2e\x36\x32\x37\x31\x31\x2c\x2d\x31\x38\ +\x2e\x32\x34\x35\x32\x36\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\ +\x66\x66\x66\x66\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\ +\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x33\x2e\x34\x35\x31\x33\x38\x35\x39\x37\x30\x30\ +\x30\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x62\x65\x76\x65\ +\x6c\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\ +\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\ +\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\ +\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\ +\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\ +\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\ +\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\ +\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x3c\x23\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ +\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ +\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ +\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ +\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ +\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\ +\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\ +\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ +\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\x78\ +\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\ +\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x33\x36\x31\ +\x32\x22\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\ +\x2e\x31\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x33\x2e\ +\x31\x20\x72\x39\x38\x38\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x4f\x70\ +\x65\x6e\x53\x43\x41\x44\x5f\x52\x65\x70\x6c\x61\x63\x65\x4f\x62\ +\x6a\x65\x63\x74\x2e\x73\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\x65\ +\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\ +\x33\x36\x31\x34\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x61\x72\x6b\ +\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\ +\x77\x31\x4d\x65\x6e\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x2e\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x2e\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\ +\x77\x31\x4d\x65\x6e\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x3b\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x33\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x30\x2e\x30\x2c\x30\ +\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x2d\x35\x2e\x30\x20\x4c\x20\ +\x2d\x31\x32\x2e\x35\x2c\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\ +\x35\x2e\x30\x20\x4c\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x7a\x20\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\ +\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x31\x2e\x30\x70\x74\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\ +\x65\x28\x30\x2e\x34\x29\x20\x72\x6f\x74\x61\x74\x65\x28\x31\x38\ +\x30\x29\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x31\x30\x2c\ +\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6d\x61\x72\ +\x6b\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x61\x72\x6b\x65\x72\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\ +\x4d\x73\x74\x61\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x2e\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x2e\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\ +\x77\x31\x4d\x73\x74\x61\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\ +\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x33\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x30\x2e\x30\x2c\ +\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x2d\x35\x2e\x30\x20\x4c\ +\x20\x2d\x31\x32\x2e\x35\x2c\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\ +\x2c\x35\x2e\x30\x20\x4c\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x7a\ +\x20\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x31\x2e\x30\x70\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\ +\x65\x28\x30\x2e\x34\x29\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\ +\x28\x31\x30\x2c\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x61\ +\x72\x6b\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\ +\x72\x6f\x77\x31\x4c\x73\x74\x61\x72\x74\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x2e\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\ +\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x41\x72\x72\x6f\x77\x31\x4c\x73\x74\x61\x72\x74\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\ +\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\ +\x30\x2e\x30\x2c\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x2d\x35\ +\x2e\x30\x20\x4c\x20\x2d\x31\x32\x2e\x35\x2c\x30\x2e\x30\x20\x4c\ +\x20\x35\x2e\x30\x2c\x35\x2e\x30\x20\x4c\x20\x30\x2e\x30\x2c\x30\ +\x2e\x30\x20\x7a\x20\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3a\x31\x2e\x30\x70\x74\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x73\x63\x61\x6c\x65\x28\x30\x2e\x38\x29\x20\x74\x72\x61\x6e\x73\ +\x6c\x61\x74\x65\x28\x31\x32\x2e\x35\x2c\x30\x29\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x20\ +\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\ +\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\ +\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\ +\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\ +\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\ +\x74\x69\x76\x65\x33\x36\x32\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\ +\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x35\x38\ +\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\ +\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\ +\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\ +\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\ +\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\ +\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ +\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x36\ +\x39\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\ +\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\ +\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\ +\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x31\x34\x34\ +\x2d\x36\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x33\x31\x34\x36\x2d\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x31\x34\x38\x2d\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x33\x37\x30\x31\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\x30\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\ +\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\x30\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\ +\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x31\x34\x34\x2d\x36\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x36\x38\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\ +\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\ +\x78\x28\x31\x2c\x30\x2c\x30\x2c\x30\x2e\x36\x39\x38\x35\x32\x39\ +\x34\x2c\x30\x2c\x32\x30\x32\x2e\x38\x32\x38\x36\x33\x29\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x32\x35\x2e\x32\ +\x36\x34\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x36\x37\x32\x2e\x37\x39\x37\x33\x36\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x32\x32\x35\x2e\x32\x36\x34\x30\x32\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x36\x37\x32\ +\x2e\x37\x39\x37\x33\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x33\x34\x2e\x33\x34\x35\x31\x38\x38\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x37\x30\ +\x38\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x37\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\ +\x31\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\ +\x74\x69\x76\x65\x33\x38\x30\x35\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\ +\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\ +\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\ +\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\ +\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x33\x38\x36\x34\x2d\x30\x2d\x30\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x36\x2d\x35\ +\x2d\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x30\x36\x31\x39\x63\x30\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x38\ +\x2d\x37\x2d\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x33\x37\x39\x63\x66\x62\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x33\x37\x39\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\ +\x61\x61\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x33\x33\x38\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x61\x66\x66\ +\x32\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x2d\x30\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x33\x38\x36\x36\x2d\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x36\x31\x39\x63\x30\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x33\x38\x36\x38\x2d\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x33\x37\x39\x63\x66\x62\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\ +\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\ +\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x39\x30\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\ +\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\ +\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\ +\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\ +\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\ +\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\ +\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\ +\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x30\x34\x38\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x62\x6c\x61\x63\x6b\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x3b\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x35\x30\x35\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x35\x30\x35\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\ +\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\ +\x61\x63\x6b\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x62\ +\x6c\x61\x63\x6b\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x35\x30\x35\x32\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x34\x31\x2d\x30\x2d\x33\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x38\x34\x33\x2d\x31\x2d\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x36\x31\x39\x63\x30\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x38\x34\x35\x2d\x30\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x33\x37\x39\x63\x66\ +\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x31\x31\x34\x2e\x35\x36\x38\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x66\x78\x3d\x22\x32\x30\x2e\x38\x39\x32\x30\x39\x39\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x35\x2e\x32\x35\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x31\x31\x34\ +\x2e\x35\x36\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\ +\x3d\x22\x32\x30\x2e\x38\x39\x32\x30\x39\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x61\x69\x67\x72\x64\x32\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\ +\x35\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\ +\x23\x46\x30\x46\x30\x46\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x35\ +\x36\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x39\x61\x39\x61\x39\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\ +\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x36\x34\x2e\x35\x36\x37\ +\x39\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\ +\x32\x30\x2e\x38\x39\x32\x30\x39\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x72\x3d\x22\x35\x2e\x32\x35\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x36\x34\x2e\x35\x36\x37\x39\x30\x32\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x30\x2e\ +\x38\x39\x32\x30\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x61\x69\x67\x72\x64\x33\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x35\x37\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x46\x30\x46\x30\ +\x46\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x35\x37\x35\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x39\x61\x39\x61\x39\ +\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x31\x35\x36\ +\x36\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\ +\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\ +\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x36\x36\x34\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x38\x66\x38\ +\x66\x38\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x36\x36\x36\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x72\x3d\x22\x38\x36\x2e\x37\x30\x38\x34\x35\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x33\x35\x2e\x37\ +\x33\x36\x39\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\ +\x3d\x22\x33\x33\x2e\x39\x36\x36\x36\x37\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x63\x79\x3d\x22\x33\x35\x2e\x37\x33\x36\x39\x31\ +\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x33\x33\ +\x2e\x39\x36\x36\x36\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\ +\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x36\x30\x34\ +\x39\x32\x39\x37\x2c\x30\x2c\x30\x2c\x31\x2e\x30\x34\x31\x31\x33\ +\x32\x2c\x2d\x35\x32\x2e\x31\x34\x34\x32\x34\x39\x2c\x2d\x37\x30\ +\x32\x2e\x33\x33\x31\x35\x38\x29\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x34\x35\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x32\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x32\x35\x39\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x66\x61\x66\x61\x66\x61\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x32\x36\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x62\x62\x62\x62\x62\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\ +\x36\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x33\x37\x2e\x37\x35\ +\x31\x37\x31\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x33\x2e\x37\x35\x36\x31\x32\x38\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x38\x2e\x38\x32\x34\x34\x31\x39\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x33\x2e\x37\x35\ +\x36\x31\x32\x38\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\ +\x3d\x22\x38\x2e\x38\x32\x34\x34\x31\x39\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\ +\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\ +\x36\x38\x32\x37\x32\x39\x37\x2c\x30\x2c\x30\x2c\x31\x2e\x30\x33\ +\x32\x37\x36\x37\x2c\x2d\x34\x38\x2e\x37\x39\x30\x36\x39\x39\x2c\ +\x2d\x37\x30\x31\x2e\x36\x38\x35\x31\x33\x29\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\ +\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x34\x35\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\ +\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x32\x36\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\ +\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x32\x36\x39\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x61\x33\x61\x33\x61\x33\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x73\x74\x6f\x70\x32\x37\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x34\x63\x34\x63\x34\x63\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x32\x37\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\ +\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\ +\x34\x39\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\ +\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\ +\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\ +\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\ +\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\ +\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\ +\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x30\ +\x39\x35\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x35\ +\x62\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x30\x39\x37\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x63\x31\x65\x33\x66\ +\x37\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x30\x39\x39\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\ +\x70\x65\x63\x74\x69\x76\x65\x35\x30\x32\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\ +\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\ +\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\ +\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\ +\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\ +\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ +\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ +\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\ +\x73\x70\x65\x63\x74\x69\x76\x65\x35\x30\x37\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\ +\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\ +\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\ +\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\ +\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\ +\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\ +\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\ +\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x34\x32\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\ +\x32\x35\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\ +\x33\x39\x34\x2e\x31\x35\x37\x38\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x31\x3d\x22\x31\x38\x35\x2e\x31\x33\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x34\x33\x34\x2e\x37\ +\x33\x39\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x31\x34\x30\x2e\x32\x32\x37\x33\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\ +\x69\x78\x28\x30\x2e\x39\x34\x32\x33\x31\x38\x32\x36\x2c\x30\x2c\ +\x30\x2c\x30\x2e\x39\x34\x32\x33\x31\x38\x32\x36\x2c\x32\x33\x2e\ +\x37\x32\x37\x35\x34\x39\x2c\x38\x2e\x38\x32\x36\x32\x35\x33\x36\ +\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x34\x32\x34\x37\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x32\x65\x38\x32\x30\x37\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\ +\x32\x34\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x35\x32\x66\x66\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x35\ +\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\ +\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x31\x34\x30\x2e\x32\ +\x32\x37\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\ +\x22\x34\x33\x34\x2e\x37\x33\x39\x34\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x31\x3d\x22\x31\x38\x35\x2e\x31\x33\x30\x34\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x33\x39\x34\x2e\ +\x31\x35\x37\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\ +\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x34\x32\x33\x31\x38\ +\x32\x36\x2c\x30\x2c\x30\x2c\x30\x2e\x39\x34\x32\x33\x31\x38\x32\ +\x36\x2c\x32\x33\x2e\x37\x32\x37\x35\x34\x39\x2c\x38\x2e\x38\x32\ +\x36\x32\x35\x33\x36\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x30\x38\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\ +\x32\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\ +\x77\x61\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\ +\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\ +\x72\x73\x70\x65\x63\x74\x69\x76\x65\x35\x31\x34\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\ +\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\ +\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\ +\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\ +\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\ +\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\ +\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\ +\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\ +\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ +\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\ +\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\ +\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\ +\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\ +\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\ +\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x7a\x6f\x6f\x6d\x3d\x22\x35\x2e\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x31\x33\ +\x2e\x34\x37\x33\x38\x30\x37\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x33\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\ +\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\x6c\x61\x79\x65\ +\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\ +\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\ +\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\x62\x62\ +\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x32\x38\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ +\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x39\x36\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\ +\x6f\x77\x2d\x78\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\ +\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\ +\x69\x7a\x65\x64\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\ +\x65\x74\x61\x64\x61\x74\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x33\x36\x31\x37\x22\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\ +\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\ +\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\ +\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\ +\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\ +\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\ +\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\ +\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\ +\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\x69\x74\ +\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\ +\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\ +\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\ +\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\ +\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\x6c\ +\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x2d\x32\x35\x39\x2e\x38\ +\x35\x32\x30\x37\x2c\x2d\x31\x33\x32\x2e\x37\x38\x33\x34\x39\x29\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x36\ +\x37\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x72\x65\x63\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x79\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x78\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\x31\x37\x39\ +\x2e\x35\x37\x31\x34\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x78\x3d\x22\x32\x38\x30\x2e\x37\x31\x34\x32\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x39\x2e\x32\x37\x39\x32\x32\x31\x35\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x2e\x36\x38\ +\x38\x33\x31\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x72\x65\x63\x74\x34\x32\x35\x38\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\ +\x23\x66\x66\x66\x66\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\ +\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\ +\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\ +\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\ +\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\ +\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\ +\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x72\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x72\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x79\x3d\x22\x31\x35\x31\x2e\x35\x37\x31\x34\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\ +\x38\x30\x2e\x37\x31\x34\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x39\x2e\x36\x34\x32\ +\x38\x35\x37\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\ +\x69\x64\x74\x68\x3d\x22\x32\x34\x2e\x36\x38\x38\x33\x31\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\ +\x63\x74\x34\x32\x35\x38\x2d\x31\x2d\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\ +\x30\x30\x34\x32\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\ +\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ +\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\ +\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\ +\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\ +\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\ +\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\ +\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\ +\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\ +\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x72\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x72\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x79\x3d\x22\x31\x36\x35\x2e\x33\x38\x39\x36\x32\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\x38\ +\x35\x2e\x38\x30\x35\x32\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x39\x2e\x36\x34\x32\x38\ +\x35\x37\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\ +\x64\x74\x68\x3d\x22\x32\x34\x2e\x33\x32\x34\x36\x37\x35\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\ +\x74\x34\x32\x35\x38\x2d\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x39\x66\x62\ +\x37\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\ +\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\ +\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\ +\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\ +\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\ +\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\ +\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\ +\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x72\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x72\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x79\x3d\x22\x31\x33\x37\x2e\x35\x37\x31\x34\x34\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\x36\x36\x2e\x37\ +\x31\x34\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\ +\x65\x69\x67\x68\x74\x3d\x22\x39\x2e\x36\x34\x32\x38\x35\x37\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x2e\x31\x34\x32\x38\x35\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x34\x32\ +\x35\x38\x2d\x31\x2d\x37\x2d\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\ +\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x66\x66\ +\x66\x66\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\ +\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\ +\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\ +\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\ +\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\ +\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\ +\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\ +\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\ +\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\ +\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x35\x30\x39\x38\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x32\x37\x31\x2e\x30\x37\x31\x34\x33\x2c\x32\x30\x37\x2e\x34\x32\ +\x38\x35\x37\x20\x30\x2c\x33\x37\x2e\x31\x34\x32\x38\x36\x20\x39\ +\x2e\x32\x38\x35\x37\x31\x2c\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\ +\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\ +\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ +\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\ +\x73\x6c\x61\x74\x65\x28\x30\x2c\x2d\x36\x30\x29\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x2d\x36\x30\ +\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x70\x61\x74\x68\x35\x31\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x38\x30\x2e\x38\x39\x32\x38\ +\x36\x2c\x32\x31\x36\x2e\x37\x31\x34\x32\x39\x20\x2d\x39\x2e\x36\ +\x34\x32\x38\x36\x2c\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\ +\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\ +\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\ +\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\ +\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\ +\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\ +\x20\x32\x37\x35\x2e\x36\x31\x36\x38\x38\x2c\x31\x35\x36\x2e\x31\ +\x35\x35\x38\x34\x20\x30\x2c\x31\x34\x2e\x32\x33\x33\x37\x37\x20\ +\x39\x2e\x32\x38\x35\x37\x31\x2c\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x30\x35\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\ +\x63\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\ +\x6b\x65\x3a\x23\x64\x33\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x2e\x33\x39\x39\x39\x39\x39\ +\x39\x39\x39\x39\x39\x39\x39\x39\x39\x39\x30\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\ +\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x35\x33\ +\x2e\x30\x39\x30\x39\x30\x39\x2c\x34\x35\x2e\x30\x39\x30\x39\x30\ +\x39\x20\x32\x34\x2e\x34\x35\x34\x35\x34\x35\x2c\x31\x36\x2e\x34\ +\x35\x34\x35\x34\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x30\x36\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x30\x36\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x35\x33\x2e\x30\x39\x30\ +\x39\x30\x39\x2c\x31\x36\x2e\x34\x35\x34\x35\x34\x35\x20\x32\x34\ +\x2e\x34\x35\x34\x35\x34\x35\x2c\x34\x35\x2e\x30\x39\x30\x39\x30\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x64\x33\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x32\x2e\x33\x39\x39\x39\x39\x39\x39\ +\x39\x39\x39\x39\x39\x39\x39\x39\x39\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\ +\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\ +\x3e\x0a\ +\x00\x00\xb3\x50\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ +\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ +\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ +\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ +\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ +\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\ +\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\ +\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ +\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\x78\ +\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\ +\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x35\x38\x32\ +\x31\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x76\ +\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x33\x32\x22\x0a\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\ +\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x33\x2e\x31\x20\x72\x39\x38\x38\ +\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x64\ +\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x70\x72\x65\x66\x65\x72\x65\x6e\ +\x63\x65\x73\x2d\x64\x72\x61\x66\x74\x2e\x73\x76\x67\x22\x0a\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6f\x75\x74\x70\x75\ +\x74\x5f\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x3d\x22\x6f\x72\x67\ +\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x75\x74\x70\x75\x74\ +\x2e\x73\x76\x67\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\ +\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x3e\ +\x0a\x20\x20\x3c\x64\x65\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x64\x65\x66\x73\x35\x38\x32\x33\x22\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x36\x33\x34\x39\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x36\x33\x35\x31\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x3b\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x73\x74\x6f\x70\x36\x33\x35\x33\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x66\x66\x36\x36\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x33\x37\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ +\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x61\ +\x63\x66\x32\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x33\x38\x31\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\ +\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\ +\x3d\x22\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\ +\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\x3a\x20\x33\x32\x20\ +\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\ +\x67\x69\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\ +\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x35\ +\x38\x32\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x36\ +\x33\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x36\x33\ +\x35\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x31\x30\x33\x2e\x36\x33\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x31\x34\x32\x34\x2e\x34\x34\x36\x35\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x31\x30\x33\x2e\ +\x36\x33\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x31\x34\x32\x34\x2e\x34\x34\x36\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x31\x39\x34\x2e\x34\x30\x36\x31\x34\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\ +\x78\x28\x30\x2e\x39\x39\x38\x33\x37\x38\x32\x35\x2c\x30\x2e\x30\ +\x30\x36\x34\x35\x33\x32\x32\x2c\x2d\x30\x2e\x30\x30\x31\x32\x33\ +\x34\x36\x33\x2c\x30\x2e\x31\x39\x31\x30\x30\x39\x31\x39\x2c\x33\ +\x2e\x35\x34\x38\x34\x37\x38\x36\x2c\x31\x31\x34\x35\x2e\x32\x34\ +\x32\x32\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\ +\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x38\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x37\x31\x62\x32\x66\x38\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\ +\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x30\x30\x32\x37\x39\x35\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x36\x36\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x36\x31\x38\x36\x35\x39\x38\ +\x2c\x30\x2e\x39\x36\x36\x36\x35\x34\x32\x2c\x2d\x31\x2e\x30\x33\ +\x33\x32\x34\x36\x32\x2c\x30\x2e\x36\x36\x31\x32\x37\x38\x36\x2c\ +\x2d\x33\x32\x37\x2e\x32\x37\x35\x36\x38\x2c\x2d\x32\x35\x35\x2e\ +\x38\x34\x31\x33\x36\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x78\x3d\x22\x32\x38\x32\x2e\x36\x34\x35\x38\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x32\x39\x2e\x31\x34\x39\x30\ +\x34\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x32\ +\x38\x32\x2e\x36\x34\x35\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x79\x3d\x22\x32\x39\x2e\x31\x34\x39\x30\x34\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x39\x2e\x35\x37\x31\ +\x34\x32\x38\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x36\x38\x32\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x66\x66\x36\x64\x30\x66\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x36\x38\x34\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x66\x66\x31\x30\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\ +\x36\x38\x36\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x36\x38\x32\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x38\x31\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\ +\x28\x31\x2e\x31\x31\x34\x39\x32\x31\x39\x2c\x30\x2e\x32\x37\x32\ +\x32\x33\x30\x36\x2c\x2d\x30\x2e\x37\x35\x30\x37\x31\x37\x31\x2c\ +\x33\x2e\x30\x37\x34\x35\x36\x33\x39\x2c\x2d\x34\x37\x31\x2e\x30\ +\x38\x36\x32\x39\x2c\x2d\x31\x34\x38\x2e\x33\x32\x38\x36\x33\x29\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x37\x30\ +\x2e\x35\x38\x33\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x33\x33\x2e\x38\x39\x39\x39\x38\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x32\x37\x30\x2e\x35\x38\x33\ +\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x33\ +\x33\x2e\x38\x39\x39\x39\x38\x36\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x31\x39\x2e\x35\x37\x31\x34\x32\x38\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\ +\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\ +\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x33\x32\ +\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\ +\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\ +\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x33\x32\x20\ +\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\ +\x70\x65\x63\x74\x69\x76\x65\x33\x31\x34\x38\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\ +\x31\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x31\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ +\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x63\x78\x3d\x22\x36\x33\x32\x2e\x37\x38\x31\x30\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x34\x38\x34\x2e\x34\x30\ +\x39\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\ +\x36\x33\x32\x2e\x37\x38\x31\x30\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x66\x79\x3d\x22\x34\x38\x34\x2e\x34\x30\x39\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x35\x34\x30\x2e\x32\ +\x37\x38\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\ +\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x66\x79\x3d\x22\x34\x38\x34\x2e\x34\x30\x39\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x36\x33\x32\x2e\x37\x38\ +\x31\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x35\ +\x34\x30\x2e\x32\x37\x38\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x34\x38\x34\x2e\x34\x30\x39\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x36\x33\x32\x2e\x37\ +\x38\x31\x30\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x34\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x34\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x65\x64\x65\x64\ +\x65\x64\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\ +\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x33\x34\x31\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x33\x34\x32\x2e\x36\x34\x39\ +\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x37\ +\x33\x32\x2e\x31\x32\x39\x30\x33\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x32\x3d\x22\x33\x37\x39\x2e\x32\x34\x31\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x36\x38\x36\x2e\x38\ +\x33\x30\x30\x32\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\ +\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x79\x32\x3d\x22\x36\x38\x36\x2e\x38\x33\x30\x30\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x33\x37\x39\x2e\x32\x34\ +\x31\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\ +\x37\x33\x32\x2e\x31\x32\x39\x30\x33\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x33\x34\x32\x2e\x36\x34\x39\x39\x39\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\ +\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x35\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\ +\x63\x6f\x6c\x6f\x72\x3a\x23\x39\x38\x39\x38\x39\x38\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\ +\x31\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x31\ +\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ +\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x63\x78\x3d\x22\x31\x30\x33\x37\x2e\x32\x32\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x32\x31\x31\x2e\x30\x38\ +\x38\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\ +\x31\x30\x33\x37\x2e\x32\x32\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x66\x79\x3d\x22\x32\x31\x31\x2e\x30\x38\x38\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x31\x36\x34\x2e\ +\x32\x38\x30\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\ +\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x66\x79\x3d\x22\x32\x31\x31\x2e\x30\x38\x38\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x33\x37\x2e\x32\ +\x32\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x31\ +\x31\x36\x34\x2e\x32\x38\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x32\x31\x31\x2e\x30\x38\x38\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x33\x37\x2e\ +\x32\x32\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x61\x61\x61\x61\ +\x61\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\ +\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x33\x34\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x32\x37\x32\x2e\x35\x39\x32\ +\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x34\ +\x35\x32\x2e\x33\x38\x38\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x32\x3d\x22\x31\x39\x33\x2e\x32\x37\x36\x39\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x35\x31\x36\x2e\x33\ +\x37\x30\x30\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\ +\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\ +\x66\x69\x74\x65\x6d\x31\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x79\x32\x3d\x22\x35\x31\x36\x2e\x33\x37\x30\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\x39\x33\x2e\x32\x37\ +\x36\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\ +\x34\x35\x32\x2e\x33\x38\x38\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x32\x37\x32\x2e\x35\x39\x32\x30\x31\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x35\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x65\x36\x65\x36\ +\x65\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x35\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\ +\x63\x6f\x6c\x6f\x72\x3a\x23\x64\x38\x64\x38\x64\x38\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\ +\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x32\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ +\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x31\x3d\x22\x31\x30\x31\x34\x2e\x34\x33\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x34\x39\x34\x2e\x37\x31\ +\x33\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\ +\x31\x30\x37\x33\x2e\x30\x31\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x32\x3d\x22\x34\x39\x34\x2e\x37\x31\x33\x30\x31\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\ +\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x34\ +\x39\x34\x2e\x37\x31\x33\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x32\x3d\x22\x31\x30\x37\x33\x2e\x30\x31\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x34\x39\x34\x2e\x37\ +\x31\x33\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\ +\x22\x31\x30\x31\x34\x2e\x34\x33\x30\x30\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x35\x33\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x36\x36\x36\x36\x36\x36\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\ +\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x35\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x64\x63\x64\x63\x64\x63\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\ +\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x31\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x32\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x37\ +\x33\x32\x2e\x31\x35\x36\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x31\x3d\x22\x33\x35\x31\x2e\x39\x33\x39\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x39\x30\x39\x2e\x35\ +\x39\x33\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x33\x35\x31\x2e\x39\x33\x39\x30\x30\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ +\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\x31\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x35\x31\x2e\x39\x33\ +\x39\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\ +\x39\x30\x39\x2e\x35\x39\x33\x39\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x31\x3d\x22\x33\x35\x31\x2e\x39\x33\x39\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x37\x33\x32\x2e\ +\x31\x35\x36\x30\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x73\x74\x6f\x70\x35\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\ +\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\ +\x23\x36\x37\x36\x37\x36\x37\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x35\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x64\x33\x64\ +\x33\x64\x33\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\ +\x65\x66\x69\x74\x65\x6d\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x34\x32\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\ +\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x33\x37\x30\x2e\x30\x32\ +\x32\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\ +\x33\x38\x37\x2e\x32\x37\x33\x30\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x32\x3d\x22\x35\x38\x31\x2e\x33\x32\x33\x39\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x32\x39\x31\x2e\ +\x39\x37\x36\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\ +\x65\x66\x69\x74\x65\x6d\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x32\x3d\x22\x32\x39\x31\x2e\x39\x37\x36\x39\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x35\x38\x31\x2e\x33\ +\x32\x33\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\ +\x22\x33\x38\x37\x2e\x32\x37\x33\x30\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x31\x3d\x22\x33\x37\x30\x2e\x30\x32\x32\x30\x30\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x33\x36\x33\ +\x36\x33\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x36\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x64\x36\x64\x36\x64\x36\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\ +\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\ +\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\ +\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\ +\x6d\x31\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\ +\x32\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x31\x3d\x22\x31\x30\x34\x38\x2e\x37\x32\x30\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x36\x32\x39\x2e\x30\ +\x32\x38\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\ +\x22\x31\x31\x32\x37\x2e\x39\x38\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x32\x3d\x22\x35\x38\x33\x2e\x37\x35\x32\x39\x39\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\ +\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\ +\x6d\x31\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\ +\x35\x38\x33\x2e\x37\x35\x32\x39\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x32\x3d\x22\x31\x31\x32\x37\x2e\x39\x38\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x36\x32\x39\x2e\ +\x30\x32\x38\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\ +\x3d\x22\x31\x30\x34\x38\x2e\x37\x32\x30\x30\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x36\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\ +\x63\x6f\x6c\x6f\x72\x3a\x23\x35\x65\x35\x65\x35\x65\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x36\x33\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x65\x64\x65\x64\x65\x64\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\ +\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x32\x38\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\ +\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\ +\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\ +\x31\x32\x39\x2e\x36\x38\x37\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x31\x3d\x22\x36\x33\x36\x2e\x39\x35\x33\x39\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x32\x32\x30\x2e\ +\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\ +\x3d\x22\x35\x38\x34\x2e\x34\x30\x39\x39\x37\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\x32\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x35\x38\x34\x2e\x34\ +\x30\x39\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\ +\x22\x32\x32\x30\x2e\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x31\x3d\x22\x36\x33\x36\x2e\x39\x35\x33\x39\x38\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x31\x32\x39\ +\x2e\x36\x38\x37\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x36\x35\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x62\x62\ +\x62\x62\x62\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\ +\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\ +\x64\x65\x66\x69\x74\x65\x6d\x32\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x34\x33\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x32\x38\x30\x2e\x30\ +\x34\x34\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\ +\x22\x34\x31\x38\x2e\x36\x39\x38\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x32\x3d\x22\x31\x32\x38\x2e\x30\x35\x34\x39\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x34\x38\x34\ +\x2e\x37\x31\x36\x30\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\ +\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\ +\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x64\x65\x66\x69\x74\x65\x6d\x32\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x32\x3d\x22\x34\x38\x34\x2e\x37\x31\x36\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\x32\x38\x2e\ +\x30\x35\x34\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\ +\x3d\x22\x34\x31\x38\x2e\x36\x39\x38\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x31\x3d\x22\x32\x38\x30\x2e\x30\x34\x34\x30\ +\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x36\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x36\x36\ +\x36\x36\x36\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x36\x39\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\ +\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x64\x38\x64\x38\x64\x38\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\ +\x65\x6d\x32\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x34\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\ +\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x37\x38\x33\x2e\x37\x31\x36\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x31\x30\x35\x2e\ +\x34\x38\x36\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\ +\x3d\x22\x35\x37\x36\x2e\x31\x34\x38\x39\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x31\x33\x2e\x32\x37\x36\x30\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\ +\x65\x6d\x32\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x33\x31\x33\x2e\x32\x37\x36\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x32\x3d\x22\x35\x37\x36\x2e\x31\x34\x38\x39\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x31\x30\x35\ +\x2e\x34\x38\x36\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x31\x3d\x22\x37\x38\x33\x2e\x37\x31\x36\x30\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x37\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x35\x61\x35\x61\x35\x61\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x37\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x63\x37\x63\x37\x63\x37\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\ +\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x33\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x33\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\ +\x22\x31\x31\x37\x30\x2e\x39\x31\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x31\x3d\x22\x34\x37\x36\x2e\x34\x36\x35\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\x30\x34\ +\x39\x2e\x38\x34\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\ +\x32\x3d\x22\x35\x34\x39\x2e\x33\x37\x37\x39\x39\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\ +\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\x32\x33\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x35\x34\x39\x2e\ +\x33\x37\x37\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\ +\x3d\x22\x31\x30\x34\x39\x2e\x38\x34\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x31\x3d\x22\x34\x37\x36\x2e\x34\x36\x35\x30\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x31\x31\ +\x37\x30\x2e\x39\x31\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x37\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x35\x66\x35\x66\x35\x66\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ +\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\ +\x74\x6f\x70\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x65\ +\x62\x65\x62\x65\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x34\x33\x36\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\ +\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x31\x30\x39\x34\ +\x2e\x32\x35\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\ +\x3d\x22\x32\x37\x30\x2e\x38\x35\x34\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x32\x3d\x22\x39\x39\x32\x2e\x34\x38\x39\x30\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x38\ +\x30\x2e\x34\x37\x31\x39\x38\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x64\x65\x66\x69\x74\x65\x6d\x32\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x32\x3d\x22\x33\x38\x30\x2e\x34\x37\x31\x39\x38\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x39\x39\x32\ +\x2e\x34\x38\x39\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\ +\x31\x3d\x22\x32\x37\x30\x2e\x38\x35\x34\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x31\x30\x39\x34\x2e\x32\x35\ +\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x61\ +\x36\x61\x36\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x37\x38\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x65\x36\x65\x36\x65\x36\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\ +\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\ +\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\ +\x74\x65\x6d\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x33\x34\x33\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x31\x3d\x22\x31\x36\x34\x2e\x30\x31\x33\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x34\x31\x32\ +\x2e\x39\x31\x39\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x32\x3d\x22\x33\x30\x38\x2e\x37\x35\x30\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x33\x37\x2e\x36\x30\x39\ +\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\ +\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\ +\x74\x65\x6d\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\ +\x3d\x22\x33\x33\x37\x2e\x36\x30\x39\x39\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x32\x3d\x22\x33\x30\x38\x2e\x37\x35\x30\x30\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x34\x31\ +\x32\x2e\x39\x31\x39\x30\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x31\x3d\x22\x31\x36\x34\x2e\x30\x31\x33\x30\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x38\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\ +\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x38\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\ +\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x62\x66\x62\x66\x62\x66\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x34\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\ +\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\ +\x3d\x22\x35\x33\x30\x2e\x37\x36\x30\x39\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x31\x3d\x22\x33\x34\x36\x2e\x33\x30\x33\x39\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x32\x39\ +\x33\x2e\x33\x37\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x79\x32\x3d\x22\x33\x36\x30\x2e\x32\x37\x34\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\x32\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x36\x30\ +\x2e\x32\x37\x34\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x32\x3d\x22\x32\x39\x33\x2e\x33\x37\x30\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x33\x34\x36\x2e\x33\x30\x33\ +\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x35\ +\x33\x30\x2e\x37\x36\x30\x39\x39\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x38\x33\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x35\x66\x35\x66\x35\x66\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x65\x35\x65\x35\x65\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\ +\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\ +\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x33\x34\x34\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x39\x32\x31\ +\x2e\x30\x39\x31\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\ +\x31\x3d\x22\x34\x30\x33\x2e\x31\x38\x37\x39\x39\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x39\x38\x35\x2e\x39\x38\x31\ +\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x33\ +\x31\x37\x2e\x34\x34\x36\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\ +\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x64\x65\x66\x69\x74\x65\x6d\x32\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x32\x3d\x22\x33\x31\x37\x2e\x34\x34\x36\x39\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x39\x38\ +\x35\x2e\x39\x38\x31\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x79\x31\x3d\x22\x34\x30\x33\x2e\x31\x38\x37\x39\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x39\x32\x31\x2e\x30\x39\ +\x31\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ +\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\ +\x74\x6f\x70\x38\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x37\ +\x65\x37\x65\x37\x65\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x38\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x65\x35\x65\x35\x65\ +\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\ +\x69\x74\x65\x6d\x33\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x34\x34\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\ +\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\ +\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\ +\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x31\x2c\ +\x30\x2c\x30\x2c\x31\x2e\x30\x31\x36\x30\x33\x38\x2c\x30\x2c\x2d\ +\x31\x31\x2e\x37\x33\x38\x35\x35\x29\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x32\x38\x37\x2e\x35\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x36\x33\x36\x2e\ +\x37\x30\x36\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\ +\x3d\x22\x39\x38\x30\x2e\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x32\x3d\x22\x36\x33\x36\x2e\x37\x30\x36\x39\ +\x37\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\ +\x65\x6d\x33\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x36\x33\x36\x2e\x37\x30\x36\x39\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x32\x3d\x22\x39\x38\x30\x2e\x30\x30\x30\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x36\x33\x36\ +\x2e\x37\x30\x36\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x31\x3d\x22\x32\x38\x37\x2e\x35\x30\x30\x30\x30\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x39\x35\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x34\x36\x34\x36\x34\x36\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x39\x36\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x63\x32\x63\x32\x63\x32\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ +\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\ +\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\x65\x6d\x32\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x34\x34\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x39\x32\x2e\x37\x30\x34\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x36\x34\x2e\x38\x34\x35\x32\x38\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x38\ +\x39\x2e\x34\x30\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x36\x34\x2e\x38\x34\x34\x37\x36\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x32\x30\x32\x2e\x31\x35\x30\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\ +\x65\x6d\x32\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x33\x34\x35\x2e\x35\x36\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x34\x39\x2e\x37\x32\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x32\x30\x32\ +\x2e\x31\x35\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\ +\x3d\x22\x33\x34\x35\x2e\x35\x36\x30\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x34\x39\x2e\x37\x32\x30\ +\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x38\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\ +\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x39\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\ +\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x61\x38\x61\x38\x61\x38\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x2f\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x64\x65\x66\x69\x74\ +\x65\x6d\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x34\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\ +\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x36\x34\x39\x2e\x34\x32\x39\x30\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x38\x30\x37\x2e\ +\x34\x36\x36\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\ +\x3d\x22\x36\x35\x35\x2e\x33\x35\x31\x39\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x32\x3d\x22\x34\x38\x35\x2e\x39\x30\x39\x30\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x69\x74\ +\x65\x6d\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x34\x38\x35\x2e\x39\x30\x39\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x32\x3d\x22\x36\x35\x35\x2e\x33\x35\x31\x39\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x38\x30\x37\ +\x2e\x34\x36\x36\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x31\x3d\x22\x36\x34\x39\x2e\x34\x32\x39\x30\x32\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x39\x32\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\ +\x30\x30\x30\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x39\x33\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\x31\x33\x37\x35\x36\x36\ +\x30\x30\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x36\x38\x32\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x34\x31\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\ +\x28\x31\x2e\x31\x31\x34\x39\x32\x31\x39\x2c\x30\x2e\x32\x37\x32\ +\x32\x33\x30\x36\x2c\x2d\x30\x2e\x37\x35\x30\x37\x31\x37\x31\x2c\ +\x33\x2e\x30\x37\x34\x35\x36\x33\x39\x2c\x2d\x34\x37\x31\x2e\x30\ +\x38\x36\x32\x39\x2c\x2d\x31\x34\x38\x2e\x33\x32\x38\x36\x33\x29\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x37\x30\ +\x2e\x35\x38\x33\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x33\x33\x2e\x38\x39\x39\x39\x38\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x32\x37\x30\x2e\x35\x38\x33\ +\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x33\ +\x33\x2e\x38\x39\x39\x39\x38\x36\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x31\x39\x2e\x35\x37\x31\x34\x32\x38\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x31\x33\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\ +\x74\x72\x69\x78\x28\x30\x2e\x36\x31\x38\x36\x35\x39\x38\x2c\x30\ +\x2e\x39\x36\x36\x36\x35\x34\x32\x2c\x2d\x31\x2e\x30\x33\x33\x32\ +\x34\x36\x32\x2c\x30\x2e\x36\x36\x31\x32\x37\x38\x36\x2c\x2d\x33\ +\x32\x37\x2e\x32\x37\x35\x36\x38\x2c\x2d\x32\x35\x35\x2e\x38\x34\ +\x31\x33\x36\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x32\x38\x32\x2e\x36\x34\x35\x38\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x32\x39\x2e\x31\x34\x39\x30\x34\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x32\x38\x32\ +\x2e\x36\x34\x35\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x32\x39\x2e\x31\x34\x39\x30\x34\x36\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x39\x2e\x35\x37\x31\x34\x32\ +\x38\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x31\x39\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\ +\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\ +\x55\x73\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x32\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\ +\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\ +\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\ +\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x33\x33\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x33\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x33\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x33\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x34\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\ +\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\ +\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x34\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\ +\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x34\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\ +\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\ +\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x33\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x35\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\ +\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\ +\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\ +\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x36\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\ +\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x36\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\ +\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x36\x35\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x36\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x36\x39\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x37\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x37\x33\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\ +\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\ +\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\ +\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\ +\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\ +\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x38\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x33\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\ +\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\ +\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\ +\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x39\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\ +\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ +\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x39\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\ +\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\ +\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\ +\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x39\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\x31\x37\ +\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\ +\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\ +\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\x2e\x35\ +\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\ +\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\ +\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\ +\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x39\x39\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\x31\x37\ +\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x39\ +\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x34\x30\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x31\ +\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\x30\x33\ +\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\ +\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\x39\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ +\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x34\x30\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ +\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ +\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\ +\x22\x31\x30\x2e\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x31\x30\x2e\ +\x30\x33\x31\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\ +\x79\x3d\x22\x39\x2e\x35\x31\x37\x32\x35\x37\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x2e\x31\x37\x34\x39\x39\ +\x39\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\ +\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\ +\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\ +\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\ +\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\ +\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\ +\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\ +\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\ +\x6d\x3d\x22\x35\x2e\x38\x32\x37\x32\x36\x38\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\ +\x34\x33\x2e\x37\x32\x33\x36\x31\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x33\x31\x2e\ +\x30\x31\x37\x36\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\ +\x65\x72\x3d\x22\x67\x33\x33\x36\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\ +\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\ +\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\ +\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x33\x36\ +\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x37\x30\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x2d\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\ +\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x2d\x38\x22\x0a\x20\x20\x20\ +\x20\x20\x73\x68\x6f\x77\x67\x75\x69\x64\x65\x73\x3d\x22\x74\x72\ +\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x67\x75\x69\x64\x65\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\ +\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\ +\x65\x64\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\x74\ +\x61\x64\x61\x74\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\ +\x65\x74\x61\x64\x61\x74\x61\x35\x38\x32\x36\x22\x3e\x0a\x20\x20\ +\x20\x20\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\ +\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\ +\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\ +\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\ +\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\ +\x74\x69\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\ +\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\ +\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\ +\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x61\ +\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\x6c\x61\x79\ +\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x33\x36\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\ +\x70\x6f\x72\x74\x2d\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3d\x22\x2f\ +\x68\x6f\x6d\x65\x2f\x79\x6f\x72\x69\x6b\x2f\x44\x6f\x63\x75\x6d\ +\x65\x6e\x74\x73\x2f\x4c\x61\x62\x2f\x44\x72\x61\x66\x74\x2f\x69\ +\x63\x6f\x6e\x73\x2f\x64\x72\x61\x66\x74\x2e\x70\x6e\x67\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x65\x78\x70\x6f\x72\x74\x2d\x78\x64\x70\x69\x3d\x22\x33\x2e\x32\ +\x34\x37\x38\x31\x35\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x79\ +\x64\x70\x69\x3d\x22\x33\x2e\x32\x34\x37\x38\x31\x35\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\ +\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x31\x33\x36\x37\x38\ +\x36\x33\x2c\x30\x2c\x30\x2c\x30\x2e\x31\x33\x36\x37\x38\x36\x33\ +\x2c\x2d\x31\x31\x39\x2e\x31\x35\x35\x31\x39\x2c\x2d\x31\x33\x34\ +\x2e\x38\x36\x39\x36\x32\x29\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x79\ +\x64\x70\x69\x3d\x22\x36\x2e\x32\x39\x32\x36\x34\x33\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x78\x64\x70\x69\x3d\x22\x36\ +\x2e\x32\x39\x32\x36\x34\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\ +\x72\x74\x2d\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3d\x22\x2f\x68\x6f\ +\x6d\x65\x2f\x79\x6f\x72\x69\x6b\x2f\x44\x6f\x63\x75\x6d\x65\x6e\ +\x74\x73\x2f\x4c\x61\x62\x2f\x44\x72\x61\x66\x74\x2f\x69\x63\x6f\ +\x6e\x73\x2f\x64\x72\x61\x66\x74\x2e\x70\x6e\x67\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x33\x38\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x32\x38\x32\x2e\x39\x39\x31\x32\x2c\x31\x34\x32\ +\x35\x2e\x35\x36\x34\x38\x20\x63\x20\x2d\x34\x31\x2e\x36\x35\x39\ +\x39\x2c\x33\x31\x2e\x33\x31\x33\x32\x20\x2d\x37\x32\x2e\x37\x30\ +\x33\x36\x2c\x32\x34\x2e\x36\x35\x30\x35\x20\x2d\x31\x31\x38\x2e\ +\x31\x33\x38\x35\x2c\x32\x34\x2e\x32\x34\x33\x37\x20\x2d\x37\x30\ +\x2e\x30\x37\x39\x36\x2c\x2d\x30\x2e\x36\x32\x37\x35\x20\x2d\x31\ +\x33\x35\x2e\x38\x34\x33\x2c\x38\x2e\x36\x31\x37\x37\x20\x2d\x32\ +\x30\x31\x2e\x37\x33\x36\x37\x32\x2c\x2d\x31\x37\x2e\x35\x36\x33\ +\x39\x20\x2d\x34\x35\x2e\x36\x36\x36\x33\x2c\x2d\x31\x38\x2e\x31\ +\x34\x34\x36\x20\x2d\x32\x2e\x35\x32\x36\x33\x38\x2c\x2d\x33\x39\ +\x2e\x37\x38\x37\x32\x20\x32\x31\x2e\x32\x36\x31\x34\x2c\x2d\x33\ +\x38\x2e\x39\x30\x37\x32\x20\x35\x33\x2e\x35\x37\x35\x35\x32\x2c\ +\x31\x2e\x39\x38\x32\x31\x20\x31\x31\x37\x2e\x37\x38\x39\x32\x32\ +\x2c\x2d\x33\x2e\x30\x34\x36\x32\x20\x31\x36\x39\x2e\x32\x31\x36\ +\x38\x32\x2c\x30\x20\x34\x33\x2e\x35\x36\x34\x33\x2c\x32\x2e\x35\ +\x38\x30\x34\x20\x39\x38\x2e\x36\x31\x36\x37\x2c\x35\x2e\x38\x39\ +\x30\x37\x20\x31\x32\x39\x2e\x33\x39\x37\x2c\x33\x32\x2e\x32\x32\ +\x37\x34\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x36\x33\ +\x35\x35\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\ +\x73\x73\x73\x73\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x30\x2e\x31\x33\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\ +\x72\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x67\x34\x35\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\ +\x28\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x30\x2c\x30\x2c\x32\ +\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x2d\x34\x35\x30\x36\x2e\x32\ +\x35\x34\x31\x2c\x2d\x32\x35\x38\x34\x2e\x32\x37\x34\x29\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x35\x32\x36\x38\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\ +\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x32\x35\x33\ +\x34\x32\x36\x32\x2c\x30\x2c\x30\x2c\x30\x2e\x32\x35\x33\x34\x32\ +\x36\x32\x2c\x31\x37\x32\x33\x2e\x37\x33\x35\x39\x2c\x31\x33\x32\ +\x30\x2e\x39\x32\x33\x37\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x31\x34\x2e\x36\x32\x31\x33\x34\x37\x34\ +\x33\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\ +\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\ +\x74\x72\x69\x78\x28\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\ +\x30\x2c\x30\x2c\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x2d\ +\x32\x34\x33\x33\x2e\x39\x33\x36\x37\x2c\x2d\x35\x31\x31\x2e\x39\ +\x35\x37\x34\x33\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x56\x69\x65\x77\x30\x30\x31\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\ +\x37\x34\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\ +\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x2d\x32\x37\x2e\x39\x32\ +\x30\x33\x2c\x32\x2e\x32\x36\x33\x33\x39\x20\x31\x35\x2e\x39\x32\ +\x30\x33\x2c\x2d\x32\x33\x2e\x30\x34\x38\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\ +\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x2d\x31\ +\x35\x2e\x39\x32\x30\x33\x2c\x32\x33\x2e\x30\x34\x38\x20\x32\x37\ +\x2e\x39\x32\x30\x33\x2c\x2d\x32\x2e\x32\x36\x33\x33\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x67\x33\x37\x34\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x37\x34\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x33\ +\x30\x2e\x34\x30\x35\x36\x2c\x2d\x37\x2e\x37\x35\x36\x37\x32\x20\ +\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\ +\x20\x30\x20\x31\x35\x2e\x39\x32\x30\x33\x2c\x2d\x32\x33\x2e\x30\ +\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x61\x74\x68\x33\x37\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x35\x2e\ +\x39\x32\x30\x33\x2c\x2d\x32\x33\x2e\x30\x34\x38\x20\x61\x20\x31\ +\x32\x2c\x36\x2e\x39\x32\x38\x32\x30\x31\x36\x20\x36\x30\x20\x30\ +\x20\x30\x20\x31\x32\x2c\x32\x30\x2e\x37\x38\x34\x36\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\ +\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\ +\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x37\x35\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x37\x2e\x39\x32\x30\x33\ +\x2c\x2d\x32\x2e\x32\x36\x33\x33\x39\x20\x61\x20\x31\x32\x2c\x36\ +\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\x30\x20\x32\x2e\x34\ +\x38\x35\x33\x2c\x2d\x35\x2e\x34\x39\x33\x33\x33\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x35\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x6d\x20\x2d\x32\x37\x2e\x39\x32\x30\x33\x2c\ +\x32\x2e\x32\x36\x33\x33\x39\x20\x61\x20\x31\x32\x2c\x36\x2e\x39\ +\x32\x38\x32\x30\x31\x36\x20\x36\x30\x20\x30\x20\x30\x20\x31\x32\ +\x2c\x32\x30\x2e\x37\x38\x34\x36\x31\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\ +\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\ +\x34\x30\x33\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\ +\x72\x69\x78\x28\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x30\ +\x2c\x30\x2c\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x2d\x32\ +\x34\x33\x33\x2e\x39\x33\x37\x32\x2c\x2d\x35\x31\x31\x2e\x39\x35\ +\x37\x31\x32\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x56\x69\x65\x77\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x36\x37\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x32\ +\x39\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\ +\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\ +\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x63\x69\x72\x63\ +\x6c\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\ +\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x35\x33\x32\x37\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x63\x69\x72\x63\ +\x6c\x65\x33\x36\x38\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x32\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\ +\x69\x3a\x63\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\ +\x3a\x63\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ +\x72\x78\x3d\x22\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ +\x72\x79\x3d\x22\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x32\x35\x2c\x30\ +\x20\x43\x20\x32\x35\x2c\x31\x33\x2e\x38\x30\x37\x31\x31\x39\x20\ +\x31\x33\x2e\x38\x30\x37\x31\x31\x39\x2c\x32\x35\x20\x30\x2c\x32\ +\x35\x20\x2d\x31\x33\x2e\x38\x30\x37\x31\x31\x39\x2c\x32\x35\x20\ +\x2d\x32\x35\x2c\x31\x33\x2e\x38\x30\x37\x31\x31\x39\x20\x2d\x32\ +\x35\x2c\x30\x20\x63\x20\x30\x2c\x2d\x31\x33\x2e\x38\x30\x37\x31\ +\x31\x39\x20\x31\x31\x2e\x31\x39\x32\x38\x38\x31\x2c\x2d\x32\x35\ +\x20\x32\x35\x2c\x2d\x32\x35\x20\x31\x33\x2e\x38\x30\x37\x31\x31\ +\x39\x2c\x30\x20\x32\x35\x2c\x31\x31\x2e\x31\x39\x32\x38\x38\x31\ +\x20\x32\x35\x2c\x32\x35\x20\x7a\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x36\x38\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x34\x30\ +\x31\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\ +\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\ +\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\ +\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\ +\x33\x33\x31\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x36\ +\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x4d\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\ +\x31\x33\x2e\x30\x30\x38\x32\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\ +\x32\x38\x32\x20\x2d\x31\x38\x30\x20\x30\x20\x30\x20\x2d\x31\x32\ +\x2c\x31\x37\x2e\x39\x30\x37\x32\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\ +\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x33\ +\x33\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\ +\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x36\x38\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x64\x3d\x22\x4d\x20\x2d\x31\x32\x2c\x31\x37\x2e\x39\x30\x37\ +\x32\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x31\ +\x38\x30\x20\x30\x20\x30\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\x32\ +\x32\x2e\x38\x30\x36\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x33\x35\x29\ +\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\ +\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x36\x38\x38\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x4d\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\x32\x32\x2e\x38\ +\x30\x36\x31\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\ +\x2d\x31\x38\x30\x20\x30\x20\x30\x20\x31\x32\x2c\x31\x37\x2e\x39\ +\x30\x37\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\ +\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\ +\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x33\x37\x29\x3b\x66\x69\ +\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\ +\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x36\x39\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\ +\x20\x31\x32\x2c\x31\x37\x2e\x39\x30\x37\x32\x20\x41\x20\x31\x32\ +\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x31\x38\x30\x20\x30\x20\x30\ +\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\x31\x33\x2e\x30\x30\x38\x32\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x35\x33\x33\x39\x29\x3b\x66\x69\x6c\x6c\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\ +\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x70\x61\x74\x68\x33\x36\x39\x32\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x37\x2e\ +\x30\x32\x32\x37\x38\x2c\x2d\x31\x33\x2e\x38\x35\x32\x36\x20\x41\ +\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\ +\x30\x20\x32\x31\x2e\x35\x30\x38\x31\x2c\x31\x2e\x34\x33\x38\x37\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x34\x31\x29\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\ +\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x36\x39\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x32\ +\x31\x2e\x35\x30\x38\x31\x2c\x31\x2e\x34\x33\x38\x37\x32\x20\x41\ +\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\ +\x30\x20\x32\x33\x2e\x39\x39\x33\x33\x2c\x2d\x34\x2e\x30\x35\x34\ +\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x34\x33\x29\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\ +\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x36\x39\x36\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\ +\x2e\x30\x32\x32\x37\x38\x2c\x31\x33\x2e\x38\x35\x32\x36\x20\x61\ +\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x36\x30\x20\x30\ +\x20\x30\x20\x30\x2e\x30\x39\x35\x37\x34\x2c\x31\x2e\x34\x31\x32\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x34\x35\x29\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\ +\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x36\x39\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x31\ +\x36\x2e\x37\x37\x39\x31\x2c\x2d\x31\x2e\x34\x36\x37\x36\x36\x20\ +\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x36\x30\x20\ +\x30\x20\x30\x20\x31\x34\x2e\x32\x33\x37\x2c\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\ +\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x35\x33\x34\x37\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\ +\x33\x37\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\x2e\x31\x31\x38\x35\ +\x32\x2c\x31\x32\x2e\x33\x32\x39\x36\x20\x61\x20\x31\x32\x2c\x36\ +\x2e\x39\x32\x38\x32\x20\x2d\x36\x30\x20\x30\x20\x30\x20\x2d\x30\ +\x2e\x30\x39\x35\x37\x34\x2c\x31\x2e\x35\x32\x33\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\ +\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x35\x33\x34\x39\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\ +\x33\x37\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x32\x33\x2e\x39\x39\x33\ +\x33\x2c\x2d\x34\x2e\x30\x35\x34\x36\x20\x41\x20\x31\x32\x2c\x36\ +\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\x30\x20\x39\x2e\x35\ +\x30\x38\x30\x36\x2c\x2d\x31\x39\x2e\x33\x34\x35\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\ +\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x35\x31\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x37\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\x2e\x35\x30\x38\ +\x30\x36\x2c\x2d\x31\x39\x2e\x33\x34\x35\x39\x20\x61\x20\x31\x32\ +\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\x30\x20\x2d\ +\x32\x2e\x34\x38\x35\x32\x38\x2c\x35\x2e\x34\x39\x33\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\ +\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\ +\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x35\x33\x35\x33\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x37\x30\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x2d\x37\x2e\x30\ +\x32\x32\x37\x38\x2c\x2d\x31\x33\x2e\x38\x35\x32\x36\x20\x61\x20\ +\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x36\x30\x20\x30\x20\ +\x30\x20\x2d\x32\x2e\x34\x38\x35\x32\x38\x2c\x2d\x35\x2e\x34\x39\ +\x33\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x35\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\ +\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x37\x30\x38\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\ +\x2d\x39\x2e\x35\x30\x38\x30\x36\x2c\x2d\x31\x39\x2e\x33\x34\x35\ +\x39\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x36\ +\x30\x20\x30\x20\x30\x20\x2d\x32\x33\x2e\x39\x39\x33\x33\x2c\x2d\ +\x34\x2e\x30\x35\x34\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x37\x29\ +\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\ +\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x31\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x6d\x20\x2d\x32\x33\x2e\x39\x39\x33\x33\x2c\x2d\x34\x2e\ +\x30\x35\x34\x36\x20\x61\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\ +\x20\x2d\x36\x30\x20\x30\x20\x30\x20\x32\x2e\x34\x38\x35\x32\x2c\ +\x35\x2e\x34\x39\x33\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x35\x39\ +\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\ +\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x31\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x4d\x20\x2d\x32\x31\x2e\x35\x30\x38\x31\x2c\x31\x2e\ +\x34\x33\x38\x37\x32\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\ +\x32\x20\x2d\x36\x30\x20\x30\x20\x30\x20\x2d\x37\x2e\x30\x32\x32\ +\x37\x38\x2c\x2d\x31\x33\x2e\x38\x35\x32\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\ +\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\ +\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x35\x33\x36\x31\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x37\x31\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x38\x2e\x34\x38\x35\x32\x38\ +\x2c\x2d\x31\x33\x2e\x30\x30\x38\x32\x20\x61\x20\x31\x32\x2c\x36\ +\x2e\x39\x32\x38\x32\x20\x2d\x31\x38\x30\x20\x30\x20\x30\x20\x31\ +\x2e\x31\x37\x35\x33\x2c\x2d\x30\x2e\x37\x38\x39\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\ +\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x35\x33\x36\x33\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x37\x31\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x2d\x39\x2e\x36\x36\ +\x30\x35\x38\x2c\x2d\x31\x33\x2e\x37\x39\x37\x33\x20\x61\x20\x31\ +\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x31\x38\x30\x20\x30\x20\ +\x30\x20\x32\x2e\x35\x34\x32\x30\x36\x2c\x31\x2e\x34\x36\x37\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x35\x33\x36\x35\x29\x3b\x66\x69\x6c\x6c\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\ +\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x70\x61\x74\x68\x33\x37\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\x2e\ +\x31\x31\x38\x35\x32\x2c\x2d\x31\x32\x2e\x33\x32\x39\x36\x20\x61\ +\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x2d\x31\x38\x30\x20\ +\x30\x20\x30\x20\x31\x2e\x33\x36\x36\x37\x36\x2c\x2d\x30\x2e\x36\ +\x37\x38\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\ +\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\ +\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x36\x37\x29\x3b\x66\x69\ +\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\ +\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x32\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\ +\x20\x2d\x37\x2e\x31\x31\x38\x35\x32\x2c\x31\x35\x2e\x32\x36\x34\ +\x39\x20\x61\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\ +\x20\x30\x20\x30\x20\x30\x2e\x30\x39\x35\x37\x34\x2c\x2d\x31\x2e\ +\x34\x31\x32\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x36\x39\x29\x3b\x66\ +\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\ +\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x32\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\ +\x6d\x20\x2d\x37\x2e\x30\x32\x32\x37\x38\x2c\x31\x33\x2e\x38\x35\ +\x32\x36\x20\x61\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\ +\x30\x20\x30\x20\x30\x20\x2d\x30\x2e\x30\x39\x35\x37\x34\x2c\x2d\ +\x31\x2e\x35\x32\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\ +\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x37\x31\x29\x3b\ +\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\ +\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x32\x34\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x2d\x31\x34\x2e\x32\x33\x37\x2c\x30\x20\x61\x20\x31\ +\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\x20\x30\x20\ +\x2d\x32\x2e\x35\x34\x32\x31\x2c\x2d\x31\x2e\x34\x36\x37\x36\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x35\x33\x37\x33\x29\x3b\x66\x69\x6c\x6c\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\ +\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\ +\x20\x30\x2c\x31\x33\x2e\x38\x35\x36\x34\x20\x32\x2e\x34\x34\x31\ +\x31\x38\x2c\x31\x2e\x31\x31\x37\x37\x20\x32\x2e\x34\x36\x31\x35\ +\x38\x2c\x30\x2e\x34\x39\x36\x35\x20\x32\x2e\x31\x32\x38\x34\x36\ +\x2c\x2d\x30\x2e\x31\x39\x31\x34\x20\x31\x2e\x34\x31\x33\x33\x35\ +\x2c\x2d\x30\x2e\x35\x36\x38\x34\x20\x31\x2e\x32\x31\x36\x30\x31\ +\x2c\x2d\x30\x2e\x39\x31\x33\x35\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x32\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x35\x33\x37\x35\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\ +\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x2d\x38\x2e\x34\x38\x35\x32\x38\x2c\x31\x34\x2e\x36\x39\x36\x39\ +\x20\x31\x2e\x39\x37\x37\x37\x37\x2c\x30\x2e\x36\x39\x37\x38\x20\ +\x32\x2e\x32\x36\x37\x34\x37\x2c\x30\x2e\x30\x31\x30\x32\x20\x32\ +\x2e\x30\x38\x34\x37\x33\x2c\x2d\x30\x2e\x35\x33\x33\x33\x20\x4c\ +\x20\x30\x2c\x31\x33\x2e\x38\x35\x36\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x32\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x37\x37\x29\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\ +\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\ +\x6d\x20\x2d\x39\x2e\x36\x36\x30\x35\x38\x2c\x31\x33\x2e\x37\x39\ +\x37\x33\x20\x30\x2e\x34\x39\x37\x2c\x30\x2e\x34\x33\x39\x35\x20\ +\x30\x2e\x33\x33\x31\x34\x35\x2c\x30\x2e\x32\x34\x32\x37\x20\x30\ +\x2e\x33\x34\x36\x38\x35\x2c\x30\x2e\x32\x31\x37\x34\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x32\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x37\x39\x29\x3b\x66\ +\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\ +\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x4d\x20\x31\x36\x2e\x37\x37\x39\x31\x2c\x31\x2e\x34\ +\x36\x37\x36\x36\x20\x31\x36\x2e\x39\x31\x31\x32\x2c\x30\x2e\x38\ +\x31\x37\x34\x38\x37\x20\x31\x36\x2e\x39\x35\x35\x37\x2c\x30\x2e\ +\x34\x30\x39\x31\x30\x32\x20\x31\x36\x2e\x39\x37\x30\x36\x2c\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\ +\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x31\ +\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\ +\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x4d\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\ +\x2d\x31\x34\x2e\x36\x39\x36\x39\x20\x37\x2e\x38\x39\x39\x36\x35\ +\x2c\x2d\x31\x34\x2e\x39\x39\x31\x31\x20\x37\x2e\x35\x31\x35\x36\ +\x33\x2c\x2d\x31\x35\x2e\x31\x34\x31\x32\x20\x37\x2e\x31\x31\x38\ +\x35\x32\x2c\x2d\x31\x35\x2e\x32\x36\x34\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x32\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x33\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\ +\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x4d\x20\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\x32\x20\x31\x31\ +\x2e\x36\x36\x35\x35\x2c\x2d\x39\x2e\x39\x36\x38\x39\x35\x20\x31\ +\x30\x2e\x38\x31\x37\x31\x2c\x2d\x31\x32\x2e\x32\x34\x33\x32\x20\ +\x39\x2e\x37\x39\x30\x34\x37\x2c\x2d\x31\x33\x2e\x36\x36\x34\x34\ +\x20\x38\x2e\x34\x38\x35\x32\x38\x2c\x2d\x31\x34\x2e\x36\x39\x36\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x32\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\ +\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\ +\x35\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\ +\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x31\x36\x2e\x39\x37\x30\x36\ +\x2c\x30\x20\x31\x36\x2e\x35\x38\x35\x39\x2c\x2d\x32\x2e\x30\x36\ +\x31\x36\x36\x20\x31\x35\x2e\x34\x36\x31\x2c\x2d\x34\x2e\x30\x33\ +\x30\x34\x35\x20\x31\x33\x2e\x39\x35\x36\x39\x2c\x2d\x35\x2e\x35\ +\x36\x39\x32\x36\x20\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\x32\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x32\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\ +\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x38\x37\x29\ +\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\ +\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x4d\x20\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\ +\x32\x20\x39\x2e\x35\x30\x38\x30\x36\x2c\x2d\x35\x2e\x34\x38\x39\ +\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x32\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\ +\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\ +\x38\x39\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x30\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x30\x2c\x31\x30\x2e\x39\ +\x37\x39\x20\x30\x2c\x32\x2e\x38\x37\x37\x34\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x33\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x39\x31\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\ +\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x2d\x31\x36\x2e\x39\x37\x30\x36\x2c\x30\x20\x30\x2e\ +\x30\x33\x38\x31\x2c\x30\x2e\x36\x35\x34\x32\x36\x33\x20\x30\x2e\ +\x30\x36\x32\x2c\x30\x2e\x34\x30\x37\x36\x31\x37\x20\x30\x2e\x30\ +\x39\x31\x34\x2c\x30\x2e\x34\x30\x35\x37\x38\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x39\x33\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\ +\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x2d\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\x32\x20\x2d\ +\x32\x2e\x34\x36\x36\x31\x2c\x31\x2e\x38\x31\x30\x30\x35\x20\x2d\ +\x31\x2e\x35\x34\x35\x33\x2c\x31\x2e\x38\x37\x31\x38\x32\x20\x2d\ +\x30\x2e\x37\x31\x37\x35\x2c\x31\x2e\x35\x39\x39\x37\x32\x20\x4c\ +\x20\x2d\x31\x36\x2e\x39\x37\x30\x36\x2c\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x39\x35\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\ +\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ +\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x2d\x38\x2e\x34\x38\x35\x32\x38\x2c\x2d\x31\x34\x2e\ +\x36\x39\x36\x39\x20\x2d\x31\x2e\x35\x39\x33\x31\x32\x2c\x31\x2e\ +\x33\x36\x33\x39\x20\x2d\x31\x2e\x31\x34\x32\x36\x2c\x31\x2e\x39\ +\x35\x38\x36\x20\x2d\x30\x2e\x35\x38\x30\x36\x2c\x32\x2e\x30\x37\ +\x32\x30\x32\x20\x4c\x20\x2d\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x33\x33\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\ +\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x35\x33\x39\ +\x37\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\ +\x2e\x35\x36\x34\x34\x34\x34\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x2d\x37\x2e\x31\x31\x38\x35\ +\x32\x2c\x2d\x31\x35\x2e\x32\x36\x34\x39\x20\x2d\x30\x2e\x36\x32\ +\x39\x31\x33\x2c\x30\x2e\x32\x31\x30\x36\x20\x2d\x30\x2e\x33\x37\ +\x35\x38\x39\x2c\x30\x2e\x31\x36\x35\x37\x20\x2d\x30\x2e\x33\x36\ +\x31\x37\x34\x2c\x30\x2e\x31\x39\x31\x37\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x33\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x35\x33\x39\x39\x29\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x30\x2e\x35\x36\x34\x34\x34\x34\ +\x34\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\ +\x6d\x20\x2d\x31\x32\x2c\x2d\x36\x2e\x39\x32\x38\x32\x20\x32\x2e\ +\x34\x39\x31\x39\x34\x2c\x31\x2e\x34\x33\x38\x37\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x33\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\ +\x33\x39\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\ +\x78\x28\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x30\x2c\x30\ +\x2c\x2d\x32\x35\x2e\x39\x30\x33\x39\x36\x31\x2c\x2d\x32\x34\x33\ +\x33\x2e\x39\x33\x36\x37\x2c\x2d\x35\x31\x31\x2e\x39\x35\x37\x34\ +\x33\x29\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\ +\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\ +\x34\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x34\x34\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x2d\x32\x37\x2e\ +\x39\x32\x30\x33\x2c\x32\x2e\x32\x36\x33\x33\x39\x20\x31\x35\x2e\ +\x39\x32\x30\x33\x2c\x2d\x32\x33\x2e\x30\x34\x38\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x30\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x4d\x20\x2d\x31\x35\x2e\x39\x32\x30\x33\x2c\ +\x32\x33\x2e\x30\x34\x38\x20\x32\x37\x2e\x39\x32\x30\x33\x2c\x2d\ +\x32\x2e\x32\x36\x33\x33\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x67\x34\x34\x30\x36\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x4d\x20\x33\x30\x2e\x34\x30\x35\x36\x2c\x2d\x37\x2e\ +\x37\x35\x36\x37\x32\x20\x41\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\ +\x32\x20\x36\x30\x20\x30\x20\x30\x20\x31\x35\x2e\x39\x32\x30\x33\ +\x2c\x2d\x32\x33\x2e\x30\x34\x38\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x34\x34\x30\x38\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x35\x2e\x39\x32\x30\x33\x2c\x2d\x32\x33\x2e\x30\ +\x34\x38\x20\x61\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x30\x31\ +\x36\x20\x36\x30\x20\x30\x20\x30\x20\x31\x32\x2c\x32\x30\x2e\x37\ +\x38\x34\x36\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x31\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\ +\x37\x2e\x39\x32\x30\x33\x2c\x2d\x32\x2e\x32\x36\x33\x33\x39\x20\ +\x61\x20\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x20\x36\x30\x20\x30\ +\x20\x30\x20\x32\x2e\x34\x38\x35\x33\x2c\x2d\x35\x2e\x34\x39\x33\ +\x33\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x31\x32\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\ +\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x2d\x32\x37\ +\x2e\x39\x32\x30\x33\x2c\x32\x2e\x32\x36\x33\x33\x39\x20\x61\x20\ +\x31\x32\x2c\x36\x2e\x39\x32\x38\x32\x30\x31\x36\x20\x36\x30\x20\ +\x30\x20\x30\x20\x31\x32\x2c\x32\x30\x2e\x37\x38\x34\x36\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x34\x34\x31\x34\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\ +\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x76\xd9\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x6e\x73\x2e\x61\x64\x6f\x62\ +\x65\x2e\x63\x6f\x6d\x2f\x41\x64\x6f\x62\x65\x49\x6c\x6c\x75\x73\ +\x74\x72\x61\x74\x6f\x72\x2f\x31\x30\x2e\x30\x2f\x22\x0a\x20\x20\ +\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\ +\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\x31\x2f\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\ +\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\ +\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\x0a\x20\x20\x20\x78\x6d\x6c\ +\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ +\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x30\ +\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\x73\x79\x6e\x74\x61\x78\x2d\ +\x6e\x73\x23\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\ +\x67\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\ +\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\ +\x20\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\ +\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\ +\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\ +\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\ +\x6b\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\ +\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\x72\x63\x65\x66\x6f\x72\x67\ +\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\ +\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\x0a\x20\x20\x20\x78\x6d\x6c\ +\x6e\x73\x3a\x69\x6e\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\x20\x20\x77\x69\x64\ +\x74\x68\x3d\x22\x36\x34\x70\x78\x22\x0a\x20\x20\x20\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x36\x34\x70\x78\x22\x0a\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x76\x67\x32\x39\x38\x30\x22\x0a\x20\x20\x20\x73\x6f\ +\x64\x69\x70\x6f\x64\x69\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\ +\x30\x2e\x33\x32\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\ +\x33\x2e\x31\x20\x72\x39\x38\x38\x36\x22\x0a\x20\x20\x20\x73\x6f\ +\x64\x69\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\ +\x54\x72\x65\x65\x5f\x50\x61\x72\x74\x2e\x73\x76\x67\x22\x0a\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6f\x75\x74\x70\x75\ +\x74\x5f\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x3d\x22\x6f\x72\x67\ +\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x75\x74\x70\x75\x74\ +\x2e\x73\x76\x67\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\ +\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x3e\ +\x0a\x20\x20\x3c\x64\x65\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x64\x65\x66\x73\x32\x39\x38\x32\x22\x3e\x0a\x20\x20\x20\ +\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x22\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\ +\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\ +\x6f\x72\x3a\x23\x37\x31\x62\x32\x66\x38\x3b\x73\x74\x6f\x70\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x38\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x30\x30\x32\x37\x39\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\ +\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x35\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\ +\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\ +\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\ +\x61\x74\x72\x69\x78\x28\x30\x2e\x36\x30\x32\x38\x34\x35\x39\x2c\ +\x31\x2e\x30\x34\x37\x31\x36\x33\x39\x2c\x2d\x31\x2e\x39\x37\x39\ +\x34\x30\x32\x31\x2c\x31\x2e\x31\x33\x39\x35\x32\x39\x35\x2c\x31\ +\x32\x37\x2e\x39\x35\x38\x38\x2c\x2d\x37\x34\x2e\x34\x35\x36\x39\ +\x30\x37\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\ +\x35\x31\x2e\x33\x32\x38\x38\x39\x32\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x63\x79\x3d\x22\x33\x31\x2e\x30\x37\x34\x31\x34\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x35\x31\x2e\x33\ +\x32\x38\x38\x39\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x79\ +\x3d\x22\x33\x31\x2e\x30\x37\x34\x31\x34\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x72\x3d\x22\x31\x39\x2e\x35\x37\x31\x34\x32\x38\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\ +\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\ +\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\ +\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x7a\x3d\x22\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\ +\x33\x32\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x32\x39\x38\x38\x22\x20\ +\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\x20\x20\x3c\ +\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\ +\x65\x77\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\x61\x73\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\ +\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\x20\x20\x20\ +\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\ +\x36\x36\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\ +\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\ +\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\ +\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\ +\x31\x2e\x36\x31\x36\x30\x39\x36\x37\x22\x0a\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x31\x36\x2e\ +\x35\x37\x39\x33\x35\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x2d\x34\x36\x2e\x37\x34\x38\ +\x38\x34\x33\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\ +\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x73\ +\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\x63\ +\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\ +\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ +\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x39\x31\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\ +\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x38\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x31\x37\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ +\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x39\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ +\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\x30\x22\x20\x2f\ +\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0a\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x32\ +\x39\x38\x35\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\ +\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\ +\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\ +\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\ +\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\ +\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\ +\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\ +\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\ +\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\ +\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\ +\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\ +\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\ +\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\ +\x33\x38\x34\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\ +\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\ +\x2e\x34\x39\x36\x31\x31\x36\x39\x32\x2c\x30\x2c\x30\x2c\x30\x2e\ +\x34\x39\x36\x31\x31\x36\x39\x32\x2c\x2d\x36\x2e\x32\x33\x33\x36\ +\x35\x33\x36\x2c\x2d\x34\x30\x2e\x37\x31\x32\x31\x31\x32\x29\x22\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ +\x6c\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\x66\x69\x6c\x6c\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\ +\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x62\x65\ +\x76\x65\x6c\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\ +\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\ +\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\ +\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\ +\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\ +\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\ +\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\x36\ +\x2e\x31\x38\x34\x34\x34\x2c\x31\x34\x31\x2e\x34\x34\x39\x36\x38\ +\x20\x2d\x31\x39\x2e\x38\x31\x34\x34\x31\x2c\x37\x2e\x31\x37\x39\ +\x32\x31\x20\x32\x39\x2e\x34\x33\x34\x39\x2c\x33\x2e\x39\x37\x32\ +\x30\x39\x20\x2d\x30\x2e\x37\x32\x33\x35\x37\x2c\x33\x36\x2e\x31\ +\x32\x36\x36\x35\x20\x31\x37\x2e\x32\x35\x38\x38\x31\x2c\x2d\x31\ +\x30\x2e\x39\x34\x33\x38\x38\x20\x30\x2e\x35\x37\x35\x38\x37\x2c\ +\x2d\x33\x34\x2e\x33\x38\x34\x38\x35\x20\x2d\x32\x36\x2e\x37\x33\ +\x31\x36\x2c\x2d\x31\x2e\x39\x34\x39\x32\x32\x20\x7a\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\ +\x33\x38\x32\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\ +\x73\x3d\x22\x63\x63\x63\x63\x63\x63\x63\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x33\x34\x66\ +\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\ +\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\ +\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\ +\x6a\x6f\x69\x6e\x3a\x62\x65\x76\x65\x6c\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\ +\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\ +\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\ +\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\ +\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\ +\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\ +\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x6d\x20\x37\x35\x2e\x35\x37\x39\x34\x31\x2c\x31\x34\ +\x38\x2e\x36\x35\x38\x39\x20\x33\x30\x2e\x37\x30\x38\x38\x34\x2c\ +\x33\x2e\x33\x36\x35\x36\x32\x20\x30\x2c\x33\x36\x2e\x34\x37\x37\ +\x31\x39\x20\x2d\x33\x31\x2e\x31\x32\x33\x38\x33\x2c\x2d\x35\x2e\ +\x30\x36\x34\x37\x39\x20\x30\x2e\x34\x31\x34\x39\x39\x2c\x2d\x33\ +\x34\x2e\x37\x37\x38\x30\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x35\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\ +\x63\x63\x63\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\ +\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x72\x61\x64\x69\x61\x6c\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x35\x30\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x34\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\ +\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\ +\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\ +\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\ +\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\ +\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\ +\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x31\x30\x36\x2e\x30\x35\x34\x33\x35\x2c\x31\x35\x32\x2e\x30\x36\ +\x39\x34\x38\x20\x31\x36\x2e\x37\x32\x35\x39\x38\x2c\x2d\x38\x2e\ +\x34\x30\x38\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\ +\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\ +\x67\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x31\x2e\x39\x37\x37\x38\x39\x33\x34\x37\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\ +\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x67\x33\x39\x38\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x33\x34\x35\x33\x30\x30\x37\ +\x32\x2c\x2d\x30\x2e\x30\x34\x35\x39\x35\x35\x35\x2c\x30\x2e\x30\ +\x34\x35\x39\x35\x35\x35\x2c\x30\x2e\x33\x34\x35\x33\x30\x30\x37\ +\x32\x2c\x2d\x34\x33\x2e\x32\x32\x38\x39\x35\x36\x2c\x2d\x37\x2e\ +\x32\x33\x38\x31\x33\x34\x29\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x4c\x61\x79\x65\x72\x5f\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x3a\x72\x67\x62\x54\x72\x69\x6f\x3d\x22\x23\x34\x46\ +\x30\x30\x38\x30\x30\x30\x46\x46\x46\x46\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x3a\x6c\x61\x79\x65\x72\x3d\x22\x79\x65\ +\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x64\x69\ +\x6d\x6d\x65\x64\x50\x65\x72\x63\x65\x6e\x74\x3d\x22\x35\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x39\ +\x37\x37\x38\x39\x33\x34\x37\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x67\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\ +\x33\x38\x39\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\ +\x69\x78\x28\x2d\x30\x2e\x33\x32\x34\x33\x35\x35\x31\x34\x2c\x30\ +\x2e\x31\x33\x37\x35\x34\x34\x36\x37\x2c\x2d\x30\x2e\x31\x33\x37\ +\x35\x34\x34\x36\x37\x2c\x2d\x30\x2e\x33\x32\x34\x33\x35\x35\x31\ +\x34\x2c\x32\x37\x30\x2e\x39\x30\x32\x2c\x31\x33\x39\x2e\x34\x30\ +\x38\x37\x36\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x38\x39\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\ +\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x33\x34\x38\x2e\x34\ +\x32\x36\x2c\x34\x39\x2e\x31\x31\x33\x20\x63\x20\x31\x35\x2e\x35\ +\x31\x36\x2c\x2d\x34\x2e\x31\x34\x20\x33\x30\x2e\x33\x34\x38\x2c\ +\x2d\x38\x2e\x30\x32\x38\x20\x34\x35\x2e\x34\x36\x39\x2c\x2d\x31\ +\x31\x2e\x36\x36\x34\x20\x31\x35\x2e\x30\x38\x34\x2c\x2d\x33\x2e\ +\x38\x35\x32\x20\x33\x34\x2e\x30\x35\x35\x2c\x2d\x38\x2e\x34\x36\ +\x20\x34\x34\x2e\x31\x33\x35\x2c\x2d\x31\x30\x2e\x33\x33\x32\x20\ +\x39\x2e\x39\x33\x38\x2c\x2d\x31\x2e\x38\x37\x32\x20\x31\x30\x2e\ +\x36\x32\x31\x2c\x2d\x31\x2e\x31\x31\x36\x20\x31\x35\x2e\x30\x38\ +\x34\x2c\x2d\x30\x2e\x33\x36\x20\x34\x2e\x33\x32\x2c\x30\x2e\x36\ +\x34\x38\x20\x38\x2e\x32\x34\x34\x2c\x33\x2e\x34\x39\x32\x20\x31\ +\x30\x2e\x38\x30\x31\x2c\x34\x2e\x39\x33\x32\x20\x32\x2e\x33\x34\ +\x2c\x31\x2e\x32\x39\x36\x20\x33\x2e\x35\x32\x37\x2c\x30\x2e\x36\ +\x34\x38\x20\x33\x2e\x35\x36\x34\x2c\x33\x2e\x37\x34\x34\x20\x2d\ +\x30\x2e\x31\x38\x2c\x33\x2e\x30\x39\x36\x20\x2d\x31\x2e\x34\x37\ +\x37\x2c\x31\x31\x2e\x33\x34\x20\x2d\x33\x2e\x38\x38\x39\x2c\x31\ +\x35\x2e\x31\x35\x36\x20\x2d\x32\x2e\x34\x34\x37\x2c\x33\x2e\x37\ +\x30\x38\x20\x2d\x36\x2e\x35\x35\x33\x2c\x35\x2e\x33\x36\x34\x20\ +\x2d\x31\x30\x2e\x33\x36\x37\x2c\x37\x2e\x34\x38\x38\x20\x2d\x33\ +\x2e\x38\x38\x39\x2c\x32\x2e\x30\x38\x38\x20\x2d\x37\x2e\x36\x36\ +\x38\x2c\x33\x2e\x31\x33\x32\x20\x2d\x31\x32\x2e\x36\x30\x32\x2c\ +\x35\x2e\x30\x37\x36\x20\x2d\x35\x2e\x30\x33\x39\x2c\x31\x2e\x38\ +\x37\x32\x20\x2d\x34\x2e\x32\x34\x38\x2c\x30\x2e\x37\x32\x20\x2d\ +\x31\x37\x2e\x32\x30\x37\x2c\x35\x2e\x39\x37\x36\x20\x2d\x31\x33\ +\x2e\x32\x31\x33\x2c\x35\x2e\x31\x34\x38\x20\x2d\x34\x34\x2e\x34\ +\x36\x31\x2c\x31\x38\x2e\x30\x37\x32\x20\x2d\x36\x30\x2e\x32\x36\ +\x34\x2c\x32\x34\x2e\x38\x37\x36\x20\x2d\x31\x35\x2e\x37\x33\x32\ +\x2c\x36\x2e\x36\x36\x20\x2d\x32\x32\x2e\x39\x33\x32\x2c\x39\x2e\ +\x33\x36\x20\x2d\x33\x33\x2e\x35\x35\x33\x2c\x31\x35\x2e\x31\x39\ +\x32\x20\x2d\x31\x30\x2e\x37\x36\x34\x2c\x35\x2e\x37\x39\x35\x20\ +\x2d\x32\x31\x2e\x38\x38\x39\x2c\x31\x35\x2e\x35\x38\x38\x20\x2d\ +\x33\x30\x2e\x33\x31\x33\x2c\x31\x39\x2e\x32\x36\x20\x2d\x38\x2e\ +\x34\x35\x39\x2c\x33\x2e\x34\x39\x32\x20\x2d\x31\x33\x2e\x38\x35\ +\x39\x2c\x31\x2e\x34\x37\x37\x20\x2d\x31\x39\x2e\x39\x34\x33\x2c\ +\x32\x2e\x31\x36\x20\x2d\x36\x2e\x30\x38\x34\x2c\x30\x2e\x36\x31\ +\x31\x20\x2d\x38\x2e\x37\x31\x31\x2c\x2d\x30\x2e\x31\x34\x35\x20\ +\x2d\x31\x36\x2e\x37\x37\x35\x2c\x31\x2e\x37\x36\x34\x20\x2d\x38\ +\x2e\x33\x31\x36\x2c\x31\x2e\x38\x37\x31\x20\x2d\x32\x32\x2e\x32\ +\x34\x38\x2c\x35\x2e\x39\x33\x39\x20\x2d\x33\x32\x2e\x32\x32\x31\ +\x2c\x39\x2e\x34\x33\x32\x20\x2d\x31\x30\x2e\x31\x31\x36\x2c\x33\ +\x2e\x34\x39\x32\x20\x2d\x32\x30\x2e\x39\x38\x38\x2c\x38\x2e\x31\ +\x37\x32\x20\x2d\x32\x37\x2e\x32\x31\x36\x2c\x31\x30\x2e\x39\x38\ +\x20\x2d\x36\x2e\x31\x39\x32\x2c\x32\x2e\x36\x32\x39\x20\x2d\x39\ +\x2e\x34\x33\x32\x2c\x34\x2e\x32\x31\x33\x20\x2d\x39\x2e\x37\x32\ +\x2c\x34\x2e\x38\x39\x36\x20\x2d\x30\x2e\x31\x38\x2c\x33\x2e\x31\ +\x33\x31\x20\x2d\x32\x2e\x30\x31\x36\x2c\x36\x2e\x31\x31\x39\x20\ +\x2d\x35\x2e\x35\x30\x38\x2c\x39\x2e\x31\x30\x37\x20\x2d\x33\x2e\ +\x36\x2c\x32\x2e\x39\x38\x38\x20\x2d\x36\x2e\x35\x31\x36\x2c\x34\ +\x2e\x31\x37\x36\x20\x2d\x31\x35\x2e\x35\x35\x32\x2c\x38\x2e\x37\ +\x31\x33\x20\x2d\x39\x2e\x32\x31\x36\x2c\x34\x2e\x34\x32\x38\x20\ +\x2d\x32\x36\x2e\x39\x36\x34\x2c\x31\x32\x2e\x30\x39\x36\x20\x2d\ +\x33\x38\x2e\x39\x35\x32\x2c\x31\x37\x2e\x38\x35\x35\x20\x2d\x31\ +\x32\x2e\x31\x36\x38\x2c\x35\x2e\x37\x32\x35\x20\x2d\x32\x33\x2e\ +\x35\x34\x34\x2c\x31\x31\x2e\x35\x35\x37\x20\x2d\x33\x32\x2e\x37\ +\x36\x2c\x31\x36\x2e\x31\x32\x37\x20\x2d\x39\x2e\x31\x34\x34\x2c\ +\x34\x2e\x34\x33\x20\x2d\x31\x36\x2e\x32\x33\x36\x2c\x37\x2e\x39\ +\x35\x37\x20\x2d\x32\x31\x2e\x38\x31\x36\x2c\x31\x30\x2e\x35\x38\ +\x34\x20\x2d\x35\x2e\x36\x38\x38\x2c\x32\x2e\x35\x39\x32\x20\x2d\ +\x37\x2e\x35\x39\x36\x2c\x34\x2e\x34\x33\x20\x2d\x31\x31\x2e\x39\ +\x35\x32\x2c\x34\x2e\x39\x36\x39\x20\x2d\x34\x2e\x33\x39\x32\x2c\ +\x30\x2e\x33\x35\x39\x20\x2d\x38\x2e\x31\x2c\x30\x2e\x33\x32\x34\ +\x20\x2d\x31\x34\x2e\x36\x31\x36\x2c\x2d\x32\x2e\x36\x32\x39\x20\ +\x2d\x36\x2e\x37\x33\x32\x2c\x2d\x33\x2e\x31\x33\x31\x20\x2d\x31\ +\x37\x2e\x33\x38\x38\x2c\x2d\x31\x30\x2e\x33\x36\x37\x20\x2d\x32\ +\x35\x2e\x30\x32\x2c\x2d\x31\x35\x2e\x34\x34\x33\x20\x2d\x37\x2e\ +\x37\x30\x34\x2c\x2d\x35\x2e\x31\x31\x31\x20\x2d\x31\x36\x2e\x32\ +\x2c\x2d\x31\x30\x2e\x35\x31\x32\x20\x2d\x32\x30\x2e\x34\x38\x34\ +\x2c\x2d\x31\x34\x2e\x38\x33\x32\x20\x2d\x34\x2e\x32\x34\x38\x2c\ +\x2d\x34\x2e\x33\x32\x20\x2d\x33\x2e\x38\x35\x32\x2c\x2d\x36\x2e\ +\x35\x38\x38\x20\x2d\x34\x2e\x39\x33\x32\x2c\x2d\x31\x31\x2e\x30\ +\x38\x38\x20\x2d\x31\x2e\x32\x32\x34\x2c\x2d\x34\x2e\x36\x38\x20\ +\x2d\x32\x2e\x35\x32\x2c\x2d\x31\x31\x2e\x39\x38\x38\x20\x2d\x31\ +\x2e\x38\x2c\x2d\x31\x36\x2e\x32\x33\x36\x20\x30\x2e\x36\x31\x32\ +\x2c\x2d\x34\x2e\x33\x35\x35\x20\x32\x2e\x35\x35\x36\x2c\x2d\x36\ +\x2e\x39\x38\x34\x20\x35\x2e\x39\x37\x36\x2c\x2d\x39\x2e\x33\x39\ +\x35\x20\x33\x2e\x34\x39\x32\x2c\x2d\x32\x2e\x34\x31\x32\x20\x38\ +\x2e\x30\x36\x34\x2c\x2d\x34\x2e\x31\x34\x31\x20\x31\x34\x2e\x34\ +\x2c\x2d\x35\x2e\x30\x34\x31\x20\x30\x2e\x34\x33\x32\x2c\x2d\x39\ +\x2e\x37\x39\x31\x20\x30\x2e\x31\x38\x2c\x2d\x31\x39\x2e\x34\x37\ +\x37\x20\x2d\x30\x2e\x36\x31\x32\x2c\x2d\x32\x39\x2e\x33\x34\x20\ +\x2d\x30\x2e\x39\x37\x32\x2c\x2d\x39\x2e\x39\x37\x32\x20\x2d\x33\ +\x2e\x32\x34\x2c\x2d\x32\x31\x2e\x36\x33\x36\x20\x2d\x34\x2e\x34\ +\x32\x38\x2c\x2d\x32\x39\x2e\x37\x33\x36\x20\x2d\x31\x2e\x31\x35\ +\x32\x2c\x2d\x38\x2e\x31\x37\x32\x20\x2d\x32\x2e\x30\x35\x32\x2c\ +\x2d\x31\x34\x2e\x31\x38\x34\x20\x2d\x32\x2e\x35\x35\x36\x2c\x2d\ +\x31\x38\x2e\x35\x37\x36\x20\x31\x2e\x38\x2c\x2d\x34\x2e\x31\x30\ +\x34\x20\x34\x2e\x30\x36\x38\x2c\x2d\x36\x2e\x38\x30\x34\x20\x36\ +\x2e\x38\x30\x34\x2c\x2d\x38\x2e\x35\x33\x32\x20\x32\x2e\x36\x36\ +\x34\x2c\x2d\x31\x2e\x37\x36\x34\x20\x36\x2e\x33\x33\x36\x2c\x2d\ +\x31\x2e\x36\x35\x36\x20\x39\x2e\x33\x36\x2c\x2d\x31\x2e\x36\x32\ +\x20\x32\x2e\x39\x31\x36\x2c\x2d\x30\x2e\x30\x37\x32\x20\x35\x2e\ +\x37\x32\x34\x2c\x30\x2e\x34\x36\x38\x20\x38\x2e\x32\x38\x2c\x31\ +\x2e\x34\x37\x36\x20\x31\x2e\x38\x2c\x2d\x34\x2e\x37\x38\x38\x20\ +\x34\x2e\x36\x30\x38\x2c\x2d\x37\x2e\x35\x36\x20\x38\x2e\x35\x36\ +\x38\x2c\x2d\x38\x2e\x33\x31\x36\x20\x33\x2e\x38\x35\x32\x2c\x2d\ +\x30\x2e\x37\x35\x36\x20\x38\x2e\x38\x35\x36\x2c\x30\x2e\x33\x39\ +\x36\x20\x31\x34\x2e\x38\x36\x38\x2c\x33\x2e\x36\x20\x31\x2e\x38\ +\x33\x36\x2c\x2d\x33\x2e\x39\x36\x20\x34\x2e\x35\x2c\x2d\x36\x2e\ +\x30\x38\x34\x20\x37\x2e\x39\x39\x32\x2c\x2d\x36\x2e\x35\x31\x36\ +\x20\x33\x2e\x34\x39\x32\x2c\x2d\x30\x2e\x34\x33\x32\x20\x37\x2e\ +\x37\x30\x34\x2c\x30\x2e\x38\x32\x38\x20\x31\x32\x2e\x37\x38\x2c\ +\x33\x2e\x39\x32\x34\x20\x31\x2e\x35\x34\x38\x2c\x2d\x33\x2e\x30\ +\x32\x34\x20\x33\x2e\x37\x30\x38\x2c\x2d\x34\x2e\x37\x38\x38\x20\ +\x36\x2e\x36\x32\x34\x2c\x2d\x35\x2e\x31\x34\x38\x20\x32\x2e\x38\ +\x38\x2c\x2d\x30\x2e\x33\x39\x36\x20\x36\x2e\x34\x38\x2c\x30\x2e\ +\x34\x36\x38\x20\x31\x30\x2e\x38\x2c\x32\x2e\x37\x33\x36\x20\x31\ +\x2e\x39\x30\x38\x2c\x2d\x32\x2e\x39\x35\x32\x20\x34\x2e\x34\x32\ +\x38\x2c\x2d\x34\x2e\x35\x33\x36\x20\x37\x2e\x35\x36\x2c\x2d\x34\ +\x2e\x38\x39\x36\x20\x33\x2e\x31\x33\x32\x2c\x2d\x30\x2e\x34\x33\ +\x32\x20\x36\x2e\x37\x33\x32\x2c\x30\x2e\x35\x30\x34\x20\x31\x31\ +\x2e\x30\x38\x38\x2c\x32\x2e\x36\x36\x34\x20\x30\x2e\x31\x38\x2c\ +\x2d\x31\x2e\x34\x34\x20\x31\x2e\x32\x32\x34\x2c\x2d\x32\x2e\x34\ +\x31\x32\x20\x33\x2e\x36\x37\x32\x2c\x2d\x32\x2e\x35\x32\x20\x32\ +\x2e\x32\x36\x38\x2c\x2d\x30\x2e\x32\x31\x36\x20\x37\x2e\x31\x32\ +\x38\x2c\x30\x2e\x36\x31\x32\x20\x31\x30\x2e\x32\x39\x36\x2c\x31\ +\x2e\x33\x36\x38\x20\x33\x2e\x30\x39\x36\x2c\x30\x2e\x36\x31\x32\ +\x20\x34\x2e\x36\x34\x34\x2c\x31\x2e\x33\x36\x38\x20\x38\x2e\x33\ +\x38\x38\x2c\x32\x2e\x36\x36\x34\x20\x33\x2e\x36\x2c\x31\x2e\x32\ +\x36\x20\x39\x2e\x32\x35\x32\x2c\x33\x2e\x30\x39\x36\x20\x31\x33\ +\x2e\x35\x2c\x34\x2e\x39\x33\x32\x20\x34\x2e\x32\x34\x38\x2c\x31\ +\x2e\x37\x32\x38\x20\x39\x2e\x32\x38\x38\x2c\x32\x2e\x35\x35\x36\ +\x20\x31\x31\x2e\x36\x32\x38\x2c\x35\x2e\x34\x20\x32\x2e\x31\x39\ +\x36\x2c\x32\x2e\x37\x37\x32\x20\x31\x2e\x37\x36\x34\x2c\x34\x2e\ +\x37\x38\x38\x20\x31\x2e\x37\x36\x34\x2c\x31\x31\x2e\x33\x34\x20\ +\x2d\x30\x2e\x30\x33\x36\x2c\x36\x2e\x35\x38\x38\x20\x2d\x31\x2e\ +\x38\x2c\x32\x30\x2e\x32\x36\x38\x20\x2d\x31\x2e\x38\x33\x36\x2c\ +\x32\x37\x2e\x35\x37\x36\x20\x2d\x30\x2e\x31\x38\x2c\x37\x2e\x32\ +\x33\x36\x20\x30\x2e\x31\x38\x2c\x31\x32\x2e\x32\x30\x34\x20\x30\ +\x2e\x39\x33\x36\x2c\x31\x35\x2e\x34\x34\x34\x20\x31\x33\x2e\x30\ +\x36\x38\x2c\x2d\x34\x2e\x33\x32\x20\x32\x35\x2e\x30\x35\x36\x2c\ +\x2d\x38\x2e\x37\x34\x38\x20\x33\x36\x2e\x35\x30\x34\x2c\x2d\x31\ +\x33\x2e\x38\x32\x34\x20\x31\x31\x2e\x34\x31\x32\x2c\x2d\x35\x2e\ +\x31\x34\x38\x20\x32\x33\x2e\x36\x38\x38\x2c\x2d\x31\x31\x2e\x35\ +\x35\x36\x20\x33\x31\x2e\x35\x33\x36\x2c\x2d\x31\x36\x2e\x33\x30\ +\x38\x20\x37\x2e\x35\x39\x36\x2c\x2d\x34\x2e\x38\x39\x36\x20\x39\ +\x2e\x30\x33\x35\x2c\x2d\x39\x2e\x34\x33\x32\x20\x31\x34\x2e\x34\ +\x37\x33\x2c\x2d\x31\x32\x2e\x33\x34\x38\x20\x35\x2e\x33\x39\x38\ +\x2c\x2d\x32\x2e\x39\x31\x36\x20\x31\x30\x2e\x32\x39\x35\x2c\x2d\ +\x33\x2e\x32\x34\x20\x31\x37\x2e\x37\x34\x38\x2c\x2d\x35\x2e\x31\ +\x34\x38\x20\x37\x2e\x33\x37\x39\x2c\x2d\x32\x2e\x30\x35\x32\x20\ +\x31\x36\x2e\x34\x31\x36\x2c\x2d\x34\x2e\x32\x31\x32\x20\x32\x36\ +\x2e\x32\x37\x39\x2c\x2d\x36\x2e\x37\x36\x38\x20\x39\x2e\x36\x38\ +\x34\x2c\x2d\x32\x2e\x37\x37\x32\x20\x32\x32\x2e\x33\x39\x33\x2c\ +\x2d\x36\x2e\x33\x37\x32\x20\x33\x31\x2e\x38\x35\x39\x2c\x2d\x38\ +\x2e\x38\x35\x36\x20\x39\x2e\x33\x39\x38\x2c\x2d\x32\x2e\x34\x38\ +\x33\x20\x31\x37\x2e\x33\x31\x38\x2c\x2d\x34\x2e\x34\x36\x33\x20\ +\x32\x34\x2e\x31\x35\x38\x2c\x2d\x35\x2e\x39\x33\x39\x20\x7a\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\ +\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\ +\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\ +\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x38\x39\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\ +\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x35\x39\x2e\x33\ +\x32\x36\x2c\x37\x34\x2e\x37\x30\x39\x20\x63\x20\x31\x33\x2e\x31\ +\x30\x34\x2c\x2d\x32\x2e\x37\x20\x32\x36\x2e\x38\x35\x35\x2c\x2d\ +\x35\x2e\x39\x34\x20\x34\x32\x2e\x30\x38\x34\x2c\x2d\x31\x30\x2e\ +\x30\x30\x38\x20\x31\x35\x2e\x31\x39\x31\x2c\x2d\x34\x2e\x32\x31\ +\x32\x20\x33\x31\x2e\x36\x38\x2c\x2d\x39\x2e\x36\x38\x34\x20\x34\ +\x38\x2e\x33\x34\x38\x2c\x2d\x31\x34\x2e\x31\x38\x34\x20\x31\x36\ +\x2e\x36\x33\x33\x2c\x2d\x34\x2e\x35\x33\x36\x20\x33\x34\x2e\x39\ +\x32\x2c\x2d\x38\x2e\x37\x31\x32\x20\x35\x30\x2e\x34\x2c\x2d\x31\ +\x32\x2e\x33\x38\x34\x20\x31\x35\x2e\x32\x36\x34\x2c\x2d\x33\x2e\ +\x38\x31\x36\x20\x33\x31\x2e\x34\x36\x33\x2c\x2d\x38\x2e\x34\x39\ +\x36\x20\x34\x30\x2e\x38\x32\x34\x2c\x2d\x39\x2e\x37\x32\x20\x39\ +\x2e\x31\x38\x2c\x2d\x31\x2e\x32\x36\x20\x31\x30\x2e\x37\x36\x34\ +\x2c\x30\x2e\x39\x33\x36\x20\x31\x34\x2e\x34\x37\x31\x2c\x32\x2e\ +\x34\x31\x32\x20\x33\x2e\x36\x33\x37\x2c\x31\x2e\x33\x36\x38\x20\ +\x39\x2e\x37\x32\x31\x2c\x33\x2e\x39\x39\x36\x20\x37\x2e\x34\x31\ +\x36\x2c\x36\x2e\x30\x38\x34\x20\x2d\x32\x2e\x34\x34\x37\x2c\x31\ +\x2e\x39\x34\x34\x20\x2d\x39\x2e\x36\x38\x34\x2c\x33\x2e\x30\x39\ +\x36\x20\x2d\x32\x31\x2e\x38\x35\x32\x2c\x36\x2e\x33\x37\x32\x20\ +\x2d\x31\x32\x2e\x33\x34\x38\x2c\x33\x2e\x32\x34\x20\x2d\x33\x34\ +\x2e\x35\x32\x33\x2c\x38\x2e\x38\x35\x36\x20\x2d\x35\x31\x2e\x31\ +\x31\x39\x2c\x31\x33\x2e\x35\x33\x36\x20\x2d\x31\x36\x2e\x37\x30\ +\x35\x2c\x34\x2e\x36\x38\x20\x2d\x33\x31\x2e\x33\x39\x33\x2c\x39\ +\x2e\x31\x30\x38\x20\x2d\x34\x37\x2e\x39\x35\x33\x2c\x31\x34\x2e\ +\x34\x20\x2d\x31\x36\x2e\x36\x33\x31\x2c\x35\x2e\x32\x32\x20\x2d\ +\x33\x38\x2e\x31\x39\x35\x2c\x31\x31\x2e\x39\x38\x38\x20\x2d\x35\ +\x30\x2e\x39\x33\x39\x2c\x31\x36\x2e\x38\x31\x32\x20\x2d\x31\x32\ +\x2e\x37\x34\x34\x2c\x34\x2e\x37\x35\x32\x20\x2d\x31\x32\x2e\x37\ +\x30\x37\x2c\x36\x2e\x30\x38\x34\x20\x2d\x32\x35\x2e\x31\x36\x34\ +\x2c\x31\x31\x2e\x37\x37\x32\x20\x2d\x31\x32\x2e\x37\x30\x37\x2c\ +\x35\x2e\x35\x38\x20\x2d\x33\x35\x2e\x38\x32\x2c\x31\x35\x2e\x37\ +\x36\x38\x20\x2d\x34\x39\x2e\x37\x35\x32\x2c\x32\x31\x2e\x38\x31\ +\x36\x20\x2d\x31\x33\x2e\x39\x33\x32\x2c\x36\x2e\x30\x34\x37\x20\ +\x2d\x32\x35\x2e\x33\x38\x2c\x31\x32\x2e\x32\x34\x20\x2d\x33\x32\ +\x2e\x38\x33\x32\x2c\x31\x34\x2e\x30\x30\x34\x20\x2d\x37\x2e\x34\ +\x38\x38\x2c\x31\x2e\x34\x37\x37\x20\x2d\x38\x2e\x39\x32\x38\x2c\ +\x2d\x32\x2e\x33\x30\x35\x20\x2d\x31\x31\x2e\x36\x36\x34\x2c\x2d\ +\x34\x2e\x33\x39\x33\x20\x2d\x32\x2e\x39\x31\x36\x2c\x2d\x32\x2e\ +\x31\x32\x33\x20\x2d\x34\x2e\x35\x33\x36\x2c\x2d\x34\x2e\x36\x38\ +\x20\x2d\x35\x2e\x32\x35\x36\x2c\x2d\x37\x2e\x39\x35\x35\x20\x31\ +\x31\x2e\x34\x38\x34\x2c\x2d\x34\x2e\x31\x34\x31\x20\x32\x32\x2e\ +\x35\x37\x32\x2c\x2d\x38\x2e\x36\x30\x35\x20\x33\x33\x2e\x36\x36\ +\x2c\x2d\x31\x33\x2e\x35\x33\x37\x20\x31\x31\x2e\x30\x35\x32\x2c\ +\x2d\x35\x2e\x30\x30\x34\x20\x32\x34\x2e\x33\x2c\x2d\x31\x30\x2e\ +\x39\x34\x34\x20\x33\x32\x2e\x33\x36\x34\x2c\x2d\x31\x35\x2e\x38\ +\x37\x36\x20\x37\x2e\x38\x38\x34\x2c\x2d\x35\x2e\x30\x34\x20\x31\ +\x30\x2e\x36\x32\x31\x2c\x2d\x31\x30\x2e\x34\x30\x34\x20\x31\x35\ +\x2e\x31\x35\x36\x2c\x2d\x31\x33\x2e\x36\x30\x38\x20\x34\x2e\x35\ +\x2c\x2d\x33\x2e\x32\x30\x33\x20\x38\x2e\x33\x38\x38\x2c\x2d\x35\ +\x2e\x30\x30\x33\x20\x31\x31\x2e\x38\x30\x38\x2c\x2d\x35\x2e\x35\ +\x34\x33\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\ +\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\ +\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\ +\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\ +\x30\x33\x34\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\ +\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x38\x39\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\ +\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x37\x30\x2e\x31\x35\x34\x2c\ +\x31\x32\x36\x2e\x36\x32\x31\x20\x63\x20\x31\x35\x2e\x31\x35\x36\ +\x2c\x2d\x36\x2e\x35\x35\x33\x20\x32\x37\x2e\x37\x32\x2c\x2d\x31\ +\x32\x2e\x31\x33\x33\x20\x33\x38\x2e\x33\x37\x36\x2c\x2d\x31\x37\ +\x2e\x30\x32\x38\x20\x31\x30\x2e\x35\x34\x38\x2c\x2d\x34\x2e\x38\ +\x32\x34\x20\x31\x38\x2e\x34\x33\x32\x2c\x2d\x38\x2e\x34\x36\x20\ +\x32\x34\x2e\x37\x36\x38\x2c\x2d\x31\x32\x2e\x30\x32\x34\x20\x36\ +\x2e\x31\x35\x35\x2c\x2d\x33\x2e\x38\x31\x36\x20\x38\x2e\x32\x34\ +\x33\x2c\x2d\x39\x2e\x30\x33\x36\x20\x31\x32\x2e\x33\x38\x34\x2c\ +\x2d\x39\x2e\x39\x37\x32\x20\x34\x2e\x31\x34\x31\x2c\x2d\x30\x2e\ +\x39\x20\x39\x2e\x39\x2c\x32\x2e\x39\x31\x36\x20\x31\x32\x2e\x30\ +\x32\x33\x2c\x34\x2e\x36\x34\x34\x20\x31\x2e\x39\x38\x2c\x31\x2e\ +\x36\x32\x20\x32\x2e\x33\x30\x35\x2c\x33\x2e\x37\x30\x38\x20\x30\ +\x2c\x35\x2e\x32\x39\x32\x20\x2d\x32\x2e\x35\x32\x2c\x31\x2e\x33\ +\x33\x32\x20\x2d\x37\x2e\x38\x34\x38\x2c\x31\x2e\x35\x38\x34\x20\ +\x2d\x31\x34\x2e\x33\x32\x38\x2c\x33\x2e\x35\x32\x38\x20\x2d\x36\ +\x2e\x35\x35\x31\x2c\x32\x2e\x30\x35\x32\x20\x2d\x31\x36\x2e\x33\ +\x30\x37\x2c\x35\x2e\x36\x31\x36\x20\x2d\x32\x34\x2e\x32\x36\x33\ +\x2c\x38\x2e\x36\x30\x34\x20\x2d\x37\x2e\x39\x39\x32\x2c\x32\x2e\ +\x37\x37\x32\x20\x2d\x31\x35\x2e\x33\x33\x36\x2c\x35\x2e\x32\x39\ +\x32\x20\x2d\x32\x33\x2e\x32\x39\x32\x2c\x38\x2e\x36\x37\x37\x20\ +\x2d\x38\x2e\x31\x2c\x33\x2e\x34\x32\x20\x2d\x31\x36\x2e\x30\x39\ +\x32\x2c\x37\x2e\x31\x39\x39\x20\x2d\x32\x34\x2e\x35\x31\x36\x2c\ +\x31\x31\x2e\x36\x32\x37\x20\x2d\x30\x2e\x33\x36\x2c\x2d\x31\x2e\ +\x31\x31\x35\x20\x2d\x30\x2e\x37\x35\x36\x2c\x2d\x32\x2e\x32\x33\ +\x33\x20\x2d\x31\x2e\x31\x35\x32\x2c\x2d\x33\x2e\x33\x34\x38\x20\ +\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\ +\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x33\x34\ +\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\ +\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x38\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\ +\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x34\x36\x33\x2e\x31\x35\x38\ +\x2c\x34\x30\x2e\x37\x39\x37\x20\x63\x20\x30\x2e\x38\x32\x38\x2c\ +\x33\x2e\x39\x32\x34\x20\x2d\x30\x2e\x33\x39\x36\x2c\x37\x2e\x32\ +\x33\x36\x20\x2d\x34\x2e\x30\x36\x38\x2c\x31\x30\x2e\x32\x32\x34\ +\x20\x2d\x33\x2e\x37\x34\x34\x2c\x32\x2e\x38\x34\x34\x20\x2d\x31\ +\x30\x2e\x33\x33\x32\x2c\x34\x2e\x33\x35\x36\x20\x2d\x31\x37\x2e\ +\x36\x37\x36\x2c\x37\x2e\x33\x30\x38\x20\x2d\x37\x2e\x34\x38\x38\ +\x2c\x32\x2e\x39\x31\x36\x20\x2d\x31\x36\x2e\x30\x35\x37\x2c\x36\ +\x2e\x30\x34\x38\x20\x2d\x32\x36\x2e\x32\x34\x34\x2c\x31\x30\x2e\ +\x30\x38\x20\x2d\x31\x30\x2e\x33\x33\x32\x2c\x33\x2e\x38\x38\x38\ +\x20\x2d\x32\x34\x2e\x31\x39\x31\x2c\x39\x2e\x30\x37\x32\x20\x2d\ +\x33\x34\x2e\x36\x33\x33\x2c\x31\x33\x2e\x34\x36\x34\x20\x2d\x31\ +\x30\x2e\x34\x33\x39\x2c\x34\x2e\x33\x32\x20\x2d\x31\x37\x2e\x37\ +\x31\x31\x2c\x37\x2e\x35\x32\x34\x20\x2d\x32\x37\x2e\x36\x34\x36\ +\x2c\x31\x32\x2e\x33\x38\x34\x20\x2d\x31\x30\x2e\x31\x35\x32\x2c\ +\x34\x2e\x37\x31\x36\x20\x2d\x32\x34\x2e\x30\x38\x34\x2c\x31\x30\ +\x2e\x38\x33\x36\x20\x2d\x33\x32\x2e\x33\x36\x35\x2c\x31\x35\x2e\ +\x38\x37\x36\x20\x2d\x38\x2e\x32\x37\x39\x2c\x34\x2e\x38\x39\x36\ +\x20\x2d\x31\x31\x2e\x37\x33\x36\x2c\x31\x30\x2e\x39\x30\x38\x20\ +\x2d\x31\x37\x2e\x31\x37\x32\x2c\x31\x33\x2e\x34\x36\x35\x20\x2d\ +\x35\x2e\x36\x35\x32\x2c\x32\x2e\x34\x31\x32\x20\x2d\x39\x2e\x32\ +\x38\x37\x2c\x30\x2e\x38\x36\x33\x20\x2d\x31\x35\x2e\x37\x36\x38\ +\x2c\x31\x2e\x35\x38\x34\x20\x2d\x36\x2e\x35\x35\x33\x2c\x30\x2e\ +\x36\x38\x34\x20\x2d\x31\x32\x2e\x35\x32\x37\x2c\x30\x2e\x32\x35\ +\x32\x20\x2d\x32\x32\x2e\x37\x38\x37\x2c\x32\x2e\x35\x39\x32\x20\ +\x2d\x31\x30\x2e\x35\x31\x34\x2c\x32\x2e\x32\x36\x38\x20\x2d\x32\ +\x38\x2e\x39\x34\x35\x2c\x37\x2e\x35\x32\x33\x20\x2d\x33\x38\x2e\ +\x39\x31\x37\x2c\x31\x30\x2e\x39\x30\x38\x20\x2d\x39\x2e\x39\x37\ +\x32\x2c\x33\x2e\x33\x31\x31\x20\x2d\x31\x33\x2e\x38\x32\x34\x2c\ +\x36\x2e\x31\x31\x39\x20\x2d\x32\x30\x2e\x31\x36\x2c\x38\x2e\x38\ +\x31\x38\x20\x2d\x36\x2e\x33\x33\x36\x2c\x32\x2e\x35\x39\x34\x20\ +\x2d\x31\x32\x2e\x30\x32\x34\x2c\x34\x2e\x38\x39\x36\x20\x2d\x31\ +\x37\x2e\x34\x36\x2c\x36\x2e\x39\x31\x32\x20\x30\x2e\x37\x35\x36\ +\x2c\x34\x2e\x31\x34\x31\x20\x2d\x30\x2e\x32\x31\x36\x2c\x37\x2e\ +\x36\x36\x38\x20\x2d\x33\x2e\x33\x31\x32\x2c\x31\x30\x2e\x37\x32\ +\x39\x20\x2d\x33\x2e\x30\x39\x36\x2c\x32\x2e\x39\x35\x33\x20\x2d\ +\x38\x2e\x31\x2c\x33\x2e\x39\x39\x36\x20\x2d\x31\x35\x2e\x30\x31\ +\x32\x2c\x37\x2e\x33\x30\x39\x20\x2d\x37\x2e\x31\x32\x38\x2c\x33\ +\x2e\x32\x30\x33\x20\x2d\x31\x36\x2e\x34\x31\x36\x2c\x37\x2e\x32\ +\x33\x36\x20\x2d\x32\x37\x2e\x30\x33\x36\x2c\x31\x32\x2e\x32\x34\ +\x20\x2d\x31\x30\x2e\x37\x36\x34\x2c\x34\x2e\x39\x36\x37\x20\x2d\ +\x32\x35\x2e\x39\x32\x2c\x31\x32\x2e\x34\x39\x32\x20\x2d\x33\x36\ +\x2e\x35\x37\x36\x2c\x31\x37\x2e\x35\x36\x38\x20\x2d\x31\x30\x2e\ +\x37\x36\x34\x2c\x35\x2e\x30\x37\x34\x20\x2d\x31\x39\x2e\x36\x39\ +\x32\x2c\x39\x2e\x32\x38\x37\x20\x2d\x32\x37\x2e\x30\x37\x32\x2c\ +\x31\x32\x2e\x33\x34\x38\x20\x2d\x37\x2e\x34\x31\x36\x2c\x32\x2e\ +\x38\x37\x39\x20\x2d\x39\x2e\x37\x35\x36\x2c\x36\x2e\x34\x34\x33\ +\x20\x2d\x31\x36\x2e\x38\x38\x34\x2c\x35\x2e\x31\x34\x36\x20\x2d\ +\x37\x2e\x32\x33\x36\x2c\x2d\x31\x2e\x33\x36\x37\x20\x2d\x31\x37\ +\x2e\x35\x36\x38\x2c\x2d\x38\x2e\x31\x20\x2d\x32\x35\x2e\x39\x39\ +\x32\x2c\x2d\x31\x33\x2e\x31\x30\x34\x20\x2d\x38\x2e\x36\x37\x36\ +\x2c\x2d\x35\x2e\x31\x31\x31\x20\x2d\x31\x39\x2e\x32\x39\x36\x2c\ +\x2d\x31\x30\x2e\x33\x33\x32\x20\x2d\x32\x34\x2e\x36\x32\x34\x2c\ +\x2d\x31\x37\x2e\x30\x32\x37\x20\x2d\x35\x2e\x32\x32\x2c\x2d\x36\ +\x2e\x38\x30\x35\x20\x2d\x38\x2e\x36\x30\x34\x2c\x2d\x32\x30\x2e\ +\x33\x34\x20\x2d\x36\x2e\x36\x36\x2c\x2d\x32\x33\x2e\x31\x31\x31\ +\x20\x31\x2e\x39\x30\x38\x2c\x2d\x32\x2e\x37\x37\x33\x20\x31\x30\ +\x2e\x35\x31\x32\x2c\x32\x2e\x39\x31\x36\x20\x31\x37\x2e\x37\x34\ +\x38\x2c\x36\x2e\x35\x31\x36\x20\x37\x2e\x30\x35\x36\x2c\x33\x2e\ +\x34\x32\x20\x31\x37\x2e\x34\x39\x36\x2c\x31\x31\x2e\x35\x39\x32\ +\x20\x32\x34\x2e\x36\x36\x2c\x31\x34\x2e\x34\x20\x37\x2e\x30\x35\ +\x36\x2c\x32\x2e\x38\x34\x34\x20\x31\x30\x2e\x35\x34\x38\x2c\x33\ +\x2e\x36\x20\x31\x37\x2e\x37\x31\x32\x2c\x32\x2e\x32\x36\x38\x20\ +\x37\x2e\x30\x35\x36\x2c\x2d\x31\x2e\x35\x34\x39\x20\x31\x33\x2e\ +\x37\x38\x38\x2c\x2d\x36\x2e\x33\x33\x36\x20\x32\x34\x2e\x36\x36\ +\x2c\x2d\x31\x31\x2e\x30\x31\x36\x20\x31\x30\x2e\x39\x34\x34\x2c\ +\x2d\x34\x2e\x37\x38\x39\x20\x32\x37\x2e\x31\x30\x38\x2c\x2d\x31\ +\x31\x2e\x34\x31\x32\x20\x34\x30\x2e\x30\x33\x32\x2c\x2d\x31\x37\ +\x2e\x31\x30\x32\x20\x31\x32\x2e\x38\x31\x36\x2c\x2d\x35\x2e\x37\ +\x36\x20\x32\x36\x2e\x37\x34\x38\x2c\x2d\x31\x33\x2e\x34\x32\x38\ +\x20\x33\x36\x2e\x31\x30\x38\x2c\x2d\x31\x36\x2e\x37\x37\x35\x20\ +\x39\x2e\x32\x31\x36\x2c\x2d\x33\x2e\x33\x31\x33\x20\x31\x35\x2e\ +\x33\x33\x36\x2c\x2d\x34\x2e\x32\x34\x38\x20\x31\x38\x2e\x37\x35\ +\x36\x2c\x2d\x32\x2e\x39\x35\x31\x20\x34\x2e\x30\x36\x38\x2c\x2d\ +\x33\x2e\x31\x33\x33\x20\x31\x32\x2e\x33\x38\x34\x2c\x2d\x37\x2e\ +\x35\x36\x31\x20\x32\x35\x2e\x30\x39\x32\x2c\x2d\x31\x33\x2e\x34\ +\x32\x38\x20\x31\x32\x2e\x37\x34\x34\x2c\x2d\x36\x2e\x30\x38\x36\ +\x20\x33\x36\x2e\x37\x39\x32\x2c\x2d\x31\x35\x2e\x34\x30\x38\x20\ +\x35\x30\x2e\x37\x35\x39\x2c\x2d\x32\x31\x2e\x37\x30\x39\x20\x31\ +\x33\x2e\x38\x39\x36\x2c\x2d\x36\x2e\x32\x36\x34\x20\x31\x39\x2e\ +\x34\x37\x37\x2c\x2d\x31\x30\x2e\x37\x32\x38\x20\x33\x32\x2e\x31\ +\x34\x38\x2c\x2d\x31\x35\x2e\x34\x38\x20\x31\x32\x2e\x35\x32\x39\ +\x2c\x2d\x34\x2e\x38\x39\x36\x20\x32\x34\x2e\x36\x32\x35\x2c\x2d\ +\x37\x2e\x36\x33\x32\x20\x34\x32\x2e\x39\x34\x39\x2c\x2d\x31\x33\ +\x2e\x32\x31\x32\x20\x31\x38\x2e\x33\x35\x39\x2c\x2d\x35\x2e\x36\ +\x38\x38\x20\x34\x34\x2e\x38\x31\x38\x2c\x2d\x31\x34\x2e\x30\x30\ +\x34\x20\x36\x36\x2e\x33\x31\x31\x2c\x2d\x32\x30\x2e\x32\x33\x32\ +\x20\x32\x31\x2e\x33\x38\x35\x2c\x2d\x36\x2e\x33\x33\x36\x20\x34\ +\x31\x2e\x34\x33\x38\x2c\x2d\x31\x31\x2e\x37\x37\x32\x20\x36\x31\ +\x2e\x31\x32\x39\x2c\x2d\x31\x36\x2e\x39\x39\x32\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\ +\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\ +\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\ +\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x30\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\ +\x6d\x20\x35\x32\x2e\x37\x35\x38\x2c\x32\x31\x32\x2e\x38\x37\x37\ +\x20\x63\x20\x2d\x34\x2e\x31\x30\x34\x2c\x2d\x30\x2e\x39\x37\x33\ +\x20\x2d\x32\x30\x2e\x38\x34\x34\x2c\x2d\x31\x30\x2e\x36\x35\x36\ +\x20\x2d\x32\x37\x2e\x34\x33\x32\x2c\x2d\x31\x35\x2e\x30\x34\x39\ +\x20\x2d\x36\x2e\x36\x32\x34\x2c\x2d\x34\x2e\x33\x39\x31\x20\x2d\ +\x39\x2c\x2d\x36\x2e\x39\x31\x32\x20\x2d\x31\x31\x2e\x37\x2c\x2d\ +\x31\x31\x2e\x33\x30\x33\x20\x2d\x32\x2e\x38\x34\x34\x2c\x2d\x34\ +\x2e\x36\x30\x39\x20\x2d\x36\x2e\x32\x32\x38\x2c\x2d\x31\x33\x2e\ +\x38\x36\x31\x20\x2d\x34\x2e\x34\x36\x34\x2c\x2d\x31\x35\x2e\x34\ +\x30\x38\x20\x31\x2e\x39\x30\x38\x2c\x2d\x31\x2e\x34\x30\x34\x20\ +\x31\x31\x2e\x35\x32\x2c\x32\x2e\x35\x39\x32\x20\x31\x35\x2e\x35\ +\x31\x36\x2c\x36\x2e\x37\x33\x32\x20\x33\x2e\x38\x38\x38\x2c\x34\ +\x2e\x30\x36\x36\x20\x33\x2e\x33\x34\x38\x2c\x31\x32\x2e\x38\x38\ +\x37\x20\x37\x2e\x35\x36\x2c\x31\x37\x2e\x32\x37\x39\x20\x34\x2e\ +\x30\x36\x38\x2c\x34\x2e\x31\x37\x36\x20\x31\x33\x2e\x32\x38\x34\ +\x2c\x35\x2e\x31\x31\x31\x20\x31\x36\x2e\x38\x31\x32\x2c\x38\x2e\ +\x31\x20\x33\x2e\x33\x38\x34\x2c\x33\x2e\x30\x32\x34\x20\x37\x2e\ +\x36\x33\x32\x2c\x31\x30\x2e\x34\x30\x35\x20\x33\x2e\x37\x30\x38\ +\x2c\x39\x2e\x36\x34\x39\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\ +\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\ +\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x39\x30\x33\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\ +\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x36\x33\x2e\ +\x33\x39\x35\x2c\x31\x32\x34\x2e\x38\x32\x20\x63\x20\x2d\x38\x2e\ +\x31\x33\x37\x2c\x31\x2e\x34\x37\x37\x20\x2d\x31\x37\x2e\x33\x35\ +\x34\x2c\x34\x2e\x31\x30\x35\x20\x2d\x32\x38\x2e\x30\x38\x2c\x37\ +\x2e\x38\x38\x35\x20\x2d\x31\x30\x2e\x37\x36\x35\x2c\x33\x2e\x38\ +\x31\x36\x20\x2d\x32\x37\x2e\x37\x39\x32\x2c\x31\x31\x2e\x31\x39\ +\x35\x20\x2d\x33\x35\x2e\x39\x36\x34\x2c\x31\x34\x2e\x37\x39\x35\ +\x20\x2d\x38\x2e\x32\x38\x2c\x33\x2e\x34\x32\x32\x20\x2d\x31\x32\ +\x2e\x34\x35\x36\x2c\x35\x2e\x33\x36\x35\x20\x2d\x31\x33\x2e\x30\ +\x36\x38\x2c\x35\x2e\x38\x33\x32\x20\x31\x2e\x30\x38\x2c\x32\x2e\ +\x34\x38\x34\x20\x30\x2e\x36\x38\x34\x2c\x34\x2e\x37\x35\x32\x20\ +\x2d\x31\x2e\x31\x38\x38\x2c\x37\x2e\x32\x33\x36\x20\x2d\x31\x2e\ +\x39\x34\x34\x2c\x32\x2e\x33\x34\x20\x2d\x33\x2e\x37\x30\x38\x2c\ +\x33\x2e\x39\x36\x31\x20\x2d\x31\x30\x2e\x31\x35\x32\x2c\x37\x2e\ +\x30\x39\x32\x20\x2d\x36\x2e\x36\x39\x36\x2c\x33\x2e\x31\x36\x38\ +\x20\x2d\x32\x37\x2e\x33\x36\x2c\x31\x32\x2e\x37\x30\x39\x20\x2d\ +\x32\x38\x2e\x38\x2c\x31\x31\x2e\x37\x30\x31\x20\x2d\x31\x2e\x32\ +\x39\x36\x2c\x2d\x31\x2e\x33\x33\x32\x20\x31\x36\x2e\x39\x39\x32\ +\x2c\x2d\x31\x34\x2e\x30\x37\x36\x20\x32\x30\x2e\x38\x34\x34\x2c\ +\x2d\x31\x38\x2e\x36\x34\x38\x20\x33\x2e\x36\x33\x36\x2c\x2d\x34\ +\x2e\x35\x33\x35\x20\x2d\x30\x2e\x37\x35\x36\x2c\x2d\x36\x2e\x34\ +\x38\x20\x31\x2e\x32\x36\x2c\x2d\x38\x2e\x32\x30\x37\x20\x31\x2e\ +\x38\x37\x32\x2c\x2d\x31\x2e\x37\x32\x39\x20\x38\x2e\x37\x31\x32\ +\x2c\x2d\x30\x2e\x39\x20\x31\x30\x2e\x33\x36\x38\x2c\x2d\x32\x2e\ +\x32\x33\x32\x20\x31\x2e\x36\x32\x2c\x2d\x31\x2e\x34\x37\x37\x20\ +\x31\x2e\x34\x34\x2c\x2d\x33\x2e\x33\x38\x35\x20\x2d\x30\x2e\x35\ +\x34\x2c\x2d\x36\x2e\x31\x32\x31\x20\x31\x2e\x30\x38\x2c\x2d\x30\ +\x2e\x31\x34\x33\x20\x32\x2e\x31\x36\x2c\x2d\x30\x2e\x30\x37\x32\ +\x20\x33\x2e\x36\x37\x32\x2c\x30\x2e\x30\x37\x32\x20\x31\x2e\x34\ +\x30\x34\x2c\x30\x2e\x31\x34\x35\x20\x32\x2e\x39\x35\x32\x2c\x30\ +\x2e\x33\x35\x39\x20\x34\x2e\x37\x38\x38\x2c\x30\x2e\x37\x39\x33\ +\x20\x31\x2e\x39\x30\x38\x2c\x2d\x32\x2e\x38\x34\x34\x20\x36\x2e\ +\x30\x34\x38\x2c\x2d\x35\x2e\x39\x30\x34\x20\x31\x32\x2e\x35\x36\ +\x34\x2c\x2d\x39\x2e\x33\x32\x34\x20\x36\x2e\x35\x35\x32\x2c\x2d\ +\x33\x2e\x34\x35\x37\x20\x31\x37\x2e\x36\x34\x2c\x2d\x37\x2e\x35\ +\x32\x35\x20\x32\x36\x2e\x33\x31\x36\x2c\x2d\x31\x31\x2e\x30\x38\ +\x38\x20\x38\x2e\x35\x36\x38\x2c\x2d\x33\x2e\x36\x33\x37\x20\x32\ +\x30\x2e\x39\x31\x36\x2c\x2d\x31\x30\x2e\x34\x37\x37\x20\x32\x34\ +\x2e\x38\x34\x2c\x2d\x31\x30\x2e\x34\x30\x34\x20\x33\x2e\x37\x37\ +\x39\x2c\x30\x2e\x30\x33\x35\x20\x2d\x34\x2e\x33\x32\x2c\x38\x2e\ +\x34\x39\x36\x20\x2d\x32\x2e\x30\x38\x38\x2c\x31\x30\x2e\x34\x30\ +\x34\x20\x32\x2e\x32\x33\x31\x2c\x31\x2e\x37\x32\x36\x20\x37\x2e\ +\x31\x36\x33\x2c\x31\x2e\x37\x39\x38\x20\x31\x35\x2e\x32\x32\x38\ +\x2c\x30\x2e\x32\x31\x34\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\ +\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\ +\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x39\x30\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\ +\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x34\x36\x31\x2e\ +\x34\x33\x2c\x34\x32\x2e\x37\x37\x37\x20\x63\x20\x32\x2e\x34\x34\ +\x37\x2c\x2d\x30\x2e\x32\x38\x38\x20\x2d\x30\x2e\x35\x37\x36\x2c\ +\x33\x2e\x36\x33\x36\x20\x2d\x32\x2e\x32\x36\x38\x2c\x35\x2e\x35\ +\x30\x38\x20\x2d\x31\x2e\x38\x30\x31\x2c\x31\x2e\x36\x39\x32\x20\ +\x2d\x31\x2e\x36\x35\x36\x2c\x32\x2e\x35\x32\x20\x2d\x37\x2e\x37\ +\x34\x2c\x34\x2e\x38\x36\x20\x2d\x36\x2e\x32\x32\x39\x2c\x32\x2e\ +\x32\x36\x38\x20\x2d\x32\x30\x2e\x35\x35\x37\x2c\x35\x2e\x37\x36\ +\x20\x2d\x32\x38\x2e\x35\x34\x39\x2c\x38\x2e\x36\x37\x36\x20\x2d\ +\x37\x2e\x39\x35\x35\x2c\x32\x2e\x37\x37\x32\x20\x2d\x38\x2e\x38\ +\x39\x31\x2c\x34\x2e\x30\x33\x32\x20\x2d\x31\x38\x2e\x37\x35\x36\ +\x2c\x38\x2e\x32\x34\x34\x20\x2d\x31\x30\x2e\x30\x34\x33\x2c\x34\ +\x2e\x31\x37\x36\x20\x2d\x33\x34\x2e\x30\x32\x2c\x31\x35\x2e\x31\ +\x35\x36\x20\x2d\x34\x30\x2e\x33\x39\x31\x2c\x31\x36\x2e\x38\x34\ +\x38\x20\x2d\x36\x2e\x32\x36\x34\x2c\x31\x2e\x34\x37\x36\x20\x2d\ +\x33\x2e\x35\x36\x34\x2c\x2d\x33\x2e\x37\x34\x34\x20\x32\x2e\x38\ +\x30\x37\x2c\x2d\x37\x2e\x33\x30\x38\x20\x36\x2e\x33\x37\x33\x2c\ +\x2d\x33\x2e\x36\x37\x32\x20\x32\x35\x2e\x34\x35\x33\x2c\x2d\x31\ +\x30\x2e\x32\x32\x34\x20\x33\x34\x2e\x38\x38\x35\x2c\x2d\x31\x33\ +\x2e\x38\x32\x34\x20\x39\x2e\x31\x34\x35\x2c\x2d\x33\x2e\x36\x20\ +\x31\x33\x2e\x35\x33\x35\x2c\x2d\x35\x2e\x31\x34\x38\x20\x32\x30\ +\x2e\x35\x35\x37\x2c\x2d\x37\x2e\x37\x30\x34\x20\x37\x2e\x30\x32\ +\x2c\x2d\x32\x2e\x37\x33\x36\x20\x31\x35\x2e\x31\x35\x36\x2c\x2d\ +\x35\x2e\x34\x20\x32\x31\x2e\x37\x37\x39\x2c\x2d\x37\x2e\x39\x39\ +\x32\x20\x36\x2e\x36\x32\x33\x2c\x2d\x32\x2e\x36\x32\x38\x20\x31\ +\x35\x2e\x30\x31\x32\x2c\x2d\x37\x2e\x30\x35\x36\x20\x31\x37\x2e\ +\x36\x37\x36\x2c\x2d\x37\x2e\x33\x30\x38\x20\x7a\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\ +\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\ +\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\x66\x69\ +\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\ +\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x30\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\ +\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x34\x34\x32\x2e\x37\x38\x31\x2c\x33\x39\x2e\x34\x36\x35\x20\x63\ +\x20\x36\x2e\x36\x32\x35\x2c\x2d\x31\x2e\x33\x36\x38\x20\x37\x2e\ +\x35\x32\x35\x2c\x2d\x30\x2e\x37\x35\x36\x20\x39\x2e\x31\x30\x39\ +\x2c\x2d\x31\x2e\x39\x30\x38\x20\x31\x2e\x35\x31\x32\x2c\x2d\x31\ +\x2e\x32\x39\x36\x20\x32\x2e\x39\x31\x36\x2c\x2d\x34\x2e\x35\x33\ +\x36\x20\x30\x2e\x30\x33\x35\x2c\x2d\x35\x2e\x32\x39\x32\x20\x2d\ +\x33\x2e\x30\x39\x36\x2c\x2d\x30\x2e\x37\x39\x32\x20\x2d\x36\x2e\ +\x39\x31\x32\x2c\x2d\x31\x2e\x33\x36\x38\x20\x2d\x31\x37\x2e\x39\ +\x36\x35\x2c\x30\x2e\x37\x35\x36\x20\x2d\x31\x31\x2e\x32\x36\x38\ +\x2c\x32\x2e\x30\x38\x38\x20\x2d\x34\x34\x2e\x33\x31\x34\x2c\x39\ +\x2e\x36\x38\x34\x20\x2d\x34\x38\x2e\x33\x31\x31\x2c\x31\x31\x2e\ +\x35\x35\x36\x20\x2d\x33\x2e\x37\x34\x34\x2c\x31\x2e\x36\x32\x20\ +\x32\x30\x2e\x34\x34\x37\x2c\x2d\x31\x2e\x33\x33\x32\x20\x32\x35\ +\x2e\x30\x39\x32\x2c\x2d\x31\x2e\x32\x32\x34\x20\x34\x2e\x34\x32\ +\x38\x2c\x30\x2e\x30\x37\x32\x20\x2d\x33\x2e\x39\x36\x31\x2c\x32\ +\x2e\x35\x32\x20\x31\x2e\x34\x37\x37\x2c\x31\x2e\x39\x34\x34\x20\ +\x35\x2e\x34\x37\x31\x2c\x2d\x30\x2e\x37\x39\x32\x20\x32\x33\x2e\ +\x37\x36\x31\x2c\x2d\x34\x2e\x35\x20\x33\x30\x2e\x35\x36\x33\x2c\ +\x2d\x35\x2e\x38\x33\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\ +\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x23\x30\x30\x33\x34\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\ +\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x39\x30\x39\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\ +\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x37\x37\x2e\x34\x35\x34\x2c\x38\x33\x2e\x30\x36\x31\x20\x63\x20\ +\x30\x2e\x33\x36\x2c\x31\x2e\x35\x31\x32\x20\x2d\x37\x2e\x37\x37\ +\x36\x2c\x33\x2e\x31\x36\x38\x20\x2d\x31\x30\x2e\x36\x35\x36\x2c\ +\x33\x2e\x33\x31\x32\x20\x2d\x32\x2e\x39\x38\x38\x2c\x30\x2e\x31\ +\x34\x34\x20\x2d\x36\x2e\x32\x32\x38\x2c\x2d\x30\x2e\x37\x35\x36\ +\x20\x2d\x36\x2e\x36\x36\x2c\x2d\x32\x2e\x33\x30\x34\x20\x2d\x30\ +\x2e\x34\x33\x32\x2c\x2d\x31\x2e\x36\x35\x36\x20\x30\x2e\x39\x33\ +\x36\x2c\x2d\x37\x2e\x33\x38\x20\x33\x2e\x39\x36\x2c\x2d\x37\x2e\ +\x34\x35\x32\x20\x32\x2e\x39\x31\x36\x2c\x2d\x30\x2e\x31\x38\x20\ +\x31\x32\x2e\x37\x38\x2c\x34\x2e\x37\x35\x32\x20\x31\x33\x2e\x33\ +\x35\x36\x2c\x36\x2e\x34\x34\x34\x20\x7a\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\ +\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\ +\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x31\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x33\x38\x2e\x34\x33\x2c\x36\x37\x2e\x31\x38\x35\x20\ +\x63\x20\x2d\x30\x2e\x31\x30\x38\x2c\x32\x2e\x30\x31\x36\x20\x2d\ +\x36\x2e\x35\x38\x38\x2c\x39\x2e\x30\x37\x32\x20\x2d\x31\x30\x2e\ +\x31\x35\x32\x2c\x39\x2e\x36\x34\x38\x20\x2d\x33\x2e\x35\x36\x34\ +\x2c\x30\x2e\x34\x33\x32\x20\x2d\x31\x30\x2e\x34\x37\x36\x2c\x2d\ +\x34\x2e\x37\x38\x38\x20\x2d\x31\x30\x2e\x35\x38\x34\x2c\x2d\x36\ +\x2e\x37\x36\x38\x20\x2d\x30\x2e\x31\x34\x34\x2c\x2d\x32\x2e\x31\ +\x36\x20\x36\x2e\x34\x38\x2c\x2d\x34\x2e\x35\x37\x32\x20\x31\x30\ +\x2e\x30\x30\x38\x2c\x2d\x35\x2e\x31\x34\x38\x20\x33\x2e\x34\x35\ +\x36\x2c\x2d\x30\x2e\x35\x30\x34\x20\x31\x30\x2e\x35\x34\x38\x2c\ +\x30\x2e\x32\x35\x32\x20\x31\x30\x2e\x37\x32\x38\x2c\x32\x2e\x32\ +\x36\x38\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\ +\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\ +\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\ +\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\ +\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\ +\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x61\x74\x68\x33\x39\x31\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\ +\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x35\x37\x2e\ +\x33\x33\x2c\x37\x35\x2e\x34\x32\x39\x20\x63\x20\x30\x2e\x34\x33\ +\x32\x2c\x32\x2e\x33\x30\x34\x20\x2d\x33\x2e\x31\x33\x32\x2c\x39\ +\x2e\x30\x33\x36\x20\x2d\x36\x2e\x33\x37\x32\x2c\x39\x2e\x31\x30\ +\x38\x20\x2d\x33\x2e\x34\x32\x2c\x30\x20\x2d\x31\x32\x2e\x37\x30\ +\x38\x2c\x2d\x36\x2e\x36\x39\x36\x20\x2d\x31\x33\x2e\x32\x38\x34\ +\x2c\x2d\x38\x2e\x39\x36\x34\x20\x2d\x30\x2e\x35\x30\x34\x2c\x2d\ +\x32\x2e\x34\x34\x38\x20\x36\x2e\x35\x38\x38\x2c\x2d\x35\x2e\x31\ +\x38\x34\x20\x31\x30\x2e\x30\x30\x38\x2c\x2d\x35\x2e\x31\x34\x38\ +\x20\x33\x2e\x33\x34\x38\x2c\x2d\x30\x2e\x30\x33\x36\x20\x38\x2e\ +\x39\x36\x34\x2c\x32\x2e\x35\x35\x36\x20\x39\x2e\x36\x34\x38\x2c\ +\x35\x2e\x30\x30\x34\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\ +\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\ +\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x39\x31\x35\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\ +\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x35\x38\x2e\x31\x32\x32\x2c\x36\x31\x2e\x32\x38\x31\x20\x63\x20\ +\x30\x2e\x39\x37\x32\x2c\x31\x2e\x39\x34\x34\x20\x2d\x30\x2e\x37\ +\x35\x36\x2c\x37\x2e\x32\x20\x2d\x33\x2e\x33\x38\x34\x2c\x37\x2e\ +\x39\x39\x32\x20\x2d\x32\x2e\x37\x33\x36\x2c\x30\x2e\x36\x31\x32\ +\x20\x2d\x31\x31\x2e\x37\x37\x32\x2c\x2d\x32\x2e\x30\x38\x38\x20\ +\x2d\x31\x32\x2e\x36\x37\x32\x2c\x2d\x33\x2e\x39\x32\x34\x20\x2d\ +\x31\x2e\x30\x34\x34\x2c\x2d\x31\x2e\x39\x34\x34\x20\x34\x2e\x31\ +\x30\x34\x2c\x2d\x36\x2e\x37\x36\x38\x20\x36\x2e\x38\x34\x2c\x2d\ +\x37\x2e\x33\x38\x20\x32\x2e\x36\x36\x34\x2c\x2d\x30\x2e\x36\x34\ +\x38\x20\x38\x2e\x31\x33\x36\x2c\x31\x2e\x33\x33\x32\x20\x39\x2e\ +\x32\x31\x36\x2c\x33\x2e\x33\x31\x32\x20\x7a\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\ +\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\ +\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x31\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\ +\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x6d\x20\x39\x33\x2e\x36\x35\x34\x2c\x37\x39\x2e\x36\x30\ +\x35\x20\x63\x20\x30\x2e\x38\x32\x38\x2c\x31\x2e\x34\x37\x36\x20\ +\x2d\x32\x2e\x36\x36\x34\x2c\x33\x2e\x32\x34\x20\x2d\x34\x2e\x39\ +\x33\x32\x2c\x33\x2e\x33\x34\x38\x20\x2d\x32\x2e\x34\x34\x38\x2c\ +\x2d\x30\x2e\x30\x33\x36\x20\x2d\x37\x2e\x39\x39\x32\x2c\x2d\x31\ +\x2e\x36\x39\x32\x20\x2d\x38\x2e\x38\x35\x36\x2c\x2d\x33\x2e\x31\ +\x36\x38\x20\x2d\x30\x2e\x38\x36\x34\x2c\x2d\x31\x2e\x35\x31\x32\ +\x20\x31\x2e\x32\x32\x34\x2c\x2d\x35\x2e\x37\x39\x36\x20\x33\x2e\ +\x36\x33\x36\x2c\x2d\x35\x2e\x37\x36\x20\x32\x2e\x33\x34\x2c\x30\ +\x2e\x30\x37\x32\x20\x39\x2e\x31\x30\x38\x2c\x33\x2e\x39\x32\x34\ +\x20\x31\x30\x2e\x31\x35\x32\x2c\x35\x2e\x35\x38\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\ +\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\ +\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\ +\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\ +\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x31\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\ +\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x6d\x20\x31\x31\x30\x2e\x34\x33\x2c\x37\x35\ +\x2e\x36\x38\x31\x20\x63\x20\x30\x2e\x30\x37\x32\x2c\x31\x2e\x35\ +\x34\x38\x20\x2d\x35\x2e\x34\x2c\x34\x2e\x37\x35\x32\x20\x2d\x37\ +\x2e\x38\x31\x32\x2c\x34\x2e\x37\x35\x32\x20\x2d\x32\x2e\x37\x2c\ +\x2d\x30\x2e\x32\x38\x38\x20\x2d\x36\x2e\x38\x30\x34\x2c\x2d\x34\ +\x2e\x31\x37\x36\x20\x2d\x37\x2e\x30\x32\x2c\x2d\x35\x2e\x36\x38\ +\x38\x20\x2d\x30\x2e\x31\x34\x34\x2c\x2d\x31\x2e\x35\x34\x38\x20\ +\x33\x2e\x38\x38\x38\x2c\x2d\x33\x2e\x35\x32\x38\x20\x36\x2e\x34\ +\x30\x38\x2c\x2d\x33\x2e\x33\x31\x32\x20\x32\x2e\x34\x31\x32\x2c\ +\x30\x2e\x31\x34\x34\x20\x38\x2e\x32\x38\x2c\x32\x2e\x36\x36\x34\ +\x20\x38\x2e\x34\x32\x34\x2c\x34\x2e\x32\x34\x38\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\ +\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\ +\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\ +\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\ +\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x32\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\ +\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x6d\x20\x31\x32\x35\x2e\x39\x31\x2c\x37\x33\ +\x2e\x38\x30\x39\x20\x63\x20\x30\x2c\x31\x2e\x31\x31\x36\x20\x2d\ +\x34\x2e\x37\x31\x36\x2c\x33\x2e\x38\x35\x32\x20\x2d\x36\x2e\x39\ +\x34\x38\x2c\x33\x2e\x38\x38\x38\x20\x2d\x32\x2e\x33\x37\x36\x2c\ +\x2d\x30\x2e\x31\x30\x38\x20\x2d\x36\x2e\x36\x36\x2c\x2d\x32\x2e\ +\x36\x32\x38\x20\x2d\x36\x2e\x37\x33\x32\x2c\x2d\x33\x2e\x38\x31\ +\x36\x20\x2d\x30\x2e\x31\x30\x38\x2c\x2d\x31\x2e\x32\x36\x20\x34\ +\x2e\x31\x30\x34\x2c\x2d\x33\x2e\x32\x37\x36\x20\x36\x2e\x34\x30\ +\x38\x2c\x2d\x33\x2e\x32\x37\x36\x20\x32\x2e\x33\x30\x34\x2c\x30\ +\x2e\x30\x37\x32\x20\x37\x2e\x30\x39\x32\x2c\x31\x2e\x38\x33\x36\ +\x20\x37\x2e\x32\x37\x32\x2c\x33\x2e\x32\x30\x34\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\ +\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\ +\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\ +\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\ +\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x32\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\ +\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\ +\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x64\x3d\x22\x6d\x20\x31\x34\x32\x2e\x34\x33\x34\x2c\x37\ +\x30\x2e\x33\x31\x37\x20\x63\x20\x2d\x30\x2e\x30\x33\x36\x2c\x31\ +\x2e\x32\x36\x20\x2d\x34\x2e\x31\x34\x2c\x34\x2e\x38\x32\x34\x20\ +\x2d\x36\x2e\x34\x38\x2c\x35\x2e\x30\x30\x34\x20\x2d\x32\x2e\x34\ +\x34\x38\x2c\x30\x2e\x30\x33\x36\x20\x2d\x37\x2e\x30\x39\x32\x2c\ +\x2d\x33\x2e\x30\x39\x36\x20\x2d\x37\x2e\x32\x37\x32\x2c\x2d\x34\ +\x2e\x33\x39\x32\x20\x2d\x30\x2e\x31\x38\x2c\x2d\x31\x2e\x34\x30\ +\x34\x20\x34\x2e\x31\x30\x34\x2c\x2d\x33\x2e\x32\x30\x34\x20\x36\ +\x2e\x34\x34\x34\x2c\x2d\x33\x2e\x33\x31\x32\x20\x32\x2e\x33\x30\ +\x34\x2c\x2d\x30\x2e\x31\x30\x38\x20\x37\x2e\x30\x35\x36\x2c\x31\ +\x2e\x32\x39\x36\x20\x37\x2e\x33\x30\x38\x2c\x32\x2e\x37\x20\x7a\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\ +\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\ +\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\ +\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\ +\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x39\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\ +\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x36\x32\x2e\x39\x31\x38\ +\x2c\x36\x37\x2e\x36\x38\x39\x20\x63\x20\x30\x2e\x31\x38\x2c\x31\ +\x2e\x34\x37\x36\x20\x2d\x34\x2e\x37\x31\x36\x2c\x33\x2e\x36\x20\ +\x2d\x37\x2e\x34\x35\x32\x2c\x33\x2e\x38\x38\x38\x20\x2d\x32\x2e\ +\x38\x34\x34\x2c\x30\x2e\x31\x30\x38\x20\x2d\x38\x2e\x34\x32\x34\ +\x2c\x2d\x31\x2e\x32\x36\x20\x2d\x38\x2e\x38\x32\x2c\x2d\x32\x2e\ +\x37\x33\x36\x20\x2d\x30\x2e\x33\x36\x2c\x2d\x31\x2e\x35\x38\x34\ +\x20\x34\x2e\x30\x33\x32\x2c\x2d\x36\x2e\x30\x38\x34\x20\x36\x2e\ +\x38\x30\x34\x2c\x2d\x36\x2e\x32\x36\x34\x20\x32\x2e\x38\x30\x38\ +\x2c\x2d\x30\x2e\x31\x34\x34\x20\x38\x2e\x39\x32\x38\x2c\x33\x2e\ +\x34\x35\x36\x20\x39\x2e\x34\x36\x38\x2c\x35\x2e\x31\x31\x32\x20\ +\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\ +\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\ +\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\ +\x33\x39\x32\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\ +\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x36\x34\x2e\x35\x33\ +\x38\x2c\x37\x30\x2e\x33\x38\x39\x20\x63\x20\x2d\x33\x2e\x37\x34\ +\x34\x2c\x32\x2e\x33\x30\x34\x20\x2d\x36\x2e\x39\x34\x38\x2c\x33\ +\x2e\x34\x39\x32\x20\x2d\x31\x30\x2e\x30\x30\x38\x2c\x33\x2e\x37\ +\x30\x38\x20\x2d\x33\x2e\x30\x32\x34\x2c\x30\x2e\x31\x34\x34\x20\ +\x2d\x35\x2e\x37\x39\x36\x2c\x2d\x30\x2e\x36\x38\x34\x20\x2d\x38\ +\x2e\x31\x37\x32\x2c\x2d\x32\x2e\x36\x32\x38\x20\x30\x2e\x31\x38\ +\x2c\x39\x2e\x35\x30\x34\x20\x30\x2e\x34\x36\x38\x2c\x31\x39\x2e\ +\x34\x34\x20\x30\x2e\x37\x32\x2c\x33\x30\x2e\x36\x33\x36\x20\x30\ +\x2e\x32\x35\x32\x2c\x31\x31\x2e\x30\x38\x38\x20\x30\x2e\x35\x34\ +\x2c\x32\x32\x2e\x38\x32\x35\x20\x30\x2e\x38\x36\x34\x2c\x33\x35\ +\x2e\x36\x33\x39\x20\x33\x2e\x38\x31\x36\x2c\x31\x2e\x39\x30\x38\ +\x20\x36\x2e\x39\x31\x32\x2c\x32\x2e\x33\x37\x37\x20\x39\x2e\x36\ +\x38\x34\x2c\x31\x2e\x35\x34\x39\x20\x32\x2e\x37\x2c\x2d\x30\x2e\ +\x38\x36\x33\x20\x34\x2e\x37\x38\x38\x2c\x2d\x33\x2e\x31\x36\x38\ +\x20\x36\x2e\x34\x30\x38\x2c\x2d\x36\x2e\x37\x36\x38\x20\x2d\x30\ +\x2e\x38\x32\x38\x2c\x2d\x31\x31\x2e\x37\x33\x36\x20\x2d\x31\x2e\ +\x31\x38\x38\x2c\x2d\x32\x32\x2e\x34\x32\x38\x20\x2d\x31\x2e\x30\ +\x38\x2c\x2d\x33\x32\x2e\x39\x30\x34\x20\x30\x2e\x30\x33\x36\x2c\ +\x2d\x31\x30\x2e\x35\x31\x32\x20\x30\x2e\x36\x31\x32\x2c\x2d\x31\ +\x39\x2e\x39\x38\x20\x31\x2e\x35\x38\x34\x2c\x2d\x32\x39\x2e\x32\ +\x33\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\ +\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\ +\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\ +\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\ +\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\ +\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\ +\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\ +\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\ +\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x61\x74\x68\x33\x39\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\ +\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x34\x34\ +\x2e\x30\x39\x2c\x37\x32\x2e\x38\x30\x31\x20\x63\x20\x2d\x31\x2e\ +\x39\x38\x2c\x32\x2e\x33\x37\x36\x20\x2d\x34\x2e\x32\x34\x38\x2c\ +\x33\x2e\x38\x31\x36\x20\x2d\x36\x2e\x36\x36\x2c\x34\x2e\x33\x32\ +\x20\x2d\x32\x2e\x34\x34\x38\x2c\x30\x2e\x34\x36\x38\x20\x2d\x35\ +\x2e\x31\x38\x34\x2c\x30\x20\x2d\x38\x2e\x30\x36\x34\x2c\x2d\x31\ +\x2e\x34\x30\x34\x20\x2d\x31\x2e\x30\x34\x34\x2c\x39\x2e\x33\x36\ +\x20\x2d\x31\x2e\x36\x32\x2c\x31\x39\x2e\x33\x36\x38\x20\x2d\x31\ +\x2e\x37\x32\x38\x2c\x33\x30\x2e\x34\x35\x36\x20\x2d\x30\x2e\x31\ +\x38\x2c\x31\x31\x2e\x30\x35\x32\x20\x30\x2e\x31\x30\x38\x2c\x32\ +\x32\x2e\x37\x38\x38\x20\x30\x2e\x38\x36\x34\x2c\x33\x35\x2e\x36\ +\x30\x34\x20\x33\x2e\x38\x31\x36\x2c\x31\x2e\x38\x37\x31\x20\x36\ +\x2e\x39\x31\x32\x2c\x32\x2e\x34\x34\x37\x20\x39\x2e\x36\x38\x34\ +\x2c\x31\x2e\x35\x38\x34\x20\x32\x2e\x37\x2c\x2d\x30\x2e\x39\x33\ +\x36\x20\x34\x2e\x37\x38\x38\x2c\x2d\x33\x2e\x30\x36\x31\x20\x36\ +\x2e\x34\x30\x38\x2c\x2d\x36\x2e\x37\x36\x38\x20\x30\x2e\x34\x33\ +\x32\x2c\x2d\x39\x2e\x37\x32\x31\x20\x30\x2e\x36\x31\x32\x2c\x2d\ +\x31\x39\x2e\x36\x35\x36\x20\x30\x2e\x35\x34\x2c\x2d\x33\x30\x2e\ +\x33\x34\x39\x20\x2d\x30\x2e\x31\x34\x34\x2c\x2d\x31\x30\x2e\x37\ +\x39\x39\x20\x2d\x30\x2e\x33\x39\x36\x2c\x2d\x32\x31\x2e\x36\x37\ +\x31\x20\x2d\x31\x2e\x30\x34\x34\x2c\x2d\x33\x33\x2e\x34\x34\x33\ +\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\ +\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\ +\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\ +\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x39\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\ +\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x32\x36\x2e\x33\ +\x30\x36\x2c\x37\x37\x2e\x30\x31\x33\x20\x63\x20\x2d\x31\x2e\x34\ +\x34\x2c\x31\x2e\x35\x31\x32\x20\x2d\x33\x2e\x31\x33\x32\x2c\x32\ +\x2e\x34\x34\x38\x20\x2d\x35\x2e\x30\x37\x36\x2c\x32\x2e\x36\x36\ +\x34\x20\x2d\x32\x2e\x30\x31\x36\x2c\x30\x2e\x32\x31\x36\x20\x2d\ +\x34\x2e\x31\x37\x36\x2c\x2d\x30\x2e\x32\x35\x32\x20\x2d\x36\x2e\ +\x36\x32\x34\x2c\x2d\x31\x2e\x34\x30\x34\x20\x2d\x31\x2e\x35\x38\ +\x34\x2c\x31\x31\x2e\x36\x36\x34\x20\x2d\x32\x2e\x37\x37\x32\x2c\ +\x32\x33\x2e\x30\x37\x36\x20\x2d\x33\x2e\x34\x32\x2c\x33\x35\x2e\ +\x30\x36\x34\x20\x2d\x30\x2e\x37\x32\x2c\x31\x31\x2e\x39\x35\x32\ +\x20\x2d\x30\x2e\x39\x37\x32\x2c\x32\x33\x2e\x36\x35\x31\x20\x2d\ +\x30\x2e\x37\x35\x36\x2c\x33\x35\x2e\x39\x32\x39\x20\x33\x2e\x37\ +\x34\x34\x2c\x31\x2e\x39\x37\x39\x20\x36\x2e\x39\x38\x34\x2c\x32\ +\x2e\x33\x37\x35\x20\x39\x2e\x37\x32\x2c\x31\x2e\x35\x38\x34\x20\ +\x32\x2e\x37\x2c\x2d\x30\x2e\x39\x20\x34\x2e\x37\x38\x38\x2c\x2d\ +\x33\x2e\x31\x36\x38\x20\x36\x2e\x34\x30\x38\x2c\x2d\x36\x2e\x38\ +\x30\x35\x20\x2d\x30\x2e\x36\x34\x38\x2c\x2d\x31\x30\x2e\x38\x37\ +\x31\x20\x2d\x31\x2e\x31\x35\x32\x2c\x2d\x32\x31\x2e\x36\x20\x2d\ +\x31\x2e\x31\x31\x36\x2c\x2d\x33\x32\x2e\x38\x36\x38\x20\x2d\x30\ +\x2e\x30\x37\x32\x2c\x2d\x31\x31\x2e\x33\x30\x34\x20\x30\x2e\x32\ +\x31\x36\x2c\x2d\x32\x32\x2e\x34\x36\x34\x20\x30\x2e\x38\x36\x34\ +\x2c\x2d\x33\x34\x2e\x31\x36\x34\x20\x7a\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\ +\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\ +\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x33\x33\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x31\x31\x2e\x38\x33\x34\x2c\x37\x39\x2e\x34\x36\ +\x31\x20\x63\x20\x2d\x32\x2e\x32\x36\x38\x2c\x31\x2e\x36\x39\x32\ +\x20\x2d\x34\x2e\x35\x33\x36\x2c\x32\x2e\x35\x35\x36\x20\x2d\x36\ +\x2e\x39\x34\x38\x2c\x32\x2e\x39\x38\x38\x20\x2d\x32\x2e\x34\x34\ +\x38\x2c\x30\x2e\x33\x36\x20\x2d\x34\x2e\x39\x36\x38\x2c\x30\x2e\ +\x30\x33\x36\x20\x2d\x37\x2e\x35\x36\x2c\x2d\x30\x2e\x38\x32\x38\ +\x20\x2d\x31\x2e\x38\x2c\x31\x34\x2e\x30\x37\x36\x20\x2d\x32\x2e\ +\x37\x37\x32\x2c\x32\x37\x2e\x32\x38\x38\x20\x2d\x33\x2e\x30\x36\ +\x2c\x34\x30\x2e\x31\x37\x36\x20\x2d\x30\x2e\x33\x36\x2c\x31\x32\ +\x2e\x38\x38\x39\x20\x30\x2e\x31\x30\x38\x2c\x32\x34\x2e\x38\x30\ +\x35\x20\x31\x2e\x32\x36\x2c\x33\x36\x2e\x34\x33\x32\x20\x32\x2e\ +\x35\x39\x32\x2c\x31\x2e\x30\x38\x20\x34\x2e\x38\x36\x2c\x31\x2e\ +\x30\x30\x38\x20\x37\x2e\x32\x33\x36\x2c\x2d\x30\x2e\x30\x37\x32\ +\x20\x32\x2e\x32\x36\x38\x2c\x2d\x31\x2e\x31\x35\x20\x34\x2e\x33\ +\x35\x36\x2c\x2d\x33\x2e\x34\x35\x35\x20\x36\x2e\x34\x30\x38\x2c\ +\x2d\x36\x2e\x37\x36\x38\x20\x2d\x31\x2e\x31\x38\x38\x2c\x2d\x31\ +\x30\x2e\x30\x30\x38\x20\x2d\x31\x2e\x35\x34\x38\x2c\x2d\x32\x30\ +\x2e\x38\x37\x39\x20\x2d\x31\x2e\x30\x38\x2c\x2d\x33\x32\x2e\x39\ +\x30\x34\x20\x30\x2e\x34\x36\x38\x2c\x2d\x31\x32\x2e\x30\x39\x36\ +\x20\x31\x2e\x36\x32\x2c\x2d\x32\x34\x2e\x39\x31\x32\x20\x33\x2e\ +\x37\x34\x34\x2c\x2d\x33\x39\x2e\x30\x32\x34\x20\x7a\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\ +\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x33\x35\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\ +\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x64\x3d\x22\x6d\x20\x39\x35\x2e\x31\x33\x2c\x38\x31\x2e\x34\ +\x34\x31\x20\x63\x20\x2d\x30\x2e\x36\x34\x38\x2c\x32\x2e\x33\x34\ +\x20\x2d\x32\x2e\x31\x32\x34\x2c\x33\x2e\x35\x32\x38\x20\x2d\x34\ +\x2e\x34\x32\x38\x2c\x33\x2e\x39\x36\x20\x2d\x32\x2e\x33\x37\x36\ +\x2c\x30\x2e\x33\x36\x20\x2d\x35\x2e\x35\x30\x38\x2c\x2d\x30\x2e\ +\x32\x38\x38\x20\x2d\x39\x2e\x35\x34\x2c\x2d\x31\x2e\x38\x20\x2d\ +\x30\x2e\x36\x38\x34\x2c\x31\x31\x2e\x30\x31\x36\x20\x2d\x31\x2e\ +\x31\x38\x38\x2c\x32\x32\x2e\x38\x39\x36\x20\x2d\x31\x2e\x35\x31\ +\x32\x2c\x33\x36\x2e\x32\x31\x35\x20\x2d\x30\x2e\x33\x36\x2c\x31\ +\x33\x2e\x33\x35\x37\x20\x2d\x30\x2e\x35\x34\x2c\x32\x37\x2e\x34\ +\x36\x39\x20\x2d\x30\x2e\x35\x34\x2c\x34\x33\x2e\x31\x36\x34\x20\ +\x32\x2e\x39\x38\x38\x2c\x31\x2e\x39\x30\x38\x20\x35\x2e\x37\x36\ +\x2c\x32\x2e\x34\x34\x39\x20\x38\x2e\x31\x37\x32\x2c\x31\x2e\x37\ +\x36\x34\x20\x32\x2e\x33\x37\x36\x2c\x2d\x30\x2e\x37\x35\x36\x20\ +\x34\x2e\x35\x33\x36\x2c\x2d\x32\x2e\x38\x37\x39\x20\x36\x2e\x33\ +\x33\x36\x2c\x2d\x36\x2e\x32\x32\x37\x20\x2d\x30\x2e\x38\x32\x38\ +\x2c\x2d\x31\x30\x2e\x31\x31\x37\x20\x2d\x31\x2e\x30\x34\x34\x2c\ +\x2d\x32\x31\x2e\x34\x32\x20\x2d\x30\x2e\x37\x39\x32\x2c\x2d\x33\ +\x34\x2e\x33\x30\x39\x20\x30\x2e\x32\x35\x32\x2c\x2d\x31\x33\x2e\ +\x30\x33\x31\x20\x30\x2e\x39\x37\x32\x2c\x2d\x32\x36\x2e\x39\x36\ +\x33\x20\x32\x2e\x33\x30\x34\x2c\x2d\x34\x32\x2e\x37\x36\x37\x20\ +\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\ +\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\ +\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\ +\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\ +\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\ +\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\ +\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\ +\x33\x39\x33\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ +\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\ +\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x37\x38\x2e\x37\x31\x34\ +\x2c\x38\x36\x2e\x31\x39\x33\x20\x63\x20\x2d\x33\x2e\x39\x36\x2c\ +\x31\x2e\x39\x30\x38\x20\x2d\x37\x2e\x34\x38\x38\x2c\x32\x2e\x37\ +\x20\x2d\x31\x31\x2e\x30\x31\x36\x2c\x32\x2e\x35\x32\x20\x2d\x33\ +\x2e\x35\x32\x38\x2c\x2d\x30\x2e\x32\x31\x36\x20\x2d\x36\x2e\x37\ +\x36\x38\x2c\x2d\x31\x2e\x34\x34\x20\x2d\x39\x2e\x38\x36\x34\x2c\ +\x2d\x33\x2e\x36\x37\x32\x20\x30\x2e\x34\x36\x38\x2c\x31\x38\x2e\ +\x37\x39\x32\x20\x30\x2e\x37\x39\x32\x2c\x33\x34\x2e\x38\x34\x38\ +\x20\x31\x2e\x31\x31\x36\x2c\x34\x38\x2e\x39\x39\x36\x20\x30\x2e\ +\x33\x32\x34\x2c\x31\x34\x2e\x31\x31\x31\x20\x30\x2e\x35\x30\x34\ +\x2c\x32\x35\x2e\x34\x38\x38\x20\x30\x2e\x36\x38\x34\x2c\x33\x34\ +\x2e\x39\x35\x35\x20\x34\x2e\x33\x32\x2c\x32\x2e\x37\x37\x33\x20\ +\x37\x2e\x38\x34\x38\x2c\x33\x2e\x37\x34\x34\x20\x31\x30\x2e\x37\ +\x32\x38\x2c\x33\x2e\x32\x30\x35\x20\x32\x2e\x38\x38\x2c\x2d\x30\ +\x2e\x36\x34\x38\x20\x34\x2e\x39\x36\x38\x2c\x2d\x32\x2e\x38\x30\ +\x39\x20\x36\x2e\x34\x30\x38\x2c\x2d\x36\x2e\x37\x36\x38\x20\x2d\ +\x31\x2e\x30\x38\x2c\x2d\x38\x2e\x38\x39\x33\x20\x2d\x31\x2e\x34\ +\x34\x2c\x2d\x31\x39\x2e\x35\x38\x34\x20\x2d\x31\x2e\x30\x38\x2c\ +\x2d\x33\x32\x2e\x39\x30\x34\x20\x30\x2e\x32\x38\x38\x2c\x2d\x31\ +\x33\x2e\x33\x32\x20\x31\x2e\x32\x39\x36\x2c\x2d\x32\x38\x2e\x35\ +\x38\x34\x20\x33\x2e\x30\x32\x34\x2c\x2d\x34\x36\x2e\x33\x33\x32\ +\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\ +\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\ +\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\ +\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\ +\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x39\x33\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\ +\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\ +\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x35\x33\x2e\x30\x38\ +\x32\x2c\x38\x37\x2e\x36\x33\x33\x20\x63\x20\x2d\x33\x2e\x38\x35\ +\x32\x2c\x30\x2e\x34\x36\x38\x20\x2d\x37\x2e\x30\x39\x32\x2c\x30\ +\x2e\x32\x35\x32\x20\x2d\x39\x2e\x38\x36\x34\x2c\x2d\x30\x2e\x37\ +\x39\x32\x20\x2d\x32\x2e\x38\x30\x38\x2c\x2d\x31\x2e\x31\x35\x32\ +\x20\x2d\x35\x2e\x30\x30\x34\x2c\x2d\x32\x2e\x38\x34\x34\x20\x2d\ +\x36\x2e\x37\x33\x32\x2c\x2d\x35\x2e\x35\x30\x38\x20\x31\x2e\x34\ +\x30\x34\x2c\x31\x37\x2e\x36\x34\x20\x32\x2e\x34\x38\x34\x2c\x33\ +\x32\x2e\x37\x36\x31\x20\x33\x2e\x30\x39\x36\x2c\x34\x36\x2e\x31\ +\x38\x38\x20\x30\x2e\x36\x31\x32\x2c\x31\x33\x2e\x33\x35\x35\x20\ +\x30\x2e\x39\x2c\x32\x34\x2e\x33\x33\x36\x20\x30\x2e\x37\x32\x2c\ +\x33\x33\x2e\x35\x31\x36\x20\x32\x2e\x34\x31\x32\x2c\x34\x2e\x30\ +\x33\x31\x20\x34\x2e\x38\x36\x2c\x36\x2e\x34\x30\x38\x20\x37\x2e\ +\x34\x38\x38\x2c\x37\x2e\x31\x32\x37\x20\x32\x2e\x36\x32\x38\x2c\ +\x30\x2e\x36\x34\x38\x20\x35\x2e\x31\x38\x34\x2c\x2d\x30\x2e\x32\ +\x31\x35\x20\x38\x2e\x30\x36\x34\x2c\x2d\x32\x2e\x38\x37\x39\x20\ +\x43\x20\x35\x35\x2e\x34\x35\x38\x2c\x31\x35\x32\x2e\x39\x20\x35\ +\x35\x2e\x30\x32\x36\x2c\x31\x34\x30\x2e\x35\x39\x20\x35\x34\x2e\ +\x35\x35\x38\x2c\x31\x32\x37\x2e\x35\x32\x31\x20\x35\x34\x2e\x30\ +\x39\x2c\x31\x31\x34\x2e\x34\x38\x38\x20\x35\x33\x2e\x35\x35\x2c\ +\x31\x30\x31\x2e\x33\x38\x35\x20\x35\x33\x2e\x30\x38\x32\x2c\x38\ +\x37\x2e\x36\x33\x33\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\ +\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\ +\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\ +\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x39\x34\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\ +\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ +\x33\x32\x2e\x32\x30\x32\x2c\x37\x39\x2e\x38\x35\x37\x20\x63\x20\ +\x2d\x32\x2e\x38\x34\x34\x2c\x31\x2e\x38\x20\x2d\x35\x2e\x34\x37\ +\x32\x2c\x32\x2e\x33\x30\x34\x20\x2d\x38\x2e\x31\x37\x32\x2c\x31\ +\x2e\x31\x31\x36\x20\x2d\x32\x2e\x37\x33\x36\x2c\x2d\x31\x2e\x31\ +\x38\x38\x20\x2d\x35\x2e\x32\x35\x36\x2c\x2d\x33\x2e\x37\x38\x20\ +\x2d\x37\x2e\x38\x34\x38\x2c\x2d\x37\x2e\x39\x32\x20\x32\x2e\x38\ +\x30\x38\x2c\x31\x38\x2e\x35\x37\x36\x20\x34\x2e\x35\x33\x36\x2c\ +\x33\x34\x2e\x32\x37\x32\x20\x35\x2e\x37\x32\x34\x2c\x34\x38\x2e\ +\x30\x36\x31\x20\x31\x2e\x30\x38\x2c\x31\x33\x2e\x36\x38\x20\x31\ +\x2e\x32\x36\x2c\x32\x34\x2e\x36\x36\x20\x30\x2e\x36\x38\x34\x2c\ +\x33\x33\x2e\x35\x31\x36\x20\x32\x2e\x34\x31\x32\x2c\x33\x2e\x39\ +\x36\x31\x20\x34\x2e\x38\x36\x2c\x36\x2e\x31\x39\x31\x20\x37\x2e\ +\x34\x38\x38\x2c\x37\x2e\x31\x32\x39\x20\x32\x2e\x35\x35\x36\x2c\ +\x30\x2e\x38\x32\x36\x20\x35\x2e\x31\x34\x38\x2c\x30\x2e\x30\x37\ +\x20\x37\x2e\x39\x32\x2c\x2d\x32\x2e\x31\x32\x35\x20\x43\x20\x33\ +\x37\x2e\x36\x30\x32\x2c\x31\x34\x38\x2e\x32\x32\x32\x20\x33\x36\ +\x2e\x38\x31\x2c\x31\x33\x36\x2e\x30\x35\x34\x20\x33\x35\x2e\x39\ +\x31\x2c\x31\x32\x32\x2e\x36\x39\x38\x20\x33\x34\x2e\x39\x37\x34\ +\x2c\x31\x30\x39\x2e\x32\x36\x39\x20\x33\x33\x2e\x36\x34\x32\x2c\ +\x39\x35\x2e\x32\x36\x35\x20\x33\x32\x2e\x32\x30\x32\x2c\x37\x39\ +\x2e\x38\x35\x37\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\ +\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\ +\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\ +\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\ +\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\ +\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x39\x34\x33\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\ +\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x38\ +\x30\x2e\x30\x31\x2c\x35\x39\x2e\x38\x34\x31\x20\x63\x20\x30\x2e\ +\x37\x32\x2c\x31\x2e\x33\x33\x32\x20\x2d\x32\x2e\x31\x32\x34\x2c\ +\x33\x2e\x37\x38\x20\x2d\x34\x2e\x37\x38\x38\x2c\x34\x2e\x35\x37\ +\x32\x20\x2d\x32\x2e\x38\x34\x34\x2c\x30\x2e\x37\x32\x20\x2d\x31\ +\x30\x2e\x34\x34\x2c\x30\x2e\x36\x38\x34\x20\x2d\x31\x31\x2e\x32\ +\x36\x38\x2c\x2d\x30\x2e\x35\x30\x34\x20\x2d\x30\x2e\x36\x34\x38\ +\x2c\x2d\x31\x2e\x34\x30\x34\x20\x33\x2e\x39\x39\x36\x2c\x2d\x36\ +\x2e\x37\x33\x32\x20\x36\x2e\x38\x34\x2c\x2d\x37\x2e\x33\x38\x20\ +\x32\x2e\x37\x33\x36\x2c\x2d\x30\x2e\x36\x38\x34\x20\x38\x2e\x33\ +\x35\x32\x2c\x31\x2e\x39\x30\x38\x20\x39\x2e\x32\x31\x36\x2c\x33\ +\x2e\x33\x31\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\ +\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\ +\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\ +\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\ +\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\ +\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\ +\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x70\x61\x74\x68\x33\x39\x34\x35\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\ +\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x39\ +\x38\x2e\x30\x38\x32\x2c\x35\x36\x2e\x30\x39\x37\x20\x63\x20\x30\ +\x2e\x36\x31\x32\x2c\x31\x2e\x35\x38\x34\x20\x2d\x32\x2e\x32\x33\ +\x32\x2c\x35\x2e\x34\x37\x32\x20\x2d\x34\x2e\x39\x33\x32\x2c\x36\ +\x2e\x32\x32\x38\x20\x2d\x32\x2e\x38\x30\x38\x2c\x30\x2e\x36\x31\ +\x32\x20\x2d\x31\x30\x2e\x34\x30\x34\x2c\x2d\x30\x2e\x36\x31\x32\ +\x20\x2d\x31\x31\x2e\x31\x32\x34\x2c\x2d\x32\x2e\x31\x36\x20\x2d\ +\x30\x2e\x36\x34\x38\x2c\x2d\x31\x2e\x36\x35\x36\x20\x33\x2e\x39\ +\x39\x36\x2c\x2d\x36\x2e\x36\x39\x36\x20\x36\x2e\x38\x34\x2c\x2d\ +\x37\x2e\x33\x34\x34\x20\x32\x2e\x37\x33\x36\x2c\x2d\x30\x2e\x37\ +\x32\x20\x38\x2e\x33\x35\x32\x2c\x31\x2e\x36\x32\x20\x39\x2e\x32\ +\x31\x36\x2c\x33\x2e\x32\x37\x36\x20\x7a\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\ +\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\ +\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x34\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x31\x36\x2e\x32\x39\x38\x2c\x35\x35\x2e\x30\x35\ +\x33\x20\x63\x20\x30\x2e\x33\x39\x36\x2c\x31\x2e\x36\x35\x36\x20\ +\x2d\x34\x2e\x31\x30\x34\x2c\x35\x2e\x34\x37\x32\x20\x2d\x36\x2e\ +\x36\x39\x36\x2c\x36\x2e\x33\x20\x2d\x32\x2e\x38\x30\x38\x2c\x30\ +\x2e\x36\x34\x38\x20\x2d\x38\x2e\x38\x39\x32\x2c\x2d\x30\x2e\x36\ +\x34\x38\x20\x2d\x39\x2e\x33\x36\x2c\x2d\x32\x2e\x32\x33\x32\x20\ +\x2d\x30\x2e\x33\x39\x36\x2c\x2d\x31\x2e\x37\x32\x38\x20\x33\x2e\ +\x39\x36\x2c\x2d\x36\x2e\x37\x33\x32\x20\x36\x2e\x38\x30\x34\x2c\ +\x2d\x37\x2e\x33\x38\x20\x32\x2e\x37\x2c\x2d\x30\x2e\x36\x38\x34\ +\x20\x38\x2e\x37\x34\x38\x2c\x31\x2e\x35\x38\x34\x20\x39\x2e\x32\ +\x35\x32\x2c\x33\x2e\x33\x31\x32\x20\x7a\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\ +\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\ +\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\ +\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x34\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x31\x33\x35\x2e\x31\x32\x36\x2c\x35\x34\x2e\x33\x36\ +\x39\x20\x63\x20\x30\x2e\x35\x34\x2c\x31\x2e\x32\x32\x34\x20\x2d\ +\x32\x2e\x36\x32\x38\x2c\x34\x2e\x31\x30\x34\x20\x2d\x35\x2e\x34\ +\x37\x32\x2c\x34\x2e\x37\x35\x32\x20\x2d\x32\x2e\x38\x34\x34\x2c\ +\x30\x2e\x33\x36\x20\x2d\x31\x30\x2e\x38\x2c\x2d\x30\x2e\x35\x34\ +\x20\x2d\x31\x31\x2e\x33\x37\x36\x2c\x2d\x31\x2e\x37\x32\x38\x20\ +\x2d\x30\x2e\x35\x34\x2c\x2d\x31\x2e\x33\x33\x32\x20\x34\x2e\x36\ +\x34\x34\x2c\x2d\x34\x2e\x38\x39\x36\x20\x37\x2e\x36\x33\x32\x2c\ +\x2d\x35\x2e\x34\x33\x36\x20\x32\x2e\x37\x37\x32\x2c\x2d\x30\x2e\ +\x35\x37\x36\x20\x38\x2e\x35\x36\x38\x2c\x31\x2e\x31\x35\x32\x20\ +\x39\x2e\x32\x31\x36\x2c\x32\x2e\x34\x31\x32\x20\x7a\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\ +\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\ +\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x35\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\ +\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\ +\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x64\x3d\x22\x6d\x20\x37\x37\x2e\x37\x34\x32\x2c\x37\x30\x2e\ +\x33\x35\x33\x20\x63\x20\x31\x2e\x30\x30\x38\x2c\x31\x2e\x37\x32\ +\x38\x20\x2d\x33\x2e\x35\x36\x34\x2c\x35\x2e\x37\x36\x20\x2d\x35\ +\x2e\x39\x34\x2c\x36\x2e\x32\x36\x34\x20\x2d\x32\x2e\x34\x38\x34\ +\x2c\x30\x2e\x32\x38\x38\x20\x2d\x37\x2e\x38\x38\x34\x2c\x2d\x32\ +\x2e\x32\x33\x32\x20\x2d\x38\x2e\x38\x35\x36\x2c\x2d\x33\x2e\x39\ +\x36\x20\x2d\x31\x2e\x30\x34\x34\x2c\x2d\x31\x2e\x38\x33\x36\x20\ +\x30\x2c\x2d\x36\x2e\x31\x35\x36\x20\x32\x2e\x35\x35\x36\x2c\x2d\ +\x36\x2e\x35\x35\x32\x20\x32\x2e\x34\x34\x38\x2c\x2d\x30\x2e\x33\ +\x32\x34\x20\x31\x31\x2e\x31\x36\x2c\x32\x2e\x33\x34\x20\x31\x32\ +\x2e\x32\x34\x2c\x34\x2e\x32\x34\x38\x20\x7a\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\ +\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\x34\ +\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\ +\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x35\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x22\ +\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\x66\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\ +\x3d\x22\x6d\x20\x39\x35\x2e\x38\x35\x2c\x36\x37\x2e\x34\x30\x31\ +\x20\x63\x20\x31\x2e\x30\x30\x38\x2c\x31\x2e\x35\x34\x38\x20\x2d\ +\x32\x2e\x30\x35\x32\x2c\x35\x2e\x32\x35\x36\x20\x2d\x34\x2e\x33\ +\x32\x2c\x35\x2e\x37\x32\x34\x20\x2d\x32\x2e\x33\x30\x34\x2c\x30\ +\x2e\x32\x35\x32\x20\x2d\x37\x2e\x38\x34\x38\x2c\x2d\x32\x2e\x32\ +\x33\x32\x20\x2d\x39\x2c\x2d\x33\x2e\x37\x30\x38\x20\x2d\x31\x2e\ +\x31\x31\x36\x2c\x2d\x31\x2e\x35\x31\x32\x20\x2d\x30\x2e\x32\x38\ +\x38\x2c\x2d\x35\x2e\x30\x34\x20\x32\x2e\x30\x38\x38\x2c\x2d\x35\ +\x2e\x33\x32\x38\x20\x32\x2e\x31\x39\x36\x2c\x2d\x30\x2e\x33\x36\ +\x20\x31\x30\x2e\x30\x30\x38\x2c\x31\x2e\x37\x36\x34\x20\x31\x31\ +\x2e\x32\x33\x32\x2c\x33\x2e\x33\x31\x32\x20\x7a\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x69\x70\x2d\ +\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\ +\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\x31\x3b\x66\x69\ +\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\ +\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\x2e\x36\x31\ +\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x39\x35\x35\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\ +\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\x22\x4f\x66\ +\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x6d\x20\x31\x31\x33\x2e\x31\x33\x2c\x36\x36\x2e\x39\ +\x33\x33\x20\x63\x20\x30\x2e\x39\x37\x32\x2c\x31\x2e\x34\x30\x34\ +\x20\x2d\x33\x2e\x30\x39\x36\x2c\x33\x2e\x34\x39\x32\x20\x2d\x35\ +\x2e\x34\x2c\x33\x2e\x36\x33\x36\x20\x2d\x32\x2e\x34\x34\x38\x2c\ +\x30\x2e\x30\x33\x36\x20\x2d\x37\x2e\x33\x34\x34\x2c\x2d\x31\x2e\ +\x36\x39\x32\x20\x2d\x38\x2e\x34\x36\x2c\x2d\x33\x2e\x30\x39\x36\ +\x20\x2d\x31\x2e\x31\x31\x36\x2c\x2d\x31\x2e\x34\x37\x36\x20\x2d\ +\x30\x2e\x32\x38\x38\x2c\x2d\x35\x2e\x32\x35\x36\x20\x32\x2e\x30\ +\x38\x38\x2c\x2d\x35\x2e\x33\x36\x34\x20\x32\x2e\x32\x33\x32\x2c\ +\x2d\x30\x2e\x31\x38\x20\x31\x30\x2e\x36\x39\x32\x2c\x33\x2e\x34\ +\x32\x20\x31\x31\x2e\x37\x37\x32\x2c\x34\x2e\x38\x32\x34\x20\x7a\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\ +\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\ +\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\x65\x63\x66\ +\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\ +\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x39\x35\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\ +\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x32\x38\x2e\x32\x38\x36\ +\x2c\x36\x33\x2e\x37\x32\x39\x20\x63\x20\x30\x2e\x37\x39\x32\x2c\ +\x31\x2e\x34\x37\x36\x20\x2d\x32\x2e\x38\x30\x38\x2c\x34\x2e\x37\ +\x31\x36\x20\x2d\x34\x2e\x38\x32\x34\x2c\x35\x2e\x31\x34\x38\x20\ +\x2d\x32\x2e\x31\x36\x2c\x30\x2e\x32\x35\x32\x20\x2d\x36\x2e\x33\ +\x33\x36\x2c\x2d\x31\x2e\x38\x20\x2d\x37\x2e\x32\x37\x32\x2c\x2d\ +\x33\x2e\x32\x34\x20\x2d\x30\x2e\x39\x33\x36\x2c\x2d\x31\x2e\x35\ +\x34\x38\x20\x30\x2e\x30\x33\x36\x2c\x2d\x35\x2e\x30\x30\x34\x20\ +\x32\x2e\x30\x38\x38\x2c\x2d\x35\x2e\x33\x36\x34\x20\x31\x2e\x39\ +\x38\x2c\x2d\x30\x2e\x33\x32\x34\x20\x39\x2e\x30\x37\x32\x2c\x31\ +\x2e\x39\x34\x34\x20\x31\x30\x2e\x30\x30\x38\x2c\x33\x2e\x34\x35\ +\x36\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\ +\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\ +\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\ +\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x39\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3d\x22\x31\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\ +\x6f\x75\x74\x3d\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x34\x38\x2e\ +\x33\x33\x38\x2c\x36\x30\x2e\x30\x35\x37\x20\x63\x20\x30\x2e\x38\ +\x36\x34\x2c\x31\x2e\x34\x37\x36\x20\x2d\x32\x2e\x39\x31\x36\x2c\ +\x34\x2e\x37\x31\x36\x20\x2d\x34\x2e\x38\x32\x34\x2c\x35\x2e\x31\ +\x34\x38\x20\x2d\x32\x2e\x31\x36\x2c\x30\x2e\x32\x35\x32\x20\x2d\ +\x36\x2e\x33\x37\x32\x2c\x2d\x31\x2e\x38\x20\x2d\x37\x2e\x32\x33\ +\x36\x2c\x2d\x33\x2e\x32\x34\x20\x2d\x30\x2e\x38\x32\x38\x2c\x2d\ +\x31\x2e\x35\x34\x38\x20\x2d\x30\x2e\x30\x33\x36\x2c\x2d\x35\x2e\ +\x30\x30\x34\x20\x32\x2e\x30\x38\x38\x2c\x2d\x35\x2e\x33\x36\x34\ +\x20\x32\x2e\x30\x31\x36\x2c\x2d\x30\x2e\x33\x32\x34\x20\x39\x2c\ +\x31\x2e\x39\x34\x34\x20\x39\x2e\x39\x37\x32\x2c\x33\x2e\x34\x35\ +\x36\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x63\x6c\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\ +\x6e\x6f\x64\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\ +\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\ +\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x65\x64\ +\x65\x63\x66\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\ +\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x35\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x31\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x39\x36\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x3a\x6b\x6e\x6f\x63\x6b\x6f\x75\x74\x3d\ +\x22\x4f\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\x36\x38\x2e\x32\x38\x32\x2c\ +\x31\x33\x33\x2e\x31\x30\x32\x20\x63\x20\x2d\x31\x2e\x31\x31\x36\ +\x2c\x33\x2e\x34\x35\x35\x20\x2d\x33\x2e\x33\x31\x32\x2c\x35\x2e\ +\x37\x36\x20\x2d\x36\x2e\x38\x37\x36\x2c\x37\x2e\x30\x35\x35\x20\ +\x2d\x33\x2e\x35\x36\x34\x2c\x31\x2e\x32\x32\x35\x20\x2d\x38\x2e\ +\x33\x35\x32\x2c\x31\x2e\x34\x34\x31\x20\x2d\x31\x34\x2e\x33\x36\ +\x34\x2c\x30\x2e\x35\x30\x34\x20\x2d\x32\x2e\x36\x36\x34\x2c\x32\ +\x2e\x31\x39\x37\x20\x2d\x35\x2e\x34\x2c\x33\x2e\x37\x34\x34\x20\ +\x2d\x38\x2e\x32\x30\x38\x2c\x34\x2e\x35\x20\x2d\x32\x2e\x38\x34\ +\x34\x2c\x30\x2e\x37\x35\x36\x20\x2d\x35\x2e\x37\x36\x2c\x30\x2e\ +\x38\x36\x35\x20\x2d\x38\x2e\x37\x34\x38\x2c\x30\x2e\x31\x38\x32\ +\x20\x2d\x30\x2e\x33\x39\x36\x2c\x33\x2e\x30\x35\x39\x20\x2d\x32\ +\x2e\x31\x32\x34\x2c\x35\x2e\x31\x38\x34\x20\x2d\x35\x2e\x31\x38\ +\x34\x2c\x36\x2e\x36\x35\x38\x20\x2d\x33\x2e\x31\x36\x38\x2c\x31\ +\x2e\x34\x34\x31\x20\x2d\x37\x2e\x34\x31\x36\x2c\x31\x2e\x39\x34\ +\x35\x20\x2d\x31\x33\x2e\x31\x37\x36\x2c\x31\x2e\x38\x30\x31\x20\ +\x2d\x31\x2e\x32\x39\x36\x2c\x32\x2e\x39\x31\x36\x20\x2d\x33\x2e\ +\x30\x32\x34\x2c\x35\x2e\x31\x31\x31\x20\x2d\x35\x2e\x37\x32\x34\ +\x2c\x36\x2e\x35\x38\x38\x20\x2d\x32\x2e\x36\x32\x38\x2c\x31\x2e\ +\x33\x36\x39\x20\x2d\x36\x2e\x30\x34\x38\x2c\x32\x2e\x30\x31\x36\ +\x20\x2d\x31\x30\x2e\x31\x31\x36\x2c\x31\x2e\x39\x34\x33\x20\x2d\ +\x31\x2e\x37\x32\x38\x2c\x33\x2e\x36\x30\x32\x20\x2d\x33\x2e\x39\ +\x32\x34\x2c\x35\x2e\x37\x32\x35\x20\x2d\x36\x2e\x35\x38\x38\x2c\ +\x36\x2e\x36\x36\x20\x2d\x32\x2e\x37\x2c\x30\x2e\x39\x20\x2d\x35\ +\x2e\x38\x36\x38\x2c\x30\x2e\x33\x32\x34\x20\x2d\x39\x2e\x35\x30\ +\x34\x2c\x2d\x31\x2e\x34\x33\x39\x20\x2d\x34\x2e\x33\x39\x32\x2c\ +\x35\x2e\x31\x34\x38\x20\x2d\x38\x2e\x35\x33\x32\x2c\x37\x2e\x38\ +\x34\x38\x20\x2d\x31\x32\x2e\x32\x37\x36\x2c\x38\x2e\x33\x38\x39\ +\x20\x2d\x33\x2e\x38\x38\x38\x2c\x30\x2e\x34\x33\x32\x20\x2d\x37\ +\x2e\x32\x33\x36\x2c\x2d\x31\x2e\x32\x39\x37\x20\x2d\x31\x30\x2e\ +\x34\x37\x36\x2c\x2d\x35\x2e\x34\x37\x33\x20\x2d\x34\x2e\x38\x36\ +\x2c\x31\x2e\x32\x39\x37\x20\x2d\x38\x2e\x36\x34\x2c\x31\x2e\x34\ +\x33\x39\x20\x2d\x31\x31\x2e\x38\x38\x2c\x30\x2e\x35\x37\x36\x20\ +\x2d\x33\x2e\x32\x30\x34\x2c\x2d\x30\x2e\x39\x33\x36\x20\x2d\x35\ +\x2e\x36\x31\x36\x2c\x2d\x33\x2e\x30\x32\x33\x20\x2d\x37\x2e\x32\ +\x33\x36\x2c\x2d\x36\x2e\x31\x31\x39\x20\x2d\x35\x2e\x32\x32\x2c\ +\x31\x2e\x34\x30\x32\x20\x2d\x39\x2e\x33\x39\x36\x2c\x31\x2e\x32\ +\x39\x35\x20\x2d\x31\x32\x2e\x36\x37\x32\x2c\x2d\x30\x2e\x34\x36\ +\x39\x20\x2d\x33\x2e\x33\x31\x32\x2c\x2d\x31\x2e\x37\x36\x34\x20\ +\x2d\x35\x2e\x36\x31\x36\x2c\x2d\x35\x2e\x30\x37\x36\x20\x2d\x36\ +\x2e\x39\x31\x32\x2c\x2d\x39\x2e\x39\x33\x36\x20\x2d\x33\x2e\x31\ +\x33\x32\x2c\x2d\x30\x2e\x32\x35\x32\x20\x2d\x35\x2e\x33\x36\x34\ +\x2c\x30\x2e\x30\x37\x32\x20\x2d\x36\x2e\x36\x39\x36\x2c\x31\x2e\ +\x31\x31\x35\x20\x2d\x31\x2e\x34\x34\x2c\x30\x2e\x39\x33\x36\x20\ +\x2d\x33\x2e\x37\x34\x34\x2c\x32\x2e\x37\x37\x31\x20\x2d\x31\x2e\ +\x35\x31\x32\x2c\x34\x2e\x38\x32\x34\x20\x32\x2e\x32\x36\x38\x2c\ +\x31\x2e\x38\x37\x31\x20\x37\x2e\x33\x38\x2c\x33\x2e\x32\x34\x20\ +\x31\x34\x2e\x36\x35\x32\x2c\x37\x2e\x31\x36\x34\x20\x37\x2e\x30\ +\x39\x32\x2c\x33\x2e\x39\x35\x39\x20\x31\x38\x2e\x32\x31\x36\x2c\ +\x31\x34\x2e\x36\x31\x35\x20\x32\x37\x2e\x38\x32\x38\x2c\x31\x36\ +\x2e\x32\x37\x31\x20\x39\x2e\x33\x39\x36\x2c\x31\x2e\x34\x33\x39\ +\x20\x31\x35\x2e\x39\x38\x34\x2c\x2d\x32\x2e\x33\x30\x33\x20\x32\ +\x38\x2e\x39\x34\x34\x2c\x2d\x36\x2e\x39\x31\x32\x20\x31\x33\x2e\ +\x30\x36\x38\x2c\x2d\x34\x2e\x36\x34\x33\x20\x33\x35\x2e\x36\x37\ +\x36\x2c\x2d\x31\x35\x2e\x30\x38\x34\x20\x34\x38\x2e\x33\x38\x34\ +\x2c\x2d\x32\x30\x2e\x34\x38\x34\x20\x31\x32\x2e\x33\x38\x34\x2c\ +\x2d\x35\x2e\x33\x39\x38\x20\x31\x38\x2e\x34\x33\x32\x2c\x2d\x39\ +\x2e\x32\x35\x32\x20\x32\x36\x2e\x30\x36\x34\x2c\x2d\x31\x32\x2e\ +\x31\x33\x31\x20\x37\x2e\x35\x36\x2c\x2d\x33\x2e\x30\x39\x36\x20\ +\x31\x33\x2e\x39\x36\x38\x2c\x2d\x34\x2e\x38\x39\x36\x20\x31\x39\ +\x2e\x33\x36\x38\x2c\x2d\x35\x2e\x38\x33\x32\x20\x2d\x32\x2e\x32\ +\x36\x38\x2c\x2d\x30\x2e\x37\x39\x33\x20\x2d\x33\x2e\x39\x32\x34\ +\x2c\x2d\x31\x2e\x35\x38\x34\x20\x2d\x35\x2e\x31\x31\x32\x2c\x2d\ +\x32\x2e\x35\x32\x20\x2d\x31\x2e\x32\x32\x34\x2c\x2d\x30\x2e\x39\ +\x33\x37\x20\x2d\x31\x2e\x38\x33\x36\x2c\x2d\x31\x2e\x39\x30\x38\ +\x20\x2d\x31\x2e\x39\x38\x2c\x2d\x32\x2e\x39\x31\x35\x20\x7a\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\ +\x69\x70\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\ +\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x38\x30\ +\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\ +\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x35\ +\x2e\x36\x31\x34\x30\x31\x36\x30\x36\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x31\x30\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\ +\x6e\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x67\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\ +\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x3b\x68\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ +\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ +\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ +\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ +\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ +\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ +\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ +\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ +\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ +\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ +\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ +\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ +\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ +\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ +\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ +\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ +\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\ +\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\ +\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\ +\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\ +\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\ +\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ +\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\x78\ +\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\ +\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x33\x36\x31\ +\x32\x22\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\ +\x2e\x31\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x33\x2e\ +\x31\x20\x72\x39\x38\x38\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x44\x72\ +\x61\x66\x74\x5f\x41\x64\x64\x54\x6f\x47\x72\x6f\x75\x70\x2e\x73\ +\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\x65\x66\x73\x0a\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x33\x36\x31\x34\x22\x3e\ +\x0a\x20\x20\x20\x20\x3c\x6d\x61\x72\x6b\x65\x72\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\ +\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4d\x65\x6e\x64\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\ +\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\ +\x66\x59\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x72\x65\x66\x58\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4d\x65\x6e\x64\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\ +\x3b\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\ +\x68\x33\x38\x33\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x4d\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x4c\x20\x35\ +\x2e\x30\x2c\x2d\x35\x2e\x30\x20\x4c\x20\x2d\x31\x32\x2e\x35\x2c\ +\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x35\x2e\x30\x20\x4c\x20\ +\x30\x2e\x30\x2c\x30\x2e\x30\x20\x7a\x20\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x70\x74\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\ +\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x34\x29\ +\x20\x72\x6f\x74\x61\x74\x65\x28\x31\x38\x30\x29\x20\x74\x72\x61\ +\x6e\x73\x6c\x61\x74\x65\x28\x31\x30\x2c\x30\x29\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x20\ +\x20\x20\x20\x3c\x6d\x61\x72\x6b\x65\x72\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\x74\x6f\x63\x6b\ +\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4d\x73\x74\x61\x72\x74\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x65\x6e\x74\x3d\ +\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x65\ +\x66\x59\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x72\x65\x66\x58\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4d\x73\x74\x61\ +\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\ +\x6c\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\ +\x74\x68\x33\x38\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x64\x3d\x22\x4d\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x4c\x20\ +\x35\x2e\x30\x2c\x2d\x35\x2e\x30\x20\x4c\x20\x2d\x31\x32\x2e\x35\ +\x2c\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x35\x2e\x30\x20\x4c\ +\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x7a\x20\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x30\x70\x74\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\ +\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\x30\x2e\x34\x29\ +\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x31\x30\x2c\x30\x29\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6d\x61\x72\x6b\x65\ +\x72\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x61\x72\x6b\x65\x72\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x73\ +\x74\x6f\x63\x6b\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\x4c\x73\ +\x74\x61\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x6f\x72\x69\ +\x65\x6e\x74\x3d\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x72\x65\x66\x59\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x72\x65\x66\x58\x3d\x22\x30\x2e\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x41\x72\x72\x6f\x77\x31\ +\x4c\x73\x74\x61\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x36\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x30\x2e\x30\x2c\x30\x2e\ +\x30\x20\x4c\x20\x35\x2e\x30\x2c\x2d\x35\x2e\x30\x20\x4c\x20\x2d\ +\x31\x32\x2e\x35\x2c\x30\x2e\x30\x20\x4c\x20\x35\x2e\x30\x2c\x35\ +\x2e\x30\x20\x4c\x20\x30\x2e\x30\x2c\x30\x2e\x30\x20\x7a\x20\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\ +\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\ +\x2e\x30\x70\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x73\x63\x61\x6c\x65\x28\ +\x30\x2e\x38\x29\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x31\ +\x32\x2e\x35\x2c\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x6d\x61\x72\x6b\x65\x72\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\ +\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\ +\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\ +\x22\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\ +\x69\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\ +\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x36\ +\x32\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\ +\x70\x65\x63\x74\x69\x76\x65\x33\x35\x38\x38\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\ +\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\ +\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\ +\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\ +\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\ +\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ +\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ +\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\ +\x73\x70\x65\x63\x74\x69\x76\x65\x33\x36\x39\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\ +\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\ +\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\ +\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\ +\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\ +\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\ +\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x33\x31\x34\x34\x2d\x36\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x31\x34\x36\ +\x2d\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x31\x34\x38\x2d\ +\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\ +\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x33\x37\x30\x31\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x33\x37\x30\x33\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x33\x37\x30\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\ +\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x31\ +\x34\x34\x2d\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x33\ +\x36\x38\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ +\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\ +\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\ +\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x31\x2c\x30\x2c\ +\x30\x2c\x30\x2e\x36\x39\x38\x35\x32\x39\x34\x2c\x30\x2c\x32\x30\ +\x32\x2e\x38\x32\x38\x36\x33\x29\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x63\x78\x3d\x22\x32\x32\x35\x2e\x32\x36\x34\x30\x32\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x36\x37\x32\x2e\x37\ +\x39\x37\x33\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x32\x32\x35\x2e\x32\x36\x34\x30\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x66\x79\x3d\x22\x36\x37\x32\x2e\x37\x39\x37\x33\x36\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x33\x34\x2e\x33\ +\x34\x35\x31\x38\x38\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x37\x30\x38\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\x31\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\ +\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x37\x31\x32\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\ +\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\ +\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ +\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x38\ +\x30\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\ +\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\ +\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\ +\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\ +\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x36\x34\ +\x2d\x30\x2d\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x33\x38\x36\x36\x2d\x35\x2d\x37\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x36\ +\x31\x39\x63\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x38\x2d\x37\x2d\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ +\x33\x37\x39\x63\x66\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\ +\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x33\ +\x37\x37\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x33\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ +\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x61\x61\x30\x30\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ +\x33\x33\x38\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x66\x61\x66\x66\x32\x62\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x33\x38\x36\x34\x2d\x30\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x36\x2d\x35\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x30\x36\x31\x39\x63\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x36\x38\x2d\x37\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x33\x37\x39\x63\x66\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\ +\x69\x76\x65\x33\x39\x30\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\ +\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\ +\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\ +\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\ +\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\ +\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x35\x30\x34\x38\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ +\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x62\ +\x6c\x61\x63\x6b\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x79\x3a\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x35\x30\x35\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\ +\x70\x35\x30\x35\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x35\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x61\x63\x6b\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x62\x6c\x61\x63\x6b\x3b\x73\ +\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x3b\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ +\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x73\x74\x6f\x70\x35\x30\x35\x32\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x33\x38\x34\x31\x2d\x30\x2d\x33\x22\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x34\x33\x2d\x31\x2d\ +\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ +\x72\x3a\x23\x30\x36\x31\x39\x63\x30\x3b\x73\x74\x6f\x70\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\x38\x34\x35\x2d\ +\x30\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x33\x37\x39\x63\x66\x62\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\ +\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\ +\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x31\x31\x34\x2e\x35\ +\x36\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\ +\x32\x30\x2e\x38\x39\x32\x30\x39\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x72\x3d\x22\x35\x2e\x32\x35\x36\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x79\x3d\x22\x31\x31\x34\x2e\x35\x36\x38\x34\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x32\x30\x2e\x38\ +\x39\x32\x30\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x61\x69\x67\x72\x64\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x35\x36\x36\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x46\x30\x46\x30\x46\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x31\x35\x35\x36\x38\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x39\x61\x39\x61\x39\x61\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\ +\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\ +\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\ +\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ +\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x66\x79\x3d\x22\x36\x34\x2e\x35\x36\x37\x39\x30\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x32\x30\x2e\x38\x39\x32\ +\x30\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x35\ +\x2e\x32\x35\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\x3d\ +\x22\x36\x34\x2e\x35\x36\x37\x39\x30\x32\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x63\x78\x3d\x22\x32\x30\x2e\x38\x39\x32\x30\x39\x39\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x61\x69\x67\ +\x72\x64\x33\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ +\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\ +\x74\x6f\x70\x31\x35\x35\x37\x33\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x46\x30\x46\x30\x46\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x31\x35\x35\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x39\x61\x39\x61\x39\x61\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\ +\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\ +\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x61\x64\x69\x61\x6c\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x31\x35\x36\x36\x32\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\ +\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\ +\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x31\x35\x36\x36\x34\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\ +\x6f\x6c\x6f\x72\x3a\x23\x66\x38\x66\x38\x66\x38\x3b\x73\x74\x6f\ +\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\ +\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ +\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\x30\x30\x30\x30\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\ +\x74\x6f\x70\x31\x35\x36\x36\x36\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\ +\x22\x38\x36\x2e\x37\x30\x38\x34\x35\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x66\x79\x3d\x22\x33\x35\x2e\x37\x33\x36\x39\x31\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\x33\x33\x2e\x39\ +\x36\x36\x36\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x79\ +\x3d\x22\x33\x35\x2e\x37\x33\x36\x39\x31\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x63\x78\x3d\x22\x33\x33\x2e\x39\x36\x36\x36\x37\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ +\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\ +\x72\x69\x78\x28\x30\x2e\x39\x36\x30\x34\x39\x32\x39\x37\x2c\x30\ +\x2c\x30\x2c\x31\x2e\x30\x34\x31\x31\x33\x32\x2c\x2d\x35\x32\x2e\ +\x31\x34\x34\x32\x34\x39\x2c\x2d\x37\x30\x32\x2e\x33\x33\x31\x35\ +\x38\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x34\x34\x35\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x32\x35\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x32\x35\x39\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\ +\x61\x66\x61\x66\x61\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\x36\x30\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x62\x62\x62\x62\ +\x62\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x2e\x30\ +\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\x36\x31\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x72\x61\x64\x69\ +\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x72\x3d\x22\x33\x37\x2e\x37\x35\x31\x37\x31\x33\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x66\x79\x3d\x22\x33\x2e\x37\x35\x36\ +\x31\x32\x38\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\ +\x22\x38\x2e\x38\x32\x34\x34\x31\x39\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x63\x79\x3d\x22\x33\x2e\x37\x35\x36\x31\x32\x38\x35\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x63\x78\x3d\x22\x38\x2e\x38\x32\ +\x34\x34\x31\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x36\x38\x32\x37\x32\x39\ +\x37\x2c\x30\x2c\x30\x2c\x31\x2e\x30\x33\x32\x37\x36\x37\x2c\x2d\ +\x34\x38\x2e\x37\x39\x30\x36\x39\x39\x2c\x2d\x37\x30\x31\x2e\x36\ +\x38\x35\x31\x33\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\ +\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\ +\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x34\x34\x35\x34\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x32\x36\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\ +\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x32\x36\x39\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\ +\x3a\x23\x61\x33\x61\x33\x61\x33\x3b\x73\x74\x6f\x70\x2d\x6f\x70\ +\x61\x63\x69\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x30\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\ +\x37\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x34\ +\x63\x34\x63\x34\x63\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\ +\x74\x79\x3a\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x3b\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x31\x2e\x30\x30\x30\x30\x30\x30\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x32\x37\x31\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\ +\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ +\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x34\x39\x34\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\ +\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\ +\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\ +\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\ +\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ +\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\ +\x65\x72\x73\x70\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x30\x39\x35\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\ +\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x35\x62\x66\x66\x3b\x73\x74\ +\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ +\x73\x74\x6f\x70\x34\x30\x39\x37\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\ +\x6c\x6f\x72\x3a\x23\x63\x31\x65\x33\x66\x37\x3b\x73\x74\x6f\x70\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\ +\x6f\x70\x34\x30\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ +\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\ +\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\ +\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ +\x65\x35\x30\x32\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\ +\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\ +\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\ +\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\ +\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\ +\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ +\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\ +\x76\x65\x35\x30\x37\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\ +\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\ +\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\ +\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\ +\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\ +\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\ +\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\ +\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\ +\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x34\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x35\x33\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x33\x39\x34\x2e\x31\x35\ +\x37\x38\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\ +\x31\x38\x35\x2e\x31\x33\x30\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x32\x3d\x22\x34\x33\x34\x2e\x37\x33\x39\x34\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x31\x34\x30\x2e\x32\ +\x32\x37\x33\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ +\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\ +\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\ +\x34\x32\x33\x31\x38\x32\x36\x2c\x30\x2c\x30\x2c\x30\x2e\x39\x34\ +\x32\x33\x31\x38\x32\x36\x2c\x32\x33\x2e\x37\x32\x37\x35\x34\x39\ +\x2c\x38\x2e\x38\x32\x36\x32\x35\x33\x36\x29\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\ +\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x34\ +\x37\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x32\x65\x38\x32\ +\x30\x37\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x34\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x35\x32\x66\x66\x30\x30\ +\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ +\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x35\x31\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x32\x3d\x22\x31\x34\x30\x2e\x32\x32\x37\x33\x31\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x34\x33\x34\x2e\x37\ +\x33\x39\x34\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\ +\x22\x31\x38\x35\x2e\x31\x33\x30\x34\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x33\x39\x34\x2e\x31\x35\x37\x38\x34\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\ +\x78\x28\x30\x2e\x39\x34\x32\x33\x31\x38\x32\x36\x2c\x30\x2c\x30\ +\x2c\x30\x2e\x39\x34\x32\x33\x31\x38\x32\x36\x2c\x32\x33\x2e\x37\ +\x32\x37\x35\x34\x39\x2c\x38\x2e\x38\x32\x36\x32\x35\x33\x36\x29\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\ +\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\ +\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x35\x30\x38\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x34\x37\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\ +\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x20\ +\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\ +\x69\x76\x65\x35\x31\x34\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\ +\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\ +\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\ +\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\ +\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\ +\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\ +\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\x20\x20\ +\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\ +\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\x61\x73\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\ +\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\x20\x20\ +\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\ +\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\ +\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\ +\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\ +\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\ +\x22\x35\x2e\x35\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x78\x3d\x22\x2d\x32\x2e\x38\x31\x38\x31\x38\ +\x31\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x63\x79\x3d\x22\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\ +\x6c\x61\x79\x65\x72\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\ +\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\ +\x3d\x22\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\ +\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x33\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x37\x30\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\ +\x22\x2d\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x2d\x38\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\ +\x69\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\ +\x22\x31\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\ +\x74\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\ +\x64\x61\x74\x61\x33\x36\x31\x37\x22\x3e\x0a\x20\x20\x20\x20\x3c\ +\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ +\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\ +\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\ +\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\ +\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\ +\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\ +\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\x74\ +\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x20\ +\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\ +\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\ +\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\x3c\ +\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\ +\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\ +\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\x22\ +\x3e\x0a\x20\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\ +\x6c\x61\x74\x65\x28\x2d\x32\x35\x39\x2e\x38\x35\x32\x30\x37\x2c\ +\x2d\x31\x33\x32\x2e\x37\x38\x33\x34\x39\x29\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x67\x34\x36\x37\x30\x22\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x72\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x72\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x79\x3d\x22\x31\x37\x39\x2e\x35\x37\x31\x34\ +\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\ +\x38\x30\x2e\x37\x31\x34\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x39\x2e\x32\x37\x39\ +\x32\x32\x31\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\ +\x69\x64\x74\x68\x3d\x22\x32\x34\x2e\x36\x38\x38\x33\x31\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\ +\x63\x74\x34\x32\x35\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x66\x66\x66\x66\ +\x66\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\ +\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\ +\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\ +\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ +\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ +\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\ +\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\ +\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\ +\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\ +\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\ +\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\ +\x6d\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x72\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x72\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x79\x3d\x22\x31\x35\x31\x2e\x35\x37\x31\x34\x34\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\x38\x30\x2e\x37\x31\ +\x34\x32\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\ +\x69\x67\x68\x74\x3d\x22\x39\x2e\x36\x34\x32\x38\x35\x37\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x32\x34\x2e\x36\x38\x38\x33\x31\x31\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x34\x32\x35\ +\x38\x2d\x31\x2d\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\ +\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x30\x30\x34\x32\x66\ +\x66\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\ +\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\ +\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\ +\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\ +\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\ +\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\ +\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\ +\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\ +\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\ +\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\ +\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\ +\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\ +\x75\x6c\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\ +\x3c\x72\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\ +\x79\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\ +\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\ +\x3d\x22\x31\x36\x35\x2e\x33\x38\x39\x36\x32\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x32\x38\x35\x2e\x38\x30\x35\ +\x32\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x39\x2e\x36\x34\x32\x38\x35\x37\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\ +\x32\x34\x2e\x33\x32\x34\x36\x37\x35\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x34\x32\x35\x38\ +\x2d\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ +\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\ +\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x30\x30\x34\x32\x66\x66\x3b\x66\ +\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\ +\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\ +\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\ +\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\ +\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ +\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\ +\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\ +\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\ +\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\ +\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\ +\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\ +\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\ +\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\ +\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x72\x65\ +\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x79\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x78\x3d\x22\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\x31\ +\x33\x37\x2e\x35\x37\x31\x34\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x78\x3d\x22\x32\x36\x36\x2e\x37\x31\x34\x32\x39\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x39\x2e\x36\x34\x32\x38\x35\x37\x36\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x33\x32\x2e\ +\x31\x34\x32\x38\x35\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x34\x32\x35\x38\x2d\x31\x2d\ +\x37\x2d\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\ +\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\ +\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\ +\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\ +\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\ +\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ +\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\ +\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\ +\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\ +\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\ +\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\ +\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\ +\x61\x74\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\ +\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\ +\x22\x63\x63\x63\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x35\x30\x39\x38\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x37\x31\x2e\x30\ +\x37\x31\x34\x33\x2c\x32\x30\x37\x2e\x34\x32\x38\x35\x37\x20\x30\ +\x2c\x33\x37\x2e\x31\x34\x32\x38\x36\x20\x39\x2e\x32\x38\x35\x37\ +\x31\x2c\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ +\x79\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\ +\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ +\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ +\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\ +\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\ +\x28\x30\x2c\x2d\x36\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\ +\x73\x6c\x61\x74\x65\x28\x30\x2c\x2d\x36\x30\x29\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x35\ +\x31\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\ +\x22\x6d\x20\x32\x38\x30\x2e\x38\x39\x32\x38\x36\x2c\x32\x31\x36\ +\x2e\x37\x31\x34\x32\x39\x20\x2d\x39\x2e\x36\x34\x32\x38\x36\x2c\ +\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ +\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\ +\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\ +\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\ +\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x66\x69\x6c\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\ +\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x77\x69\x64\x74\x68\x3a\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\ +\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\ +\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\ +\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ +\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x32\x37\x35\x2e\ +\x36\x31\x36\x38\x38\x2c\x31\x35\x36\x2e\x31\x35\x35\x38\x34\x20\ +\x30\x2c\x31\x34\x2e\x32\x33\x33\x37\x37\x20\x39\x2e\x32\x38\x35\ +\x37\x31\x2c\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ +\x64\x3d\x22\x70\x61\x74\x68\x33\x30\x35\x30\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\ +\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ +\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ +\x3c\x2f\x67\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\ +\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ +\x74\x68\x3a\x31\x70\x78\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x6d\x69\x74\x65\x72\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x6d\x61\x72\x6b\x65\x72\x2d\x73\x74\x61\x72\x74\x3a\x75\ +\x72\x6c\x28\x23\x41\x72\x72\x6f\x77\x31\x4d\x73\x74\x61\x72\x74\ +\x29\x3b\x6d\x61\x72\x6b\x65\x72\x2d\x65\x6e\x64\x3a\x75\x72\x6c\ +\x28\x23\x41\x72\x72\x6f\x77\x31\x4d\x65\x6e\x64\x29\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x35\x32\x2e\x33\x36\ +\x33\x36\x33\x36\x2c\x32\x34\x20\x63\x20\x37\x2e\x31\x39\x38\x35\ +\x32\x39\x2c\x30\x2e\x34\x32\x30\x35\x30\x32\x20\x38\x2e\x36\x36\ +\x38\x34\x35\x33\x2c\x2d\x31\x2e\x38\x38\x36\x36\x36\x33\x20\x38\ +\x2e\x37\x32\x37\x32\x37\x33\x2c\x36\x2e\x31\x38\x31\x38\x31\x38\ +\x20\x30\x2e\x30\x35\x38\x38\x32\x2c\x38\x2e\x30\x36\x38\x34\x38\ +\x31\x20\x2d\x30\x2e\x38\x30\x31\x32\x30\x34\x2c\x36\x2e\x38\x37\ +\x32\x37\x33\x38\x20\x2d\x37\x2e\x38\x31\x38\x31\x38\x32\x2c\x36\ +\x2e\x37\x32\x37\x32\x37\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x38\x32\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ +\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\ +\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\ +\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\ +\x22\x63\x7a\x63\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\ +\x3c\x2f\x73\x76\x67\x3e\x0a\ +" + +qt_resource_name = "\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x02\ +\x00\x00\x07\xb9\ +\x00\x75\ +\x00\x69\ +\x00\x15\ +\x06\xfb\x4c\x79\ +\x00\x6f\ +\x00\x70\x00\x65\x00\x6e\x00\x73\x00\x63\x00\x61\x00\x64\x00\x70\x00\x72\x00\x65\x00\x66\x00\x73\x00\x2d\x00\x62\x00\x61\x00\x73\ +\x00\x65\x00\x2e\x00\x75\x00\x69\ +\x00\x1b\ +\x0c\xe7\x1b\x47\ +\x00\x4f\ +\x00\x70\x00\x65\x00\x6e\x00\x53\x00\x43\x00\x41\x00\x44\x00\x5f\x00\x43\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x43\x00\x6f\x00\x64\ +\x00\x65\x00\x53\x00\x68\x00\x61\x00\x70\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x1a\ +\x0e\xdc\xc4\xa7\ +\x00\x4f\ +\x00\x70\x00\x65\x00\x6e\x00\x53\x00\x43\x00\x41\x00\x44\x00\x5f\x00\x52\x00\x65\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x53\x00\x75\ +\x00\x62\x00\x74\x00\x72\x00\x65\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x18\ +\x08\x6c\x46\x27\ +\x00\x70\ +\x00\x72\x00\x65\x00\x66\x00\x65\x00\x72\x00\x65\x00\x6e\x00\x63\x00\x65\x00\x73\x00\x2d\x00\x6f\x00\x70\x00\x65\x00\x6e\x00\x73\ +\x00\x63\x00\x61\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x1f\ +\x0b\x74\x72\x47\ +\x00\x4f\ +\x00\x70\x00\x65\x00\x6e\x00\x53\x00\x43\x00\x41\x00\x44\x00\x5f\x00\x52\x00\x65\x00\x66\x00\x69\x00\x6e\x00\x65\x00\x53\x00\x68\ +\x00\x61\x00\x70\x00\x65\x00\x46\x00\x65\x00\x61\x00\x74\x00\x75\x00\x72\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x1a\ +\x0b\xab\x18\xe7\ +\x00\x4f\ +\x00\x70\x00\x65\x00\x6e\x00\x53\x00\x43\x00\x41\x00\x44\x00\x5f\x00\x52\x00\x65\x00\x70\x00\x6c\x00\x61\x00\x63\x00\x65\x00\x4f\ +\x00\x62\x00\x6a\x00\x65\x00\x63\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +" + +qt_resource_struct = "\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\ +\x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x03\ +\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x99\xb7\ +\x00\x00\x00\xf6\x00\x00\x00\x00\x00\x01\x00\x01\x4d\x0b\ +\x00\x00\x01\x3a\x00\x00\x00\x00\x00\x01\x00\x01\xc3\xe8\ +\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x44\x83\ +\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x90\ +\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/src/Mod/OpenSCAD/Resources/OpenSCAD.qrc b/src/Mod/OpenSCAD/Resources/OpenSCAD.qrc new file mode 100644 index 000000000..d2c2d3e9b --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/OpenSCAD.qrc @@ -0,0 +1,10 @@ + + + icons/preferences-openscad.svg + icons/OpenSCAD_ColorCodeShape.svg + icons/OpenSCAD_RefineShapeFeature.svg + icons/OpenSCAD_ReplaceObject.svg + icons/OpenSCAD_RemoveSubtree.svg + ui/openscadprefs-base.ui + + diff --git a/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ColorCodeShape.svg b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ColorCodeShape.svg new file mode 100644 index 000000000..dffb727f3 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ColorCodeShape.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RefineShapeFeature.svg b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RefineShapeFeature.svg new file mode 100644 index 000000000..a46396be3 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RefineShapeFeature.svg @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RemoveSubtree.svg b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RemoveSubtree.svg new file mode 100644 index 000000000..b75aa6046 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_RemoveSubtree.svg @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ReplaceObject.svg b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ReplaceObject.svg new file mode 100644 index 000000000..9ef32ad30 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/icons/OpenSCAD_ReplaceObject.svg @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/OpenSCAD/Resources/icons/preferences-openscad.svg b/src/Mod/OpenSCAD/Resources/icons/preferences-openscad.svg new file mode 100644 index 000000000..db7603038 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/icons/preferences-openscad.svg @@ -0,0 +1,1368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/OpenSCAD/Resources/ui/openscadprefs-base.ui b/src/Mod/OpenSCAD/Resources/ui/openscadprefs-base.ui new file mode 100644 index 000000000..a3176d0f0 --- /dev/null +++ b/src/Mod/OpenSCAD/Resources/ui/openscadprefs-base.ui @@ -0,0 +1,547 @@ + + + Gui::Dialog::DlgSettingsOpenSCAD + + + + 0 + 0 + 575 + 629 + + + + General settings + + + + 6 + + + 9 + + + + + General OpenSCAD Settings + + + + + + + + OpenSCAD executable + + + + + + + + 300 + 0 + + + + The path to the OpenSCAD executeable + + + openscadexecutable + + + Mod/OpenSCAD + + + + + + + + + + + + OpenSCAD import + + + + + + + + If this is checked, Features will claim thier children in the tree view + + + Use ViewProvider in Tree View + + + useViewProviderTree + + + Mod/OpenSCAD + + + + + + + + + + + If this is checked, Multmatrix Object will be Parametric + + + Use Multmatrix Feature + + + useMultmatrixFeature + + + Mod/OpenSCAD + + + + + + + + + + + The maximum number of faces of a polygon, prism or frustum. If fn is greater than this value the object is considered to be a circular. Set to 0 for no limit + + + Maximum number of faces for polygons (fn) + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + The maximum number of faces of a polygon, prism or frustum. If fn is greater than this value the object is considered to be a circular. Set to 0 for no limit + + + 0 + + + useMaxFN + + + Mod/OpenSCAD + + + + + + + + + + + Debug: Register filetype to prototype importer + + + Debug: Register filetype to prototype importer + + + debugRegisterPrototype + + + Mod/OpenSCAD + + + + + + + + + + + + + + + OpenSCAD export + + + + + + + + maximum fragment size + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + minimum angle for a fragment + + + angular (fa) + + + + + + + minimum angle for a fragment + + + ° + + + 0.010000000000000 + + + 360.000000000000000 + + + 12.000000000000000 + + + exportFa + + + Mod/OpenSCAD + + + + + + + Qt::Vertical + + + + + + + minimum size of a fragment + + + size (fs) + + + + + + + true + + + + 0 + 0 + + + + + 0 + 0 + + + + minimum size of a fragment + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + mm + + + 0.010000000000000 + + + 10000.000000000000000 + + + 2.000000000000000 + + + exportFs + + + Mod/OpenSCAD + + + + + + + + + + + convexity + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 10 + + + exportConvexity + + + Mod/OpenSCAD + + + + + + + + + + + Mesh fallback + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Maxium Length + + + MaxLength + + + + + + + Maximum Length + + + 0.000000000000000 + + + 1000.000000000000000 + + + 1.000000000000000 + + + meshmaxlength + + + Mod/OpenSCAD + + + + + + + Maximum Area + + + maxArea + + + + + + + Maximum Area + + + 0.000000000000000 + + + 1000.000000000000000 + + + 0.000000000000000 + + + meshmaxarea + + + Mod/OpenSCAD + + + + + + + Local Length + + + 0.000000000000000 + + + 1000.000000000000000 + + + 0.000000000000000 + + + meshlocallen + + + Mod/OpenSCAD + + + + + + + Local Length + + + localLen + + + + + + + Deflection + + + 0.000000000000000 + + + 1000.000000000000000 + + + 0.000000000000000 + + + meshdeflection + + + Mod/OpenSCAD + + + + + + + Deflection + + + deflection + + + + + + + Triangulation settings + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + qPixmapFromMimeSource + + + Gui::FileChooser + QWidget +
Gui/FileDialog.h
+
+ + Gui::PrefFileChooser + Gui::FileChooser +
Gui/PrefWidgets.h
+
+ + Gui::PrefSpinBox + QSpinBox +
Gui/PrefWidgets.h
+
+ + Gui::PrefCheckBox + QCheckBox +
Gui/PrefWidgets.h
+
+ + Gui::PrefDoubleSpinBox + QDoubleSpinBox +
Gui/PrefWidgets.h
+
+
+ + +
diff --git a/src/Mod/OpenSCAD/TODO b/src/Mod/OpenSCAD/TODO new file mode 100644 index 000000000..78e65cec1 --- /dev/null +++ b/src/Mod/OpenSCAD/TODO @@ -0,0 +1,5 @@ +Makefiles (get the python files included) +Copyright notices (Ply is BSD, everything Keith did is GPL, most of the stuff from freecad is LGPL) +Make filenames unique, e.g. prepepend module name +Add a gui command for the Refine Shape feature. +Add a gui command for subtractfaces2. diff --git a/src/Mod/OpenSCAD/colorcodeshapes.py b/src/Mod/OpenSCAD/colorcodeshapes.py new file mode 100644 index 000000000..c6fb19203 --- /dev/null +++ b/src/Mod/OpenSCAD/colorcodeshapes.py @@ -0,0 +1,81 @@ +import FreeCAD +def shapedict(shapelst): + return dict([(shape.hashCode(),shape) for shape in shapelst]) + +def shapeset(shapelst): + return set([shape.hashCode() for shape in shapelst]) + +def mostbasiccompound(comp): + '''searches fo the most basic shape in a Compound''' + solids=shapeset(comp.Solids) + shells=shapeset(comp.Shells) + faces=shapeset(comp.Faces) + wires=shapeset(comp.Wires) + edges=shapeset(comp.Edges) + vertexes=shapeset(comp.Vertexes) + #FreeCAD.Console.PrintMessage('%s\n' % (str((len(solids),len(shells),len(faces),len(wires),len(edges),len(vertexes))))) + for shape in comp.Solids: + shells -= shapeset(shape.Shells) + faces -= shapeset(shape.Faces) + wires -= shapeset(shape.Wires) + edges -= shapeset(shape.Edges) + vertexes -= shapeset(shape.Vertexes) + for shape in comp.Shells: + faces -= shapeset(shape.Faces) + wires -= shapeset(shape.Wires) + edges -= shapeset(shape.Edges) + vertexes -= shapeset(shape.Vertexes) + for shape in comp.Faces: + wires -= shapeset(shape.Wires) + edges -= shapeset(shape.Edges) + vertexes -= shapeset(shape.Vertexes) + for shape in comp.Wires: + edges -= shapeset(shape.Edges) + vertexes -= shapeset(shape.Vertexes) + for shape in comp.Edges: + vertexes -= shapeset(shape.Vertexes) + #FreeCAD.Console.PrintMessage('%s\n' % (str((len(solids),len(shells),len(faces),len(wires),len(edges),len(vertexes))))) + #return len(solids),len(shells),len(faces),len(wires),len(edges),len(vertexes) + if vertexes: + return "Vertex" + elif edges: + return "Edge" + elif wires: + return "Wire" + elif faces: + return "Face" + elif shells: + return "Shell" + elif solids: + return "Solid" + +def colorcodeshapes(objs): + shapecolors={ + "Compound":(0.3,0.3,0.4), + "CompSolid":(0.1,0.5,0.0), + "Solid":(0.0,0.8,0.0), + "Shell":(0.8,0.0,0.0), + "Face":(0.6,0.6,0.0), + "Wire":(0.1,0.1,0.1), + "Edge":(1.0,1.0,1.0), + "Vertex":(8.0,8.0,8.0), + "Shape":(0.0,0.0,1.0), + None:(0.0,0.0,0.0)} + + for obj in objs: + if hasattr(obj,'Shape'): + try: + if obj.Shape.isNull(): + continue + if not obj.Shape.isValid(): + color=(1.0,0.4,0.4) + else: + st=obj.Shape.ShapeType + if st in ["Compound","CompSolid"]: + st = mostbasiccompound(obj.Shape) + color=shapecolors[st] + obj.ViewObject.ShapeColor = color + except: + raise + +#colorcodeshapes(App.ActiveDocument.Objects) diff --git a/src/Mod/OpenSCAD/expandplacements.py b/src/Mod/OpenSCAD/expandplacements.py new file mode 100644 index 000000000..b258c499a --- /dev/null +++ b/src/Mod/OpenSCAD/expandplacements.py @@ -0,0 +1,78 @@ +import FreeCAD +from OpenSCADFeatures import * +from OpenSCADUtils import isspecialorthogonalpython,isspecialorthogonal +import replaceobj + +def likeprimitive(obj,extrusion=False): + '''we can't push the matrix transformation further down''' + return not obj.OutList or obj.isDerivedFrom('Part::Extrusion')\ + or extrusion and (obj.isDerivedFrom('Part::Revolution') \ + or obj.isDerivedFrom('Part::FeaturePython')) or \ + not obj.isDerivedFrom('Part::Feature') + +def expandplacementsmatrix(obj,matrix): + '''expand afine transformation down the feature tree''' + ownmatrix=matrix.multiply(obj.Placement.toMatrix()) + if obj.isDerivedFrom('Part::Feature') and \ + isinstance(obj.Proxy,MatrixTransform): + innermatrix=ownmatrix.multiply(obj.Matrix) + if likeprimitive(obj.Base,True): #this matrix is needed + obj.Placement=FreeCAD.Placement() + obj.Matrix = innermatrix + else: #the inner object is not a primitive + expandplacementsmatrix(obj.Base,innermatrix) + #remove the matrix object + for parent in obj.Base.InList: + replaceobj.replaceobj(parent,obj,obj.Base) + out.Document.removeObject(obj.Name) + elif likeprimitive(obj,True): + #if isspecialorthogonalpython(fcsubmatrix(ownmatrix)): + if isspecialorthogonal(ownmatrix): + obj.Placement=FreeCAD.Placement() + #this should never happen unless matrices cancel out + obj.Placement=FreeCAD.Placement(ownmatrix) + else: + newobj=doc.addObject("Part::FeaturePython",'exp_trans') + MatrixTransform(newobj,ownmatrix,obj) #This object is not mutable GUI + ViewProviderTree(newobj.ViewObject) + for parent in obj.InList: + replaceobj.replaceobj(parent,obj,newobj) # register the new object in the feature tree + obj.Placement=FreeCAD.Placement() + else: #not a primitive + for outobj in obj.OutList: + if outobj.isDerivedFrom('Part::Feature') and \ + isinstance(obj.Proxy,MatrixTransform): + newmatrix = ownmatrix.multiply(obj.Matrix).multiply(\ + outobj.Base.Placement.toMatrix()) + if likeprimitive(outobj.Base,True): #child of is like primtitive + outobj.Matrix = newmatrix + outobj.Base.Placement=FreeCAD.Placement() + else: #remove the MatrixTranformation + plainobj=outobj.Base + for parent in outobj.InList: + replaceobj.replaceobj(parent,outobj,plainobj) + outobj.Document.removeObject(outobj.Name) + expandplacementsmatrix(outobj,newmatrix) + else: + expandplacementsmatrix(outobj,ownmatrix) + obj.Placement=FreeCAD.Placement() + + +def expandplacements(obj,placement): + ownplacement=placement.multiply(obj.Placement) + if obj.isDerivedFrom('Part::FeaturePython') and isinstance(obj.Proxy,MatrixTransform): + #expandplacementsmatrix(obj,ownplacement.toMatrix()) + expandplacementsmatrix(obj,placement.toMatrix()) + elif likeprimitive(obj,False): + obj.Placement=ownplacement + else: + for outobj in obj.OutList: + if obj.isDerivedFrom('Part::Extrusion'): + obj.Dir=ownplacement.Rotation.multVec(obj.Dir) + elif obj.isDerivedFrom('Part::Revolution'): + obj.Axis=ownplacement.Rotation.multVec(obj.Axis) + #obj.Base=ownplacement.Rotation.multVec(obj.Base) + expandplacements(outobj,ownplacement) + obj.Placement=FreeCAD.Placement() + +#expandplacements(rootobj,FreeCAD.Placement()) diff --git a/src/Mod/OpenSCAD/exportCSG.py b/src/Mod/OpenSCAD/exportCSG.py new file mode 100644 index 000000000..13878ad0a --- /dev/null +++ b/src/Mod/OpenSCAD/exportCSG.py @@ -0,0 +1,260 @@ + +#*************************************************************************** +#* * +#* Copyright (c) 2012 Keith Sloan * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#* Acknowledgements : * +#* * +#* Thanks to shoogen on the FreeCAD forum for programming advice * +#* and some code. * +#* * +#*************************************************************************** +__title__="FreeCAD OpenSCAD Workbench - CSG exporter Version 0.01c" +__author__ = "Keith Sloan " +__url__ = ["http://www.sloan-home.co.uk/Export/Export.html"] + +import FreeCAD, os, Part, math +from FreeCAD import Vector + +try: import FreeCADGui +except ValueError: gui = False +else: gui = True + +#*************************************************************************** +# Tailor following to your requirements ( Should all be strings ) * +#fafs = '$fa = 12, $fs = 2' +#convexity = 'convexity = 10' +params = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD") +fa = params.GetFloat('exportFa',12.0) +fs = params.GetFloat('exportFs',2.0) +conv = params.GetInt('exportConvexity',10) +fafs = '$fa = %f, $fs = %f' % (fa,fs) +convexity = 'convexity = %d' % conv +#*************************************************************************** +if open.__module__ == '__builtin__': + pythonopen = open + +def check_center(ob): + # Only say center = false if no rotation and no displacement + if ob.Placement.isNull(): + return 'false' + return 'true' + +def center(b): + if b == 0 : + return 'false' + return 'true' + +def check_multmatrix(csg,ob,x,y,z): + v = FreeCAD.Vector(0,0,1) + b = FreeCAD.Vector(x,y,z) + if ( ob.Placement.Base == FreeCAD.Vector(0,0,0)): + return 0 # center = false no mm + elif not ob.Placement.isNull(): + print "Output Multmatrix" + m = ob.Placement.toMatrix() + # adjust position for center displacments + csg.write("multmatrix([["+str(m.A11)+", "+str(m.A12)+", "+str(m.A13)+", "+str(m.A14)+"], ["\ + +str(m.A21)+", "+str(m.A22)+", "+str(m.A23)+", "+str(m.A24)+"], ["\ + +str(m.A31)+", "+str(m.A32)+", "+str(m.A33)+", "+str(m.A34)+"], [ 0, 0, 0, 1]]){\n") + return 1 # center = true and mm + return 2 # center = true and no mm + +def mesh2polyhedron(mesh): + pointstr=','.join(['[%f,%f,%f]' % tuple(vec) for vec in mesh.Topology[0]]) + trianglestr=','.join(['[%d,%d,%d]' % tuple(tri) for tri in mesh.Topology[1]]) + return 'polyhedron ( points = [%s], triangles = [%s]);' % (pointstr,trianglestr) + +def vector2d(v): + return [v[0],v[1]] + +def vertexs2polygon(vertex): + pointstr=','.join(['[%f, %f]' % tuple(vector2d(v.Point)) for v in vertex]) + return 'polygon ( points = [%s], paths = undef, convexity = 1);}' % pointstr + +def shape2polyhedron(shape): + import MeshPart +fa = params.GetFloat('exportFa',12.0) + return mesh2polyhedron(MeshPart.meshFromShape(shape,params.GetFloat(\ + 'meshmaxlength',1.0), params.GetFloat('meshmaxarea',0.0),\ + params.GetFloat('meshlocallen',0.0),\ + params.GetFloat('meshdeflection',0.0))) + +def process_object(csg,ob): + + print "Placement" + print "Pos : "+str(ob.Placement.Base) + print "axis : "+str(ob.Placement.Rotation.Axis) + print "angle : "+str(ob.Placement.Rotation.Angle) + + if ob.Type == "Part::Sphere" : + print "Sphere Radius : "+str(ob.Radius) + check_multmatrix(csg,ob,0,0,0) + global fafs + csg.write("sphere($fn = 0, "+fafs+", r = "+str(ob.Radius)+");\n") + + elif ob.Type == "Part::Box" : + print "cube : ("+ str(ob.Length)+","+str(ob.Width)+","+str(ob.Height)+")" + mm = check_multmatrix(csg,ob,-ob.Length/2,-ob.Width/2,-ob.Height/2) + csg.write("cube (size = ["+str(ob.Length)+", "+str(ob.Width)+", "+str(ob.Height)+"], center = "+center(mm)+");\n") + if mm == 1 : csg.write("}\n") + + elif ob.Type == "Part::Cylinder" : + print "cylinder : Height "+str(ob.Height)+ " Radius "+str(ob.Radius) + mm = check_multmatrix(csg,ob,0,0,-ob.Height/2) + global fafs + csg.write("cylinder($fn = 0, "+fafs+", h = "+str(ob.Height)+ ", r1 = "+str(ob.Radius)+\ + ", r2 = " + str(ob.Radius) + ", center = "+center(mm)+");\n") + if mm == 1 : csg.write("}\n") + + elif ob.Type == "Part::Cone" : + print "cone : Height "+str(ob.Height)+ " Radius1 "+str(ob.Radius1)+" Radius2 "+str(ob.Radius2) + mm = check_multmatrix(csg,ob,0,0,-ob.Height/2) + global fafs + csg.write("cylinder($fn = 0, "+fafs+", h = "+str(ob.Height)+ ", r1 = "+str(ob.Radius1)+\ + ", r2 = "+str(ob.Radius2)+", center = "+center(mm)+");\n") + if mm == 1 : csg.write("}\n") + + elif ob.Type == "Part::Torus" : + print "Torus" + print ob.Radius1 + print ob.Radius2 + if ob.Angle3 == 360.00 : + mm = check_multmatrix(csg,ob,0,0,0) + global fafs + csg.write("rotate_extrude("+convexity+", $fn = 0, "+fafs+")\n") + csg.write("multmatrix([[1, 0, 0, "+str(ob.Radius1)+"], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]])\n") + csg.write("circle($fn = 0, "+fafs+", r = "+str(ob.Radius2)+");\n") + if mm == 1 : csg.write("}\n") + else : # Cannot convert to rotate extrude so best effort is polyhedron + csg.write('%s\n' % shape2polyhedron(ob.Shape)) + + elif ob.Type == "Part::Extrusion" : + print "Extrusion" + print ob.Base + print ob.Base.Name + #if ( ob.Base == "Part::FeaturePython" and ob.Base.Name == "Polygon") : + if ob.Base.Name == "Polygon" : + f = str(ob.Base.FacesNumber) + r = str(ob.Base.Radius) + h = str(ob.Dir[2]) + print "Faces : " + f + print "Radius : " + r + print "Height : " + h + mm = check_multmatrix(csg,ob,0,0,-float(h)/2) + global fafs + csg.write("cylinder($fn = "+f+", "+fafs+", h = "+h+", r1 = "+r+\ + ", r2 = "+r+", center = "+center(mm)+");\n") + if mm == 1: csg.write("}\n") + + elif ob.Base.Name == "circle" : + r = str(ob.Base.Radius) + h = str(ob.Dir[2]) + print "Radius : " + r + print "Height : " + h + mm = check_multmatrix(csg,ob,0,0,-float(h)/2) + global fafs + csg.write("cylinder($fn = 0, "+fafs+", h = "+h+", r1 = "+r+\ + ", r2 = "+r+", center = "+center(mm)+");\n") + if mm == 1: csg.write("}\n") + + elif ob.Base.Name == "Wire" : + print "Wire extrusion" + print ob.Base + mm = check_multmatrix(csg,ob,0,0,0) + global fafs + csg.write("linear_extrude(height = "+str(ob.Dir[2])+", center = "+center(mm)+", "+convexity+", twist = 0, slices = 2, $fn = 0, "+fafs+")\n{\n") + csg.write(vertexs2polygon(ob.Base.Shape.Vertexes)) + if mm == 1: csg.write("}\n") + + elif ob.Base.Name == "square" : + mm = check_multmatrix(csg,ob,0,0,0) + global fafs + csg.write("linear_extrude(height = "+str(ob.Dir[2])+", center = true, "+convexity+", twist = 0, slices = 2, $fn = 0, "+fafs+")\n{\n") + csg.write("square (size = ["+str(ob.Base.Length)+", "+str(ob.Base.Width)+"],center = "+center(mm)+";\n}\n") + if mm == 1: csg.write("}\n") + + elif ob.Type == "Part::Cut" : + print "Cut" + csg.write("difference() {\n") + process_object(csg,ob.Base) + process_object(csg,ob.Tool) + csg.write("}\n") + + elif ob.Type == "Part::Fuse" : + print "union" + csg.write("union() {\n") + process_object(csg,ob.Base) + process_object(csg,ob.Tool) + csg.write("}\n") + + elif ob.Type == "Part::Common" : + print "intersection" + csg.write("intersection() {\n") + process_object(csg,ob.Base) + process_object(csg,ob.Tool) + csg.write("}\n") + + elif ob.Type == "Part::MultiFuse" : + print "Multi Fuse / union" + csg.write("union() {\n") + for subobj in ob.Shapes: + process_object(csg,subobj) + csg.write("}\n") + + elif ob.Type == "Part::Common" : + print "Multi Common / intersection" + csg.write("intersection() {\n") + for subobj in ob.Shapes: + process_object(csg,subobj) + csg.write("}\n") + + elif ob.isDerivedFrom('Part::Feature') : + print "Part::Feature" + mm = check_multmatrix(csg,ob,0,0,0) + csg.write('%s\n' % shape2polyhedron(ob.Shape)) + if mm == 1 : csg.write("}\n") + + + +def export(exportList,filename): + "called when freecad exports a file" + + # process Objects + print "\nStart Export 0.1c\n" + print "Open Output File" + csg = pythonopen(filename,'w') + print "Write Inital Output" + # Not sure if comments as per scad are allowed in csg file + csg.write("// CSG file generated from FreeCAD Export 0.1c\n") + #write initial group statements - not sure if required + csg.write("group() {\n group(){\n") + for ob in exportList: + print ob + print "Name : "+ob.Name + print "Type : "+ob.Type + print "Shape : " + print ob.Shape + process_object(csg,ob) + + # write closing group braces + csg.write("}\n}\n") + # close file + csg.close() + FreeCAD.Console.PrintMessage("successfully exported "+filename) diff --git a/src/Mod/OpenSCAD/exportVersions.txt b/src/Mod/OpenSCAD/exportVersions.txt new file mode 100644 index 000000000..cd1f290aa --- /dev/null +++ b/src/Mod/OpenSCAD/exportVersions.txt @@ -0,0 +1,18 @@ +Version History +=============== + +0.01a - First Version + +0.01b - Added support for polyhedron ( Thanks shoogen ) + Some support for Torus + Some support for extruded regular polygon + +0.01c - Support for extruded polygon, square, circle + bug fix for polyhydron floating point - Thanks shoogen + + + +Thanks to shoogen and Peter Li for their advice, code, support and expertise. + +Keith Sloan +keith@sloan-home.co.uk \ No newline at end of file diff --git a/src/Mod/OpenSCAD/importCSG.py b/src/Mod/OpenSCAD/importCSG.py new file mode 100644 index 000000000..1e24f046d --- /dev/null +++ b/src/Mod/OpenSCAD/importCSG.py @@ -0,0 +1,885 @@ +# -*- coding: utf8 -*- + +#*************************************************************************** +#* * +#* Copyright (c) 2012 Keith Sloan * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#* Acknowledgements : * +#* * +#* Thanks to shoogen on the FreeCAD forum and Peter Li * +#* for programming advice and some code. * +#* * +#* * +#*************************************************************************** +__title__="FreeCAD OpenSCAD Workbench - CSG importer Version 0.05d" +__author__ = "Keith Sloan " +__url__ = ["http://www.sloan-home.co.uk/ImportCSG"] + +import FreeCAD, os, sys +import ply.lex as lex +import ply.yacc as yacc +import Part + +from OpenSCADFeatures import RefineShape +from OpenSCAD2Dgeom import * +from OpenSCADUtils import * +isspecialorthogonaldeterminant = isspecialorthogonalpython +from OpenSCADFeatures import Twist + +if open.__module__ == '__builtin__': + pythonopen = open # to distinguish python built-in open function from the one declared here + +# Get the token map from the lexer. This is required. +import tokrules +from tokrules import tokens + +#Globals +dxfcache = {} + +def open(filename): + "called when freecad opens a file." + global doc + global pathName + docname = os.path.splitext(os.path.basename(filename))[0] + doc = FreeCAD.newDocument(docname) + if filename.lower().endswith('.scad'): + tmpfile=callopenscad(filename) + pathName = '' #https://github.com/openscad/openscad/issues/128 + #pathName = os.getcwd() #https://github.com/openscad/openscad/issues/128 + processcsg(tmpfile) + os.unlink(tmpfile) + else: + pathName = os.path.dirname(os.path.normpath(filename)) + processcsg(filename) + return doc + +def insert(filename,docname): + "called when freecad imports a file" + global doc + global pathName + groupname = os.path.splitext(os.path.basename(filename))[0] + try: + doc=FreeCAD.getDocument(docname) + except: + doc=FreeCAD.newDocument(docname) + importgroup = doc.addObject("App::DocumentObjectGroup",groupname) + if filename.lower().endswith('.scad'): + tmpfile=callopenscad(filename) + pathName = '' #https://github.com/openscad/openscad/issues/128 + #pathName = os.getcwd() #https://github.com/openscad/openscad/issues/128 + processcsg(tmpfile) + os.unlink(tmpfile) + else: + pathName = os.path.dirname(os.path.normpath(filename)) + processcsg(filename) + +def processcsg(filename): + global doc + + print 'ImportCSG Version 0.5d' + # Build the lexer + print 'Start Lex' + lex.lex(module=tokrules) + print 'End Lex' + + # Build the parser + print 'Load Parser' + # No debug out otherwise Linux has protection exception + #parser = yacc.yacc(debug=0) + parser = yacc.yacc(debug=0) + print 'Parser Loaded' + # Give the lexer some input + #f=open('test.scad', 'r') + f = pythonopen(filename, 'r') + #lexer.input(f.read()) + + print 'Start Parser' + # Swap statements to enable Parser debugging + #result = parser.parse(f.read(),debug=1) + result = parser.parse(f.read()) + print 'End Parser' + print result + FreeCAD.Console.PrintMessage('End processing CSG file') + doc.recompute() + #import colorcodeshapes + #colorcodeshapes.colorcodeshapes(doc.Objects) + +def p_block_list_(p): + ''' + block_list : statement + | block_list statement + ''' + print "Block List" + print p[1] + if(len(p) > 2) : + print p[2] + p[0] = p[1] + p[2] + else : + p[0] = p[1] + print "End Block List" + +def p_group_action1(p): + 'group_action1 : group LPAREN RPAREN OBRACE block_list EBRACE' + print "Group" + p[0] = p[5] + +def p_group_action2(p) : + 'group_action2 : group LPAREN RPAREN SEMICOL' + print "Group2" + p[0] = [] + +def p_boolean(p) : + ''' + boolean : true + | false + ''' + p[0] = p[1] + +#def p_string(p): +# 'string : QUOTE ID QUOTE' +# p[0] = p[2] + +def p_stripped_string(p): + 'stripped_string : STRING' + p[0] = p[1].strip('"') + +def p_statement(p): + '''statement : part + | operation + | multmatrix_action + | group_action1 + | group_action2 + | color_action + | not_supported + ''' + p[0] = p[1] + +def p_part(p): + ''' + part : sphere_action + | cylinder_action + | cube_action + | circle_action + | square_action + | polygon_action_nopath + | polygon_action_plus_path + | polyhedron_action + ''' + p[0] = p[1] + +def p_2d_point(p): + '2d_point : OSQUARE NUMBER COMMA NUMBER ESQUARE' + global points_list + print "2d Point" + p[0] = [float(p[2]),float(p[4])] + +def p_points_list_2d(p): + ''' + points_list_2d : 2d_point COMMA + | points_list_2d 2d_point COMMA + | points_list_2d 2d_point + ''' + if p[2] == ',' : + print "Start List" + print p[1] + p[0] = [p[1]] + else : + print p[1] + print p[2] + p[1].append(p[2]) + p[0] = p[1] + print p[0] + +def p_3d_point(p): + '3d_point : OSQUARE NUMBER COMMA NUMBER COMMA NUMBER ESQUARE' + global points_list + print "3d point" + p[0] = [p[2],p[4],p[6]] + +def p_points_list_3d(p): + ''' + points_list_3d : 3d_point COMMA + | points_list_3d 3d_point COMMA + | points_list_3d 3d_point + ''' + if p[2] == ',' : + print "Start List" + print p[1] + p[0] = [p[1]] + else : + print p[1] + print p[2] + p[1].append(p[2]) + p[0] = p[1] + print p[0] + +def p_path_points(p): + ''' + path_points : NUMBER COMMA + | path_points NUMBER COMMA + | path_points NUMBER + ''' + print "Path point" + if p[2] == ',' : + print 'Start list' + print p[1] + p[0] = [int(p[1])] + else : + print p[1] + print len(p[1]) + print p[2] + p[1].append(int(p[2])) + p[0] = p[1] + print p[0] + + +def p_path_list(p): + 'path_list : OSQUARE path_points ESQUARE' + print 'Path List ' + print p[2] + p[0] = p[2] + +def p_path_set(p) : + ''' + path_set : path_list + | path_set COMMA path_list + ''' + print 'Path Set' + print len(p) + if len(p) == 2 : + p[0] = [p[1]] + else : + p[1].append(p[3]) + p[0] = p[1] + print p[0] + +def p_operation(p): + ''' + operation : difference_action + | intersection_action + | union_action + | rotate_extrude_action + | linear_extrude_with_twist + | linear_extrude_action2 + | rotate_extrude_file + | import_file1 + | projection_action + ''' + p[0] = p[1] + +def p_not_supported(p): + ''' + not_supported : hull + | minkowski + ''' + from PyQt4 import QtGui + QtGui.QMessageBox.critical(None, "Unsupported Function : "+p[1], "Press OK") + +def p_size_vector(p): + 'size_vector : OSQUARE NUMBER COMMA NUMBER COMMA NUMBER ESQUARE' + print "size vector" + p[0] = [p[2],p[4],p[6]] + +def p_assign(p): + 'assign : ID EQ NUMBER' + print "Assignment" + print p[1] + ' : ' + p[3] + p[0] = p[3] + +def p_color_action(p): + 'color_action : color LPAREN vector RPAREN OBRACE block_list EBRACE' + import math + print "Color" + color = tuple([float(f) for f in p[3][:3]]) #RGB + transp = 100 - int(math.floor(100*float(p[3][3]))) #Alpha + for obj in p[6]: + obj.ViewObject.ShapeColor =color + obj.ViewObject.Transparency = transp + p[0] = p[6] + +# Error rule for syntax errors +def p_error(p): + print "Syntax error in input!" + print p + +def fuse(list,name): + global doc + print "Fuse" + print list + # Is this Multi Fuse + if ( len(list) > 2): + print "Multi Fuse" + myfuse = doc.addObject('Part::MultiFuse',name) + myfuse.Shapes = list + for subobj in myfuse.Shapes: + subobj.ViewObject.hide() + else : + print "Single Fuse" + myfuse = doc.addObject('Part::Fuse',name) + myfuse.Base = list[0] + myfuse.Tool = list[1] + myfuse.Base.ViewObject.hide() + myfuse.Tool.ViewObject.hide() + return(myfuse) + +def p_union_action(p): + 'union_action : union LPAREN RPAREN OBRACE block_list EBRACE' + print "union" + newpart = fuse(p[5],p[1]) + print "Push Union Result" + p[0] = [newpart] + print "End Union" + +def p_difference_action(p): + 'difference_action : difference LPAREN RPAREN OBRACE block_list EBRACE' + + print "difference" + print len(p[5]) + print p[5] + + mycut = doc.addObject('Part::Cut',p[1]) +# Cut using Fuse + mycut.Base = p[5][0] +# Can only Cut two objects do we need to fuse extras + if (len(p[5]) > 2 ): + print "Need to Fuse Extra First" + mycut.Tool = fuse(p[5][1:],'union') + else : + mycut.Tool = p[5][1] + mycut.Base.ViewObject.hide() + mycut.Tool.ViewObject.hide() + print "Push Resulting Cut" + p[0] = [mycut] + print "End Cut" + +def p_intersection_action(p): + 'intersection_action : intersection LPAREN RPAREN OBRACE block_list EBRACE' + + print "intersection" + # Is this Multi Common + if (len(p[5]) > 2): + print "Multi Common" + mycommon = doc.addObject('Part::MultiCommon',p[1]) + mycommon.Shapes = p[5] + for subobj in mycommon.Shapes: + subobj.ViewObject.hide() + else : + print "Single Common" + mycommon = doc.addObject('Part::Common',p[1]) + mycommon.Base = p[5][0] + mycommon.Tool = p[5][1] + mycommon.Base.ViewObject.hide() + mycommon.Tool.ViewObject.hide() + + p[0] = [mycommon] + print "End Intersection" + +def process_rotate_extrude(obj): + myrev = doc.addObject("Part::Revolution","RotateExtrude") + myrev.Source = obj + myrev.Axis = (0.00,1.00,0.00) + myrev.Base = (0.00,0.00,0.00) + myrev.Angle = 360.00 + myrev.Placement=FreeCAD.Placement(FreeCAD.Vector(),FreeCAD.Rotation(0,0,90)) + obj.ViewObject.hide() + newobj=doc.addObject("Part::FeaturePython",'RefineRotateExtrude') + RefineShape(newobj,myrev) + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useViewProviderTree'): + from OpenSCADFeatures import ViewProviderTree + ViewProviderTree(newobj.ViewObject) + else: + newobj.ViewObject.Proxy = 0 + myrev.ViewObject.hide() + return(newobj) + +def p_rotate_extrude_action(p): + 'rotate_extrude_action : rotate_extrude LPAREN assign COMMA assign COMMA assign COMMA assign RPAREN OBRACE block_list EBRACE' + print "Rotate Extrude" + if (len(p[12]) > 1) : + part = fuse(p[12],"Rotate Extrude Union") + else : + part = p[12][0] + p[0] = [process_rotate_extrude(part)] + print "End Rotate Extrude" + +def p_rotate_extrude_file(p): + 'rotate_extrude_file : rotate_extrude LPAREN file EQ stripped_string COMMA layer EQ stripped_string COMMA origin EQ 2d_point COMMA assign \ + COMMA assign COMMA assign COMMA assign COMMA assign RPAREN SEMICOL' + print "Rotate Extrude File" + filen,ext =p[5] .rsplit('.',1) + obj = process_import_file(filen,ext,p[9]) + p[0] = [process_rotate_extrude(obj)] + print "End Rotate Extrude File" + +def process_linear_extrude(obj,h) : + mylinear = doc.addObject("Part::Extrusion","LinearExtrude") + mylinear.Base = obj + mylinear.Dir = (0,0,h) + mylinear.Placement=FreeCAD.Placement() + try: + mylinear.Solid = True + except: + a = 1 # Any old null statement + obj.ViewObject.hide() + newobj=doc.addObject("Part::FeaturePython",'RefineLinearExtrude') + RefineShape(newobj,mylinear) + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useViewProviderTree'): + from OpenSCADFeatures import ViewProviderTree + ViewProviderTree(newobj.ViewObject) + else: + newobj.ViewObject.Proxy = 0 + mylinear.ViewObject.hide() + return(newobj) + +def process_linear_extrude_with_twist(base,height,twist) : + newobj=doc.addObject("Part::FeaturePython",'twist_extrude') + Twist(newobj,base,height,-twist) #base is an FreeCAD Object, heigth and twist are floats + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useViewProviderTree'): + from OpenSCADFeatures import ViewProviderTree + ViewProviderTree(newobj.ViewObject) + else: + newobj.ViewObject.Proxy = 0 + #import ViewProviderTree from OpenSCADFeatures + #ViewProviderTree(obj.ViewObject) + return(newobj) + +def p_linear_extrude_with_twist(p): + 'linear_extrude_with_twist : linear_extrude LPAREN assign COMMA center EQ boolean COMMA assign COMMA assign COMMA assign COMMA \ + assign COMMA assign COMMA assign RPAREN OBRACE block_list EBRACE' + print "Linear Extrude With Twist" + h = float(p[3]) + print "Twist : "+p[11] + t = float(p[11]) + s = int(p[13]) + if (len(p[22]) > 1) : + obj = fuse(p[22],"Linear Extrude Union") + else : + obj = p[22][0] + if t: + p[0] = [process_linear_extrude_with_twist(obj,h,t)] + else: + p[0] = [process_linear_extrude(obj,h)] + if p[7]=='true' : + center(obj,0,0,h) + print "End Linear Extrude with twist" + +def p_linear_extrude_action2(p): + 'linear_extrude_action2 : linear_extrude LPAREN assign COMMA center EQ boolean COMMA assign COMMA assign COMMA assign COMMA \ + assign RPAREN OBRACE block_list EBRACE' + print "Linear Extrude 2" + h = float(p[3]) + if (len(p[18]) > 1) : + obj = fuse(p[18],"Linear Extrude Union") + else : + obj = p[18][0] + p[0] = [process_linear_extrude(obj,h)] + if p[7]=='true' : + center(obj,0,0,h) + print "End Linear Extrude 2" + +def p_import_file1(p): + 'import_file1 : import LPAREN file EQ stripped_string COMMA layer EQ stripped_string COMMA origin EQ 2d_point COMMA assign COMMA assign COMMA \ + assign COMMA assign COMMA assign RPAREN SEMICOL' + print "Import File" + filen,ext =p[5] .rsplit('.',1) + p[0] = [process_import_file(filen,ext,p[9])] + print "End Import File" + +def process_import_file(fname,ext,layer): + print "Importing : "+fname+"."+ext+" Layer : "+layer + if ext.lower() in reverseimporttypes()['Mesh']: + obj=process_mesh_file(fname,ext) + elif ext=='dxf' : + obj=processDXF(fname,layer) + else : + print "Unsupported file extension" + return(obj) + +def process_mesh_file(fname,ext): + import Mesh + fullname = fname+'.'+ext + filename = os.path.join(pathName,fullname) + mesh1 = doc.getObject(fname) #reuse imported object + if not mesh1: + Mesh.insert(filename) + mesh1=doc.getObject(fname) + mesh1.ViewObject.hide() + sh=Part.Shape() + sh.makeShapeFromMesh(mesh1.Mesh.Topology,0.1) + solid = Part.Solid(sh) + obj=doc.addObject('Part::Feature',"Mesh") + #ImportObject(obj,mesh1) #This object is not mutable from the GUI + #ViewProviderTree(obj.ViewObject) + solid=solid.removeSplitter() + if solid.Volume < 0: + #sh.reverse() + #sh = sh.copy() + solid.complement() + obj.Shape=solid#.removeSplitter() + return(obj) + +def processDXF(fname,layer): + global doc + global pathName + print "Process DXF file" + print "File Name : "+fname + print "Layer : "+layer + print "PathName : "+pathName + dxfname = fname+'.dxf' + filename = os.path.join(pathName,dxfname) + print "DXF Full path : "+filename + #featname='import_dxf_%s_%s'%(objname,layera) + # reusing an allready imported object does not work if the + #shape in not yet calculated + import importDXF + global dxfcache + layers=dxfcache.get(id(doc),[]) + print "Layers : "+str(layers) + if layers: + try: + groupobj=[go for go in layers if (not layer) or go.Label == layer] + except: + groupobj= None + else: + groupobj= None + if not groupobj: + print "Importing Layer" + layers = importDXF.processdxf(doc,filename) or importDXF.layers + dxfcache[id(doc)] = layers[:] + for l in layers: + for o in l.Group: + o.ViewObject.hide() + l.ViewObject.hide() + groupobj=[go for go in layers if (not layer) or go.Label == layer] + edges=[] + if not groupobj: + print 'import of layer %s failed' % layer + for shapeobj in groupobj[0].Group: + edges.extend(shapeobj.Shape.Edges) + f=edgestofaces(edges) + #obj=doc.addObject("Part::FeaturePython",'import_dxf_%s_%s'%(objname,layera)) + obj=doc.addObject('Part::Feature',"dxf") + #ImportObject(obj,groupobj[0]) #This object is not mutable from the GUI + #ViewProviderTree(obj.ViewObject) + obj.Shape=f + print "DXF Diagnostics" + print obj.Shape.ShapeType + print "Closed : "+str(f.isClosed()) + print f.check() + print [w.isClosed() for w in obj.Shape.Wires] + return(obj) + +def processSTL(fname): + print "Process STL file" + +def p_multmatrix_action(p): + 'multmatrix_action : multmatrix LPAREN matrix RPAREN OBRACE block_list EBRACE' + print "MultMatrix" + transform_matrix = FreeCAD.Matrix() + print "Multmatrix" + print p[3] + transform_matrix.A11 = round(float(p[3][0][0]),12) + transform_matrix.A12 = round(float(p[3][0][1]),12) + transform_matrix.A13 = round(float(p[3][0][2]),12) + transform_matrix.A14 = round(float(p[3][0][3]),12) + transform_matrix.A21 = round(float(p[3][1][0]),12) + transform_matrix.A22 = round(float(p[3][1][1]),12) + transform_matrix.A23 = round(float(p[3][1][2]),12) + transform_matrix.A24 = round(float(p[3][1][3]),12) + transform_matrix.A31 = round(float(p[3][2][0]),12) + transform_matrix.A32 = round(float(p[3][2][1]),12) + transform_matrix.A33 = round(float(p[3][2][2]),12) + transform_matrix.A34 = round(float(p[3][2][3]),12) + print transform_matrix + print "Apply Multmatrix" +# If more than one object on the stack for multmatrix fuse first + if (len(p[6]) > 1) : + part = fuse(p[6],"Matrix Union") + else : + part = p[6][0] +# part = new_part.transformGeometry(transform_matrix) +# part = new_part.copy() +# part.transformShape(transform_matrix) + if (isspecialorthogonaldeterminant(fcsubmatrix(transform_matrix))) : + print "Orthogonal" + part.Placement=FreeCAD.Placement(transform_matrix).multiply(part.Placement) + new_part = part + elif FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useMultmatrixFeature'): + from OpenSCADFeatures import MatrixTransform + new_part=doc.addObject("Part::FeaturePython",'Matrix Deformation') + MatrixTransform(new_part,transform_matrix,part) + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useViewProviderTree'): + from OpenSCADFeatures import ViewProviderTree + ViewProviderTree(new_part.ViewObject) + else: + new_part.ViewObject.Proxy = 0 + part.ViewObject.hide() + else : + print "Transform Geometry" +# Need to recompute to stop transformGeometry causing a crash + doc.recompute() + new_part = doc.addObject("Part::Feature","Matrix Deformation") + # new_part.Shape = part.Base.Shape.transformGeometry(transform_matrix) + new_part.Shape = part.Shape.transformGeometry(transform_matrix) + part.ViewObject.hide() + if False : +# Does not fix problemfile or beltTighener although later is closer + newobj=doc.addObject("Part::FeaturePython",'RefineMultMatrix') + RefineShape(newobj,new_part) + newobj.ViewObject.Proxy = 0 + new_part.ViewObject.hide() + p[0] = [newobj] + else : + p[0] = [new_part] + print "Multmatrix applied" + +def p_matrix(p): + 'matrix : OSQUARE vector COMMA vector COMMA vector COMMA vector ESQUARE' + print "Matrix" + p[0] = [p[2],p[4],p[6],p[8]] + +def p_vector(p): + 'vector : OSQUARE NUMBER COMMA NUMBER COMMA NUMBER COMMA NUMBER ESQUARE' + print "Vector" + p[0] = [p[2],p[4],p[6],p[8]] + +def center(obj,x,y,z): + obj.Placement = FreeCAD.Placement(\ + FreeCAD.Vector(-x/2.0,-y/2.0,-z/2.0),\ + FreeCAD.Rotation(0,0,0,1)) + +def p_sphere_action(p): + 'sphere_action : sphere LPAREN assign COMMA assign COMMA assign COMMA assign RPAREN SEMICOL' + print "Sphere : "+p[9] + r = float(p[9]) + mysphere = doc.addObject("Part::Sphere",p[1]) + mysphere.Radius = r + print "Push Sphere" + p[0] = [mysphere] + print "End Sphere" + +def myPolygon(n,r1): + # Adapted from Draft::_Polygon + import math + print "My Polygon" + angle = math.pi*2/n + nodes = [FreeCAD.Vector(r1,0,0)] + for i in range(n-1) : + th = (i+1) * angle + nodes.append(FreeCAD.Vector(r1*math.cos(th),r1*math.sin(th),0)) + nodes.append(nodes[0]) + polygonwire = Part.makePolygon(nodes) + + polygon = doc.addObject("Part::Feature","Polygon") + polygon.Shape = Part.Face(polygonwire) + return(polygon) + +def p_cylinder_action(p): + 'cylinder_action : cylinder LPAREN assign COMMA assign COMMA assign COMMA assign COMMA assign COMMA assign COMMA center EQ boolean RPAREN SEMICOL' + print "Cylinder" + h = float(p[9]) + r1 = float(p[11]) + r2 = float(p[13]) + print p[9] + ' : ' + p[11] + ' : ' + p[13] + if ( r1 == r2 ): + print "Make Cylinder" + n = int(p[3]) + fnmax = FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetInt('useMaxFN') + if n < 3 or fnmax != 0 and n > fnmax: + mycyl=doc.addObject("Part::Cylinder",p[1]) + mycyl.Height = h + mycyl.Radius = r1 + else : + print "Make Prism" + mycyl=doc.addObject("Part::Extrusion","prism") + mycyl.Dir = (0,0,h) + try : + import Draft + mycyl.Base = Draft.makePolygon(n,r1) + except : + # If Draft can't import (probably due to lack of Pivy on Mac and + # Linux builds of FreeCAD), this is a fallback. + # or old level of FreeCAD + print "Draft makePolygon Failed, falling back on manual polygon" + mycyl.Base = myPolygon(n,r1) + + else : + pass + + mycyl.Base.ViewObject.hide() + # mycyl.Solid = True + + else: + print "Make Cone" + mycyl=doc.addObject("Part::Cone",p[1]) + mycyl.Height = h + mycyl.Radius1 = r1 + mycyl.Radius2 = r2 + print "Center = "+str(p[17]) + if p[17]=='true' : + center(mycyl,0,0,h) + if False : +# Does not fix problemfile or beltTighener although later is closer + newobj=doc.addObject("Part::FeaturePython",'RefineCylinder') + RefineShape(newobj,mycyl) + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetBool('useViewProviderTree'): + from OpenSCADFeatures import ViewProviderTree + ViewProviderTree(newobj.ViewObject) + else: + newobj.ViewObject.Proxy = 0 + mycyl.ViewObject.hide() + p[0] = [newobj] + else : + p[0] = [mycyl] + print "End Cylinder" + + +def p_cube_action(p): + 'cube_action : cube LPAREN size EQ size_vector COMMA center EQ boolean RPAREN SEMICOL' + global doc + l = float(p[5][0]) + w = float(p[5][1]) + h = float(p[5][2]) + print "cube : "+p[5][0] + ' : ' + p[5][1] +' : '+ p[5][2] + mycube=doc.addObject('Part::Box',p[1]) + mycube.Length=l + mycube.Width=w + mycube.Height=h + print "Center = "+str(p[9]) + if p[9]=='true' : + center(mycube,l,w,h); + p[0] = [mycube] + print "End Cube" + +def p_circle_action(p) : + 'circle_action : circle LPAREN assign COMMA assign COMMA assign COMMA assign RPAREN SEMICOL' + print "Circle : "+str(p[9]) + r = float(p[9]) + n = int(p[3]) + fnmax = FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetInt('useMaxFN') + import Draft + if n == 0 or fnmax != 0 and n > fnmax: + mycircle = Draft.makeCircle(r) + #mycircle = doc.addObject('Part::Circle',p[1]) + #mycircle.Radius = r + else : + mycircle = Draft.makePolygon(n,r) + print "Push Circle" + p[0] = [mycircle] + +def p_square_action(p) : + 'square_action : square LPAREN size EQ 2d_point COMMA center EQ boolean RPAREN SEMICOL' + print "Square" + x = float(p[5][0]) + y = float(p[5][1]) + mysquare = doc.addObject('Part::Plane',p[1]) + mysquare.Length=x + mysquare.Width=y + if p[9]=='true' : + center(mysquare,x,y,0) + p[0] = [mysquare] + +def convert_points_list_to_vector(l): + v = [] + for i in l : + print i + v.append(FreeCAD.Vector(i[0],i[1])) + print v + return(v) + + +def p_polygon_action_nopath(p) : + 'polygon_action_nopath : polygon LPAREN points EQ OSQUARE points_list_2d ESQUARE COMMA paths EQ undef COMMA assign RPAREN SEMICOL' + print "Polygon" + print p[6] + v = convert_points_list_to_vector(p[6]) + mypolygon = doc.addObject('Part::Feature',p[1]) + print "Make Parts" + # Close Polygon + v.append(v[0]) + parts = Part.makePolygon(v) + print "update object" + mypolygon.Shape = Part.Face(parts) + p[0] = [mypolygon] + +def p_polygon_action_plus_path(p) : + 'polygon_action_plus_path : polygon LPAREN points EQ OSQUARE points_list_2d ESQUARE COMMA paths EQ OSQUARE path_set ESQUARE COMMA assign RPAREN SEMICOL' + print "Polygon with Path" + print p[6] + v = convert_points_list_to_vector(p[6]) + print "Path Set List" + print p[12] + for i in p[12] : + print i + mypolygon = doc.addObject('Part::Feature','wire') + path_list = [] + for j in i : + j = int(j) + print j + path_list.append(v[j]) +# Close path + path_list.append(v[int(i[0])]) + print 'Path List' + print path_list + wire = Part.makePolygon(path_list) + mypolygon.Shape = Part.Face(wire) + p[0] = [mypolygon] +# This only pushes last polygon + +def make_face(v1,v2,v3): + wire = Part.makePolygon([v1,v2,v3,v1]) + face = Part.Face(wire) + return face + +def p_polyhedron_action(p) : + 'polyhedron_action : polyhedron LPAREN points EQ OSQUARE points_list_3d ESQUARE COMMA triangles EQ OSQUARE points_list_3d ESQUARE COMMA assign RPAREN SEMICOL' + print "Polyhedron Points" + v = [] + for i in p[6] : + print i + v.append(FreeCAD.Vector(float(i[0]),float(i[1]),float(i[2]))) + print v + print "Polyhedron triangles" + print p[12] + faces_list = [] + mypolyhed = doc.addObject('Part::Feature',p[1]) + for i in p[12] : + print i + f = make_face(v[int(i[0])],v[int(i[1])],v[int(i[2])]) + faces_list.append(f) + shell=Part.makeShell(faces_list) + mypolyhed.Shape=Part.Solid(shell) + p[0] = [mypolyhed] + +def p_projection_action(p) : + 'projection_action : projection LPAREN cut EQ boolean COMMA assign RPAREN OBRACE block_list EBRACE' + print 'Projection' + from PyQt4 import QtGui + QtGui.QMessageBox.critical(None, "Projection Not yet Coded waiting for Peter Li"," Press OK") + diff --git a/src/Mod/OpenSCAD/importVersions.txt b/src/Mod/OpenSCAD/importVersions.txt new file mode 100644 index 000000000..010387ae1 --- /dev/null +++ b/src/Mod/OpenSCAD/importVersions.txt @@ -0,0 +1,58 @@ +Version History +=============== + +0.01a - First Version + +0.01b - Fixed + + Reset Global Variables + Fix Multmatrix use of Shape + + Added import Function (Untested) + +0.02b - Rewrite to use Bojects rather than shapes. + Objects now editible in FreeCad + +0.02c - disable debug output on Yacc to avoid permissions problem with Linux + +0.03a - Added support for + + Linear Extrusion + Rotational Extrusion + circle + square + polygon + polyhedron + +0.04a - Change to use parser stack rather than own stack + to fix a parsing problem + makes code cleaner and less global variables + parsers out SCAD comments ( Not sure if the are allowed in CSG file anyway + other minor fixes + +0.04b - Fixes where Multmatrix has more than one object neeed to fuse first + Correct import function call + +0.04c - Support for cylinders made with regular polygon ( Needs FreeCAD with fixes to Draft ) + Attempt at transformGeometry for non orthoganal Multmatrix + +0.04d - Fix to multmatrix transformGeometry to avoid crash + +0.04e - If problems with Draft or Draft's makePolygon because not on latest FreeCAD falls back + to non editable polygon + +0.04f - Fix bug with multiple intersections + +0.05a - Attempt to add shogens's import dxf function code. + +0.05b - Fix introduced bug with centre=true/false, ViewObject Proxy + +0.05c - Fix for polygon with path - Changes to Polygon and polyhdron - parse projection + +There appear to be problems with some files and these maybe as a result of bugs in FreeCAD that corrupt +the model. If you find problem files please email them to keith@sloan-home.co.uk + +Thanks to shoogen and Peter Li for their advice, support and expertise. + +Keith Sloan +keith@sloan-home.co.uk \ No newline at end of file diff --git a/src/Mod/OpenSCAD/ply/ANNOUNCE b/src/Mod/OpenSCAD/ply/ANNOUNCE new file mode 100644 index 000000000..bdc1c1094 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/ANNOUNCE @@ -0,0 +1,40 @@ +February 17, 2011 + + Announcing : PLY-3.4 (Python Lex-Yacc) + + http://www.dabeaz.com/ply + +I'm pleased to announce PLY-3.4--a pure Python implementation of the +common parsing tools lex and yacc. PLY-3.4 is a minor bug fix +release. It supports both Python 2 and Python 3. + +If you are new to PLY, here are a few highlights: + +- PLY is closely modeled after traditional lex/yacc. If you know how + to use these or similar tools in other languages, you will find + PLY to be comparable. + +- PLY provides very extensive error reporting and diagnostic + information to assist in parser construction. The original + implementation was developed for instructional purposes. As + a result, the system tries to identify the most common types + of errors made by novice users. + +- PLY provides full support for empty productions, error recovery, + precedence rules, and ambiguous grammars. + +- Parsing is based on LR-parsing which is fast, memory efficient, + better suited to large grammars, and which has a number of nice + properties when dealing with syntax errors and other parsing + problems. Currently, PLY can build its parsing tables using + either SLR or LALR(1) algorithms. + +More information about PLY can be obtained on the PLY webpage at: + + http://www.dabeaz.com/ply + +PLY is freely available. + +Cheers, + +David Beazley (http://www.dabeaz.com) \ No newline at end of file diff --git a/src/Mod/OpenSCAD/ply/CHANGES b/src/Mod/OpenSCAD/ply/CHANGES new file mode 100644 index 000000000..34bf50f98 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/CHANGES @@ -0,0 +1,1093 @@ +Version 3.4 +--------------------- +02/17/11: beazley + Minor patch to make cpp.py compatible with Python 3. Note: This + is an experimental file not currently used by the rest of PLY. + +02/17/11: beazley + Fixed setup.py trove classifiers to properly list PLY as + Python 3 compatible. + +01/02/11: beazley + Migration of repository to github. + +Version 3.3 +----------------------------- +08/25/09: beazley + Fixed issue 15 related to the set_lineno() method in yacc. Reported by + mdsherry. + +08/25/09: beazley + Fixed a bug related to regular expression compilation flags not being + properly stored in lextab.py files created by the lexer when running + in optimize mode. Reported by Bruce Frederiksen. + + +Version 3.2 +----------------------------- +03/24/09: beazley + Added an extra check to not print duplicated warning messages + about reduce/reduce conflicts. + +03/24/09: beazley + Switched PLY over to a BSD-license. + +03/23/09: beazley + Performance optimization. Discovered a few places to make + speedups in LR table generation. + +03/23/09: beazley + New warning message. PLY now warns about rules never + reduced due to reduce/reduce conflicts. Suggested by + Bruce Frederiksen. + +03/23/09: beazley + Some clean-up of warning messages related to reduce/reduce errors. + +03/23/09: beazley + Added a new picklefile option to yacc() to write the parsing + tables to a filename using the pickle module. Here is how + it works: + + yacc(picklefile="parsetab.p") + + This option can be used if the normal parsetab.py file is + extremely large. For example, on jython, it is impossible + to read parsing tables if the parsetab.py exceeds a certain + threshold. + + The filename supplied to the picklefile option is opened + relative to the current working directory of the Python + interpreter. If you need to refer to the file elsewhere, + you will need to supply an absolute or relative path. + + For maximum portability, the pickle file is written + using protocol 0. + +03/13/09: beazley + Fixed a bug in parser.out generation where the rule numbers + where off by one. + +03/13/09: beazley + Fixed a string formatting bug with one of the error messages. + Reported by Richard Reitmeyer + +Version 3.1 +----------------------------- +02/28/09: beazley + Fixed broken start argument to yacc(). PLY-3.0 broke this + feature by accident. + +02/28/09: beazley + Fixed debugging output. yacc() no longer reports shift/reduce + or reduce/reduce conflicts if debugging is turned off. This + restores similar behavior in PLY-2.5. Reported by Andrew Waters. + +Version 3.0 +----------------------------- +02/03/09: beazley + Fixed missing lexer attribute on certain tokens when + invoking the parser p_error() function. Reported by + Bart Whiteley. + +02/02/09: beazley + The lex() command now does all error-reporting and diagonistics + using the logging module interface. Pass in a Logger object + using the errorlog parameter to specify a different logger. + +02/02/09: beazley + Refactored ply.lex to use a more object-oriented and organized + approach to collecting lexer information. + +02/01/09: beazley + Removed the nowarn option from lex(). All output is controlled + by passing in a logger object. Just pass in a logger with a high + level setting to suppress output. This argument was never + documented to begin with so hopefully no one was relying upon it. + +02/01/09: beazley + Discovered and removed a dead if-statement in the lexer. This + resulted in a 6-7% speedup in lexing when I tested it. + +01/13/09: beazley + Minor change to the procedure for signalling a syntax error in a + production rule. A normal SyntaxError exception should be raised + instead of yacc.SyntaxError. + +01/13/09: beazley + Added a new method p.set_lineno(n,lineno) that can be used to set the + line number of symbol n in grammar rules. This simplifies manual + tracking of line numbers. + +01/11/09: beazley + Vastly improved debugging support for yacc.parse(). Instead of passing + debug as an integer, you can supply a Logging object (see the logging + module). Messages will be generated at the ERROR, INFO, and DEBUG + logging levels, each level providing progressively more information. + The debugging trace also shows states, grammar rule, values passed + into grammar rules, and the result of each reduction. + +01/09/09: beazley + The yacc() command now does all error-reporting and diagnostics using + the interface of the logging module. Use the errorlog parameter to + specify a logging object for error messages. Use the debuglog parameter + to specify a logging object for the 'parser.out' output. + +01/09/09: beazley + *HUGE* refactoring of the the ply.yacc() implementation. The high-level + user interface is backwards compatible, but the internals are completely + reorganized into classes. No more global variables. The internals + are also more extensible. For example, you can use the classes to + construct a LALR(1) parser in an entirely different manner than + what is currently the case. Documentation is forthcoming. + +01/07/09: beazley + Various cleanup and refactoring of yacc internals. + +01/06/09: beazley + Fixed a bug with precedence assignment. yacc was assigning the precedence + each rule based on the left-most token, when in fact, it should have been + using the right-most token. Reported by Bruce Frederiksen. + +11/27/08: beazley + Numerous changes to support Python 3.0 including removal of deprecated + statements (e.g., has_key) and the additional of compatibility code + to emulate features from Python 2 that have been removed, but which + are needed. Fixed the unit testing suite to work with Python 3.0. + The code should be backwards compatible with Python 2. + +11/26/08: beazley + Loosened the rules on what kind of objects can be passed in as the + "module" parameter to lex() and yacc(). Previously, you could only use + a module or an instance. Now, PLY just uses dir() to get a list of + symbols on whatever the object is without regard for its type. + +11/26/08: beazley + Changed all except: statements to be compatible with Python2.x/3.x syntax. + +11/26/08: beazley + Changed all raise Exception, value statements to raise Exception(value) for + forward compatibility. + +11/26/08: beazley + Removed all print statements from lex and yacc, using sys.stdout and sys.stderr + directly. Preparation for Python 3.0 support. + +11/04/08: beazley + Fixed a bug with referring to symbols on the the parsing stack using negative + indices. + +05/29/08: beazley + Completely revamped the testing system to use the unittest module for everything. + Added additional tests to cover new errors/warnings. + +Version 2.5 +----------------------------- +05/28/08: beazley + Fixed a bug with writing lex-tables in optimized mode and start states. + Reported by Kevin Henry. + +Version 2.4 +----------------------------- +05/04/08: beazley + A version number is now embedded in the table file signature so that + yacc can more gracefully accomodate changes to the output format + in the future. + +05/04/08: beazley + Removed undocumented .pushback() method on grammar productions. I'm + not sure this ever worked and can't recall ever using it. Might have + been an abandoned idea that never really got fleshed out. This + feature was never described or tested so removing it is hopefully + harmless. + +05/04/08: beazley + Added extra error checking to yacc() to detect precedence rules defined + for undefined terminal symbols. This allows yacc() to detect a potential + problem that can be really tricky to debug if no warning message or error + message is generated about it. + +05/04/08: beazley + lex() now has an outputdir that can specify the output directory for + tables when running in optimize mode. For example: + + lexer = lex.lex(optimize=True, lextab="ltab", outputdir="foo/bar") + + The behavior of specifying a table module and output directory are + more aligned with the behavior of yacc(). + +05/04/08: beazley + [Issue 9] + Fixed filename bug in when specifying the modulename in lex() and yacc(). + If you specified options such as the following: + + parser = yacc.yacc(tabmodule="foo.bar.parsetab",outputdir="foo/bar") + + yacc would create a file "foo.bar.parsetab.py" in the given directory. + Now, it simply generates a file "parsetab.py" in that directory. + Bug reported by cptbinho. + +05/04/08: beazley + Slight modification to lex() and yacc() to allow their table files + to be loaded from a previously loaded module. This might make + it easier to load the parsing tables from a complicated package + structure. For example: + + import foo.bar.spam.parsetab as parsetab + parser = yacc.yacc(tabmodule=parsetab) + + Note: lex and yacc will never regenerate the table file if used + in the form---you will get a warning message instead. + This idea suggested by Brian Clapper. + + +04/28/08: beazley + Fixed a big with p_error() functions being picked up correctly + when running in yacc(optimize=1) mode. Patch contributed by + Bart Whiteley. + +02/28/08: beazley + Fixed a bug with 'nonassoc' precedence rules. Basically the + non-precedence was being ignored and not producing the correct + run-time behavior in the parser. + +02/16/08: beazley + Slight relaxation of what the input() method to a lexer will + accept as a string. Instead of testing the input to see + if the input is a string or unicode string, it checks to see + if the input object looks like it contains string data. + This change makes it possible to pass string-like objects + in as input. For example, the object returned by mmap. + + import mmap, os + data = mmap.mmap(os.open(filename,os.O_RDONLY), + os.path.getsize(filename), + access=mmap.ACCESS_READ) + lexer.input(data) + + +11/29/07: beazley + Modification of ply.lex to allow token functions to aliased. + This is subtle, but it makes it easier to create libraries and + to reuse token specifications. For example, suppose you defined + a function like this: + + def number(t): + r'\d+' + t.value = int(t.value) + return t + + This change would allow you to define a token rule as follows: + + t_NUMBER = number + + In this case, the token type will be set to 'NUMBER' and use + the associated number() function to process tokens. + +11/28/07: beazley + Slight modification to lex and yacc to grab symbols from both + the local and global dictionaries of the caller. This + modification allows lexers and parsers to be defined using + inner functions and closures. + +11/28/07: beazley + Performance optimization: The lexer.lexmatch and t.lexer + attributes are no longer set for lexer tokens that are not + defined by functions. The only normal use of these attributes + would be in lexer rules that need to perform some kind of + special processing. Thus, it doesn't make any sense to set + them on every token. + + *** POTENTIAL INCOMPATIBILITY *** This might break code + that is mucking around with internal lexer state in some + sort of magical way. + +11/27/07: beazley + Added the ability to put the parser into error-handling mode + from within a normal production. To do this, simply raise + a yacc.SyntaxError exception like this: + + def p_some_production(p): + 'some_production : prod1 prod2' + ... + raise yacc.SyntaxError # Signal an error + + A number of things happen after this occurs: + + - The last symbol shifted onto the symbol stack is discarded + and parser state backed up to what it was before the + the rule reduction. + + - The current lookahead symbol is saved and replaced by + the 'error' symbol. + + - The parser enters error recovery mode where it tries + to either reduce the 'error' rule or it starts + discarding items off of the stack until the parser + resets. + + When an error is manually set, the parser does *not* call + the p_error() function (if any is defined). + *** NEW FEATURE *** Suggested on the mailing list + +11/27/07: beazley + Fixed structure bug in examples/ansic. Reported by Dion Blazakis. + +11/27/07: beazley + Fixed a bug in the lexer related to start conditions and ignored + token rules. If a rule was defined that changed state, but + returned no token, the lexer could be left in an inconsistent + state. Reported by + +11/27/07: beazley + Modified setup.py to support Python Eggs. Patch contributed by + Simon Cross. + +11/09/07: beazely + Fixed a bug in error handling in yacc. If a syntax error occurred and the + parser rolled the entire parse stack back, the parser would be left in in + inconsistent state that would cause it to trigger incorrect actions on + subsequent input. Reported by Ton Biegstraaten, Justin King, and others. + +11/09/07: beazley + Fixed a bug when passing empty input strings to yacc.parse(). This + would result in an error message about "No input given". Reported + by Andrew Dalke. + +Version 2.3 +----------------------------- +02/20/07: beazley + Fixed a bug with character literals if the literal '.' appeared as the + last symbol of a grammar rule. Reported by Ales Smrcka. + +02/19/07: beazley + Warning messages are now redirected to stderr instead of being printed + to standard output. + +02/19/07: beazley + Added a warning message to lex.py if it detects a literal backslash + character inside the t_ignore declaration. This is to help + problems that might occur if someone accidentally defines t_ignore + as a Python raw string. For example: + + t_ignore = r' \t' + + The idea for this is from an email I received from David Cimimi who + reported bizarre behavior in lexing as a result of defining t_ignore + as a raw string by accident. + +02/18/07: beazley + Performance improvements. Made some changes to the internal + table organization and LR parser to improve parsing performance. + +02/18/07: beazley + Automatic tracking of line number and position information must now be + enabled by a special flag to parse(). For example: + + yacc.parse(data,tracking=True) + + In many applications, it's just not that important to have the + parser automatically track all line numbers. By making this an + optional feature, it allows the parser to run significantly faster + (more than a 20% speed increase in many cases). Note: positional + information is always available for raw tokens---this change only + applies to positional information associated with nonterminal + grammar symbols. + *** POTENTIAL INCOMPATIBILITY *** + +02/18/07: beazley + Yacc no longer supports extended slices of grammar productions. + However, it does support regular slices. For example: + + def p_foo(p): + '''foo: a b c d e''' + p[0] = p[1:3] + + This change is a performance improvement to the parser--it streamlines + normal access to the grammar values since slices are now handled in + a __getslice__() method as opposed to __getitem__(). + +02/12/07: beazley + Fixed a bug in the handling of token names when combined with + start conditions. Bug reported by Todd O'Bryan. + +Version 2.2 +------------------------------ +11/01/06: beazley + Added lexpos() and lexspan() methods to grammar symbols. These + mirror the same functionality of lineno() and linespan(). For + example: + + def p_expr(p): + 'expr : expr PLUS expr' + p.lexpos(1) # Lexing position of left-hand-expression + p.lexpos(1) # Lexing position of PLUS + start,end = p.lexspan(3) # Lexing range of right hand expression + +11/01/06: beazley + Minor change to error handling. The recommended way to skip characters + in the input is to use t.lexer.skip() as shown here: + + def t_error(t): + print "Illegal character '%s'" % t.value[0] + t.lexer.skip(1) + + The old approach of just using t.skip(1) will still work, but won't + be documented. + +10/31/06: beazley + Discarded tokens can now be specified as simple strings instead of + functions. To do this, simply include the text "ignore_" in the + token declaration. For example: + + t_ignore_cppcomment = r'//.*' + + Previously, this had to be done with a function. For example: + + def t_ignore_cppcomment(t): + r'//.*' + pass + + If start conditions/states are being used, state names should appear + before the "ignore_" text. + +10/19/06: beazley + The Lex module now provides support for flex-style start conditions + as described at http://www.gnu.org/software/flex/manual/html_chapter/flex_11.html. + Please refer to this document to understand this change note. Refer to + the PLY documentation for PLY-specific explanation of how this works. + + To use start conditions, you first need to declare a set of states in + your lexer file: + + states = ( + ('foo','exclusive'), + ('bar','inclusive') + ) + + This serves the same role as the %s and %x specifiers in flex. + + One a state has been declared, tokens for that state can be + declared by defining rules of the form t_state_TOK. For example: + + t_PLUS = '\+' # Rule defined in INITIAL state + t_foo_NUM = '\d+' # Rule defined in foo state + t_bar_NUM = '\d+' # Rule defined in bar state + + t_foo_bar_NUM = '\d+' # Rule defined in both foo and bar + t_ANY_NUM = '\d+' # Rule defined in all states + + In addition to defining tokens for each state, the t_ignore and t_error + specifications can be customized for specific states. For example: + + t_foo_ignore = " " # Ignored characters for foo state + def t_bar_error(t): + # Handle errors in bar state + + With token rules, the following methods can be used to change states + + def t_TOKNAME(t): + t.lexer.begin('foo') # Begin state 'foo' + t.lexer.push_state('foo') # Begin state 'foo', push old state + # onto a stack + t.lexer.pop_state() # Restore previous state + t.lexer.current_state() # Returns name of current state + + These methods mirror the BEGIN(), yy_push_state(), yy_pop_state(), and + yy_top_state() functions in flex. + + The use of start states can be used as one way to write sub-lexers. + For example, the lexer or parser might instruct the lexer to start + generating a different set of tokens depending on the context. + + example/yply/ylex.py shows the use of start states to grab C/C++ + code fragments out of traditional yacc specification files. + + *** NEW FEATURE *** Suggested by Daniel Larraz with whom I also + discussed various aspects of the design. + +10/19/06: beazley + Minor change to the way in which yacc.py was reporting shift/reduce + conflicts. Although the underlying LALR(1) algorithm was correct, + PLY was under-reporting the number of conflicts compared to yacc/bison + when precedence rules were in effect. This change should make PLY + report the same number of conflicts as yacc. + +10/19/06: beazley + Modified yacc so that grammar rules could also include the '-' + character. For example: + + def p_expr_list(p): + 'expression-list : expression-list expression' + + Suggested by Oldrich Jedlicka. + +10/18/06: beazley + Attribute lexer.lexmatch added so that token rules can access the re + match object that was generated. For example: + + def t_FOO(t): + r'some regex' + m = t.lexer.lexmatch + # Do something with m + + + This may be useful if you want to access named groups specified within + the regex for a specific token. Suggested by Oldrich Jedlicka. + +10/16/06: beazley + Changed the error message that results if an illegal character + is encountered and no default error function is defined in lex. + The exception is now more informative about the actual cause of + the error. + +Version 2.1 +------------------------------ +10/02/06: beazley + The last Lexer object built by lex() can be found in lex.lexer. + The last Parser object built by yacc() can be found in yacc.parser. + +10/02/06: beazley + New example added: examples/yply + + This example uses PLY to convert Unix-yacc specification files to + PLY programs with the same grammar. This may be useful if you + want to convert a grammar from bison/yacc to use with PLY. + +10/02/06: beazley + Added support for a start symbol to be specified in the yacc + input file itself. Just do this: + + start = 'name' + + where 'name' matches some grammar rule. For example: + + def p_name(p): + 'name : A B C' + ... + + This mirrors the functionality of the yacc %start specifier. + +09/30/06: beazley + Some new examples added.: + + examples/GardenSnake : A simple indentation based language similar + to Python. Shows how you might handle + whitespace. Contributed by Andrew Dalke. + + examples/BASIC : An implementation of 1964 Dartmouth BASIC. + Contributed by Dave against his better + judgement. + +09/28/06: beazley + Minor patch to allow named groups to be used in lex regular + expression rules. For example: + + t_QSTRING = r'''(?P['"]).*?(?P=quote)''' + + Patch submitted by Adam Ring. + +09/28/06: beazley + LALR(1) is now the default parsing method. To use SLR, use + yacc.yacc(method="SLR"). Note: there is no performance impact + on parsing when using LALR(1) instead of SLR. However, constructing + the parsing tables will take a little longer. + +09/26/06: beazley + Change to line number tracking. To modify line numbers, modify + the line number of the lexer itself. For example: + + def t_NEWLINE(t): + r'\n' + t.lexer.lineno += 1 + + This modification is both cleanup and a performance optimization. + In past versions, lex was monitoring every token for changes in + the line number. This extra processing is unnecessary for a vast + majority of tokens. Thus, this new approach cleans it up a bit. + + *** POTENTIAL INCOMPATIBILITY *** + You will need to change code in your lexer that updates the line + number. For example, "t.lineno += 1" becomes "t.lexer.lineno += 1" + +09/26/06: beazley + Added the lexing position to tokens as an attribute lexpos. This + is the raw index into the input text at which a token appears. + This information can be used to compute column numbers and other + details (e.g., scan backwards from lexpos to the first newline + to get a column position). + +09/25/06: beazley + Changed the name of the __copy__() method on the Lexer class + to clone(). This is used to clone a Lexer object (e.g., if + you're running different lexers at the same time). + +09/21/06: beazley + Limitations related to the use of the re module have been eliminated. + Several users reported problems with regular expressions exceeding + more than 100 named groups. To solve this, lex.py is now capable + of automatically splitting its master regular regular expression into + smaller expressions as needed. This should, in theory, make it + possible to specify an arbitrarily large number of tokens. + +09/21/06: beazley + Improved error checking in lex.py. Rules that match the empty string + are now rejected (otherwise they cause the lexer to enter an infinite + loop). An extra check for rules containing '#' has also been added. + Since lex compiles regular expressions in verbose mode, '#' is interpreted + as a regex comment, it is critical to use '\#' instead. + +09/18/06: beazley + Added a @TOKEN decorator function to lex.py that can be used to + define token rules where the documentation string might be computed + in some way. + + digit = r'([0-9])' + nondigit = r'([_A-Za-z])' + identifier = r'(' + nondigit + r'(' + digit + r'|' + nondigit + r')*)' + + from ply.lex import TOKEN + + @TOKEN(identifier) + def t_ID(t): + # Do whatever + + The @TOKEN decorator merely sets the documentation string of the + associated token function as needed for lex to work. + + Note: An alternative solution is the following: + + def t_ID(t): + # Do whatever + + t_ID.__doc__ = identifier + + Note: Decorators require the use of Python 2.4 or later. If compatibility + with old versions is needed, use the latter solution. + + The need for this feature was suggested by Cem Karan. + +09/14/06: beazley + Support for single-character literal tokens has been added to yacc. + These literals must be enclosed in quotes. For example: + + def p_expr(p): + "expr : expr '+' expr" + ... + + def p_expr(p): + 'expr : expr "-" expr' + ... + + In addition to this, it is necessary to tell the lexer module about + literal characters. This is done by defining the variable 'literals' + as a list of characters. This should be defined in the module that + invokes the lex.lex() function. For example: + + literals = ['+','-','*','/','(',')','='] + + or simply + + literals = '+=*/()=' + + It is important to note that literals can only be a single character. + When the lexer fails to match a token using its normal regular expression + rules, it will check the current character against the literal list. + If found, it will be returned with a token type set to match the literal + character. Otherwise, an illegal character will be signalled. + + +09/14/06: beazley + Modified PLY to install itself as a proper Python package called 'ply'. + This will make it a little more friendly to other modules. This + changes the usage of PLY only slightly. Just do this to import the + modules + + import ply.lex as lex + import ply.yacc as yacc + + Alternatively, you can do this: + + from ply import * + + Which imports both the lex and yacc modules. + Change suggested by Lee June. + +09/13/06: beazley + Changed the handling of negative indices when used in production rules. + A negative production index now accesses already parsed symbols on the + parsing stack. For example, + + def p_foo(p): + "foo: A B C D" + print p[1] # Value of 'A' symbol + print p[2] # Value of 'B' symbol + print p[-1] # Value of whatever symbol appears before A + # on the parsing stack. + + p[0] = some_val # Sets the value of the 'foo' grammer symbol + + This behavior makes it easier to work with embedded actions within the + parsing rules. For example, in C-yacc, it is possible to write code like + this: + + bar: A { printf("seen an A = %d\n", $1); } B { do_stuff; } + + In this example, the printf() code executes immediately after A has been + parsed. Within the embedded action code, $1 refers to the A symbol on + the stack. + + To perform this equivalent action in PLY, you need to write a pair + of rules like this: + + def p_bar(p): + "bar : A seen_A B" + do_stuff + + def p_seen_A(p): + "seen_A :" + print "seen an A =", p[-1] + + The second rule "seen_A" is merely a empty production which should be + reduced as soon as A is parsed in the "bar" rule above. The use + of the negative index p[-1] is used to access whatever symbol appeared + before the seen_A symbol. + + This feature also makes it possible to support inherited attributes. + For example: + + def p_decl(p): + "decl : scope name" + + def p_scope(p): + """scope : GLOBAL + | LOCAL""" + p[0] = p[1] + + def p_name(p): + "name : ID" + if p[-1] == "GLOBAL": + # ... + else if p[-1] == "LOCAL": + #... + + In this case, the name rule is inheriting an attribute from the + scope declaration that precedes it. + + *** POTENTIAL INCOMPATIBILITY *** + If you are currently using negative indices within existing grammar rules, + your code will break. This should be extremely rare if non-existent in + most cases. The argument to various grammar rules is not usually not + processed in the same way as a list of items. + +Version 2.0 +------------------------------ +09/07/06: beazley + Major cleanup and refactoring of the LR table generation code. Both SLR + and LALR(1) table generation is now performed by the same code base with + only minor extensions for extra LALR(1) processing. + +09/07/06: beazley + Completely reimplemented the entire LALR(1) parsing engine to use the + DeRemer and Pennello algorithm for calculating lookahead sets. This + significantly improves the performance of generating LALR(1) tables + and has the added feature of actually working correctly! If you + experienced weird behavior with LALR(1) in prior releases, this should + hopefully resolve all of those problems. Many thanks to + Andrew Waters and Markus Schoepflin for submitting bug reports + and helping me test out the revised LALR(1) support. + +Version 1.8 +------------------------------ +08/02/06: beazley + Fixed a problem related to the handling of default actions in LALR(1) + parsing. If you experienced subtle and/or bizarre behavior when trying + to use the LALR(1) engine, this may correct those problems. Patch + contributed by Russ Cox. Note: This patch has been superceded by + revisions for LALR(1) parsing in Ply-2.0. + +08/02/06: beazley + Added support for slicing of productions in yacc. + Patch contributed by Patrick Mezard. + +Version 1.7 +------------------------------ +03/02/06: beazley + Fixed infinite recursion problem ReduceToTerminals() function that + would sometimes come up in LALR(1) table generation. Reported by + Markus Schoepflin. + +03/01/06: beazley + Added "reflags" argument to lex(). For example: + + lex.lex(reflags=re.UNICODE) + + This can be used to specify optional flags to the re.compile() function + used inside the lexer. This may be necessary for special situations such + as processing Unicode (e.g., if you want escapes like \w and \b to consult + the Unicode character property database). The need for this suggested by + Andreas Jung. + +03/01/06: beazley + Fixed a bug with an uninitialized variable on repeated instantiations of parser + objects when the write_tables=0 argument was used. Reported by Michael Brown. + +03/01/06: beazley + Modified lex.py to accept Unicode strings both as the regular expressions for + tokens and as input. Hopefully this is the only change needed for Unicode support. + Patch contributed by Johan Dahl. + +03/01/06: beazley + Modified the class-based interface to work with new-style or old-style classes. + Patch contributed by Michael Brown (although I tweaked it slightly so it would work + with older versions of Python). + +Version 1.6 +------------------------------ +05/27/05: beazley + Incorporated patch contributed by Christopher Stawarz to fix an extremely + devious bug in LALR(1) parser generation. This patch should fix problems + numerous people reported with LALR parsing. + +05/27/05: beazley + Fixed problem with lex.py copy constructor. Reported by Dave Aitel, Aaron Lav, + and Thad Austin. + +05/27/05: beazley + Added outputdir option to yacc() to control output directory. Contributed + by Christopher Stawarz. + +05/27/05: beazley + Added rununit.py test script to run tests using the Python unittest module. + Contributed by Miki Tebeka. + +Version 1.5 +------------------------------ +05/26/04: beazley + Major enhancement. LALR(1) parsing support is now working. + This feature was implemented by Elias Ioup (ezioup@alumni.uchicago.edu) + and optimized by David Beazley. To use LALR(1) parsing do + the following: + + yacc.yacc(method="LALR") + + Computing LALR(1) parsing tables takes about twice as long as + the default SLR method. However, LALR(1) allows you to handle + more complex grammars. For example, the ANSI C grammar + (in example/ansic) has 13 shift-reduce conflicts with SLR, but + only has 1 shift-reduce conflict with LALR(1). + +05/20/04: beazley + Added a __len__ method to parser production lists. Can + be used in parser rules like this: + + def p_somerule(p): + """a : B C D + | E F" + if (len(p) == 3): + # Must have been first rule + elif (len(p) == 2): + # Must be second rule + + Suggested by Joshua Gerth and others. + +Version 1.4 +------------------------------ +04/23/04: beazley + Incorporated a variety of patches contributed by Eric Raymond. + These include: + + 0. Cleans up some comments so they don't wrap on an 80-column display. + 1. Directs compiler errors to stderr where they belong. + 2. Implements and documents automatic line counting when \n is ignored. + 3. Changes the way progress messages are dumped when debugging is on. + The new format is both less verbose and conveys more information than + the old, including shift and reduce actions. + +04/23/04: beazley + Added a Python setup.py file to simply installation. Contributed + by Adam Kerrison. + +04/23/04: beazley + Added patches contributed by Adam Kerrison. + + - Some output is now only shown when debugging is enabled. This + means that PLY will be completely silent when not in debugging mode. + + - An optional parameter "write_tables" can be passed to yacc() to + control whether or not parsing tables are written. By default, + it is true, but it can be turned off if you don't want the yacc + table file. Note: disabling this will cause yacc() to regenerate + the parsing table each time. + +04/23/04: beazley + Added patches contributed by David McNab. This patch addes two + features: + + - The parser can be supplied as a class instead of a module. + For an example of this, see the example/classcalc directory. + + - Debugging output can be directed to a filename of the user's + choice. Use + + yacc(debugfile="somefile.out") + + +Version 1.3 +------------------------------ +12/10/02: jmdyck + Various minor adjustments to the code that Dave checked in today. + Updated test/yacc_{inf,unused}.exp to reflect today's changes. + +12/10/02: beazley + Incorporated a variety of minor bug fixes to empty production + handling and infinite recursion checking. Contributed by + Michael Dyck. + +12/10/02: beazley + Removed bogus recover() method call in yacc.restart() + +Version 1.2 +------------------------------ +11/27/02: beazley + Lexer and parser objects are now available as an attribute + of tokens and slices respectively. For example: + + def t_NUMBER(t): + r'\d+' + print t.lexer + + def p_expr_plus(t): + 'expr: expr PLUS expr' + print t.lexer + print t.parser + + This can be used for state management (if needed). + +10/31/02: beazley + Modified yacc.py to work with Python optimize mode. To make + this work, you need to use + + yacc.yacc(optimize=1) + + Furthermore, you need to first run Python in normal mode + to generate the necessary parsetab.py files. After that, + you can use python -O or python -OO. + + Note: optimized mode turns off a lot of error checking. + Only use when you are sure that your grammar is working. + Make sure parsetab.py is up to date! + +10/30/02: beazley + Added cloning of Lexer objects. For example: + + import copy + l = lex.lex() + lc = copy.copy(l) + + l.input("Some text") + lc.input("Some other text") + ... + + This might be useful if the same "lexer" is meant to + be used in different contexts---or if multiple lexers + are running concurrently. + +10/30/02: beazley + Fixed subtle bug with first set computation and empty productions. + Patch submitted by Michael Dyck. + +10/30/02: beazley + Fixed error messages to use "filename:line: message" instead + of "filename:line. message". This makes error reporting more + friendly to emacs. Patch submitted by François Pinard. + +10/30/02: beazley + Improvements to parser.out file. Terminals and nonterminals + are sorted instead of being printed in random order. + Patch submitted by François Pinard. + +10/30/02: beazley + Improvements to parser.out file output. Rules are now printed + in a way that's easier to understand. Contributed by Russ Cox. + +10/30/02: beazley + Added 'nonassoc' associativity support. This can be used + to disable the chaining of operators like a < b < c. + To use, simply specify 'nonassoc' in the precedence table + + precedence = ( + ('nonassoc', 'LESSTHAN', 'GREATERTHAN'), # Nonassociative operators + ('left', 'PLUS', 'MINUS'), + ('left', 'TIMES', 'DIVIDE'), + ('right', 'UMINUS'), # Unary minus operator + ) + + Patch contributed by Russ Cox. + +10/30/02: beazley + Modified the lexer to provide optional support for Python -O and -OO + modes. To make this work, Python *first* needs to be run in + unoptimized mode. This reads the lexing information and creates a + file "lextab.py". Then, run lex like this: + + # module foo.py + ... + ... + lex.lex(optimize=1) + + Once the lextab file has been created, subsequent calls to + lex.lex() will read data from the lextab file instead of using + introspection. In optimized mode (-O, -OO) everything should + work normally despite the loss of doc strings. + + To change the name of the file 'lextab.py' use the following: + + lex.lex(lextab="footab") + + (this creates a file footab.py) + + +Version 1.1 October 25, 2001 +------------------------------ + +10/25/01: beazley + Modified the table generator to produce much more compact data. + This should greatly reduce the size of the parsetab.py[c] file. + Caveat: the tables still need to be constructed so a little more + work is done in parsetab on import. + +10/25/01: beazley + There may be a possible bug in the cycle detector that reports errors + about infinite recursion. I'm having a little trouble tracking it + down, but if you get this problem, you can disable the cycle + detector as follows: + + yacc.yacc(check_recursion = 0) + +10/25/01: beazley + Fixed a bug in lex.py that sometimes caused illegal characters to be + reported incorrectly. Reported by Sverre Jørgensen. + +7/8/01 : beazley + Added a reference to the underlying lexer object when tokens are handled by + functions. The lexer is available as the 'lexer' attribute. This + was added to provide better lexing support for languages such as Fortran + where certain types of tokens can't be conveniently expressed as regular + expressions (and where the tokenizing function may want to perform a + little backtracking). Suggested by Pearu Peterson. + +6/20/01 : beazley + Modified yacc() function so that an optional starting symbol can be specified. + For example: + + yacc.yacc(start="statement") + + Normally yacc always treats the first production rule as the starting symbol. + However, if you are debugging your grammar it may be useful to specify + an alternative starting symbol. Idea suggested by Rich Salz. + +Version 1.0 June 18, 2001 +-------------------------- +Initial public offering + diff --git a/src/Mod/OpenSCAD/ply/PKG-INFO b/src/Mod/OpenSCAD/ply/PKG-INFO new file mode 100644 index 000000000..0080e0282 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/PKG-INFO @@ -0,0 +1,22 @@ +Metadata-Version: 1.0 +Name: ply +Version: 3.4 +Summary: Python Lex & Yacc +Home-page: http://www.dabeaz.com/ply/ +Author: David Beazley +Author-email: dave@dabeaz.com +License: BSD +Description: + PLY is yet another implementation of lex and yacc for Python. Some notable + features include the fact that its implemented entirely in Python and it + uses LALR(1) parsing which is efficient and well suited for larger grammars. + + PLY provides most of the standard lex/yacc features including support for empty + productions, precedence rules, error recovery, and support for ambiguous grammars. + + PLY is extremely easy to use and provides very extensive error checking. + It is compatible with both Python 2 and Python 3. + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2 diff --git a/src/Mod/OpenSCAD/ply/README b/src/Mod/OpenSCAD/ply/README new file mode 100644 index 000000000..f384d1a93 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/README @@ -0,0 +1,271 @@ +PLY (Python Lex-Yacc) Version 3.4 + +Copyright (C) 2001-2011, +David M. Beazley (Dabeaz LLC) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of the David Beazley or Dabeaz LLC may be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Introduction +============ + +PLY is a 100% Python implementation of the common parsing tools lex +and yacc. Here are a few highlights: + + - PLY is very closely modeled after traditional lex/yacc. + If you know how to use these tools in C, you will find PLY + to be similar. + + - PLY provides *very* extensive error reporting and diagnostic + information to assist in parser construction. The original + implementation was developed for instructional purposes. As + a result, the system tries to identify the most common types + of errors made by novice users. + + - PLY provides full support for empty productions, error recovery, + precedence specifiers, and moderately ambiguous grammars. + + - Parsing is based on LR-parsing which is fast, memory efficient, + better suited to large grammars, and which has a number of nice + properties when dealing with syntax errors and other parsing problems. + Currently, PLY builds its parsing tables using the LALR(1) + algorithm used in yacc. + + - PLY uses Python introspection features to build lexers and parsers. + This greatly simplifies the task of parser construction since it reduces + the number of files and eliminates the need to run a separate lex/yacc + tool before running your program. + + - PLY can be used to build parsers for "real" programming languages. + Although it is not ultra-fast due to its Python implementation, + PLY can be used to parse grammars consisting of several hundred + rules (as might be found for a language like C). The lexer and LR + parser are also reasonably efficient when parsing typically + sized programs. People have used PLY to build parsers for + C, C++, ADA, and other real programming languages. + +How to Use +========== + +PLY consists of two files : lex.py and yacc.py. These are contained +within the 'ply' directory which may also be used as a Python package. +To use PLY, simply copy the 'ply' directory to your project and import +lex and yacc from the associated 'ply' package. For example: + + import ply.lex as lex + import ply.yacc as yacc + +Alternatively, you can copy just the files lex.py and yacc.py +individually and use them as modules. For example: + + import lex + import yacc + +The file setup.py can be used to install ply using distutils. + +The file doc/ply.html contains complete documentation on how to use +the system. + +The example directory contains several different examples including a +PLY specification for ANSI C as given in K&R 2nd Ed. + +A simple example is found at the end of this document + +Requirements +============ +PLY requires the use of Python 2.2 or greater. However, you should +use the latest Python release if possible. It should work on just +about any platform. PLY has been tested with both CPython and Jython. +It also seems to work with IronPython. + +Resources +========= +More information about PLY can be obtained on the PLY webpage at: + + http://www.dabeaz.com/ply + +For a detailed overview of parsing theory, consult the excellent +book "Compilers : Principles, Techniques, and Tools" by Aho, Sethi, and +Ullman. The topics found in "Lex & Yacc" by Levine, Mason, and Brown +may also be useful. + +A Google group for PLY can be found at + + http://groups.google.com/group/ply-hack + +Acknowledgments +=============== +A special thanks is in order for all of the students in CS326 who +suffered through about 25 different versions of these tools :-). + +The CHANGES file acknowledges those who have contributed patches. + +Elias Ioup did the first implementation of LALR(1) parsing in PLY-1.x. +Andrew Waters and Markus Schoepflin were instrumental in reporting bugs +and testing a revised LALR(1) implementation for PLY-2.0. + +Special Note for PLY-3.0 +======================== +PLY-3.0 the first PLY release to support Python 3. However, backwards +compatibility with Python 2.2 is still preserved. PLY provides dual +Python 2/3 compatibility by restricting its implementation to a common +subset of basic language features. You should not convert PLY using +2to3--it is not necessary and may in fact break the implementation. + +Example +======= + +Here is a simple example showing a PLY implementation of a calculator +with variables. + +# ----------------------------------------------------------------------------- +# calc.py +# +# A simple calculator with variables. +# ----------------------------------------------------------------------------- + +tokens = ( + 'NAME','NUMBER', + 'PLUS','MINUS','TIMES','DIVIDE','EQUALS', + 'LPAREN','RPAREN', + ) + +# Tokens + +t_PLUS = r'\+' +t_MINUS = r'-' +t_TIMES = r'\*' +t_DIVIDE = r'/' +t_EQUALS = r'=' +t_LPAREN = r'\(' +t_RPAREN = r'\)' +t_NAME = r'[a-zA-Z_][a-zA-Z0-9_]*' + +def t_NUMBER(t): + r'\d+' + t.value = int(t.value) + return t + +# Ignored characters +t_ignore = " \t" + +def t_newline(t): + r'\n+' + t.lexer.lineno += t.value.count("\n") + +def t_error(t): + print("Illegal character '%s'" % t.value[0]) + t.lexer.skip(1) + +# Build the lexer +import ply.lex as lex +lex.lex() + +# Precedence rules for the arithmetic operators +precedence = ( + ('left','PLUS','MINUS'), + ('left','TIMES','DIVIDE'), + ('right','UMINUS'), + ) + +# dictionary of names (for storing variables) +names = { } + +def p_statement_assign(p): + 'statement : NAME EQUALS expression' + names[p[1]] = p[3] + +def p_statement_expr(p): + 'statement : expression' + print(p[1]) + +def p_expression_binop(p): + '''expression : expression PLUS expression + | expression MINUS expression + | expression TIMES expression + | expression DIVIDE expression''' + if p[2] == '+' : p[0] = p[1] + p[3] + elif p[2] == '-': p[0] = p[1] - p[3] + elif p[2] == '*': p[0] = p[1] * p[3] + elif p[2] == '/': p[0] = p[1] / p[3] + +def p_expression_uminus(p): + 'expression : MINUS expression %prec UMINUS' + p[0] = -p[2] + +def p_expression_group(p): + 'expression : LPAREN expression RPAREN' + p[0] = p[2] + +def p_expression_number(p): + 'expression : NUMBER' + p[0] = p[1] + +def p_expression_name(p): + 'expression : NAME' + try: + p[0] = names[p[1]] + except LookupError: + print("Undefined name '%s'" % p[1]) + p[0] = 0 + +def p_error(p): + print("Syntax error at '%s'" % p.value) + +import ply.yacc as yacc +yacc.yacc() + +while 1: + try: + s = raw_input('calc > ') # use input() on Python 3 + except EOFError: + break + yacc.parse(s) + + +Bug Reports and Patches +======================= +My goal with PLY is to simply have a decent lex/yacc implementation +for Python. As a general rule, I don't spend huge amounts of time +working on it unless I receive very specific bug reports and/or +patches to fix problems. I also try to incorporate submitted feature +requests and enhancements into each new version. To contact me about +bugs and/or new features, please send email to dave@dabeaz.com. + +In addition there is a Google group for discussing PLY related issues at + + http://groups.google.com/group/ply-hack + +-- Dave + + + + + + + + + diff --git a/src/Mod/OpenSCAD/ply/TODO b/src/Mod/OpenSCAD/ply/TODO new file mode 100644 index 000000000..f4800aacf --- /dev/null +++ b/src/Mod/OpenSCAD/ply/TODO @@ -0,0 +1,16 @@ +The PLY to-do list: + +1. Finish writing the C Preprocessor module. Started in the + file ply/cpp.py + +2. Create and document libraries of useful tokens. + +3. Expand the examples/yply tool that parses bison/yacc + files. + +4. Think of various diabolical things to do with the + new yacc internals. For example, it is now possible + to specify grammrs using completely different schemes + than the reflection approach used by PLY. + + diff --git a/src/Mod/OpenSCAD/ply/__init__.py b/src/Mod/OpenSCAD/ply/__init__.py new file mode 100644 index 000000000..853a98554 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/__init__.py @@ -0,0 +1,4 @@ +# PLY package +# Author: David Beazley (dave@dabeaz.com) + +__all__ = ['lex','yacc'] diff --git a/src/Mod/OpenSCAD/ply/lex.py b/src/Mod/OpenSCAD/ply/lex.py new file mode 100644 index 000000000..bd32da932 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/lex.py @@ -0,0 +1,1058 @@ +# ----------------------------------------------------------------------------- +# ply: lex.py +# +# Copyright (C) 2001-2011, +# David M. Beazley (Dabeaz LLC) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * Neither the name of the David Beazley or Dabeaz LLC may be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ----------------------------------------------------------------------------- + +__version__ = "3.4" +__tabversion__ = "3.2" # Version of table file used + +import re, sys, types, copy, os + +# This tuple contains known string types +try: + # Python 2.6 + StringTypes = (types.StringType, types.UnicodeType) +except AttributeError: + # Python 3.0 + StringTypes = (str, bytes) + +# Extract the code attribute of a function. Different implementations +# are for Python 2/3 compatibility. + +if sys.version_info[0] < 3: + def func_code(f): + return f.func_code +else: + def func_code(f): + return f.__code__ + +# This regular expression is used to match valid token names +_is_identifier = re.compile(r'^[a-zA-Z0-9_]+$') + +# Exception thrown when invalid token encountered and no default error +# handler is defined. + +class LexError(Exception): + def __init__(self,message,s): + self.args = (message,) + self.text = s + +# Token class. This class is used to represent the tokens produced. +class LexToken(object): + def __str__(self): + return "LexToken(%s,%r,%d,%d)" % (self.type,self.value,self.lineno,self.lexpos) + def __repr__(self): + return str(self) + +# This object is a stand-in for a logging object created by the +# logging module. + +class PlyLogger(object): + def __init__(self,f): + self.f = f + def critical(self,msg,*args,**kwargs): + self.f.write((msg % args) + "\n") + + def warning(self,msg,*args,**kwargs): + self.f.write("WARNING: "+ (msg % args) + "\n") + + def error(self,msg,*args,**kwargs): + self.f.write("ERROR: " + (msg % args) + "\n") + + info = critical + debug = critical + +# Null logger is used when no output is generated. Does nothing. +class NullLogger(object): + def __getattribute__(self,name): + return self + def __call__(self,*args,**kwargs): + return self + +# ----------------------------------------------------------------------------- +# === Lexing Engine === +# +# The following Lexer class implements the lexer runtime. There are only +# a few public methods and attributes: +# +# input() - Store a new string in the lexer +# token() - Get the next token +# clone() - Clone the lexer +# +# lineno - Current line number +# lexpos - Current position in the input string +# ----------------------------------------------------------------------------- + +class Lexer: + def __init__(self): + self.lexre = None # Master regular expression. This is a list of + # tuples (re,findex) where re is a compiled + # regular expression and findex is a list + # mapping regex group numbers to rules + self.lexretext = None # Current regular expression strings + self.lexstatere = {} # Dictionary mapping lexer states to master regexs + self.lexstateretext = {} # Dictionary mapping lexer states to regex strings + self.lexstaterenames = {} # Dictionary mapping lexer states to symbol names + self.lexstate = "INITIAL" # Current lexer state + self.lexstatestack = [] # Stack of lexer states + self.lexstateinfo = None # State information + self.lexstateignore = {} # Dictionary of ignored characters for each state + self.lexstateerrorf = {} # Dictionary of error functions for each state + self.lexreflags = 0 # Optional re compile flags + self.lexdata = None # Actual input data (as a string) + self.lexpos = 0 # Current position in input text + self.lexlen = 0 # Length of the input text + self.lexerrorf = None # Error rule (if any) + self.lextokens = None # List of valid tokens + self.lexignore = "" # Ignored characters + self.lexliterals = "" # Literal characters that can be passed through + self.lexmodule = None # Module + self.lineno = 1 # Current line number + self.lexoptimize = 0 # Optimized mode + + def clone(self,object=None): + c = copy.copy(self) + + # If the object parameter has been supplied, it means we are attaching the + # lexer to a new object. In this case, we have to rebind all methods in + # the lexstatere and lexstateerrorf tables. + + if object: + newtab = { } + for key, ritem in self.lexstatere.items(): + newre = [] + for cre, findex in ritem: + newfindex = [] + for f in findex: + if not f or not f[0]: + newfindex.append(f) + continue + newfindex.append((getattr(object,f[0].__name__),f[1])) + newre.append((cre,newfindex)) + newtab[key] = newre + c.lexstatere = newtab + c.lexstateerrorf = { } + for key, ef in self.lexstateerrorf.items(): + c.lexstateerrorf[key] = getattr(object,ef.__name__) + c.lexmodule = object + return c + + # ------------------------------------------------------------ + # writetab() - Write lexer information to a table file + # ------------------------------------------------------------ + def writetab(self,tabfile,outputdir=""): + if isinstance(tabfile,types.ModuleType): + return + basetabfilename = tabfile.split(".")[-1] + filename = os.path.join(outputdir,basetabfilename)+".py" + tf = open(filename,"w") + tf.write("# %s.py. This file automatically created by PLY (version %s). Don't edit!\n" % (tabfile,__version__)) + tf.write("_tabversion = %s\n" % repr(__version__)) + tf.write("_lextokens = %s\n" % repr(self.lextokens)) + tf.write("_lexreflags = %s\n" % repr(self.lexreflags)) + tf.write("_lexliterals = %s\n" % repr(self.lexliterals)) + tf.write("_lexstateinfo = %s\n" % repr(self.lexstateinfo)) + + tabre = { } + # Collect all functions in the initial state + initial = self.lexstatere["INITIAL"] + initialfuncs = [] + for part in initial: + for f in part[1]: + if f and f[0]: + initialfuncs.append(f) + + for key, lre in self.lexstatere.items(): + titem = [] + for i in range(len(lre)): + titem.append((self.lexstateretext[key][i],_funcs_to_names(lre[i][1],self.lexstaterenames[key][i]))) + tabre[key] = titem + + tf.write("_lexstatere = %s\n" % repr(tabre)) + tf.write("_lexstateignore = %s\n" % repr(self.lexstateignore)) + + taberr = { } + for key, ef in self.lexstateerrorf.items(): + if ef: + taberr[key] = ef.__name__ + else: + taberr[key] = None + tf.write("_lexstateerrorf = %s\n" % repr(taberr)) + tf.close() + + # ------------------------------------------------------------ + # readtab() - Read lexer information from a tab file + # ------------------------------------------------------------ + def readtab(self,tabfile,fdict): + if isinstance(tabfile,types.ModuleType): + lextab = tabfile + else: + if sys.version_info[0] < 3: + exec("import %s as lextab" % tabfile) + else: + env = { } + exec("import %s as lextab" % tabfile, env,env) + lextab = env['lextab'] + + if getattr(lextab,"_tabversion","0.0") != __version__: + raise ImportError("Inconsistent PLY version") + + self.lextokens = lextab._lextokens + self.lexreflags = lextab._lexreflags + self.lexliterals = lextab._lexliterals + self.lexstateinfo = lextab._lexstateinfo + self.lexstateignore = lextab._lexstateignore + self.lexstatere = { } + self.lexstateretext = { } + for key,lre in lextab._lexstatere.items(): + titem = [] + txtitem = [] + for i in range(len(lre)): + titem.append((re.compile(lre[i][0],lextab._lexreflags | re.VERBOSE),_names_to_funcs(lre[i][1],fdict))) + txtitem.append(lre[i][0]) + self.lexstatere[key] = titem + self.lexstateretext[key] = txtitem + self.lexstateerrorf = { } + for key,ef in lextab._lexstateerrorf.items(): + self.lexstateerrorf[key] = fdict[ef] + self.begin('INITIAL') + + # ------------------------------------------------------------ + # input() - Push a new string into the lexer + # ------------------------------------------------------------ + def input(self,s): + # Pull off the first character to see if s looks like a string + c = s[:1] + if not isinstance(c,StringTypes): + raise ValueError("Expected a string") + self.lexdata = s + self.lexpos = 0 + self.lexlen = len(s) + + # ------------------------------------------------------------ + # begin() - Changes the lexing state + # ------------------------------------------------------------ + def begin(self,state): + if not state in self.lexstatere: + raise ValueError("Undefined state") + self.lexre = self.lexstatere[state] + self.lexretext = self.lexstateretext[state] + self.lexignore = self.lexstateignore.get(state,"") + self.lexerrorf = self.lexstateerrorf.get(state,None) + self.lexstate = state + + # ------------------------------------------------------------ + # push_state() - Changes the lexing state and saves old on stack + # ------------------------------------------------------------ + def push_state(self,state): + self.lexstatestack.append(self.lexstate) + self.begin(state) + + # ------------------------------------------------------------ + # pop_state() - Restores the previous state + # ------------------------------------------------------------ + def pop_state(self): + self.begin(self.lexstatestack.pop()) + + # ------------------------------------------------------------ + # current_state() - Returns the current lexing state + # ------------------------------------------------------------ + def current_state(self): + return self.lexstate + + # ------------------------------------------------------------ + # skip() - Skip ahead n characters + # ------------------------------------------------------------ + def skip(self,n): + self.lexpos += n + + # ------------------------------------------------------------ + # opttoken() - Return the next token from the Lexer + # + # Note: This function has been carefully implemented to be as fast + # as possible. Don't make changes unless you really know what + # you are doing + # ------------------------------------------------------------ + def token(self): + # Make local copies of frequently referenced attributes + lexpos = self.lexpos + lexlen = self.lexlen + lexignore = self.lexignore + lexdata = self.lexdata + + while lexpos < lexlen: + # This code provides some short-circuit code for whitespace, tabs, and other ignored characters + if lexdata[lexpos] in lexignore: + lexpos += 1 + continue + + # Look for a regular expression match + for lexre,lexindexfunc in self.lexre: + m = lexre.match(lexdata,lexpos) + if not m: continue + + # Create a token for return + tok = LexToken() + tok.value = m.group() + tok.lineno = self.lineno + tok.lexpos = lexpos + + i = m.lastindex + func,tok.type = lexindexfunc[i] + + if not func: + # If no token type was set, it's an ignored token + if tok.type: + self.lexpos = m.end() + return tok + else: + lexpos = m.end() + break + + lexpos = m.end() + + # If token is processed by a function, call it + + tok.lexer = self # Set additional attributes useful in token rules + self.lexmatch = m + self.lexpos = lexpos + + newtok = func(tok) + + # Every function must return a token, if nothing, we just move to next token + if not newtok: + lexpos = self.lexpos # This is here in case user has updated lexpos. + lexignore = self.lexignore # This is here in case there was a state change + break + + # Verify type of the token. If not in the token map, raise an error + if not self.lexoptimize: + if not newtok.type in self.lextokens: + raise LexError("%s:%d: Rule '%s' returned an unknown token type '%s'" % ( + func_code(func).co_filename, func_code(func).co_firstlineno, + func.__name__, newtok.type),lexdata[lexpos:]) + + return newtok + else: + # No match, see if in literals + if lexdata[lexpos] in self.lexliterals: + tok = LexToken() + tok.value = lexdata[lexpos] + tok.lineno = self.lineno + tok.type = tok.value + tok.lexpos = lexpos + self.lexpos = lexpos + 1 + return tok + + # No match. Call t_error() if defined. + if self.lexerrorf: + tok = LexToken() + tok.value = self.lexdata[lexpos:] + tok.lineno = self.lineno + tok.type = "error" + tok.lexer = self + tok.lexpos = lexpos + self.lexpos = lexpos + newtok = self.lexerrorf(tok) + if lexpos == self.lexpos: + # Error method didn't change text position at all. This is an error. + raise LexError("Scanning error. Illegal character '%s'" % (lexdata[lexpos]), lexdata[lexpos:]) + lexpos = self.lexpos + if not newtok: continue + return newtok + + self.lexpos = lexpos + raise LexError("Illegal character '%s' at index %d" % (lexdata[lexpos],lexpos), lexdata[lexpos:]) + + self.lexpos = lexpos + 1 + if self.lexdata is None: + raise RuntimeError("No input string given with input()") + return None + + # Iterator interface + def __iter__(self): + return self + + def next(self): + t = self.token() + if t is None: + raise StopIteration + return t + + __next__ = next + +# ----------------------------------------------------------------------------- +# ==== Lex Builder === +# +# The functions and classes below are used to collect lexing information +# and build a Lexer object from it. +# ----------------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# get_caller_module_dict() +# +# This function returns a dictionary containing all of the symbols defined within +# a caller further down the call stack. This is used to get the environment +# associated with the yacc() call if none was provided. +# ----------------------------------------------------------------------------- + +def get_caller_module_dict(levels): + try: + raise RuntimeError + except RuntimeError: + e,b,t = sys.exc_info() + f = t.tb_frame + while levels > 0: + f = f.f_back + levels -= 1 + ldict = f.f_globals.copy() + if f.f_globals != f.f_locals: + ldict.update(f.f_locals) + + return ldict + +# ----------------------------------------------------------------------------- +# _funcs_to_names() +# +# Given a list of regular expression functions, this converts it to a list +# suitable for output to a table file +# ----------------------------------------------------------------------------- + +def _funcs_to_names(funclist,namelist): + result = [] + for f,name in zip(funclist,namelist): + if f and f[0]: + result.append((name, f[1])) + else: + result.append(f) + return result + +# ----------------------------------------------------------------------------- +# _names_to_funcs() +# +# Given a list of regular expression function names, this converts it back to +# functions. +# ----------------------------------------------------------------------------- + +def _names_to_funcs(namelist,fdict): + result = [] + for n in namelist: + if n and n[0]: + result.append((fdict[n[0]],n[1])) + else: + result.append(n) + return result + +# ----------------------------------------------------------------------------- +# _form_master_re() +# +# This function takes a list of all of the regex components and attempts to +# form the master regular expression. Given limitations in the Python re +# module, it may be necessary to break the master regex into separate expressions. +# ----------------------------------------------------------------------------- + +def _form_master_re(relist,reflags,ldict,toknames): + if not relist: return [] + regex = "|".join(relist) + try: + lexre = re.compile(regex,re.VERBOSE | reflags) + + # Build the index to function map for the matching engine + lexindexfunc = [ None ] * (max(lexre.groupindex.values())+1) + lexindexnames = lexindexfunc[:] + + for f,i in lexre.groupindex.items(): + handle = ldict.get(f,None) + if type(handle) in (types.FunctionType, types.MethodType): + lexindexfunc[i] = (handle,toknames[f]) + lexindexnames[i] = f + elif handle is not None: + lexindexnames[i] = f + if f.find("ignore_") > 0: + lexindexfunc[i] = (None,None) + else: + lexindexfunc[i] = (None, toknames[f]) + + return [(lexre,lexindexfunc)],[regex],[lexindexnames] + except Exception: + m = int(len(relist)/2) + if m == 0: m = 1 + llist, lre, lnames = _form_master_re(relist[:m],reflags,ldict,toknames) + rlist, rre, rnames = _form_master_re(relist[m:],reflags,ldict,toknames) + return llist+rlist, lre+rre, lnames+rnames + +# ----------------------------------------------------------------------------- +# def _statetoken(s,names) +# +# Given a declaration name s of the form "t_" and a dictionary whose keys are +# state names, this function returns a tuple (states,tokenname) where states +# is a tuple of state names and tokenname is the name of the token. For example, +# calling this with s = "t_foo_bar_SPAM" might return (('foo','bar'),'SPAM') +# ----------------------------------------------------------------------------- + +def _statetoken(s,names): + nonstate = 1 + parts = s.split("_") + for i in range(1,len(parts)): + if not parts[i] in names and parts[i] != 'ANY': break + if i > 1: + states = tuple(parts[1:i]) + else: + states = ('INITIAL',) + + if 'ANY' in states: + states = tuple(names) + + tokenname = "_".join(parts[i:]) + return (states,tokenname) + + +# ----------------------------------------------------------------------------- +# LexerReflect() +# +# This class represents information needed to build a lexer as extracted from a +# user's input file. +# ----------------------------------------------------------------------------- +class LexerReflect(object): + def __init__(self,ldict,log=None,reflags=0): + self.ldict = ldict + self.error_func = None + self.tokens = [] + self.reflags = reflags + self.stateinfo = { 'INITIAL' : 'inclusive'} + self.files = {} + self.error = 0 + + if log is None: + self.log = PlyLogger(sys.stderr) + else: + self.log = log + + # Get all of the basic information + def get_all(self): + self.get_tokens() + self.get_literals() + self.get_states() + self.get_rules() + + # Validate all of the information + def validate_all(self): + self.validate_tokens() + self.validate_literals() + self.validate_rules() + return self.error + + # Get the tokens map + def get_tokens(self): + tokens = self.ldict.get("tokens",None) + if not tokens: + self.log.error("No token list is defined") + self.error = 1 + return + + if not isinstance(tokens,(list, tuple)): + self.log.error("tokens must be a list or tuple") + self.error = 1 + return + + if not tokens: + self.log.error("tokens is empty") + self.error = 1 + return + + self.tokens = tokens + + # Validate the tokens + def validate_tokens(self): + terminals = {} + for n in self.tokens: + if not _is_identifier.match(n): + self.log.error("Bad token name '%s'",n) + self.error = 1 + if n in terminals: + self.log.warning("Token '%s' multiply defined", n) + terminals[n] = 1 + + # Get the literals specifier + def get_literals(self): + self.literals = self.ldict.get("literals","") + + # Validate literals + def validate_literals(self): + try: + for c in self.literals: + if not isinstance(c,StringTypes) or len(c) > 1: + self.log.error("Invalid literal %s. Must be a single character", repr(c)) + self.error = 1 + continue + + except TypeError: + self.log.error("Invalid literals specification. literals must be a sequence of characters") + self.error = 1 + + def get_states(self): + self.states = self.ldict.get("states",None) + # Build statemap + if self.states: + if not isinstance(self.states,(tuple,list)): + self.log.error("states must be defined as a tuple or list") + self.error = 1 + else: + for s in self.states: + if not isinstance(s,tuple) or len(s) != 2: + self.log.error("Invalid state specifier %s. Must be a tuple (statename,'exclusive|inclusive')",repr(s)) + self.error = 1 + continue + name, statetype = s + if not isinstance(name,StringTypes): + self.log.error("State name %s must be a string", repr(name)) + self.error = 1 + continue + if not (statetype == 'inclusive' or statetype == 'exclusive'): + self.log.error("State type for state %s must be 'inclusive' or 'exclusive'",name) + self.error = 1 + continue + if name in self.stateinfo: + self.log.error("State '%s' already defined",name) + self.error = 1 + continue + self.stateinfo[name] = statetype + + # Get all of the symbols with a t_ prefix and sort them into various + # categories (functions, strings, error functions, and ignore characters) + + def get_rules(self): + tsymbols = [f for f in self.ldict if f[:2] == 't_' ] + + # Now build up a list of functions and a list of strings + + self.toknames = { } # Mapping of symbols to token names + self.funcsym = { } # Symbols defined as functions + self.strsym = { } # Symbols defined as strings + self.ignore = { } # Ignore strings by state + self.errorf = { } # Error functions by state + + for s in self.stateinfo: + self.funcsym[s] = [] + self.strsym[s] = [] + + if len(tsymbols) == 0: + self.log.error("No rules of the form t_rulename are defined") + self.error = 1 + return + + for f in tsymbols: + t = self.ldict[f] + states, tokname = _statetoken(f,self.stateinfo) + self.toknames[f] = tokname + + if hasattr(t,"__call__"): + if tokname == 'error': + for s in states: + self.errorf[s] = t + elif tokname == 'ignore': + line = func_code(t).co_firstlineno + file = func_code(t).co_filename + self.log.error("%s:%d: Rule '%s' must be defined as a string",file,line,t.__name__) + self.error = 1 + else: + for s in states: + self.funcsym[s].append((f,t)) + elif isinstance(t, StringTypes): + if tokname == 'ignore': + for s in states: + self.ignore[s] = t + if "\\" in t: + self.log.warning("%s contains a literal backslash '\\'",f) + + elif tokname == 'error': + self.log.error("Rule '%s' must be defined as a function", f) + self.error = 1 + else: + for s in states: + self.strsym[s].append((f,t)) + else: + self.log.error("%s not defined as a function or string", f) + self.error = 1 + + # Sort the functions by line number + for f in self.funcsym.values(): + if sys.version_info[0] < 3: + f.sort(lambda x,y: cmp(func_code(x[1]).co_firstlineno,func_code(y[1]).co_firstlineno)) + else: + # Python 3.0 + f.sort(key=lambda x: func_code(x[1]).co_firstlineno) + + # Sort the strings by regular expression length + for s in self.strsym.values(): + if sys.version_info[0] < 3: + s.sort(lambda x,y: (len(x[1]) < len(y[1])) - (len(x[1]) > len(y[1]))) + else: + # Python 3.0 + s.sort(key=lambda x: len(x[1]),reverse=True) + + # Validate all of the t_rules collected + def validate_rules(self): + for state in self.stateinfo: + # Validate all rules defined by functions + + + + for fname, f in self.funcsym[state]: + line = func_code(f).co_firstlineno + file = func_code(f).co_filename + self.files[file] = 1 + + tokname = self.toknames[fname] + if isinstance(f, types.MethodType): + reqargs = 2 + else: + reqargs = 1 + nargs = func_code(f).co_argcount + if nargs > reqargs: + self.log.error("%s:%d: Rule '%s' has too many arguments",file,line,f.__name__) + self.error = 1 + continue + + if nargs < reqargs: + self.log.error("%s:%d: Rule '%s' requires an argument", file,line,f.__name__) + self.error = 1 + continue + + if not f.__doc__: + self.log.error("%s:%d: No regular expression defined for rule '%s'",file,line,f.__name__) + self.error = 1 + continue + + try: + c = re.compile("(?P<%s>%s)" % (fname,f.__doc__), re.VERBOSE | self.reflags) + if c.match(""): + self.log.error("%s:%d: Regular expression for rule '%s' matches empty string", file,line,f.__name__) + self.error = 1 + except re.error: + _etype, e, _etrace = sys.exc_info() + self.log.error("%s:%d: Invalid regular expression for rule '%s'. %s", file,line,f.__name__,e) + if '#' in f.__doc__: + self.log.error("%s:%d. Make sure '#' in rule '%s' is escaped with '\\#'",file,line, f.__name__) + self.error = 1 + + # Validate all rules defined by strings + for name,r in self.strsym[state]: + tokname = self.toknames[name] + if tokname == 'error': + self.log.error("Rule '%s' must be defined as a function", name) + self.error = 1 + continue + + if not tokname in self.tokens and tokname.find("ignore_") < 0: + self.log.error("Rule '%s' defined for an unspecified token %s",name,tokname) + self.error = 1 + continue + + try: + c = re.compile("(?P<%s>%s)" % (name,r),re.VERBOSE | self.reflags) + if (c.match("")): + self.log.error("Regular expression for rule '%s' matches empty string",name) + self.error = 1 + except re.error: + _etype, e, _etrace = sys.exc_info() + self.log.error("Invalid regular expression for rule '%s'. %s",name,e) + if '#' in r: + self.log.error("Make sure '#' in rule '%s' is escaped with '\\#'",name) + self.error = 1 + + if not self.funcsym[state] and not self.strsym[state]: + self.log.error("No rules defined for state '%s'",state) + self.error = 1 + + # Validate the error function + efunc = self.errorf.get(state,None) + if efunc: + f = efunc + line = func_code(f).co_firstlineno + file = func_code(f).co_filename + self.files[file] = 1 + + if isinstance(f, types.MethodType): + reqargs = 2 + else: + reqargs = 1 + nargs = func_code(f).co_argcount + if nargs > reqargs: + self.log.error("%s:%d: Rule '%s' has too many arguments",file,line,f.__name__) + self.error = 1 + + if nargs < reqargs: + self.log.error("%s:%d: Rule '%s' requires an argument", file,line,f.__name__) + self.error = 1 + + for f in self.files: + self.validate_file(f) + + + # ----------------------------------------------------------------------------- + # validate_file() + # + # This checks to see if there are duplicated t_rulename() functions or strings + # in the parser input file. This is done using a simple regular expression + # match on each line in the given file. + # ----------------------------------------------------------------------------- + + def validate_file(self,filename): + import os.path + base,ext = os.path.splitext(filename) + if ext != '.py': return # No idea what the file is. Return OK + + try: + f = open(filename) + lines = f.readlines() + f.close() + except IOError: + return # Couldn't find the file. Don't worry about it + + fre = re.compile(r'\s*def\s+(t_[a-zA-Z_0-9]*)\(') + sre = re.compile(r'\s*(t_[a-zA-Z_0-9]*)\s*=') + + counthash = { } + linen = 1 + for l in lines: + m = fre.match(l) + if not m: + m = sre.match(l) + if m: + name = m.group(1) + prev = counthash.get(name) + if not prev: + counthash[name] = linen + else: + self.log.error("%s:%d: Rule %s redefined. Previously defined on line %d",filename,linen,name,prev) + self.error = 1 + linen += 1 + +# ----------------------------------------------------------------------------- +# lex(module) +# +# Build all of the regular expression rules from definitions in the supplied module +# ----------------------------------------------------------------------------- +def lex(module=None,object=None,debug=0,optimize=0,lextab="lextab",reflags=0,nowarn=0,outputdir="", debuglog=None, errorlog=None): + global lexer + ldict = None + stateinfo = { 'INITIAL' : 'inclusive'} + lexobj = Lexer() + lexobj.lexoptimize = optimize + global token,input + + if errorlog is None: + errorlog = PlyLogger(sys.stderr) + + if debug: + if debuglog is None: + debuglog = PlyLogger(sys.stderr) + + # Get the module dictionary used for the lexer + if object: module = object + + if module: + _items = [(k,getattr(module,k)) for k in dir(module)] + ldict = dict(_items) + else: + ldict = get_caller_module_dict(2) + + # Collect parser information from the dictionary + linfo = LexerReflect(ldict,log=errorlog,reflags=reflags) + linfo.get_all() + if not optimize: + if linfo.validate_all(): + raise SyntaxError("Can't build lexer") + + if optimize and lextab: + try: + lexobj.readtab(lextab,ldict) + token = lexobj.token + input = lexobj.input + lexer = lexobj + return lexobj + + except ImportError: + pass + + # Dump some basic debugging information + if debug: + debuglog.info("lex: tokens = %r", linfo.tokens) + debuglog.info("lex: literals = %r", linfo.literals) + debuglog.info("lex: states = %r", linfo.stateinfo) + + # Build a dictionary of valid token names + lexobj.lextokens = { } + for n in linfo.tokens: + lexobj.lextokens[n] = 1 + + # Get literals specification + if isinstance(linfo.literals,(list,tuple)): + lexobj.lexliterals = type(linfo.literals[0])().join(linfo.literals) + else: + lexobj.lexliterals = linfo.literals + + # Get the stateinfo dictionary + stateinfo = linfo.stateinfo + + regexs = { } + # Build the master regular expressions + for state in stateinfo: + regex_list = [] + + # Add rules defined by functions first + for fname, f in linfo.funcsym[state]: + line = func_code(f).co_firstlineno + file = func_code(f).co_filename + regex_list.append("(?P<%s>%s)" % (fname,f.__doc__)) + if debug: + debuglog.info("lex: Adding rule %s -> '%s' (state '%s')",fname,f.__doc__, state) + + # Now add all of the simple rules + for name,r in linfo.strsym[state]: + regex_list.append("(?P<%s>%s)" % (name,r)) + if debug: + debuglog.info("lex: Adding rule %s -> '%s' (state '%s')",name,r, state) + + regexs[state] = regex_list + + # Build the master regular expressions + + if debug: + debuglog.info("lex: ==== MASTER REGEXS FOLLOW ====") + + for state in regexs: + lexre, re_text, re_names = _form_master_re(regexs[state],reflags,ldict,linfo.toknames) + lexobj.lexstatere[state] = lexre + lexobj.lexstateretext[state] = re_text + lexobj.lexstaterenames[state] = re_names + if debug: + for i in range(len(re_text)): + debuglog.info("lex: state '%s' : regex[%d] = '%s'",state, i, re_text[i]) + + # For inclusive states, we need to add the regular expressions from the INITIAL state + for state,stype in stateinfo.items(): + if state != "INITIAL" and stype == 'inclusive': + lexobj.lexstatere[state].extend(lexobj.lexstatere['INITIAL']) + lexobj.lexstateretext[state].extend(lexobj.lexstateretext['INITIAL']) + lexobj.lexstaterenames[state].extend(lexobj.lexstaterenames['INITIAL']) + + lexobj.lexstateinfo = stateinfo + lexobj.lexre = lexobj.lexstatere["INITIAL"] + lexobj.lexretext = lexobj.lexstateretext["INITIAL"] + lexobj.lexreflags = reflags + + # Set up ignore variables + lexobj.lexstateignore = linfo.ignore + lexobj.lexignore = lexobj.lexstateignore.get("INITIAL","") + + # Set up error functions + lexobj.lexstateerrorf = linfo.errorf + lexobj.lexerrorf = linfo.errorf.get("INITIAL",None) + if not lexobj.lexerrorf: + errorlog.warning("No t_error rule is defined") + + # Check state information for ignore and error rules + for s,stype in stateinfo.items(): + if stype == 'exclusive': + if not s in linfo.errorf: + errorlog.warning("No error rule is defined for exclusive state '%s'", s) + if not s in linfo.ignore and lexobj.lexignore: + errorlog.warning("No ignore rule is defined for exclusive state '%s'", s) + elif stype == 'inclusive': + if not s in linfo.errorf: + linfo.errorf[s] = linfo.errorf.get("INITIAL",None) + if not s in linfo.ignore: + linfo.ignore[s] = linfo.ignore.get("INITIAL","") + + # Create global versions of the token() and input() functions + token = lexobj.token + input = lexobj.input + lexer = lexobj + + # If in optimize mode, we write the lextab + if lextab and optimize: + lexobj.writetab(lextab,outputdir) + + return lexobj + +# ----------------------------------------------------------------------------- +# runmain() +# +# This runs the lexer as a main program +# ----------------------------------------------------------------------------- + +def runmain(lexer=None,data=None): + if not data: + try: + filename = sys.argv[1] + f = open(filename) + data = f.read() + f.close() + except IndexError: + sys.stdout.write("Reading from standard input (type EOF to end):\n") + data = sys.stdin.read() + + if lexer: + _input = lexer.input + else: + _input = input + _input(data) + if lexer: + _token = lexer.token + else: + _token = token + + while 1: + tok = _token() + if not tok: break + sys.stdout.write("(%s,%r,%d,%d)\n" % (tok.type, tok.value, tok.lineno,tok.lexpos)) + +# ----------------------------------------------------------------------------- +# @TOKEN(regex) +# +# This decorator function can be used to set the regex expression on a function +# when its docstring might need to be set in an alternative way +# ----------------------------------------------------------------------------- + +def TOKEN(r): + def set_doc(f): + if hasattr(r,"__call__"): + f.__doc__ = r.__doc__ + else: + f.__doc__ = r + return f + return set_doc + +# Alternative spelling of the TOKEN decorator +Token = TOKEN + diff --git a/src/Mod/OpenSCAD/ply/setup.py b/src/Mod/OpenSCAD/ply/setup.py new file mode 100644 index 000000000..670cb3cc2 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/setup.py @@ -0,0 +1,31 @@ +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +setup(name = "ply", + description="Python Lex & Yacc", + long_description = """ +PLY is yet another implementation of lex and yacc for Python. Some notable +features include the fact that its implemented entirely in Python and it +uses LALR(1) parsing which is efficient and well suited for larger grammars. + +PLY provides most of the standard lex/yacc features including support for empty +productions, precedence rules, error recovery, and support for ambiguous grammars. + +PLY is extremely easy to use and provides very extensive error checking. +It is compatible with both Python 2 and Python 3. +""", + license="""BSD""", + version = "3.4", + author = "David Beazley", + author_email = "dave@dabeaz.com", + maintainer = "David Beazley", + maintainer_email = "dave@dabeaz.com", + url = "http://www.dabeaz.com/ply/", + packages = ['ply'], + classifiers = [ + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 2', + ] + ) diff --git a/src/Mod/OpenSCAD/ply/yacc.py b/src/Mod/OpenSCAD/ply/yacc.py new file mode 100644 index 000000000..f70439ea5 --- /dev/null +++ b/src/Mod/OpenSCAD/ply/yacc.py @@ -0,0 +1,3276 @@ +# ----------------------------------------------------------------------------- +# ply: yacc.py +# +# Copyright (C) 2001-2011, +# David M. Beazley (Dabeaz LLC) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * Neither the name of the David Beazley or Dabeaz LLC may be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ----------------------------------------------------------------------------- +# +# This implements an LR parser that is constructed from grammar rules defined +# as Python functions. The grammer is specified by supplying the BNF inside +# Python documentation strings. The inspiration for this technique was borrowed +# from John Aycock's Spark parsing system. PLY might be viewed as cross between +# Spark and the GNU bison utility. +# +# The current implementation is only somewhat object-oriented. The +# LR parser itself is defined in terms of an object (which allows multiple +# parsers to co-exist). However, most of the variables used during table +# construction are defined in terms of global variables. Users shouldn't +# notice unless they are trying to define multiple parsers at the same +# time using threads (in which case they should have their head examined). +# +# This implementation supports both SLR and LALR(1) parsing. LALR(1) +# support was originally implemented by Elias Ioup (ezioup@alumni.uchicago.edu), +# using the algorithm found in Aho, Sethi, and Ullman "Compilers: Principles, +# Techniques, and Tools" (The Dragon Book). LALR(1) has since been replaced +# by the more efficient DeRemer and Pennello algorithm. +# +# :::::::: WARNING ::::::: +# +# Construction of LR parsing tables is fairly complicated and expensive. +# To make this module run fast, a *LOT* of work has been put into +# optimization---often at the expensive of readability and what might +# consider to be good Python "coding style." Modify the code at your +# own risk! +# ---------------------------------------------------------------------------- + +__version__ = "3.4" +__tabversion__ = "3.2" # Table version + +#----------------------------------------------------------------------------- +# === User configurable parameters === +# +# Change these to modify the default behavior of yacc (if you wish) +#----------------------------------------------------------------------------- + +yaccdebug = 1 # Debugging mode. If set, yacc generates a + # a 'parser.out' file in the current directory + +debug_file = 'parser.out' # Default name of the debugging file +tab_module = 'parsetab' # Default name of the table module +default_lr = 'LALR' # Default LR table generation method + +error_count = 3 # Number of symbols that must be shifted to leave recovery mode + +yaccdevel = 0 # Set to True if developing yacc. This turns off optimized + # implementations of certain functions. + +resultlimit = 40 # Size limit of results when running in debug mode. + +pickle_protocol = 0 # Protocol to use when writing pickle files + +import re, types, sys, os.path + +# Compatibility function for python 2.6/3.0 +if sys.version_info[0] < 3: + def func_code(f): + return f.func_code +else: + def func_code(f): + return f.__code__ + +# Compatibility +try: + MAXINT = sys.maxint +except AttributeError: + MAXINT = sys.maxsize + +# Python 2.x/3.0 compatibility. +def load_ply_lex(): + if sys.version_info[0] < 3: + import lex + else: + import ply.lex as lex + return lex + +# This object is a stand-in for a logging object created by the +# logging module. PLY will use this by default to create things +# such as the parser.out file. If a user wants more detailed +# information, they can create their own logging object and pass +# it into PLY. + +class PlyLogger(object): + def __init__(self,f): + self.f = f + def debug(self,msg,*args,**kwargs): + self.f.write((msg % args) + "\n") + info = debug + + def warning(self,msg,*args,**kwargs): + self.f.write("WARNING: "+ (msg % args) + "\n") + + def error(self,msg,*args,**kwargs): + self.f.write("ERROR: " + (msg % args) + "\n") + + critical = debug + +# Null logger is used when no output is generated. Does nothing. +class NullLogger(object): + def __getattribute__(self,name): + return self + def __call__(self,*args,**kwargs): + return self + +# Exception raised for yacc-related errors +class YaccError(Exception): pass + +# Format the result message that the parser produces when running in debug mode. +def format_result(r): + repr_str = repr(r) + if '\n' in repr_str: repr_str = repr(repr_str) + if len(repr_str) > resultlimit: + repr_str = repr_str[:resultlimit]+" ..." + result = "<%s @ 0x%x> (%s)" % (type(r).__name__,id(r),repr_str) + return result + + +# Format stack entries when the parser is running in debug mode +def format_stack_entry(r): + repr_str = repr(r) + if '\n' in repr_str: repr_str = repr(repr_str) + if len(repr_str) < 16: + return repr_str + else: + return "<%s @ 0x%x>" % (type(r).__name__,id(r)) + +#----------------------------------------------------------------------------- +# === LR Parsing Engine === +# +# The following classes are used for the LR parser itself. These are not +# used during table construction and are independent of the actual LR +# table generation algorithm +#----------------------------------------------------------------------------- + +# This class is used to hold non-terminal grammar symbols during parsing. +# It normally has the following attributes set: +# .type = Grammar symbol type +# .value = Symbol value +# .lineno = Starting line number +# .endlineno = Ending line number (optional, set automatically) +# .lexpos = Starting lex position +# .endlexpos = Ending lex position (optional, set automatically) + +class YaccSymbol: + def __str__(self): return self.type + def __repr__(self): return str(self) + +# This class is a wrapper around the objects actually passed to each +# grammar rule. Index lookup and assignment actually assign the +# .value attribute of the underlying YaccSymbol object. +# The lineno() method returns the line number of a given +# item (or 0 if not defined). The linespan() method returns +# a tuple of (startline,endline) representing the range of lines +# for a symbol. The lexspan() method returns a tuple (lexpos,endlexpos) +# representing the range of positional information for a symbol. + +class YaccProduction: + def __init__(self,s,stack=None): + self.slice = s + self.stack = stack + self.lexer = None + self.parser= None + def __getitem__(self,n): + if n >= 0: return self.slice[n].value + else: return self.stack[n].value + + def __setitem__(self,n,v): + self.slice[n].value = v + + def __getslice__(self,i,j): + return [s.value for s in self.slice[i:j]] + + def __len__(self): + return len(self.slice) + + def lineno(self,n): + return getattr(self.slice[n],"lineno",0) + + def set_lineno(self,n,lineno): + self.slice[n].lineno = lineno + + def linespan(self,n): + startline = getattr(self.slice[n],"lineno",0) + endline = getattr(self.slice[n],"endlineno",startline) + return startline,endline + + def lexpos(self,n): + return getattr(self.slice[n],"lexpos",0) + + def lexspan(self,n): + startpos = getattr(self.slice[n],"lexpos",0) + endpos = getattr(self.slice[n],"endlexpos",startpos) + return startpos,endpos + + def error(self): + raise SyntaxError + + +# ----------------------------------------------------------------------------- +# == LRParser == +# +# The LR Parsing engine. +# ----------------------------------------------------------------------------- + +class LRParser: + def __init__(self,lrtab,errorf): + self.productions = lrtab.lr_productions + self.action = lrtab.lr_action + self.goto = lrtab.lr_goto + self.errorfunc = errorf + + def errok(self): + self.errorok = 1 + + def restart(self): + del self.statestack[:] + del self.symstack[:] + sym = YaccSymbol() + sym.type = '$end' + self.symstack.append(sym) + self.statestack.append(0) + + def parse(self,input=None,lexer=None,debug=0,tracking=0,tokenfunc=None): + if debug or yaccdevel: + if isinstance(debug,int): + debug = PlyLogger(sys.stderr) + return self.parsedebug(input,lexer,debug,tracking,tokenfunc) + elif tracking: + return self.parseopt(input,lexer,debug,tracking,tokenfunc) + else: + return self.parseopt_notrack(input,lexer,debug,tracking,tokenfunc) + + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # parsedebug(). + # + # This is the debugging enabled version of parse(). All changes made to the + # parsing engine should be made here. For the non-debugging version, + # copy this code to a method parseopt() and delete all of the sections + # enclosed in: + # + # #--! DEBUG + # statements + # #--! DEBUG + # + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + def parsedebug(self,input=None,lexer=None,debug=None,tracking=0,tokenfunc=None): + lookahead = None # Current lookahead symbol + lookaheadstack = [ ] # Stack of lookahead symbols + actions = self.action # Local reference to action table (to avoid lookup on self.) + goto = self.goto # Local reference to goto table (to avoid lookup on self.) + prod = self.productions # Local reference to production list (to avoid lookup on self.) + pslice = YaccProduction(None) # Production object passed to grammar rules + errorcount = 0 # Used during error recovery + + # --! DEBUG + debug.info("PLY: PARSE DEBUG START") + # --! DEBUG + + # If no lexer was given, we will try to use the lex module + if not lexer: + lex = load_ply_lex() + lexer = lex.lexer + + # Set up the lexer and parser objects on pslice + pslice.lexer = lexer + pslice.parser = self + + # If input was supplied, pass to lexer + if input is not None: + lexer.input(input) + + if tokenfunc is None: + # Tokenize function + get_token = lexer.token + else: + get_token = tokenfunc + + # Set up the state and symbol stacks + + statestack = [ ] # Stack of parsing states + self.statestack = statestack + symstack = [ ] # Stack of grammar symbols + self.symstack = symstack + + pslice.stack = symstack # Put in the production + errtoken = None # Err token + + # The start state is assumed to be (0,$end) + + statestack.append(0) + sym = YaccSymbol() + sym.type = "$end" + symstack.append(sym) + state = 0 + while 1: + # Get the next symbol on the input. If a lookahead symbol + # is already set, we just use that. Otherwise, we'll pull + # the next token off of the lookaheadstack or from the lexer + + # --! DEBUG + debug.debug('') + debug.debug('State : %s', state) + # --! DEBUG + + if not lookahead: + if not lookaheadstack: + lookahead = get_token() # Get the next token + else: + lookahead = lookaheadstack.pop() + if not lookahead: + lookahead = YaccSymbol() + lookahead.type = "$end" + + # --! DEBUG + debug.debug('Stack : %s', + ("%s . %s" % (" ".join([xx.type for xx in symstack][1:]), str(lookahead))).lstrip()) + # --! DEBUG + + # Check the action table + ltype = lookahead.type + t = actions[state].get(ltype) + + if t is not None: + if t > 0: + # shift a symbol on the stack + statestack.append(t) + state = t + + # --! DEBUG + debug.debug("Action : Shift and goto state %s", t) + # --! DEBUG + + symstack.append(lookahead) + lookahead = None + + # Decrease error count on successful shift + if errorcount: errorcount -=1 + continue + + if t < 0: + # reduce a symbol on the stack, emit a production + p = prod[-t] + pname = p.name + plen = p.len + + # Get production function + sym = YaccSymbol() + sym.type = pname # Production name + sym.value = None + + # --! DEBUG + if plen: + debug.info("Action : Reduce rule [%s] with %s and goto state %d", p.str, "["+",".join([format_stack_entry(_v.value) for _v in symstack[-plen:]])+"]",-t) + else: + debug.info("Action : Reduce rule [%s] with %s and goto state %d", p.str, [],-t) + + # --! DEBUG + + if plen: + targ = symstack[-plen-1:] + targ[0] = sym + + # --! TRACKING + if tracking: + t1 = targ[1] + sym.lineno = t1.lineno + sym.lexpos = t1.lexpos + t1 = targ[-1] + sym.endlineno = getattr(t1,"endlineno",t1.lineno) + sym.endlexpos = getattr(t1,"endlexpos",t1.lexpos) + + # --! TRACKING + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # below as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + del symstack[-plen:] + del statestack[-plen:] + p.callable(pslice) + # --! DEBUG + debug.info("Result : %s", format_result(pslice[0])) + # --! DEBUG + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + else: + + # --! TRACKING + if tracking: + sym.lineno = lexer.lineno + sym.lexpos = lexer.lexpos + # --! TRACKING + + targ = [ sym ] + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # above as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + p.callable(pslice) + # --! DEBUG + debug.info("Result : %s", format_result(pslice[0])) + # --! DEBUG + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if t == 0: + n = symstack[-1] + result = getattr(n,"value",None) + # --! DEBUG + debug.info("Done : Returning %s", format_result(result)) + debug.info("PLY: PARSE DEBUG END") + # --! DEBUG + return result + + if t == None: + + # --! DEBUG + debug.error('Error : %s', + ("%s . %s" % (" ".join([xx.type for xx in symstack][1:]), str(lookahead))).lstrip()) + # --! DEBUG + + # We have some kind of parsing error here. To handle + # this, we are going to push the current token onto + # the tokenstack and replace it with an 'error' token. + # If there are any synchronization rules, they may + # catch it. + # + # In addition to pushing the error token, we call call + # the user defined p_error() function if this is the + # first syntax error. This function is only called if + # errorcount == 0. + if errorcount == 0 or self.errorok: + errorcount = error_count + self.errorok = 0 + errtoken = lookahead + if errtoken.type == "$end": + errtoken = None # End of file! + if self.errorfunc: + global errok,token,restart + errok = self.errok # Set some special functions available in error recovery + token = get_token + restart = self.restart + if errtoken and not hasattr(errtoken,'lexer'): + errtoken.lexer = lexer + tok = self.errorfunc(errtoken) + del errok, token, restart # Delete special functions + + if self.errorok: + # User must have done some kind of panic + # mode recovery on their own. The + # returned token is the next lookahead + lookahead = tok + errtoken = None + continue + else: + if errtoken: + if hasattr(errtoken,"lineno"): lineno = lookahead.lineno + else: lineno = 0 + if lineno: + sys.stderr.write("yacc: Syntax error at line %d, token=%s\n" % (lineno, errtoken.type)) + else: + sys.stderr.write("yacc: Syntax error, token=%s" % errtoken.type) + else: + sys.stderr.write("yacc: Parse error in input. EOF\n") + return + + else: + errorcount = error_count + + # case 1: the statestack only has 1 entry on it. If we're in this state, the + # entire parse has been rolled back and we're completely hosed. The token is + # discarded and we just keep going. + + if len(statestack) <= 1 and lookahead.type != "$end": + lookahead = None + errtoken = None + state = 0 + # Nuke the pushback stack + del lookaheadstack[:] + continue + + # case 2: the statestack has a couple of entries on it, but we're + # at the end of the file. nuke the top entry and generate an error token + + # Start nuking entries on the stack + if lookahead.type == "$end": + # Whoa. We're really hosed here. Bail out + return + + if lookahead.type != 'error': + sym = symstack[-1] + if sym.type == 'error': + # Hmmm. Error is on top of stack, we'll just nuke input + # symbol and continue + lookahead = None + continue + t = YaccSymbol() + t.type = 'error' + if hasattr(lookahead,"lineno"): + t.lineno = lookahead.lineno + t.value = lookahead + lookaheadstack.append(lookahead) + lookahead = t + else: + symstack.pop() + statestack.pop() + state = statestack[-1] # Potential bug fix + + continue + + # Call an error function here + raise RuntimeError("yacc: internal parser error!!!\n") + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # parseopt(). + # + # Optimized version of parse() method. DO NOT EDIT THIS CODE DIRECTLY. + # Edit the debug version above, then copy any modifications to the method + # below while removing #--! DEBUG sections. + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + + def parseopt(self,input=None,lexer=None,debug=0,tracking=0,tokenfunc=None): + lookahead = None # Current lookahead symbol + lookaheadstack = [ ] # Stack of lookahead symbols + actions = self.action # Local reference to action table (to avoid lookup on self.) + goto = self.goto # Local reference to goto table (to avoid lookup on self.) + prod = self.productions # Local reference to production list (to avoid lookup on self.) + pslice = YaccProduction(None) # Production object passed to grammar rules + errorcount = 0 # Used during error recovery + + # If no lexer was given, we will try to use the lex module + if not lexer: + lex = load_ply_lex() + lexer = lex.lexer + + # Set up the lexer and parser objects on pslice + pslice.lexer = lexer + pslice.parser = self + + # If input was supplied, pass to lexer + if input is not None: + lexer.input(input) + + if tokenfunc is None: + # Tokenize function + get_token = lexer.token + else: + get_token = tokenfunc + + # Set up the state and symbol stacks + + statestack = [ ] # Stack of parsing states + self.statestack = statestack + symstack = [ ] # Stack of grammar symbols + self.symstack = symstack + + pslice.stack = symstack # Put in the production + errtoken = None # Err token + + # The start state is assumed to be (0,$end) + + statestack.append(0) + sym = YaccSymbol() + sym.type = '$end' + symstack.append(sym) + state = 0 + while 1: + # Get the next symbol on the input. If a lookahead symbol + # is already set, we just use that. Otherwise, we'll pull + # the next token off of the lookaheadstack or from the lexer + + if not lookahead: + if not lookaheadstack: + lookahead = get_token() # Get the next token + else: + lookahead = lookaheadstack.pop() + if not lookahead: + lookahead = YaccSymbol() + lookahead.type = '$end' + + # Check the action table + ltype = lookahead.type + t = actions[state].get(ltype) + + if t is not None: + if t > 0: + # shift a symbol on the stack + statestack.append(t) + state = t + + symstack.append(lookahead) + lookahead = None + + # Decrease error count on successful shift + if errorcount: errorcount -=1 + continue + + if t < 0: + # reduce a symbol on the stack, emit a production + p = prod[-t] + pname = p.name + plen = p.len + + # Get production function + sym = YaccSymbol() + sym.type = pname # Production name + sym.value = None + + if plen: + targ = symstack[-plen-1:] + targ[0] = sym + + # --! TRACKING + if tracking: + t1 = targ[1] + sym.lineno = t1.lineno + sym.lexpos = t1.lexpos + t1 = targ[-1] + sym.endlineno = getattr(t1,"endlineno",t1.lineno) + sym.endlexpos = getattr(t1,"endlexpos",t1.lexpos) + + # --! TRACKING + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # below as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + del symstack[-plen:] + del statestack[-plen:] + p.callable(pslice) + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + else: + + # --! TRACKING + if tracking: + sym.lineno = lexer.lineno + sym.lexpos = lexer.lexpos + # --! TRACKING + + targ = [ sym ] + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # above as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + p.callable(pslice) + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if t == 0: + n = symstack[-1] + return getattr(n,"value",None) + + if t == None: + + # We have some kind of parsing error here. To handle + # this, we are going to push the current token onto + # the tokenstack and replace it with an 'error' token. + # If there are any synchronization rules, they may + # catch it. + # + # In addition to pushing the error token, we call call + # the user defined p_error() function if this is the + # first syntax error. This function is only called if + # errorcount == 0. + if errorcount == 0 or self.errorok: + errorcount = error_count + self.errorok = 0 + errtoken = lookahead + if errtoken.type == '$end': + errtoken = None # End of file! + if self.errorfunc: + global errok,token,restart + errok = self.errok # Set some special functions available in error recovery + token = get_token + restart = self.restart + if errtoken and not hasattr(errtoken,'lexer'): + errtoken.lexer = lexer + tok = self.errorfunc(errtoken) + del errok, token, restart # Delete special functions + + if self.errorok: + # User must have done some kind of panic + # mode recovery on their own. The + # returned token is the next lookahead + lookahead = tok + errtoken = None + continue + else: + if errtoken: + if hasattr(errtoken,"lineno"): lineno = lookahead.lineno + else: lineno = 0 + if lineno: + sys.stderr.write("yacc: Syntax error at line %d, token=%s\n" % (lineno, errtoken.type)) + else: + sys.stderr.write("yacc: Syntax error, token=%s" % errtoken.type) + else: + sys.stderr.write("yacc: Parse error in input. EOF\n") + return + + else: + errorcount = error_count + + # case 1: the statestack only has 1 entry on it. If we're in this state, the + # entire parse has been rolled back and we're completely hosed. The token is + # discarded and we just keep going. + + if len(statestack) <= 1 and lookahead.type != '$end': + lookahead = None + errtoken = None + state = 0 + # Nuke the pushback stack + del lookaheadstack[:] + continue + + # case 2: the statestack has a couple of entries on it, but we're + # at the end of the file. nuke the top entry and generate an error token + + # Start nuking entries on the stack + if lookahead.type == '$end': + # Whoa. We're really hosed here. Bail out + return + + if lookahead.type != 'error': + sym = symstack[-1] + if sym.type == 'error': + # Hmmm. Error is on top of stack, we'll just nuke input + # symbol and continue + lookahead = None + continue + t = YaccSymbol() + t.type = 'error' + if hasattr(lookahead,"lineno"): + t.lineno = lookahead.lineno + t.value = lookahead + lookaheadstack.append(lookahead) + lookahead = t + else: + symstack.pop() + statestack.pop() + state = statestack[-1] # Potential bug fix + + continue + + # Call an error function here + raise RuntimeError("yacc: internal parser error!!!\n") + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # parseopt_notrack(). + # + # Optimized version of parseopt() with line number tracking removed. + # DO NOT EDIT THIS CODE DIRECTLY. Copy the optimized version and remove + # code in the #--! TRACKING sections + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + def parseopt_notrack(self,input=None,lexer=None,debug=0,tracking=0,tokenfunc=None): + lookahead = None # Current lookahead symbol + lookaheadstack = [ ] # Stack of lookahead symbols + actions = self.action # Local reference to action table (to avoid lookup on self.) + goto = self.goto # Local reference to goto table (to avoid lookup on self.) + prod = self.productions # Local reference to production list (to avoid lookup on self.) + pslice = YaccProduction(None) # Production object passed to grammar rules + errorcount = 0 # Used during error recovery + + # If no lexer was given, we will try to use the lex module + if not lexer: + lex = load_ply_lex() + lexer = lex.lexer + + # Set up the lexer and parser objects on pslice + pslice.lexer = lexer + pslice.parser = self + + # If input was supplied, pass to lexer + if input is not None: + lexer.input(input) + + if tokenfunc is None: + # Tokenize function + get_token = lexer.token + else: + get_token = tokenfunc + + # Set up the state and symbol stacks + + statestack = [ ] # Stack of parsing states + self.statestack = statestack + symstack = [ ] # Stack of grammar symbols + self.symstack = symstack + + pslice.stack = symstack # Put in the production + errtoken = None # Err token + + # The start state is assumed to be (0,$end) + + statestack.append(0) + sym = YaccSymbol() + sym.type = '$end' + symstack.append(sym) + state = 0 + while 1: + # Get the next symbol on the input. If a lookahead symbol + # is already set, we just use that. Otherwise, we'll pull + # the next token off of the lookaheadstack or from the lexer + + if not lookahead: + if not lookaheadstack: + lookahead = get_token() # Get the next token + else: + lookahead = lookaheadstack.pop() + if not lookahead: + lookahead = YaccSymbol() + lookahead.type = '$end' + + # Check the action table + ltype = lookahead.type + t = actions[state].get(ltype) + + if t is not None: + if t > 0: + # shift a symbol on the stack + statestack.append(t) + state = t + + symstack.append(lookahead) + lookahead = None + + # Decrease error count on successful shift + if errorcount: errorcount -=1 + continue + + if t < 0: + # reduce a symbol on the stack, emit a production + p = prod[-t] + pname = p.name + plen = p.len + + # Get production function + sym = YaccSymbol() + sym.type = pname # Production name + sym.value = None + + if plen: + targ = symstack[-plen-1:] + targ[0] = sym + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # below as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + del symstack[-plen:] + del statestack[-plen:] + p.callable(pslice) + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + else: + + targ = [ sym ] + + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # The code enclosed in this section is duplicated + # above as a performance optimization. Make sure + # changes get made in both locations. + + pslice.slice = targ + + try: + # Call the grammar rule with our special slice object + p.callable(pslice) + symstack.append(sym) + state = goto[statestack[-1]][pname] + statestack.append(state) + except SyntaxError: + # If an error was set. Enter error recovery state + lookaheadstack.append(lookahead) + symstack.pop() + statestack.pop() + state = statestack[-1] + sym.type = 'error' + lookahead = sym + errorcount = error_count + self.errorok = 0 + continue + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if t == 0: + n = symstack[-1] + return getattr(n,"value",None) + + if t == None: + + # We have some kind of parsing error here. To handle + # this, we are going to push the current token onto + # the tokenstack and replace it with an 'error' token. + # If there are any synchronization rules, they may + # catch it. + # + # In addition to pushing the error token, we call call + # the user defined p_error() function if this is the + # first syntax error. This function is only called if + # errorcount == 0. + if errorcount == 0 or self.errorok: + errorcount = error_count + self.errorok = 0 + errtoken = lookahead + if errtoken.type == '$end': + errtoken = None # End of file! + if self.errorfunc: + global errok,token,restart + errok = self.errok # Set some special functions available in error recovery + token = get_token + restart = self.restart + if errtoken and not hasattr(errtoken,'lexer'): + errtoken.lexer = lexer + tok = self.errorfunc(errtoken) + del errok, token, restart # Delete special functions + + if self.errorok: + # User must have done some kind of panic + # mode recovery on their own. The + # returned token is the next lookahead + lookahead = tok + errtoken = None + continue + else: + if errtoken: + if hasattr(errtoken,"lineno"): lineno = lookahead.lineno + else: lineno = 0 + if lineno: + sys.stderr.write("yacc: Syntax error at line %d, token=%s\n" % (lineno, errtoken.type)) + else: + sys.stderr.write("yacc: Syntax error, token=%s" % errtoken.type) + else: + sys.stderr.write("yacc: Parse error in input. EOF\n") + return + + else: + errorcount = error_count + + # case 1: the statestack only has 1 entry on it. If we're in this state, the + # entire parse has been rolled back and we're completely hosed. The token is + # discarded and we just keep going. + + if len(statestack) <= 1 and lookahead.type != '$end': + lookahead = None + errtoken = None + state = 0 + # Nuke the pushback stack + del lookaheadstack[:] + continue + + # case 2: the statestack has a couple of entries on it, but we're + # at the end of the file. nuke the top entry and generate an error token + + # Start nuking entries on the stack + if lookahead.type == '$end': + # Whoa. We're really hosed here. Bail out + return + + if lookahead.type != 'error': + sym = symstack[-1] + if sym.type == 'error': + # Hmmm. Error is on top of stack, we'll just nuke input + # symbol and continue + lookahead = None + continue + t = YaccSymbol() + t.type = 'error' + if hasattr(lookahead,"lineno"): + t.lineno = lookahead.lineno + t.value = lookahead + lookaheadstack.append(lookahead) + lookahead = t + else: + symstack.pop() + statestack.pop() + state = statestack[-1] # Potential bug fix + + continue + + # Call an error function here + raise RuntimeError("yacc: internal parser error!!!\n") + +# ----------------------------------------------------------------------------- +# === Grammar Representation === +# +# The following functions, classes, and variables are used to represent and +# manipulate the rules that make up a grammar. +# ----------------------------------------------------------------------------- + +import re + +# regex matching identifiers +_is_identifier = re.compile(r'^[a-zA-Z0-9_-]+$') + +# ----------------------------------------------------------------------------- +# class Production: +# +# This class stores the raw information about a single production or grammar rule. +# A grammar rule refers to a specification such as this: +# +# expr : expr PLUS term +# +# Here are the basic attributes defined on all productions +# +# name - Name of the production. For example 'expr' +# prod - A list of symbols on the right side ['expr','PLUS','term'] +# prec - Production precedence level +# number - Production number. +# func - Function that executes on reduce +# file - File where production function is defined +# lineno - Line number where production function is defined +# +# The following attributes are defined or optional. +# +# len - Length of the production (number of symbols on right hand side) +# usyms - Set of unique symbols found in the production +# ----------------------------------------------------------------------------- + +class Production(object): + reduced = 0 + def __init__(self,number,name,prod,precedence=('right',0),func=None,file='',line=0): + self.name = name + self.prod = tuple(prod) + self.number = number + self.func = func + self.callable = None + self.file = file + self.line = line + self.prec = precedence + + # Internal settings used during table construction + + self.len = len(self.prod) # Length of the production + + # Create a list of unique production symbols used in the production + self.usyms = [ ] + for s in self.prod: + if s not in self.usyms: + self.usyms.append(s) + + # List of all LR items for the production + self.lr_items = [] + self.lr_next = None + + # Create a string representation + if self.prod: + self.str = "%s -> %s" % (self.name," ".join(self.prod)) + else: + self.str = "%s -> " % self.name + + def __str__(self): + return self.str + + def __repr__(self): + return "Production("+str(self)+")" + + def __len__(self): + return len(self.prod) + + def __nonzero__(self): + return 1 + + def __getitem__(self,index): + return self.prod[index] + + # Return the nth lr_item from the production (or None if at the end) + def lr_item(self,n): + if n > len(self.prod): return None + p = LRItem(self,n) + + # Precompute the list of productions immediately following. Hack. Remove later + try: + p.lr_after = Prodnames[p.prod[n+1]] + except (IndexError,KeyError): + p.lr_after = [] + try: + p.lr_before = p.prod[n-1] + except IndexError: + p.lr_before = None + + return p + + # Bind the production function name to a callable + def bind(self,pdict): + if self.func: + self.callable = pdict[self.func] + +# This class serves as a minimal standin for Production objects when +# reading table data from files. It only contains information +# actually used by the LR parsing engine, plus some additional +# debugging information. +class MiniProduction(object): + def __init__(self,str,name,len,func,file,line): + self.name = name + self.len = len + self.func = func + self.callable = None + self.file = file + self.line = line + self.str = str + def __str__(self): + return self.str + def __repr__(self): + return "MiniProduction(%s)" % self.str + + # Bind the production function name to a callable + def bind(self,pdict): + if self.func: + self.callable = pdict[self.func] + + +# ----------------------------------------------------------------------------- +# class LRItem +# +# This class represents a specific stage of parsing a production rule. For +# example: +# +# expr : expr . PLUS term +# +# In the above, the "." represents the current location of the parse. Here +# basic attributes: +# +# name - Name of the production. For example 'expr' +# prod - A list of symbols on the right side ['expr','.', 'PLUS','term'] +# number - Production number. +# +# lr_next Next LR item. Example, if we are ' expr -> expr . PLUS term' +# then lr_next refers to 'expr -> expr PLUS . term' +# lr_index - LR item index (location of the ".") in the prod list. +# lookaheads - LALR lookahead symbols for this item +# len - Length of the production (number of symbols on right hand side) +# lr_after - List of all productions that immediately follow +# lr_before - Grammar symbol immediately before +# ----------------------------------------------------------------------------- + +class LRItem(object): + def __init__(self,p,n): + self.name = p.name + self.prod = list(p.prod) + self.number = p.number + self.lr_index = n + self.lookaheads = { } + self.prod.insert(n,".") + self.prod = tuple(self.prod) + self.len = len(self.prod) + self.usyms = p.usyms + + def __str__(self): + if self.prod: + s = "%s -> %s" % (self.name," ".join(self.prod)) + else: + s = "%s -> " % self.name + return s + + def __repr__(self): + return "LRItem("+str(self)+")" + +# ----------------------------------------------------------------------------- +# rightmost_terminal() +# +# Return the rightmost terminal from a list of symbols. Used in add_production() +# ----------------------------------------------------------------------------- +def rightmost_terminal(symbols, terminals): + i = len(symbols) - 1 + while i >= 0: + if symbols[i] in terminals: + return symbols[i] + i -= 1 + return None + +# ----------------------------------------------------------------------------- +# === GRAMMAR CLASS === +# +# The following class represents the contents of the specified grammar along +# with various computed properties such as first sets, follow sets, LR items, etc. +# This data is used for critical parts of the table generation process later. +# ----------------------------------------------------------------------------- + +class GrammarError(YaccError): pass + +class Grammar(object): + def __init__(self,terminals): + self.Productions = [None] # A list of all of the productions. The first + # entry is always reserved for the purpose of + # building an augmented grammar + + self.Prodnames = { } # A dictionary mapping the names of nonterminals to a list of all + # productions of that nonterminal. + + self.Prodmap = { } # A dictionary that is only used to detect duplicate + # productions. + + self.Terminals = { } # A dictionary mapping the names of terminal symbols to a + # list of the rules where they are used. + + for term in terminals: + self.Terminals[term] = [] + + self.Terminals['error'] = [] + + self.Nonterminals = { } # A dictionary mapping names of nonterminals to a list + # of rule numbers where they are used. + + self.First = { } # A dictionary of precomputed FIRST(x) symbols + + self.Follow = { } # A dictionary of precomputed FOLLOW(x) symbols + + self.Precedence = { } # Precedence rules for each terminal. Contains tuples of the + # form ('right',level) or ('nonassoc', level) or ('left',level) + + self.UsedPrecedence = { } # Precedence rules that were actually used by the grammer. + # This is only used to provide error checking and to generate + # a warning about unused precedence rules. + + self.Start = None # Starting symbol for the grammar + + + def __len__(self): + return len(self.Productions) + + def __getitem__(self,index): + return self.Productions[index] + + # ----------------------------------------------------------------------------- + # set_precedence() + # + # Sets the precedence for a given terminal. assoc is the associativity such as + # 'left','right', or 'nonassoc'. level is a numeric level. + # + # ----------------------------------------------------------------------------- + + def set_precedence(self,term,assoc,level): + assert self.Productions == [None],"Must call set_precedence() before add_production()" + if term in self.Precedence: + raise GrammarError("Precedence already specified for terminal '%s'" % term) + if assoc not in ['left','right','nonassoc']: + raise GrammarError("Associativity must be one of 'left','right', or 'nonassoc'") + self.Precedence[term] = (assoc,level) + + # ----------------------------------------------------------------------------- + # add_production() + # + # Given an action function, this function assembles a production rule and + # computes its precedence level. + # + # The production rule is supplied as a list of symbols. For example, + # a rule such as 'expr : expr PLUS term' has a production name of 'expr' and + # symbols ['expr','PLUS','term']. + # + # Precedence is determined by the precedence of the right-most non-terminal + # or the precedence of a terminal specified by %prec. + # + # A variety of error checks are performed to make sure production symbols + # are valid and that %prec is used correctly. + # ----------------------------------------------------------------------------- + + def add_production(self,prodname,syms,func=None,file='',line=0): + + if prodname in self.Terminals: + raise GrammarError("%s:%d: Illegal rule name '%s'. Already defined as a token" % (file,line,prodname)) + if prodname == 'error': + raise GrammarError("%s:%d: Illegal rule name '%s'. error is a reserved word" % (file,line,prodname)) + if not _is_identifier.match(prodname): + raise GrammarError("%s:%d: Illegal rule name '%s'" % (file,line,prodname)) + + # Look for literal tokens + for n,s in enumerate(syms): + if s[0] in "'\"": + try: + c = eval(s) + if (len(c) > 1): + raise GrammarError("%s:%d: Literal token %s in rule '%s' may only be a single character" % (file,line,s, prodname)) + if not c in self.Terminals: + self.Terminals[c] = [] + syms[n] = c + continue + except SyntaxError: + pass + if not _is_identifier.match(s) and s != '%prec': + raise GrammarError("%s:%d: Illegal name '%s' in rule '%s'" % (file,line,s, prodname)) + + # Determine the precedence level + if '%prec' in syms: + if syms[-1] == '%prec': + raise GrammarError("%s:%d: Syntax error. Nothing follows %%prec" % (file,line)) + if syms[-2] != '%prec': + raise GrammarError("%s:%d: Syntax error. %%prec can only appear at the end of a grammar rule" % (file,line)) + precname = syms[-1] + prodprec = self.Precedence.get(precname,None) + if not prodprec: + raise GrammarError("%s:%d: Nothing known about the precedence of '%s'" % (file,line,precname)) + else: + self.UsedPrecedence[precname] = 1 + del syms[-2:] # Drop %prec from the rule + else: + # If no %prec, precedence is determined by the rightmost terminal symbol + precname = rightmost_terminal(syms,self.Terminals) + prodprec = self.Precedence.get(precname,('right',0)) + + # See if the rule is already in the rulemap + map = "%s -> %s" % (prodname,syms) + if map in self.Prodmap: + m = self.Prodmap[map] + raise GrammarError("%s:%d: Duplicate rule %s. " % (file,line, m) + + "Previous definition at %s:%d" % (m.file, m.line)) + + # From this point on, everything is valid. Create a new Production instance + pnumber = len(self.Productions) + if not prodname in self.Nonterminals: + self.Nonterminals[prodname] = [ ] + + # Add the production number to Terminals and Nonterminals + for t in syms: + if t in self.Terminals: + self.Terminals[t].append(pnumber) + else: + if not t in self.Nonterminals: + self.Nonterminals[t] = [ ] + self.Nonterminals[t].append(pnumber) + + # Create a production and add it to the list of productions + p = Production(pnumber,prodname,syms,prodprec,func,file,line) + self.Productions.append(p) + self.Prodmap[map] = p + + # Add to the global productions list + try: + self.Prodnames[prodname].append(p) + except KeyError: + self.Prodnames[prodname] = [ p ] + return 0 + + # ----------------------------------------------------------------------------- + # set_start() + # + # Sets the starting symbol and creates the augmented grammar. Production + # rule 0 is S' -> start where start is the start symbol. + # ----------------------------------------------------------------------------- + + def set_start(self,start=None): + if not start: + start = self.Productions[1].name + if start not in self.Nonterminals: + raise GrammarError("start symbol %s undefined" % start) + self.Productions[0] = Production(0,"S'",[start]) + self.Nonterminals[start].append(0) + self.Start = start + + # ----------------------------------------------------------------------------- + # find_unreachable() + # + # Find all of the nonterminal symbols that can't be reached from the starting + # symbol. Returns a list of nonterminals that can't be reached. + # ----------------------------------------------------------------------------- + + def find_unreachable(self): + + # Mark all symbols that are reachable from a symbol s + def mark_reachable_from(s): + if reachable[s]: + # We've already reached symbol s. + return + reachable[s] = 1 + for p in self.Prodnames.get(s,[]): + for r in p.prod: + mark_reachable_from(r) + + reachable = { } + for s in list(self.Terminals) + list(self.Nonterminals): + reachable[s] = 0 + + mark_reachable_from( self.Productions[0].prod[0] ) + + return [s for s in list(self.Nonterminals) + if not reachable[s]] + + # ----------------------------------------------------------------------------- + # infinite_cycles() + # + # This function looks at the various parsing rules and tries to detect + # infinite recursion cycles (grammar rules where there is no possible way + # to derive a string of only terminals). + # ----------------------------------------------------------------------------- + + def infinite_cycles(self): + terminates = {} + + # Terminals: + for t in self.Terminals: + terminates[t] = 1 + + terminates['$end'] = 1 + + # Nonterminals: + + # Initialize to false: + for n in self.Nonterminals: + terminates[n] = 0 + + # Then propagate termination until no change: + while 1: + some_change = 0 + for (n,pl) in self.Prodnames.items(): + # Nonterminal n terminates iff any of its productions terminates. + for p in pl: + # Production p terminates iff all of its rhs symbols terminate. + for s in p.prod: + if not terminates[s]: + # The symbol s does not terminate, + # so production p does not terminate. + p_terminates = 0 + break + else: + # didn't break from the loop, + # so every symbol s terminates + # so production p terminates. + p_terminates = 1 + + if p_terminates: + # symbol n terminates! + if not terminates[n]: + terminates[n] = 1 + some_change = 1 + # Don't need to consider any more productions for this n. + break + + if not some_change: + break + + infinite = [] + for (s,term) in terminates.items(): + if not term: + if not s in self.Prodnames and not s in self.Terminals and s != 'error': + # s is used-but-not-defined, and we've already warned of that, + # so it would be overkill to say that it's also non-terminating. + pass + else: + infinite.append(s) + + return infinite + + + # ----------------------------------------------------------------------------- + # undefined_symbols() + # + # Find all symbols that were used the grammar, but not defined as tokens or + # grammar rules. Returns a list of tuples (sym, prod) where sym in the symbol + # and prod is the production where the symbol was used. + # ----------------------------------------------------------------------------- + def undefined_symbols(self): + result = [] + for p in self.Productions: + if not p: continue + + for s in p.prod: + if not s in self.Prodnames and not s in self.Terminals and s != 'error': + result.append((s,p)) + return result + + # ----------------------------------------------------------------------------- + # unused_terminals() + # + # Find all terminals that were defined, but not used by the grammar. Returns + # a list of all symbols. + # ----------------------------------------------------------------------------- + def unused_terminals(self): + unused_tok = [] + for s,v in self.Terminals.items(): + if s != 'error' and not v: + unused_tok.append(s) + + return unused_tok + + # ------------------------------------------------------------------------------ + # unused_rules() + # + # Find all grammar rules that were defined, but not used (maybe not reachable) + # Returns a list of productions. + # ------------------------------------------------------------------------------ + + def unused_rules(self): + unused_prod = [] + for s,v in self.Nonterminals.items(): + if not v: + p = self.Prodnames[s][0] + unused_prod.append(p) + return unused_prod + + # ----------------------------------------------------------------------------- + # unused_precedence() + # + # Returns a list of tuples (term,precedence) corresponding to precedence + # rules that were never used by the grammar. term is the name of the terminal + # on which precedence was applied and precedence is a string such as 'left' or + # 'right' corresponding to the type of precedence. + # ----------------------------------------------------------------------------- + + def unused_precedence(self): + unused = [] + for termname in self.Precedence: + if not (termname in self.Terminals or termname in self.UsedPrecedence): + unused.append((termname,self.Precedence[termname][0])) + + return unused + + # ------------------------------------------------------------------------- + # _first() + # + # Compute the value of FIRST1(beta) where beta is a tuple of symbols. + # + # During execution of compute_first1, the result may be incomplete. + # Afterward (e.g., when called from compute_follow()), it will be complete. + # ------------------------------------------------------------------------- + def _first(self,beta): + + # We are computing First(x1,x2,x3,...,xn) + result = [ ] + for x in beta: + x_produces_empty = 0 + + # Add all the non- symbols of First[x] to the result. + for f in self.First[x]: + if f == '': + x_produces_empty = 1 + else: + if f not in result: result.append(f) + + if x_produces_empty: + # We have to consider the next x in beta, + # i.e. stay in the loop. + pass + else: + # We don't have to consider any further symbols in beta. + break + else: + # There was no 'break' from the loop, + # so x_produces_empty was true for all x in beta, + # so beta produces empty as well. + result.append('') + + return result + + # ------------------------------------------------------------------------- + # compute_first() + # + # Compute the value of FIRST1(X) for all symbols + # ------------------------------------------------------------------------- + def compute_first(self): + if self.First: + return self.First + + # Terminals: + for t in self.Terminals: + self.First[t] = [t] + + self.First['$end'] = ['$end'] + + # Nonterminals: + + # Initialize to the empty set: + for n in self.Nonterminals: + self.First[n] = [] + + # Then propagate symbols until no change: + while 1: + some_change = 0 + for n in self.Nonterminals: + for p in self.Prodnames[n]: + for f in self._first(p.prod): + if f not in self.First[n]: + self.First[n].append( f ) + some_change = 1 + if not some_change: + break + + return self.First + + # --------------------------------------------------------------------- + # compute_follow() + # + # Computes all of the follow sets for every non-terminal symbol. The + # follow set is the set of all symbols that might follow a given + # non-terminal. See the Dragon book, 2nd Ed. p. 189. + # --------------------------------------------------------------------- + def compute_follow(self,start=None): + # If already computed, return the result + if self.Follow: + return self.Follow + + # If first sets not computed yet, do that first. + if not self.First: + self.compute_first() + + # Add '$end' to the follow list of the start symbol + for k in self.Nonterminals: + self.Follow[k] = [ ] + + if not start: + start = self.Productions[1].name + + self.Follow[start] = [ '$end' ] + + while 1: + didadd = 0 + for p in self.Productions[1:]: + # Here is the production set + for i in range(len(p.prod)): + B = p.prod[i] + if B in self.Nonterminals: + # Okay. We got a non-terminal in a production + fst = self._first(p.prod[i+1:]) + hasempty = 0 + for f in fst: + if f != '' and f not in self.Follow[B]: + self.Follow[B].append(f) + didadd = 1 + if f == '': + hasempty = 1 + if hasempty or i == (len(p.prod)-1): + # Add elements of follow(a) to follow(b) + for f in self.Follow[p.name]: + if f not in self.Follow[B]: + self.Follow[B].append(f) + didadd = 1 + if not didadd: break + return self.Follow + + + # ----------------------------------------------------------------------------- + # build_lritems() + # + # This function walks the list of productions and builds a complete set of the + # LR items. The LR items are stored in two ways: First, they are uniquely + # numbered and placed in the list _lritems. Second, a linked list of LR items + # is built for each production. For example: + # + # E -> E PLUS E + # + # Creates the list + # + # [E -> . E PLUS E, E -> E . PLUS E, E -> E PLUS . E, E -> E PLUS E . ] + # ----------------------------------------------------------------------------- + + def build_lritems(self): + for p in self.Productions: + lastlri = p + i = 0 + lr_items = [] + while 1: + if i > len(p): + lri = None + else: + lri = LRItem(p,i) + # Precompute the list of productions immediately following + try: + lri.lr_after = self.Prodnames[lri.prod[i+1]] + except (IndexError,KeyError): + lri.lr_after = [] + try: + lri.lr_before = lri.prod[i-1] + except IndexError: + lri.lr_before = None + + lastlri.lr_next = lri + if not lri: break + lr_items.append(lri) + lastlri = lri + i += 1 + p.lr_items = lr_items + +# ----------------------------------------------------------------------------- +# == Class LRTable == +# +# This basic class represents a basic table of LR parsing information. +# Methods for generating the tables are not defined here. They are defined +# in the derived class LRGeneratedTable. +# ----------------------------------------------------------------------------- + +class VersionError(YaccError): pass + +class LRTable(object): + def __init__(self): + self.lr_action = None + self.lr_goto = None + self.lr_productions = None + self.lr_method = None + + def read_table(self,module): + if isinstance(module,types.ModuleType): + parsetab = module + else: + if sys.version_info[0] < 3: + exec("import %s as parsetab" % module) + else: + env = { } + exec("import %s as parsetab" % module, env, env) + parsetab = env['parsetab'] + + if parsetab._tabversion != __tabversion__: + raise VersionError("yacc table file version is out of date") + + self.lr_action = parsetab._lr_action + self.lr_goto = parsetab._lr_goto + + self.lr_productions = [] + for p in parsetab._lr_productions: + self.lr_productions.append(MiniProduction(*p)) + + self.lr_method = parsetab._lr_method + return parsetab._lr_signature + + def read_pickle(self,filename): + try: + import cPickle as pickle + except ImportError: + import pickle + + in_f = open(filename,"rb") + + tabversion = pickle.load(in_f) + if tabversion != __tabversion__: + raise VersionError("yacc table file version is out of date") + self.lr_method = pickle.load(in_f) + signature = pickle.load(in_f) + self.lr_action = pickle.load(in_f) + self.lr_goto = pickle.load(in_f) + productions = pickle.load(in_f) + + self.lr_productions = [] + for p in productions: + self.lr_productions.append(MiniProduction(*p)) + + in_f.close() + return signature + + # Bind all production function names to callable objects in pdict + def bind_callables(self,pdict): + for p in self.lr_productions: + p.bind(pdict) + +# ----------------------------------------------------------------------------- +# === LR Generator === +# +# The following classes and functions are used to generate LR parsing tables on +# a grammar. +# ----------------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# digraph() +# traverse() +# +# The following two functions are used to compute set valued functions +# of the form: +# +# F(x) = F'(x) U U{F(y) | x R y} +# +# This is used to compute the values of Read() sets as well as FOLLOW sets +# in LALR(1) generation. +# +# Inputs: X - An input set +# R - A relation +# FP - Set-valued function +# ------------------------------------------------------------------------------ + +def digraph(X,R,FP): + N = { } + for x in X: + N[x] = 0 + stack = [] + F = { } + for x in X: + if N[x] == 0: traverse(x,N,stack,F,X,R,FP) + return F + +def traverse(x,N,stack,F,X,R,FP): + stack.append(x) + d = len(stack) + N[x] = d + F[x] = FP(x) # F(X) <- F'(x) + + rel = R(x) # Get y's related to x + for y in rel: + if N[y] == 0: + traverse(y,N,stack,F,X,R,FP) + N[x] = min(N[x],N[y]) + for a in F.get(y,[]): + if a not in F[x]: F[x].append(a) + if N[x] == d: + N[stack[-1]] = MAXINT + F[stack[-1]] = F[x] + element = stack.pop() + while element != x: + N[stack[-1]] = MAXINT + F[stack[-1]] = F[x] + element = stack.pop() + +class LALRError(YaccError): pass + +# ----------------------------------------------------------------------------- +# == LRGeneratedTable == +# +# This class implements the LR table generation algorithm. There are no +# public methods except for write() +# ----------------------------------------------------------------------------- + +class LRGeneratedTable(LRTable): + def __init__(self,grammar,method='LALR',log=None): + if method not in ['SLR','LALR']: + raise LALRError("Unsupported method %s" % method) + + self.grammar = grammar + self.lr_method = method + + # Set up the logger + if not log: + log = NullLogger() + self.log = log + + # Internal attributes + self.lr_action = {} # Action table + self.lr_goto = {} # Goto table + self.lr_productions = grammar.Productions # Copy of grammar Production array + self.lr_goto_cache = {} # Cache of computed gotos + self.lr0_cidhash = {} # Cache of closures + + self._add_count = 0 # Internal counter used to detect cycles + + # Diagonistic information filled in by the table generator + self.sr_conflict = 0 + self.rr_conflict = 0 + self.conflicts = [] # List of conflicts + + self.sr_conflicts = [] + self.rr_conflicts = [] + + # Build the tables + self.grammar.build_lritems() + self.grammar.compute_first() + self.grammar.compute_follow() + self.lr_parse_table() + + # Compute the LR(0) closure operation on I, where I is a set of LR(0) items. + + def lr0_closure(self,I): + self._add_count += 1 + + # Add everything in I to J + J = I[:] + didadd = 1 + while didadd: + didadd = 0 + for j in J: + for x in j.lr_after: + if getattr(x,"lr0_added",0) == self._add_count: continue + # Add B --> .G to J + J.append(x.lr_next) + x.lr0_added = self._add_count + didadd = 1 + + return J + + # Compute the LR(0) goto function goto(I,X) where I is a set + # of LR(0) items and X is a grammar symbol. This function is written + # in a way that guarantees uniqueness of the generated goto sets + # (i.e. the same goto set will never be returned as two different Python + # objects). With uniqueness, we can later do fast set comparisons using + # id(obj) instead of element-wise comparison. + + def lr0_goto(self,I,x): + # First we look for a previously cached entry + g = self.lr_goto_cache.get((id(I),x),None) + if g: return g + + # Now we generate the goto set in a way that guarantees uniqueness + # of the result + + s = self.lr_goto_cache.get(x,None) + if not s: + s = { } + self.lr_goto_cache[x] = s + + gs = [ ] + for p in I: + n = p.lr_next + if n and n.lr_before == x: + s1 = s.get(id(n),None) + if not s1: + s1 = { } + s[id(n)] = s1 + gs.append(n) + s = s1 + g = s.get('$end',None) + if not g: + if gs: + g = self.lr0_closure(gs) + s['$end'] = g + else: + s['$end'] = gs + self.lr_goto_cache[(id(I),x)] = g + return g + + # Compute the LR(0) sets of item function + def lr0_items(self): + + C = [ self.lr0_closure([self.grammar.Productions[0].lr_next]) ] + i = 0 + for I in C: + self.lr0_cidhash[id(I)] = i + i += 1 + + # Loop over the items in C and each grammar symbols + i = 0 + while i < len(C): + I = C[i] + i += 1 + + # Collect all of the symbols that could possibly be in the goto(I,X) sets + asyms = { } + for ii in I: + for s in ii.usyms: + asyms[s] = None + + for x in asyms: + g = self.lr0_goto(I,x) + if not g: continue + if id(g) in self.lr0_cidhash: continue + self.lr0_cidhash[id(g)] = len(C) + C.append(g) + + return C + + # ----------------------------------------------------------------------------- + # ==== LALR(1) Parsing ==== + # + # LALR(1) parsing is almost exactly the same as SLR except that instead of + # relying upon Follow() sets when performing reductions, a more selective + # lookahead set that incorporates the state of the LR(0) machine is utilized. + # Thus, we mainly just have to focus on calculating the lookahead sets. + # + # The method used here is due to DeRemer and Pennelo (1982). + # + # DeRemer, F. L., and T. J. Pennelo: "Efficient Computation of LALR(1) + # Lookahead Sets", ACM Transactions on Programming Languages and Systems, + # Vol. 4, No. 4, Oct. 1982, pp. 615-649 + # + # Further details can also be found in: + # + # J. Tremblay and P. Sorenson, "The Theory and Practice of Compiler Writing", + # McGraw-Hill Book Company, (1985). + # + # ----------------------------------------------------------------------------- + + # ----------------------------------------------------------------------------- + # compute_nullable_nonterminals() + # + # Creates a dictionary containing all of the non-terminals that might produce + # an empty production. + # ----------------------------------------------------------------------------- + + def compute_nullable_nonterminals(self): + nullable = {} + num_nullable = 0 + while 1: + for p in self.grammar.Productions[1:]: + if p.len == 0: + nullable[p.name] = 1 + continue + for t in p.prod: + if not t in nullable: break + else: + nullable[p.name] = 1 + if len(nullable) == num_nullable: break + num_nullable = len(nullable) + return nullable + + # ----------------------------------------------------------------------------- + # find_nonterminal_trans(C) + # + # Given a set of LR(0) items, this functions finds all of the non-terminal + # transitions. These are transitions in which a dot appears immediately before + # a non-terminal. Returns a list of tuples of the form (state,N) where state + # is the state number and N is the nonterminal symbol. + # + # The input C is the set of LR(0) items. + # ----------------------------------------------------------------------------- + + def find_nonterminal_transitions(self,C): + trans = [] + for state in range(len(C)): + for p in C[state]: + if p.lr_index < p.len - 1: + t = (state,p.prod[p.lr_index+1]) + if t[1] in self.grammar.Nonterminals: + if t not in trans: trans.append(t) + state = state + 1 + return trans + + # ----------------------------------------------------------------------------- + # dr_relation() + # + # Computes the DR(p,A) relationships for non-terminal transitions. The input + # is a tuple (state,N) where state is a number and N is a nonterminal symbol. + # + # Returns a list of terminals. + # ----------------------------------------------------------------------------- + + def dr_relation(self,C,trans,nullable): + dr_set = { } + state,N = trans + terms = [] + + g = self.lr0_goto(C[state],N) + for p in g: + if p.lr_index < p.len - 1: + a = p.prod[p.lr_index+1] + if a in self.grammar.Terminals: + if a not in terms: terms.append(a) + + # This extra bit is to handle the start state + if state == 0 and N == self.grammar.Productions[0].prod[0]: + terms.append('$end') + + return terms + + # ----------------------------------------------------------------------------- + # reads_relation() + # + # Computes the READS() relation (p,A) READS (t,C). + # ----------------------------------------------------------------------------- + + def reads_relation(self,C, trans, empty): + # Look for empty transitions + rel = [] + state, N = trans + + g = self.lr0_goto(C[state],N) + j = self.lr0_cidhash.get(id(g),-1) + for p in g: + if p.lr_index < p.len - 1: + a = p.prod[p.lr_index + 1] + if a in empty: + rel.append((j,a)) + + return rel + + # ----------------------------------------------------------------------------- + # compute_lookback_includes() + # + # Determines the lookback and includes relations + # + # LOOKBACK: + # + # This relation is determined by running the LR(0) state machine forward. + # For example, starting with a production "N : . A B C", we run it forward + # to obtain "N : A B C ." We then build a relationship between this final + # state and the starting state. These relationships are stored in a dictionary + # lookdict. + # + # INCLUDES: + # + # Computes the INCLUDE() relation (p,A) INCLUDES (p',B). + # + # This relation is used to determine non-terminal transitions that occur + # inside of other non-terminal transition states. (p,A) INCLUDES (p', B) + # if the following holds: + # + # B -> LAT, where T -> epsilon and p' -L-> p + # + # L is essentially a prefix (which may be empty), T is a suffix that must be + # able to derive an empty string. State p' must lead to state p with the string L. + # + # ----------------------------------------------------------------------------- + + def compute_lookback_includes(self,C,trans,nullable): + + lookdict = {} # Dictionary of lookback relations + includedict = {} # Dictionary of include relations + + # Make a dictionary of non-terminal transitions + dtrans = {} + for t in trans: + dtrans[t] = 1 + + # Loop over all transitions and compute lookbacks and includes + for state,N in trans: + lookb = [] + includes = [] + for p in C[state]: + if p.name != N: continue + + # Okay, we have a name match. We now follow the production all the way + # through the state machine until we get the . on the right hand side + + lr_index = p.lr_index + j = state + while lr_index < p.len - 1: + lr_index = lr_index + 1 + t = p.prod[lr_index] + + # Check to see if this symbol and state are a non-terminal transition + if (j,t) in dtrans: + # Yes. Okay, there is some chance that this is an includes relation + # the only way to know for certain is whether the rest of the + # production derives empty + + li = lr_index + 1 + while li < p.len: + if p.prod[li] in self.grammar.Terminals: break # No forget it + if not p.prod[li] in nullable: break + li = li + 1 + else: + # Appears to be a relation between (j,t) and (state,N) + includes.append((j,t)) + + g = self.lr0_goto(C[j],t) # Go to next set + j = self.lr0_cidhash.get(id(g),-1) # Go to next state + + # When we get here, j is the final state, now we have to locate the production + for r in C[j]: + if r.name != p.name: continue + if r.len != p.len: continue + i = 0 + # This look is comparing a production ". A B C" with "A B C ." + while i < r.lr_index: + if r.prod[i] != p.prod[i+1]: break + i = i + 1 + else: + lookb.append((j,r)) + for i in includes: + if not i in includedict: includedict[i] = [] + includedict[i].append((state,N)) + lookdict[(state,N)] = lookb + + return lookdict,includedict + + # ----------------------------------------------------------------------------- + # compute_read_sets() + # + # Given a set of LR(0) items, this function computes the read sets. + # + # Inputs: C = Set of LR(0) items + # ntrans = Set of nonterminal transitions + # nullable = Set of empty transitions + # + # Returns a set containing the read sets + # ----------------------------------------------------------------------------- + + def compute_read_sets(self,C, ntrans, nullable): + FP = lambda x: self.dr_relation(C,x,nullable) + R = lambda x: self.reads_relation(C,x,nullable) + F = digraph(ntrans,R,FP) + return F + + # ----------------------------------------------------------------------------- + # compute_follow_sets() + # + # Given a set of LR(0) items, a set of non-terminal transitions, a readset, + # and an include set, this function computes the follow sets + # + # Follow(p,A) = Read(p,A) U U {Follow(p',B) | (p,A) INCLUDES (p',B)} + # + # Inputs: + # ntrans = Set of nonterminal transitions + # readsets = Readset (previously computed) + # inclsets = Include sets (previously computed) + # + # Returns a set containing the follow sets + # ----------------------------------------------------------------------------- + + def compute_follow_sets(self,ntrans,readsets,inclsets): + FP = lambda x: readsets[x] + R = lambda x: inclsets.get(x,[]) + F = digraph(ntrans,R,FP) + return F + + # ----------------------------------------------------------------------------- + # add_lookaheads() + # + # Attaches the lookahead symbols to grammar rules. + # + # Inputs: lookbacks - Set of lookback relations + # followset - Computed follow set + # + # This function directly attaches the lookaheads to productions contained + # in the lookbacks set + # ----------------------------------------------------------------------------- + + def add_lookaheads(self,lookbacks,followset): + for trans,lb in lookbacks.items(): + # Loop over productions in lookback + for state,p in lb: + if not state in p.lookaheads: + p.lookaheads[state] = [] + f = followset.get(trans,[]) + for a in f: + if a not in p.lookaheads[state]: p.lookaheads[state].append(a) + + # ----------------------------------------------------------------------------- + # add_lalr_lookaheads() + # + # This function does all of the work of adding lookahead information for use + # with LALR parsing + # ----------------------------------------------------------------------------- + + def add_lalr_lookaheads(self,C): + # Determine all of the nullable nonterminals + nullable = self.compute_nullable_nonterminals() + + # Find all non-terminal transitions + trans = self.find_nonterminal_transitions(C) + + # Compute read sets + readsets = self.compute_read_sets(C,trans,nullable) + + # Compute lookback/includes relations + lookd, included = self.compute_lookback_includes(C,trans,nullable) + + # Compute LALR FOLLOW sets + followsets = self.compute_follow_sets(trans,readsets,included) + + # Add all of the lookaheads + self.add_lookaheads(lookd,followsets) + + # ----------------------------------------------------------------------------- + # lr_parse_table() + # + # This function constructs the parse tables for SLR or LALR + # ----------------------------------------------------------------------------- + def lr_parse_table(self): + Productions = self.grammar.Productions + Precedence = self.grammar.Precedence + goto = self.lr_goto # Goto array + action = self.lr_action # Action array + log = self.log # Logger for output + + actionp = { } # Action production array (temporary) + + log.info("Parsing method: %s", self.lr_method) + + # Step 1: Construct C = { I0, I1, ... IN}, collection of LR(0) items + # This determines the number of states + + C = self.lr0_items() + + if self.lr_method == 'LALR': + self.add_lalr_lookaheads(C) + + # Build the parser table, state by state + st = 0 + for I in C: + # Loop over each production in I + actlist = [ ] # List of actions + st_action = { } + st_actionp = { } + st_goto = { } + log.info("") + log.info("state %d", st) + log.info("") + for p in I: + log.info(" (%d) %s", p.number, str(p)) + log.info("") + + for p in I: + if p.len == p.lr_index + 1: + if p.name == "S'": + # Start symbol. Accept! + st_action["$end"] = 0 + st_actionp["$end"] = p + else: + # We are at the end of a production. Reduce! + if self.lr_method == 'LALR': + laheads = p.lookaheads[st] + else: + laheads = self.grammar.Follow[p.name] + for a in laheads: + actlist.append((a,p,"reduce using rule %d (%s)" % (p.number,p))) + r = st_action.get(a,None) + if r is not None: + # Whoa. Have a shift/reduce or reduce/reduce conflict + if r > 0: + # Need to decide on shift or reduce here + # By default we favor shifting. Need to add + # some precedence rules here. + sprec,slevel = Productions[st_actionp[a].number].prec + rprec,rlevel = Precedence.get(a,('right',0)) + if (slevel < rlevel) or ((slevel == rlevel) and (rprec == 'left')): + # We really need to reduce here. + st_action[a] = -p.number + st_actionp[a] = p + if not slevel and not rlevel: + log.info(" ! shift/reduce conflict for %s resolved as reduce",a) + self.sr_conflicts.append((st,a,'reduce')) + Productions[p.number].reduced += 1 + elif (slevel == rlevel) and (rprec == 'nonassoc'): + st_action[a] = None + else: + # Hmmm. Guess we'll keep the shift + if not rlevel: + log.info(" ! shift/reduce conflict for %s resolved as shift",a) + self.sr_conflicts.append((st,a,'shift')) + elif r < 0: + # Reduce/reduce conflict. In this case, we favor the rule + # that was defined first in the grammar file + oldp = Productions[-r] + pp = Productions[p.number] + if oldp.line > pp.line: + st_action[a] = -p.number + st_actionp[a] = p + chosenp,rejectp = pp,oldp + Productions[p.number].reduced += 1 + Productions[oldp.number].reduced -= 1 + else: + chosenp,rejectp = oldp,pp + self.rr_conflicts.append((st,chosenp,rejectp)) + log.info(" ! reduce/reduce conflict for %s resolved using rule %d (%s)", a,st_actionp[a].number, st_actionp[a]) + else: + raise LALRError("Unknown conflict in state %d" % st) + else: + st_action[a] = -p.number + st_actionp[a] = p + Productions[p.number].reduced += 1 + else: + i = p.lr_index + a = p.prod[i+1] # Get symbol right after the "." + if a in self.grammar.Terminals: + g = self.lr0_goto(I,a) + j = self.lr0_cidhash.get(id(g),-1) + if j >= 0: + # We are in a shift state + actlist.append((a,p,"shift and go to state %d" % j)) + r = st_action.get(a,None) + if r is not None: + # Whoa have a shift/reduce or shift/shift conflict + if r > 0: + if r != j: + raise LALRError("Shift/shift conflict in state %d" % st) + elif r < 0: + # Do a precedence check. + # - if precedence of reduce rule is higher, we reduce. + # - if precedence of reduce is same and left assoc, we reduce. + # - otherwise we shift + rprec,rlevel = Productions[st_actionp[a].number].prec + sprec,slevel = Precedence.get(a,('right',0)) + if (slevel > rlevel) or ((slevel == rlevel) and (rprec == 'right')): + # We decide to shift here... highest precedence to shift + Productions[st_actionp[a].number].reduced -= 1 + st_action[a] = j + st_actionp[a] = p + if not rlevel: + log.info(" ! shift/reduce conflict for %s resolved as shift",a) + self.sr_conflicts.append((st,a,'shift')) + elif (slevel == rlevel) and (rprec == 'nonassoc'): + st_action[a] = None + else: + # Hmmm. Guess we'll keep the reduce + if not slevel and not rlevel: + log.info(" ! shift/reduce conflict for %s resolved as reduce",a) + self.sr_conflicts.append((st,a,'reduce')) + + else: + raise LALRError("Unknown conflict in state %d" % st) + else: + st_action[a] = j + st_actionp[a] = p + + # Print the actions associated with each terminal + _actprint = { } + for a,p,m in actlist: + if a in st_action: + if p is st_actionp[a]: + log.info(" %-15s %s",a,m) + _actprint[(a,m)] = 1 + log.info("") + # Print the actions that were not used. (debugging) + not_used = 0 + for a,p,m in actlist: + if a in st_action: + if p is not st_actionp[a]: + if not (a,m) in _actprint: + log.debug(" ! %-15s [ %s ]",a,m) + not_used = 1 + _actprint[(a,m)] = 1 + if not_used: + log.debug("") + + # Construct the goto table for this state + + nkeys = { } + for ii in I: + for s in ii.usyms: + if s in self.grammar.Nonterminals: + nkeys[s] = None + for n in nkeys: + g = self.lr0_goto(I,n) + j = self.lr0_cidhash.get(id(g),-1) + if j >= 0: + st_goto[n] = j + log.info(" %-30s shift and go to state %d",n,j) + + action[st] = st_action + actionp[st] = st_actionp + goto[st] = st_goto + st += 1 + + + # ----------------------------------------------------------------------------- + # write() + # + # This function writes the LR parsing tables to a file + # ----------------------------------------------------------------------------- + + def write_table(self,modulename,outputdir='',signature=""): + basemodulename = modulename.split(".")[-1] + filename = os.path.join(outputdir,basemodulename) + ".py" + try: + f = open(filename,"w") + + f.write(""" +# %s +# This file is automatically generated. Do not edit. +_tabversion = %r + +_lr_method = %r + +_lr_signature = %r + """ % (filename, __tabversion__, self.lr_method, signature)) + + # Change smaller to 0 to go back to original tables + smaller = 1 + + # Factor out names to try and make smaller + if smaller: + items = { } + + for s,nd in self.lr_action.items(): + for name,v in nd.items(): + i = items.get(name) + if not i: + i = ([],[]) + items[name] = i + i[0].append(s) + i[1].append(v) + + f.write("\n_lr_action_items = {") + for k,v in items.items(): + f.write("%r:([" % k) + for i in v[0]: + f.write("%r," % i) + f.write("],[") + for i in v[1]: + f.write("%r," % i) + + f.write("]),") + f.write("}\n") + + f.write(""" +_lr_action = { } +for _k, _v in _lr_action_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_action: _lr_action[_x] = { } + _lr_action[_x][_k] = _y +del _lr_action_items +""") + + else: + f.write("\n_lr_action = { "); + for k,v in self.lr_action.items(): + f.write("(%r,%r):%r," % (k[0],k[1],v)) + f.write("}\n"); + + if smaller: + # Factor out names to try and make smaller + items = { } + + for s,nd in self.lr_goto.items(): + for name,v in nd.items(): + i = items.get(name) + if not i: + i = ([],[]) + items[name] = i + i[0].append(s) + i[1].append(v) + + f.write("\n_lr_goto_items = {") + for k,v in items.items(): + f.write("%r:([" % k) + for i in v[0]: + f.write("%r," % i) + f.write("],[") + for i in v[1]: + f.write("%r," % i) + + f.write("]),") + f.write("}\n") + + f.write(""" +_lr_goto = { } +for _k, _v in _lr_goto_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_goto: _lr_goto[_x] = { } + _lr_goto[_x][_k] = _y +del _lr_goto_items +""") + else: + f.write("\n_lr_goto = { "); + for k,v in self.lr_goto.items(): + f.write("(%r,%r):%r," % (k[0],k[1],v)) + f.write("}\n"); + + # Write production table + f.write("_lr_productions = [\n") + for p in self.lr_productions: + if p.func: + f.write(" (%r,%r,%d,%r,%r,%d),\n" % (p.str,p.name, p.len, p.func,p.file,p.line)) + else: + f.write(" (%r,%r,%d,None,None,None),\n" % (str(p),p.name, p.len)) + f.write("]\n") + f.close() + + except IOError: + e = sys.exc_info()[1] + sys.stderr.write("Unable to create '%s'\n" % filename) + sys.stderr.write(str(e)+"\n") + return + + + # ----------------------------------------------------------------------------- + # pickle_table() + # + # This function pickles the LR parsing tables to a supplied file object + # ----------------------------------------------------------------------------- + + def pickle_table(self,filename,signature=""): + try: + import cPickle as pickle + except ImportError: + import pickle + outf = open(filename,"wb") + pickle.dump(__tabversion__,outf,pickle_protocol) + pickle.dump(self.lr_method,outf,pickle_protocol) + pickle.dump(signature,outf,pickle_protocol) + pickle.dump(self.lr_action,outf,pickle_protocol) + pickle.dump(self.lr_goto,outf,pickle_protocol) + + outp = [] + for p in self.lr_productions: + if p.func: + outp.append((p.str,p.name, p.len, p.func,p.file,p.line)) + else: + outp.append((str(p),p.name,p.len,None,None,None)) + pickle.dump(outp,outf,pickle_protocol) + outf.close() + +# ----------------------------------------------------------------------------- +# === INTROSPECTION === +# +# The following functions and classes are used to implement the PLY +# introspection features followed by the yacc() function itself. +# ----------------------------------------------------------------------------- + +# ----------------------------------------------------------------------------- +# get_caller_module_dict() +# +# This function returns a dictionary containing all of the symbols defined within +# a caller further down the call stack. This is used to get the environment +# associated with the yacc() call if none was provided. +# ----------------------------------------------------------------------------- + +def get_caller_module_dict(levels): + try: + raise RuntimeError + except RuntimeError: + e,b,t = sys.exc_info() + f = t.tb_frame + while levels > 0: + f = f.f_back + levels -= 1 + ldict = f.f_globals.copy() + if f.f_globals != f.f_locals: + ldict.update(f.f_locals) + + return ldict + +# ----------------------------------------------------------------------------- +# parse_grammar() +# +# This takes a raw grammar rule string and parses it into production data +# ----------------------------------------------------------------------------- +def parse_grammar(doc,file,line): + grammar = [] + # Split the doc string into lines + pstrings = doc.splitlines() + lastp = None + dline = line + for ps in pstrings: + dline += 1 + p = ps.split() + if not p: continue + try: + if p[0] == '|': + # This is a continuation of a previous rule + if not lastp: + raise SyntaxError("%s:%d: Misplaced '|'" % (file,dline)) + prodname = lastp + syms = p[1:] + else: + prodname = p[0] + lastp = prodname + syms = p[2:] + assign = p[1] + if assign != ':' and assign != '::=': + raise SyntaxError("%s:%d: Syntax error. Expected ':'" % (file,dline)) + + grammar.append((file,dline,prodname,syms)) + except SyntaxError: + raise + except Exception: + raise SyntaxError("%s:%d: Syntax error in rule '%s'" % (file,dline,ps.strip())) + + return grammar + +# ----------------------------------------------------------------------------- +# ParserReflect() +# +# This class represents information extracted for building a parser including +# start symbol, error function, tokens, precedence list, action functions, +# etc. +# ----------------------------------------------------------------------------- +class ParserReflect(object): + def __init__(self,pdict,log=None): + self.pdict = pdict + self.start = None + self.error_func = None + self.tokens = None + self.files = {} + self.grammar = [] + self.error = 0 + + if log is None: + self.log = PlyLogger(sys.stderr) + else: + self.log = log + + # Get all of the basic information + def get_all(self): + self.get_start() + self.get_error_func() + self.get_tokens() + self.get_precedence() + self.get_pfunctions() + + # Validate all of the information + def validate_all(self): + self.validate_start() + self.validate_error_func() + self.validate_tokens() + self.validate_precedence() + self.validate_pfunctions() + self.validate_files() + return self.error + + # Compute a signature over the grammar + def signature(self): + try: + from hashlib import md5 + except ImportError: + from md5 import md5 + try: + sig = md5() + if self.start: + sig.update(self.start.encode('latin-1')) + if self.prec: + sig.update("".join(["".join(p) for p in self.prec]).encode('latin-1')) + if self.tokens: + sig.update(" ".join(self.tokens).encode('latin-1')) + for f in self.pfuncs: + if f[3]: + sig.update(f[3].encode('latin-1')) + except (TypeError,ValueError): + pass + return sig.digest() + + # ----------------------------------------------------------------------------- + # validate_file() + # + # This method checks to see if there are duplicated p_rulename() functions + # in the parser module file. Without this function, it is really easy for + # users to make mistakes by cutting and pasting code fragments (and it's a real + # bugger to try and figure out why the resulting parser doesn't work). Therefore, + # we just do a little regular expression pattern matching of def statements + # to try and detect duplicates. + # ----------------------------------------------------------------------------- + + def validate_files(self): + # Match def p_funcname( + fre = re.compile(r'\s*def\s+(p_[a-zA-Z_0-9]*)\(') + + for filename in self.files.keys(): + base,ext = os.path.splitext(filename) + if ext != '.py': return 1 # No idea. Assume it's okay. + + try: + f = open(filename) + lines = f.readlines() + f.close() + except IOError: + continue + + counthash = { } + for linen,l in enumerate(lines): + linen += 1 + m = fre.match(l) + if m: + name = m.group(1) + prev = counthash.get(name) + if not prev: + counthash[name] = linen + else: + self.log.warning("%s:%d: Function %s redefined. Previously defined on line %d", filename,linen,name,prev) + + # Get the start symbol + def get_start(self): + self.start = self.pdict.get('start') + + # Validate the start symbol + def validate_start(self): + if self.start is not None: + if not isinstance(self.start,str): + self.log.error("'start' must be a string") + + # Look for error handler + def get_error_func(self): + self.error_func = self.pdict.get('p_error') + + # Validate the error function + def validate_error_func(self): + if self.error_func: + if isinstance(self.error_func,types.FunctionType): + ismethod = 0 + elif isinstance(self.error_func, types.MethodType): + ismethod = 1 + else: + self.log.error("'p_error' defined, but is not a function or method") + self.error = 1 + return + + eline = func_code(self.error_func).co_firstlineno + efile = func_code(self.error_func).co_filename + self.files[efile] = 1 + + if (func_code(self.error_func).co_argcount != 1+ismethod): + self.log.error("%s:%d: p_error() requires 1 argument",efile,eline) + self.error = 1 + + # Get the tokens map + def get_tokens(self): + tokens = self.pdict.get("tokens",None) + if not tokens: + self.log.error("No token list is defined") + self.error = 1 + return + + if not isinstance(tokens,(list, tuple)): + self.log.error("tokens must be a list or tuple") + self.error = 1 + return + + if not tokens: + self.log.error("tokens is empty") + self.error = 1 + return + + self.tokens = tokens + + # Validate the tokens + def validate_tokens(self): + # Validate the tokens. + if 'error' in self.tokens: + self.log.error("Illegal token name 'error'. Is a reserved word") + self.error = 1 + return + + terminals = {} + for n in self.tokens: + if n in terminals: + self.log.warning("Token '%s' multiply defined", n) + terminals[n] = 1 + + # Get the precedence map (if any) + def get_precedence(self): + self.prec = self.pdict.get("precedence",None) + + # Validate and parse the precedence map + def validate_precedence(self): + preclist = [] + if self.prec: + if not isinstance(self.prec,(list,tuple)): + self.log.error("precedence must be a list or tuple") + self.error = 1 + return + for level,p in enumerate(self.prec): + if not isinstance(p,(list,tuple)): + self.log.error("Bad precedence table") + self.error = 1 + return + + if len(p) < 2: + self.log.error("Malformed precedence entry %s. Must be (assoc, term, ..., term)",p) + self.error = 1 + return + assoc = p[0] + if not isinstance(assoc,str): + self.log.error("precedence associativity must be a string") + self.error = 1 + return + for term in p[1:]: + if not isinstance(term,str): + self.log.error("precedence items must be strings") + self.error = 1 + return + preclist.append((term,assoc,level+1)) + self.preclist = preclist + + # Get all p_functions from the grammar + def get_pfunctions(self): + p_functions = [] + for name, item in self.pdict.items(): + if name[:2] != 'p_': continue + if name == 'p_error': continue + if isinstance(item,(types.FunctionType,types.MethodType)): + line = func_code(item).co_firstlineno + file = func_code(item).co_filename + p_functions.append((line,file,name,item.__doc__)) + + # Sort all of the actions by line number + p_functions.sort() + self.pfuncs = p_functions + + + # Validate all of the p_functions + def validate_pfunctions(self): + grammar = [] + # Check for non-empty symbols + if len(self.pfuncs) == 0: + self.log.error("no rules of the form p_rulename are defined") + self.error = 1 + return + + for line, file, name, doc in self.pfuncs: + func = self.pdict[name] + if isinstance(func, types.MethodType): + reqargs = 2 + else: + reqargs = 1 + if func_code(func).co_argcount > reqargs: + self.log.error("%s:%d: Rule '%s' has too many arguments",file,line,func.__name__) + self.error = 1 + elif func_code(func).co_argcount < reqargs: + self.log.error("%s:%d: Rule '%s' requires an argument",file,line,func.__name__) + self.error = 1 + elif not func.__doc__: + self.log.warning("%s:%d: No documentation string specified in function '%s' (ignored)",file,line,func.__name__) + else: + try: + parsed_g = parse_grammar(doc,file,line) + for g in parsed_g: + grammar.append((name, g)) + except SyntaxError: + e = sys.exc_info()[1] + self.log.error(str(e)) + self.error = 1 + + # Looks like a valid grammar rule + # Mark the file in which defined. + self.files[file] = 1 + + # Secondary validation step that looks for p_ definitions that are not functions + # or functions that look like they might be grammar rules. + + for n,v in self.pdict.items(): + if n[0:2] == 'p_' and isinstance(v, (types.FunctionType, types.MethodType)): continue + if n[0:2] == 't_': continue + if n[0:2] == 'p_' and n != 'p_error': + self.log.warning("'%s' not defined as a function", n) + if ((isinstance(v,types.FunctionType) and func_code(v).co_argcount == 1) or + (isinstance(v,types.MethodType) and func_code(v).co_argcount == 2)): + try: + doc = v.__doc__.split(" ") + if doc[1] == ':': + self.log.warning("%s:%d: Possible grammar rule '%s' defined without p_ prefix", + func_code(v).co_filename, func_code(v).co_firstlineno,n) + except Exception: + pass + + self.grammar = grammar + +# ----------------------------------------------------------------------------- +# yacc(module) +# +# Build a parser +# ----------------------------------------------------------------------------- + +def yacc(method='LALR', debug=yaccdebug, module=None, tabmodule=tab_module, start=None, + check_recursion=1, optimize=0, write_tables=1, debugfile=debug_file,outputdir='', + debuglog=None, errorlog = None, picklefile=None): + + global parse # Reference to the parsing method of the last built parser + + # If pickling is enabled, table files are not created + + if picklefile: + write_tables = 0 + + if errorlog is None: + errorlog = PlyLogger(sys.stderr) + + # Get the module dictionary used for the parser + if module: + _items = [(k,getattr(module,k)) for k in dir(module)] + pdict = dict(_items) + else: + pdict = get_caller_module_dict(2) + + # Collect parser information from the dictionary + pinfo = ParserReflect(pdict,log=errorlog) + pinfo.get_all() + + if pinfo.error: + raise YaccError("Unable to build parser") + + # Check signature against table files (if any) + signature = pinfo.signature() + + # Read the tables + try: + lr = LRTable() + if picklefile: + read_signature = lr.read_pickle(picklefile) + else: + read_signature = lr.read_table(tabmodule) + if optimize or (read_signature == signature): + try: + lr.bind_callables(pinfo.pdict) + parser = LRParser(lr,pinfo.error_func) + parse = parser.parse + return parser + except Exception: + e = sys.exc_info()[1] + errorlog.warning("There was a problem loading the table file: %s", repr(e)) + except VersionError: + e = sys.exc_info() + errorlog.warning(str(e)) + except Exception: + pass + + if debuglog is None: + if debug: + debuglog = PlyLogger(open(debugfile,"w")) + else: + debuglog = NullLogger() + + debuglog.info("Created by PLY version %s (http://www.dabeaz.com/ply)", __version__) + + + errors = 0 + + # Validate the parser information + if pinfo.validate_all(): + raise YaccError("Unable to build parser") + + if not pinfo.error_func: + errorlog.warning("no p_error() function is defined") + + # Create a grammar object + grammar = Grammar(pinfo.tokens) + + # Set precedence level for terminals + for term, assoc, level in pinfo.preclist: + try: + grammar.set_precedence(term,assoc,level) + except GrammarError: + e = sys.exc_info()[1] + errorlog.warning("%s",str(e)) + + # Add productions to the grammar + for funcname, gram in pinfo.grammar: + file, line, prodname, syms = gram + try: + grammar.add_production(prodname,syms,funcname,file,line) + except GrammarError: + e = sys.exc_info()[1] + errorlog.error("%s",str(e)) + errors = 1 + + # Set the grammar start symbols + try: + if start is None: + grammar.set_start(pinfo.start) + else: + grammar.set_start(start) + except GrammarError: + e = sys.exc_info()[1] + errorlog.error(str(e)) + errors = 1 + + if errors: + raise YaccError("Unable to build parser") + + # Verify the grammar structure + undefined_symbols = grammar.undefined_symbols() + for sym, prod in undefined_symbols: + errorlog.error("%s:%d: Symbol '%s' used, but not defined as a token or a rule",prod.file,prod.line,sym) + errors = 1 + + unused_terminals = grammar.unused_terminals() + if unused_terminals: + debuglog.info("") + debuglog.info("Unused terminals:") + debuglog.info("") + for term in unused_terminals: + errorlog.warning("Token '%s' defined, but not used", term) + debuglog.info(" %s", term) + + # Print out all productions to the debug log + if debug: + debuglog.info("") + debuglog.info("Grammar") + debuglog.info("") + for n,p in enumerate(grammar.Productions): + debuglog.info("Rule %-5d %s", n, p) + + # Find unused non-terminals + unused_rules = grammar.unused_rules() + for prod in unused_rules: + errorlog.warning("%s:%d: Rule '%s' defined, but not used", prod.file, prod.line, prod.name) + + if len(unused_terminals) == 1: + errorlog.warning("There is 1 unused token") + if len(unused_terminals) > 1: + errorlog.warning("There are %d unused tokens", len(unused_terminals)) + + if len(unused_rules) == 1: + errorlog.warning("There is 1 unused rule") + if len(unused_rules) > 1: + errorlog.warning("There are %d unused rules", len(unused_rules)) + + if debug: + debuglog.info("") + debuglog.info("Terminals, with rules where they appear") + debuglog.info("") + terms = list(grammar.Terminals) + terms.sort() + for term in terms: + debuglog.info("%-20s : %s", term, " ".join([str(s) for s in grammar.Terminals[term]])) + + debuglog.info("") + debuglog.info("Nonterminals, with rules where they appear") + debuglog.info("") + nonterms = list(grammar.Nonterminals) + nonterms.sort() + for nonterm in nonterms: + debuglog.info("%-20s : %s", nonterm, " ".join([str(s) for s in grammar.Nonterminals[nonterm]])) + debuglog.info("") + + if check_recursion: + unreachable = grammar.find_unreachable() + for u in unreachable: + errorlog.warning("Symbol '%s' is unreachable",u) + + infinite = grammar.infinite_cycles() + for inf in infinite: + errorlog.error("Infinite recursion detected for symbol '%s'", inf) + errors = 1 + + unused_prec = grammar.unused_precedence() + for term, assoc in unused_prec: + errorlog.error("Precedence rule '%s' defined for unknown symbol '%s'", assoc, term) + errors = 1 + + if errors: + raise YaccError("Unable to build parser") + + # Run the LRGeneratedTable on the grammar + if debug: + errorlog.debug("Generating %s tables", method) + + lr = LRGeneratedTable(grammar,method,debuglog) + + if debug: + num_sr = len(lr.sr_conflicts) + + # Report shift/reduce and reduce/reduce conflicts + if num_sr == 1: + errorlog.warning("1 shift/reduce conflict") + elif num_sr > 1: + errorlog.warning("%d shift/reduce conflicts", num_sr) + + num_rr = len(lr.rr_conflicts) + if num_rr == 1: + errorlog.warning("1 reduce/reduce conflict") + elif num_rr > 1: + errorlog.warning("%d reduce/reduce conflicts", num_rr) + + # Write out conflicts to the output file + if debug and (lr.sr_conflicts or lr.rr_conflicts): + debuglog.warning("") + debuglog.warning("Conflicts:") + debuglog.warning("") + + for state, tok, resolution in lr.sr_conflicts: + debuglog.warning("shift/reduce conflict for %s in state %d resolved as %s", tok, state, resolution) + + already_reported = {} + for state, rule, rejected in lr.rr_conflicts: + if (state,id(rule),id(rejected)) in already_reported: + continue + debuglog.warning("reduce/reduce conflict in state %d resolved using rule (%s)", state, rule) + debuglog.warning("rejected rule (%s) in state %d", rejected,state) + errorlog.warning("reduce/reduce conflict in state %d resolved using rule (%s)", state, rule) + errorlog.warning("rejected rule (%s) in state %d", rejected, state) + already_reported[state,id(rule),id(rejected)] = 1 + + warned_never = [] + for state, rule, rejected in lr.rr_conflicts: + if not rejected.reduced and (rejected not in warned_never): + debuglog.warning("Rule (%s) is never reduced", rejected) + errorlog.warning("Rule (%s) is never reduced", rejected) + warned_never.append(rejected) + + # Write the table file if requested + if write_tables: + lr.write_table(tabmodule,outputdir,signature) + + # Write a pickled version of the tables + if picklefile: + lr.pickle_table(picklefile,signature) + + # Build the parser + lr.bind_callables(pinfo.pdict) + parser = LRParser(lr,pinfo.error_func) + + parse = parser.parse + return parser diff --git a/src/Mod/OpenSCAD/prototype.py b/src/Mod/OpenSCAD/prototype.py new file mode 100644 index 000000000..b9444977e --- /dev/null +++ b/src/Mod/OpenSCAD/prototype.py @@ -0,0 +1,688 @@ +#!/usr/bin/env python + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (LGPL) +# as published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. + +import FreeCAD +import re,math +from OpenSCADFeatures import * +from OpenSCAD2Dgeom import * +from OpenSCADUtils import * + +if open.__module__ == '__builtin__': + pythonopen = open # to distinguish python built-in open function from the one declared here + +def openscadmesh(doc,scadstr,objname): + import Part,Mesh,os,OpenSCADUtils + tmpfilename=OpenSCADUtils.callopenscadstring(scadstr,'stl') + if tmpfilename: + #mesh1 = doc.getObject(objname) #reuse imported object + Mesh.insert(tmpfilename) + os.unlink(tmpfilename) + mesh1=doc.getObject(objname) #blog + mesh1.ViewObject.hide() + sh=Part.Shape() + sh.makeShapeFromMesh(mesh1.Mesh.Topology,0.1) + solid = Part.Solid(sh) + obj=doc.addObject("Part::FeaturePython",objname) + ImportObject(obj,mesh1) #This object is not mutable from the GUI + ViewProviderTree(obj.ViewObject) + solid=solid.removeSplitter() + if solid.Volume < 0: + solid.complement() + obj.Shape=solid#.removeSplitter() + return obj + else: + print scadstr + +class Node: + #fnmin=12 # maximal fn for implicit polygon renderfing + fnmin= FreeCAD.ParamGet(\ + "User parameter:BaseApp/Preferences/Mod/OpenSCAD").\ + GetInt('useMaxFN') + planedim=1e10 #size of the sqaure used as x-y-plane + def __init__(self,name,arguments=None,children=None,): + pass + self.name=name + self.arguments=arguments or {} + self.children=children or [] + + def __repr__(self): + str1 ='Node(name=%s' % self.name + if self.arguments: + str1 += ',arguments=%s' % self.arguments + if self.children: + str1 += ',children=%s' % self.children + return str1+')' + + def __nonzero__(self): + '''a Node is not obsolent if doesn't have children. Only if as neither name children or + arguments''' + return bool(self.name or self.arguments or self.children) + + def __len__(self): + '''return the numer of children''' + return len(self.children) + + def __getitem__(self,key): + '''dirct access to the children''' + return self.children.__getitem__(key) + + def rlen(self,checkmultmarix=False): + '''Total number of nodes''' + if self.children: + return 1+sum([ch.rlen() for ch in self.children]) + else: + return 1 + + + def addtofreecad(self,doc=None,fcpar=None): + def center(obj,x,y,z): + obj.Placement = FreeCAD.Placement(\ + FreeCAD.Vector(-x/2.0,-y/2.0,-z/2.0),\ + FreeCAD.Rotation(0,0,0,1)) + + import FreeCAD,Part + if not doc: + doc=FreeCAD.newDocument() + namel=self.name.lower() + multifeature={'union':"Part::MultiFuse",'imp_union':"Part::MultiFuse", + 'intersection':"Part::MultiCommon"} + if namel in multifeature: + if len(self.children)>1: + obj=doc.addObject(multifeature[namel],namel) + subobjs = [child.addtofreecad(doc,obj) for child in self.children] + obj.Shapes = subobjs + for subobj in subobjs: + subobj.ViewObject.hide() + elif len(self.children)==1: + obj = self.children[0].addtofreecad(doc,fcpar or True) + else: + obj = fcpar + elif namel == 'difference': + if len(self.children)==1: + obj = self.children[0].addtofreecad(doc,fcpar or True) + else: + obj=doc.addObject("Part::Cut",namel) + base = self.children[0].addtofreecad(doc,obj) + + if len(self.children)==2: + tool = self.children[1].addtofreecad(doc,obj) + else: + tool = Node(name='imp_union',\ + children=self.children[1:]).addtofreecad(doc,obj) + obj.Base = base + obj.Tool = tool + base.ViewObject.hide() + tool.ViewObject.hide() + elif namel == 'cube': + obj=doc.addObject('Part::Box',namel) + x,y,z=self.arguments['size'] + obj.Length=x + obj.Width=y + obj.Height=z + if self.arguments['center']: + center(obj,x,y,z) + elif namel == 'sphere': + obj=doc.addObject("Part::Sphere",namel) + obj.Radius = self.arguments['r'] + elif namel == 'cylinder': + h = self.arguments['h'] + r1 ,r2 = self.arguments['r1'], self.arguments['r2'] + if '$fn' in self.arguments and self.arguments['$fn'] > 2 \ + and self.arguments['$fn']<=Node.fnmin: + if r1 == r2: + import Draft + base = Draft.makePolygon(int(self.arguments['$fn']),r1) + obj = doc.addObject("Part::Extrusion",'prism') + obj.Base= base + obj.Dir = (0,0,h) + if self.arguments['center']: + center(obj,0,0,h) + base.ViewObject.hide() + elif True: #use Frustum Feature with makeRuledSurface + obj=doc.addObject("Part::FeaturePython",'frustum') + Frustum(obj,r1,r2,int(self.arguments['$fn']),h) + ViewProviderTree(obj.ViewObject) + if self.arguments['center']: + center(obj,0,0,h) + else: #Use Part::Loft and GetWire Feature + obj=doc.addObject('Part::Loft','frustum') + import Draft + p1 = Draft.makePolygon(int(self.arguments['$fn']),r1) + p2 = Draft.makePolygon(int(self.arguments['$fn']),r2) + if self.arguments['center']: + p1.Placement = FreeCAD.Placement(\ + FreeCAD.Vector(0.0,0.0,-h/2.0),FreeCAD.Rotation()) + p2.Placement = FreeCAD.Placement(\ + FreeCAD.Vector(0.0,0.0,h/2.0),FreeCAD.Rotation()) + else: + p2.Placement = FreeCAD.Placement(\ + FreeCAD.Vector(0.0,0.0,h),FreeCAD.Rotation()) + w1=doc.addObject("Part::FeaturePython",'polygonwire1') + w2=doc.addObject("Part::FeaturePython",'polygonwire2') + GetWire(w1,p1) + GetWire(w2,p2) + ViewProviderTree(w1.ViewObject) + ViewProviderTree(w2.ViewObject) + obj.Sections=[w1,w2] + obj.Solid=True + obj.Ruled=True + p1.ViewObject.hide() + p2.ViewObject.hide() + w1.ViewObject.hide() + w2.ViewObject.hide() + else: + if r1 == r2: + obj=doc.addObject("Part::Cylinder",namel) + obj.Height = h + obj.Radius = r1 + else: + obj=doc.addObject("Part::Cone",'cone') + obj.Height = h + obj.Radius1, obj.Radius2 = r1, r2 + if self.arguments['center']: + center(obj,0,0,h) + elif namel == 'polyhedron': + obj = doc.addObject("Part::Feature",namel) + points=self.arguments['points'] + faces=self.arguments['triangles'] + shell=Part.Shell([Part.Face(Part.makePolygon(\ + [tuple(points[pointindex]) for pointindex in \ + (face+face[0:1])])) for face in faces]) +# obj.Shape=Part.Solid(shell).removeSplitter() + solid=Part.Solid(shell).removeSplitter() + if solid.Volume < 0: +# solid.complement() + solid.reverse() + obj.Shape=solid#.removeSplitter() + + elif namel == 'polygon': + obj = doc.addObject("Part::Feature",namel) + points=self.arguments['points'] + paths = self.arguments.get('paths') + if not paths: + faces=[Part.Face(Part.makePolygon([(x,y,0) for x,y in points+points[0:1]]))] + else: + faces= [Part.Face(Part.makePolygon([(points[pointindex][0],points[pointindex][1],0) for \ + pointindex in (path+path[0:1])])) for path in paths] + obj.Shape=subtractfaces(faces) + elif namel == 'square': + obj = doc.addObject("Part::Plane",namel) + x,y = self.arguments['size'] + obj.Length = x + obj.Width = y + if self.arguments['center']: + center(obj,x,y,0) + elif namel == 'circle': + r = self.arguments['r'] + import Draft + if '$fn' in self.arguments and self.arguments['$fn'] != 0 \ + and self.arguments['$fn']<=Node.fnmin: + obj=Draft.makePolygon(int(self.arguments['$fn']),r) + else: + obj=Draft.makeCircle(r) # create a Face + #obj = doc.addObject("Part::Circle",namel);obj.Radius = r + elif namel == 'color': + if len(self.children) == 1: + obj = self.children[0].addtofreecad(doc,fcpar or True) + else: + obj = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,fcpar or True) + obj.ViewObject.ShapeColor = tuple([float(p) for p in self.arguments[:3]]) #RGB + transp = 100 - int(math.floor(100*self.arguments[3])) #Alpha + obj.ViewObject.Transparency = transp + elif namel == 'multmatrix': + assert(len(self.children)>0) + m1l=[round(f,12) for f in sum(self.arguments,[])] #Thats the original matrix + m1=FreeCAD.Matrix(*tuple(m1l)) #Thats the original matrix + if isspecialorthogonalpython(fcsubmatrix(m1)): #a Placement can represent the transformation + if len(self.children) == 1: + obj = self.children[0].addtofreecad(doc,fcpar or True) + else: + obj = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,fcpar or True) + #FreeCAD.Console.PrintMessage('obj %s\nmat %s/n' % (obj.Placement,m1)) + obj.Placement=FreeCAD.Placement(m1).multiply(obj.Placement) + else: #we need to apply the matrix transformation to the Shape using a custom PythonFeature + obj=doc.addObject("Part::FeaturePython",namel) + if len(self.children) == 1: + child = self.children[0].addtofreecad(doc,obj) + else: + child = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,obj) + MatrixTransform(obj,m1,child) #This object is not mutable from the GUI + ViewProviderTree(obj.ViewObject) + #elif namel == 'import': pass #Custom Feature + elif namel == 'linear_extrude': + height = self.arguments['height'] + twist = self.arguments.get('twist') + if not twist: + obj = doc.addObject("Part::Extrusion",namel) + else: #twist + obj=doc.addObject("Part::FeaturePython",'twist_extrude') + if len(self.children)==0: + base= Node('import',self.arguments).addtofreecad(doc,obj) + elif len(self.children)==1: + base = self.children[0].addtofreecad(doc,obj) + else: + base = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,obj) + if False and base.isDerivedFrom('Part::MultiFuse'): + #does not solve all the problems + newobj=doc.addObject("Part::FeaturePython",'refine') + RefineShape(newobj,base) + ViewProviderTree(newobj.ViewObject) + base.ViewObject.hide() + base=newobj + if not twist: + obj.Base= base + obj.Dir = (0,0,height) + else: #twist + Twist(obj,base,height,-twist) + ViewProviderTree(obj.ViewObject) + if self.arguments['center']: + center(obj,0,0,height) + base.ViewObject.hide() + + elif namel == 'rotate_extrude': + obj = doc.addObject("Part::Revolution",namel) + if len(self.children)==0: + base= Node('import',self.arguments).addtofreecad(doc,obj) + elif len(self.children)==1: + base = self.children[0].addtofreecad(doc,obj) + else: + base = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,obj) + if False and base.isDerivedFrom('Part::MultiFuse'): + #creates 'Axe and meridian are confused' Errors + newobj=doc.addObject("Part::FeaturePython",'refine') + RefineShape(newobj,base) + ViewProviderTree(newobj.ViewObject) + base.ViewObject.hide() + base=newobj + obj.Source= base + obj.Axis = (0.00,1.00,0.00) + obj.Base = (0.00,0.00,0.00) + obj.Angle = 360.00 + base.ViewObject.hide() + obj.Placement=FreeCAD.Placement(FreeCAD.Vector(),FreeCAD.Rotation(0,0,90)) + elif namel == 'projection': + if self.arguments['cut']: + planename='xy_plane_used_for_project_cut' + obj=doc.addObject('Part::MultiCommon','projection_cut') + plane = doc.getObject(planename) + if not plane: + plane=doc.addObject("Part::Plane",planename) + plane.Length=Node.planedim*2 + plane.Width=Node.planedim*2 + plane.Placement = FreeCAD.Placement(FreeCAD.Vector(\ + -Node.planedim,-Node.planedim,0),FreeCAD.Rotation(0,0,0,1)) + #plane.ViewObject.hide() + subobjs = [child.addtofreecad(doc,obj) for child in self.children] + subobjs.append(plane) + obj.Shapes = subobjs + for subobj in subobjs: + subobj.ViewObject.hide() + else: + #Do a proper projection + raise(NotImplementedError) + elif namel == 'import': + filename = self.arguments.get('file') + scale = self.arguments.get('scale') + origin = self.arguments.get('origin') + if filename: + import os + docname=os.path.split(filename)[1] + objname,extension = docname.split('.',1) + if not os.path.isabs(filename): + try: + global lastimportpath + filename=os.path.join(lastimportpath,filename) + except: + raise #no path given + # Check for a mesh fileformat support by the Mesh mddule + if extension.lower() in reverseimporttypes()['Mesh']: + import Mesh + mesh1 = doc.getObject(objname) #reuse imported object + if not mesh1: + Mesh.insert(filename) + mesh1=doc.getObject(objname) + mesh1.ViewObject.hide() + sh=Part.Shape() + sh.makeShapeFromMesh(mesh1.Mesh.Topology,0.1) + solid = Part.Solid(sh) + obj=doc.addObject("Part::FeaturePython",'import_%s_%s'%(extension,objname)) + #obj=doc.addObject('Part::Feature',) + ImportObject(obj,mesh1) #This object is not mutable from the GUI + ViewProviderTree(obj.ViewObject) + solid=solid.removeSplitter() + if solid.Volume < 0: + #sh.reverse() + #sh = sh.copy() + solid.complement() + obj.Shape=solid#.removeSplitter() + elif extension in ['dxf']: + layera = self.arguments.get('layer') + featname='import_dxf_%s_%s'%(objname,layera) + # reusing an allready imported object does not work if the + #shape in not yet calculated + import importDXF + global dxfcache + layers=dxfcache.get(id(doc),[]) + if layers: + try: + groupobj=[go for go in layers if (not layera) or go.Label == layera] + except: + groupobj= None + else: + groupobj= None + if not groupobj: + groupname=objname + layers = importDXF.processdxf(doc,filename) or importDXF.layers + dxfcache[id(doc)] = layers[:] + for l in layers: + for o in l.Group: + o.ViewObject.hide() + l.ViewObject.hide() + groupobj=[go for go in layers if (not layera) or go.Label == layera] + edges=[] + for shapeobj in groupobj[0].Group: + edges.extend(shapeobj.Shape.Edges) + try: + f=edgestofaces(edges) + except: + FreeCAD.Console.PrintError(\ + 'processing of dxf import faild\nPlease rework \'%s\' manualy\n' % layera) + f=Part.Shape() #empty Shape + obj=doc.addObject("Part::FeaturePython",'import_dxf_%s_%s'%(objname,layera)) + #obj=doc.addObject('Part::Feature',) + ImportObject(obj,groupobj[0]) #This object is not mutable from the GUI + ViewProviderTree(obj.ViewObject) + obj.Shape=f + + else: + FreeCAD.Console.ErrorMessage(\ + 'Filetype of %s not supported\n' % (filename)) + raise(NotImplementedError) + if obj: #handle origin and scale + if scale is not None and scale !=1: + child = obj + m1=FreeCAD.Matrix() + m1.scale(scale,scale,scale) + obj=doc.addObject("Part::FeaturePython",'scale_import') + MatrixTransform(obj,m1,child) #This object is not mutable from the GUI + ViewProviderTree(obj.ViewObject) + elif origin is not None and any([c != 0 for c in origin]): + placement=FreeCAD.Placement(FreeCAD.Vector(*origin),FreeCAD.Rotation()) + obj.Placement=placement.multiply(obj.Placement) + else: + FreeCAD.Console.ErrorMessage('Import of %s failed\n' % (filename)) + + + elif namel == 'minkowski': + childrennames=[child.name.lower() for child in self.children] + if len(self.children) == 2 and \ + childrennames.count('cube')==1 and \ + (childrennames.count('sphere') + \ + childrennames.count('cylinder')) == 1: + if self.children[0].name.lower() == 'cube': + cube = self.children[0] + roundobj = self.children[1] + elif self.children[1].name.lower() == 'cube': + cube = self.children[1] + roundobj = self.children[0] + roundobjname=roundobj.name.lower() + issphere = roundobjname == 'sphere' + cubeobj=doc.addObject('Part::Box','roundedcube') + x,y,z=cube.arguments['size'] + r=roundobj.arguments.get('r') or \ + roundobj.arguments.get('r1') + cubeobj.Length=x+2*r + cubeobj.Width=y+2*r + cubeobj.Height=z+2*r*issphere + obj=doc.addObject("Part::Fillet","%s_%s"%(namel,roundobjname)) + obj.Base = cubeobj + cubeobj.ViewObject.hide() + if issphere: + obj.Edges = [(i,r,r) for i in range(1,13)] + else:#cylinder + obj.Edges = [(i,r,r) for i in [1,3,5,7]] + if cube.arguments['center']: + center(cubeobj,x+2*r,y+2*r,z+2*r*issphere) + else: #htandle a rotated cylinder + #OffsetShape + raise(NotImplementedError) + elif childrennames.count('sphere')==1: + sphereindex=childrennames.index('sphere') + sphere=self.children[sphereindex] + offset=sphere.arguments['r'] + nonsphere=self.children[0:sphereindex]+\ + self.sphere[sphereindex+1:] + obj=doc.addObject("Part::FeaturePython",'Offset') + if len(nonsphere) == 1: + child = nonsphere[0].addtofreecad(doc,obj) + else: + child = Node(name='imp_union',\ + children=nonsphere).addtofreecad(doc,obj) + OffsetShape(obj,child,offset) + ViewProviderTree(obj.ViewObject) + elif False: + raise(NotImplementedError) + pass # handle rotated cylinders and select edges that + #radius = radius0 * m1.multiply(FreeCAD.Vector(0,0,1)).dot(edge.Curve.tangent(0)[0]) + else: + raise(NotImplementedError) + elif namel == 'surface': + import os + scadstr = 'surface(file = "%s", center = %s );' % \ + (self.arguments['file'], 'true' if self.arguments['center'] else 'false') + docname=os.path.split(self.arguments['file'])[1] + objname,extension = docname.split('.',1) + obj = openscadmesh(doc,scadstr,objname) + + elif namel in ['glide','hull']: + raise(NotImplementedError) + elif namel in ['render','subdiv'] or True: + lenchld=len(self.children) + if lenchld == 1: + FreeCAD.Console.PrintMessage('Not recognized %s\n' % (self)) + obj = self.children[0].addtofreecad(doc,fcpar) + elif lenchld >1: + obj = Node(name='imp_union',\ + children=self.children).addtofreecad(doc,fcpar or True) + else: + obj = doc.addObject("Part::Feature",'Not_Impl_%s'%namel) + if fcpar == True: #We are the last real object, our parent is not rendered. + return obj + + if fcpar: + try: + obj.ViewObject.hide() + except: + raise + if True: #never refine the Shape, as it itroduces crashes + return obj + else: #refine Shape + import Draft + if obj.Type =='Part::Extrusion' and obj.Base.Type == 'Part::Part2DObjectPython' and \ + isinstance(obj.Base.Proxy,Draft._Polygon) or \ + (not obj.isDerivedFrom('Part::Extrusion') and \ + not obj.isDerivedFrom('Part::Boolean') and \ + not obj.isDerivedFrom('Part::Cut') and \ + not obj.isDerivedFrom('Part::MultiCommon') and \ + not obj.isDerivedFrom('Part::MultiFuse') and \ + not obj.isDerivedFrom('Part::Revolution') ) \ + or (obj.isDerivedFrom('Part::FeaturePython') and isinstance(obj.Proxy,RefineShape)): + return obj + else: + newobj=doc.addObject("Part::FeaturePython",'refine') + RefineShape(newobj,obj) + ViewProviderTree(newobj.ViewObject) + obj.ViewObject.hide() + return newobj + + else: + doc.recompute() + + def flattengroups(self,name='group'): + """removes group node with only one child and no arguments and empty groups""" + node=self + while (node.name==name and len(node.children)==1 and len(node.arguments)==0): + node=node.children[0] + node.children=[child for child in node.children if not (len(child.children)==0 and child.name==name)] + if node.children: + node.children = [child.flattengroups() for child in node.children] + return node + + def pprint(self,level=0): + """prints the indented tree""" + if self.arguments: + argstr = ' (%s)' % self.arguments + else: + argstr = '' + print '%s %s%s' %(' '*level,self.name,argstr) + for child in self.children: + child.pprint(level+1) + + def pprint2(self,path='root',pathjust=24): + """prints the tree. Left column contains the the systax to access a child""" + if self.arguments: + argstr = ' (%s)' % self.arguments + else: + argstr = '' + print '%s %s%s' %(path.ljust(pathjust),self.name,argstr) + for i,child in enumerate(self.children): + child.pprint2('%s[%d]'%(path,i),pathjust) + + + + +def parseexpression(e): + e=e.strip() + el = e.lower() + if len(el)==0: return None + if el == 'true': return True + elif el == 'false': return False + elif el == 'undef': return None + elif e[0].isdigit() or e[0] == '-' and len(e)>1 and e[1].isdigit(): + try: + return float(e) + except ValueError: + import FreeCAD + FreeCAD.Console.PrintMessage('%s\n' % (el)) + return 1.0 + + elif el.startswith('"'): return e.strip('"') #string literal + elif el.startswith('['): + bopen, bclose = e.count('['), e.count(']') + if bopen == bclose: + return eval(el) + else: + import FreeCAD + FreeCAD.Console.PrintMessage('%s\n' % (el)) + #return eval(el) + #assert(False) #Malformed + else: + return e #Return the string + +def parseargs(argstring): + if '=' in argstring: + level=0 + tok=[] + a=[] + for i,char in enumerate(argstring): + if char=='[': level+=1 + elif char ==']': level -=1 + if level==0 and (char=='=' or char==','): + tok.append(''.join(a).strip()) + a=[] + else: + a.append(char) + tok.append(''.join(a).strip()) + #print tok + argdict=dict(zip(tok[0::2],[parseexpression(argstring) for argstring in tok[1::2]])) +# argdict={} +# for key, value in re.findall(r"(\$?\w+)\s*=\s*(\[?\w+]?),?\s*",argstring): +# argdict[key] = parseexpression(value) + return argdict + else: + return parseexpression(argstring) + +def parsenode(str1): + name,str2=str1.strip().split('(',1) + assert('}' not in name) + name=name.strip('#!%* ')#remove/ignore modifiers + args,str3=str2.split(')',1) + str4=str3.lstrip() + if str4.startswith(';'): + #has no children + nextelement=str4[1:].lstrip() + return Node(name,parseargs(args)),nextelement + elif str4.startswith('{'): + #has children + level=0 + for index,char in enumerate(str4): + if char == '{': level += 1 + elif char == '}': level -= 1 + if level == 0: + break + #end of children + childstr= str4[1:index].strip() + nextelement = str4[index+1:].lstrip() + bopen,bclose=childstr.count('{'),childstr.count('}') + assert(bopen == bclose) + children=[] + while childstr: + try: + childnode,childstr=parsenode(childstr) + children.append(childnode) + except ValueError: + raise + if args: + args=parseargs(args) + return Node(name,args,children),nextelement + +def readfile(filename): + import os + global lastimportpath + lastimportpath,relname = os.path.split(filename) + isopenscad = relname.lower().endswith('.scad') + if isopenscad: + tmpfile=callopenscad(filename) + lastimportpath = os.getcwd() #https://github.com/openscad/openscad/issues/128 + f = pythonopen(tmpfile) + else: + f = pythonopen(filename) + rootnode=parsenode(f.read())[0] + f.close() + if isopenscad: + os.unlink(tmpfile) + return rootnode.flattengroups() + +def open(filename): + import os + docname=os.path.split(filename)[1] + doc=FreeCAD.newDocument(docname) + doc.Label = (docname.split('.',1)[0]) + readfile(filename).addtofreecad(doc) + #doc.recompute() + return doc + +def insert(filename,docname): + try: + doc=FreeCAD.getDocument(docname) + except: + doc=FreeCAD.newDocument(docname) + readfile(filename).addtofreecad(doc) + #doc.recompute() + + +import FreeCAD + +global dxfcache +dxfcache = {} + + diff --git a/src/Mod/OpenSCAD/replaceobj.py b/src/Mod/OpenSCAD/replaceobj.py new file mode 100644 index 000000000..54185734c --- /dev/null +++ b/src/Mod/OpenSCAD/replaceobj.py @@ -0,0 +1,31 @@ +def replaceobj(parent,oldchild,newchild): + for propname in parent.PropertiesList: + propvalue=parent.getPropertyByName(propname) + if type(propvalue) == list: + for dontcare in range(propvalue.count(oldchild)): + propvalue[propvalue.index(oldchild)] = newchild + setattr(parent,propname,propvalue) + #print propname, parent.getPropertyByName(propname) + else: + if propvalue == oldchild: + setattr(parent,propname,newchild) + print propname, parent.getPropertyByName(propname) + #else: print propname,propvalue + +def replaceobjfromselection(objs): + assert(len(objs)==3) + if objs[0] in objs[1].InList: parent, oldchild, newchild = objs + elif objs[0] in objs[2].InList: parent, newchild, oldchild = objs + elif objs[1] in objs[0].InList: oldchild, parent, newchild = objs + elif objs[1] in objs[2].InList: newchild, parent, oldchild = objs + elif objs[2] in objs[0].InList: oldchild, newchild, parent = objs + elif objs[2] in objs[1].InList: newchild, oldchild, parent = objs + else: assert(False) + replaceobj(parent,oldchild,newchild) + +if __name__ == '__main__': + import FreeCAD,FreeCADGui + objs=[selobj.Object for selobj in FreeCADGui.Selection.getSelectionEx()] + replaceobjfromselection(objs) + + diff --git a/src/Mod/OpenSCAD/tokrules.py b/src/Mod/OpenSCAD/tokrules.py new file mode 100644 index 000000000..73cccc9b0 --- /dev/null +++ b/src/Mod/OpenSCAD/tokrules.py @@ -0,0 +1,132 @@ +# -*- coding: utf8 -*- + +#*************************************************************************** +#* * +#* Copyright (c) 2012 Keith Sloan * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License (GPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** +__title__="FreeCAD OpenSCAD Workbench - CSG importer Version 0.5c" +__author__ = "Keith Sloan " +__url__ = ["http://www.sloan-home.co.uk/ImportCSG"] + +# Reserved words +reserved = ( + 'group', + 'sphere', + 'cylinder', + 'cube', + 'size', + 'multmatrix', + 'intersection', + 'difference', + 'union', + 'rotate_extrude', + 'linear_extrude', + 'center', + 'true', + 'false', + 'circle', + 'square', + 'polygon', + 'paths', + 'points', + 'undef', + 'polyhedron', + 'triangles', + 'render', + 'surface', + 'subdiv', + 'glide', + 'hull', + 'minkowski', + 'projection', + 'import_stl', + 'import_dxf', + 'import', + 'origin', + 'layer', + 'file', + 'color', + 'cut', + ) + +# List of token names. This is always required +tokens = reserved + ( + 'WORD', + 'NUMBER', + 'LPAREN', + 'RPAREN', + 'OBRACE', + 'EBRACE', + 'OSQUARE', + 'ESQUARE', + 'COMMA', + 'SEMICOL', + 'EQ', + 'STRING', + 'ID', + 'DOT' +) + +# Regular expression rules for simple tokens +t_WORD = r'[$]?[a-zA-Z_]+[0-9]*' +t_NUMBER = r'[-]?[0-9]*[\.]*[0-9]+([eE]-?[0-9]+)*' +t_LPAREN = r'\(' +t_RPAREN = r'\)' +t_OBRACE = r'{' +t_EBRACE = r'\}' +t_OSQUARE = r'\[' +t_ESQUARE = r'\]' +t_COMMA = r',' +t_SEMICOL = r';' +t_EQ = r'=' +t_DOT = r'\.' +t_STRING = r'"[^"]*"' +#t_STRING = r'["]+[a-zA-Z.]+["]+' +# Deal with Reserved words +reserved_map = { } +for r in reserved: + reserved_map[r.lower()] = r + +# Deal with Comments +def t_comment1(t) : + r'//[^\r\n]*((\r\n)|<>)' + pass + +def t_comment2(t) : + r'//[^\n]*((\n)|<>)' + pass + +def t_ID(t): + r'[$]?[a-zA-Z_]+[0-9]*' + t.type = reserved_map.get(t.value, "ID") + return t + +# Define a rule so we can track line numbers +def t_newline(t): + r'\n+' + t.lexer.lineno += len(t.value) + +# A string containing ignored characters (spaces and tabs) +t_ignore = " \t\r" + +# Error handling rule +def t_error(t): + print "Illegal character '%s'" % t.value[0] + t.lexer.skip(1) From b3938ad04582053ea9c727129e12f247cbd9cca4 Mon Sep 17 00:00:00 2001 From: logari81 Date: Wed, 18 Jul 2012 16:26:24 +0200 Subject: [PATCH 07/98] Sketcher: simplify positioning of constraint icons --- src/Mod/Sketcher/Gui/CommandConstraints.cpp | 10 +- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 148 +++++++------------- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 5 +- 3 files changed, 56 insertions(+), 107 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandConstraints.cpp b/src/Mod/Sketcher/Gui/CommandConstraints.cpp index fd795eb93..1eaa0cd99 100644 --- a/src/Mod/Sketcher/Gui/CommandConstraints.cpp +++ b/src/Mod/Sketcher/Gui/CommandConstraints.cpp @@ -1636,15 +1636,7 @@ void CmdSketcherConstrainAngle::activated(int iMsg) const std::vector &ConStr = dynamic_cast(selection[0].getObject())->Constraints.getValues(); Sketcher::Constraint *constr = ConStr[ConStr.size() -1]; - float sf = 1.f; - Gui::Document *doc = getActiveGuiDocument(); - if (doc && doc->getInEdit() && doc->getInEdit()->isDerivedFrom(SketcherGui::ViewProviderSketch::getClassTypeId())) { - SketcherGui::ViewProviderSketch *vp = dynamic_cast(doc->getInEdit()); - sf = vp->getScaleFactor(); - - constr->LabelDistance = 2. * sf; - vp->draw(); // Redraw - } + updateDatumDistance(getActiveGuiDocument(), constr); //updateActive(); getSelection().clearSelection(); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 9605f3997..981fee2c9 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -1005,55 +1005,55 @@ void ViewProviderSketch::moveConstraint(int constNum, const Base::Vector2D &toPo draw(true); } -bool ViewProviderSketch::isConstraintAtPosition(const Base::Vector3d &constrPos, const SoNode *constraint) +Base::Vector3d ViewProviderSketch::seekConstraintPosition(const Base::Vector3d &origPos, + const Base::Vector3d &norm, + const Base::Vector3d &dir, float step, + const SoNode *constraint) { assert(edit); Gui::MDIView *mdi = Gui::Application::Instance->activeDocument()->getActiveView(); Gui::View3DInventorViewer *viewer = static_cast(mdi)->getViewer(); - SoRayPickAction rp(viewer->getViewportRegion()); - rp.setRadius(0.1f); - rp.setPickAll(true); - rp.setRay(SbVec3f(constrPos.x, constrPos.y, -1.f), SbVec3f(0, 0, 1) ); - //problem - rp.apply(edit->constrGroup); // We could narrow it down to just the SoGroup containing the constraints - // returns a copy of the point - SoPickedPoint *pp = rp.getPickedPoint(); - const SoPickedPointList ppl = rp.getPickedPointList(); + float scaled_step = step * getScaleFactor(); - if(ppl.getLength() > 1) - return true; - if (pp) { - SoPath *path = pp->getPath(); - int length = path->getLength(); - SoNode *tailFather1 = path->getNode(length-2); - SoNode *tailFather2 = path->getNode(length-3); - - // checking if a constraint is the same as the one selected - if (tailFather1 == constraint || tailFather2 == constraint) { - return false; - } else { - return true; - } - } else { - return false; - } -} - -Base::Vector3d ViewProviderSketch::seekConstraintPosition(const Base::Vector3d &suggestedPos, - const Base::Vector3d &dir, float step, - const SoNode *constraint) -{ int multiplier = 0; - Base::Vector3d freePos; - do { + Base::Vector3d relPos, freePos; + bool isConstraintAtPosition = true; + while (isConstraintAtPosition && multiplier < 10) { // Calculate new position of constraint - freePos = suggestedPos + (dir * (multiplier * step)); - multiplier++; // Increment the multiplier + relPos = norm * 0.5f + dir * multiplier; + freePos = origPos + relPos * scaled_step; + + rp.setRadius(0.1f); + rp.setPickAll(true); + rp.setRay(SbVec3f(freePos.x, freePos.y, -1.f), SbVec3f(0, 0, 1) ); + //problem + rp.apply(edit->constrGroup); // We could narrow it down to just the SoGroup containing the constraints + + // returns a copy of the point + SoPickedPoint *pp = rp.getPickedPoint(); + const SoPickedPointList ppl = rp.getPickedPointList(); + + if (ppl.getLength() <= 1 && pp) { + SoPath *path = pp->getPath(); + int length = path->getLength(); + SoNode *tailFather1 = path->getNode(length-2); + SoNode *tailFather2 = path->getNode(length-3); + + // checking if a constraint is the same as the one selected + if (tailFather1 == constraint || tailFather2 == constraint) + isConstraintAtPosition = false; + } else + isConstraintAtPosition = false; + + multiplier *= -1; // search in both sides + if (multiplier >= 0) + multiplier++; // Increment the multiplier } - while (isConstraintAtPosition(freePos, constraint)); - return freePos; + if (multiplier == 10) + relPos = norm * 0.5f; // no free position found + return relPos * step; } bool ViewProviderSketch::isSelectable(void) const @@ -1842,19 +1842,12 @@ Restart: Base::Vector3d dir = (lineSeg->getEndPoint()-lineSeg->getStartPoint()).Normalize(); Base::Vector3d norm(-dir.y,dir.x,0); - float scale = dynamic_cast(sep->getChild(1))->getScaleFactor(); - Base::Vector3d constrPos = midpos + (norm * 2.5 * scale); - - constrPos = seekConstraintPosition(constrPos, dir, 2.5 * scale, edit->constrGroup->getChild(i)); - - // Translate the Icon based on calculated position - Base::Vector3d relPos = constrPos - midpos; // Relative Position of Icons to Midpoint - relPos = relPos / scale; // Must Divide by Scale Factor + Base::Vector3d relpos = seekConstraintPosition(midpos, norm, dir, 2.5, edit->constrGroup->getChild(i)); dynamic_cast(sep->getChild(1))->abPos = SbVec3f(midpos.x, midpos.y, zConstr); //Absolute Reference //Reference Position that is scaled according to zoom - dynamic_cast(sep->getChild(1))->translation = SbVec3f(relPos.x, relPos.y, 0); + dynamic_cast(sep->getChild(1))->translation = SbVec3f(relpos.x, relpos.y, 0); } break; @@ -1921,25 +1914,16 @@ Restart: dir1 = Base::Vector3d(1,0,0); } - // Get Current Scale Factor - float scale = dynamic_cast(sep->getChild(1))->getScaleFactor(); - - Base::Vector3d constrPos1 = midpos1 + (norm1 * 2.5 * scale); - constrPos1 = seekConstraintPosition(constrPos1, dir1, scale * 2.5, edit->constrGroup->getChild(i)); - - // Translate the Icon based on calculated position - Base::Vector3d relPos1 = (constrPos1 - midpos1) / scale ; // Relative Position of Icons to Midpoint1 + Base::Vector3d relpos1 = seekConstraintPosition(midpos1, norm1, dir1, 2.5, edit->constrGroup->getChild(i)); dynamic_cast(sep->getChild(1))->abPos = SbVec3f(midpos1.x, midpos1.y, zConstr); - dynamic_cast(sep->getChild(1))->translation = SbVec3f(relPos1.x, relPos1.y, 0); + dynamic_cast(sep->getChild(1))->translation = SbVec3f(relpos1.x, relpos1.y, 0); if (Constr->FirstPos == Sketcher::none) { - Base::Vector3d constrPos2 = midpos2 + (norm2 * 2.5 * scale); - constrPos2 = seekConstraintPosition(constrPos2, dir2, 2.5 * scale, edit->constrGroup->getChild(i)); + Base::Vector3d relpos2 = seekConstraintPosition(midpos2, norm2, dir2, 2.5, edit->constrGroup->getChild(i)); - Base::Vector3d relPos2 = (constrPos2 - midpos2) / scale ; // Relative Position of Icons to Midpoint2 Base::Vector3d secondPos = midpos2 - midpos1; dynamic_cast(sep->getChild(3))->abPos = SbVec3f(secondPos.x, secondPos.y, zConstr); - dynamic_cast(sep->getChild(3))->translation = SbVec3f(relPos2.x -relPos1.x, relPos2.y -relPos1.y, 0); + dynamic_cast(sep->getChild(3))->translation = SbVec3f(relpos2.x -relpos1.x, relpos2.y -relpos1.y, 0); } } @@ -2012,32 +1996,19 @@ Restart: norm2 = Base::Vector3d(-dir2.y,dir2.x,0.); } - // Get Current Scale Factor - float scale = dynamic_cast(sep->getChild(1))->getScaleFactor(); - - Base::Vector3d constrPos1 = midpos1 + (norm1 * 2.5 * scale); - constrPos1 = seekConstraintPosition(constrPos1, dir1, scale * 2.5, edit->constrGroup->getChild(i)); - - Base::Vector3d constrPos2 = midpos2 + (norm2 * 2.5 * scale); - constrPos2 = seekConstraintPosition(constrPos2, dir2, 2.5 * scale, edit->constrGroup->getChild(i)); - - // Translate the Icon based on calculated position - Base::Vector3d relPos1 = constrPos1 - midpos1 ; // Relative Position of Icons to Midpoint1 - Base::Vector3d relPos2 = constrPos2 - midpos2 ; // Relative Position of Icons to Midpoint2 - - relPos1 = relPos1 / scale; - relPos2 = relPos2 / scale; + Base::Vector3d relpos1 = seekConstraintPosition(midpos1, norm1, dir1, 2.5, edit->constrGroup->getChild(i)); + Base::Vector3d relpos2 = seekConstraintPosition(midpos2, norm2, dir2, 2.5, edit->constrGroup->getChild(i)); dynamic_cast(sep->getChild(1))->abPos = SbVec3f(midpos1.x, midpos1.y, zConstr); //Absolute Reference //Reference Position that is scaled according to zoom - dynamic_cast(sep->getChild(1))->translation = SbVec3f(relPos1.x, relPos1.y, 0); + dynamic_cast(sep->getChild(1))->translation = SbVec3f(relpos1.x, relpos1.y, 0); Base::Vector3d secondPos = midpos2 - midpos1; dynamic_cast(sep->getChild(3))->abPos = SbVec3f(secondPos.x, secondPos.y, zConstr); //Absolute Reference //Reference Position that is scaled according to zoom - dynamic_cast(sep->getChild(3))->translation = SbVec3f(relPos2.x -relPos1.x, relPos2.y -relPos1.y, 0); + dynamic_cast(sep->getChild(3))->translation = SbVec3f(relpos2.x - relpos1.x, relpos2.y -relpos1.y, 0); } break; @@ -2148,32 +2119,19 @@ Restart: Base::Vector3d norm1 = Base::Vector3d(-dir1.y,dir1.x,0.f); Base::Vector3d norm2 = Base::Vector3d(-dir2.y,dir2.x,0.f); - // Get Current Scale Factor - float scale = dynamic_cast(sep->getChild(1))->getScaleFactor(); - - Base::Vector3d constrPos1 = midpos1 + (norm1 * 2.5 * scale); - constrPos1 = seekConstraintPosition(constrPos1, dir1, 2.5 * scale, edit->constrGroup->getChild(i)); - - Base::Vector3d constrPos2 = midpos2 + (norm2 * 2.5 * scale); - constrPos2 = seekConstraintPosition(constrPos2, dir2, 2.5 * scale, edit->constrGroup->getChild(i)); - - // Translate the Icon based on calculated position - Base::Vector3d relPos1 = constrPos1 - midpos1 ; // Relative Position of Icons to Midpoint1 - Base::Vector3d relPos2 = constrPos2 - midpos2 ; // Relative Position of Icons to Midpoint2 - - relPos1 = relPos1 / scale; - relPos2 = relPos2 / scale; + Base::Vector3d relpos1 = seekConstraintPosition(midpos1, norm1, dir1, 2.5, edit->constrGroup->getChild(i)); + Base::Vector3d relpos2 = seekConstraintPosition(midpos2, norm2, dir2, 2.5, edit->constrGroup->getChild(i)); dynamic_cast(sep->getChild(1))->abPos = SbVec3f(midpos1.x, midpos1.y, zConstr); //Absolute Reference //Reference Position that is scaled according to zoom - dynamic_cast(sep->getChild(1))->translation = SbVec3f(relPos1.x, relPos1.y, 0); + dynamic_cast(sep->getChild(1))->translation = SbVec3f(relpos1.x, relpos1.y, 0); Base::Vector3d secondPos = midpos2 - midpos1; dynamic_cast(sep->getChild(3))->abPos = SbVec3f(secondPos.x, secondPos.y, zConstr); //Absolute Reference //Reference Position that is scaled according to zoom - dynamic_cast(sep->getChild(3))->translation = SbVec3f(relPos2.x -relPos1.x, relPos2.y -relPos1.y, 0); + dynamic_cast(sep->getChild(3))->translation = SbVec3f(relpos2.x -relpos1.x, relpos2.y -relpos1.y, 0); break; } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index b29f2c377..9b05d69cc 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -137,10 +137,9 @@ public: /// moves a selected constraint void moveConstraint(int constNum, const Base::Vector2D &toPos); - /// checks if there is a constraint object at position vector - bool isConstraintAtPosition(const Base::Vector3d &constrPos, const SoNode *constraint); /// finds a free position for placing a constraint icon - Base::Vector3d seekConstraintPosition(const Base::Vector3d &suggestedPos, + Base::Vector3d seekConstraintPosition(const Base::Vector3d &origPos, + const Base::Vector3d &norm, const Base::Vector3d &dir, float step, const SoNode *constraint); From bdc926c7045c61a4f9d003d5fc4a1472c67f3e02 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 1 Aug 2012 18:15:34 -0300 Subject: [PATCH 08/98] Arch: improvements to section plane wireframe rendering --- src/Mod/Arch/ArchCommands.py | 46 ++++++++++++++++++++++++++++++++ src/Mod/Arch/ArchSectionPlane.py | 31 +++++++++++++++------ src/Mod/Arch/ArchVRM.py | 41 ++++------------------------ 3 files changed, 74 insertions(+), 44 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index f0754afa2..8ee62c546 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -262,6 +262,52 @@ def closeHole(shape): else: return solid +def getCutVolume(cutplane,shapes): + """getCutVolume(cutplane,shapes): returns a cut face and a cut volume + from the given shapes and the given cutting plane""" + import Part + placement = FreeCAD.Placement(cutplane.Placement) + # building boundbox + bb = shapes[0].BoundBox + for sh in shapes[1:]: + bb.add(sh.BoundBox) + bb.enlarge(1) + um = vm = wm = 0 + ax = placement.Rotation.multVec(FreeCAD.Vector(0,0,1)) + u = placement.Rotation.multVec(FreeCAD.Vector(1,0,0)) + v = placement.Rotation.multVec(FreeCAD.Vector(0,1,0)) + if not bb.isCutPlane(placement.Base,ax): + print "No objects are cut by the plane" + return None,None + else: + corners = [FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMin), + FreeCAD.Vector(bb.XMin,bb.YMax,bb.ZMin), + FreeCAD.Vector(bb.XMax,bb.YMin,bb.ZMin), + FreeCAD.Vector(bb.XMax,bb.YMax,bb.ZMin), + FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMax), + FreeCAD.Vector(bb.XMin,bb.YMax,bb.ZMax), + FreeCAD.Vector(bb.XMax,bb.YMin,bb.ZMax), + FreeCAD.Vector(bb.XMax,bb.YMax,bb.ZMax)] + for c in corners: + dv = c.sub(placement.Base) + um1 = DraftVecUtils.project(dv,u).Length + um = max(um,um1) + vm1 = DraftVecUtils.project(dv,v).Length + vm = max(vm,vm1) + wm1 = DraftVecUtils.project(dv,ax).Length + wm = max(wm,wm1) + p1 = FreeCAD.Vector(-um,vm,0) + p2 = FreeCAD.Vector(um,vm,0) + p3 = FreeCAD.Vector(um,-vm,0) + p4 = FreeCAD.Vector(-um,-vm,0) + cutface = Part.makePolygon([p1,p2,p3,p4,p1]) + cutface = Part.Face(cutface) + cutface.Placement = placement + cutnormal = DraftVecUtils.scaleTo(ax,wm) + cutvolume = cutface.extrude(cutnormal) + return cutface,cutvolume + + def meshToShape(obj,mark=True): '''meshToShape(object,[mark]): turns a mesh into a shape, joining coplanar facets. If mark is True (default), non-solid objects will be marked in red''' diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 86a346357..97fe2023d 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -186,7 +186,7 @@ class _ArchDrawingView: obj.addProperty("App::PropertyEnumeration","RenderingMode","Drawing View","The rendering mode to use") obj.addProperty("App::PropertyFloat","LineWidth","Drawing View","The line width of the rendered objects") obj.RenderingMode = ["Solid","Wireframe"] - obj.RenderingMode = "Solid" + obj.RenderingMode = "Wireframe" obj.LineWidth = 0.35 obj.Proxy = self self.Type = "DrawingView" @@ -224,18 +224,33 @@ class _ArchDrawingView: else: # render using the Drawing module - import Drawing + import Drawing, Part shapes = [] + p = FreeCAD.Placement(obj.Source.Placement) + direction = p.Rotation.multVec(FreeCAD.Vector(0,0,1)) for o in objs: if o.isDerivedFrom("Part::Feature"): - shapes.append(o.Shape) - if shapes: - base = shapes.pop() - for sh in shapes: - base = base.fuse(sh) - svgf = Drawing.projectToSVG(base,DraftVecUtils.neg(direction)) + shapes.extend(o.Shape.Solids) + cutface,cutvolume = ArchCommands.getCutVolume(obj.Source.Shape.copy(),shapes) + if cutvolume: + nsh = [] + for sh in shapes: + for sol in sh.Solids: + c = sol.cut(cutvolume) + nsh.append(c) + shapes = nsh + base = Part.makeCompound(shapes) + #if shapes: + # base = shapes.pop().copy() + #for sh in shapes: + # try: + # base = base.fuse(sh) + # except: + # print "unable to fuse, passing..." + svgf = Drawing.projectToSVG(base,direction) if svgf: svgf = svgf.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') + svgf = svgf.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') svgf = svgf.replace('stroke-width:0.01','stroke-width:' + str(linewidth) + 'px') svg += svgf diff --git a/src/Mod/Arch/ArchVRM.py b/src/Mod/Arch/ArchVRM.py index 91edfed56..b54b0446f 100644 --- a/src/Mod/Arch/ArchVRM.py +++ b/src/Mod/Arch/ArchVRM.py @@ -228,42 +228,11 @@ class Renderer: if DEBUG: print "No objects to make sections" else: fill = (1.0,1.0,1.0,1.0) - placement = FreeCAD.Placement(cutplane.Placement) - - # building boundbox - bb = self.shapes[0][0].BoundBox - for sh in self.shapes[1:]: - bb.add(sh[0].BoundBox) - bb.enlarge(1) - um = vm = wm = 0 - if not bb.isCutPlane(placement.Base,self.wp.axis): - if DEBUG: print "No objects are cut by the plane" - else: - corners = [FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMin), - FreeCAD.Vector(bb.XMin,bb.YMax,bb.ZMin), - FreeCAD.Vector(bb.XMax,bb.YMin,bb.ZMin), - FreeCAD.Vector(bb.XMax,bb.YMax,bb.ZMin), - FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMax), - FreeCAD.Vector(bb.XMin,bb.YMax,bb.ZMax), - FreeCAD.Vector(bb.XMax,bb.YMin,bb.ZMax), - FreeCAD.Vector(bb.XMax,bb.YMax,bb.ZMax)] - for c in corners: - dv = c.sub(placement.Base) - um1 = DraftVecUtils.project(dv,self.wp.u).Length - um = max(um,um1) - vm1 = DraftVecUtils.project(dv,self.wp.v).Length - vm = max(vm,vm1) - wm1 = DraftVecUtils.project(dv,self.wp.axis).Length - wm = max(wm,wm1) - p1 = FreeCAD.Vector(-um,vm,0) - p2 = FreeCAD.Vector(um,vm,0) - p3 = FreeCAD.Vector(um,-vm,0) - p4 = FreeCAD.Vector(-um,-vm,0) - cutface = Part.makePolygon([p1,p2,p3,p4,p1]) - cutface = Part.Face(cutface) - cutface.Placement = placement - cutnormal = DraftVecUtils.scaleTo(self.wp.axis,wm) - cutvolume = cutface.extrude(cutnormal) + shps = [] + for sh in self.shapes: + shps.append(sh[0]) + cutface,cutvolume = ArchCommands.getCutVolume(cutplane,shps) + if cutface and cutvolume: shapes = [] faces = [] sections = [] From 88ea348623a17a09010228f8d4eb180ca7f084fe Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 1 Aug 2012 18:53:27 -0300 Subject: [PATCH 09/98] 0000802: Fixed again --- src/Mod/Draft/Draft.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 8bbee59a4..d9e4d0a99 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1660,10 +1660,10 @@ def clone(obj,delta=None): _Clone(cl) if gui: _ViewProviderClone(cl.ViewObject) - formatObject(cl,obj[0]) cl.Objects = obj if delta: cl.Placement.move(delta) + formatObject(cl,obj[0]) return cl def heal(objlist=None,delete=True,reparent=True): From 80c9086fc334429700466e2fe3c160cf10089c07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Fri, 29 Jun 2012 13:22:14 +0200 Subject: [PATCH 10/98] Started ship simulations workbench --- src/Mod/Ship/CMakeLists.txt | 23 +- src/Mod/Ship/Icons/Sim.xpm | 336 ++++ src/Mod/Ship/Icons/SimCreateIco.png | Bin 0 -> 14469 bytes src/Mod/Ship/Icons/SimCreateIco.xcf | Bin 0 -> 51656 bytes src/Mod/Ship/Icons/SimCreateIco.xpm | 2265 +++++++++++++++++++++++++++ src/Mod/Ship/Icons/SimIco.xcf | Bin 0 -> 47149 bytes src/Mod/Ship/InitGui.py | 8 +- src/Mod/Ship/Makefile.am | 9 + src/Mod/Ship/ShipGui.py | 13 + src/Mod/Ship/SimInstance.py | 617 ++++++++ src/Mod/Ship/simCreate/TaskPanel.py | 125 ++ src/Mod/Ship/simCreate/TaskPanel.ui | 182 +++ src/Mod/Ship/simCreate/__init__.py | 36 + 13 files changed, 3610 insertions(+), 4 deletions(-) create mode 100644 src/Mod/Ship/Icons/Sim.xpm create mode 100644 src/Mod/Ship/Icons/SimCreateIco.png create mode 100644 src/Mod/Ship/Icons/SimCreateIco.xcf create mode 100644 src/Mod/Ship/Icons/SimCreateIco.xpm create mode 100644 src/Mod/Ship/Icons/SimIco.xcf create mode 100644 src/Mod/Ship/SimInstance.py create mode 100644 src/Mod/Ship/simCreate/TaskPanel.py create mode 100644 src/Mod/Ship/simCreate/TaskPanel.ui create mode 100644 src/Mod/Ship/simCreate/__init__.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 006226966..fc71cb055 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -2,6 +2,7 @@ SET(ShipMain_SRCS InitGui.py ShipGui.py Instance.py + SimInstance.py TankInstance.py ) SOURCE_GROUP("" FILES ${ShipMain_SRCS}) @@ -36,6 +37,11 @@ SET(ShipIcons_SRCS Icons/Weight.png Icons/Weight.xcf Icons/Weight.xpm + Icons/SimIco.xcf + Icons/Sim.xpm + Icons/SimCreateIco.png + Icons/SimCreateIco.xcf + Icons/SimCreateIco.xpm Icons/Tank.png Icons/Tank.xcf Icons/Tank.xpm @@ -121,9 +127,16 @@ SET(ShipGZ_SRCS tankGZ/TaskPanel.py tankGZ/TaskPanel.ui ) -SOURCE_GROUP("shipcreatetank" FILES ${ShipCreateTank_SRCS}) +SOURCE_GROUP("shipgz" FILES ${ShipGZ_SRCS}) -SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS}) +SET(SimCreate_SRCS + simCreate/__init__.py + simCreate/TaskPanel.py + simCreate/TaskPanel.ui +) +SOURCE_GROUP("simcreate" FILES ${SimCreate_SRCS}) + +SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS} ${SimCreate_SRCS}) ADD_CUSTOM_TARGET(Ship ALL SOURCES ${all_files} @@ -197,6 +210,12 @@ INSTALL( DESTINATION Mod/Ship/tankGZ ) +INSTALL( + FILES + ${SimCreate_SRCS} + DESTINATION + Mod/Ship/simCreate +) INSTALL( FILES ${ShipMain_SRCS} diff --git a/src/Mod/Ship/Icons/Sim.xpm b/src/Mod/Ship/Icons/Sim.xpm new file mode 100644 index 000000000..effc4026f --- /dev/null +++ b/src/Mod/Ship/Icons/Sim.xpm @@ -0,0 +1,336 @@ +/* XPM */ +static char * Sim_xpm[] = { +"32 32 301 2", +" c None", +". c #CCCCCC", +"+ c #A9A9A9", +"@ c #989898", +"# c #A1A1A1", +"$ c #C3C3C3", +"% c #C1C0C1", +"& c #BFBFBF", +"* c #A7A7A7", +"= c #808080", +"- c #5C5C5C", +"; c #565655", +"> c #4E4E4E", +", c #676767", +"' c #898989", +") c #B6B5B6", +"! c #BABABA", +"~ c #B9B9B9", +"{ c #A5A5A5", +"] c #7E7E7E", +"^ c #595A59", +"/ c #575656", +"( c #535353", +"_ c #505050", +": c #4D4D4C", +"< c #474747", +"[ c #404040", +"} c #4D4D4D", +"| c #787878", +"1 c #B8B7B8", +"2 c #B6B6B6", +"3 c #888888", +"4 c #7C7C7C", +"5 c #575657", +"6 c #535354", +"7 c #4E4D4E", +"8 c #4A4A4A", +"9 c #444444", +"0 c #414141", +"a c #3E3E3E", +"b c #393938", +"c c #313131", +"d c #393939", +"e c #636363", +"f c #ABABAB", +"g c #B3B3B3", +"h c #848484", +"i c #787979", +"j c #545454", +"k c #515151", +"l c #4B4B4B", +"m c #484748", +"n c #3B3B3B", +"o c #383838", +"p c #353535", +"q c #323232", +"r c #2F2F2E", +"s c #2A2A2A", +"t c #222323", +"u c #252625", +"v c #AFAFAF", +"w c #767676", +"x c #484848", +"y c #454545", +"z c #424242", +"A c #3F3F3E", +"B c #3B3B3C", +"C c #393838", +"D c #2F2F2F", +"E c #2C2C2C", +"F c #292929", +"G c #262626", +"H c #222222", +"I c #1F1F20", +"J c #171716", +"K c #959595", +"L c #747474", +"M c #4E4E4F", +"N c #4C4B4C", +"O c #484849", +"P c #424243", +"Q c #282828", +"R c #525251", +"S c #373737", +"T c #353636", +"U c #333233", +"V c #30302F", +"W c #2C2D2D", +"X c #232323", +"Y c #201F20", +"Z c #1D1D1D", +"` c #151414", +" . c #717272", +".. c #4C4C4C", +"+. c #484949", +"@. c #464545", +"#. c #424343", +"$. c #3A3A3A", +"%. c #5D4A49", +"&. c #7E7E86", +"*. c #56569F", +"=. c #3E3E41", +"-. c #757575", +";. c #575757", +">. c #222221", +",. c #262627", +"'. c #242423", +"). c #212020", +"!. c #1A1A1A", +"~. c #121212", +"{. c #939493", +"]. c #6F6F6F", +"^. c #494949", +"/. c #464646", +"(. c #434343", +"_. c #554545", +":. c #686863", +"<. c #939394", +"[. c #BDBDBD", +"}. c #202021", +"|. c #1E1E1E", +"1. c #171718", +"2. c #0F0F0F", +"3. c #929292", +"4. c #6C6D6D", +"5. c #464746", +"6. c #525F73", +"7. c #444648", +"8. c #3D3D3D", +"9. c #2D2C2A", +"0. c #A1A2A2", +"a. c #AAACAC", +"b. c #A6A7A7", +"c. c #A8AAAA", +"d. c #AFB0B0", +"e. c #777676", +"f. c #9A9A9A", +"g. c #1B1B1B", +"h. c #181818", +"i. c #0C0C0C", +"j. c #909090", +"k. c #6B6A6B", +"l. c #55657E", +"m. c #6990FB", +"n. c #6483CD", +"o. c #5871B2", +"p. c #434E7E", +"q. c #A97C76", +"r. c #AB7777", +"s. c #AC7070", +"t. c #A26565", +"u. c #805C5C", +"v. c #848686", +"w. c #424342", +"x. c #151515", +"y. c #0A0909", +"z. c #8F8F8F", +"A. c #676868", +"B. c #3B3A3A", +"C. c #383738", +"D. c #353534", +"E. c #45525F", +"F. c #6367AC", +"G. c #804682", +"H. c #942A39", +"I. c #991312", +"J. c #540901", +"K. c #393742", +"L. c #1C1C1C", +"M. c #191919", +"N. c #161515", +"O. c #121313", +"P. c #070707", +"Q. c #8D8E8D", +"R. c #656566", +"S. c #3E3F3F", +"T. c #2F2E2F", +"U. c #353838", +"V. c #35496A", +"W. c #3E4D88", +"X. c #354889", +"Y. c #5573D7", +"Z. c #5D80FB", +"`. c #374899", +" + c #293338", +".+ c #101010", +"++ c #0D0D0D", +"@+ c #040404", +"#+ c #8C8C8C", +"$+ c #8B8B8B", +"%+ c #4B4A4B", +"&+ c #303030", +"*+ c #333232", +"=+ c #2F2F30", +"-+ c #232223", +";+ c #1A1919", +">+ c #2E3949", +",+ c #5C7BA3", +"'+ c #36467D", +")+ c #536F93", +"!+ c #0A0A0A", +"~+ c #010101", +"{+ c #C1C1C1", +"]+ c #B8B8B8", +"^+ c #A0A0A0", +"/+ c #3F3F3F", +"(+ c #222122", +"_+ c #202020", +":+ c #161717", +"<+ c #141414", +"[+ c #111011", +"}+ c #0D0E0E", +"|+ c #0B0B0A", +"1+ c #000000", +"2+ c #525252", +"3+ c #686868", +"4+ c #ADADAD", +"5+ c #9E9F9F", +"6+ c #6D6D6D", +"7+ c #3C3C3C", +"8+ c #131414", +"9+ c #111111", +"0+ c #0E0E0E", +"a+ c #0B0B0B", +"b+ c #080708", +"c+ c #050504", +"d+ c #4C4D4C", +"e+ c #4D4C4D", +"f+ c #494A4A", +"g+ c #454444", +"h+ c #9D9D9D", +"i+ c #9E9E9E", +"j+ c #AEAEAE", +"k+ c #BEBEBF", +"l+ c #BEBDBD", +"m+ c #979797", +"n+ c #6A6B6A", +"o+ c #3F3F40", +"p+ c #020202", +"q+ c #030303", +"r+ c #878787", +"s+ c #69696A", +"t+ c #868685", +"u+ c #646464", +"v+ c #474647", +"w+ c #656565", +"x+ c #9E9F9E", +"y+ c #A8A8A8", +"z+ c #AFAFAE", +"A+ c #A4A4A4", +"B+ c #7A7A7A", +"C+ c #969696", +"D+ c #363636", +"E+ c #777776", +"F+ c #8C8D8D", +"G+ c #7D7D7D", +"H+ c #5E5E5E", +"I+ c #4F4F50", +"J+ c #808181", +"K+ c #707070", +"L+ c #909191", +"M+ c #9C9C9C", +"N+ c #787877", +"O+ c #696969", +"P+ c #616161", +"Q+ c #6E6E6E", +"R+ c #7C7B7C", +"S+ c #777677", +"T+ c #6F6E6E", +"U+ c #595959", +"V+ c #717171", +"W+ c #8D8D8D", +"X+ c #515051", +"Y+ c #49494A", +"Z+ c #4B4A4A", +"`+ c #606060", +" @ c #6A6A6A", +".@ c #616162", +"+@ c #6C6D6C", +"@@ c #767777", +"#@ c #727272", +"$@ c #6B6B6B", +"%@ c #828283", +"&@ c #757475", +"*@ c #444545", +"=@ c #565656", +"-@ c #5A595A", +";@ c #666666", +">@ c #878687", +",@ c #8A8A8A", +"'@ c #797979", +")@ c #444344", +"!@ c #7F8080", +"~@ c #737373", +"{@ c #484747", +"]@ c #707170", +"^@ c #7F7F7F", +"/@ c #676867", +"(@ c #4D4C4C", +"_@ c #5F5F5F", +":@ c #434444", +" ", +" ", +" . + ", +" @ # $ % & * ", +" = - ; > , ' ) ! ~ { ", +" ] ^ / ( _ : < [ } | # 1 2 # 3 ", +" 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", +" i j k 7 l m 9 0 a n o p q r s t u < | v ", +" w k > l x y z A B C p q D E F G H I J K ", +" L M N O y P Q R S T U V W F G X Y Z ` K ", +" ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", +" ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", +" 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", +" k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", +" A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", +" R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", +" $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", +" {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", +" k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", +" %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", +" s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", +" E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", +" L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", +" V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", +" ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", +" ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", +" e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", +" - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", +" =@_@O+L ~@#@~@L _ 9 9 :@ ", +" ;.H+ @-._ (. ", +" ", +" "}; diff --git a/src/Mod/Ship/Icons/SimCreateIco.png b/src/Mod/Ship/Icons/SimCreateIco.png new file mode 100644 index 0000000000000000000000000000000000000000..838b46e8bbceacc2d0a0a53dc71b6a84106e6f22 GIT binary patch literal 14469 zcmZu&WmFqov<>dA1&X`7yAxcByE_zuyL)lB;-$D3cXu!D#ohhod++Z{*5t0tnl(9d z&%OJ|-icCCl0iWvKm-5)C~~rrYTz;OzXKi?{Mj#TG7cUfT-9X60o7AP$KWrprt&h9 zfaw3;d#i_(;4=u$vO2B+020=J2LvE12OoSA4kV{21-A~1kB*PjMo%0DKJ^78r45pB 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%0D<<&U}Kdvi(&NLGqjLKO6uED9@v}J>m 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 HzwEyOS-3zg literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/Icons/SimCreateIco.xpm b/src/Mod/Ship/Icons/SimCreateIco.xpm new file mode 100644 index 000000000..a1847db91 --- /dev/null +++ b/src/Mod/Ship/Icons/SimCreateIco.xpm @@ -0,0 +1,2265 @@ +/* XPM */ +static char * SimCreateIco_xpm[] = { +"128 128 2134 2", +" c None", +". c #7B7B7B", +"+ c #EAEAEA", +"@ c #E9EAE9", +"# c #E9E9E9", +"$ c #E9E9E8", +"% c #D9D9D9", +"& c #EAEAE9", +"* c #E8E9E8", +"= c #E9E8E8", +"- c #E8E8E8", +"; c #E8E8E7", +"> c #E7E7E7", +", c #E7E6E7", +"' c #E6E6E6", +") c #5F5F5F", +"! c #606060", +"~ c #868686", +"{ c #AEAEAE", +"] c #C3C2C2", +"^ c #D1D1D1", +"/ c #E4E3E3", +"( c #E5E6E5", +"_ c #E6E5E5", +": c #E5E4E5", +"< c #6B6B6B", +"[ c #7B7A7A", +"} c #888889", +"| c #ABABAB", +"1 c #D5D5D5", +"2 c #E5E6E6", +"3 c #E5E5E5", +"4 c #E4E5E4", +"5 c #E4E4E4", +"6 c #E3E3E3", +"7 c #E3E3E2", +"8 c #E2E2E2", +"9 c #5E5E5E", +"0 c #5D5D5D", +"a c #5C5C5C", +"b c #5B5B5C", +"c c #5A5B5B", +"d c #838484", +"e c #BABABA", +"f c #DEDEDE", +"g c #E2E3E2", +"h c #E1E2E2", +"i c #E1E1E2", +"j c #E0E1E0", +"k c #E1E1E1", +"l c #EAE9E9", +"m c #5E5F5F", +"n c #5E5D5E", +"o c #5C5D5C", +"p c #5B5C5B", +"q c #5B5A5A", +"r c #5A5A5A", +"s c #595959", +"t c #595858", +"u c #585857", +"v c #575757", +"w c #686868", +"x c #909090", +"y c #BEBEBE", +"z c #D3D2D3", +"A c #E0E0E0", +"B c #E0DFE0", +"C c #E0DFDF", +"D c #DEDEDF", +"E c #5F5E5E", +"F c #5E5D5D", +"G c #5C5B5B", +"H c #5B5B5B", +"I c #5A5A59", +"J c #595A59", +"K c #595859", +"L c #585757", +"M c #565656", +"N c #555555", +"O c #545455", +"P c #545454", +"Q c #676666", +"R c #717272", +"S c #8B8B8A", +"T c #B7B7B8", +"U c #DFDFDF", +"V c #DDDDDD", +"W c #DCDDDD", +"X c #DDDCDC", +"Y c #E8E9E9", +"Z c #5D5E5E", +"` c #5C5B5C", +" . c #595958", +".. c #585858", +"+. c #565657", +"@. c #555556", +"#. c #545554", +"$. c #555454", +"%. c #535354", +"&. c #525252", +"*. c #525251", +"=. c #515050", +"-. c #4F5050", +";. c #4F4F50", +">. c #4E4F4F", +",. c #959595", +"'. c #CAC9C9", +"). c #D9D9DA", +"!. c #DADBDA", +"~. c #DCDCDC", +"{. c #DDDDDC", +"]. c #DBDCDB", +"^. c #DBDBDB", +"/. c #DADADB", +"(. c #DADADA", +"_. c #E8E8E9", +":. c #5B5A5B", +"<. c #505151", +"[. c #505050", +"}. c #4F4F4F", +"|. c #4E4D4E", +"1. c #4D4D4D", +"2. c #4C4D4D", +"3. c #4C4C4C", +"4. c #4B4B4B", +"5. c #707070", +"6. c #959596", +"7. c #AAAAAA", +"8. c #BFBEBF", +"9. c #D7D7D6", +"0. c #DADAD9", +"a. c #D9DADA", +"b. c #D8D9D9", +"c. c #5B5C5C", +"d. c #5A5B5A", +"e. c #5A5959", +"f. c #565757", +"g. c #535353", +"h. c #535253", +"i. c #505150", +"j. c #4F504F", +"k. c #4E4E4E", +"l. c #4C4B4B", +"m. c #494A49", +"n. c #494949", +"o. c #484747", +"p. c #6C6C6C", +"q. c #C7C7C7", +"r. c #DAD9D9", +"s. c #D9D8D9", +"t. c #D9D8D8", +"u. c #D8D8D8", +"v. c #D8D8D7", +"w. c #D7D8D8", +"x. c #D7D7D7", +"y. c #D6D6D6", +"z. c #D5D5D6", +"A. c #5E5E5D", +"B. c #595A5A", +"C. c #575656", +"D. c #545555", +"E. c #4F4E4E", +"F. c #4E4E4D", +"G. c #4C4D4C", +"H. c #4C4B4C", +"I. c #4A4A4A", +"J. c #494A4A", +"K. c #494848", +"L. c #484847", +"M. c #474747", +"N. c #474646", +"O. c #454545", +"P. c #444444", +"Q. c #434343", +"R. c #434243", +"S. c #6D6D6D", +"T. c #A7A8A7", +"U. c #D0D0D0", +"V. c #D4D4D4", +"W. c #D6D5D5", +"X. c #E7E8E8", +"Y. c #59595A", +"Z. c #535454", +"`. c #515151", +" + c #4D4D4C", +".+ c #464647", +"++ c #464545", +"@+ c #444545", +"#+ c #424242", +"$+ c #414141", +"%+ c #404041", +"&+ c #3F4040", +"*+ c #787878", +"=+ c #969696", +"-+ c #A7A7A7", +";+ c #C3C3C2", +">+ c #D5D4D5", +",+ c #D4D4D5", +"'+ c #D3D4D4", +")+ c #D3D3D3", +"!+ c #D2D3D3", +"~+ c #E6E7E6", +"{+ c #5A5A5B", +"]+ c #575858", +"^+ c #575657", +"/+ c #555656", +"(+ c #565555", +"_+ c #525352", +":+ c #515051", +"<+ c #4D4D4E", +"[+ c #4D4C4C", +"}+ c #4A4A49", +"|+ c #474848", +"1+ c #464747", +"2+ c #444544", +"3+ c #434342", +"4+ c #434142", +"5+ c #404141", +"6+ c #403F3F", +"7+ c #3F3E3E", +"8+ c #3E3E3E", +"9+ c #3D3D3D", +"0+ c #3C3C3C", +"a+ c #404040", +"b+ c #707071", +"c+ c #A4A5A5", +"d+ c #D4D3D3", +"e+ c #D3D2D2", +"f+ c #D2D2D2", +"g+ c #D2D2D1", +"h+ c #D1D0D0", +"i+ c #D0D1D0", +"j+ c #CFD0CF", +"k+ c #525353", +"l+ c #525152", +"m+ c #504F4F", +"n+ c #4B4A4A", +"o+ c #484848", +"p+ c #464646", +"q+ c #454544", +"r+ c #454444", +"s+ c #424343", +"t+ c #414142", +"u+ c #403F40", +"v+ c #3F3F3F", +"w+ c #3C3D3C", +"x+ c #3B3B3B", +"y+ c #3A3A3A", +"z+ c #3A3A39", +"A+ c #383838", +"B+ c #373737", +"C+ c #474847", +"D+ c #7F7F7F", +"E+ c #B6B6B6", +"F+ c #C8C9C8", +"G+ c #CBCBCB", +"H+ c #CFD0D0", +"I+ c #D0D0CF", +"J+ c #D0CFD0", +"K+ c #CFCFCF", +"L+ c #CECECE", +"M+ c #CECDCE", +"N+ c #545453", +"O+ c #525151", +"P+ c #4F4E4F", +"Q+ c #4A4B4B", +"R+ c #4A494A", +"S+ c #474647", +"T+ c #454645", +"U+ c #404140", +"V+ c #3E3E3F", +"W+ c #3D3E3E", +"X+ c #3D3C3C", +"Y+ c #3C3B3C", +"Z+ c #3C3B3B", +"`+ c #3A3939", +" @ c #383839", +".@ c #363637", +"+@ c #353636", +"@@ c #353535", +"#@ c #343434", +"$@ c #333333", +"%@ c #7B7B7C", +"&@ c #919190", +"*@ c #ACACAB", +"=@ c #C9C9C9", +"-@ c #CECFCE", +";@ c #CECECD", +">@ c #CDCDCD", +",@ c #CDCDCC", +"'@ c #CCCCCC", +")@ c #CCCCCB", +"!@ c #858585", +"~@ c #E6E5E6", +"{@ c #585859", +"]@ c #565655", +"^@ c #545354", +"/@ c #4E4F4E", +"(@ c #4C4C4D", +"_@ c #4B4B4A", +":@ c #484748", +"<@ c #434344", +"[@ c #3D3C3D", +"}@ c #393839", +"|@ c #373636", +"1@ c #333334", +"2@ c #323332", +"3@ c #323232", +"4@ c #313131", +"5@ c #303131", +"6@ c #383939", +"7@ c #50504F", +"8@ c #7E7F7E", +"9@ c #B6B7B6", +"0@ c #CBCBCC", +"a@ c #CBCBCA", +"b@ c #CACACA", +"c@ c #CAC9CA", +"d@ c #575857", +"e@ c #515150", +"f@ c #4A4A4B", +"g@ c #494849", +"h@ c #474746", +"i@ c #464547", +"j@ c #434444", +"k@ c #424141", +"l@ c #3D3D3E", +"m@ c #3B3C3B", +"n@ c #3B3B3A", +"o@ c #383737", +"p@ c #363737", +"q@ c #363636", +"r@ c #353635", +"s@ c #343433", +"t@ c #333233", +"u@ c #313132", +"v@ c #323131", +"w@ c #303030", +"x@ c #2F2F2F", +"y@ c #2F2F2E", +"z@ c #2E2E2F", +"A@ c #2D2C2D", +"B@ c #2C2D2D", +"C@ c #2C2C2C", +"D@ c #2C2B2C", +"E@ c #939393", +"F@ c #B9BAB9", +"G@ c #C0C0C0", +"H@ c #C7C6C7", +"I@ c #CACAC9", +"J@ c #C9C9C8", +"K@ c #C8C8C9", +"L@ c #C8C8C8", +"M@ c #585758", +"N@ c #535152", +"O@ c #504F50", +"P@ c #4B4C4A", +"Q@ c #494948", +"R@ c #454646", +"S@ c #434443", +"T@ c #414241", +"U@ c #3F3F40", +"V@ c #3F3E3F", +"W@ c #3E3E3D", +"X@ c #3D3C3E", +"Y@ c #393939", +"Z@ c #373838", +"`@ c #363535", +" # c #343334", +".# c #313232", +"+# c #2E2E2E", +"@# c #2D2D2D", +"## c #2C2B2B", +"$# c #2B2B2B", +"%# c #2A2A2A", +"&# c #29292A", +"*# c #292929", +"=# c #282828", +"-# c #383938", +";# c #5D5E5D", +"># c #7A797A", +",# c #919191", +"'# c #B3B2B3", +")# c #C8C7C8", +"!# c #C8C7C7", +"~# c #C8C8C7", +"{# c #C7C7C6", +"]# c #C6C6C7", +"^# c #C6C6C5", +"/# c #9D9D9D", +"(# c #E4E4E5", +"_# c #4A4B4A", +":# c #484949", +"<# c #474748", +"[# c #444443", +"}# c #424241", +"|# c #3C3D3D", +"1# c #3B3A3B", +"2# c #383837", +"3# c #353434", +"4# c #333434", +"5# c #313031", +"6# c #302F2F", +"7# c #2D2D2E", +"8# c #2A2B2B", +"9# c #292A2A", +"0# c #292828", +"a# c #282928", +"b# c #272727", +"c# c #262626", +"d# c #242524", +"e# c #C6C6C6", +"f# c #C5C5C5", +"g# c #C5C5C6", +"h# c #424243", +"i# c #3B3A3A", +"j# c #383738", +"k# c #343534", +"l# c #343333", +"m# c #313130", +"n# c #302F30", +"o# c #2D2C2C", +"p# c #2C2C2D", +"q# c #272626", +"r# c #252625", +"s# c #262525", +"t# c #242424", +"u# c #232423", +"v# c #222223", +"w# c #222222", +"x# c #212121", +"y# c #1F1F20", +"z# c #30302F", +"A# c #6A696A", +"B# c #A0A09F", +"C# c #C5C6C5", +"D# c #E3E4E4", +"E# c #555655", +"F# c #535352", +"G# c #4E4D4D", +"H# c #424142", +"I# c #414040", +"J# c #3F403F", +"K# c #3C3C3D", +"L# c #39393A", +"M# c #383637", +"N# c #323233", +"O# c #323132", +"P# c #303031", +"Q# c #2F2E2E", +"R# c #2E2E2D", +"S# c #2B2C2C", +"T# c #2B2A2A", +"U# c #272627", +"V# c #252525", +"W# c #242423", +"X# c #232222", +"Y# c #212221", +"Z# c #202021", +"`# c #202020", +" $ c #1F1F1F", +".$ c #1E1E1F", +"+$ c #1E1D1D", +"@$ c #1D1C1D", +"#$ c #C4C5C5", +"$$ c #C4C4C4", +"%$ c #525253", +"&$ c #515252", +"*$ c #4E4E4F", +"=$ c #4D4C4D", +"-$ c #4B4A4B", +";$ c #414041", +">$ c #3C3C3B", +",$ c #393938", +"'$ c #363536", +")$ c #353435", +"!$ c #333433", +"~$ c #2B2A2B", +"{$ c #2A2B2A", +"]$ c #292829", +"^$ c #262627", +"/$ c #252624", +"($ c #252424", +"_$ c #222322", +":$ c #20201F", +"<$ c #1E1F1E", +"[$ c #1D1D1D", +"}$ c #1C1D1D", +"|$ c #1C1C1C", +"1$ c #C4C5C4", +"2$ c #4F4F4E", +"3$ c #444344", +"4$ c #3E3F3E", +"5$ c #3E3D3E", +"6$ c #393A39", +"7$ c #393838", +"8$ c #363736", +"9$ c #2F302F", +"0$ c #2D2E2D", +"a$ c #2E2D2E", +"b$ c #2D2D2C", +"c$ c #2B2B2C", +"d$ c #2B2B2A", +"e$ c #262526", +"f$ c #242324", +"g$ c #232324", +"h$ c #212222", +"i$ c #202121", +"j$ c #1F2020", +"k$ c #1F1F1E", +"l$ c #1D1C1C", +"m$ c #1B1B1C", +"n$ c #C4C4C3", +"o$ c #E3E2E3", +"p$ c #555455", +"q$ c #515251", +"r$ c #4B4C4C", +"s$ c #3D3E3D", +"t$ c #3B3D3C", +"u$ c #3A3A3B", +"v$ c #373837", +"w$ c #373637", +"x$ c #2F2E2F", +"y$ c #232323", +"z$ c #1E1E1D", +"A$ c #1B1C1C", +"B$ c #1C1B1B", +"C$ c #1B1B1B", +"D$ c #C3C4C4", +"E$ c #C3C3C3", +"F$ c #464546", +"G$ c #3E3F3F", +"H$ c #3E3D3D", +"I$ c #3D3D3C", +"J$ c #3A3B3B", +"K$ c #323333", +"L$ c #313030", +"M$ c #2F3030", +"N$ c #2E2F2F", +"O$ c #2D2D2B", +"P$ c #2A2B29", +"Q$ c #292A29", +"R$ c #282726", +"S$ c #202120", +"T$ c #1E1E1E", +"U$ c #19191A", +"V$ c #C3C3C4", +"W$ c #E2E1E1", +"X$ c #4A4949", +"Y$ c #484849", +"Z$ c #3A3B3A", +"`$ c #373738", +" % c #373736", +".% c #252425", +"+% c #222122", +"@% c #212122", +"#% c #1A1B1B", +"$% c #1B1A1A", +"%% c #1A1919", +"&% c #E2E1E2", +"*% c #E1E0E1", +"=% c #505051", +"-% c #49494A", +";% c #1A1A1A", +">% c #3A393A", +",% c #2E2F2E", +"'% c #282727", +")% c #242425", +"!% c #232322", +"~% c #1E1F1F", +"{% c #1B1C1B", +"]% c #1A191A", +"^% c #191A19", +"/% c #191918", +"(% c #C2C2C2", +"_% c #E0E1E1", +":% c #E1E1E0", +"<% c #4B4B4C", +"[% c #454445", +"}% c #161515", +"|% c #8B8B8B", +"1% c #2C2C2B", +"2% c #282827", +"3% c #272728", +"4% c #262727", +"5% c #1F1E1F", +"6% c #1A1A19", +"7% c #181818", +"8% c #C1C1C2", +"9% c #E1E0E0", +"0% c #464746", +"a% c #111111", +"b% c #7C7C7C", +"c% c #BBBBBB", +"d% c #969697", +"e% c #5F5F5C", +"f% c #33332F", +"g% c #28292A", +"h% c #262726", +"i% c #201F20", +"j% c #1F201F", +"k% c #191919", +"l% c #171717", +"m% c #4C4C4B", +"n% c #444445", +"o% c #444343", +"p% c #1A1717", +"q% c #211515", +"r% c #2D2B2B", +"s% c #999999", +"t% c #B3B3B5", +"u% c #8B8BB2", +"v% c #6F6F89", +"w% c #4A4A4F", +"x% c #2A2929", +"y% c #2B2C2B", +"z% c #2A292A", +"A% c #232424", +"B% c #212120", +"C% c #181718", +"D% c #171818", +"E% c #171716", +"F% c #C1C1C1", +"G% c #C0C1C1", +"H% c #DFE0E0", +"I% c #484948", +"J% c #422121", +"K% c #552D2D", +"L% c #363232", +"M% c #A0A0A0", +"N% c #646464", +"O% c #ABABAE", +"P% c #7575C7", +"Q% c #5C5CD5", +"R% c #7878BD", +"S% c #7B7B8E", +"T% c #585855", +"U% c #30302E", +"V% c #2A2A29", +"W% c #212020", +"X% c #201E1F", +"Y% c #1E1D1E", +"Z% c #1C1C1D", +"`% c #1A1B1A", +" & c #191A1A", +".& c #171616", +"+& c #161616", +"@& c #C0C0C1", +"#& c #414242", +"$& c #1F1C1C", +"%& c #542424", +"&& c #4C2625", +"*& c #585756", +"=& c #A8A8A8", +"-& c #767677", +";& c #9D9D9E", +">& c #8A8AAD", +",& c #5A5AC4", +"'& c #3838D7", +")& c #3434D9", +"!& c #4848BD", +"~& c #535372", +"{& c #878888", +"]& c #A4A4A4", +"^& c #A7A6A6", +"/& c #B0B0B0", +"(& c #B1B1B1", +"_& c #A1A1A1", +":& c #808080", +"<& c #151515", +"[& c #242525", +"}& c #1D1E1E", +"|& c #1A1A1B", +"1& c #191819", +"2& c #181817", +"3& c #161717", +"4& c #151516", +"5& c #C1C0C0", +"6& c #DFDEDE", +"7& c #5B2020", +"8& c #391A19", +"9& c #A4A4A5", +"0& c #878687", +"a& c #8E8E8E", +"b& c #9B9B98", +"c& c #999994", +"d& c #888898", +"e& c #6C6BA8", +"f& c #4F4FBD", +"g& c #50508B", +"h& c #CECDCD", +"i& c #6A6A6A", +"j& c #242323", +"k& c #222121", +"l& c #1F1E1E", +"m& c #1C1D1C", +"n& c #151514", +"o& c #BFC0BF", +"p& c #DFDFDE", +"q& c #434445", +"r& c #3F3E40", +"s& c #1B1212", +"t& c #611717", +"u& c #301414", +"v& c #797878", +"w& c #9C9C9D", +"x& c #888888", +"y& c #8A8A89", +"z& c #868688", +"A& c #7C7C8F", +"B& c #45455C", +"C& c #B8B8B8", +"D& c #C5C4C4", +"E& c #AAA9A9", +"F& c #252523", +"G& c #222323", +"H& c #171817", +"I& c #161516", +"J& c #141514", +"K& c #141313", +"L& c #C0BFBF", +"M& c #4D4E4E", +"N& c #464645", +"O& c #1B0F0F", +"P& c #570D0D", +"Q& c #270D0D", +"R& c #706F6F", +"S& c #838383", +"T& c #757474", +"U& c #878787", +"V& c #6F6F6F", +"W& c #5C5C5A", +"X& c #353533", +"Y& c #656565", +"Z& c #BCBCBC", +"`& c #BFBFBF", +" * c #C1C2C1", +".* c #696969", +"+* c #1D1D1E", +"@* c #191818", +"#* c #131313", +"$* c #DDDEDD", +"%* c #110F0F", +"&* c #220B0B", +"** c #201B1B", +"=* c #7D7D7C", +"-* c #727272", +";* c #898989", +">* c #BBBBBA", +",* c #BCBCBB", +"'* c #BDBDBD", +")* c #676868", +"!* c #7A7A7A", +"~* c #1D1D1C", +"{* c #181918", +"]* c #141414", +"^* c #131314", +"/* c #131312", +"(* c #BEBFBF", +"_* c #454546", +":* c #3B3B3C", +"<* c #181919", +"[* c #818181", +"}* c #656465", +"|* c #888787", +"1* c #9B9B9B", +"2* c #ADADAD", +"3* c #B4B4B4", +"4* c #B5B5B5", +"5* c #B5B5B4", +"6* c #B6B6B5", +"7* c #B6B6B7", +"8* c #B7B7B7", +"9* c #B7B8B8", +"0* c #767676", +"a* c #121213", +"b* c #212021", +"c* c #141413", +"d* c #111212", +"e* c #9A9A9A", +"f* c #515152", +"g* c #616162", +"h* c #949495", +"i* c #A6A6A6", +"j* c #AFAFAF", +"k* c #ACADAD", +"l* c #B2B2B2", +"m* c #B0B0AF", +"n* c #AFAFB0", +"o* c #B3B3B3", +"p* c #B5B4B4", +"q* c #1C1B1C", +"r* c #131414", +"s* c #121313", +"t* c #121212", +"u* c #BEBDBD", +"v* c #DCDCDD", +"w* c #6E6E6E", +"x* c #A5A5A5", +"y* c #A9A9A9", +"z* c #ABABAA", +"A* c #AAAAA9", +"B* c #ABA9A9", +"C* c #ABAAAB", +"D* c #ABABAC", +"E* c #ACACAC", +"F* c #666766", +"G* c #141314", +"H* c #1D1E1D", +"I* c #1B1A1B", +"J* c #131213", +"K* c #101111", +"L* c #586362", +"M* c #5D6F74", +"N* c #596767", +"O* c #555A58", +"P* c #A2A2A3", +"Q* c #A2A2A2", +"R* c #A3A3A3", +"S* c #A5A5A3", +"T* c #A6A7A7", +"U* c #A5A4A5", +"V* c #A8A7A7", +"W* c #A9A8A9", +"X* c #9C9C9C", +"Y* c #424342", +"Z* c #6C6D6C", +"`* c #101010", +" = c #151616", +".= c #131412", +"+= c #101110", +"@= c #0F0F0F", +"#= c #BDBCBD", +"$= c #DBDCDC", +"%= c #7FA3AE", +"&= c #79A5EC", +"*= c #5F80EB", +"== c #485FD4", +"-= c #4758B4", +";= c #516392", +">= c #586874", +",= c #55605F", +"'= c #393A3A", +")= c #2D2E2F", +"!= c #9E9E9E", +"~= c #979897", +"{= c #9A9B9B", +"]= c #929493", +"^= c #8C8D8D", +"/= c #979797", +"(= c #989999", +"_= c #969898", +":= c #979898", +"<= c #9B9C9C", +"[= c #A2A1A2", +"}= c #737272", +"|= c #A6A5A6", +"1= c #616161", +"2= c #1B1B1A", +"3= c #181717", +"4= c #161615", +"5= c #151414", +"6= c #121112", +"7= c #111110", +"8= c #7A9DAE", +"9= c #597AF5", +"0= c #5373F9", +"a= c #668CFC", +"b= c #5D80FC", +"c= c #5271FB", +"d= c #5576F5", +"e= c #739AE6", +"f= c #7495A5", +"g= c #607578", +"h= c #54646B", +"i= c #58686B", +"j= c #505A59", +"k= c #484B4B", +"l= c #323432", +"m= c #919292", +"n= c #959494", +"o= c #878686", +"p= c #7A7979", +"q= c #7C7777", +"r= c #807778", +"s= c #776F6F", +"t= c #706565", +"u= c #7B6C6B", +"v= c #847171", +"w= c #7C6B6B", +"x= c #746464", +"y= c #736262", +"z= c #7A6969", +"A= c #807070", +"B= c #807676", +"C= c #807C7C", +"D= c #949696", +"E= c #9E9F9F", +"F= c #757575", +"G= c #171617", +"H= c #151615", +"I= c #141415", +"J= c #121111", +"K= c #0F1010", +"L= c #0F0F10", +"M= c #0E0F0E", +"N= c #BDBDBC", +"O= c #5B6766", +"P= c #799CA3", +"Q= c #76979D", +"R= c #6F8D9F", +"S= c #97CEEF", +"T= c #76A2FB", +"U= c #4C69FC", +"V= c #1B27FD", +"W= c #3549F4", +"X= c #5979E3", +"Y= c #698DE4", +"Z= c #77A2F2", +"`= c #688EE1", +" - c #5C78C4", +".- c #576FA2", +"+- c #55697C", +"@- c #4D5C5F", +"#- c #333E39", +"$- c #3D3B37", +"%- c #6F6766", +"&- c #786868", +"*- c #7D6666", +"=- c #947676", +"-- c #9C7979", +";- c #9D7676", +">- c #AB7E7E", +",- c #BA8888", +"'- c #B88585", +")- c #B17E7E", +"!- c #B57E7E", +"~- c #BD8383", +"{- c #BD8181", +"]- c #B07777", +"^- c #A06A6A", +"/- c #956161", +"(- c #8A5B5B", +"_- c #7D5858", +":- c #755F5F", +"<- c #807878", +"[- c #7D7D7D", +"}- c #797979", +"|- c #131212", +"1- c #0F0F0E", +"2- c #0D0E0E", +"3- c #BCBBBC", +"4- c #DBDADB", +"5- c #424545", +"6- c #4F5756", +"7- c #9BD0D5", +"8- c #6D96FC", +"9- c #435DFC", +"0- c #3E55FC", +"a- c #5270FC", +"b- c #5878F8", +"c- c #4862F2", +"d- c #435DF8", +"e- c #4D6BF8", +"f- c #597BFC", +"g- c #5B7DFB", +"h- c #5E81FB", +"i- c #678DEF", +"j- c #7198D3", +"k- c #354658", +"l- c #5B4442", +"m- c #B6817F", +"n- c #C68B8B", +"o- c #C38787", +"p- c #C78888", +"q- c #CE8C8C", +"r- c #CA8686", +"s- c #C68181", +"t- c #C78080", +"u- c #C87F7F", +"v- c #C57B7B", +"w- c #C37777", +"x- c #C07373", +"y- c #C17271", +"z- c #C17070", +"A- c #BF6B6B", +"B- c #BB6767", +"C- c #B15F5F", +"D- c #9E5453", +"E- c #744343", +"F- c #302929", +"G- c #161617", +"H- c #141515", +"I- c #131413", +"J- c #100F10", +"K- c #0F0E0E", +"L- c #0E0E0E", +"M- c #0D0D0D", +"N- c #BBBCBB", +"O- c #DAD9DA", +"P- c #40403F", +"Q- c #739297", +"R- c #78A2E4", +"S- c #7AA6E2", +"T- c #86B1C5", +"U- c #6A879E", +"V- c #6A879A", +"W- c #708F95", +"X- c #7C9FA0", +"Y- c #5F7788", +"Z- c #576C96", +"`- c #5974B8", +" ; c #5774D8", +".; c #4B67F1", +"+; c #4661FD", +"@; c #3549D3", +"#; c #2F236D", +"$; c #A86F81", +"%; c #C17777", +"&; c #C27472", +"*; c #C17272", +"=; c #BE6F6F", +"-; c #BC6C6C", +";; c #BC6969", +">; c #BA6766", +",; c #B96363", +"'; c #B86060", +"); c #B75D5D", +"!; c #B55B5B", +"~; c #B35757", +"{; c #B25554", +"]; c #B15251", +"^; c #B04F4F", +"/; c #AF4C4C", +"(; c #AF4A49", +"_; c #763030", +":; c #291313", +"<; c #0C0C0C", +"[; c #BBBBBC", +"}; c #434241", +"|; c #49504F", +"1; c #697F7E", +"2; c #607270", +"3; c #464C4B", +"4; c #454748", +"5; c #3B3D3D", +"6; c #454848", +"7; c #4D5353", +"8; c #637D7F", +"9; c #7BA3C0", +"0; c #688EE9", +"a; c #364CD9", +"b; c #564EC6", +"c; c #8F639C", +"d; c #B06D77", +"e; c #B75A55", +"f; c #B55753", +"g; c #B25352", +"h; c #B15050", +"i; c #B04E4D", +"j; c #AE4A4A", +"k; c #AD4747", +"l; c #AC4444", +"m; c #AA4242", +"n; c #A93F3F", +"o; c #A83C3C", +"p; c #A63939", +"q; c #A53636", +"r; c #A43333", +"s; c #8F2C2C", +"t; c #451616", +"u; c #541A1A", +"v; c #663B3B", +"w; c #848383", +"x; c #1C1A1C", +"y; c #0E0F0F", +"z; c #0E0D0D", +"A; c #0D0D0C", +"B; c #BBBABB", +"C; c #BABBBA", +"D; c #D9DAD9", +"E; c #3E4645", +"F; c #5A6F74", +"G; c #7094BE", +"H; c #5A7EF1", +"I; c #3F52F7", +"J; c #4A49DD", +"K; c #6E3D9B", +"L; c #914B73", +"M; c #A13B45", +"N; c #A73735", +"O; c #A6332F", +"P; c #A42F2C", +"Q; c #A22C2B", +"R; c #A02B2C", +"S; c #9F2929", +"T; c #9E2626", +"U; c #9D2323", +"V; c #9B2020", +"W; c #9A1E1D", +"X; c #951919", +"Y; c #581010", +"Z; c #3B0909", +"`; c #7E1C1C", +" > c #671B1B", +".> c #2F2929", +"+> c #101011", +"@> c #0B0B0B", +"#> c #D8D9D8", +"$> c #3B3C3C", +"%> c #353534", +"&> c #353334", +"*> c #454949", +"=> c #6B8382", +"-> c #779FB5", +";> c #76A2EF", +">> c #5B72EE", +",> c #555CDE", +"'> c #623AA0", +")> c #762969", +"!> c #872F51", +"~> c #922C3C", +"{> c #952129", +"]> c #941619", +"^> c #950D0B", +"/> c #960B07", +"(> c #950B06", +"_> c #930907", +":> c #8F0707", +"<> c #680504", +"[> c #350200", +"}> c #4D0301", +"|> c #680D0E", +"1> c #391213", +"2> c #252E29", +"3> c #242B25", +"4> c #252A26", +"5> c #151415", +"6> c #121312", +"7> c #111211", +"8> c #10100F", +"9> c #0E0E0F", +"0> c #0D0C0D", +"a> c #0C0C0B", +"b> c #0A0A0B", +"c> c #B9BABA", +"d> c #2F2F30", +"e> c #313333", +"f> c #51656B", +"g> c #587293", +"h> c #5574C3", +"i> c #5170F4", +"j> c #4658F3", +"k> c #4A4BDB", +"l> c #5943B8", +"m> c #6B3E8F", +"n> c #793468", +"o> c #7F264C", +"p> c #7E1435", +"q> c #7E0320", +"r> c #82051B", +"s> c #70030D", +"t> c #2B0003", +"u> c #170002", +"v> c #3A0B12", +"w> c #35272C", +"x> c #3F5785", +"y> c #455FC7", +"z> c #4961B0", +"A> c #495E89", +"B> c #445664", +"C> c #3C4A49", +"D> c #0A0B0B", +"E> c #0A0A09", +"F> c #BAB9BA", +"G> c #2D2E2E", +"H> c #2E3030", +"I> c #323231", +"J> c #464C4C", +"K> c #6B8887", +"L> c #6C8FA1", +"M> c #6183BB", +"N> c #5071D2", +"O> c #4463E8", +"P> c #3E55F8", +"Q> c #414EED", +"R> c #4B45CF", +"S> c #5131AA", +"T> c #502EA3", +"U> c #2E1FA3", +"V> c #09089D", +"W> c #0A0B8D", +"X> c #202788", +"Y> c #5476B4", +"Z> c #7BAAF4", +"`> c #5879FB", +" , c #5D7FFD", +"., c #5C7FFB", +"+, c #658AF7", +"@, c #749FE8", +"#, c #6383A7", +"$, c #4B616A", +"%, c #394443", +"&, c #1C1F1F", +"*, c #100F0F", +"=, c #0B0B0C", +"-, c #0B0B0A", +";, c #0A0A0A", +">, c #090909", +",, c #B9B9B9", +"', c #333332", +"), c #303130", +"!, c #2E2D2D", +"~, c #2A2A2B", +"{, c #2B2D2D", +"], c #363F40", +"^, c #445358", +"/, c #526873", +"(, c #5C778D", +"_, c #607FA4", +":, c #5D7FBE", +"<, c #597ED6", +"[, c #577BE9", +"}, c #3E56B9", +"|, c #5E81D3", +"1, c #5574D4", +"2, c #425AD8", +"3, c #425BF1", +"4, c #3C54FB", +"5, c #3B52FC", +"6, c #4660FC", +"7, c #5574FC", +"8, c #5473FC", +"9, c #455FFC", +"0, c #4059F5", +"a, c #516EE2", +"b, c #6A91CA", +"c, c #587480", +"d, c #2E3636", +"e, c #0D0C0C", +"f, c #0C0B0C", +"g, c #0A090A", +"h, c #B8B9B8", +"i, c #D8D7D7", +"j, c #D7D7D8", +"k, c #333232", +"l, c #282B2C", +"m, c #363F41", +"n, c #4B5B5B", +"o, c #5B6F6D", +"p, c #3C4747", +"q, c #404D54", +"r, c #465861", +"s, c #495C67", +"t, c #577285", +"u, c #5E7EA0", +"v, c #5B7ABA", +"w, c #6084ED", +"x, c #5677FB", +"y, c #6388FC", +"z, c #82B3FB", +"A, c #86B8FB", +"B, c #5575FB", +"C, c #354AFC", +"D, c #4F6EF8", +"E, c #719BD3", +"F, c #62838E", +"G, c #4B6466", +"H, c #32403F", +"I, c #171919", +"J, c #0A0A0C", +"K, c #080908", +"L, c #070708", +"M, c #B9B8B9", +"N, c #B9B9B8", +"O, c #383937", +"P, c #2C2D2C", +"Q, c #252626", +"R, c #272C30", +"S, c #4E6676", +"T, c #5C7CB0", +"U, c #5A7CEB", +"V, c #4159FC", +"W, c #435CFC", +"X, c #374CFC", +"Y, c #3347FC", +"Z, c #1C27FD", +"`, c #222FFD", +" ' c #4864F7", +".' c #5C7EE9", +"+' c #7098D4", +"@' c #5A798B", +"#' c #394948", +"$' c #252A2A", +"%' c #0B0A0B", +"&' c #0B0A09", +"*' c #090808", +"=' c #070808", +"-' c #070707", +";' c #B8B7B8", +">' c #D6D7D7", +",' c #D7D6D7", +"'' c #343435", +")' c #2D2D2F", +"!' c #282929", +"~' c #2C2F2E", +"{' c #576E6D", +"]' c #6B90A6", +"^' c #658AE8", +"/' c #3245FD", +"(' c #3F56FC", +"_' c #84B6FB", +":' c #76A1DB", +"<' c #5370C0", +"[' c #4A65D9", +"}' c #455FF7", +"|' c #4661FA", +"1' c #5D7FE7", +"2' c #6D94B7", +"3' c #3C4D4D", +"4' c #0B0C0C", +"5' c #080809", +"6' c #060606", +"7' c #B7B8B7", +"8' c #D7D6D6", +"9' c #3F3F3E", +"0' c #363635", +"a' c #282829", +"b' c #1A1C1C", +"c' c #495F68", +"d' c #6B92CC", +"e' c #5474FC", +"f' c #75A0FB", +"g' c #769FA3", +"h' c #283137", +"i' c #364651", +"j' c #5B7A97", +"k' c #6C93DA", +"l' c #5979FB", +"m' c #4D6AFC", +"n' c #6283CF", +"o' c #4D676B", +"p' c #0D0D0E", +"q' c #0A0909", +"r' c #080808", +"s' c #070706", +"t' c #060605", +"u' c #D6D5D6", +"v' c #606061", +"w' c #272726", +"x' c #232223", +"y' c #212220", +"z' c #1C1C1B", +"A' c #3E4C4A", +"B' c #77A2C3", +"C' c #82B1EC", +"D' c #6A8F90", +"E' c #2B3332", +"F' c #55727E", +"G' c #6D95E0", +"H' c #658AFB", +"I' c #8EC3D8", +"J' c #283432", +"K' c #050505", +"L' c #B8B7B7", +"M' c #D6D6D5", +"N' c #C5C5C4", +"O' c #848484", +"P' c #252526", +"Q' c #181819", +"R' c #353E3D", +"S' c #4F6664", +"T' c #313D3D", +"U' c #111010", +"V' c #3F5255", +"W' c #53718E", +"X' c #688C93", +"Y' c #1D2425", +"Z' c #080707", +"`' c #050606", +" ) c #050406", +".) c #040404", +"+) c #B7B7B6", +"@) c #D3D3D2", +"#) c #292928", +"$) c #111312", +"%) c #0B0A0A", +"&) c #080807", +"*) c #080607", +"=) c #060505", +"-) c #050504", +";) c #D1D1D2", +">) c #858484", +",) c #272827", +"') c #0F100F", +")) c #0E0D0E", +"!) c #0C0D0C", +"~) c #080A09", +"{) c #090809", +"]) c #060707", +"^) c #060506", +"/) c #040505", +"() c #030303", +"_) c #B6B5B5", +":) c #CFCECF", +"<) c #CFCECE", +"[) c #BDBEBE", +"}) c #0E0D0F", +"|) c #0C0D0D", +"1) c #0C0B0B", +"2) c #0A0B0A", +"3) c #090A0A", +"4) c #070807", +"5) c #050506", +"6) c #040303", +"7) c #030403", +"8) c #020202", +"9) c #CFCFCE", +"0) c #CDCCCC", +"a) c #828282", +"b) c #252524", +"c) c #121011", +"d) c #0C0C0D", +"e) c #060706", +"f) c #020203", +"g) c #010202", +"h) c #B4B4B5", +"i) c #555554", +"j) c #CCCCCD", +"k) c #CBCCCB", +"l) c #CACBCA", +"m) c #0E0E0D", +"n) c #030404", +"o) c #010101", +"p) c #B5B4B5", +"q) c #B4B5B4", +"r) c #C9CACA", +"s) c #C8C9C9", +"t) c #C9C8C9", +"u) c #777877", +"v) c #121311", +"w) c #050405", +"x) c #040403", +"y) c #020201", +"z) c #000000", +"A) c #4F504E", +"B) c #C9C8C8", +"C) c #C7C7C8", +"D) c #C6C7C6", +"E) c #60605F", +"F) c #050404", +"G) c #000001", +"H) c #B3B4B4", +"I) c #BEBEF1", +"J) c #C7C6C6", +"K) c #C5C6C6", +"L) c #C6C5C6", +"M) c #B2B3B3", +"N) c #949494", +"O) c #7E7E7E", +"P) c #171718", +"Q) c #0D0E0D", +"R) c #09090A", +"S) c #080909", +"T) c #070607", +"U) c #060504", +"V) c #020303", +"W) c #B3B3B4", +"X) c #BBBBF4", +"Y) c #B4B4F7", +"Z) c #666666", +"`) c #9F9F9F", +" ! c #C4C3C4", +".! c #C2C2C3", +"+! c #C0C0BF", +"@! c #BCBBBB", +"#! c #909191", +"$! c #141516", +"%! c #121211", +"&! c #0F0E0F", +"*! c #090908", +"=! c #070606", +"-! c #050605", +";! c #020101", +">! c #B2B3B2", +",! c #A5A5BB", +"'! c #B0B0F9", +")! c #AFAFFA", +"!! c #4D4E4D", +"~! c #929292", +"{! c #C2C3C2", +"]! c #C1C2C2", +"^! c #C2C1C2", +"/! c #0B0C0B", +"(! c #030202", +"_! c #000100", +":! c #B3B2B2", +"~ c #ACACAD", +",~ c #A4A4A3", +"'~ c #A1A0A0", +")~ c #9E9D9D", +"!~ c #040405", +"~~ c #AFAFD2", +"{~ c #9393FD", +"]~ c #7777FF", +"^~ c #8181FF", +"/~ c #A9A9F8", +"(~ c #CECEFB", +"_~ c #CCCCFD", +":~ c #AEAEAF", +"<~ c #8F8F8F", +"[~ c #A9A9AA", +"}~ c #A3A2A2", +"|~ c #AEAFAF", +"1~ c #B3B4B3", +"2~ c #09090B", +"3~ c #AEAEDA", +"4~ c #8B8BFD", +"5~ c #7373FF", +"6~ c #7979FF", +"7~ c #9E9EF6", +"8~ c #8E8EAE", +"9~ c #BDBDFC", +"0~ c #B9B9FE", +"a~ c #BABAB9", +"b~ c #B2B2B3", +"c~ c #B1B3B2", +"d~ c #B1B2B1", +"e~ c #ADACAB", +"f~ c #AAA9AA", +"g~ c #888988", +"h~ c #9E9D9E", +"i~ c #A0A0A1", +"j~ c #A4A3A3", +"k~ c #A7A8A8", +"l~ c #B4B4B3", +"m~ c #B1B2B2", +"n~ c #ADADAE", +"o~ c #969595", +"p~ c #808083", +"q~ c #ABABDD", +"r~ c #8989FD", +"s~ c #7171FF", +"t~ c #6F6FFF", +"u~ c #8C8CFD", +"v~ c #9494C2", +"w~ c #57575E", +"x~ c #CFCFF8", +"y~ c #9595FE", +"z~ c #A0A0FD", +"A~ c #DBDBF8", +"B~ c #7D7C7C", +"C~ c #989898", +"D~ c #AEADAD", +"E~ c #ADACAD", +"F~ c #ACABAC", +"G~ c #9C9D9D", +"H~ c #7F7F7E", +"I~ c #565756", +"J~ c #989998", +"K~ c #A0A1A0", +"L~ c #A4A3A4", +"M~ c #B0B1B1", +"N~ c #B1B0B1", +"O~ c #AEAED9", +"P~ c #6B6BFF", +"Q~ c #7575FF", +"R~ c #9696EF", +"S~ c #7B7B95", +"T~ c #CACAEE", +"U~ c #ACACFD", +"V~ c #6363FF", +"W~ c #A2A2FD", +"X~ c #B6B7B7", +"Y~ c #787877", +"Z~ c #757676", +"`~ c #747474", +" { c #8C8D8C", +".{ c #9D9C9D", +"+{ c #A8A8A7", +"@{ c #545353", +"#{ c #989797", +"${ c #9F9F9E", +"%{ c #A0A1A1", +"&{ c #8C8C8B", +"*{ c #706F70", +"={ c #B1B1B0", +"-{ c #B0B0B1", +";{ c #AEAED3", +">{ c #8E8EFD", +",{ c #6565FF", +"'{ c #9999EE", +"){ c #7C7C94", +"!{ c #56565C", +"~{ c #5A5A5F", +"{{ c #8F8FA5", +"]{ c #AFAFF8", +"^{ c #4747FF", +"/{ c #B2B2FC", +"({ c #B4B5B5", +"_{ c #777677", +":{ c #727172", +"<{ c #6B6C6C", +"[{ c #80807F", +"}{ c #919090", +"|{ c #9E9E9F", +"1{ c #A4A5A4", +"2{ c #A6A7A6", +"3{ c #898888", +"4{ c #6E6E6D", +"5{ c #5F5F60", +"6{ c #797A7A", +"7{ c #7E7F7F", +"8{ c #777777", +"9{ c #616060", +"0{ c #5A5A66", +"a{ c #8B8BC5", +"b{ c #8484FD", +"c{ c #6767FF", +"d{ c #5F5FFF", +"e{ c #9494F2", +"f{ c #9A9ACA", +"g{ c #7B7B90", +"h{ c #64636D", +"i{ c #58585E", +"j{ c #57575D", +"k{ c #65656D", +"l{ c #7F7F8F", +"m{ c #A2A2C8", +"n{ c #A1A1F1", +"o{ c #3131FF", +"p{ c #BDBDEF", +"q{ c #767777", +"r{ c #767675", +"s{ c #717171", +"t{ c #6E6E6F", +"u{ c #6C6D6D", +"v{ c #6A6969", +"w{ c #676767", +"x{ c #656665", +"y{ c #676766", +"z{ c #727373", +"A{ c #5C5C5B", +"B{ c #6A6A6B", +"C{ c #7B7A7B", +"D{ c #626262", +"E{ c #575761", +"F{ c #8686BC", +"G{ c #8888FB", +"H{ c #6969FF", +"I{ c #6161FF", +"J{ c #5D5DFF", +"K{ c #5959FF", +"L{ c #8282FD", +"M{ c #9898F3", +"N{ c #A2A2E5", +"O{ c #A1A1DB", +"P{ c #A2A2D9", +"Q{ c #A7A7E3", +"R{ c #9F9FF3", +"S{ c #8080FD", +"T{ c #5353FF", +"U{ c #3939FF", +"V{ c #9090FC", +"W{ c #CFCFF5", +"X{ c #B1B1B2", +"Y{ c #777676", +"Z{ c #747575", +"`{ c #717271", +" ] c #6D6E6D", +".] c #6B6B6A", +"+] c #686767", +"@] c #646363", +"#] c #5D5D5C", +"$] c #777776", +"%] c #878788", +"&] c #969596", +"*] c #9A9898", +"=] c #9A9A99", +"-] c #646463", +";] c #7B7C7C", +">] c #7B7C7B", +",] c #707170", +"'] c #575756", +")] c #515159", +"!] c #8181B4", +"~] c #8686FB", +"{] c #5B5BFF", +"]] c #5757FF", +"^] c #4D4DFF", +"/] c #3B3BFF", +"(] c #3333FF", +"_] c #5F5FFD", +":] c #B1B1E8", +"<] c #ABACAB", +"[] c #787777", +"}] c #717170", +"|] c #696869", +"1] c #666565", +"2] c #646465", +"3] c #636363", +"4] c #605F5F", +"5] c #575758", +"6] c #8B8A8B", +"7] c #949393", +"8] c #7D7DAF", +"9] c #4F4FFF", +"0] c #4B4BFF", +"a] c #4343FF", +"b] c #4141FF", +"c] c #3D3DFF", +"d] c #3535FF", +"e] c #4545FF", +"f] c #9A9AFD", +"g] c #A8A8BB", +"h] c #A5A4A4", +"i] c #969797", +"j] c #787778", +"k] c #636364", +"l] c #606161", +"m] c #5D5C5C", +"n] c #585958", +"o] c #5C5C5D", +"p] c #868787", +"q] c #7F807F", +"r] c #53535D", +"s] c #7E7EB0", +"t] c #6D6DFF", +"u] c #5151FF", +"v] c #4949FF", +"w] c #3F3FFF", +"x] c #3737FF", +"y] c #9191FF", +"z] c #A6A6C2", +"A] c #747579", +"B] c #ADADAC", +"C] c #A8A9A8", +"D] c #9A9999", +"E] c #6A6A69", +"F] c #626261", +"G] c #5F605F", +"H] c #818081", +"I] c #868685", +"J] c #51515B", +"K] c #7C7CAF", +"L] c #8686F8", +"M] c #5555FF", +"N] c #A5A5F4", +"O] c #A6A6C1", +"P] c #737377", +"Q] c #7C7B7B", +"R] c #939292", +"S] c #8A8B8A", +"T] c #676768", +"U] c #848485", +"V] c #818281", +"W] c #7F7E7E", +"X] c #7B7B7A", +"Y] c #4E4E55", +"Z] c #7979AC", +"`] c #8484F7", +" ^ c #8686FC", +".^ c #ABABDA", +"+^ c #9393A5", +"@^ c #717174", +"#^ c #626263", +"$^ c #A5A6A6", +"%^ c #9F9FA0", +"&^ c #8B8C8B", +"*^ c #818180", +"=^ c #7E7D7E", +"-^ c #7C7C7D", +";^ c #787978", +">^ c #636463", +",^ c #4C4C51", +"'^ c #7676A6", +")^ c #8484F8", +"!^ c #8686FD", +"~^ c #9F9FD7", +"{^ c #A3A3D9", +"]^ c #A1A1E1", +"^^ c #A6A6E1", +"/^ c #A4A4D5", +"(^ c #A0A0C0", +"_^ c #8B8B9D", +":^ c #727279", +"<^ c #616160", +"[^ c #626161", +"}^ c #7C7D7C", +"|^ c #9B9A9A", +"1^ c #666667", +"2^ c #818182", +"3^ c #7D7E7D", +"4^ c #757475", +"5^ c #4D4D53", +"6^ c #7474A6", +"7^ c #7B7BFF", +"8^ c #8585FF", +"9^ c #9494BC", +"0^ c #64646C", +"a^ c #636368", +"b^ c #67676C", +"c^ c #69686D", +"d^ c #646466", +"e^ c #5E5E5F", +"f^ c #5F6060", +"g^ c #707171", +"h^ c #807F80", +"i^ c #8E8E8F", +"j^ c #979696", +"k^ c #959594", +"l^ c #686869", +"m^ c #7F8080", +"n^ c #7E7E7F", +"o^ c #7C7D7D", +"p^ c #737374", +"q^ c #7373A4", +"r^ c #8282F8", +"s^ c #8383FF", +"t^ c #535453", +"u^ c #5B595B", +"v^ c #5F5F5E", +"w^ c #747473", +"x^ c #838384", +"y^ c #908F90", +"z^ c #919192", +"A^ c #7D7C7D", +"B^ c #818282", +"C^ c #808081", +"D^ c #7F7F80", +"E^ c #4C4C54", +"F^ c #7272A3", +"G^ c #8080F4", +"H^ c #9292C5", +"I^ c #666670", +"J^ c #5B5A5C", +"K^ c #5C5D5D", +"L^ c #828181", +"M^ c #5A595A", +"N^ c #676667", +"O^ c #8A8A8A", +"P^ c #7A7A7B", +"Q^ c #6F6FA0", +"R^ c #8080F3", +"S^ c #7D7DFF", +"T^ c #9090C5", +"U^ c #646570", +"V^ c #9E9E9D", +"W^ c #838282", +"X^ c #767576", +"Y^ c #868585", +"Z^ c #797A79", +"`^ c #737273", +" / c #46464B", +"./ c #6C6D9E", +"+/ c #7D7DF6", +"@/ c #7C7CFD", +"#/ c #8F8FC6", +"$/ c #64646F", +"%/ c #7F7E7F", +"&/ c #989897", +"*/ c #9C9D9C", +"=/ c #6B6B71", +"-/ c #7B7BAC", +";/ c #7C7CFC", +">/ c #8F8FC8", +",/ c #61616E", +"'/ c #4D4F4E", +")/ c #9C9B9C", +"!/ c #9B9B9A", +"~/ c #747479", +"{/ c #8282B0", +"]/ c #7E7EF6", +"^/ c #8C8CCB", +"// c #61616F", +"(/ c #838483", +"_/ c #8D8D8C", +":/ c #959696", +"( c #74749F", +",( c #6969F0", +"'( c #8B8BFF", +")( c #7E7EE7", +"!( c #69698A", +"~( c #717172", +"{( c #75759A", +"]( c #6D6DE5", +"^( c #8383E8", +"/( c #696987", +"(( c #737398", +"_( c #6C6CE1", +":( c #7F80E6", +"<( c #8282A1", +"[( c #737399", +"}( c #6A6AE1", +"|( c #8F8FFF", +"1( c #7C7CED", +"2( c #7F7FA2", +"3( c #757577", +"4( c #72729A", +"5( c #6464E4", +"6( c #6F6FFD", +"7( c #7979F9", +"8( c #8080A8", +"9( c #727294", +"0( c #6464E1", +"a( c #7474FD", +"b( c #7777F4", +"c( c #565675", +"d( c #5E5ED3", +"e( c #9090FD", +"f( c #8F8FFA", +"g( c #8A8AFC", +"h( c #7979ED", +"i( c #7F7FA9", +"j( c #6565ED", +"k( c #7575FE", +"l( c #8B8BD5", +"m( c #7B7BAB", +"n( c #75759D", +"o( c #7A7AB1", +"p( c #8484DC", +"q( c #7575EE", +"r( c #7E7EA9", +"s( c #747477", +"t( c #7070E7", +"u( c #6868FD", +"v( c #9898F5", +"w( c #4C4C53", +"x( c #5E5E73", +"y( c #7B7BCE", +"z( c #7474F4", +"A( c #7C7CAB", +"B( c #6565F2", +"C( c #7777FC", +"D( c #7F7FFA", +"E( c #6E6EFB", +"F( c #666699", +"G( c #56565A", +"H( c #6262F7", +"I( c #8585FA", +"J( c #8484F3", +"K( c #7070FB", +"L( c #8181E4", +"M( c #6262F5", +"N( c #8080FB", +"O( c #8383F2", +"P( c #7171FE", +"Q( c #6F6FFA", +"R( c #8181E6", +"S( c #6969EC", +"T( c #6E6EFD", +"U( c #9A9AEF", +"V( c #7878F7", +"W( c #6C6CFB", +"X( c #8080E7", +"Y( c #6464FB", +"Z( c #7E7EFB", +"`( c #9999EA", +" _ c #7F7FEA", +"._ c #6B6BFC", +"+_ c #7B7BE6", +"@_ c #6C6BE5", +"#_ c #6161FE", +"$_ c #8585F2", +"%_ c #8D8DEC", +"&_ c #8282EB", +"*_ c #7777F2", +"=_ c #6969FE", +"-_ c #7A7AE7", +";_ c #7979E6", +">_ c #6C6CF1", +",_ c #6464F9", +"'_ c #6666FB", +")_ c #6565FA", +"!_ c #7070F1", +"~_ c #8787E7", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . . . ", +" + + + . . . . . . . ", +" + + + + + @ # # $ . . . . . . ", +" + + % + & # * = - ; > , ' . . . . . ", +" + + ) ! ~ { ] ^ / > ' ' ' ( _ : . . . . . . . . ", +" + + ) ) ) ) ) < [ } | 1 2 3 3 4 5 5 6 7 8 8 . . . . . ", +" + # ) ) ) ) ) 9 0 a b c 0 d e f 8 8 7 g 8 h i j k . . . . . . ", +" l # ) ) ) m n 0 o p q r s t u v w x { y z k k A A B C D f . . . . . . . ", +" # # ) ) E F 0 a G H I J K L v M N O P u Q R S T A U U f f f V V W X . . . . . . ", +" Y $ ) ) Z 9 0 ` H r J ...+.+.@.#.$.%.&.*.=.-.;.>.! ,.'.).!.~.{.~.].^.^./.(.. . . . . ", +" _.- ) 9 0 0 H p :.s t ..v M M N P %.&.*.<.[.}.}.|.1.2.3.4.5.6.7.8.9.^.(./.0.a.% b.. . . . . . . . ", +" - ; 9 n a c.H d.e. .u v f.N N P g.h.&.[.i.j.k.k.1.3.l.4.m.n.n.o.&.) p.,.q.r.s.t.u.v.w.x.y.y.z.. . . . . ", +" ; > A.0 a H q B.s ..v C.M D.N g.&.&.<.i.[.E.F.|.G.3.H.I.J.K.L.M.N.O.O.P.Q.R.S.T.U.^ V.y.y.W.z.1 1 V.. . . . . . ", +" X.> 0 a b H Y.s s L f.C.N P Z.h.&.&.`.[.j.k.1. +3.4.J.n.n.L.M..+++@+P.Q.R.#+$+%+&+i.*+=+-+;+>+,+V.'+)+)+)+!+. . . . . . . ", +" > ~+a c.{+B.e.u ]+^+/+(+P %.h._+:+:+[.k.k.<+[+4.4.I.}+n.|+M.1+O.O.2+Q.3+4+5+%+6+7+8+9+0+a+4.N b+c+d+)+e+f+g+^ ^ h+i+j+. . . . . . ", +" , ' c.H r s t u v M N N P k+_+l+[.[.m+k.k.[+3.4.n+I.}+o+M.M.p+q+r+Q.s+#+t+a+u+v+8+9+w+0+x+y+z+A+A+B+C+D+E+F+G+H+U.I+J+K+K+L+M+. . . . . . . ", +" ' ' :.r Y.s L v v N N N+g.&.O+<.[.-.P+k.1.3.4.Q+R+n.o+M.S+T+O.2+Q.Q.#+5+U+a+v+V+W+X+Y+Z+y+`+ @A+B+.@+@@@#@$@..%@&@*@=@-@L+;@>@>@,@'@)@!@. . . . . . ", +" ~@3 r s {@..v /+]@D.^@g.k+`.<.[.}./@k.2.(@l._@I.n.o+:@M.p+O.P.<@#+3+$+$+&+v+8+9+[@0+x+y+`+}@A+B+|@+@@@#@1@2@3@4@5@6@R.7@8@9@>@,@'@'@0@G+a@b@b@c@. . . . . ", +" 3 3 r s ..d@+.@.N D.g.g.`.e@=.;.E.k.2.3.H.f@}+J.g@o.h@i@O.@+j@Q.#+k@$+a+v+V+l@9+0+m@n@y+6@A+o@p@q@r@#@s@t@u@v@w@x@y@z@A@B@C@D@M E@F@G@H@b@I@b@=@J@K@L@. . . . . . ", +" 3 4 .]+M@M N N $.Z.&.N@`.[.O@>.k.1. +3.P@I.n.Q@:@M.N.R@2+P.S@4+T@$+a+U@V@W@X@w+0+y+y+Y@A+Z@|@q@`@#@ #$@.#4@w@w@x@+#@#B@##$#%#&#*#=#-#;#>#,#'#F+L@)#!#~#{#]#^#. /#/# ", +" (#5 ..v ^+M N P Z.g.l+`.<.}.}.k.1.1.3._#_@R+:#<#M.p+O.O.[#Q.s+}#$+a+v+8+8+|#0+Y+1#y+Y@-#2#.@q@@@3#4#$@3@u@5#6#x@+#7#B@C@8#$#9#0#a#b#c#c#d#b#w@.@u ,#q.{#{#e#f#g#/#/# ", +" 5 6 ..v ]@N $.P g.&.`.:+j.>./@|.3.3.Q+I.I.o+o+M.p+++O.[#Q.h#t+$+a+v+8+W@9+w+0+i#y+Y@ @j#B+.@@@k#s@l#3@3@m#n#6#x@7#o#p#$#%#%#*#=#=#q#r#s#t#u#v#w#x#x#y#z#A#B#C#f#/#/# ", +" D#6 M M E#P g.F#&.`.e@}.}.k.G#1.3.4.n+}+g@o+1+M.p+@+r+<@s+H#t+I#J#v+8+|#K#Y+i#y+L# @A+M#q@q@k# # #N#O#4@P#x@Q#R#p#C@S#T#9#*#0#=#U#c#V#d#W#X#v#Y#Z#`# $.$+$@$#$$$/#/# ", +" 5 6 M @.D.P g.%$&$:+;.m+*$1.=$3.4.-$J.o+g@M.N.R@O.P.S@Q.H#$+;$J#V@W+9+w+>$x+y+Y@,$A+B+q@'$)$#@!$3@v@4@w@6#y@+#@#p#$#~${$]$a#=#q#^$/$($t#_$w#x#`#:$y#<$[$}$|$1$$$/#/# ", +" 6 6 (+D.N+g.F#O+:+[.2$*$F.=$2.l.4.I.:#o+o+1+p+R@P.3$Q.#+$+;$J#v+4$5$|#Y+x+y+6$7$A+B+8$@@k##@l#N#3@4@w@9$y@0$a$b$c$d${$*#=#=#b#c#e$t#f$g$w#h$i$j$ $k$+$}$l$m$$$n$/#/# ", +" o$8 p$P g.&.q$<.[.}.k.G#1.3.r$n+R+n.Q@L.M.p+@+O.3$Q.#+H#$+U@v+4$s$9+t$n@u$`+Y@A+v$w$q@r@#@#@2@O#4@w@z#x$+#@#p#C@~$%#*#a#=#b#c#V#V#t#y$w#x#Z#Z# $.$z$[$A$B$C$D$E$/#/# ", +" 8 h P g.%$&.`.[.7@}.G#1.G.4.Q+I.n.n.o+p+p+F$P.<@S@#+a+9+8+v+G$H$I$K#x+J$L# @A+o@|@q@@@)$s@K$3@4@L$M$N$+#7#O$S#c$P$Q$*#a#R$q#c#t#($u#v#h$S$`#`#T$z$+$|$C$C$U$V$E$/#/# ", +" W$i ^@k+*.q$=.}.}.k.G#G.H._#f@X$Y$o+M.p+++2+P.<@#+8+y$[$Q$8$5$9+w+>$Z$y+Y@7$`$ %q@@@)$4#t@3@4@w@w@x@+#+#@#S#c$$#�#0#b#c#c#.%t#t#X#+%@%`# $T$T$[$|$|$#%$%%%] ] /#/# ", +" &%*%F#&.q$=%j.j.k.<+3.r$4._#-%g@|+M.1+O.O.P.<@s+H#u$;%V#@@o#y$K$y+x+>%Y@7$Z@.@q@@@#@#@$@3@v@P#z#N$,%a$o#S###{$&#*#=#'%c#r#V#)%y$!%w#`#`# $~%T$+$l${%C$]%^%/%] (%/#/# ", +" _%:%&.l+i.[.}.|.1.1.r$<%I.n.n.Y$M.S+p+[%[%j@#+H#t+0+}%4@g.|%s @#w#6#q@-#Z@w$q@@@k#s@$@t@O#m#w@6#y@+#@#C@1%T#%#*#2%3%4%s#V#t#g$y$w#+%`#`#5%T$T$|$A$C$;%6%/%7%(%8%/#/# ", +" 9%A *.:+[.}.*$|.1.3.-$-$I.:#Y$1+1+0%[%P.j@s+#+H#9+8$a%Y@4.b%c%d%e%f%V#y@B+|@r@@@#@$@2@w@6#P#x@+#+#7#S#C@$#%#g%=#b#h%c#V#d#t#y$w#w#Z#i%j%T$[$[$|$C$$%6%k%7%l%(%8%/#/# ", +" A A :+[.j.E.F.1.m%4.f@I.Q@L.<#M.T+O.n%o%s+#+$+a+7#p%q%r%D+0+s%t%u%v%w%W#k%]$4@u@$#t#w#f$b#x%$#@#@#C@y%d$z%*#=#2%q#c#r#)%A%y$w#x#B%`#k$5%+$@$|$C$;%6%k%C%D%E%F%G%/#/# ", +" A H%[.;.>.F.1.H.4.-$J.m.I%M.M.p+O.2+P.R.h#k@a+V@X#J%K%L%M%g.N%O%P%Q%R%S%T%U%C$C$;%B+$+A+=# $C$l$t#$#d$T#V%*#=#b#^$s#V#t#y$X#Y#W%`#X%T$Y%Z%|$B$`% &k%7%C%.&+&G%@&/#/# ", +" U U m+/@|.F.H.<%4.I.J.Q@o.M.N.O.n%P.Q.#+#&%+a+V+$&%&&&*&=&-&Q.;&>&,&'&)&!&~&+&p+{&]&^&/&(&_&:&g.=#<&Y%b#]$3%4%c#r#[&)%y$X#w#x#`#i%.$}&z$|${%|&6%k%1&2&3&+&4&5&G@/#/# ", +" U 6&>.<+1.2.<%<%J.n.K.:@M.T+++O.[#Q.#+$+$+a+V@K#p%7&8&5.9&0&$@a&b&c&d&e&f&g&A+M%1$b@h&>@G+J@g#e /#i&3#7%C$w#U#V#)%A%j&_$k&x#W% $l&T$m&l$B$;%;%k%7%7%l%+&<&n&G@o&/#/# ", +" p&D k.1.3.<%4.R+m.n.|+o.S+O.q+q&R.s+H#$+a+r&G$,$s&t&u&v&w&x&@#:&x a&y&z&A&B&I.C&$$$$D&f#f#^#q.=@a@f#E&`.k%7%`%V#F&y$G&Y#B%S$i%T$T$@$|$|$#%;% &7%l%H&+&I&J&K&L&o&/#/# ", +" p&f M&=$3.<%R+X$n.o+M.S+N&n%P.Q.#+#+5+a+u+4$8+q@O&P&Q&R&,.S&+#T&U&. *+V&W&X&Y&Z&`&`&G@G@G@F%F%F% *(%] b%P..*+*;%f$G&w#x#W%`# $z$T$m&|$C$;%U$@*C%l%+&+&n&n&#*o&`&/#/# ", +" f $*(@<%-$I.m.n.o+o.p+R@[%[#P.#+H#$+5+v+v+8+K#3#%*&***Q.=*-*4@@+1.3.8+3@#+&.;*e e e >*c%,*Z&Z&Z&'*'*F@)*0 '*!*7%T$+%@%`# $ $T$[$~*|$;%;%k%{*@*l%+&<&<&]*^*/*8.(*/#/# ", +" V V 3.4.n+-%n.:@|+S+_*O.n%Q.Q.#&$+;$J#7+W@H$:*1%<*[.[*x+h#$+w#y+*$N }*|*E@1*2*3*4*5*6*E+7*8*8*9*C&C&2*J.0*e 4*`.a*b*x#i%<$5%z$Z%|$$%;%;%{*2&D%+&}%4&c*#*/*d*`&y /#/# ", +" V W r$_#J.n.o+o+S+p+O.2+Q.#+h#$+a+%+4$8+W@K#2#;%o+e*-+D+f*g*[*,#h*i*j*k*j*l*/&j*m*n*(&(&(&l*l*l*o*o*&@x+,#p*4*x |$C$W% $.$z$|$q*B$#%;%%%7%l%.&+&<&J&r*s*t*a%y u*/#/# ", +" v*{.-$J.n.o+C+.+p+_*M.P.R.H#T@I#v+v+8+9+9+0+4#<&w*x*x*x*_&y*^&-+z*A*=&=&7.y*B*C*| D*E*E*E*2*2*2*{ E*F*M.]&j*/&z*S@G* $k$H*[$|$I*;%;%1&<*l%.&+&<&]*r*J*t*a%K*u*'*/#/# ", +" W ~.I.n.o+C+M.p+T+L*M*N*O*2$C+#&v+4$8+K#0+m@o@]%`./#P*Q*R*P*Q*Q*R*S*]&R*i*T*i*U*i*=&=&V*=&=&=&W*y*X*Y*w y*7.| E*Z*`*H*+*[$~*C$`%`%k%7%7%.&I& =]*#*.=t*a%+=@=u*#=/#/# ", +" ~.$=R+o+|+M.p+F$2+%=&=*===-=;=>=,=8+[@0+I$y+'=)=U$k.,#R*_&M%M%Q*!=~=1*{=]=^=,#/=(=_=:=<=[=]&]&]&R*}=B+|%|=|=i*9&1=`*C$}$|$A$2=6%k%{*C%3=+&4=5=r*#*t*6=7=`*@='*'*/#/# ", +" ].^.Q@o+h@N.++q+3$8=9=0=a=b=c=d=e=f=g=h=i=j=k=v+l=+&`+U&m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C={&D=E==+M.&.X*[=Q*_&F=$#`*|$m&C$C$;%k%<*2&G=3&H=I=r*#*t*J=a%K=L=M='*N=/#/# ", +" ^.^.o+o.p+F$O.<@<@O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-R&3@[-M%_&X*}-w@`*k%~*q*C$#%k%<*7%G=+&+&5=]*^*|-J=J=`*@=1-2-Z&3-/#/# ", +" 4-(.:@p+p+O.P.j@Q.#+;$5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-E-F-3.s%_&1*}-$@a%7%Z%A$C$;%%%1&7%l%G-}%H-]*I-J*t*a%`*J-K-L-M-3-N-/#/# ", +" (.O-N.R@O.q+S@Q.#+t+%+6+P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';);!;~;{;];^;/;(;_;:;t M%e*w*+#M-<*~*|$C$;%U$k%<*l%G=H=<&]*c*t*d*a%`*@=1-2-M-<;[;c%/#/# ", +" (.).p+O.2+j@R.};}#5+J#v+8+|;1;2;3;4;v+Y@A+5;J#6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;! b#L-;%|$m&x;C$]%1&7%l%3&+&<&]*c*a*t*a%`*`*y;L-z;A;<;B;C;/#/# ", +" O-D;O.n%[#P.#+$+%+&+v+v+W@X+0+x+y+y+ @A+o@|@q@@@3#$@E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>%%a%I*}$Z%B$;%;%k%7%l%G-+& =I=G*s*t*J=+>`*@=L-M-M-<;@>C;e /#/# ", +" % #>[%P.Q.#+#&;$u+v+8+9+9+$>x+i#Y@Y@ @ %p@q@%>&>l#2@.#4@*>=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4> $Z%B$C$U$%%<*l%l%I&<&5>G*6>t*7>`*8>9>L-2-0>a>@>b>e c>/#/# ", +" % b.P.o%h#H#$+a+6+G$W@9+$>x+x+`+Y@6@o@w$'$r@#@l#K$O#O#4@d>x@e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>A>B>C>x#|&/%k%D%3&E%<&]*]*/*t*6=7=J-@=L-2-M-<;@>D>E>F>F@/#/# ", +" u.u.S@#+#&$+a+6+G$W@|#w+x+y+>%Y@7$j#w$q@@@@@#@$@3@v@m#w@x@z@G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,l%+&H=n&]*#*t*t*a%`**,y;2-M-<;=,-,;,>,,,,,/#/# ", +" u.w.s+t+;$a+a+7+8+9+0+>$x+'=Y@,$B+B+q@@@@@#@',N#O#),M$x@+#@#!,C@$#~,x%{,],^,/,(,_,:,<,[,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,<&<&r*#*/*t*K*+>@=1-L-e,<;f,D>g,>,>,,,h,/#/# ", +" i,j,#&$+U+6+v+W+s$X+$>x+'=6$}@o@p@q@'$k#4#$@k,3@5#M$x@z@+#@#C@S#~$%#*#]$3%b#c#V#l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,t*a%`*`*K-L-M-<;a>J,;,>,K,L,M,N,/#/# ", +" j,9.H#a+u+v+8+l@9+0+n@Z$L# @O,B+.@'$%>#@$@N#I>4@),d>N$a$A@P,##$#V%*#0#2%b#Q,V#V#t#y$X#Y#S$v#5%T$T$T$R,S,T,U,V,W,X,Y,Z,`, '.'+'@'#'$'`*y;L-M-M-<;%'&'>,*'='-'C&;'/#/# ", +" >','a+&+v+8+l@K#$>x+y+Y@Y@j#v$.@@@@@''$@K$3@L$L$M$,%)'@#C@$#$#9#*#!'2%4%c#V#V#t#y$w#Y#x#`# $.$T$[$|$C$y#~'{']'^'/'('_':'<'['}'|'1'2'3'3&0><;4'D>;,g,5'='L,6';'7'/#/# ", +" 8'y.a+7+9'8+9+>$Z+J$`+Y@A+B+B+0'@@)$l#k,3@4@w@M$x@+#@#p#C@$#%#*#a'2%b#c#V#.%t#y$v#h$x#W%y#<$}&l$|$q*2=;%]%7%b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'a>4';,g,q'r'-'s't'T T /#/# ", +" y.u'E@D+v'$+0+x+y+6$`+A+v$|@+@@@#@$@t@3@4@w@x@x@,%7#p#C@$#%#z%a#2%b#w's#V#W#y$x'k&y'`#y#.$T$+$|$z'I*6%%%7%3=l%}$A'B'C'D't*a%+&E'F'G'H'I'J'J,b>E>K,K,-'-'6'K'L'8*/#/# ", +" M'1 1 1 '@N'8*O'=$Y@A+A+B++@r@k#l#$@N#4@4@M$x$z@+#C@p#1%%#*#]$'%b#w'P'V#)%W#w#+%x#`# $l&T$[$l$q*C$;%%%Q'7%l%+& =<&R'S'T'a%a%U'@=H-V'W'X'Y';,E>>,r'Z's'`' ).)+)E+/#/# ", +" 1 V.V.'+)+)+@)f+f+i*S.-%#+Y@$@k,t@u@m#w@x@+#+#@#1%y%8#z%#)=#3%q#c#V#t#W#y$h$k&i$:$ $T$[$l$|$C$;%^%7%7%C%+&+&<&G*I-a*/*+>`*@=L-L-L-a%$)%);,q'r'&)*)6'=)-).)9@E+/#/# ", +" d+@)e+f+;)^ ^ i+U.y /#>)< p+4@w@x@+#G>@#C@$#~$%#*#=#,)w'e$V#V#j&y$w#x#x#j$ $T$+*~*|$C$;%^%<*7%l%+&4=<&]*^*6>t*a%`*')y;))p'!)@>@>;,~){)&)])`'^)/).)()_)4*/#/# ", +" &.^ i+U.H+K+:)<)b@D$[)1*! +#@#C@c$T#9#*#=#'%b#r#V#.%u#y$w#k&B%i% $T$H*~*|$C$I*6%7%7%3&.&+&<&J&c*a*6=7>+=@=@=})M-|)1)2)2)3)r'4)-'^)5).)6)7)8)_)4*/#/# ", +" *.P N $.P ^@K+9)<)L+L+>@>@0)'@'@,,a)j.v+1@a#=#b#c#V#b)A%y$w#@%x#j$y#T$T$[$|${%I*]%<*{*7%.&+&<&]*G*J*6>c)7=@=L-1-M-d)<;@>;,E>*'r'-'e)5)/).)6)f)g)4*h)/#/# ", +" `.i)i)P P g.F#&.&$`.:+[.7@>@j)'@)@k)a@l)b@g#=&|%F==%9#V#A%y$w#Y#i$i% $<$T$[$l$C$#%;%k%7%2&E%+&4=I=c*s*t*a%K=J-@=m)))e,a>@>;,g,>,r'*)6'K'K'n)()8)8)o)p)q)/#/# ", +" j.i.k+N+g.g.g.g.&.l+q$`.[.}.}.M&F.3.3.4.G+b@b@r)=@s)t)q.(%y { u)Y@w#B%`# $<$z$[$|$C$C$ &k%7%7%E%+&<&5=]*J*v)J=a%`*@=9>M-M-<;@>b>q'K,&)Z'6'6'w).)x)8)g)y)z)q)3*/#/# ", +" A)-.`._+*.O+f*`.f*`.e@[.[.-.}.}.F.1.3.<%4.I.-%o+L.h@=@B)L@L@C)q.{#D)^#C#s%E)K#4@_$|$z'$%;%k%k%D%l%+& =I=]*c*t*J=a%@=J-1-M-M-<;@>;,;,{)r'&)e)`'K'F)x)()y)o)G)z)H)o*/#/# I) ", +" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.J)K)L)f#$$$$$$M)N)O)) 3@%%Q'P)E%+&}%n&^*^*t*6=a%`**,M=Q)M-!)f,%'R)>,S)-'T)6'U)F)7)V)8)o)G)z)z)W)W)/#X* X)Y) ", +" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%Z)/#/#/#/#/#`)Q*x*N'D& !D$E$E$.!+!@!C&#!}.@*$!5=]*I-t*%!a%K=8>&!z;M-0>@>%'q'*!K,Z'])=!-!.)n)f)8);!z)z)z)z)W)>!/#,!'!)! ", +" o+I.4.m%[+ +=$G#|.!!|.k.M&|.F.k.<+!!(@G.H.4._#_#I.n.:#o+C+.+++2+P.~!/#/#/#/#/#B#R*i*y*D*{ E${!(%]!^!F%5&G@G@+!j*F=S@w@`#7>`*K=@=L-z;<;/!-,%)R)r'r'-'6'=)w).)()(!g)_!z)z)z)z):!M)>,>,u!T)=!K'/).)()v!8)w!z)z)z)z)z)z)x!y!z!A!B! C! ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#D!E!F!G!E*j*H!3*W)(&{ | =&x*[=I!/#/#/#J!Z&Z&Z&c%c%e F>K!,,L!p$3@@%M-K'.)n)f)8);!z)z)z)z)z)z)z)M!N!O!P!Q! R!R! ", +" P./=S!T!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=U!9&V!7.2*W!X!(&j*Y!Z!`!x*Q*!=/#/#/#/#/#/# ~P.8!c>e ,,M,.~C&;'T.+~@~g. $8)#~#~z)z)z)z)z)z)G)$~%~&~P!*~ R!=~ ", +" P.G%[;o*F!-~ ~T!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`. ~/#/#/#M%;~x*=&7.E*2*{ >~| y*^&,~'~)~/#/#/#/#/#/#1*P.P.P.P.P..~;'9*8*8*9@E+q)>!m!0!v+6'z)z)z)z)z)!~~~{~]~^~/~ (~_~ ", +" P.c%E+E+E++)4*:~V!B#<~w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.<~/#!=_&R*i*V*E&7.| 7.[~-+x*}~B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.|~+)E+6*4*4*h)3*o*1~Q*p.x+b##*2~3~4~5~6~7~8~ 9~0~ ", +" P.a~p)3*R*/&b~c~d~X!j*e~f~E!g~Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+N)h~i~j~x*i*T*k~-+^&x*R*_&`)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P.l~l~o*M):!l*m~n~o~p~q~r~s~t~u~v~w~P.P. x~y~z~A~ ", +" P..~1~o*%@!*B~;*C~T*j*{ D~E~F~| E*G~H~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.I~-*} J~K~R*L~9&]&j~E!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o*l*(&m~M~N~x!O~r~t~P~Q~R~S~P.P.P.P.P.P.P. T~U~V~W~ ", +" P.X~l*(&!*}-Y~0*Z~`~T![- {.{=&E&=&=&=&y*+{E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$@{s !*. a)+~#{${%{%{/#/#e*1*/#e*&{. *{K.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.={/&-{;{>{t~P~,{6~'{){!{P.P.P.P.P.P.~{{{]{,{^{/{ ", +" P.({/&/&}-*+_{F=F=T!:{5.V&S.<{-*[{}{|{9&R*R*1{2{`)3{4{s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r 5{}*i&V&`~6{7{O):&[*D+8{Z)9{) P+J.P.P.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.0{a{b{P~c{,{d{5~e{f{g{h{i{j{k{l{m{n{,{o{,{p{ ", +" P.1~:~:~*+q{r{`~`~}=s{*{t{u{p.v{w w{x{y{z{S&N)${h~${D!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M A{! Z)B{5.Z~C{[-8{-*S.)*D{0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.E{F{G{s~H{,{I{J{K{c{L{M{N{O{P{Q{R{S{T{o{U{V{W{ ", +" P.X{2*>~Y{Z~Z{T!T!`{5.t{ ]p..].*+]Z)}*@]g*! m #]Q $]%]&]-~*]=]-~|%. S.-]v I.a+$+#+Q.P.P.P.P.P.P.P.p.s{$];]>]0*,]p.Z)1=a ']*.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.)]!]~]s~H{c{V~d{{]]]T{T{{]V~c{V~{]^]/](]o{_]:] ", +" P.-{<]| !@[]T!-*-*}]V&4{S.< i&|]y{1]2]3]1=4]9 a H I 5]M :.|]. 6]E@7]7]<~>)}-s{Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.)]8]b{5~P~c{,{I{J{{]]]T{9]0]^{a]b]c]U{d]o{e]f]g] ", +" P.j*7.[~A*A*h]i]U&j]w*S.p.< .*w Z)Y&k]D{l]) A.m]H n]M@M P g.`.}.7@o]a!D+|%+~ ~p]q]}-T!3][.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.r]s]~]5~t]H{,{V~d{{]K{T{u]^]v]e]a]w]c]x]x]u]y]z]A] ", +" P.B]C]G!e*h]=&T.V*V*x*D];*8{E]w{Z)}*3]F]! ) 0 A{r .v ]@N+&.`.-.1.3.4.n.<#}.G]:{H]I]>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.J]K]L]Q~t~P~c{V~d{J{K{M]u]9]0]^{a]w]c]c]^]Q~N]O]P]1] ", +" P.o!-+-+%@!*Q]!@R]!=x*x*c+j~Q*e*S]*+T]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+U]S&V]:&W]=*X]Y~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Y]Z]`]]~t~t]H{,{I{J{{]]]T{9]]]t~t]I{d{t] ^R{.^+^@^#^@] ", +" P.7.i*$^!*}-Y~0*Z~`~-*. x&,.`)_&K~%^I!e*&^}-T]c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)*^D+=^-^. 6{*+;^8{-*>^g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.,^'^)^6~s~t]P~c{V~d{{]K{M]u]M]!^~^{^]^^^/^(^_^:^D{! <^[^ ", +" P.=&]&]&}-*+_{F=F=T!:{5.V&S.<{5.}^&^/=/#X*|^e*s%&{!*1^v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&2^:&H~3^;]X]p=*+$]0*4^T!`~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.5^6^L{7^5~t~P~H{,{I{J{K{]]T{K{8^9^0^a^b^c^d^e^A{#]9 ) 5{f^ ", +" P.2{Q*Q**+q{r{`~`~}=s{*{t{u{p.v{w w{x{y{g^h^i^C~/=j^6.k^ ~b%l^M [+4.Q@C+p+2+P.P.P.P.a)[*m^n^o^b%!*}-*+$]F=p^-*-*-*T!`~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.P.P.P.P.P.P.Y]q^r^7^Q~s~t]H{c{V~d{{]]]M]K{s^v~k{t^N M v ..K u^:.a 0 n v^ ", +" P.c+_&_&Y{Z~Z{T!T!`{5.t{ ]p..].*+]Z)}*@]g*! m #]1]w^x^y^z^#!&@<~|%A^.*N 0%P.P.P.P.P.B^C^D^n^[-. !*}-[]-&F=T!-*-*-*-*-*-*-*T!`~F=-*.*0 P }.I.O.Q.Q.Q.P.P.P.P.P.P.E^F^G^7^]~5~t~P~c{,{I{J{K{M]K{&~H^I^O+&.%.O N ^+5]{@s r J^o]K^ ", +" P.R*D!`)L^Y{T!-*-*}]V&4{S.< i&|]y{1]2]3]1=4]9 a H I 5]M M^N^[]!@+~ ~|%O^x&O)< ..n.P.V]:&D+O)b%P^6{;^8{0*`~T!-*-*-*-*-*-*-*-*-*-*-*T!`~F=5.w{9 ..&.I.P.#+Q.Q.P.w%Q^R^7^]~Q~s~t]H{,{V~d{{]]]]]S^T^U^>.i.`.&.g.#.N +.v ..s Y.r H ", +" P.[=!=V^!=!==]<~W^X^w*S.p.< .*w Z)Y&k]D{l]) A.m]H n]M@M P g.`.}.}.{+< [ ~ p]Y^O'S&[-*^D^O)[-%@!*Z^@~0*F=`~`^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!`~`~V&w{1=H g.n. /./+/S^6~Q~s~t~P~c{V~d{J{K{K{@/#/$/1!2.}.-.<.O+g.P $.N I~v .. .s ", +" P.%/7]&/=]*/.{X*X*X*|^,#S&F=E]w{Z)}*3]F]! ) 0 A{r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%B^:&D+O)-^. !**+8{0*F=T!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!T!T!w*=/-/;/S^7^]~5~s~t]H{,{I{d{{]K{7^>/,/I.n+<%M&'/}.[.`.&.g.P N N M ']]+ ", +" P.8+v+1.Z)D+ ~,#/=1*)/!/e*s%s%,#O'F=T]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+H~[-. !*v&*+q{F=`~T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*~/{/]/&~S^6~Q~s~t~P~c{V~d{J{{]6~^///S+o+n.f@r$G.!!}.[.`.*.F#g.P O N M ", +" P.#+8+9+#+_+w b%(/_/=+e*s%C~i]:/.}.[.<. ", +" $+P.4.g.H w{r/&{s/,#a&&{O^t/;*x&0!*+u/Z.0%P.P.P.P.P.b%. !*}-*+8{0*F=T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*v/w/x/&~s^&~7^6~Q~s~t]H{c{V~d{Q~y/z/P.P.P.P.P.P.P.O.p+M.o+Q@n.I.-$<%[+<+k.k.}. ", +" Q.O.I.F.N w{b% ~+~|%A/U&~ !@O'S&a)B/w M o+P.b%h/!*C/8{0*D/p^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*E/F/G/&~8^^~S^6~Q~5~t~P~c{,{I{5~H/I/P.P.P.P.P.P.P.P.P.P.O.p+M.o+g@m.I.4.l.[+2.<+ ", +" P.O.M.o+g.w =*J/U&K/L/a)M/:&D+|/-^;^. !*}-*+0*N/O/T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*P/Q/R/&~8^s^&~7^]~5~t~t]H{,{I{s~S/T/P.P.P.P.P.P.P.P.P.P.P.P.O.O.p+M.|+Y$-%}+I.-$4. ", +" P.P.P.P.p+N < =*U/*^M/O)0/-^%@P^}-v&[]0*V/W/}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/Y/Z/&~P!s^&~S^]~Q~5~t~H{c{V~s~`/ (P.P.P.P.P.P.P.P.P.P.P.P.P.P.r+[%O.p+M.M.L.K.-$4. ", +" P.Q.#+$+M. .Z*.(%@!*. +(v&j]@(F=b/z{-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*#($(%(&~O!8^^~S^7^]~5~t~t]H{,{&(*(=(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+O.++o+n. ", +" P.#+$+a+f@H -(`~W/;(N/T&T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/>(,(@/'(P!s^&~S^]~5~s~t]P~c{t~)(!(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.p+o+ ", +" P.Q.$+a+#+1.H w{< S.s{T!T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*~({(](S^'(O!8^^~S^7^]~s~t~P~c{t~^(/(<@P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", +" P.#+a+a+P.k.s 3]w{p.s{`~T!-*-*-*-*-*-*-*-*-*-*-*((_(S^A!'(8^s^&~7^6~Q~t~t]H{t~:(<(f@P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", +" Q. $+M.}...) Z)S.T!`~T!-*-*-*-*-*-*[(}(7^|('(P!s^&~7^6~Q~s~t]P~t~1(2(3(n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", +" Q.o+}.M 0 Y&V&F=`~T!-*4(5(6~|(A!O!8^^~S^7^Q~5~t~P~6(7(8(P/F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", +" #+P.n.k.&.H w{9(0(a(y]|('(P!s^&~S^6~Q~s~t]t~b(3/P/-*F=n.P.P.P.P.P.P.P.P.P.P.P.P.R@ ", +" Q.O.c(d(o/e(f(g(O!8^^~S^6~Q~5~t~t~h(i(P/-*-*F=n.P.P.P.P.P.P.P.P.P.P.@+ ", +" j(k(l(m(n(o(p(^~&~7^]~5~s~t~q(r(s(-*-*-*F=n.P.P.P.P.P.P.P.P. ", +" t(u(v( w(x(y(@/6~Q~s~t~z(A(2/-*-*-*-*F=n.P.P.P.P.P.P. ", +" B(C( D(]~5~t~E(F(G(N%5.T!T!-*F=n.P.P.P.P. ", +" H(I( J(k(s~K(L( /Q.#+#+n...w{T!n.P.P. ", +" M(N( O(P(Q(R( P.#+$+Q.P. ", +" S(T(U( V(W(X( ", +" Y(Z(`( _._+_ ", +" @_#_P($_%_&_*_=_-_ ", +" ;_>_,_'_)_!_~_ ", +" ", +" "}; diff --git a/src/Mod/Ship/Icons/SimIco.xcf b/src/Mod/Ship/Icons/SimIco.xcf new file mode 100644 index 0000000000000000000000000000000000000000..d4e42da2b48d2045c836c2a6d8ee3b536ae05909 GIT binary patch literal 47149 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 literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index aa8a409af..442ef5f32 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -35,12 +35,16 @@ class ShipWorkbench ( Workbench ): list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] self.appendToolbar("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Loading",list) + self.appendToolbar("Weights",list) + list = ["Ship_CreateSim"] + self.appendToolbar("Simulation",list) # Menu list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] self.appendMenu("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Loading",list) + self.appendToolbar("Weights",list) + list = ["Ship_CreateSim"] + self.appendToolbar("Simulation",list) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index d1c50cfe3..bb71e262b 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -5,6 +5,7 @@ data_DATA = \ InitGui.py \ ShipGui.py \ Instance.py \ + SimInstance.py \ TankInstance.py nobase_data_DATA = \ @@ -37,6 +38,11 @@ nobase_data_DATA = \ Icons/Weight.png \ Icons/Weight.xcf \ Icons/Weight.xpm \ + Icons/SimIco.xcf \ + Icons/Sim.xpm \ + Icons/SimCreateIco.png \ + Icons/SimCreateIco.xcf \ + Icons/SimCreateIco.xpm \ Icons/Tank.png \ Icons/Tank.xcf \ Icons/Tank.xpm \ @@ -81,6 +87,9 @@ nobase_data_DATA = \ tankGZ/Plot.py \ tankGZ/TaskPanel.py \ tankGZ/TaskPanel.ui + simCreate/__init__.py \ + simCreate/TaskPanel.py \ + simCreate/TaskPanel.ui CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index c97f1e908..52407b824 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -120,6 +120,18 @@ class GZ: ToolTip = str(Translator.translate('Transversal stability GZ curve computation')) return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} +class CreateSim: + def Activated(self): + import simCreate + simCreate.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimCreateIco.png" + MenuText = str(Translator.translate('Create a new simulation')) + ToolTip = str(Translator.translate('Create a new simulation in order to process later')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) FreeCADGui.addCommand('Ship_CreateShip', CreateShip()) FreeCADGui.addCommand('Ship_OutlineDraw', OutlineDraw()) @@ -128,3 +140,4 @@ FreeCADGui.addCommand('Ship_Hydrostatics', Hydrostatics()) FreeCADGui.addCommand('Ship_Weights', SetWeights()) FreeCADGui.addCommand('Ship_CreateTank', CreateTank()) FreeCADGui.addCommand('Ship_GZ', GZ()) +FreeCADGui.addCommand('Ship_CreateSim', CreateSim()) diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py new file mode 100644 index 000000000..82556cacf --- /dev/null +++ b/src/Mod/Ship/SimInstance.py @@ -0,0 +1,617 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import time +from math import * + +# COIN +from pivy.coin import * +from pivy import coin + +# FreeCAD +import FreeCAD,FreeCADGui +from FreeCAD import Part, Base, Vector + +# Ship design module +from shipUtils import Paths, Translator, Math + +class FreeSurfaceFace: + def __init__(self, pos, normal, l, b): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param Element length (distance between elements at x direction) + @param Element beam (distance between elements at y direction) + """ + self.pos = pos + self.normal = normal + self.area = l*b + +class ShipSimulation: + def __init__(self, obj, fsMeshData): + """ Creates a new simulation instance on active document. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + """ + # Add uniqueness property to identify Tank instances + obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True + # Compute free surface mesh + self.createFSMesh(obj,fsMeshData) + # Add shapes + shape = self.computeShape(obj) + if not shape: + obj.IsShipSimulation=False + return + obj.Shape = shape + obj.Proxy = self + + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipSimulation": + FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj) + + def createFSMesh(self, obj, fsMeshData): + """ Create or modify free surface mesh. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + """ + # Study input object + try: + props = obj.PropertiesList + props.index("IsShipSimulation") + if not obj.IsShipSimulation: + msg = str(Translator.translate("Object is not a valid ship simulation.\n")) + FreeCAD.Console.PrintError(msg) + return + except ValueError: + msg = str(Translator.translate("Object is not a ship simulation.\n")) + FreeCAD.Console.PrintError(msg) + return + # Get areas and number of elements per direction + L = fsMeshData[0] + B = fsMeshData[1] + N = fsMeshData[2] + A = L*B + area = A/N + l = sqrt(area) + b = sqrt(area) + nx = int(round(L / l)) + ny = int(round(B / b)) + print(l,b,nx,ny) + # Start data fields if not already exist + props = obj.PropertiesList + try: + props.index("FS_Nx") + except ValueError: + obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", str(Translator.translate("Free surface number of elements at x direction"))).FS_Nx=0 + try: + props.index("FS_Ny") + except ValueError: + obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", str(Translator.translate("Free surface number of elements at y direction"))).FS_Ny=0 + try: + props.index("FS_Position") + except ValueError: + obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", str(Translator.translate("Free surface elements position"))).FS_Position=[] + try: + props.index("FS_Area") + except ValueError: + obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", str(Translator.translate("Free surface elements area"))).FS_Area=[] + try: + props.index("FS_Normal") + except ValueError: + obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", str(Translator.translate("Free surface elements normal"))).FS_Normal=[] + # Fill data + obj.FS_Nx = nx + obj.FS_Ny = ny + pos = [] + areas = [] + normal = [] + for i in range(0,nx): + for j in range(0,ny): + pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) + areas.append(l*b) + normal.append(Vector(0.0,0.0,1.0)) + obj.FS_Position = pos[:] + obj.FS_Area = areas[:] + obj.FS_Normal = normal[:] + + def FSMesh(self, obj): + """ Get free surface mesh in matrix mode. + @param obj Created Part::FeaturePython object. + @return Faces matrix + @note areas and normals will recomputed. + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + # Transform positions into a mesh + pos = [] + for i in range(0,nx): + pos.append([]) + for j in range(0,ny): + pos[i].append(obj.FS_Position[j + i*ny]) + # Recompute normals and dimensions + normal = [] + l = [] + b = [] + for i in range(0,nx): + normal.append([]) + l.append([]) + b.append([]) + for j in range(0,ny): + i0 = i-1 + i1 = i+1 + fi = 1.0 + j0 = j-1 + j1 = j+1 + fj = 1.0 + if i == 0: + i0 = i + i1 = i+1 + fi = 2.0 + if i == nx-1: + i0 = i-1 + i1 = i + fi = 2.0 + if j == 0: + j0 = j + j1 = j+1 + fj = 2.0 + if j == ny-1: + j0 = j-1 + j1 = j + fj = 2.0 + l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) + b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) + xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, + obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, + obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) + yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, + obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, + obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) + n = Vector(xvec.cross(yvec)) # Z positive + normal[i].append(n.normalize()) + # Create faces + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) + # Reconstruct mesh data + for i in range(0,nx): + for j in range(0,ny): + obj.FS_Position[j + i*ny] = faces[i][j].pos + obj.FS_Normal[j + i*ny] = faces[i][j].normal + obj.FS_Area[j + i*ny] = faces[i][j].area + return faces + + def computeShape(self, obj): + """ Computes simulation involved shapes. + @param obj Created Part::FeaturePython object. + @return Shape + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + mesh = self.FSMesh(obj) + planes = [] + # Create planes + for i in range(1,nx-1): + for j in range(1,ny-1): + v0 = (mesh[i][j].pos + mesh[i-1][j].pos + mesh[i][j-1].pos + mesh[i-1][j-1].pos).multiply(0.25) + v1 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j-1].pos + mesh[i+1][j-1].pos).multiply(0.25) + v2 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j+1].pos + mesh[i+1][j+1].pos).multiply(0.25) + v3 = (mesh[i][j].pos + mesh[i-1][j].pos + mesh[i][j+1].pos + mesh[i-1][j+1].pos).multiply(0.25) + p = Part.makePolygon([v0,v1,v2,v3,v0]) + planes.append(Part.makeFilledFace(p.Edges)) + # Join into a compound + return Part.makeCompound(planes) + +class ViewProviderShipSimulation: + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self + + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return + + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return + + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes + + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Flat Lines" + + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode + + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None + + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None + + def getIcon(self): + return """ + /* XPM */ + static char * Sim_xpm[] = { + "32 32 301 2", + " c None", + ". c #CCCCCC", + "+ c #A9A9A9", + "@ c #989898", + "# c #A1A1A1", + "$ c #C3C3C3", + "% c #C1C0C1", + "& c #BFBFBF", + "* c #A7A7A7", + "= c #808080", + "- c #5C5C5C", + "; c #565655", + "> c #4E4E4E", + ", c #676767", + "' c #898989", + ") c #B6B5B6", + "! c #BABABA", + "~ c #B9B9B9", + "{ c #A5A5A5", + "] c #7E7E7E", + "^ c #595A59", + "/ c #575656", + "( c #535353", + "_ c #505050", + ": c #4D4D4C", + "< c #474747", + "[ c #404040", + "} c #4D4D4D", + "| c #787878", + "1 c #B8B7B8", + "2 c #B6B6B6", + "3 c #888888", + "4 c #7C7C7C", + "5 c #575657", + "6 c #535354", + "7 c #4E4D4E", + "8 c #4A4A4A", + "9 c #444444", + "0 c #414141", + "a c #3E3E3E", + "b c #393938", + "c c #313131", + "d c #393939", + "e c #636363", + "f c #ABABAB", + "g c #B3B3B3", + "h c #848484", + "i c #787979", + "j c #545454", + "k c #515151", + "l c #4B4B4B", + "m c #484748", + "n c #3B3B3B", + "o c #383838", + "p c #353535", + "q c #323232", + "r c #2F2F2E", + "s c #2A2A2A", + "t c #222323", + "u c #252625", + "v c #AFAFAF", + "w c #767676", + "x c #484848", + "y c #454545", + "z c #424242", + "A c #3F3F3E", + "B c #3B3B3C", + "C c #393838", + "D c #2F2F2F", + "E c #2C2C2C", + "F c #292929", + "G c #262626", + "H c #222222", + "I c #1F1F20", + "J c #171716", + "K c #959595", + "L c #747474", + "M c #4E4E4F", + "N c #4C4B4C", + "O c #484849", + "P c #424243", + "Q c #282828", + "R c #525251", + "S c #373737", + "T c #353636", + "U c #333233", + "V c #30302F", + "W c #2C2D2D", + "X c #232323", + "Y c #201F20", + "Z c #1D1D1D", + "` c #151414", + " . c #717272", + ".. c #4C4C4C", + "+. c #484949", + "@. c #464545", + "#. c #424343", + "$. c #3A3A3A", + "%. c #5D4A49", + "&. c #7E7E86", + "*. c #56569F", + "=. c #3E3E41", + "-. c #757575", + ";. c #575757", + ">. c #222221", + ",. c #262627", + "'. c #242423", + "). c #212020", + "!. c #1A1A1A", + "~. c #121212", + "{. c #939493", + "]. c #6F6F6F", + "^. c #494949", + "/. c #464646", + "(. c #434343", + "_. c #554545", + ":. c #686863", + "<. c #939394", + "[. c #BDBDBD", + "}. c #202021", + "|. c #1E1E1E", + "1. c #171718", + "2. c #0F0F0F", + "3. c #929292", + "4. c #6C6D6D", + "5. c #464746", + "6. c #525F73", + "7. c #444648", + "8. c #3D3D3D", + "9. c #2D2C2A", + "0. c #A1A2A2", + "a. c #AAACAC", + "b. c #A6A7A7", + "c. c #A8AAAA", + "d. c #AFB0B0", + "e. c #777676", + "f. c #9A9A9A", + "g. c #1B1B1B", + "h. c #181818", + "i. c #0C0C0C", + "j. c #909090", + "k. c #6B6A6B", + "l. c #55657E", + "m. c #6990FB", + "n. c #6483CD", + "o. c #5871B2", + "p. c #434E7E", + "q. c #A97C76", + "r. c #AB7777", + "s. c #AC7070", + "t. c #A26565", + "u. c #805C5C", + "v. c #848686", + "w. c #424342", + "x. c #151515", + "y. c #0A0909", + "z. c #8F8F8F", + "A. c #676868", + "B. c #3B3A3A", + "C. c #383738", + "D. c #353534", + "E. c #45525F", + "F. c #6367AC", + "G. c #804682", + "H. c #942A39", + "I. c #991312", + "J. c #540901", + "K. c #393742", + "L. c #1C1C1C", + "M. c #191919", + "N. c #161515", + "O. c #121313", + "P. c #070707", + "Q. c #8D8E8D", + "R. c #656566", + "S. c #3E3F3F", + "T. c #2F2E2F", + "U. c #353838", + "V. c #35496A", + "W. c #3E4D88", + "X. c #354889", + "Y. c #5573D7", + "Z. c #5D80FB", + "`. c #374899", + " + c #293338", + ".+ c #101010", + "++ c #0D0D0D", + "@+ c #040404", + "#+ c #8C8C8C", + "$+ c #8B8B8B", + "%+ c #4B4A4B", + "&+ c #303030", + "*+ c #333232", + "=+ c #2F2F30", + "-+ c #232223", + ";+ c #1A1919", + ">+ c #2E3949", + ",+ c #5C7BA3", + "'+ c #36467D", + ")+ c #536F93", + "!+ c #0A0A0A", + "~+ c #010101", + "{+ c #C1C1C1", + "]+ c #B8B8B8", + "^+ c #A0A0A0", + "/+ c #3F3F3F", + "(+ c #222122", + "_+ c #202020", + ":+ c #161717", + "<+ c #141414", + "[+ c #111011", + "}+ c #0D0E0E", + "|+ c #0B0B0A", + "1+ c #000000", + "2+ c #525252", + "3+ c #686868", + "4+ c #ADADAD", + "5+ c #9E9F9F", + "6+ c #6D6D6D", + "7+ c #3C3C3C", + "8+ c #131414", + "9+ c #111111", + "0+ c #0E0E0E", + "a+ c #0B0B0B", + "b+ c #080708", + "c+ c #050504", + "d+ c #4C4D4C", + "e+ c #4D4C4D", + "f+ c #494A4A", + "g+ c #454444", + "h+ c #9D9D9D", + "i+ c #9E9E9E", + "j+ c #AEAEAE", + "k+ c #BEBEBF", + "l+ c #BEBDBD", + "m+ c #979797", + "n+ c #6A6B6A", + "o+ c #3F3F40", + "p+ c #020202", + "q+ c #030303", + "r+ c #878787", + "s+ c #69696A", + "t+ c #868685", + "u+ c #646464", + "v+ c #474647", + "w+ c #656565", + "x+ c #9E9F9E", + "y+ c #A8A8A8", + "z+ c #AFAFAE", + "A+ c #A4A4A4", + "B+ c #7A7A7A", + "C+ c #969696", + "D+ c #363636", + "E+ c #777776", + "F+ c #8C8D8D", + "G+ c #7D7D7D", + "H+ c #5E5E5E", + "I+ c #4F4F50", + "J+ c #808181", + "K+ c #707070", + "L+ c #909191", + "M+ c #9C9C9C", + "N+ c #787877", + "O+ c #696969", + "P+ c #616161", + "Q+ c #6E6E6E", + "R+ c #7C7B7C", + "S+ c #777677", + "T+ c #6F6E6E", + "U+ c #595959", + "V+ c #717171", + "W+ c #8D8D8D", + "X+ c #515051", + "Y+ c #49494A", + "Z+ c #4B4A4A", + "`+ c #606060", + " @ c #6A6A6A", + ".@ c #616162", + "+@ c #6C6D6C", + "@@ c #767777", + "#@ c #727272", + "$@ c #6B6B6B", + "%@ c #828283", + "&@ c #757475", + "*@ c #444545", + "=@ c #565656", + "-@ c #5A595A", + ";@ c #666666", + ">@ c #878687", + ",@ c #8A8A8A", + "'@ c #797979", + ")@ c #444344", + "!@ c #7F8080", + "~@ c #737373", + "{@ c #484747", + "]@ c #707170", + "^@ c #7F7F7F", + "/@ c #676867", + "(@ c #4D4C4C", + "_@ c #5F5F5F", + ":@ c #434444", + " ", + " ", + " . + ", + " @ # $ % & * ", + " = - ; > , ' ) ! ~ { ", + " ] ^ / ( _ : < [ } | # 1 2 # 3 ", + " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", + " i j k 7 l m 9 0 a n o p q r s t u < | v ", + " w k > l x y z A B C p q D E F G H I J K ", + " L M N O y P Q R S T U V W F G X Y Z ` K ", + " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", + " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", + " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", + " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", + " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", + " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", + " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", + " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", + " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", + " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", + " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", + " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", + " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", + " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", + " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", + " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", + " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", + " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", + " =@_@O+L ~@#@~@L _ 9 9 :@ ", + " ;.H+ @-._ (. ", + " ", + " "}; + """ diff --git a/src/Mod/Ship/simCreate/TaskPanel.py b/src/Mod/Ship/simCreate/TaskPanel.py new file mode 100644 index 000000000..3741fbec4 --- /dev/null +++ b/src/Mod/Ship/simCreate/TaskPanel.py @@ -0,0 +1,125 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD as App +import FreeCADGui as Gui +# Qt library +from PyQt4 import QtGui,QtCore +# Module +import SimInstance +from shipUtils import Paths, Translator + +class TaskPanel: + def __init__(self): + self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" + + def accept(self): + form = self.form + obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") + sim = SimInstance.ShipSimulation(obj, + [form.length.value(), form.beam.value(), form.n.value()]) + SimInstance.ViewProviderShipSimulation(obj.ViewObject) + return True + + def reject(self): + return True + + def clicked(self, index): + pass + + def open(self): + pass + + def needsFullSpace(self): + return True + + def isAllowedAlterSelection(self): + return False + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return False + + def helpRequested(self): + pass + + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.n = form.findChild(QtGui.QSpinBox, "N") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) + + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") + + def initValues(self): + """ Set initial values for fields + """ + msg = Translator.translate("Ready to work\n") + App.Console.PrintMessage(msg) + return False + + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(Translator.translate("Create a new ship simulation")) + self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(Translator.translate("Free surface")) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) + self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) + + def onFS(self, value): + """ Method called when ship data is changed. + Annotations must be showed. + @param value Changed value. + """ + pass + +def createTask(): + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simCreate/TaskPanel.ui b/src/Mod/Ship/simCreate/TaskPanel.ui new file mode 100644 index 000000000..995b64455 --- /dev/null +++ b/src/Mod/Ship/simCreate/TaskPanel.ui @@ -0,0 +1,182 @@ + + + TaskPanel + + + + 0 + 0 + 260 + 180 + + + + + 0 + 180 + + + + Create new simulation + + + + + + + + + 240 + 160 + + + + Free surface + + + false + + + + + 0 + 20 + 241 + 141 + + + + + 6 + + + QLayout::SetDefaultConstraint + + + + + QLayout::SetDefaultConstraint + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Length + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 100.000000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Beam + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 100.000000000000000 + + + + + + + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Number of points + + + + + + + 1 + + + 1000000000 + + + 10000 + + + + + + + + + + + + + + + + diff --git a/src/Mod/Ship/simCreate/__init__.py b/src/Mod/Ship/simCreate/__init__.py new file mode 100644 index 000000000..cbfb57d75 --- /dev/null +++ b/src/Mod/Ship/simCreate/__init__.py @@ -0,0 +1,36 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD +import FreeCADGui + +# Qt libraries +from PyQt4 import QtGui,QtCore + +# Main object +import TaskPanel + +def load(): + """ Loads the tool """ + TaskPanel.createTask() From 70a4cf0e1b8ecc8b9a2281cc7b608de12eb51fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Fri, 6 Jul 2012 12:01:53 +0200 Subject: [PATCH 11/98] Removed Surfaces module interdependency --- src/Mod/Ship/shipHydrostatics/TaskPanel.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.py b/src/Mod/Ship/shipHydrostatics/TaskPanel.py index 665e7edaf..4ff23dc45 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.py +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.py @@ -31,7 +31,6 @@ from PyQt4 import QtGui,QtCore import Plot import Instance from shipUtils import Paths, Translator -from surfUtils import Geometry import Tools class TaskPanel: @@ -108,7 +107,7 @@ class TaskPanel: """ Set initial values for fields """ # Get objects - selObjs = Geometry.getSelectedObjs() + selObjs = Gui.Selection.getSelection() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) From a933c932693f977aca82bb347a051634c7c10178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Fri, 6 Jul 2012 12:42:19 +0200 Subject: [PATCH 12/98] Built simulations run interface (threaded) --- src/Mod/Ship/CMakeLists.txt | 19 +- src/Mod/Ship/Icons/SimCreateIco.png | Bin 14469 -> 14502 bytes src/Mod/Ship/Icons/SimCreateIco.xcf | Bin 51656 -> 0 bytes src/Mod/Ship/Icons/SimCreateIco.xpm | 1276 +++++++------ src/Mod/Ship/Icons/SimRunIco.png | Bin 0 -> 15466 bytes src/Mod/Ship/Icons/SimRunIco.xpm | 2723 +++++++++++++++++++++++++++ src/Mod/Ship/InitGui.py | 4 +- src/Mod/Ship/Makefile.am | 11 +- src/Mod/Ship/ShipGui.py | 13 + src/Mod/Ship/SimInstance.py | 187 +- src/Mod/Ship/simCreate/TaskPanel.py | 55 +- src/Mod/Ship/simCreate/TaskPanel.ui | 357 ++-- src/Mod/Ship/simRun/Simulation.py | 56 + src/Mod/Ship/simRun/TaskPanel.py | 160 ++ src/Mod/Ship/simRun/TaskPanel.ui | 115 ++ src/Mod/Ship/simRun/__init__.py | 36 + 16 files changed, 4150 insertions(+), 862 deletions(-) delete mode 100644 src/Mod/Ship/Icons/SimCreateIco.xcf create mode 100644 src/Mod/Ship/Icons/SimRunIco.png create mode 100644 src/Mod/Ship/Icons/SimRunIco.xpm create mode 100644 src/Mod/Ship/simRun/Simulation.py create mode 100644 src/Mod/Ship/simRun/TaskPanel.py create mode 100644 src/Mod/Ship/simRun/TaskPanel.ui create mode 100644 src/Mod/Ship/simRun/__init__.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index fc71cb055..f16627870 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -40,8 +40,9 @@ SET(ShipIcons_SRCS Icons/SimIco.xcf Icons/Sim.xpm Icons/SimCreateIco.png - Icons/SimCreateIco.xcf Icons/SimCreateIco.xpm + Icons/SimRunIco.png + Icons/SimRunIco.xpm Icons/Tank.png Icons/Tank.xcf Icons/Tank.xpm @@ -136,7 +137,15 @@ SET(SimCreate_SRCS ) SOURCE_GROUP("simcreate" FILES ${SimCreate_SRCS}) -SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS} ${SimCreate_SRCS}) +SET(SimRun_SRCS + simRun/__init__.py + simRun/Simulation.py + simRun/TaskPanel.py + simRun/TaskPanel.ui +) +SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) + +SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS} ${SimCreate_SRCS} ${SimRun_SRCS}) ADD_CUSTOM_TARGET(Ship ALL SOURCES ${all_files} @@ -216,6 +225,12 @@ INSTALL( DESTINATION Mod/Ship/simCreate ) +INSTALL( + FILES + ${SimRun_SRCS} + DESTINATION + Mod/Ship/simRun +) INSTALL( FILES ${ShipMain_SRCS} diff --git a/src/Mod/Ship/Icons/SimCreateIco.png b/src/Mod/Ship/Icons/SimCreateIco.png index 838b46e8bbceacc2d0a0a53dc71b6a84106e6f22..4886cd01d9e335a315d8ecdb3595c9768b79a40f 100644 GIT binary patch delta 14125 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 diff --git a/src/Mod/Ship/Icons/SimCreateIco.xcf b/src/Mod/Ship/Icons/SimCreateIco.xcf deleted file mode 100644 index 6dcf3fdd0ba1fa700091f4774f887b087a237bdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51656 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 HzwEyOS-3zg diff --git a/src/Mod/Ship/Icons/SimCreateIco.xpm b/src/Mod/Ship/Icons/SimCreateIco.xpm index a1847db91..72814a4f1 100644 --- a/src/Mod/Ship/Icons/SimCreateIco.xpm +++ b/src/Mod/Ship/Icons/SimCreateIco.xpm @@ -1,6 +1,6 @@ /* XPM */ static char * SimCreateIco_xpm[] = { -"128 128 2134 2", +"128 128 2124 2", " c None", ". c #7B7B7B", "+ c #EAEAEA", @@ -1454,7 +1454,7 @@ static char * SimCreateIco_xpm[] = { "F) c #050404", "G) c #000001", "H) c #B3B4B4", -"I) c #BEBEF1", +"I) c #E9CFC6", "J) c #C7C6C6", "K) c #C5C6C6", "L) c #C6C5C6", @@ -1469,8 +1469,8 @@ static char * SimCreateIco_xpm[] = { "U) c #060504", "V) c #020303", "W) c #B3B3B4", -"X) c #BBBBF4", -"Y) c #B4B4F7", +"X) c #EDD0C2", +"Y) c #F0CFBA", "Z) c #666666", "`) c #9F9F9F", " ! c #C4C3C4", @@ -1486,9 +1486,9 @@ static char * SimCreateIco_xpm[] = { "-! c #050605", ";! c #020101", ">! c #B2B3B2", -",! c #A5A5BB", -"'! c #B0B0F9", -")! c #AFAFFA", +",! c #B6ACA9", +"'! c #F4D0B5", +")! c #F5D0B4", "!! c #4D4E4D", "~! c #929292", "{! c #C2C3C2", @@ -1498,10 +1498,10 @@ static char * SimCreateIco_xpm[] = { "(! c #030202", "_! c #000100", ":! c #B3B2B2", -"~ c #ACACAD", -",~ c #A4A4A3", -"'~ c #A1A0A0", -")~ c #9E9D9D", -"!~ c #040405", -"~~ c #AFAFD2", -"{~ c #9393FD", -"]~ c #7777FF", -"^~ c #8181FF", -"/~ c #A9A9F8", -"(~ c #CECEFB", -"_~ c #CCCCFD", +"$~ c #C2B8B6", +"%~ c #F6C69B", +"&~ c #FFBE7F", +"*~ c #EFCAB4", +"=~ c #F5E2D8", +"-~ c #FAE4D3", +";~ c #999898", +">~ c #A3A2A3", +",~ c #ACACAD", +"'~ c #A4A4A3", +")~ c #A1A0A0", +"!~ c #9E9D9D", +"~~ c #CCBBB5", +"{~ c #FCC694", +"]~ c #FFBA77", +"^~ c #FFBF81", +"/~ c #F3CAAE", +"(~ c #F7E1D2", +"_~ c #FCE3CD", ":~ c #AEAEAF", "<~ c #8F8F8F", "[~ c #A9A9AA", "}~ c #A3A2A2", "|~ c #AEAFAF", "1~ c #B3B4B3", -"2~ c #09090B", -"3~ c #AEAEDA", -"4~ c #8B8BFD", -"5~ c #7373FF", -"6~ c #7979FF", -"7~ c #9E9EF6", -"8~ c #8E8EAE", -"9~ c #BDBDFC", -"0~ c #B9B9FE", -"a~ c #BABAB9", -"b~ c #B2B2B3", -"c~ c #B1B3B2", -"d~ c #B1B2B1", -"e~ c #ADACAB", -"f~ c #AAA9AA", -"g~ c #888988", -"h~ c #9E9D9E", -"i~ c #A0A0A1", -"j~ c #A4A3A3", -"k~ c #A7A8A8", -"l~ c #B4B4B3", -"m~ c #B1B2B2", -"n~ c #ADADAE", -"o~ c #969595", -"p~ c #808083", -"q~ c #ABABDD", -"r~ c #8989FD", -"s~ c #7171FF", -"t~ c #6F6FFF", -"u~ c #8C8CFD", -"v~ c #9494C2", -"w~ c #57575E", -"x~ c #CFCFF8", -"y~ c #9595FE", -"z~ c #A0A0FD", -"A~ c #DBDBF8", -"B~ c #7D7C7C", -"C~ c #989898", -"D~ c #AEADAD", -"E~ c #ADACAD", -"F~ c #ACABAC", -"G~ c #9C9D9D", -"H~ c #7F7F7E", -"I~ c #565756", -"J~ c #989998", -"K~ c #A0A1A0", -"L~ c #A4A3A4", -"M~ c #B0B1B1", -"N~ c #B1B0B1", -"O~ c #AEAED9", -"P~ c #6B6BFF", -"Q~ c #7575FF", -"R~ c #9696EF", -"S~ c #7B7B95", -"T~ c #CACAEE", -"U~ c #ACACFD", -"V~ c #6363FF", -"W~ c #A2A2FD", -"X~ c #B6B7B7", -"Y~ c #787877", -"Z~ c #757676", -"`~ c #747474", -" { c #8C8D8C", -".{ c #9D9C9D", -"+{ c #A8A8A7", -"@{ c #545353", -"#{ c #989797", -"${ c #9F9F9E", -"%{ c #A0A1A1", -"&{ c #8C8C8B", -"*{ c #706F70", -"={ c #B1B1B0", -"-{ c #B0B0B1", -";{ c #AEAED3", -">{ c #8E8EFD", -",{ c #6565FF", -"'{ c #9999EE", -"){ c #7C7C94", -"!{ c #56565C", -"~{ c #5A5A5F", -"{{ c #8F8FA5", -"]{ c #AFAFF8", -"^{ c #4747FF", -"/{ c #B2B2FC", -"({ c #B4B5B5", -"_{ c #777677", -":{ c #727172", -"<{ c #6B6C6C", -"[{ c #80807F", -"}{ c #919090", -"|{ c #9E9E9F", -"1{ c #A4A5A4", -"2{ c #A6A7A6", -"3{ c #898888", -"4{ c #6E6E6D", -"5{ c #5F5F60", -"6{ c #797A7A", -"7{ c #7E7F7F", -"8{ c #777777", -"9{ c #616060", -"0{ c #5A5A66", -"a{ c #8B8BC5", -"b{ c #8484FD", -"c{ c #6767FF", -"d{ c #5F5FFF", -"e{ c #9494F2", -"f{ c #9A9ACA", -"g{ c #7B7B90", -"h{ c #64636D", -"i{ c #58585E", -"j{ c #57575D", -"k{ c #65656D", -"l{ c #7F7F8F", -"m{ c #A2A2C8", -"n{ c #A1A1F1", -"o{ c #3131FF", -"p{ c #BDBDEF", -"q{ c #767777", -"r{ c #767675", -"s{ c #717171", -"t{ c #6E6E6F", -"u{ c #6C6D6D", -"v{ c #6A6969", -"w{ c #676767", -"x{ c #656665", -"y{ c #676766", -"z{ c #727373", -"A{ c #5C5C5B", -"B{ c #6A6A6B", -"C{ c #7B7A7B", -"D{ c #626262", -"E{ c #575761", -"F{ c #8686BC", -"G{ c #8888FB", -"H{ c #6969FF", -"I{ c #6161FF", -"J{ c #5D5DFF", -"K{ c #5959FF", -"L{ c #8282FD", -"M{ c #9898F3", -"N{ c #A2A2E5", -"O{ c #A1A1DB", -"P{ c #A2A2D9", -"Q{ c #A7A7E3", -"R{ c #9F9FF3", -"S{ c #8080FD", -"T{ c #5353FF", -"U{ c #3939FF", -"V{ c #9090FC", -"W{ c #CFCFF5", -"X{ c #B1B1B2", -"Y{ c #777676", -"Z{ c #747575", -"`{ c #717271", -" ] c #6D6E6D", -".] c #6B6B6A", -"+] c #686767", -"@] c #646363", -"#] c #5D5D5C", -"$] c #777776", -"%] c #878788", -"&] c #969596", -"*] c #9A9898", -"=] c #9A9A99", -"-] c #646463", -";] c #7B7C7C", -">] c #7B7C7B", -",] c #707170", -"'] c #575756", -")] c #515159", -"!] c #8181B4", -"~] c #8686FB", -"{] c #5B5BFF", -"]] c #5757FF", -"^] c #4D4DFF", -"/] c #3B3BFF", -"(] c #3333FF", -"_] c #5F5FFD", -":] c #B1B1E8", -"<] c #ABACAB", -"[] c #787777", -"}] c #717170", -"|] c #696869", -"1] c #666565", -"2] c #646465", -"3] c #636363", -"4] c #605F5F", -"5] c #575758", -"6] c #8B8A8B", -"7] c #949393", -"8] c #7D7DAF", -"9] c #4F4FFF", -"0] c #4B4BFF", -"a] c #4343FF", -"b] c #4141FF", -"c] c #3D3DFF", -"d] c #3535FF", -"e] c #4545FF", -"f] c #9A9AFD", -"g] c #A8A8BB", -"h] c #A5A4A4", -"i] c #969797", -"j] c #787778", -"k] c #636364", -"l] c #606161", -"m] c #5D5C5C", -"n] c #585958", -"o] c #5C5C5D", -"p] c #868787", -"q] c #7F807F", -"r] c #53535D", -"s] c #7E7EB0", -"t] c #6D6DFF", -"u] c #5151FF", -"v] c #4949FF", -"w] c #3F3FFF", -"x] c #3737FF", -"y] c #9191FF", -"z] c #A6A6C2", -"A] c #747579", -"B] c #ADADAC", -"C] c #A8A9A8", -"D] c #9A9999", -"E] c #6A6A69", -"F] c #626261", -"G] c #5F605F", -"H] c #818081", -"I] c #868685", -"J] c #51515B", -"K] c #7C7CAF", -"L] c #8686F8", -"M] c #5555FF", -"N] c #A5A5F4", -"O] c #A6A6C1", -"P] c #737377", -"Q] c #7C7B7B", -"R] c #939292", -"S] c #8A8B8A", -"T] c #676768", -"U] c #848485", -"V] c #818281", -"W] c #7F7E7E", -"X] c #7B7B7A", -"Y] c #4E4E55", -"Z] c #7979AC", -"`] c #8484F7", -" ^ c #8686FC", -".^ c #ABABDA", -"+^ c #9393A5", -"@^ c #717174", -"#^ c #626263", -"$^ c #A5A6A6", -"%^ c #9F9FA0", -"&^ c #8B8C8B", -"*^ c #818180", -"=^ c #7E7D7E", -"-^ c #7C7C7D", -";^ c #787978", -">^ c #636463", -",^ c #4C4C51", -"'^ c #7676A6", -")^ c #8484F8", -"!^ c #8686FD", -"~^ c #9F9FD7", -"{^ c #A3A3D9", -"]^ c #A1A1E1", -"^^ c #A6A6E1", -"/^ c #A4A4D5", -"(^ c #A0A0C0", -"_^ c #8B8B9D", -":^ c #727279", -"<^ c #616160", -"[^ c #626161", -"}^ c #7C7D7C", -"|^ c #9B9A9A", -"1^ c #666667", -"2^ c #818182", -"3^ c #7D7E7D", -"4^ c #757475", -"5^ c #4D4D53", -"6^ c #7474A6", -"7^ c #7B7BFF", -"8^ c #8585FF", -"9^ c #9494BC", -"0^ c #64646C", -"a^ c #636368", -"b^ c #67676C", -"c^ c #69686D", -"d^ c #646466", -"e^ c #5E5E5F", -"f^ c #5F6060", -"g^ c #707171", -"h^ c #807F80", -"i^ c #8E8E8F", -"j^ c #979696", -"k^ c #959594", -"l^ c #686869", -"m^ c #7F8080", -"n^ c #7E7E7F", -"o^ c #7C7D7D", -"p^ c #737374", -"q^ c #7373A4", -"r^ c #8282F8", -"s^ c #8383FF", -"t^ c #535453", -"u^ c #5B595B", -"v^ c #5F5F5E", -"w^ c #747473", -"x^ c #838384", -"y^ c #908F90", -"z^ c #919192", -"A^ c #7D7C7D", -"B^ c #818282", -"C^ c #808081", -"D^ c #7F7F80", -"E^ c #4C4C54", -"F^ c #7272A3", -"G^ c #8080F4", -"H^ c #9292C5", -"I^ c #666670", -"J^ c #5B5A5C", -"K^ c #5C5D5D", -"L^ c #828181", -"M^ c #5A595A", -"N^ c #676667", -"O^ c #8A8A8A", -"P^ c #7A7A7B", -"Q^ c #6F6FA0", -"R^ c #8080F3", -"S^ c #7D7DFF", -"T^ c #9090C5", -"U^ c #646570", -"V^ c #9E9E9D", -"W^ c #838282", -"X^ c #767576", -"Y^ c #868585", -"Z^ c #797A79", -"`^ c #737273", -" / c #46464B", -"./ c #6C6D9E", -"+/ c #7D7DF6", -"@/ c #7C7CFD", -"#/ c #8F8FC6", -"$/ c #64646F", -"%/ c #7F7E7F", -"&/ c #989897", -"*/ c #9C9D9C", -"=/ c #6B6B71", -"-/ c #7B7BAC", -";/ c #7C7CFC", -">/ c #8F8FC8", -",/ c #61616E", -"'/ c #4D4F4E", -")/ c #9C9B9C", -"!/ c #9B9B9A", -"~/ c #747479", -"{/ c #8282B0", -"]/ c #7E7EF6", -"^/ c #8C8CCB", -"// c #61616F", -"(/ c #838483", -"_/ c #8D8D8C", -":/ c #959696", -"( c #74749F", -",( c #6969F0", -"'( c #8B8BFF", -")( c #7E7EE7", -"!( c #69698A", -"~( c #717172", -"{( c #75759A", -"]( c #6D6DE5", -"^( c #8383E8", -"/( c #696987", -"(( c #737398", -"_( c #6C6CE1", -":( c #7F80E6", -"<( c #8282A1", -"[( c #737399", -"}( c #6A6AE1", -"|( c #8F8FFF", -"1( c #7C7CED", -"2( c #7F7FA2", -"3( c #757577", -"4( c #72729A", -"5( c #6464E4", -"6( c #6F6FFD", -"7( c #7979F9", -"8( c #8080A8", -"9( c #727294", -"0( c #6464E1", -"a( c #7474FD", -"b( c #7777F4", -"c( c #565675", -"d( c #5E5ED3", -"e( c #9090FD", -"f( c #8F8FFA", -"g( c #8A8AFC", -"h( c #7979ED", -"i( c #7F7FA9", -"j( c #6565ED", -"k( c #7575FE", -"l( c #8B8BD5", -"m( c #7B7BAB", -"n( c #75759D", -"o( c #7A7AB1", -"p( c #8484DC", -"q( c #7575EE", -"r( c #7E7EA9", -"s( c #747477", -"t( c #7070E7", -"u( c #6868FD", -"v( c #9898F5", -"w( c #4C4C53", -"x( c #5E5E73", -"y( c #7B7BCE", -"z( c #7474F4", -"A( c #7C7CAB", -"B( c #6565F2", -"C( c #7777FC", -"D( c #7F7FFA", -"E( c #6E6EFB", -"F( c #666699", -"G( c #56565A", -"H( c #6262F7", -"I( c #8585FA", -"J( c #8484F3", -"K( c #7070FB", -"L( c #8181E4", -"M( c #6262F5", -"N( c #8080FB", -"O( c #8383F2", -"P( c #7171FE", -"Q( c #6F6FFA", -"R( c #8181E6", -"S( c #6969EC", -"T( c #6E6EFD", -"U( c #9A9AEF", -"V( c #7878F7", -"W( c #6C6CFB", -"X( c #8080E7", -"Y( c #6464FB", -"Z( c #7E7EFB", -"`( c #9999EA", -" _ c #7F7FEA", -"._ c #6B6BFC", -"+_ c #7B7BE6", -"@_ c #6C6BE5", -"#_ c #6161FE", -"$_ c #8585F2", -"%_ c #8D8DEC", -"&_ c #8282EB", -"*_ c #7777F2", -"=_ c #6969FE", -"-_ c #7A7AE7", -";_ c #7979E6", -">_ c #6C6CF1", -",_ c #6464F9", -"'_ c #6666FB", -")_ c #6565FA", -"!_ c #7070F1", -"~_ c #8787E7", +"2~ c #D4BEB3", +"3~ c #FDC28B", +"4~ c #FFB873", +"5~ c #FFBB79", +"6~ c #F3C7A1", +"7~ c #A79894", +"8~ c #FADABF", +"9~ c #FDDBBA", +"0~ c #BABAB9", +"a~ c #B2B2B3", +"b~ c #B1B3B2", +"c~ c #B1B2B1", +"d~ c #ADACAB", +"e~ c #AAA9AA", +"f~ c #888988", +"g~ c #9E9D9E", +"h~ c #A0A0A1", +"i~ c #A4A3A3", +"j~ c #A7A8A8", +"k~ c #B4B4B3", +"l~ c #B1B2B2", +"m~ c #ADADAE", +"n~ c #969595", +"o~ c #828080", +"p~ c #D7BEB2", +"q~ c #FDC189", +"r~ c #FFB771", +"s~ c #FFB66F", +"t~ c #FDC38C", +"u~ c #BDA699", +"v~ c #5C5959", +"w~ c #F3DED4", +"x~ c #FDC896", +"y~ c #FCCCA1", +"z~ c #F3E5E0", +"A~ c #7D7C7C", +"B~ c #989898", +"C~ c #AEADAD", +"D~ c #ADACAD", +"E~ c #ACABAC", +"F~ c #9C9D9D", +"G~ c #7F7F7E", +"H~ c #565756", +"I~ c #989998", +"J~ c #A0A1A0", +"K~ c #A4A3A4", +"L~ c #B0B1B1", +"M~ c #B1B0B1", +"N~ c #D3BDB4", +"O~ c #FFB46B", +"P~ c #FFB975", +"Q~ c #EDBF98", +"R~ c #90847F", +"S~ c #E8D6D0", +"T~ c #FBD3AE", +"U~ c #FFB063", +"V~ c #FCCDA3", +"W~ c #B6B7B7", +"X~ c #787877", +"Y~ c #757676", +"Z~ c #747474", +"`~ c #8C8D8C", +" { c #9D9C9D", +".{ c #A8A8A7", +"+{ c #545353", +"@{ c #989797", +"#{ c #9F9F9E", +"${ c #A0A1A1", +"%{ c #8C8C8B", +"&{ c #706F70", +"*{ c #B1B1B0", +"={ c #CDBAB4", +"-{ c #FDC48E", +";{ c #FFB165", +">{ c #EBBF9C", +",{ c #908481", +"'{ c #5A5757", +"){ c #5E5C5B", +"!{ c #A19793", +"~{ c #F7D2B0", +"{{ c #FFA247", +"]{ c #FBD5B2", +"^{ c #B4B5B5", +"/{ c #777677", +"({ c #727172", +"_{ c #6B6C6C", +":{ c #80807F", +"<{ c #919090", +"[{ c #9E9E9F", +"}{ c #A4A5A4", +"|{ c #A6A7A6", +"1{ c #898888", +"2{ c #6E6E6D", +"3{ c #5F5F60", +"4{ c #797A7A", +"5{ c #7E7F7F", +"6{ c #777777", +"7{ c #616060", +"8{ c #635D5D", +"9{ c #BFA191", +"0{ c #FDBF84", +"a{ c #FFB267", +"b{ c #FFAE5F", +"c{ c #F0C096", +"d{ c #C4ADA0", +"e{ c #8D827F", +"f{ c #6B6665", +"g{ c #5D5A5A", +"h{ c #6B6767", +"i{ c #8C8482", +"j{ c #C3B1A7", +"k{ c #F0C6A3", +"l{ c #FF9731", +"m{ c #EBD3C1", +"n{ c #767777", +"o{ c #767675", +"p{ c #717171", +"q{ c #6E6E6F", +"r{ c #6C6D6D", +"s{ c #6A6969", +"t{ c #676767", +"u{ c #656665", +"v{ c #676766", +"w{ c #727373", +"x{ c #5C5C5B", +"y{ c #6A6A6B", +"z{ c #7B7A7B", +"A{ c #626262", +"B{ c #5F5A59", +"C{ c #B59A8D", +"D{ c #FAC089", +"E{ c #FFB369", +"F{ c #FFAF61", +"G{ c #FFAD5D", +"H{ c #FFAB59", +"I{ c #FDBE82", +"J{ c #F1C29A", +"K{ c #E1C0A6", +"L{ c #D7BAA5", +"M{ c #D5BAA6", +"N{ c #E1C2A9", +"O{ c #F2C69F", +"P{ c #FDBD80", +"Q{ c #FFA853", +"R{ c #FF9B39", +"S{ c #FCC590", +"T{ c #EFDDD4", +"U{ c #B1B1B2", +"V{ c #777676", +"W{ c #747575", +"X{ c #717271", +"Y{ c #6D6E6D", +"Z{ c #6B6B6A", +"`{ c #686767", +" ] c #646363", +".] c #5D5D5C", +"+] c #777776", +"@] c #878788", +"#] c #969596", +"$] c #9A9898", +"%] c #9A9A99", +"&] c #646463", +"*] c #7B7C7C", +"=] c #7B7C7B", +"-] c #707170", +";] c #575756", +">] c #575353", +",] c #AD9387", +"'] c #FABF87", +")] c #FFAC5B", +"!] c #FFAA57", +"~] c #FFA54D", +"{] c #FF9C3B", +"]] c #FF9833", +"^] c #FDAC5F", +"/] c #E5CAB5", +"(] c #B0B0B1", +"_] c #ABACAB", +":] c #787777", +"<] c #717170", +"[] c #696869", +"}] c #666565", +"|] c #646465", +"1] c #636363", +"2] c #605F5F", +"3] c #575758", +"4] c #8B8A8B", +"5] c #949393", +"6] c #A98F84", +"7] c #FFA64F", +"8] c #FFA44B", +"9] c #FFA043", +"0] c #FF9F41", +"a] c #FF9D3D", +"b] c #FF9935", +"c] c #FFA145", +"d] c #FDCA9A", +"e] c #B8AFAA", +"f] c #A5A4A4", +"g] c #969797", +"h] c #787778", +"i] c #636364", +"j] c #606161", +"k] c #5D5C5C", +"l] c #585958", +"m] c #5C5C5D", +"n] c #868787", +"o] c #7F807F", +"p] c #5A5555", +"q] c #A99085", +"r] c #FFB56D", +"s] c #FFA751", +"t] c #FFA349", +"u] c #FF9E3F", +"v] c #FF9A37", +"w] c #FFC791", +"x] c #BDB0AA", +"y] c #ADADAC", +"z] c #A8A9A8", +"A] c #9A9999", +"B] c #6A6A69", +"C] c #626261", +"D] c #5F605F", +"E] c #818081", +"F] c #868685", +"G] c #595453", +"H] c #A98F83", +"I] c #F7BD87", +"J] c #FFA955", +"K] c #F2CAA7", +"L] c #767474", +"M] c #7C7B7B", +"N] c #939292", +"O] c #8A8B8A", +"P] c #676768", +"Q] c #848485", +"R] c #818281", +"S] c #7F7E7E", +"T] c #7B7B7A", +"U] c #545050", +"V] c #A48A7F", +"W] c #F5BB86", +"X] c #FBBF87", +"Y] c #F2C6A1", +"Z] c #D6BEAF", +"`] c #A29996", +" ^ c #626263", +".^ c #A5A6A6", +"+^ c #9F9FA0", +"@^ c #8B8C8B", +"#^ c #818180", +"$^ c #7E7D7E", +"%^ c #7C7C7D", +"&^ c #787978", +"*^ c #636463", +"=^ c #504D4D", +"-^ c #9F867D", +";^ c #F7BC85", +">^ c #FDC086", +",^ c #D3B5A2", +"'^ c #D5BAA7", +")^ c #DCBCA5", +"!^ c #DDC0A9", +"~^ c #D0B8A9", +"{^ c #BBACA4", +"]^ c #99918F", +"^^ c #777474", +"/^ c #616160", +"(^ c #626161", +"_^ c #7C7D7C", +":^ c #9B9A9A", +"<^ c #666667", +"[^ c #818182", +"}^ c #7D7E7D", +"|^ c #757475", +"1^ c #514E4E", +"2^ c #9E857C", +"3^ c #FFBC7B", +"4^ c #FFC185", +"5^ c #B7A39A", +"6^ c #6A6666", +"7^ c #666464", +"8^ c #6B6868", +"9^ c #6D6969", +"0^ c #666564", +"a^ c #5F6060", +"b^ c #707171", +"c^ c #807F80", +"d^ c #8E8E8F", +"e^ c #979696", +"f^ c #959594", +"g^ c #686869", +"h^ c #7F8080", +"i^ c #7E7E7F", +"j^ c #7C7D7D", +"k^ c #737374", +"l^ c #9D847A", +"m^ c #F7BB83", +"n^ c #FFC083", +"o^ c #BDA598", +"p^ c #6C6767", +"q^ c #535453", +"r^ c #5B595B", +"s^ c #5F5F5E", +"t^ c #747473", +"u^ c #838384", +"v^ c #908F90", +"w^ c #919192", +"x^ c #7D7C7D", +"y^ c #818282", +"z^ c #808081", +"A^ c #7F7F80", +"B^ c #524E4E", +"C^ c #9B8279", +"D^ c #F1B683", +"E^ c #BFA597", +"F^ c #6E6868", +"G^ c #5B5A5C", +"H^ c #5C5D5D", +"I^ c #828181", +"J^ c #5A595A", +"K^ c #676667", +"L^ c #8A8A8A", +"M^ c #7A7A7B", +"N^ c #4E4B4B", +"O^ c #987F76", +"P^ c #F0B682", +"Q^ c #FFBD7D", +"R^ c #C0A596", +"S^ c #6D6867", +"T^ c #9E9E9D", +"U^ c #838282", +"V^ c #767576", +"W^ c #868585", +"X^ c #797A79", +"Y^ c #737273", +"Z^ c #4A4747", +"`^ c #967D73", +" / c #F4B77E", +"./ c #FDBB7C", +"+/ c #C0A494", +"@/ c #6C6766", +"#/ c #7F7E7F", +"$/ c #989897", +"%/ c #9C9D9C", +"&/ c #6F6D6D", +"*/ c #A48C82", +"=/ c #FBBB7D", +"-/ c #C2A595", +";/ c #6C6463", +">/ c #4D4F4E", +",/ c #9C9B9C", +"'/ c #9B9B9A", +")/ c #787676", +"!/ c #A89189", +"~/ c #F3B681", +"{/ c #C5A592", +"]/ c #6C6564", +"^/ c #838483", +"// c #8D8D8C", +"(/ c #959696", +"_/ c #959795", +":/ c #757574", +"( c #82726F", +",( c #917E7A", +"'( c #DA9E72", +")( c #E1AB83", +"!( c #9B8B88", +"~( c #D99D72", +"{( c #FFC68F", +"]( c #E8B081", +"^( c #9B8985", +"/( c #767575", +"(( c #937E79", +"_( c #DD9B6B", +":( c #FDB46F", +"<( c #F7B77B", +"[( c #A18D87", +"}( c #8D7C79", +"|( c #D8996C", +"1( c #FDB774", +"2( c #F1B17A", +"3( c #6F5F5C", +"4( c #C98F67", +"5( c #FDC590", +"6( c #F9C290", +"7( c #FCC28A", +"8( c #EAAE7D", +"9( c #A18C86", +"0( c #E19D71", +"a( c #D0AA91", +"b( c #A38B82", +"c( c #96827C", +"d( c #AA8E82", +"e( c #D7A988", +"f( c #EAAC79", +"g( c #A18B85", +"h( c #D69A81", +"i( c #FCB069", +"j( c #EDBEA0", +"k( c #6F6462", +"l( c #C79D81", +"m( c #F1AF76", +"n( c #A38C84", +"o( c #E7A06F", +"p( c #F9B67A", +"q( c #F5B784", +"r( c #FAB36F", +"s( c #91776E", +"t( c #595757", +"u( c #F0A469", +"v( c #F6BA89", +"w( c #EAB18D", +"x( c #FEB875", +"y( c #F8B273", +"z( c #D3A190", +"A( c #494747", +"B( c #ECA26B", +"C( c #F8B983", +"D( c #E8B08D", +"E( c #FEB671", +"F( c #F6AF73", +"G( c #D6A291", +"H( c #DD9B77", +"I( c #FBB370", +"J( c #E3B8A6", +"K( c #EFAF7F", +"L( c #F7AF70", +"M( c #D6A290", +"N( c #F8AB67", +"O( c #F8B881", +"P( c #DDB3A5", +"Q( c #DCA58D", +"R( c #F9B06E", +"S( c #D59F8B", +"T( c #D4957C", +"U( c #FEAE61", +"V( c #FDB672", +"W( c #E8B18E", +"X( c #DEAE9A", +"Y( c #DCA791", +"Z( c #E8A981", +"`( c #FDB26A", +" _ c #D69F8B", +"._ c #D59E8A", +"+_ c #E7A376", +"@_ c #F5A968", +"#_ c #F8AC69", +"$_ c #F5AA6A", +"%_ c #E6A47B", +"&_ c #D7A697", " ", " ", " ", @@ -2214,52 +2204,52 @@ static char * SimCreateIco_xpm[] = { " -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%Z)/#/#/#/#/#`)Q*x*N'D& !D$E$E$.!+!@!C&#!}.@*$!5=]*I-t*%!a%K=8>&!z;M-0>@>%'q'*!K,Z'])=!-!.)n)f)8);!z)z)z)z)W)>!/#,!'!)! ", " o+I.4.m%[+ +=$G#|.!!|.k.M&|.F.k.<+!!(@G.H.4._#_#I.n.:#o+C+.+++2+P.~!/#/#/#/#/#B#R*i*y*D*{ E${!(%]!^!F%5&G@G@+!j*F=S@w@`#7>`*K=@=L-z;<;/!-,%)R)r'r'-'6'=)w).)()(!g)_!z)z)z)z):!M)>,>,u!T)=!K'/).)()v!8)w!z)z)z)z)z)z)x!y!z!A!B! C! ", -" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#D!E!F!G!E*j*H!3*W)(&{ | =&x*[=I!/#/#/#J!Z&Z&Z&c%c%e F>K!,,L!p$3@@%M-K'.)n)f)8);!z)z)z)z)z)z)z)M!N!O!P!Q! R!R! ", -" P./=S!T!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=U!9&V!7.2*W!X!(&j*Y!Z!`!x*Q*!=/#/#/#/#/#/# ~P.8!c>e ,,M,.~C&;'T.+~@~g. $8)#~#~z)z)z)z)z)z)G)$~%~&~P!*~ R!=~ ", -" P.G%[;o*F!-~ ~T!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`. ~/#/#/#M%;~x*=&7.E*2*{ >~| y*^&,~'~)~/#/#/#/#/#/#1*P.P.P.P.P..~;'9*8*8*9@E+q)>!m!0!v+6'z)z)z)z)z)!~~~{~]~^~/~ (~_~ ", -" P.c%E+E+E++)4*:~V!B#<~w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.<~/#!=_&R*i*V*E&7.| 7.[~-+x*}~B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.|~+)E+6*4*4*h)3*o*1~Q*p.x+b##*2~3~4~5~6~7~8~ 9~0~ ", -" P.a~p)3*R*/&b~c~d~X!j*e~f~E!g~Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+N)h~i~j~x*i*T*k~-+^&x*R*_&`)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P.l~l~o*M):!l*m~n~o~p~q~r~s~t~u~v~w~P.P. x~y~z~A~ ", -" P..~1~o*%@!*B~;*C~T*j*{ D~E~F~| E*G~H~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.I~-*} J~K~R*L~9&]&j~E!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o*l*(&m~M~N~x!O~r~t~P~Q~R~S~P.P.P.P.P.P.P. T~U~V~W~ ", -" P.X~l*(&!*}-Y~0*Z~`~T![- {.{=&E&=&=&=&y*+{E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$@{s !*. a)+~#{${%{%{/#/#e*1*/#e*&{. *{K.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.={/&-{;{>{t~P~,{6~'{){!{P.P.P.P.P.P.~{{{]{,{^{/{ ", -" P.({/&/&}-*+_{F=F=T!:{5.V&S.<{-*[{}{|{9&R*R*1{2{`)3{4{s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r 5{}*i&V&`~6{7{O):&[*D+8{Z)9{) P+J.P.P.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.0{a{b{P~c{,{d{5~e{f{g{h{i{j{k{l{m{n{,{o{,{p{ ", -" P.1~:~:~*+q{r{`~`~}=s{*{t{u{p.v{w w{x{y{z{S&N)${h~${D!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M A{! Z)B{5.Z~C{[-8{-*S.)*D{0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.E{F{G{s~H{,{I{J{K{c{L{M{N{O{P{Q{R{S{T{o{U{V{W{ ", -" P.X{2*>~Y{Z~Z{T!T!`{5.t{ ]p..].*+]Z)}*@]g*! m #]Q $]%]&]-~*]=]-~|%. S.-]v I.a+$+#+Q.P.P.P.P.P.P.P.p.s{$];]>]0*,]p.Z)1=a ']*.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.)]!]~]s~H{c{V~d{{]]]T{T{{]V~c{V~{]^]/](]o{_]:] ", -" P.-{<]| !@[]T!-*-*}]V&4{S.< i&|]y{1]2]3]1=4]9 a H I 5]M :.|]. 6]E@7]7]<~>)}-s{Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.)]8]b{5~P~c{,{I{J{{]]]T{9]0]^{a]b]c]U{d]o{e]f]g] ", -" P.j*7.[~A*A*h]i]U&j]w*S.p.< .*w Z)Y&k]D{l]) A.m]H n]M@M P g.`.}.7@o]a!D+|%+~ ~p]q]}-T!3][.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.r]s]~]5~t]H{,{V~d{{]K{T{u]^]v]e]a]w]c]x]x]u]y]z]A] ", -" P.B]C]G!e*h]=&T.V*V*x*D];*8{E]w{Z)}*3]F]! ) 0 A{r .v ]@N+&.`.-.1.3.4.n.<#}.G]:{H]I]>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.J]K]L]Q~t~P~c{V~d{J{K{M]u]9]0]^{a]w]c]c]^]Q~N]O]P]1] ", -" P.o!-+-+%@!*Q]!@R]!=x*x*c+j~Q*e*S]*+T]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+U]S&V]:&W]=*X]Y~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Y]Z]`]]~t~t]H{,{I{J{{]]]T{9]]]t~t]I{d{t] ^R{.^+^@^#^@] ", -" P.7.i*$^!*}-Y~0*Z~`~-*. x&,.`)_&K~%^I!e*&^}-T]c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)*^D+=^-^. 6{*+;^8{-*>^g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.,^'^)^6~s~t]P~c{V~d{{]K{M]u]M]!^~^{^]^^^/^(^_^:^D{! <^[^ ", -" P.=&]&]&}-*+_{F=F=T!:{5.V&S.<{5.}^&^/=/#X*|^e*s%&{!*1^v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&2^:&H~3^;]X]p=*+$]0*4^T!`~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.5^6^L{7^5~t~P~H{,{I{J{K{]]T{K{8^9^0^a^b^c^d^e^A{#]9 ) 5{f^ ", -" P.2{Q*Q**+q{r{`~`~}=s{*{t{u{p.v{w w{x{y{g^h^i^C~/=j^6.k^ ~b%l^M [+4.Q@C+p+2+P.P.P.P.a)[*m^n^o^b%!*}-*+$]F=p^-*-*-*T!`~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.P.P.P.P.P.P.Y]q^r^7^Q~s~t]H{c{V~d{{]]]M]K{s^v~k{t^N M v ..K u^:.a 0 n v^ ", -" P.c+_&_&Y{Z~Z{T!T!`{5.t{ ]p..].*+]Z)}*@]g*! m #]1]w^x^y^z^#!&@<~|%A^.*N 0%P.P.P.P.P.B^C^D^n^[-. !*}-[]-&F=T!-*-*-*-*-*-*-*T!`~F=-*.*0 P }.I.O.Q.Q.Q.P.P.P.P.P.P.E^F^G^7^]~5~t~P~c{,{I{J{K{M]K{&~H^I^O+&.%.O N ^+5]{@s r J^o]K^ ", -" P.R*D!`)L^Y{T!-*-*}]V&4{S.< i&|]y{1]2]3]1=4]9 a H I 5]M M^N^[]!@+~ ~|%O^x&O)< ..n.P.V]:&D+O)b%P^6{;^8{0*`~T!-*-*-*-*-*-*-*-*-*-*-*T!`~F=5.w{9 ..&.I.P.#+Q.Q.P.w%Q^R^7^]~Q~s~t]H{,{V~d{{]]]]]S^T^U^>.i.`.&.g.#.N +.v ..s Y.r H ", -" P.[=!=V^!=!==]<~W^X^w*S.p.< .*w Z)Y&k]D{l]) A.m]H n]M@M P g.`.}.}.{+< [ ~ p]Y^O'S&[-*^D^O)[-%@!*Z^@~0*F=`~`^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!`~`~V&w{1=H g.n. /./+/S^6~Q~s~t~P~c{V~d{J{K{K{@/#/$/1!2.}.-.<.O+g.P $.N I~v .. .s ", -" P.%/7]&/=]*/.{X*X*X*|^,#S&F=E]w{Z)}*3]F]! ) 0 A{r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%B^:&D+O)-^. !**+8{0*F=T!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!T!T!w*=/-/;/S^7^]~5~s~t]H{,{I{d{{]K{7^>/,/I.n+<%M&'/}.[.`.&.g.P N N M ']]+ ", -" P.8+v+1.Z)D+ ~,#/=1*)/!/e*s%s%,#O'F=T]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+H~[-. !*v&*+q{F=`~T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*~/{/]/&~S^6~Q~s~t~P~c{V~d{J{{]6~^///S+o+n.f@r$G.!!}.[.`.*.F#g.P O N M ", -" P.#+8+9+#+_+w b%(/_/=+e*s%C~i]:/.}.[.<. ", -" $+P.4.g.H w{r/&{s/,#a&&{O^t/;*x&0!*+u/Z.0%P.P.P.P.P.b%. !*}-*+8{0*F=T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*v/w/x/&~s^&~7^6~Q~s~t]H{c{V~d{Q~y/z/P.P.P.P.P.P.P.O.p+M.o+Q@n.I.-$<%[+<+k.k.}. ", -" Q.O.I.F.N w{b% ~+~|%A/U&~ !@O'S&a)B/w M o+P.b%h/!*C/8{0*D/p^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*E/F/G/&~8^^~S^6~Q~5~t~P~c{,{I{5~H/I/P.P.P.P.P.P.P.P.P.P.O.p+M.o+g@m.I.4.l.[+2.<+ ", -" P.O.M.o+g.w =*J/U&K/L/a)M/:&D+|/-^;^. !*}-*+0*N/O/T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*P/Q/R/&~8^s^&~7^]~5~t~t]H{,{I{s~S/T/P.P.P.P.P.P.P.P.P.P.P.P.O.O.p+M.|+Y$-%}+I.-$4. ", -" P.P.P.P.p+N < =*U/*^M/O)0/-^%@P^}-v&[]0*V/W/}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/Y/Z/&~P!s^&~S^]~Q~5~t~H{c{V~s~`/ (P.P.P.P.P.P.P.P.P.P.P.P.P.P.r+[%O.p+M.M.L.K.-$4. ", -" P.Q.#+$+M. .Z*.(%@!*. +(v&j]@(F=b/z{-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*#($(%(&~O!8^^~S^7^]~5~t~t]H{,{&(*(=(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+O.++o+n. ", -" P.#+$+a+f@H -(`~W/;(N/T&T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/>(,(@/'(P!s^&~S^]~5~s~t]P~c{t~)(!(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.p+o+ ", -" P.Q.$+a+#+1.H w{< S.s{T!T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*~({(](S^'(O!8^^~S^7^]~s~t~P~c{t~^(/(<@P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", -" P.#+a+a+P.k.s 3]w{p.s{`~T!-*-*-*-*-*-*-*-*-*-*-*((_(S^A!'(8^s^&~7^6~Q~t~t]H{t~:(<(f@P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", -" Q. $+M.}...) Z)S.T!`~T!-*-*-*-*-*-*[(}(7^|('(P!s^&~7^6~Q~s~t]P~t~1(2(3(n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", -" Q.o+}.M 0 Y&V&F=`~T!-*4(5(6~|(A!O!8^^~S^7^Q~5~t~P~6(7(8(P/F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", -" #+P.n.k.&.H w{9(0(a(y]|('(P!s^&~S^6~Q~s~t]t~b(3/P/-*F=n.P.P.P.P.P.P.P.P.P.P.P.P.R@ ", -" Q.O.c(d(o/e(f(g(O!8^^~S^6~Q~5~t~t~h(i(P/-*-*F=n.P.P.P.P.P.P.P.P.P.P.@+ ", -" j(k(l(m(n(o(p(^~&~7^]~5~s~t~q(r(s(-*-*-*F=n.P.P.P.P.P.P.P.P. ", -" t(u(v( w(x(y(@/6~Q~s~t~z(A(2/-*-*-*-*F=n.P.P.P.P.P.P. ", -" B(C( D(]~5~t~E(F(G(N%5.T!T!-*F=n.P.P.P.P. ", -" H(I( J(k(s~K(L( /Q.#+#+n...w{T!n.P.P. ", -" M(N( O(P(Q(R( P.#+$+Q.P. ", -" S(T(U( V(W(X( ", -" Y(Z(`( _._+_ ", -" @_#_P($_%_&_*_=_-_ ", -" ;_>_,_'_)_!_~_ ", +" Q.O.p+o+o+Y$n.J.I.-$Q+Q+4.m%1!<%<%4.3.<%4.4.Q+f@I.n.n.n.o+o.0%j!O.@+P.P.P.~ /#/#/#/#/#k!R*i*l!k*m!'#_)4*l*n!o!=&]&_&p!p!y q!'*'*r!c%h,s!t!i&b#@>>,>,u!T)=!K'/).)()v!8)w!z)z)z)z)z)z):!x!y!z!A! B! ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#C!D!E!F!E*j*G!3*W)(&{ | =&x*[=H!/#/#/#I!Z&Z&Z&c%c%e F>J!,,K!p$3@@%M-K'.)n)f)8);!z)z)z)z)z)z)z)L!M!N!O!P! Q!R! ", +" P./=S!T!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=U!9&V!7.2*W!X!(&j*Y!Z!`!x*Q*!=/#/#/#/#/#/# ~P.8!c>e ,,M,.~C&;'T.+~@~g. $8)#~#~z)z)z)z)z)z)d!$~%~&~O!*~ =~-~ ", +" P.G%[;o*E!;~ ~T!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`. ~/#/#/#M%>~x*=&7.E*2*{ ,~| y*^&'~)~!~/#/#/#/#/#/#1*P.P.P.P.P..~;'9*8*8*9@E+q)>!m!0!v+6'z)z)z)z)z)F)~~{~]~^~/~ (~_~ ", +" P.c%E+E+E++)4*:~V!B#<~w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.<~/#!=_&R*i*V*E&7.| 7.[~-+x*}~B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.|~+)E+6*4*4*h)3*o*1~Q*p.x+b##*%)2~3~4~5~6~7~ 8~9~ ", +" P.0~p)3*R*/&a~b~c~X!j*d~e~D!f~Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+N)g~h~i~x*i*T*j~-+^&x*R*_&`)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P.k~k~o*M):!l*l~m~n~o~p~q~r~s~t~u~v~P.P. w~x~y~z~ ", +" P..~1~o*%@!*A~;*B~T*j*{ C~D~E~| E*F~G~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.H~-*} I~J~R*K~9&]&i~D!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o*l*(&l~L~M~G!N~q~s~O~P~Q~R~P.P.P.P.P.P.P. S~T~U~V~ ", +" P.W~l*(&!*}-X~0*Y~Z~T![-`~ {=&E&=&=&=&y*.{E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$+{s !*. a)+~@{#{${${/#/#e*1*/#e*%{. &{K.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.*{/&/&={-{s~O~;{5~>{,{'{P.P.P.P.P.P.){!{~{;{{{]{ ", +" P.^{/&/&}-*+/{F=F=T!({5.V&S._{-*:{<{[{9&R*R*}{|{`)1{2{s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r 3{}*i&V&Z~4{5{O):&[*D+6{Z)7{) P+J.P.P.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.8{9{0{O~a{;{b{4~c{d{e{f{g{v~h{i{j{k{;{l{;{m{ ", +" P.1~:~:~*+n{o{Z~Z~}=p{&{q{r{p.s{w t{u{v{w{S&N)#{g~#{C!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M x{! Z)y{5.Y~z{[-6{-*S.)*A{0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.B{C{D{r~E{;{F{G{H{a{I{J{K{L{M{N{O{P{Q{l{R{S{T{ ", +" P.U{2*,~V{Y~W{T!T!X{5.q{Y{p.Z{.*`{Z)}* ]g*! m .]Q +]@]#];~$]%];~|%. S.&]v I.a+$+#+Q.P.P.P.P.P.P.P.p.p{+]*]=]0*-]p.Z)1=a ;]*.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.>],]']r~E{a{U~b{)]!]Q{Q{)]U~a{U~)]~]{]]]l{^]/] ", +" P.(]_]| !@:]T!-*-*<]V&2{S.< i&[]v{}]|]1]1=2]9 a H I 3]M :.[]. 4]E@5]5]<~>)}-p{Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.>]6]0{4~O~a{;{F{G{)]!]Q{7]8]{{9]0]a]R{b]l{c]d]e] ", +" P.j*7.[~A*A*f]g]U&h]w*S.p.< .*w Z)Y&i]A{j]) A.k]H l]M@M P g.`.}.7@m]a!D+|%+~ ~n]o]}-T!1][.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.p]q]']4~r]E{;{U~b{)]H{Q{s]~]t]c]9]u]a]v]v]s]w]x]V{ ", +" P.y]z]F!e*f]=&T.V*V*x*A];*6{B]t{Z)}*1]C]! ) 0 x{r .v ]@N+&.`.-.1.3.4.n.<#}.D]({E]F]>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.G]H]I]P~s~O~a{U~b{G{H{J]s]7]8]{{9]u]a]a]~]P~K]x]L]}] ", +" P.o!-+-+%@!*M]!@N]!=x*x*c+i~Q*e*O]*+P]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+Q]S&R]:&S]=*T]X~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.U]V]W]]~s~r]E{;{F{G{)]!]Q{7]!]s~r]F{b{r]X]Y]Z]`]}= ^ ] ", +" P.7.i*.^!*}-X~0*Y~Z~-*. x&,.`)_&J~+^H!e*@^}-P]c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)#^D+$^%^. 4{*+&^6{-**^g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.=^-^;^5~r~r]O~a{U~b{)]H{J]s]J]>^,^'^)^!^~^{^]^^^A{! /^(^ ", +" P.=&]&]&}-*+/{F=F=T!({5.V&S._{5._^@^/=/#X*:^e*s%%{!*<^v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&[^:&G~}^*]T]p=*++]0*|^T!Z~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.1^2^I{3^4~s~O~E{;{F{G{H{!]Q{H{4^5^6^7^8^9^0^E x{.]9 ) 3{a^ ", +" P.|{Q*Q**+n{o{Z~Z~}=p{&{q{r{p.s{w t{u{v{b^c^d^B~/=e^6.f^ ~b%g^M [+4.Q@C+p+2+P.P.P.P.a)[*h^i^j^b%!*}-*++]F=k^-*-*-*T!Z~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.P.P.P.P.P.P.U]l^m^3^P~r~r]E{a{U~b{)]!]J]H{n^o^p^q^N M v ..K r^:.a 0 n s^ ", +" P.c+_&_&V{Y~W{T!T!X{5.q{Y{p.Z{.*`{Z)}* ]g*! m .]}]t^u^v^w^#!&@<~|%x^.*N 0%P.P.P.P.P.y^z^A^i^[-. !*}-:]-&F=T!-*-*-*-*-*-*-*T!Z~F=-*.*0 P }.I.O.Q.Q.Q.P.P.P.P.P.P.B^C^D^3^]~4~s~O~a{;{F{G{H{J]H{&~E^F^O+&.%.O N ^+3]{@s r G^m]H^ ", +" P.R*C!`)I^V{T!-*-*<]V&2{S.< i&[]v{}]|]1]1=2]9 a H I 3]M J^K^:]!@+~ ~|%L^x&O)< ..n.P.R]:&D+O)b%M^4{&^6{0*Z~T!-*-*-*-*-*-*-*-*-*-*-*T!Z~F=5.t{9 ..&.I.P.#+Q.Q.P.N^O^P^3^]~P~r~r]E{;{U~b{)]!]!]Q^R^S^>.i.`.&.g.#.N +.v ..s Y.r H ", +" P.[=!=T^!=!=%]<~U^V^w*S.p.< .*w Z)Y&i]A{j]) A.k]H l]M@M P g.`.}.}.{+< [ ~ n]W^O'S&[-#^A^O)[-%@!*X^@~0*F=Z~Y^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!Z~Z~V&t{1=H g.n.Z^`^ /Q^5~P~r~s~O~a{U~b{G{H{H{./+/@/1!2.}.-.<.O+g.P $.N H~v .. .s ", +" P.#/5]$/%]%/ {X*X*X*:^,#S&F=B]t{Z)}*1]C]! ) 0 x{r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%y^:&D+O)%^. !**+6{0*F=T!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*T!T!T!w*&/*/=/Q^3^]~4~r~r]E{;{F{b{)]H{3^-/;/I.n+<%M&>/}.[.`.&.g.P N N M ;]]+ ", +" P.8+v+1.Z)D+ ~,#/=1*,/'/e*s%s%,#O'F=P]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+G~[-. !*v&*+n{F=Z~T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*)/!/~/&~Q^5~P~r~s~O~a{U~b{G{)]5~{/]/S+o+n.f@r$G.!!}.[.`.*.F#g.P O N M ", +" P.#+8+9+#+_+w b%^///=+e*s%B~g](/_/~!!@:/.}.[.<. ", +" $+P.4.g.H t{n/%{o/,#a&%{L^p/;*x&0!*+q/Z.0%P.P.P.P.P.b%. !*}-*+6{0*F=T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*r/s/t/&~n^&~3^5~P~r~r]E{a{U~b{P~u/v/P.P.P.P.P.P.P.O.p+M.o+Q@n.I.-$<%[+<+k.k.}. ", +" Q.O.I.F.N t{b% ~+~|%w/U&~ !@O'S&a)x/w M o+P.b%d/!*y/6{0*z/k^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*h/A/B/&~4^^~Q^5~P~4~s~O~a{;{F{4~C/D/P.P.P.P.P.P.P.P.P.P.O.p+M.o+g@m.I.4.l.[+2.<+ ", +" P.O.M.o+g.w =*E/U&F/G/a)H/:&D+[/%^&^. !*}-*+0*I/J/T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*9/K/L/&~4^n^&~3^]~4~s~r]E{;{F{r~M/D/P.P.P.P.P.P.P.P.P.P.P.P.O.O.p+M.|+Y$-%}+I.-$4. ", +" P.P.P.P.p+N < =*N/#^H/O)7/%^%@M^}-v&:]0*O/P/}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}=Q/R/&~O!n^&~Q^]~P~4~s~E{a{U~r~S/T/P.P.P.P.P.P.P.P.P.P.P.P.P.P.r+[%O.p+M.M.L.K.-$4. ", +" P.Q.#+$+M. .Z*U/%@!*. V/v&h]W/F=9/w{-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/Y/Z/&~N!4^^~Q^3^]~4~s~r]E{;{`/ (.(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+O.++o+n. ", +" P.#+$+a+f@H +(Z~P/@(I/T&T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*#($(./%(O!n^&~Q^]~4~r~r]O~a{s~&(*(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.p+o+ ", +" P.Q.$+a+#+1.H t{< S.p{T!T!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*X/=(-(Q^%(N!4^^~Q^3^]~r~s~O~a{s~;(>(P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", +" P.#+a+a+P.k.s 1]t{p.p{Z~T!-*-*-*-*-*-*-*-*-*-*-*,('(Q^z!%(4^n^&~3^5~P~s~r]E{s~)(!(n+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.o+ ", +" Q. $+M.}...) Z)S.T!Z~T!-*-*-*-*-*-*,(~(3^{(%(O!n^&~3^5~P~r~r]O~s~](^(/(n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", +" Q.o+}.M 0 Y&V&F=Z~T!-*((_(5~{(z!N!4^^~Q^3^P~4~s~O~:(<([(}=F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M. ", +" #+P.n.k.&.H t{}(|(1(w]{(%(O!n^&~Q^5~P~r~r]s~2(1/}=-*F=n.P.P.P.P.P.P.P.P.P.P.P.P.R@ ", +" Q.O.3(4(k/5(6(7(N!4^^~Q^5~P~4~s~s~8(9(9/-*-*F=n.P.P.P.P.P.P.P.P.P.P.@+ ", +" 0(k/a(b(c(d(e(^~&~3^]~4~r~s~f(g(L]-*-*-*F=n.P.P.P.P.P.P.P.P. ", +" h(i(j( 1^k(l(./5~P~r~s~m(n(|/-*-*-*-*F=n.P.P.P.P.P.P. ", +" o(p( q(]~4~s~r(s(t(N%5.T!T!-*F=n.P.P.P.P. ", +" u(v( w(x(r~y(z(A(Q.#+#+n...t{T!n.P.P. ", +" B(C( D(E(F(G( P.#+$+Q.P. ", +" H(I(J( K(L(M( ", +" N(O(P( Q(R(S( ", +" T(U(V(W(X(Y(Z(`( _ ", +" ._+_@_#_$_%_&_ ", " ", " "}; diff --git a/src/Mod/Ship/Icons/SimRunIco.png b/src/Mod/Ship/Icons/SimRunIco.png new file mode 100644 index 0000000000000000000000000000000000000000..f10386cf77f0dccf33f6e347820703a618102a00 GIT binary patch literal 15466 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 KQnf&n(EkHdBM+Pa literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/Icons/SimRunIco.xpm b/src/Mod/Ship/Icons/SimRunIco.xpm new file mode 100644 index 000000000..44cd8b4ab --- /dev/null +++ b/src/Mod/Ship/Icons/SimRunIco.xpm @@ -0,0 +1,2723 @@ +/* XPM */ +static char * SimRunIco_xpm[] = { +"128 128 2592 2", +" c None", +". c #7B7B7B", +"+ c #EAEAEA", +"@ c #E9EAE9", +"# c #E9E9E9", +"$ c #E9E9E8", +"% c #D9D9D9", +"& c #EAEAE9", +"* c #E8E9E8", +"= c #E9E8E8", +"- c #E8E8E8", +"; c #E8E8E7", +"> c #E7E7E7", +", c #E7E6E7", +"' c #E6E6E6", +") c #5F5F5F", +"! c #606060", +"~ c #868686", +"{ c #AEAEAE", +"] c #C3C2C2", +"^ c #D1D1D1", +"/ c #E4E3E3", +"( c #E5E6E5", +"_ c #E6E5E5", +": c #E5E4E5", +"< c #6B6B6B", +"[ c #7B7A7A", +"} c #888889", +"| c #ABABAB", +"1 c #D5D5D5", +"2 c #E5E6E6", +"3 c #E5E5E5", +"4 c #E4E5E4", +"5 c #E4E4E4", +"6 c #E3E3E3", +"7 c #E3E3E2", +"8 c #E2E2E2", +"9 c #5E5E5E", +"0 c #5D5D5D", +"a c #5C5C5C", +"b c #5B5B5C", +"c c #5A5B5B", +"d c #838484", +"e c #BABABA", +"f c #DEDEDE", +"g c #E2E3E2", +"h c #E1E2E2", +"i c #E1E1E2", +"j c #E0E1E0", +"k c #E1E1E1", +"l c #EAE9E9", +"m c #5E5F5F", +"n c #5E5D5E", +"o c #5C5D5C", +"p c #5B5C5B", +"q c #5B5A5A", +"r c #5A5A5A", +"s c #595959", +"t c #595858", +"u c #585857", +"v c #575757", +"w c #686868", +"x c #909090", +"y c #BEBEBE", +"z c #D3D2D3", +"A c #E0E0E0", +"B c #E0DFE0", +"C c #E0DFDF", +"D c #DEDEDF", +"E c #5F5E5E", +"F c #5E5D5D", +"G c #5C5B5B", +"H c #5B5B5B", +"I c #5A5A59", +"J c #595A59", +"K c #595859", +"L c #585757", +"M c #565656", +"N c #555555", +"O c #545455", +"P c #545454", +"Q c #676666", +"R c #717272", +"S c #8B8B8A", +"T c #B7B7B8", +"U c #DFDFDF", +"V c #DDDDDD", +"W c #DCDDDD", +"X c #DDDCDC", +"Y c #E8E9E9", +"Z c #5D5E5E", +"` c #5C5B5C", +" . c #595958", +".. c #585858", +"+. c #565657", +"@. c #555556", +"#. c #545554", +"$. c #555454", +"%. c #535354", +"&. c #525252", +"*. c #525251", +"=. c #515050", +"-. c #4F5050", +";. c #4F4F50", +">. c #4E4F4F", +",. c #959595", +"'. c #CAC9C9", +"). c #D9D9DA", +"!. c #DADBDA", +"~. c #DCDCDC", +"{. c #DDDDDC", +"]. c #DBDCDB", +"^. c #DBDBDB", +"/. c #DADADB", +"(. c #DADADA", +"_. c #E8E8E9", +":. c #5B5A5B", +"<. c #505151", +"[. c #505050", +"}. c #4F4F4F", +"|. c #4E4D4E", +"1. c #4D4D4D", +"2. c #4C4D4D", +"3. c #4C4C4C", +"4. c #4B4B4B", +"5. c #707070", +"6. c #959596", +"7. c #AAAAAA", +"8. c #BFBEBF", +"9. c #D7D7D6", +"0. c #DADAD9", +"a. c #D9DADA", +"b. c #D8D9D9", +"c. c #5B5C5C", +"d. c #5A5B5A", +"e. c #5A5959", +"f. c #565757", +"g. c #535353", +"h. c #535253", +"i. c #505150", +"j. c #4F504F", +"k. c #4E4E4E", +"l. c #4C4B4B", +"m. c #494A49", +"n. c #494949", +"o. c #484747", +"p. c #6C6C6C", +"q. c #C7C7C7", +"r. c #DAD9D9", +"s. c #D9D8D9", +"t. c #D9D8D8", +"u. c #D8D8D8", +"v. c #D8D8D7", +"w. c #D7D8D8", +"x. c #D7D7D7", +"y. c #D6D6D6", +"z. c #D5D5D6", +"A. c #5E5E5D", +"B. c #595A5A", +"C. c #575656", +"D. c #545555", +"E. c #4F4E4E", +"F. c #4E4E4D", +"G. c #4C4D4C", +"H. c #4C4B4C", +"I. c #4A4A4A", +"J. c #494A4A", +"K. c #494848", +"L. c #484847", +"M. c #474747", +"N. c #474646", +"O. c #454545", +"P. c #444444", +"Q. c #434343", +"R. c #434243", +"S. c #6D6D6D", +"T. c #A7A8A7", +"U. c #D0D0D0", +"V. c #D4D4D4", +"W. c #D6D5D5", +"X. c #E7E8E8", +"Y. c #59595A", +"Z. c #535454", +"`. c #515151", +" + c #4D4D4C", +".+ c #464647", +"++ c #464545", +"@+ c #444545", +"#+ c #424242", +"$+ c #414141", +"%+ c #404041", +"&+ c #3F4040", +"*+ c #787878", +"=+ c #969696", +"-+ c #A7A7A7", +";+ c #C3C3C2", +">+ c #D5D4D5", +",+ c #D4D4D5", +"'+ c #D3D4D4", +")+ c #D3D3D3", +"!+ c #D2D3D3", +"~+ c #E6E7E6", +"{+ c #5A5A5B", +"]+ c #575858", +"^+ c #575657", +"/+ c #555656", +"(+ c #565555", +"_+ c #525352", +":+ c #515051", +"<+ c #4D4D4E", +"[+ c #4D4C4C", +"}+ c #4A4A49", +"|+ c #474848", +"1+ c #464747", +"2+ c #444544", +"3+ c #434342", +"4+ c #434142", +"5+ c #404141", +"6+ c #403F3F", +"7+ c #3F3E3E", +"8+ c #3E3E3E", +"9+ c #3D3D3D", +"0+ c #3C3C3C", +"a+ c #404040", +"b+ c #707071", +"c+ c #A4A5A5", +"d+ c #D4D3D3", +"e+ c #D3D2D2", +"f+ c #D2D2D2", +"g+ c #D2D2D1", +"h+ c #D1D0D0", +"i+ c #D0D1D0", +"j+ c #CFD0CF", +"k+ c #525353", +"l+ c #525152", +"m+ c #504F4F", +"n+ c #4B4A4A", +"o+ c #484848", +"p+ c #464646", +"q+ c #454544", +"r+ c #454444", +"s+ c #424343", +"t+ c #414142", +"u+ c #403F40", +"v+ c #3F3F3F", +"w+ c #3C3D3C", +"x+ c #3B3B3B", +"y+ c #3A3A3A", +"z+ c #3A3A39", +"A+ c #383838", +"B+ c #373737", +"C+ c #474847", +"D+ c #7F7F7F", +"E+ c #B6B6B6", +"F+ c #C8C9C8", +"G+ c #CBCBCB", +"H+ c #CFD0D0", +"I+ c #D0D0CF", +"J+ c #D0CFD0", +"K+ c #CFCFCF", +"L+ c #CECECE", +"M+ c #CECDCE", +"N+ c #545453", +"O+ c #525151", +"P+ c #4F4E4F", +"Q+ c #4A4B4B", +"R+ c #4A494A", +"S+ c #474647", +"T+ c #454645", +"U+ c #404140", +"V+ c #3E3E3F", +"W+ c #3D3E3E", +"X+ c #3D3C3C", +"Y+ c #3C3B3C", +"Z+ c #3C3B3B", +"`+ c #3A3939", +" @ c #383839", +".@ c #363637", +"+@ c #353636", +"@@ c #353535", +"#@ c #343434", +"$@ c #333333", +"%@ c #7B7B7C", +"&@ c #919190", +"*@ c #ACACAB", +"=@ c #C9C9C9", +"-@ c #CECFCE", +";@ c #CECECD", +">@ c #CDCDCD", +",@ c #CDCDCC", +"'@ c #CCCCCC", +")@ c #CCCCCB", +"!@ c #858585", +"~@ c #E6E5E6", +"{@ c #585859", +"]@ c #565655", +"^@ c #545354", +"/@ c #4E4F4E", +"(@ c #4C4C4D", +"_@ c #4B4B4A", +":@ c #484748", +"<@ c #434344", +"[@ c #3D3C3D", +"}@ c #393839", +"|@ c #373636", +"1@ c #333334", +"2@ c #323332", +"3@ c #323232", +"4@ c #313131", +"5@ c #303131", +"6@ c #383939", +"7@ c #50504F", +"8@ c #7E7F7E", +"9@ c #B6B7B6", +"0@ c #CBCBCC", +"a@ c #CBCBCA", +"b@ c #CACACA", +"c@ c #CAC9CA", +"d@ c #575857", +"e@ c #515150", +"f@ c #4A4A4B", +"g@ c #494849", +"h@ c #474746", +"i@ c #464547", +"j@ c #434444", +"k@ c #424141", +"l@ c #3D3D3E", +"m@ c #3B3C3B", +"n@ c #3B3B3A", +"o@ c #383737", +"p@ c #363737", +"q@ c #363636", +"r@ c #353635", +"s@ c #343433", +"t@ c #333233", +"u@ c #313132", +"v@ c #323131", +"w@ c #303030", +"x@ c #2F2F2F", +"y@ c #2F2F2E", +"z@ c #2E2E2F", +"A@ c #2D2C2D", +"B@ c #2C2D2D", +"C@ c #2C2C2C", +"D@ c #2C2B2C", +"E@ c #939393", +"F@ c #B9BAB9", +"G@ c #C0C0C0", +"H@ c #C7C6C7", +"I@ c #CACAC9", +"J@ c #C9C9C8", +"K@ c #C8C8C9", +"L@ c #C8C8C8", +"M@ c #585758", +"N@ c #535152", +"O@ c #504F50", +"P@ c #4B4C4A", +"Q@ c #494948", +"R@ c #454646", +"S@ c #434443", +"T@ c #414241", +"U@ c #3F3F40", +"V@ c #3F3E3F", +"W@ c #3E3E3D", +"X@ c #3D3C3E", +"Y@ c #393939", +"Z@ c #373838", +"`@ c #363535", +" # c #343334", +".# c #313232", +"+# c #2E2E2E", +"@# c #2D2D2D", +"## c #2C2B2B", +"$# c #2B2B2B", +"%# c #2A2A2A", +"&# c #29292A", +"*# c #292929", +"=# c #282828", +"-# c #383938", +";# c #5D5E5D", +"># c #7A797A", +",# c #919191", +"'# c #B3B2B3", +")# c #C8C7C8", +"!# c #C8C7C7", +"~# c #C8C8C7", +"{# c #C7C7C6", +"]# c #C6C6C7", +"^# c #C6C6C5", +"/# c #9D9D9D", +"(# c #E4E4E5", +"_# c #4A4B4A", +":# c #484949", +"<# c #474748", +"[# c #444443", +"}# c #424241", +"|# c #3C3D3D", +"1# c #3B3A3B", +"2# c #383837", +"3# c #353434", +"4# c #333434", +"5# c #313031", +"6# c #302F2F", +"7# c #2D2D2E", +"8# c #2A2B2B", +"9# c #292A2A", +"0# c #292828", +"a# c #282928", +"b# c #272727", +"c# c #262626", +"d# c #242524", +"e# c #C6C6C6", +"f# c #C5C5C5", +"g# c #C5C5C6", +"h# c #424243", +"i# c #3B3A3A", +"j# c #383738", +"k# c #343534", +"l# c #343333", +"m# c #313130", +"n# c #302F30", +"o# c #2D2C2C", +"p# c #2C2C2D", +"q# c #272626", +"r# c #252625", +"s# c #262525", +"t# c #242424", +"u# c #232423", +"v# c #222223", +"w# c #222222", +"x# c #212121", +"y# c #1F1F20", +"z# c #30302F", +"A# c #6A696A", +"B# c #A0A09F", +"C# c #C5C6C5", +"D# c #E3E4E4", +"E# c #555655", +"F# c #535352", +"G# c #4E4D4D", +"H# c #424142", +"I# c #414040", +"J# c #3F403F", +"K# c #3C3C3D", +"L# c #39393A", +"M# c #383637", +"N# c #323233", +"O# c #323132", +"P# c #303031", +"Q# c #2F2E2E", +"R# c #2E2E2D", +"S# c #2B2C2C", +"T# c #2B2A2A", +"U# c #272627", +"V# c #252525", +"W# c #242423", +"X# c #232222", +"Y# c #212221", +"Z# c #202021", +"`# c #202020", +" $ c #1F1F1F", +".$ c #1E1E1F", +"+$ c #1E1D1D", +"@$ c #1D1C1D", +"#$ c #C4C5C5", +"$$ c #C4C4C4", +"%$ c #525253", +"&$ c #515252", +"*$ c #4E4E4F", +"=$ c #4D4C4D", +"-$ c #4B4A4B", +";$ c #414041", +">$ c #3C3C3B", +",$ c #393938", +"'$ c #363536", +")$ c #353435", +"!$ c #333433", +"~$ c #2B2A2B", +"{$ c #2A2B2A", +"]$ c #292829", +"^$ c #262627", +"/$ c #252624", +"($ c #252424", +"_$ c #222322", +":$ c #20201F", +"<$ c #1E1F1E", +"[$ c #1D1D1D", +"}$ c #1C1D1D", +"|$ c #1C1C1C", +"1$ c #C4C5C4", +"2$ c #4F4F4E", +"3$ c #444344", +"4$ c #3E3F3E", +"5$ c #3E3D3E", +"6$ c #393A39", +"7$ c #393838", +"8$ c #363736", +"9$ c #2F302F", +"0$ c #2D2E2D", +"a$ c #2E2D2E", +"b$ c #2D2D2C", +"c$ c #2B2B2C", +"d$ c #2B2B2A", +"e$ c #262526", +"f$ c #242324", +"g$ c #232324", +"h$ c #212222", +"i$ c #202121", +"j$ c #1F2020", +"k$ c #1F1F1E", +"l$ c #1D1C1C", +"m$ c #1B1B1C", +"n$ c #C4C4C3", +"o$ c #E3E2E3", +"p$ c #555455", +"q$ c #515251", +"r$ c #4B4C4C", +"s$ c #3D3E3D", +"t$ c #3B3D3C", +"u$ c #3A3A3B", +"v$ c #373837", +"w$ c #373637", +"x$ c #2F2E2F", +"y$ c #232323", +"z$ c #1E1E1D", +"A$ c #1B1C1C", +"B$ c #1C1B1B", +"C$ c #1B1B1B", +"D$ c #C3C4C4", +"E$ c #C3C3C3", +"F$ c #464546", +"G$ c #3E3F3F", +"H$ c #3E3D3D", +"I$ c #3D3D3C", +"J$ c #3A3B3B", +"K$ c #323333", +"L$ c #313030", +"M$ c #2F3030", +"N$ c #2E2F2F", +"O$ c #2D2D2B", +"P$ c #2A2B29", +"Q$ c #292A29", +"R$ c #282726", +"S$ c #202120", +"T$ c #1E1E1E", +"U$ c #19191A", +"V$ c #C3C3C4", +"W$ c #E2E1E1", +"X$ c #4A4949", +"Y$ c #484849", +"Z$ c #3A3B3A", +"`$ c #373738", +" % c #373736", +".% c #252425", +"+% c #222122", +"@% c #212122", +"#% c #1A1B1B", +"$% c #1B1A1A", +"%% c #1A1919", +"&% c #E2E1E2", +"*% c #E1E0E1", +"=% c #505051", +"-% c #49494A", +";% c #1A1A1A", +">% c #3A393A", +",% c #2E2F2E", +"'% c #282727", +")% c #242425", +"!% c #232322", +"~% c #1E1F1F", +"{% c #1B1C1B", +"]% c #1A191A", +"^% c #191A19", +"/% c #191918", +"(% c #C2C2C2", +"_% c #E0E1E1", +":% c #E1E1E0", +"<% c #4B4B4C", +"[% c #454445", +"}% c #161515", +"|% c #8B8B8B", +"1% c #2C2C2B", +"2% c #282827", +"3% c #272728", +"4% c #262727", +"5% c #1F1E1F", +"6% c #1A1A19", +"7% c #181818", +"8% c #C1C1C2", +"9% c #E1E0E0", +"0% c #464746", +"a% c #111111", +"b% c #7C7C7C", +"c% c #BBBBBB", +"d% c #969697", +"e% c #5F5F5C", +"f% c #33332F", +"g% c #28292A", +"h% c #262726", +"i% c #201F20", +"j% c #1F201F", +"k% c #191919", +"l% c #171717", +"m% c #4C4C4B", +"n% c #444445", +"o% c #444343", +"p% c #1A1717", +"q% c #211515", +"r% c #2D2B2B", +"s% c #999999", +"t% c #B3B3B5", +"u% c #8B8BB2", +"v% c #6F6F89", +"w% c #4A4A4F", +"x% c #2A2929", +"y% c #2B2C2B", +"z% c #2A292A", +"A% c #232424", +"B% c #212120", +"C% c #181718", +"D% c #171818", +"E% c #171716", +"F% c #C1C1C1", +"G% c #C0C1C1", +"H% c #DFE0E0", +"I% c #484948", +"J% c #422121", +"K% c #552D2D", +"L% c #363232", +"M% c #A0A0A0", +"N% c #646464", +"O% c #ABABAE", +"P% c #7575C7", +"Q% c #5C5CD5", +"R% c #7878BD", +"S% c #7B7B8E", +"T% c #585855", +"U% c #30302E", +"V% c #2A2A29", +"W% c #212020", +"X% c #201E1F", +"Y% c #1E1D1E", +"Z% c #1C1C1D", +"`% c #1A1B1A", +" & c #191A1A", +".& c #171616", +"+& c #161616", +"@& c #C0C0C1", +"#& c #414242", +"$& c #1F1C1C", +"%& c #542424", +"&& c #4C2625", +"*& c #585756", +"=& c #A8A8A8", +"-& c #767677", +";& c #9D9D9E", +">& c #8A8AAD", +",& c #5A5AC4", +"'& c #3838D7", +")& c #3434D9", +"!& c #4848BD", +"~& c #535372", +"{& c #878888", +"]& c #A4A4A4", +"^& c #A7A6A6", +"/& c #B0B0B0", +"(& c #B1B1B1", +"_& c #A1A1A1", +":& c #808080", +"<& c #151515", +"[& c #242525", +"}& c #1D1E1E", +"|& c #1A1A1B", +"1& c #191819", +"2& c #181817", +"3& c #161717", +"4& c #151516", +"5& c #C1C0C0", +"6& c #DFDEDE", +"7& c #5B2020", +"8& c #391A19", +"9& c #A4A4A5", +"0& c #878687", +"a& c #8E8E8E", +"b& c #9B9B98", +"c& c #999994", +"d& c #888898", +"e& c #6C6BA8", +"f& c #4F4FBD", +"g& c #50508B", +"h& c #CECDCD", +"i& c #6A6A6A", +"j& c #242323", +"k& c #222121", +"l& c #1F1E1E", +"m& c #1C1D1C", +"n& c #151514", +"o& c #BFC0BF", +"p& c #DFDFDE", +"q& c #434445", +"r& c #3F3E40", +"s& c #1B1212", +"t& c #611717", +"u& c #301414", +"v& c #797878", +"w& c #9C9C9D", +"x& c #888888", +"y& c #8A8A89", +"z& c #868688", +"A& c #7C7C8F", +"B& c #45455C", +"C& c #B8B8B8", +"D& c #C5C4C4", +"E& c #AAA9A9", +"F& c #252523", +"G& c #222323", +"H& c #171817", +"I& c #161516", +"J& c #141514", +"K& c #141313", +"L& c #C0BFBF", +"M& c #4D4E4E", +"N& c #464645", +"O& c #1B0F0F", +"P& c #570D0D", +"Q& c #270D0D", +"R& c #706F6F", +"S& c #838383", +"T& c #757474", +"U& c #878787", +"V& c #6F6F6F", +"W& c #5C5C5A", +"X& c #353533", +"Y& c #656565", +"Z& c #BCBCBC", +"`& c #BFBFBF", +" * c #C1C2C1", +".* c #696969", +"+* c #1D1D1E", +"@* c #191818", +"#* c #131313", +"$* c #DDDEDD", +"%* c #110F0F", +"&* c #220B0B", +"** c #201B1B", +"=* c #7D7D7C", +"-* c #727272", +";* c #898989", +">* c #BBBBBA", +",* c #BCBCBB", +"'* c #BDBDBD", +")* c #676868", +"!* c #7A7A7A", +"~* c #1D1D1C", +"{* c #181918", +"]* c #141414", +"^* c #131314", +"/* c #131312", +"(* c #BEBFBF", +"_* c #454546", +":* c #3B3B3C", +"<* c #181919", +"[* c #818181", +"}* c #656465", +"|* c #888787", +"1* c #9B9B9B", +"2* c #ADADAD", +"3* c #B4B4B4", +"4* c #B5B5B5", +"5* c #B5B5B4", +"6* c #B6B6B5", +"7* c #B6B6B7", +"8* c #B7B7B7", +"9* c #B7B8B8", +"0* c #767676", +"a* c #121213", +"b* c #212021", +"c* c #141413", +"d* c #111212", +"e* c #9A9A9A", +"f* c #515152", +"g* c #616162", +"h* c #949495", +"i* c #A6A6A6", +"j* c #AFAFAF", +"k* c #ACADAD", +"l* c #B2B2B2", +"m* c #B0B0AF", +"n* c #AFAFB0", +"o* c #B3B3B3", +"p* c #B5B4B4", +"q* c #1C1B1C", +"r* c #131414", +"s* c #121313", +"t* c #121212", +"u* c #BEBDBD", +"v* c #DCDCDD", +"w* c #6E6E6E", +"x* c #A5A5A5", +"y* c #A9A9A9", +"z* c #ABABAA", +"A* c #AAAAA9", +"B* c #ABA9A9", +"C* c #ABAAAB", +"D* c #ABABAC", +"E* c #ACACAC", +"F* c #666766", +"G* c #141314", +"H* c #1D1E1D", +"I* c #1B1A1B", +"J* c #131213", +"K* c #101111", +"L* c #586362", +"M* c #5D6F74", +"N* c #596767", +"O* c #555A58", +"P* c #A2A2A3", +"Q* c #A2A2A2", +"R* c #A3A3A3", +"S* c #A5A5A3", +"T* c #A6A7A7", +"U* c #A5A4A5", +"V* c #A8A7A7", +"W* c #A9A8A9", +"X* c #9C9C9C", +"Y* c #424342", +"Z* c #6C6D6C", +"`* c #101010", +" = c #151616", +".= c #131412", +"+= c #101110", +"@= c #0F0F0F", +"#= c #BDBCBD", +"$= c #DBDCDC", +"%= c #7FA3AE", +"&= c #79A5EC", +"*= c #5F80EB", +"== c #485FD4", +"-= c #4758B4", +";= c #516392", +">= c #586874", +",= c #55605F", +"'= c #393A3A", +")= c #2D2E2F", +"!= c #9E9E9E", +"~= c #979897", +"{= c #9A9B9B", +"]= c #929493", +"^= c #8C8D8D", +"/= c #979797", +"(= c #989999", +"_= c #969898", +":= c #979898", +"<= c #9B9C9C", +"[= c #A2A1A2", +"}= c #737272", +"|= c #A6A5A6", +"1= c #616161", +"2= c #1B1B1A", +"3= c #181717", +"4= c #161615", +"5= c #151414", +"6= c #121112", +"7= c #111110", +"8= c #7A9DAE", +"9= c #597AF5", +"0= c #5373F9", +"a= c #668CFC", +"b= c #5D80FC", +"c= c #5271FB", +"d= c #5576F5", +"e= c #739AE6", +"f= c #7495A5", +"g= c #607578", +"h= c #54646B", +"i= c #58686B", +"j= c #505A59", +"k= c #484B4B", +"l= c #323432", +"m= c #919292", +"n= c #959494", +"o= c #878686", +"p= c #7A7979", +"q= c #7C7777", +"r= c #807778", +"s= c #776F6F", +"t= c #706565", +"u= c #7B6C6B", +"v= c #847171", +"w= c #7C6B6B", +"x= c #746464", +"y= c #736262", +"z= c #7A6969", +"A= c #807070", +"B= c #807676", +"C= c #807C7C", +"D= c #949696", +"E= c #9E9F9F", +"F= c #757575", +"G= c #171617", +"H= c #151615", +"I= c #141415", +"J= c #121111", +"K= c #0F1010", +"L= c #0F0F10", +"M= c #0E0F0E", +"N= c #BDBDBC", +"O= c #5B6766", +"P= c #799CA3", +"Q= c #76979D", +"R= c #6F8D9F", +"S= c #97CEEF", +"T= c #76A2FB", +"U= c #4C69FC", +"V= c #1B27FD", +"W= c #3549F4", +"X= c #5979E3", +"Y= c #698DE4", +"Z= c #77A2F2", +"`= c #688EE1", +" - c #5C78C4", +".- c #576FA2", +"+- c #55697C", +"@- c #4D5C5F", +"#- c #333E39", +"$- c #3D3B37", +"%- c #6F6766", +"&- c #786868", +"*- c #7D6666", +"=- c #947676", +"-- c #9C7979", +";- c #9D7676", +">- c #AB7E7E", +",- c #BA8888", +"'- c #B88585", +")- c #B17E7E", +"!- c #B57E7E", +"~- c #BD8383", +"{- c #BD8181", +"]- c #B07777", +"^- c #A06A6A", +"/- c #956161", +"(- c #8A5B5B", +"_- c #7D5858", +":- c #755F5F", +"<- c #807878", +"[- c #7D7D7D", +"}- c #797979", +"|- c #131212", +"1- c #0F0F0E", +"2- c #0D0E0E", +"3- c #BCBBBC", +"4- c #DBDADB", +"5- c #424545", +"6- c #4F5756", +"7- c #9BD0D5", +"8- c #6D96FC", +"9- c #435DFC", +"0- c #3E55FC", +"a- c #5270FC", +"b- c #5878F8", +"c- c #4862F2", +"d- c #435DF8", +"e- c #4D6BF8", +"f- c #597BFC", +"g- c #5B7DFB", +"h- c #5E81FB", +"i- c #678DEF", +"j- c #7198D3", +"k- c #354658", +"l- c #5B4442", +"m- c #B6817F", +"n- c #C68B8B", +"o- c #C38787", +"p- c #C78888", +"q- c #CE8C8C", +"r- c #CA8686", +"s- c #C68181", +"t- c #C78080", +"u- c #C87F7F", +"v- c #C57B7B", +"w- c #C37777", +"x- c #C07373", +"y- c #C17271", +"z- c #C17070", +"A- c #BF6B6B", +"B- c #BB6767", +"C- c #B15F5F", +"D- c #9E5453", +"E- c #744343", +"F- c #302929", +"G- c #161617", +"H- c #141515", +"I- c #131413", +"J- c #100F10", +"K- c #0F0E0E", +"L- c #0E0E0E", +"M- c #0D0D0D", +"N- c #BBBCBB", +"O- c #DAD9DA", +"P- c #40403F", +"Q- c #739297", +"R- c #78A2E4", +"S- c #7AA6E2", +"T- c #86B1C5", +"U- c #6A879E", +"V- c #6A879A", +"W- c #708F95", +"X- c #7C9FA0", +"Y- c #5F7788", +"Z- c #576C96", +"`- c #5974B8", +" ; c #5774D8", +".; c #4B67F1", +"+; c #4661FD", +"@; c #3549D3", +"#; c #2F236D", +"$; c #A86F81", +"%; c #C17777", +"&; c #C27472", +"*; c #C17272", +"=; c #BE6F6F", +"-; c #BC6C6C", +";; c #BC6969", +">; c #BA6766", +",; c #B96363", +"'; c #B86060", +"); c #B75D5D", +"!; c #B55B5B", +"~; c #B35757", +"{; c #B25554", +"]; c #B15251", +"^; c #B04F4F", +"/; c #AF4C4C", +"(; c #AF4A49", +"_; c #763030", +":; c #291313", +"<; c #0C0C0C", +"[; c #BBBBBC", +"}; c #434241", +"|; c #49504F", +"1; c #697F7E", +"2; c #607270", +"3; c #464C4B", +"4; c #454748", +"5; c #3B3D3D", +"6; c #454848", +"7; c #4D5353", +"8; c #637D7F", +"9; c #7BA3C0", +"0; c #688EE9", +"a; c #364CD9", +"b; c #564EC6", +"c; c #8F639C", +"d; c #B06D77", +"e; c #B75A55", +"f; c #B55753", +"g; c #B25352", +"h; c #B15050", +"i; c #B04E4D", +"j; c #AE4A4A", +"k; c #AD4747", +"l; c #AC4444", +"m; c #AA4242", +"n; c #A93F3F", +"o; c #A83C3C", +"p; c #A63939", +"q; c #A53636", +"r; c #A43333", +"s; c #8F2C2C", +"t; c #451616", +"u; c #541A1A", +"v; c #663B3B", +"w; c #848383", +"x; c #1C1A1C", +"y; c #0E0F0F", +"z; c #0E0D0D", +"A; c #0D0D0C", +"B; c #BBBABB", +"C; c #BABBBA", +"D; c #D9DAD9", +"E; c #3E4645", +"F; c #5A6F74", +"G; c #7094BE", +"H; c #5A7EF1", +"I; c #3F52F7", +"J; c #4A49DD", +"K; c #6E3D9B", +"L; c #914B73", +"M; c #A13B45", +"N; c #A73735", +"O; c #A6332F", +"P; c #A42F2C", +"Q; c #A22C2B", +"R; c #A02B2C", +"S; c #9F2929", +"T; c #9E2626", +"U; c #9D2323", +"V; c #9B2020", +"W; c #9A1E1D", +"X; c #951919", +"Y; c #581010", +"Z; c #3B0909", +"`; c #7E1C1C", +" > c #671B1B", +".> c #2F2929", +"+> c #101011", +"@> c #0B0B0B", +"#> c #D8D9D8", +"$> c #3B3C3C", +"%> c #353534", +"&> c #353334", +"*> c #454949", +"=> c #6B8382", +"-> c #779FB5", +";> c #76A2EF", +">> c #5B72EE", +",> c #555CDE", +"'> c #623AA0", +")> c #762969", +"!> c #872F51", +"~> c #922C3C", +"{> c #952129", +"]> c #941619", +"^> c #950D0B", +"/> c #960B07", +"(> c #950B06", +"_> c #930907", +":> c #8F0707", +"<> c #680504", +"[> c #350200", +"}> c #4D0301", +"|> c #680D0E", +"1> c #391213", +"2> c #252E29", +"3> c #242B25", +"4> c #252A26", +"5> c #151415", +"6> c #121312", +"7> c #111211", +"8> c #10100F", +"9> c #0E0E0F", +"0> c #0D0C0D", +"a> c #0C0C0B", +"b> c #0A0A0B", +"c> c #B9BABA", +"d> c #2F2F30", +"e> c #313333", +"f> c #51656B", +"g> c #587293", +"h> c #5574C3", +"i> c #5170F4", +"j> c #4658F3", +"k> c #4A4BDB", +"l> c #5943B8", +"m> c #6B3E8F", +"n> c #793468", +"o> c #7F264C", +"p> c #7E1435", +"q> c #7E0320", +"r> c #82051B", +"s> c #70030D", +"t> c #2B0003", +"u> c #170002", +"v> c #3A0B12", +"w> c #35272C", +"x> c #3F5785", +"y> c #455FC7", +"z> c #4961B0", +"A> c #495E89", +"B> c #445664", +"C> c #3C4A49", +"D> c #0A0B0B", +"E> c #0A0A09", +"F> c #BAB9BA", +"G> c #2D2E2E", +"H> c #2E3030", +"I> c #323231", +"J> c #464C4C", +"K> c #6B8887", +"L> c #6C8FA1", +"M> c #6183BB", +"N> c #5071D2", +"O> c #4463E8", +"P> c #3E55F8", +"Q> c #414EED", +"R> c #4B45CF", +"S> c #5131AA", +"T> c #502EA3", +"U> c #2E1FA3", +"V> c #09089D", +"W> c #0A0B8D", +"X> c #202788", +"Y> c #5476B4", +"Z> c #7BAAF4", +"`> c #5879FB", +" , c #5D7FFD", +"., c #5C7FFB", +"+, c #658AF7", +"@, c #749FE8", +"#, c #6383A7", +"$, c #4B616A", +"%, c #394443", +"&, c #1C1F1F", +"*, c #100F0F", +"=, c #0B0B0C", +"-, c #0B0B0A", +";, c #0A0A0A", +">, c #090909", +",, c #B9B9B9", +"', c #333332", +"), c #303130", +"!, c #2E2D2D", +"~, c #2A2A2B", +"{, c #2B2D2D", +"], c #363F40", +"^, c #445358", +"/, c #526873", +"(, c #5C778D", +"_, c #607FA4", +":, c #5D7FBE", +"<, c #597ED6", +"[, c #577BE9", +"}, c #3E56B9", +"|, c #5E81D3", +"1, c #5574D4", +"2, c #425AD8", +"3, c #425BF1", +"4, c #3C54FB", +"5, c #3B52FC", +"6, c #4660FC", +"7, c #5574FC", +"8, c #5473FC", +"9, c #455FFC", +"0, c #4059F5", +"a, c #516EE2", +"b, c #6A91CA", +"c, c #587480", +"d, c #2E3636", +"e, c #0D0C0C", +"f, c #0C0B0C", +"g, c #0A090A", +"h, c #B8B9B8", +"i, c #D8D7D7", +"j, c #D7D7D8", +"k, c #333232", +"l, c #282B2C", +"m, c #363F41", +"n, c #4B5B5B", +"o, c #5B6F6D", +"p, c #3C4747", +"q, c #404D54", +"r, c #465861", +"s, c #495C67", +"t, c #577285", +"u, c #5E7EA0", +"v, c #5B7ABA", +"w, c #6084ED", +"x, c #5677FB", +"y, c #6388FC", +"z, c #82B3FB", +"A, c #86B8FB", +"B, c #5575FB", +"C, c #354AFC", +"D, c #4F6EF8", +"E, c #719BD3", +"F, c #62838E", +"G, c #4B6466", +"H, c #32403F", +"I, c #171919", +"J, c #0A0A0C", +"K, c #080908", +"L, c #070708", +"M, c #B9B8B9", +"N, c #B9B9B8", +"O, c #383937", +"P, c #2C2D2C", +"Q, c #252626", +"R, c #272C30", +"S, c #4E6676", +"T, c #5C7CB0", +"U, c #5A7CEB", +"V, c #4159FC", +"W, c #435CFC", +"X, c #374CFC", +"Y, c #3347FC", +"Z, c #1C27FD", +"`, c #222FFD", +" ' c #4864F7", +".' c #5C7EE9", +"+' c #7098D4", +"@' c #5A798B", +"#' c #394948", +"$' c #252A2A", +"%' c #0B0A0B", +"&' c #0B0A09", +"*' c #090808", +"=' c #070808", +"-' c #070707", +";' c #B8B7B8", +">' c #D6D7D7", +",' c #D7D6D7", +"'' c #343435", +")' c #2D2D2F", +"!' c #282929", +"~' c #2C2F2E", +"{' c #576E6D", +"]' c #6B90A6", +"^' c #658AE8", +"/' c #3245FD", +"(' c #3F56FC", +"_' c #84B6FB", +":' c #76A1DB", +"<' c #5370C0", +"[' c #4A65D9", +"}' c #455FF7", +"|' c #4661FA", +"1' c #5D7FE7", +"2' c #6D94B7", +"3' c #3C4D4D", +"4' c #0B0C0C", +"5' c #080809", +"6' c #060606", +"7' c #B7B8B7", +"8' c #D7D6D6", +"9' c #3F3F3E", +"0' c #363635", +"a' c #282829", +"b' c #1A1C1C", +"c' c #495F68", +"d' c #6B92CC", +"e' c #5474FC", +"f' c #75A0FB", +"g' c #769FA3", +"h' c #283137", +"i' c #364651", +"j' c #5B7A97", +"k' c #6C93DA", +"l' c #5979FB", +"m' c #4D6AFC", +"n' c #6283CF", +"o' c #4D676B", +"p' c #0D0D0E", +"q' c #0A0909", +"r' c #080808", +"s' c #070706", +"t' c #060605", +"u' c #D6D5D6", +"v' c #606061", +"w' c #272726", +"x' c #232223", +"y' c #212220", +"z' c #1C1C1B", +"A' c #3E4C4A", +"B' c #77A2C3", +"C' c #82B1EC", +"D' c #6A8F90", +"E' c #2B3332", +"F' c #55727E", +"G' c #6D95E0", +"H' c #658AFB", +"I' c #8EC3D8", +"J' c #283432", +"K' c #050505", +"L' c #B8B7B7", +"M' c #D6D6D5", +"N' c #C5C5C4", +"O' c #848484", +"P' c #252526", +"Q' c #181819", +"R' c #353E3D", +"S' c #4F6664", +"T' c #313D3D", +"U' c #111010", +"V' c #3F5255", +"W' c #53718E", +"X' c #688C93", +"Y' c #1D2425", +"Z' c #080707", +"`' c #050606", +" ) c #050406", +".) c #040404", +"+) c #B7B7B6", +"@) c #D3D3D2", +"#) c #292928", +"$) c #111312", +"%) c #0B0A0A", +"&) c #080807", +"*) c #080607", +"=) c #060505", +"-) c #050504", +";) c #D1D1D2", +">) c #858484", +",) c #272827", +"') c #0F100F", +")) c #0E0D0E", +"!) c #0C0D0C", +"~) c #080A09", +"{) c #090809", +"]) c #060707", +"^) c #060506", +"/) c #040505", +"() c #030303", +"_) c #B6B5B5", +":) c #CFCECF", +"<) c #CFCECE", +"[) c #BDBEBE", +"}) c #0E0D0F", +"|) c #0C0D0D", +"1) c #0C0B0B", +"2) c #0A0B0A", +"3) c #090A0A", +"4) c #070807", +"5) c #050506", +"6) c #040303", +"7) c #030403", +"8) c #020202", +"9) c #CFCFCE", +"0) c #CDCCCC", +"a) c #828282", +"b) c #252524", +"c) c #121011", +"d) c #0C0C0D", +"e) c #060706", +"f) c #020203", +"g) c #010202", +"h) c #B4B4B5", +"i) c #555554", +"j) c #CCCCCD", +"k) c #CBCCCB", +"l) c #CACBCA", +"m) c #0E0E0D", +"n) c #030404", +"o) c #010101", +"p) c #B5B4B5", +"q) c #B4B5B4", +"r) c #C9CACA", +"s) c #C8C9C9", +"t) c #C9C8C9", +"u) c #777877", +"v) c #121311", +"w) c #050405", +"x) c #040403", +"y) c #020201", +"z) c #000000", +"A) c #4F504E", +"B) c #C9C8C8", +"C) c #C7C7C8", +"D) c #C6C7C6", +"E) c #60605F", +"F) c #050404", +"G) c #000001", +"H) c #B3B4B4", +"I) c #C7C6C6", +"J) c #C5C6C6", +"K) c #C6C5C6", +"L) c #B2B3B3", +"M) c #949494", +"N) c #7E7E7E", +"O) c #171718", +"P) c #0D0E0D", +"Q) c #09090A", +"R) c #080909", +"S) c #070607", +"T) c #060504", +"U) c #020303", +"V) c #0A0505", +"W) c #B6ACAE", +"X) c #B5ACAD", +"Y) c #A19999", +"Z) c #666666", +"`) c #9F9F9F", +" ! c #C4C3C4", +".! c #C2C2C3", +"+! c #C0C0BF", +"@! c #BCBBBB", +"#! c #909191", +"$! c #141516", +"%! c #121211", +"&! c #0F0E0F", +"*! c #090908", +"=! c #070606", +"-! c #050605", +";! c #020101", +">! c #5E2E2E", +",! c #E46A66", +"'! c #E36B64", +")! c #C77878", +"!! c #9F9B9B", +"~! c #4D4E4D", +"{! c #929292", +"]! c #C2C3C2", +"^! c #C1C2C2", +"/! c #C2C1C2", +"(! c #0B0C0B", +"_! c #030202", +":! c #000100", +"~ c #B0AFAF", +",~ c #B1B0B0", +"'~ c #ACADAC", +")~ c #AAABAB", +"!~ c #A8A7A8", +"~~ c #8C8C8C", +"{~ c #B9B8B8", +"]~ c #8D8D8D", +"^~ c #8F7B7C", +"/~ c #DB7066", +"(~ c #EB7A30", +"_~ c #E87448", +":~ c #9B5050", +"<~ c #211314", +"[~ c #050303", +"}~ c #2C1B1B", +"|~ c #5D3232", +"1~ c #964A49", +"2~ c #BA5351", +"3~ c #E26557", +"4~ c #E96D58", +"5~ c #F08B4C", +"6~ c #F89744", +"7~ c #EE7257", +"8~ c #EA6A5C", +"9~ c #F16358", +"0~ c #E9615F", +"a~ c #E36565", +"b~ c #F36656", +"c~ c #F59C60", +"d~ c #F35B4F", +"e~ c #999898", +"f~ c #A3A2A3", +"g~ c #ACACAD", +"h~ c #A4A4A3", +"i~ c #A1A0A0", +"j~ c #9E9D9D", +"k~ c #CC9D9C", +"l~ c #EC725C", +"m~ c #EE7D29", +"n~ c #EA7352", +"o~ c #C96967", +"p~ c #AA5654", +"q~ c #D9625C", +"r~ c #E67059", +"s~ c #EB7C4F", +"t~ c #ED8449", +"u~ c #F7923A", +"v~ c #FA953A", +"w~ c #FF9C3B", +"x~ c #FF9E3F", +"y~ c #FB9C46", +"z~ c #FB9E4A", +"A~ c #F69A55", +"B~ c #F08C5D", +"C~ c #F07C5E", +"D~ c #F1685A", +"E~ c #EF5B58", +"F~ c #E75F5D", +"G~ c #F15551", +"H~ c #F18A63", +"I~ c #F18562", +"J~ c #EA5653", +"K~ c #AEAEAF", +"L~ c #8F8F8F", +"M~ c #A9A9AA", +"N~ c #A3A2A2", +"O~ c #AEAFAF", +"P~ c #B9B1B1", +"Q~ c #DF8886", +"R~ c #EA7C3F", +"S~ c #F7841B", +"T~ c #EC7F39", +"U~ c #EC803E", +"V~ c #EF853B", +"W~ c #FB8D25", +"X~ c #FF9227", +"Y~ c #FF952D", +"Z~ c #FF9731", +"`~ c #FF9A37", +" { c #FF9D3D", +".{ c #FF9F41", +"+{ c #FFA145", +"@{ c #FFA44B", +"#{ c #FFA64F", +"${ c #FFA955", +"%{ c #FEA956", +"&{ c #FBA85F", +"*{ c #F29666", +"={ c #F29469", +"-{ c #F39768", +";{ c #FCAE69", +">{ c #F16F5E", +",{ c #BABAB9", +"'{ c #B2B2B3", +"){ c #B1B3B2", +"!{ c #B1B2B1", +"~{ c #ADACAB", +"{{ c #AAA9AA", +"]{ c #888988", +"^{ c #9E9D9E", +"/{ c #A0A0A1", +"({ c #A4A3A3", +"_{ c #A7A8A8", +":{ c #494747", +"<{ c #A16766", +"[{ c #E97A4A", +"}{ c #FF860F", +"|{ c #FF8915", +"1{ c #FF8B19", +"2{ c #FF8E1F", +"3{ c #FF9125", +"4{ c #FF9329", +"5{ c #FF962F", +"6{ c #FF9833", +"7{ c #FF9B39", +"8{ c #FFA043", +"9{ c #FFA247", +"0{ c #FFA751", +"a{ c #FFAA57", +"b{ c #FFAC5B", +"c{ c #FFAE5F", +"d{ c #FFB063", +"e{ c #FFB369", +"f{ c #FFB46B", +"g{ c #FDB26D", +"h{ c #F36F5F", +"i{ c #B3B4B3", +"j{ c #7D7C7C", +"k{ c #989898", +"l{ c #AEADAD", +"m{ c #ADACAD", +"n{ c #ACABAC", +"o{ c #9C9D9D", +"p{ c #7F7F7E", +"q{ c #565756", +"r{ c #989998", +"s{ c #A0A1A0", +"t{ c #A4A3A4", +"u{ c #4F4A4A", +"v{ c #9D6B6B", +"w{ c #E0756A", +"x{ c #EB7F3D", +"y{ c #FFA349", +"z{ c #FFA54D", +"A{ c #FFA853", +"B{ c #FFAB59", +"C{ c #FFAD5D", +"D{ c #FFAF61", +"E{ c #FFB267", +"F{ c #FFB66F", +"G{ c #FDB571", +"H{ c #F3836A", +"I{ c #DC5B57", +"J{ c #BA5C5C", +"K{ c #B6B7B7", +"L{ c #787877", +"M{ c #757676", +"N{ c #747474", +"O{ c #8C8D8C", +"P{ c #9D9C9D", +"Q{ c #A8A8A7", +"R{ c #545353", +"S{ c #989797", +"T{ c #9F9F9E", +"U{ c #A0A1A1", +"V{ c #8C8C8B", +"W{ c #706F70", +"X{ c #484646", +"Y{ c #9F6A6A", +"Z{ c #E9785E", +"`{ c #EC7D30", +" ] c #FE830B", +".] c #FF8711", +"+] c #FF8C1B", +"@] c #FF8F21", +"#] c #FA9231", +"$] c #F38F40", +"%] c #EE894F", +"&] c #ED8458", +"*] c #EE815B", +"=] c #EE815C", +"-] c #EE855E", +";] c #EF8D5D", +">] c #F4995D", +",] c #FAA45A", +"'] c #FEAC5C", +")] c #FFB56D", +"!] c #FFB771", +"~] c #FFB975", +"{] c #FCB677", +"]] c #F39572", +"^] c #E76158", +"/] c #8B5252", +"(] c #464343", +"_] c #B4B5B5", +":] c #777677", +"<] c #727172", +"[] c #6B6C6C", +"}] c #80807F", +"|] c #919090", +"1] c #9E9E9F", +"2] c #A4A5A4", +"3] c #A6A7A6", +"4] c #898888", +"5] c #6E6E6D", +"6] c #5F5F60", +"7] c #797A7A", +"8] c #7E7F7F", +"9] c #777777", +"0] c #616060", +"a] c #7F6464", +"b] c #A67373", +"c] c #6B5959", +"d] c #4E4A4A", +"e] c #A06C6C", +"f] c #E8795F", +"g] c #F07E20", +"h] c #FF8207", +"i] c #FF840B", +"j] c #FE8B1B", +"k] c #F68B2C", +"l] c #EC834B", +"m] c #EB775D", +"n] c #E16F65", +"o] c #C86B67", +"p] c #AD6463", +"q] c #9C605F", +"r] c #995E5D", +"s] c #A7605E", +"t] c #C0625F", +"u] c #DC6660", +"v] c #ED7363", +"w] c #EF8968", +"x] c #F6A268", +"y] c #FEB166", +"z] c #FFB873", +"A] c #FFBA77", +"B] c #FFBB79", +"C] c #F39870", +"D] c #E65F57", +"E] c #875252", +"F] c #424040", +"G] c #866263", +"H] c #A55757", +"I] c #767777", +"J] c #767675", +"K] c #717171", +"L] c #6E6E6F", +"M] c #6C6D6D", +"N] c #6A6969", +"O] c #676767", +"P] c #656665", +"Q] c #676766", +"R] c #727373", +"S] c #5C5C5B", +"T] c #6A6A6B", +"U] c #7B7A7B", +"V] c #626262", +"W] c #534D4D", +"X] c #C37F7E", +"Y] c #E67E6E", +"Z] c #CB7C78", +"`] c #886767", +" ^ c #5F5353", +".^ c #8C6767", +"+^ c #E87A68", +"@^ c #EB7B21", +"#^ c #FE7E00", +"$^ c #FB881A", +"%^ c #EC8345", +"&^ c #EA7761", +"*^ c #C76F6B", +"=^ c #926363", +"-^ c #685252", +";^ c #524A4A", +">^ c #494646", +",^ c #484545", +"'^ c #4E4848", +")^ c #5F4E4E", +"!^ c #835757", +"~^ c #B85F5D", +"{^ c #E86E63", +"]^ c #F18C6B", +"^^ c #F9AC6D", +"/^ c #FEB670", +"(^ c #FEB56E", +"_^ c #F2956C", +":^ c #E86259", +"<^ c #B46261", +"[^ c #B06261", +"}^ c #E15450", +"|^ c #F34C49", +"1^ c #B1B1B2", +"2^ c #777676", +"3^ c #747575", +"4^ c #717271", +"5^ c #6D6E6D", +"6^ c #6B6B6A", +"7^ c #686767", +"8^ c #646363", +"9^ c #5D5D5C", +"0^ c #777776", +"a^ c #878788", +"b^ c #969596", +"c^ c #9A9898", +"d^ c #9A9A99", +"e^ c #646463", +"f^ c #7B7C7C", +"g^ c #7B7C7B", +"h^ c #707170", +"i^ c #575756", +"j^ c #7E6464", +"k^ c #E68379", +"l^ c #D27438", +"m^ c #D6763F", +"n^ c #E27D68", +"o^ c #DB7D71", +"p^ c #E07E6F", +"q^ c #E47B42", +"r^ c #F77B00", +"s^ c #FF8105", +"t^ c #F58522", +"u^ c #E97D54", +"v^ c #D4736B", +"w^ c #906363", +"x^ c #5A4E4E", +"y^ c #504848", +"z^ c #7C5555", +"A^ c #C15F5D", +"B^ c #F07865", +"C^ c #F5A472", +"D^ c #F39868", +"E^ c #F08060", +"F^ c #F07E5D", +"G^ c #F08A5C", +"H^ c #F36251", +"I^ c #E35656", +"J^ c #B0B0B1", +"K^ c #ABACAB", +"L^ c #787777", +"M^ c #717170", +"N^ c #696869", +"O^ c #666565", +"P^ c #646465", +"Q^ c #636363", +"R^ c #605F5F", +"S^ c #575758", +"T^ c #8B8A8B", +"U^ c #949393", +"V^ c #665858", +"W^ c #AA7979", +"X^ c #DC8378", +"Y^ c #D77848", +"Z^ c #DB741F", +"`^ c #E27513", +" / c #E87813", +"./ c #F37901", +"+/ c #FA7C00", +"@/ c #F4811C", +"#/ c #E87D5C", +"$/ c #BC716E", +"%/ c #6E5858", +"&/ c #5C4D4D", +"*/ c #A15B5B", +"=/ c #EB7265", +"-/ c #F49D6F", +";/ c #FEB36A", +">/ c #FFB165", +",/ c #FEAA5A", +"'/ c #F07A5A", +")/ c #EE5350", +"!/ c #A5A4A4", +"~/ c #969797", +"{/ c #787778", +"]/ c #636364", +"^/ c #606161", +"// c #5D5C5C", +"(/ c #585958", +"_/ c #5C5C5D", +":/ c #868787", +"( c #946565", +",( c #EC7262", +"'( c #F8A25A", +")( c #FDA24C", +"!( c #EF6C56", +"~( c #DB6868", +"{( c #7C7D7C", +"]( c #9B9A9A", +"^( c #666667", +"/( c #818182", +"(( c #7D7E7D", +"_( c #757475", +":( c #635757", +"<( c #DA8882", +"[( c #D7752B", +"}( c #EA7400", +"|( c #E57A22", +"1( c #E18173", +"2( c #735D5D", +"3( c #6B5D5D", +"4( c #CF6663", +"5( c #EF8D5F", +"6( c #FEA54F", +"7( c #EE8357", +"8( c #E65E5B", +"9( c #707171", +"0( c #807F80", +"a( c #8E8E8F", +"b( c #979696", +"c( c #959594", +"d( c #686869", +"e( c #7F8080", +"f( c #7E7E7F", +"g( c #7C7D7D", +"h( c #737374", +"i( c #DC8878", +"j( c #DA6F0A", +"k( c #E47100", +"l( c #E87300", +"m( c #E07E45", +"n( c #C07C79", +"o( c #514C4C", +"p( c #4C4E4E", +"q( c #535453", +"r( c #A16665", +"s( c #ED7961", +"t( c #FCA14B", +"u( c #F3924D", +"v( c #EB625C", +"w( c #747473", +"x( c #838384", +"y( c #908F90", +"z( c #919192", +"A( c #7D7C7D", +"B( c #818282", +"C( c #808081", +"D( c #7F7F80", +"E( c #9D7978", +"F( c #D98162", +"G( c #DB6F07", +"H( c #E27000", +"I( c #E87506", +"J( c #E0815F", +"K( c #976E6E", +"L( c #7F6162", +"M( c #E96C5F", +"N( c #F79A4D", +"O( c #F89642", +"P( c #F16454", +"Q( c #828181", +"R( c #5A595A", +"S( c #676667", +"T( c #8A8A8A", +"U( c #7A7A7B", +"V( c #7B7777", +"W( c #827B7B", +"X( c #7A7272", +"Y( c #726B6B", +"Z( c #6F6565", +"`( c #BB8887", +" _ c #D17A45", +"._ c #DA6C00", +"+_ c #E06F00", +"@_ c #E2740E", +"#_ c #DE8470", +"$_ c #7A6363", +"%_ c #695B5C", +"&_ c #D86A63", +"*_ c #F29351", +"=_ c #FE9937", +"-_ c #ED7253", +";_ c #E16A6A", +">_ c #9E9E9D", +",_ c #838282", +"'_ c #767576", +")_ c #868585", +"!_ c #797A79", +"~_ c #777778", +"{_ c #737273", +"]_ c #A08A8A", +"^_ c #E19C98", +"/_ c #DA948B", +"(_ c #DC9288", +"__ c #DF8A78", +":_ c #CE7229", +"<_ c #DE6E00", +"[_ c #DD7314", +"}_ c #DB8678", +"|_ c #645757", +"1_ c #5E5656", +"2_ c #CB6966", +"3_ c #F08D50", +"4_ c #FF9935", +"5_ c #FE9733", +"6_ c #ED7F4C", +"7_ c #EE6657", +"8_ c #EE6357", +"9_ c #EE5E54", +"0_ c #E56464", +"a_ c #7F7E7F", +"b_ c #989897", +"c_ c #9C9D9C", +"d_ c #A58E8E", +"e_ c #D2866E", +"f_ c #BC661B", +"g_ c #BF6719", +"h_ c #C36819", +"i_ c #C86B18", +"j_ c #D26800", +"k_ c #D66A00", +"l_ c #DC6D00", +"m_ c #DB7316", +"n_ c #DC8B80", +"o_ c #746A6A", +"p_ c #4D4F4E", +"q_ c #585454", +"r_ c #C46865", +"s_ c #EF894E", +"t_ c #FE932B", +"u_ c #F58B36", +"v_ c #F58A34", +"w_ c #EC7845", +"x_ c #E8615E", +"y_ c #9C9B9C", +"z_ c #9B9B9A", +"A_ c #A48E8E", +"B_ c #E59891", +"C_ c #D78B78", +"D_ c #D88A76", +"E_ c #D88975", +"F_ c #D48465", +"G_ c #CB6D1B", +"H_ c #D46900", +"I_ c #DB7315", +"J_ c #DD8C80", +"K_ c #887C7C", +"L_ c #5A5453", +"M_ c #C86A66", +"N_ c #EF894A", +"O_ c #FF942B", +"P_ c #EE8342", +"Q_ c #EC6D51", +"R_ c #ED6A52", +"S_ c #EF614F", +"T_ c #E76363", +"U_ c #838483", +"V_ c #8D8D8C", +"W_ c #959696", +"X_ c #959795", +"Y_ c #757574", +"Z_ c #656666", +"`_ c #7D7E7E", +" : c #737372", +".: c #807A7A", +"+: c #978787", +"@: c #978686", +"#: c #988787", +"$: c #CF9A99", +"%: c #CB7845", +"&: c #D86B00", +"*: c #D87111", +"=: c #DE8B79", +"-: c #958282", +";: c #625656", +">: c #D46D66", +",: c #F08A43", +"': c #FE9127", +"): c #EC7250", +"!: c #E66F6F", +"~: c #747374", +"{: c #979796", +"]: c #939392", +"^: c #7D7D7E", +"/: c #777878", +"(: c #747373", +"_: c #C09695", +":: c #CD7C4F", +"<: c #D06700", +"[: c #D76D08", +"}: c #DC866A", +"|: c #A98A8A", +"1: c #735B5B", +"2: c #E46E62", +"3: c #F48C37", +"4: c #FF9023", +"5: c #FE8E21", +"6: c #EC7152", +"7: c #7A7B7B", +"8: c #929393", +"9: c #666566", +"0: c #7C7C7B", +"a: c #AB9191", +"b: c #D98B73", +"c: c #C9670B", +"d: c #D96C00", +"e: c #D67F50", +"f: c #C69291", +"g: c #787575", +"h: c #926464", +"i: c #EA775D", +"j: c #FB8D26", +"k: c #F2872F", +"l: c #EE695B", +"m: c #7A7B7A", +"n: c #929293", +"o: c #898A8A", +"p: c #666665", +"q: c #8E8282", +"r: c #DD9486", +"s: c #C7670E", +"t: c #CE6600", +"u: c #D0742B", +"v: c #DD928A", +"w: c #8D8080", +"x: c #564F4F", +"y: c #BF6D6B", +"z: c #EA7F4B", +"A: c #FE8C1D", +"B: c #EF8233", +"C: c #EA6C64", +"D: c #898988", +"E: c #787879", +"F: c #797978", +"G: c #757675", +"H: c #827C7C", +"I: c #D99D9A", +"J: c #C5733A", +"K: c #CC6500", +"L: c #D46D0A", +"M: c #DB876B", +"N: c #B69090", +"O: c #816060", +"P: c #E57464", +"Q: c #F3872D", +"R: c #FF8A17", +"S: c #E97747", +"T: c #E57373", +"U: c #89898A", +"V: c #858685", +"W: c #848384", +"X: c #808180", +"Y: c #757576", +"Z: c #747475", +"`: c #C29796", +" < c #C67741", +".< c #CA6400", +"+< c #D56A00", +"@< c #CF7737", +"#< c #DA948C", +"$< c #928282", +"%< c #584F4F", +"&< c #BD706E", +"*< c #E97C4D", +"=< c #FD8715", +"-< c #FF8813", +";< c #F8851B", +">< c #ED6C56", +",< c #838382", +"'< c #747576", +")< c #737473", +"!< c #BE9393", +"~< c #C47641", +"{< c #C66200", +"]< c #D26A05", +"^< c #D7825E", +"/< c #C69493", +"(< c #837B7B", +"_< c #4A4646", +":< c #976566", +"<< c #E8785F", +"[< c #F58320", +"}< c #FF850D", +"|< c #F27F20", +"1< c #DB6C64", +"2< c #79797A", +"3< c #7A7A79", +"4< c #767776", +"5< c #968989", +"6< c #D69F9C", +"7< c #BE723B", +"8< c #C26000", +"9< c #CE6F1A", +"0< c #DB8A73", +"a< c #B69191", +"b< c #555050", +"c< c #836161", +"d< c #DF7768", +"e< c #EC7E32", +"f< c #FF8309", +"g< c #F27E1D", +"h< c #EB7267", +"i< c #6B6A6A", +"j< c #747574", +"k< c #8C8383", +"l< c #BF9F9E", +"m< c #DA9F98", +"n< c #C88261", +"o< c #B85F0C", +"p< c #BD5F04", +"q< c #C16104", +"r< c #C86300", +"s< c #D16800", +"t< c #CD732C", +"u< c #DE8E7A", +"v< c #A78080", +"w< c #5D5454", +"x< c #4E4949", +"y< c #DA7A6E", +"z< c #E97D3F", +"A< c #FD8007", +"B< c #FF8003", +"C< c #FF7F01", +"D< c #F97E0A", +"E< c #E8714E", +"F< c #ED716A", +"G< c #E57E7E", +"H< c #7D7979", +"I< c #CBA6A6", +"J< c #D59482", +"K< c #B36A31", +"L< c #B66B32", +"M< c #CC8667", +"N< c #D68F7B", +"O< c #CE8462", +"P< c #C16511", +"Q< c #CD732A", +"R< c #DB8A70", +"S< c #BF8A87", +"T< c #7B6767", +"U< c #4C4A4A", +"V< c #474545", +"W< c #695959", +"X< c #A77272", +"Y< c #E37B67", +"Z< c #E77D39", +"`< c #FA7C02", +" [ c #F17B16", +".[ c #E9792D", +"+[ c #E8782C", +"@[ c #E97821", +"#[ c #E3723C", +"$[ c #F56A66", +"%[ c #B69C9C", +"&[ c #DA9A8C", +"*[ c #CD8D76", +"=[ c #E0A39D", +"-[ c #BB9D9D", +";[ c #A28F8F", +">[ c #CA9F9E", +",[ c #CC825F", +"'[ c #C26103", +")[ c #CF6D15", +"![ c #D48159", +"~[ c #DC8F83", +"{[ c #AC7F7F", +"][ c #554F4F", +"^[ c #4F4B4B", +"/[ c #6D5B5B", +"([ c #9B7070", +"_[ c #D67F78", +":[ c #E57E5B", +"<[ c #EA7B23", +"[[ c #EF790D", +"}[ c #E9775A", +"|[ c #EB7C78", +"1[ c #EF7366", +"2[ c #EC6E5B", +"3[ c #EA7C7B", +"4[ c #847F7F", +"5[ c #D1A9A9", +"6[ c #BC9D9D", +"7[ c #948888", +"8[ c #767575", +"9[ c #978A8A", +"0[ c #DD9D94", +"a[ c #C37642", +"b[ c #C16000", +"c[ c #D26902", +"d[ c #CE722A", +"e[ c #D5825D", +"f[ c #DF8C7E", +"g[ c #C98A87", +"h[ c #A97D7C", +"i[ c #8D7070", +"j[ c #7C6767", +"k[ c #7B6565", +"l[ c #876B6B", +"m[ c #A27776", +"n[ c #C07E7C", +"o[ c #DE8479", +"p[ c #E27F5F", +"q[ c #DF7A36", +"r[ c #ED7808", +"s[ c #F07802", +"t[ c #E37846", +"u[ c #EC817C", +"v[ c #EA8181", +"w[ c #817D7D", +"x[ c #A59191", +"y[ c #DB9B91", +"z[ c #C17543", +"A[ c #C36100", +"B[ c #D36B05", +"C[ c #D06F1A", +"D[ c #D1783B", +"E[ c #D47E55", +"F[ c #DA8467", +"G[ c #DD856D", +"H[ c #DD846D", +"I[ c #DC8367", +"J[ c #DA7F58", +"K[ c #DA7B41", +"L[ c #DD7622", +"M[ c #E67407", +"N[ c #EB7500", +"O[ c #EC7602", +"P[ c #DF7747", +"Q[ c #EC827B", +"R[ c #A59090", +"S[ c #DC9B91", +"T[ c #C87E57", +"U[ c #C0640F", +"V[ c #D66B02", +"W[ c #D76C04", +"X[ c #D96E05", +"Y[ c #DB6E05", +"Z[ c #DD6F04", +"`[ c #E07003", +" } c #E37100", +".} c #DE751E", +"+} c #E27A53", +"@} c #EA847E", +"#} c #A08D8D", +"$} c #D8A2A0", +"%} c #C47A4E", +"&} c #C46100", +"*} c #DC7216", +"=} c #E57D66", +"-} c #EB8E8D", +";} c #B39696", +">} c #C77F5B", +",} c #BE5E00", +"'} c #C05F00", +")} c #D5732B", +"!} c #EC8D87", +"~} c #7A7878", +"{} c #CDA2A1", +"]} c #C17A51", +"^} c #B96B2F", +"/} c #CA8261", +"(} c #CD8466", +"_} c #C87B4F", +":} c #C16C25", +"<} c #C36204", +"[} c #C76301", +"}} c #D36900", +"|} c #D56A01", +"1} c #D26C0C", +"2} c #D0722B", +"3} c #D67A50", +"4} c #D97C58", +"5} c #D3753B", +"6} c #D2712A", +"7} c #EC8881", +"8} c #A59292", +"9} c #DA9C91", +"0} c #B3672B", +"a} c #D18D76", +"b} c #B68F8F", +"c} c #947C7C", +"d} c #BD9090", +"e} c #D6958E", +"f} c #D88C77", +"g} c #CF8260", +"h} c #C57237", +"i} c #C46D26", +"j} c #C86402", +"k} c #C86C1D", +"l} c #CB7027", +"m} c #CD7640", +"n} c #D78060", +"o} c #E18673", +"p} c #EA9189", +"q} c #F09F9F", +"r} c #EC9F9F", +"s} c #E98B82", +"t} c #CF7238", +"u} c #D47750", +"v} c #EB9290", +"w} c #635B5B", +"x} c #D0A19D", +"y} c #B8754C", +"z} c #BE7C58", +"A} c #CFA19F", +"B} c #655E5E", +"C} c #555151", +"D} c #F1B2B2", +"E} c #ECA39E", +"F} c #EA9B93", +"G} c #C5743F", +"H} c #C36B21", +"I} c #E48F80", +"J} c #EB9B96", +"K} c #EEA7A7", +"L} c #DC7E66", +"M} c #C96C25", +"N} c #E88276", +"O} c #AC9393", +"P} c #EFB2B1", +"Q} c #CB8C74", +"R} c #DB9D93", +"S} c #867474", +"T} c #ECAEAE", +"U} c #CA7C57", +"V} c #C06D2F", +"W} c #EBA19D", +"X} c #EE908D", +"Y} c #DD7E6A", +"Z} c #EF8984", +"`} c #F0BDBC", +" | c #F6C1C1", +".| c #ECB0B0", +"+| c #C87C58", +"@| c #BD6C2F", +"#| c #EBA29E", +"$| c #EE9D9D", +"%| c #ECB4B4", +"&| c #C57B58", +"*| c #B86A30", +"=| c #EBA4A0", +"-| c #EEB5B5", +";| c #D58B77", +">| c #C77E61", +",| c #EEA8A5", +"'| c #EDB2B1", +")| c #EFB0AF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . . . ", +" + + + . . . . . . . ", +" + + + + + @ # # $ . . . . . . ", +" + + % + & # * = - ; > , ' . . . . . ", +" + + ) ! ~ { ] ^ / > ' ' ' ( _ : . . . . . . . . ", +" + + ) ) ) ) ) < [ } | 1 2 3 3 4 5 5 6 7 8 8 . . . . . ", +" + # ) ) ) ) ) 9 0 a b c 0 d e f 8 8 7 g 8 h i j k . . . . . . ", +" l # ) ) ) m n 0 o p q r s t u v w x { y z k k A A B C D f . . . . . . . ", +" # # ) ) E F 0 a G H I J K L v M N O P u Q R S T A U U f f f V V W X . . . . . . ", +" Y $ ) ) Z 9 0 ` H r J ...+.+.@.#.$.%.&.*.=.-.;.>.! ,.'.).!.~.{.~.].^.^./.(.. . . . . ", +" _.- ) 9 0 0 H p :.s t ..v M M N P %.&.*.<.[.}.}.|.1.2.3.4.5.6.7.8.9.^.(./.0.a.% b.. . . . . . . . ", +" - ; 9 n a c.H d.e. .u v f.N N P g.h.&.[.i.j.k.k.1.3.l.4.m.n.n.o.&.) p.,.q.r.s.t.u.v.w.x.y.y.z.. . . . . ", +" ; > A.0 a H q B.s ..v C.M D.N g.&.&.<.i.[.E.F.|.G.3.H.I.J.K.L.M.N.O.O.P.Q.R.S.T.U.^ V.y.y.W.z.1 1 V.. . . . . . ", +" X.> 0 a b H Y.s s L f.C.N P Z.h.&.&.`.[.j.k.1. +3.4.J.n.n.L.M..+++@+P.Q.R.#+$+%+&+i.*+=+-+;+>+,+V.'+)+)+)+!+. . . . . . . ", +" > ~+a c.{+B.e.u ]+^+/+(+P %.h._+:+:+[.k.k.<+[+4.4.I.}+n.|+M.1+O.O.2+Q.3+4+5+%+6+7+8+9+0+a+4.N b+c+d+)+e+f+g+^ ^ h+i+j+. . . . . . ", +" , ' c.H r s t u v M N N P k+_+l+[.[.m+k.k.[+3.4.n+I.}+o+M.M.p+q+r+Q.s+#+t+a+u+v+8+9+w+0+x+y+z+A+A+B+C+D+E+F+G+H+U.I+J+K+K+L+M+. . . . . . . ", +" ' ' :.r Y.s L v v N N N+g.&.O+<.[.-.P+k.1.3.4.Q+R+n.o+M.S+T+O.2+Q.Q.#+5+U+a+v+V+W+X+Y+Z+y+`+ @A+B+.@+@@@#@$@..%@&@*@=@-@L+;@>@>@,@'@)@!@. . . . . . ", +" ~@3 r s {@..v /+]@D.^@g.k+`.<.[.}./@k.2.(@l._@I.n.o+:@M.p+O.P.<@#+3+$+$+&+v+8+9+[@0+x+y+`+}@A+B+|@+@@@#@1@2@3@4@5@6@R.7@8@9@>@,@'@'@0@G+a@b@b@c@. . . . . ", +" 3 3 r s ..d@+.@.N D.g.g.`.e@=.;.E.k.2.3.H.f@}+J.g@o.h@i@O.@+j@Q.#+k@$+a+v+V+l@9+0+m@n@y+6@A+o@p@q@r@#@s@t@u@v@w@x@y@z@A@B@C@D@M E@F@G@H@b@I@b@=@J@K@L@. . . . . . ", +" 3 4 .]+M@M N N $.Z.&.N@`.[.O@>.k.1. +3.P@I.n.Q@:@M.N.R@2+P.S@4+T@$+a+U@V@W@X@w+0+y+y+Y@A+Z@|@q@`@#@ #$@.#4@w@w@x@+#@#B@##$#%#&#*#=#-#;#>#,#'#F+L@)#!#~#{#]#^#. /#/# ", +" (#5 ..v ^+M N P Z.g.l+`.<.}.}.k.1.1.3._#_@R+:#<#M.p+O.O.[#Q.s+}#$+a+v+8+8+|#0+Y+1#y+Y@-#2#.@q@@@3#4#$@3@u@5#6#x@+#7#B@C@8#$#9#0#a#b#c#c#d#b#w@.@u ,#q.{#{#e#f#g#/#/# ", +" 5 6 ..v ]@N $.P g.&.`.:+j.>./@|.3.3.Q+I.I.o+o+M.p+++O.[#Q.h#t+$+a+v+8+W@9+w+0+i#y+Y@ @j#B+.@@@k#s@l#3@3@m#n#6#x@7#o#p#$#%#%#*#=#=#q#r#s#t#u#v#w#x#x#y#z#A#B#C#f#/#/# ", +" D#6 M M E#P g.F#&.`.e@}.}.k.G#1.3.4.n+}+g@o+1+M.p+@+r+<@s+H#t+I#J#v+8+|#K#Y+i#y+L# @A+M#q@q@k# # #N#O#4@P#x@Q#R#p#C@S#T#9#*#0#=#U#c#V#d#W#X#v#Y#Z#`# $.$+$@$#$$$/#/# ", +" 5 6 M @.D.P g.%$&$:+;.m+*$1.=$3.4.-$J.o+g@M.N.R@O.P.S@Q.H#$+;$J#V@W+9+w+>$x+y+Y@,$A+B+q@'$)$#@!$3@v@4@w@6#y@+#@#p#$#~${$]$a#=#q#^$/$($t#_$w#x#`#:$y#<$[$}$|$1$$$/#/# ", +" 6 6 (+D.N+g.F#O+:+[.2$*$F.=$2.l.4.I.:#o+o+1+p+R@P.3$Q.#+$+;$J#v+4$5$|#Y+x+y+6$7$A+B+8$@@k##@l#N#3@4@w@9$y@0$a$b$c$d${$*#=#=#b#c#e$t#f$g$w#h$i$j$ $k$+$}$l$m$$$n$/#/# ", +" o$8 p$P g.&.q$<.[.}.k.G#1.3.r$n+R+n.Q@L.M.p+@+O.3$Q.#+H#$+U@v+4$s$9+t$n@u$`+Y@A+v$w$q@r@#@#@2@O#4@w@z#x$+#@#p#C@~$%#*#a#=#b#c#V#V#t#y$w#x#Z#Z# $.$z$[$A$B$C$D$E$/#/# ", +" 8 h P g.%$&.`.[.7@}.G#1.G.4.Q+I.n.n.o+p+p+F$P.<@S@#+a+9+8+v+G$H$I$K#x+J$L# @A+o@|@q@@@)$s@K$3@4@L$M$N$+#7#O$S#c$P$Q$*#a#R$q#c#t#($u#v#h$S$`#`#T$z$+$|$C$C$U$V$E$/#/# ", +" W$i ^@k+*.q$=.}.}.k.G#G.H._#f@X$Y$o+M.p+++2+P.<@#+8+y$[$Q$8$5$9+w+>$Z$y+Y@7$`$ %q@@@)$4#t@3@4@w@w@x@+#+#@#S#c$$#�#0#b#c#c#.%t#t#X#+%@%`# $T$T$[$|$|$#%$%%%] ] /#/# ", +" &%*%F#&.q$=%j.j.k.<+3.r$4._#-%g@|+M.1+O.O.P.<@s+H#u$;%V#@@o#y$K$y+x+>%Y@7$Z@.@q@@@#@#@$@3@v@P#z#N$,%a$o#S###{$&#*#=#'%c#r#V#)%y$!%w#`#`# $~%T$+$l${%C$]%^%/%] (%/#/# ", +" _%:%&.l+i.[.}.|.1.1.r$<%I.n.n.Y$M.S+p+[%[%j@#+H#t+0+}%4@g.|%s @#w#6#q@-#Z@w$q@@@k#s@$@t@O#m#w@6#y@+#@#C@1%T#%#*#2%3%4%s#V#t#g$y$w#+%`#`#5%T$T$|$A$C$;%6%/%7%(%8%/#/# ", +" 9%A *.:+[.}.*$|.1.3.-$-$I.:#Y$1+1+0%[%P.j@s+#+H#9+8$a%Y@4.b%c%d%e%f%V#y@B+|@r@@@#@$@2@w@6#P#x@+#+#7#S#C@$#%#g%=#b#h%c#V#d#t#y$w#w#Z#i%j%T$[$[$|$C$$%6%k%7%l%(%8%/#/# ", +" A A :+[.j.E.F.1.m%4.f@I.Q@L.<#M.T+O.n%o%s+#+$+a+7#p%q%r%D+0+s%t%u%v%w%W#k%]$4@u@$#t#w#f$b#x%$#@#@#C@y%d$z%*#=#2%q#c#r#)%A%y$w#x#B%`#k$5%+$@$|$C$;%6%k%C%D%E%F%G%/#/# ", +" A H%[.;.>.F.1.H.4.-$J.m.I%M.M.p+O.2+P.R.h#k@a+V@X#J%K%L%M%g.N%O%P%Q%R%S%T%U%C$C$;%B+$+A+=# $C$l$t#$#d$T#V%*#=#b#^$s#V#t#y$X#Y#W%`#X%T$Y%Z%|$B$`% &k%7%C%.&+&G%@&/#/# ", +" U U m+/@|.F.H.<%4.I.J.Q@o.M.N.O.n%P.Q.#+#&%+a+V+$&%&&&*&=&-&Q.;&>&,&'&)&!&~&+&p+{&]&^&/&(&_&:&g.=#<&Y%b#]$3%4%c#r#[&)%y$X#w#x#`#i%.$}&z$|${%|&6%k%1&2&3&+&4&5&G@/#/# ", +" U 6&>.<+1.2.<%<%J.n.K.:@M.T+++O.[#Q.#+$+$+a+V@K#p%7&8&5.9&0&$@a&b&c&d&e&f&g&A+M%1$b@h&>@G+J@g#e /#i&3#7%C$w#U#V#)%A%j&_$k&x#W% $l&T$m&l$B$;%;%k%7%7%l%+&<&n&G@o&/#/# ", +" p&D k.1.3.<%4.R+m.n.|+o.S+O.q+q&R.s+H#$+a+r&G$,$s&t&u&v&w&x&@#:&x a&y&z&A&B&I.C&$$$$D&f#f#^#q.=@a@f#E&`.k%7%`%V#F&y$G&Y#B%S$i%T$T$@$|$|$#%;% &7%l%H&+&I&J&K&L&o&/#/# ", +" p&f M&=$3.<%R+X$n.o+M.S+N&n%P.Q.#+#+5+a+u+4$8+q@O&P&Q&R&,.S&+#T&U&. *+V&W&X&Y&Z&`&`&G@G@G@F%F%F% *(%] b%P..*+*;%f$G&w#x#W%`# $z$T$m&|$C$;%U$@*C%l%+&+&n&n&#*o&`&/#/# ", +" f $*(@<%-$I.m.n.o+o.p+R@[%[#P.#+H#$+5+v+v+8+K#3#%*&***Q.=*-*4@@+1.3.8+3@#+&.;*e e e >*c%,*Z&Z&Z&'*'*F@)*0 '*!*7%T$+%@%`# $ $T$[$~*|$;%;%k%{*@*l%+&<&<&]*^*/*8.(*/#/# ", +" V V 3.4.n+-%n.:@|+S+_*O.n%Q.Q.#&$+;$J#7+W@H$:*1%<*[.[*x+h#$+w#y+*$N }*|*E@1*2*3*4*5*6*E+7*8*8*9*C&C&2*J.0*e 4*`.a*b*x#i%<$5%z$Z%|$$%;%;%{*2&D%+&}%4&c*#*/*d*`&y /#/# ", +" V W r$_#J.n.o+o+S+p+O.2+Q.#+h#$+a+%+4$8+W@K#2#;%o+e*-+D+f*g*[*,#h*i*j*k*j*l*/&j*m*n*(&(&(&l*l*l*o*o*&@x+,#p*4*x |$C$W% $.$z$|$q*B$#%;%%%7%l%.&+&<&J&r*s*t*a%y u*/#/# ", +" v*{.-$J.n.o+C+.+p+_*M.P.R.H#T@I#v+v+8+9+9+0+4#<&w*x*x*x*_&y*^&-+z*A*=&=&7.y*B*C*| D*E*E*E*2*2*2*{ E*F*M.]&j*/&z*S@G* $k$H*[$|$I*;%;%1&<*l%.&+&<&]*r*J*t*a%K*u*'*/#/# ", +" W ~.I.n.o+C+M.p+T+L*M*N*O*2$C+#&v+4$8+K#0+m@o@]%`./#P*Q*R*P*Q*Q*R*S*]&R*i*T*i*U*i*=&=&V*=&=&=&W*y*X*Y*w y*7.| E*Z*`*H*+*[$~*C$`%`%k%7%7%.&I& =]*#*.=t*a%+=@=u*#=/#/# ", +" ~.$=R+o+|+M.p+F$2+%=&=*===-=;=>=,=8+[@0+I$y+'=)=U$k.,#R*_&M%M%Q*!=~=1*{=]=^=,#/=(=_=:=<=[=]&]&]&R*}=B+|%|=|=i*9&1=`*C$}$|$A$2=6%k%{*C%3=+&4=5=r*#*t*6=7=`*@='*'*/#/# ", +" ].^.Q@o+h@N.++q+3$8=9=0=a=b=c=d=e=f=g=h=i=j=k=v+l=+&`+U&m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C={&D=E==+M.&.X*[=Q*_&F=$#`*|$m&C$C$;%k%<*2&G=3&H=I=r*#*t*J=a%K=L=M='*N=/#/# ", +" ^.^.o+o.p+F$O.<@<@O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-R&3@[-M%_&X*}-w@`*k%~*q*C$#%k%<*7%G=+&+&5=]*^*|-J=J=`*@=1-2-Z&3-/#/# ", +" 4-(.:@p+p+O.P.j@Q.#+;$5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-E-F-3.s%_&1*}-$@a%7%Z%A$C$;%%%1&7%l%G-}%H-]*I-J*t*a%`*J-K-L-M-3-N-/#/# ", +" (.O-N.R@O.q+S@Q.#+t+%+6+P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';);!;~;{;];^;/;(;_;:;t M%e*w*+#M-<*~*|$C$;%U$k%<*l%G=H=<&]*c*t*d*a%`*@=1-2-M-<;[;c%/#/# ", +" (.).p+O.2+j@R.};}#5+J#v+8+|;1;2;3;4;v+Y@A+5;J#6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;! b#L-;%|$m&x;C$]%1&7%l%3&+&<&]*c*a*t*a%`*`*y;L-z;A;<;B;C;/#/# ", +" O-D;O.n%[#P.#+$+%+&+v+v+W@X+0+x+y+y+ @A+o@|@q@@@3#$@E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>%%a%I*}$Z%B$;%;%k%7%l%G-+& =I=G*s*t*J=+>`*@=L-M-M-<;@>C;e /#/# ", +" % #>[%P.Q.#+#&;$u+v+8+9+9+$>x+i#Y@Y@ @ %p@q@%>&>l#2@.#4@*>=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4> $Z%B$C$U$%%<*l%l%I&<&5>G*6>t*7>`*8>9>L-2-0>a>@>b>e c>/#/# ", +" % b.P.o%h#H#$+a+6+G$W@9+$>x+x+`+Y@6@o@w$'$r@#@l#K$O#O#4@d>x@e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>A>B>C>x#|&/%k%D%3&E%<&]*]*/*t*6=7=J-@=L-2-M-<;@>D>E>F>F@/#/# ", +" u.u.S@#+#&$+a+6+G$W@|#w+x+y+>%Y@7$j#w$q@@@@@#@$@3@v@m#w@x@z@G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,l%+&H=n&]*#*t*t*a%`**,y;2-M-<;=,-,;,>,,,,,/#/# ", +" u.w.s+t+;$a+a+7+8+9+0+>$x+'=Y@,$B+B+q@@@@@#@',N#O#),M$x@+#@#!,C@$#~,x%{,],^,/,(,_,:,<,[,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,<&<&r*#*/*t*K*+>@=1-L-e,<;f,D>g,>,>,,,h,/#/# ", +" i,j,#&$+U+6+v+W+s$X+$>x+'=6$}@o@p@q@'$k#4#$@k,3@5#M$x@z@+#@#C@S#~$%#*#]$3%b#c#V#l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,t*a%`*`*K-L-M-<;a>J,;,>,K,L,M,N,/#/# ", +" j,9.H#a+u+v+8+l@9+0+n@Z$L# @O,B+.@'$%>#@$@N#I>4@),d>N$a$A@P,##$#V%*#0#2%b#Q,V#V#t#y$X#Y#S$v#5%T$T$T$R,S,T,U,V,W,X,Y,Z,`, '.'+'@'#'$'`*y;L-M-M-<;%'&'>,*'='-'C&;'/#/# ", +" >','a+&+v+8+l@K#$>x+y+Y@Y@j#v$.@@@@@''$@K$3@L$L$M$,%)'@#C@$#$#9#*#!'2%4%c#V#V#t#y$w#Y#x#`# $.$T$[$|$C$y#~'{']'^'/'('_':'<'['}'|'1'2'3'3&0><;4'D>;,g,5'='L,6';'7'/#/# ", +" 8'y.a+7+9'8+9+>$Z+J$`+Y@A+B+B+0'@@)$l#k,3@4@w@M$x@+#@#p#C@$#%#*#a'2%b#c#V#.%t#y$v#h$x#W%y#<$}&l$|$q*2=;%]%7%b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'a>4';,g,q'r'-'s't'T T /#/# ", +" y.u'E@D+v'$+0+x+y+6$`+A+v$|@+@@@#@$@t@3@4@w@x@x@,%7#p#C@$#%#z%a#2%b#w's#V#W#y$x'k&y'`#y#.$T$+$|$z'I*6%%%7%3=l%}$A'B'C'D't*a%+&E'F'G'H'I'J'J,b>E>K,K,-'-'6'K'L'8*/#/# ", +" M'1 1 1 '@N'8*O'=$Y@A+A+B++@r@k#l#$@N#4@4@M$x$z@+#C@p#1%%#*#]$'%b#w'P'V#)%W#w#+%x#`# $l&T$[$l$q*C$;%%%Q'7%l%+& =<&R'S'T'a%a%U'@=H-V'W'X'Y';,E>>,r'Z's'`' ).)+)E+/#/# ", +" 1 V.V.'+)+)+@)f+f+i*S.-%#+Y@$@k,t@u@m#w@x@+#+#@#1%y%8#z%#)=#3%q#c#V#t#W#y$h$k&i$:$ $T$[$l$|$C$;%^%7%7%C%+&+&<&G*I-a*/*+>`*@=L-L-L-a%$)%);,q'r'&)*)6'=)-).)9@E+/#/# ", +" d+@)e+f+;)^ ^ i+U.y /#>)< p+4@w@x@+#G>@#C@$#~$%#*#=#,)w'e$V#V#j&y$w#x#x#j$ $T$+*~*|$C$;%^%<*7%l%+&4=<&]*^*6>t*a%`*')y;))p'!)@>@>;,~){)&)])`'^)/).)()_)4*/#/# ", +" &.^ i+U.H+K+:)<)b@D$[)1*! +#@#C@c$T#9#*#=#'%b#r#V#.%u#y$w#k&B%i% $T$H*~*|$C$I*6%7%7%3&.&+&<&J&c*a*6=7>+=@=@=})M-|)1)2)2)3)r'4)-'^)5).)6)7)8)_)4*/#/# ", +" *.P N $.P ^@K+9)<)L+L+>@>@0)'@'@,,a)j.v+1@a#=#b#c#V#b)A%y$w#@%x#j$y#T$T$[$|${%I*]%<*{*7%.&+&<&]*G*J*6>c)7=@=L-1-M-d)<;@>;,E>*'r'-'e)5)/).)6)f)g)4*h)/#/# ", +" `.i)i)P P g.F#&.&$`.:+[.7@>@j)'@)@k)a@l)b@g#=&|%F==%9#V#A%y$w#Y#i$i% $<$T$[$l$C$#%;%k%7%2&E%+&4=I=c*s*t*a%K=J-@=m)))e,a>@>;,g,>,r'*)6'K'K'n)()8)8)o)p)q)/#/# ", +" j.i.k+N+g.g.g.g.&.l+q$`.[.}.}.M&F.3.3.4.G+b@b@r)=@s)t)q.(%y { u)Y@w#B%`# $<$z$[$|$C$C$ &k%7%7%E%+&<&5=]*J*v)J=a%`*@=9>M-M-<;@>b>q'K,&)Z'6'6'w).)x)8)g)y)z)q)3*/#/# ", +" A)-.`._+*.O+f*`.f*`.e@[.[.-.}.}.F.1.3.<%4.I.-%o+L.h@=@B)L@L@C)q.{#D)^#C#s%E)K#4@_$|$z'$%;%k%k%D%l%+& =I=]*c*t*J=a%@=J-1-M-M-<;@>;,;,{)r'&)e)`'K'F)x)()y)o)G)z)H)o*/#/# ", +" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.I)J)K)f#$$$$$$L)M)N)) 3@%%Q'O)E%+&}%n&^*^*t*6=a%`**,M=P)M-!)f,%'Q)>,R)-'S)6'T)F)7)U)8)o)G)z)V)W)X)Y)/# ", +" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%Z)/#/#/#/#/#`)Q*x*N'D& !D$E$E$.!+!@!C&#!}.@*$!5=]*I-t*%!a%K=8>&!z;M-0>@>%'q'*!K,Z'])=!-!.)n)f)8);!z)z)z)>!,!'!)!!! ", +" o+I.4.m%[+ +=$G#|.~!|.k.M&|.F.k.<+~!(@G.H.4._#_#I.n.:#o+C+.+++2+P.{!/#/#/#/#/#B#R*i*y*D*{ E$]!(%^!/!F%5&G@G@+!j*F=S@w@`#7>`*K=@=L-z;<;(!-,%)Q)r'r'-'6'=)w).)()_!g):!z)z)z)>,>,w!S)=)x!y!z!A!B!8)C!z)z)z)z)z)D!E!F!G!1! H! ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#I!J!K!L!E*j*M!3*N!(&{ | =&x*[=O!/#/#/#P!Z&Z&Z&c%c%e F>Q!,,R!p$3@@%%*S!T!U!V!W!;!z)z)z)X!Y!Z!`! ~.~+~@~ #~$~%~&~ ", +" P./=*~=~G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=-~9&;~7.2*>~,~(&j*'~)~!~x*Q*!=/#/#/#/#/#/#~~P.9!c>e ,,M,{~C&;'T.]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~ b~c~d~ ", +" P.G%[;o*K!e~~~=~M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`.~~/#/#/#M%f~x*=&7.E*2*{ g~| y*^&h~i~j~/#/#/#/#/#/#1*P.P.P.P.P.{~;'9*8*8*9@_)k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~A~B~C~D~E~F~G~H~I~J~ ", +" P.c%E+E+E++)4*K~;~B#L~w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.L~/#!=_&R*i*V*E&7.| 7.M~-+x*N~B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.O~+)E+6*P~Q~R~S~T~U~V~W~X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{ ", +" P.,{p)3*R*/&'{){!{,~j*~{{{J!]{Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+M)^{/{({x*i*T*_{-+^&x*R*_&`)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.:{<{[{}{|{1{2{3{4{5{6{7{ {8{9{@{0{a{b{c{d{e{f{g{h{ ", +" P.{~i{o*%@!*j{;*k{T*j*{ l{m{n{| E*o{p{a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.q{-*} r{s{R*t{9&]&({J!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.u{v{w{x{}{|{1{2{3{4{5{6{7{x~8{y{z{A{B{C{D{E{f{F{G{H{I{J{ ", +" P.K{l*(&!*}-L{0*M{N{=~[-O{P{=&E&=&=&=&y*Q{E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$R{s !*. a)]~S{T{U{U{/#/#e*1*/#e*V{. W{K.P.P.P.P.P.P.P.X{P.P.P.P.u{Y{Z{`{ ].]|{+]@]3{#]$]%]&]*]=]-];]>],]']d{E{)]!]~]{]]]^]/](]O. ", +" P._]/&/&}-*+:]F=F==~<]5.V&S.[]-*}]|]1]9&R*R*2]3]`)4]5]s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r 6]}*i&V&N{7]8]N):&[*D+9]Z)0]) P+J.P.P.O.P.P.P.Q.a]b]c]P.P.d]e]f]g]h]i].]|{j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y])]z]A]B]A]C]D]E]F]0 G]H] ", +" P.i{K~K~*+I]J]N{N{}=K]W{L]M]p.N]w O]P]Q]R]S&M)T{^{T{I!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M S]! Z)T]5.M{U][-9]-*S.)*V]0 ..F#M&Y$o+P.P.P.P.P.W]X]Y]Z]`] ^.^+^@^#^h]i]}{$^%^&^*^=^-^;^>^r+P.,^'^)^!^~^{^]^^^/^~]~]z](^_^:^<^[^}^|^ ", +" P.1^2*g~2^M{3^=~=~4^5.L]5^p.6^.*7^Z)}*8^g*! m 9^Q 0^a^b^e~c^d^e~|%. S.e^v I.a+$+#+Q.P.P.P.P.P.P.P.p.K]0^f^g^0*h^p.Z)1=a i^*.P.P.P.P.P.P.P.P.j^k^l^m^n^o^p^q^r^#^s^i]t^u^v^w^x^r+P.P.P.P.P.P.P.P.P.y^z^A^B^C^(^!]F{)]e{D^E^F^G^H^I^ ", +" P.J^K^| !@L^=~-*-*M^V&5]S.< i&N^Q]O^P^Q^1=R^9 a H I S^M :.N^. T^E@U^U^L~>)}-K]Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.V^W^X^Y^Z^`^ /./+/#^s^@/#/$/%/++P.P.P.P.P.P.P.P.P.P.P.P.Q.&/*/=/-/;/f{e{>/D{C{,/'/)/ ", +" P.j*7.M~A*A*!/~/U&{/w*S.p.< .*w Z)Y&]/V]^/) A.//H (/M@M P g.`.}.7@_/b!D+|%]~~~://D{c{b{d/e/ ", +" P.f/g/L!e*!/=&T.V*V*x*h/;*9]i/O]Z)}*Q^j/! ) 0 S]r .v ]@N+&.`.-.1.3.4.n.<#}.k/<]l/m/>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.n/o/p/3/q/5/r/s/t/u/P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.M.F#f.v/w/x/y/c{C{b{a{z/A/ ", +" P.q!-+-+%@!*B/!@C/!=x*x*c+({Q*e*D/*+E/1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+F/S&G/:&H/=*I/L{< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.J/K/L/M/q/N/O/P/Q/Q.P.P.P.P.P.P.P.P.P.P.P.P.Q.O.l+%.B.s I R/S/T/U/B{${A{V/W/ ", +" P.7.i*X/!*}-L{0*M{N{-*. x&,.`)_&s{Y/O!e*Z/}-E/c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)`/D+ (.(. 7]*++(9]-*@(g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.N.#($(%(M/&(*(=(-(;(P.P.P.P.P.P.P.P.P.P.P.Q.P.;.q$$.N M L K q >(,('(A{0{#{)(!(~( ", +" P.=&]&]&}-*+:]F=F==~<]5.V&S.[]5.{(Z//=/#X*](e*s%V{!*^(v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&/(:&p{((f^I/p=*+0^0*_(=~N{F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.:(<([(%(}(3/|(1(2(P.P.P.P.P.P.P.P.P.P.P.P.3.[.[.O+%$P N M v t 3(4(5(6(z{@{9{7(8( ", +" P.3]Q*Q**+I]J]N{N{}=K]W{L]M]p.N]w O]P]Q]9(0(a(k{/=b(6.c(~~b%d(M [+4.Q@C+p+2+P.P.P.P.a)[*e(f(g(b%!*}-*+0^F=h(-*-*-*=~N{F=F=< 9 &.3.n.p+P.Q.P.P.P.R/i(j(k(l(3/m(n(o(P.P.P.P.P.P.P.P.P.P.Y$k.2.p(}.=%`.g.q(N M v e.r(s(t(y{9{8{u(v( ", +" P.c+_&_&2^M{3^=~=~4^5.L]5^p.6^.*7^Z)}*8^g*! m 9^O^w(x(y(z(#!&@L~|%A(.*N 0%P.P.P.P.P.B(C(D(f([-. !*}-L^-&F==~-*-*-*-*-*-*-*=~N{F=-*.*0 P }.I.O.r+E(F(G(H(%(I(J(K(o%P.P.P.P.P.P.P.O.p+_#-%R+4.2.k.m+[.O+&.%.O N ^+L(M(N(8{8{x~O(P( ", +" P.R*I!`)Q(2^=~-*-*M^V&5]S.< i&N^Q]O^P^Q^1=R^9 a H I S^M R(S(L^!@]~~~|%T(x&N)< ..n.P.G/:&D+N)b%U(7]+(9]0*N{=~-*-*-*-*-*-*-*-*-*-*-*=~N{V(W(X(Y(Z(`( _._+_k(@_#_$_P.P.P.P.P.P.O.R@1+++_*M.:#J.4.3.~!>.i.`.&.g.#.N %_&_*_x~ {w~=_-_;_ ", +" P.[=!=>_!=!=d^L~,_'_w*S.p.< .*w Z)Y&]/V]^/) A.//H (/M@M P g.`.}.}.{+< [ ~ :/)_O'S&[-`/D(N)[-%@!*!_~_0*F=N{{_-*-*-*-*-*-*-*-*-*-*-*-*-*]_^_/_(_(___:_._<_H([_}_|_#+Q.P.P.O.O.O.p+P.P.n%p+M.K.I.4.2!2.}.-.<.O+g.P 1_2_3_7{7{4_5_6_7_8_9_0_ ", +" P.a_U^b_d^c_P{X*X*X*](,#S&F=i/O]Z)}*Q^j/! ) 0 S]r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%B(:&D+N).(. !**+9]0*F==~}=-*-*-*-*-*-*-*-*-*-*-*-*-*d_e_f_g_h_i_j_k_l_+_m_n_o_&.M.$+P.P.O.P.P.P.P.P.q+p+M.Q@I.n+<%M&p_}.[.`.&.q_r_s_4_6{Z~5{t_u_v_w_x_ ", +" P.8+v+1.Z)D+~~,#/=1*y_z_e*s%s%,#O'F=E/1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+p{[-. !*v&*+I]F=N{=~-*-*-*-*-*-*-*-*-*-*-*-*-*-*A_B_C_D_E_F_G_H_._<_I_J_K_w*< .*o+P.P.P.P.P.P.P.P.O.R@S+o+n.f@r$G.~!}.[.`.L_M_N_Z~5{Y~O_P_Q_R_S_T_ ", +" P.#+8+9+#+_+w b%U_V_=+e*s%k{~/W_X_{!!@Y_Z_c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.D+`_.(. !*v&L^0*F=N{ :-*-*-*-*-*-*-*-*-*-*-*-*-*-*.:+:@:@:#:$:%:j_&:l_*:=:-:-*-*F=n.P.P.P.P.P.P.P.P.P.q+F$M.L.Q@}+-$3.1.k.}.;:>:,:O_O_4{':):!: ", +" Q.a+ v+p+M Z)~: (|%=+:={:,.]:]:{!,#~ '_P^v h.`.[.k. +4.J.o+p+P.P.P.P.P.^:g(f^U]p=/:9]'_N{(:}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}=_:::<:H_&:[:}:|:-*-*F=n.P.P.P.P.P.P.P.P.P.P.O.N&N.:@o+m.I.4.2.G#1:2:3:3{3{4:5:6: ", +" 8+#+R+N 1=[]7:|%=+,.8:&@L~a&a&^=~ 2^9:N [+4.Q@C+p+2+P.P.P.P.[-0:. 7]}-9]0*F=N{R]-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}=a:b:c:j_k_d:e:f:g:-*F=n.P.P.P.P.P.P.P.P.P.P.P.n%O.S+C+o+n.J.-$[+h:i:j:@]2{2{k:l: ", +" $+P.4.g.H O]m:V{n:,#a&V{T(o:;*x&a!*+p:Z.0%P.P.P.P.P.b%. !*}-*+9]0*F==~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*q:r:s:t:H_&:u:v:w:-*F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.O.p+M.o+Q@n.x:y:z:A:+]+]1{B:C: ", +" Q.O.I.F.N O]b%~~]~|%D:U&~ !@O'S&a)E:w M o+P.b%7:!*F:9]0*G:h(-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*H:I:J:K:<:H_L:M:N:T&F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.p+M.M.O:P:Q:R:R:R:|{S:T: ", +" P.O.M.o+g.w =*U:U&V:W:a)X::&D+`_.(+(. !*}-*+0*Y:Z:=~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*(:`: <.< ", +" P.P.P.P.p+N < =*,<`/X:N)^:.(%@U(}-v&L^0*'<)<}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*(:!<~<{<.[,['[r},}'}&}{|,| ", +" '|)| ", +" ", +" "}; diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index 442ef5f32..b33e3d277 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -36,7 +36,7 @@ class ShipWorkbench ( Workbench ): self.appendToolbar("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendToolbar("Weights",list) - list = ["Ship_CreateSim"] + list = ["Ship_CreateSim", "Ship_RunSim"] self.appendToolbar("Simulation",list) # Menu @@ -44,7 +44,7 @@ class ShipWorkbench ( Workbench ): self.appendMenu("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendToolbar("Weights",list) - list = ["Ship_CreateSim"] + list = ["Ship_CreateSim", "Ship_RunSim"] self.appendToolbar("Simulation",list) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index bb71e262b..158be05a7 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -41,8 +41,9 @@ nobase_data_DATA = \ Icons/SimIco.xcf \ Icons/Sim.xpm \ Icons/SimCreateIco.png \ - Icons/SimCreateIco.xcf \ Icons/SimCreateIco.xpm \ + Icons/SimRunIco.png \ + Icons/SimRunIco.xpm \ Icons/Tank.png \ Icons/Tank.xcf \ Icons/Tank.xpm \ @@ -86,10 +87,14 @@ nobase_data_DATA = \ tankGZ/__init__.py \ tankGZ/Plot.py \ tankGZ/TaskPanel.py \ - tankGZ/TaskPanel.ui + tankGZ/TaskPanel.ui \ simCreate/__init__.py \ simCreate/TaskPanel.py \ - simCreate/TaskPanel.ui + simCreate/TaskPanel.ui \ + simRun/__init__.py \ + simRun/Simulation.py \ + simRun/TaskPanel.py \ + simRun/TaskPanel.ui CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index 52407b824..efee2382d 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -132,6 +132,18 @@ class CreateSim: ToolTip = str(Translator.translate('Create a new simulation in order to process later')) return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} +class RunSim: + def Activated(self): + import simRun + simRun.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimRunIco.png" + MenuText = str(Translator.translate('Run a simulation')) + ToolTip = str(Translator.translate('Run a simulation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) FreeCADGui.addCommand('Ship_CreateShip', CreateShip()) FreeCADGui.addCommand('Ship_OutlineDraw', OutlineDraw()) @@ -141,3 +153,4 @@ FreeCADGui.addCommand('Ship_Weights', SetWeights()) FreeCADGui.addCommand('Ship_CreateTank', CreateTank()) FreeCADGui.addCommand('Ship_GZ', GZ()) FreeCADGui.addCommand('Ship_CreateSim', CreateSim()) +FreeCADGui.addCommand('Ship_RunSim', RunSim()) diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py index 82556cacf..193c54823 100644 --- a/src/Mod/Ship/SimInstance.py +++ b/src/Mod/Ship/SimInstance.py @@ -23,6 +23,7 @@ import time from math import * +import threading # COIN from pivy.coin import * @@ -40,24 +41,45 @@ class FreeSurfaceFace: """ Face storage. @param pos Face position. @param normal Face normal. - @param Element length (distance between elements at x direction) - @param Element beam (distance between elements at y direction) + @param l Element length (distance between elements at x direction) + @param b Element beam (distance between elements at y direction) """ self.pos = pos self.normal = normal self.area = l*b + def __init__(self, pos, normal, area): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param area Element area + """ + self.pos = pos + self.normal = normal + self.area = area + class ShipSimulation: - def __init__(self, obj, fsMeshData): + def __init__(self, obj, fsMeshData, waves): """ Creates a new simulation instance on active document. @param obj Created Part::FeaturePython object. @param fsMeshData [L,B,N] Free surface mesh data, with lenght (x), Beam (y) and desired number of points. + @param waves [[A,T,phi,heading],] Waves involved """ # Add uniqueness property to identify Tank instances obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True # Compute free surface mesh self.createFSMesh(obj,fsMeshData) + # Store waves + obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", str(Translator.translate("Waves (Amplitude,period,phase)"))).Waves=[] + obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", str(Translator.translate("Waves direction (0 deg to stern waves)"))).Waves_Dir=[] + w = [] + d = [] + for i in range(0,len(waves)): + w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) + d.append(waves[i][3]) + obj.Waves = w + obj.Waves_Dir = d # Add shapes shape = self.computeShape(obj) if not shape: @@ -103,7 +125,6 @@ class ShipSimulation: b = sqrt(area) nx = int(round(L / l)) ny = int(round(B / b)) - print(l,b,nx,ny) # Start data fields if not already exist props = obj.PropertiesList try: @@ -141,87 +162,27 @@ class ShipSimulation: obj.FS_Area = areas[:] obj.FS_Normal = normal[:] - def FSMesh(self, obj): - """ Get free surface mesh in matrix mode. - @param obj Created Part::FeaturePython object. - @return Faces matrix - @note areas and normals will recomputed. - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - # Transform positions into a mesh - pos = [] - for i in range(0,nx): - pos.append([]) - for j in range(0,ny): - pos[i].append(obj.FS_Position[j + i*ny]) - # Recompute normals and dimensions - normal = [] - l = [] - b = [] - for i in range(0,nx): - normal.append([]) - l.append([]) - b.append([]) - for j in range(0,ny): - i0 = i-1 - i1 = i+1 - fi = 1.0 - j0 = j-1 - j1 = j+1 - fj = 1.0 - if i == 0: - i0 = i - i1 = i+1 - fi = 2.0 - if i == nx-1: - i0 = i-1 - i1 = i - fi = 2.0 - if j == 0: - j0 = j - j1 = j+1 - fj = 2.0 - if j == ny-1: - j0 = j-1 - j1 = j - fj = 2.0 - l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) - b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) - xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, - obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, - obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) - yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, - obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, - obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) - n = Vector(xvec.cross(yvec)) # Z positive - normal[i].append(n.normalize()) - # Create faces - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) - # Reconstruct mesh data - for i in range(0,nx): - for j in range(0,ny): - obj.FS_Position[j + i*ny] = faces[i][j].pos - obj.FS_Normal[j + i*ny] = faces[i][j].normal - obj.FS_Area[j + i*ny] = faces[i][j].area - return faces - def computeShape(self, obj): """ Computes simulation involved shapes. @param obj Created Part::FeaturePython object. @return Shape """ + print("[ShipSimulation] Computing mesh shape...") nx = obj.FS_Nx ny = obj.FS_Ny - mesh = self.FSMesh(obj) + mesh = FSMesh(obj) planes = [] # Create planes + Percentage = 0 + Count = 0 + print("0%") for i in range(1,nx-1): for j in range(1,ny-1): + Count = Count+1 + done = int(round(100 * Count / ((nx-2)*(ny-2)))) + if done != Percentage: + Percentage = done + print("%i%%" % (done)) v0 = (mesh[i][j].pos + mesh[i-1][j].pos + mesh[i][j-1].pos + mesh[i-1][j-1].pos).multiply(0.25) v1 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j-1].pos + mesh[i+1][j-1].pos).multiply(0.25) v2 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j+1].pos + mesh[i+1][j+1].pos).multiply(0.25) @@ -615,3 +576,81 @@ class ViewProviderShipSimulation: " ", " "}; """ + +def FSMesh(obj, recompute=False): + """ Get free surface mesh in matrix mode. + @param obj Created Part::FeaturePython object. + @param recompute True if mesh must be recomputed, False otherwise. + @return Faces matrix + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + if not recompute: + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], + obj.FS_Normal[j + i*ny], + obj.FS_Area[j + i*ny])) + return faces + # Transform positions into a mesh + pos = [] + for i in range(0,nx): + pos.append([]) + for j in range(0,ny): + pos[i].append(obj.FS_Position[j + i*ny]) + # Recompute normals and dimensions + normal = [] + l = [] + b = [] + for i in range(0,nx): + normal.append([]) + l.append([]) + b.append([]) + for j in range(0,ny): + i0 = i-1 + i1 = i+1 + fi = 1.0 + j0 = j-1 + j1 = j+1 + fj = 1.0 + if i == 0: + i0 = i + i1 = i+1 + fi = 2.0 + if i == nx-1: + i0 = i-1 + i1 = i + fi = 2.0 + if j == 0: + j0 = j + j1 = j+1 + fj = 2.0 + if j == ny-1: + j0 = j-1 + j1 = j + fj = 2.0 + l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) + b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) + xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, + obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, + obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) + yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, + obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, + obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) + n = Vector(xvec.cross(yvec)) # Z positive + normal[i].append(n.normalize()) + # Create faces + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) + # Reconstruct mesh data + for i in range(0,nx): + for j in range(0,ny): + obj.FS_Position[j + i*ny] = faces[i][j].pos + obj.FS_Normal[j + i*ny] = faces[i][j].normal + obj.FS_Area[j + i*ny] = faces[i][j].area + return faces diff --git a/src/Mod/Ship/simCreate/TaskPanel.py b/src/Mod/Ship/simCreate/TaskPanel.py index 3741fbec4..e14f4c964 100644 --- a/src/Mod/Ship/simCreate/TaskPanel.py +++ b/src/Mod/Ship/simCreate/TaskPanel.py @@ -36,9 +36,22 @@ class TaskPanel: def accept(self): form = self.form + # Read waves data + w = [] + for i in range(0,form.waves.rowCount() - 1): + item = form.waves.item(i,0) + A = item.text().toFloat()[0] + item = form.waves.item(i,1) + T = item.text().toFloat()[0] + item = form.waves.item(i,2) + phi = item.text().toFloat()[0] + item = form.waves.item(i,3) + head = item.text().toFloat()[0] + w.append([A,T,phi,head]) obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") sim = SimInstance.ShipSimulation(obj, - [form.length.value(), form.beam.value(), form.n.value()]) + [form.length.value(), form.beam.value(), form.n.value()], + w) SimInstance.ViewProviderShipSimulation(obj.ViewObject) return True @@ -72,6 +85,7 @@ class TaskPanel: form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") form.n = form.findChild(QtGui.QSpinBox, "N") + form.waves = form.findChild(QtGui.QTableWidget, "Waves") self.form = form # Initial values if self.initValues(): @@ -81,6 +95,7 @@ class TaskPanel: QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) + QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); def getMainWindow(self): "returns the main window" @@ -108,14 +123,48 @@ class TaskPanel: self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) + self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(Translator.translate("Waves")) + labels = [] + labels.append(Translator.translate("Amplitude") + " [m]") + labels.append(Translator.translate("Period") + " [s]") + labels.append(Translator.translate("Phase") + " [rad]") + labels.append(Translator.translate("Heading") + " [deg]") + self.form.waves.setHorizontalHeaderLabels(labels) def onFS(self, value): - """ Method called when ship data is changed. - Annotations must be showed. + """ Method called when free surface data is changed. @param value Changed value. """ pass + def onWaves(self, row, column): + """ Method called when waves data is changed. + @param row Affected row. + @param col Affected column. + """ + item = self.form.waves.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.waves.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.waves.rowCount() + last = self.form.waves.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.waves.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.waves.rowCount()-1): # Avoid last row + for j in range(0,self.form.waves.columnCount()): # Avoid name column + item = self.form.waves.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.waves.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') + def createTask(): panel = TaskPanel() Gui.Control.showDialog(panel) diff --git a/src/Mod/Ship/simCreate/TaskPanel.ui b/src/Mod/Ship/simCreate/TaskPanel.ui index 995b64455..107d2a16d 100644 --- a/src/Mod/Ship/simCreate/TaskPanel.ui +++ b/src/Mod/Ship/simCreate/TaskPanel.ui @@ -6,14 +6,20 @@ 0 0 - 260 - 180 + 269 + 384 + + + 0 + 1 + + 0 - 180 + 384 @@ -22,155 +28,236 @@ + + QLayout::SetMinimumSize + + + + 0 + 1 + + - 240 - 160 + 0 + 128 Free surface + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + false - - - - 0 - 20 - 241 - 141 - + + + QLayout::SetDefaultConstraint - - - 6 - - - QLayout::SetDefaultConstraint - - - - - QLayout::SetDefaultConstraint + + + + QLayout::SetMinimumSize + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Length + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 100.000000000000000 + + + + + + + + + QLayout::SetMinimumSize + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Beam + + + + + + + 1 + + + 1000000.000000000000000 + + + 10.000000000000000 + + + 100.000000000000000 + + + + + + + + + QLayout::SetMinimumSize + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Number of points + + + + + + + 1 + + + 1000000000 + + + 1000 + + + + + + + + + + + + + 0 + 2 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + 0 + 0 + + + + Waves + + + + QLayout::SetDefaultConstraint + + + + + + 0 + 0 + + + + true + + + 1 + + + true + + + + + Amplitude [m] - - 10 + + + + Period [s] - - 0 + + + + Phase [rad] - - 10 + + + + Heading [deg] - - 0 - - - - - Length - - - - - - - 1 - - - 1000000.000000000000000 - - - 10.000000000000000 - - - 100.000000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Beam - - - - - - - 1 - - - 1000000.000000000000000 - - - 10.000000000000000 - - - 100.000000000000000 - - - - - - - - - 10 - - - 0 - - - 10 - - - 0 - - - - - Number of points - - - - - - - 1 - - - 1000000000 - - - 10000 - - - - - - - + + + + diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py new file mode 100644 index 000000000..bf457e9e7 --- /dev/null +++ b/src/Mod/Ship/simRun/Simulation.py @@ -0,0 +1,56 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import time +from math import * +import threading + +# FreeCAD +import FreeCAD,FreeCADGui +from FreeCAD import Part, Base, Vector + +# Ship design module +from shipUtils import Paths, Translator, Math + +class FreeCADShipSimulation(threading.Thread): + def __init__ (self, endTime, output, FSmesh, waves): + """ Thread constructor. + @param endTime Maximum simulation time. + @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param FSmesh Free surface mesh faces. + @param waves Waves parameters (A,T,phi,heading) + """ + threading.Thread.__init__(self) + self.endTime = endTime + self.output = output + self.FSmesh = FSmesh + self.waves = waves + + def run(self): + """ Runs the simulation. + """ + # Perform work here + print("Im thread, Im running...") + time.sleep(2) + # ... + print("Im thread, I end!") diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py new file mode 100644 index 000000000..14cc86776 --- /dev/null +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -0,0 +1,160 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD as App +import FreeCADGui as Gui +# Qt library +from PyQt4 import QtGui,QtCore +# Module +import SimInstance +from shipUtils import Paths, Translator +from Simulation import FreeCADShipSimulation as Sim + +class TaskPanel: + def __init__(self): + self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" + self.sim = False + + def accept(self): + if not self.sim: + return False + msg = Translator.translate("Building data...\n") + App.Console.PrintMessage(msg) + # Get GUI data + endTime = self.form.time.value() + output = [] + output.append(self.form.output.value()) + output.append(self.form.outputType.currentIndex()) + # Get free surfaces data + FSMesh = SimInstance.FSMesh(self.sim) + wData = self.sim.Waves + wDir = self.sim.Waves_Dir + waves = [] + for i in range(0,len(wData)): + waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) + msg = Translator.translate("Launching simulation...\n") + App.Console.PrintMessage(msg) + # Build simulation thread + t = Sim(endTime, output, FSMesh, waves) + t.start() + msg = Translator.translate("Done!\n") + App.Console.PrintMessage(msg) + return True + + def reject(self): + return True + + def clicked(self, index): + pass + + def open(self): + pass + + def needsFullSpace(self): + return True + + def isAllowedAlterSelection(self): + return False + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return False + + def helpRequested(self): + pass + + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") + form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") + form.outputType = form.findChild(QtGui.QComboBox, "OutputType") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) + + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") + + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = Translator.translate("Ship simulation instance must be selected (no object selected)\n") + App.Console.PrintError(msg) + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShipSimulation") + except ValueError: + continue + if obj.IsShipSimulation: + # Test if another ship already selected + if self.sim: + msg = Translator.translate("More than one ship simulation selected (extra simulations will be neglected)\n") + App.Console.PrintWarning(msg) + break + self.sim = obj + # Test if any valid ship was selected + if not self.sim: + msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") + App.Console.PrintError(msg) + return True + msg = Translator.translate("Ready to work\n") + App.Console.PrintMessage(msg) + return False + + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(Translator.translate("Run the simulation")) + self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) + self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) + +def createTask(): + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simRun/TaskPanel.ui b/src/Mod/Ship/simRun/TaskPanel.ui new file mode 100644 index 000000000..435a87e6e --- /dev/null +++ b/src/Mod/Ship/simRun/TaskPanel.ui @@ -0,0 +1,115 @@ + + + TaskPanel + + + + 0 + 0 + 292 + 72 + + + + + 0 + 1 + + + + + 0 + 72 + + + + Create new simulation + + + + + + Simulation time + + + + + + + 1 + + + 10000000.000000000000000 + + + 10.000000000000000 + + + 3600.000000000000000 + + + + + + + + 16 + 16777215 + + + + s + + + + + + + Output + + + + + + + 10000.000000000000000 + + + 1.000000000000000 + + + + + + + + 0 + 0 + + + + + 56 + 16777215 + + + + + + + + FPS + + + + + IPF + + + + + + + + + diff --git a/src/Mod/Ship/simRun/__init__.py b/src/Mod/Ship/simRun/__init__.py new file mode 100644 index 000000000..cbfb57d75 --- /dev/null +++ b/src/Mod/Ship/simRun/__init__.py @@ -0,0 +1,36 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD +import FreeCADGui + +# Qt libraries +from PyQt4 import QtGui,QtCore + +# Main object +import TaskPanel + +def load(): + """ Loads the tool """ + TaskPanel.createTask() From 6de9fd579172366bb12bc47b66c7fb551266d3fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Fri, 6 Jul 2012 13:51:01 +0200 Subject: [PATCH 13/98] Imported pyOpenCL library --- src/Mod/Ship/InitGui.py | 19 +++++++++++++---- src/Mod/Ship/ShipGui.py | 2 +- src/Mod/Ship/simRun/Simulation.py | 11 +++++++++- src/Mod/Ship/simRun/TaskPanel.py | 34 +++++++++++++++++++++++++++---- src/Mod/Ship/simRun/TaskPanel.ui | 22 +++++++++++++++++--- 5 files changed, 75 insertions(+), 13 deletions(-) diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index b33e3d277..de44d60a8 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -36,15 +36,26 @@ class ShipWorkbench ( Workbench ): self.appendToolbar("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendToolbar("Weights",list) - list = ["Ship_CreateSim", "Ship_RunSim"] - self.appendToolbar("Simulation",list) + try: + import pyopencl + except ImportError: + msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") + App.Console.PrintWarning(msg) + else: + list = ["Ship_CreateSim", "Ship_RunSim"] + self.appendToolbar("Simulation",list) # Menu list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] self.appendMenu("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendToolbar("Weights",list) - list = ["Ship_CreateSim", "Ship_RunSim"] - self.appendToolbar("Simulation",list) + try: + import pyopencl + except ImportError: + pass + else: + list = ["Ship_CreateSim", "Ship_RunSim"] + self.appendToolbar("Simulation",list) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index efee2382d..a764a2b24 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -140,7 +140,7 @@ class RunSim: def GetResources(self): from shipUtils import Paths, Translator IconPath = Paths.iconsPath() + "/SimRunIco.png" - MenuText = str(Translator.translate('Run a simulation')) + MenuText = str(Translator.translate('Run a simulation')) ToolTip = str(Translator.translate('Run a simulation')) return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index bf457e9e7..1910f79f9 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -25,6 +25,9 @@ import time from math import * import threading +# pyOpenCL +import pyopencl as cl + # FreeCAD import FreeCAD,FreeCADGui from FreeCAD import Part, Base, Vector @@ -33,14 +36,20 @@ from FreeCAD import Part, Base, Vector from shipUtils import Paths, Translator, Math class FreeCADShipSimulation(threading.Thread): - def __init__ (self, endTime, output, FSmesh, waves): + def __init__ (self, device, endTime, output, FSmesh, waves): """ Thread constructor. + @param device Device to use. @param endTime Maximum simulation time. @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. @param FSmesh Free surface mesh faces. @param waves Waves parameters (A,T,phi,heading) """ threading.Thread.__init__(self) + # Build OpenCL context and command queue + self.device = device + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) + # Storage data self.endTime = endTime self.output = output self.FSmesh = FSmesh diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index 14cc86776..0a8762617 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -26,6 +26,8 @@ import FreeCAD as App import FreeCADGui as Gui # Qt library from PyQt4 import QtGui,QtCore +# pyOpenCL +import pyopencl as cl # Module import SimInstance from shipUtils import Paths, Translator @@ -37,8 +39,6 @@ class TaskPanel: self.sim = False def accept(self): - if not self.sim: - return False msg = Translator.translate("Building data...\n") App.Console.PrintMessage(msg) # Get GUI data @@ -46,6 +46,16 @@ class TaskPanel: output = [] output.append(self.form.output.value()) output.append(self.form.outputType.currentIndex()) + devId = self.form.device.currentIndex() + # Get OpenCL device + count = 0 + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + if count == devId: + device = d + count = count + 1 # Get free surfaces data FSMesh = SimInstance.FSMesh(self.sim) wData = self.sim.Waves @@ -56,8 +66,8 @@ class TaskPanel: msg = Translator.translate("Launching simulation...\n") App.Console.PrintMessage(msg) # Build simulation thread - t = Sim(endTime, output, FSMesh, waves) - t.start() + simulator = Sim(device, endTime, output, FSMesh, waves) + simulator.start() msg = Translator.translate("Done!\n") App.Console.PrintMessage(msg) return True @@ -92,6 +102,7 @@ class TaskPanel: form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") form.outputType = form.findChild(QtGui.QComboBox, "OutputType") + form.device = form.findChild(QtGui.QComboBox, "Device") self.form = form # Initial values if self.initValues(): @@ -140,6 +151,20 @@ class TaskPanel: msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") App.Console.PrintError(msg) return True + # Get the list of devices + devices = [] + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + devices.append([p,d]) + dname = d.get_info(cl.device_info.NAME) + pname = p.get_info(cl.platform_info.NAME) + self.form.device.addItem(dname + " (" + pname + ")") + if not len(devices): + msg = Translator.translate("This tool requires an active OpenCL context to work\n") + App.Console.PrintError(msg) + return True msg = Translator.translate("Ready to work\n") App.Console.PrintMessage(msg) return False @@ -150,6 +175,7 @@ class TaskPanel: self.form.setWindowTitle(Translator.translate("Run the simulation")) self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) + self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(Translator.translate("OpenCL device")) def createTask(): panel = TaskPanel() diff --git a/src/Mod/Ship/simRun/TaskPanel.ui b/src/Mod/Ship/simRun/TaskPanel.ui index 435a87e6e..25eeebe79 100644 --- a/src/Mod/Ship/simRun/TaskPanel.ui +++ b/src/Mod/Ship/simRun/TaskPanel.ui @@ -6,8 +6,8 @@ 0 0 - 292 - 72 + 300 + 102 @@ -19,7 +19,13 @@ 0 - 72 + 100 + + + + + 300 + 16777215 @@ -108,6 +114,16 @@ + + + + OpenCL device + + + + + + From 60fe69389ae5b69b18ced69e82ca36a6cffa513b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Sun, 8 Jul 2012 14:23:06 +0200 Subject: [PATCH 14/98] Simulation thread control developed. --- src/Mod/Ship/CMakeLists.txt | 2 + src/Mod/Ship/Icons/SimIco.xcf | Bin 47149 -> 55163 bytes src/Mod/Ship/Icons/SimRunIco.png | Bin 15466 -> 14554 bytes src/Mod/Ship/Icons/SimRunIco.xpm | 2223 ++++++++++++++--------------- src/Mod/Ship/Icons/SimStopIco.png | Bin 0 -> 13235 bytes src/Mod/Ship/Icons/SimStopIco.xpm | 2217 ++++++++++++++++++++++++++++ src/Mod/Ship/InitGui.py | 4 +- src/Mod/Ship/Makefile.am | 2 + src/Mod/Ship/ShipGui.py | 13 + src/Mod/Ship/simRun/Simulation.py | 38 +- src/Mod/Ship/simRun/TaskPanel.py | 17 + src/Mod/Ship/simRun/__init__.py | 4 + 12 files changed, 3336 insertions(+), 1184 deletions(-) create mode 100644 src/Mod/Ship/Icons/SimStopIco.png create mode 100644 src/Mod/Ship/Icons/SimStopIco.xpm diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index f16627870..ef3d635a5 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -43,6 +43,8 @@ SET(ShipIcons_SRCS Icons/SimCreateIco.xpm Icons/SimRunIco.png Icons/SimRunIco.xpm + Icons/SimStopIco.png + Icons/SimStopIco.xpm Icons/Tank.png Icons/Tank.xcf Icons/Tank.xpm diff --git a/src/Mod/Ship/Icons/SimIco.xcf b/src/Mod/Ship/Icons/SimIco.xcf index d4e42da2b48d2045c836c2a6d8ee3b536ae05909..8d250eb82f8e3c0da77f2f8765d0f0dedbbb1cc4 100644 GIT binary patch delta 8120 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 BK=1$n delta 408 zcmY+A&npCB7{|Z6l(d>5O0?|`rFD7_)R5oYoya%7v8g`_5i`>hsJq%`@NU?fto^JO4=Uj;3*YH9qUKQ~|FM2>OBLJ>a0M zs!oS$6@^qv4U4kxP9s6`VXOz-MIisn-XIg*4WRuS$ZgYDKa0m^n^2tGF;fX1w^<~s zkzw8gw-?wOWTN*DjGO^81Hk;X?wg3Gk}#DIGk);GDTA!Zl;D%+=W2^&r3((tQ2{LZ zx)h!?s3#|@glMXztw$NZGG_nzmsXkMO;C$urIl5>N%w)RH&qIIls;_JUs17lDCP+) loHMiFdz=OCy4V|JVmt^O@j_46fXfy0K}GkS`uOIx`wv5GQA+>- diff --git a/src/Mod/Ship/Icons/SimRunIco.png b/src/Mod/Ship/Icons/SimRunIco.png index f10386cf77f0dccf33f6e347820703a618102a00..2e53c25054c68407c23b5f1a8d0b9fd0fde47967 100644 GIT binary patch literal 14554 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 KQnf&n(EkHdBM+Pa diff --git a/src/Mod/Ship/Icons/SimRunIco.xpm b/src/Mod/Ship/Icons/SimRunIco.xpm index 44cd8b4ab..7adab3214 100644 --- a/src/Mod/Ship/Icons/SimRunIco.xpm +++ b/src/Mod/Ship/Icons/SimRunIco.xpm @@ -1,6 +1,6 @@ /* XPM */ static char * SimRunIco_xpm[] = { -"128 128 2592 2", +"128 128 2459 2", " c None", ". c #7B7B7B", "+ c #EAEAEA", @@ -1467,1132 +1467,999 @@ static char * SimRunIco_xpm[] = { "S) c #070607", "T) c #060504", "U) c #020303", -"V) c #0A0505", -"W) c #B6ACAE", -"X) c #B5ACAD", -"Y) c #A19999", -"Z) c #666666", -"`) c #9F9F9F", -" ! c #C4C3C4", -".! c #C2C2C3", -"+! c #C0C0BF", -"@! c #BCBBBB", -"#! c #909191", -"$! c #141516", -"%! c #121211", -"&! c #0F0E0F", -"*! c #090908", -"=! c #070606", -"-! c #050605", -";! c #020101", -">! c #5E2E2E", -",! c #E46A66", -"'! c #E36B64", -")! c #C77878", -"!! c #9F9B9B", -"~! c #4D4E4D", -"{! c #929292", -"]! c #C2C3C2", -"^! c #C1C2C2", -"/! c #C2C1C2", -"(! c #0B0C0B", -"_! c #030202", -":! c #000100", -"~ c #B0AFAF", -",~ c #B1B0B0", -"'~ c #ACADAC", -")~ c #AAABAB", -"!~ c #A8A7A8", -"~~ c #8C8C8C", -"{~ c #B9B8B8", -"]~ c #8D8D8D", -"^~ c #8F7B7C", -"/~ c #DB7066", -"(~ c #EB7A30", -"_~ c #E87448", -":~ c #9B5050", -"<~ c #211314", -"[~ c #050303", -"}~ c #2C1B1B", -"|~ c #5D3232", -"1~ c #964A49", -"2~ c #BA5351", -"3~ c #E26557", -"4~ c #E96D58", -"5~ c #F08B4C", -"6~ c #F89744", -"7~ c #EE7257", -"8~ c #EA6A5C", -"9~ c #F16358", -"0~ c #E9615F", -"a~ c #E36565", -"b~ c #F36656", -"c~ c #F59C60", -"d~ c #F35B4F", -"e~ c #999898", -"f~ c #A3A2A3", -"g~ c #ACACAD", -"h~ c #A4A4A3", -"i~ c #A1A0A0", -"j~ c #9E9D9D", -"k~ c #CC9D9C", -"l~ c #EC725C", -"m~ c #EE7D29", -"n~ c #EA7352", -"o~ c #C96967", -"p~ c #AA5654", -"q~ c #D9625C", -"r~ c #E67059", -"s~ c #EB7C4F", -"t~ c #ED8449", -"u~ c #F7923A", -"v~ c #FA953A", -"w~ c #FF9C3B", -"x~ c #FF9E3F", -"y~ c #FB9C46", -"z~ c #FB9E4A", -"A~ c #F69A55", -"B~ c #F08C5D", -"C~ c #F07C5E", -"D~ c #F1685A", -"E~ c #EF5B58", -"F~ c #E75F5D", -"G~ c #F15551", -"H~ c #F18A63", -"I~ c #F18562", -"J~ c #EA5653", -"K~ c #AEAEAF", -"L~ c #8F8F8F", -"M~ c #A9A9AA", -"N~ c #A3A2A2", -"O~ c #AEAFAF", -"P~ c #B9B1B1", -"Q~ c #DF8886", -"R~ c #EA7C3F", -"S~ c #F7841B", -"T~ c #EC7F39", -"U~ c #EC803E", -"V~ c #EF853B", -"W~ c #FB8D25", -"X~ c #FF9227", -"Y~ c #FF952D", -"Z~ c #FF9731", -"`~ c #FF9A37", -" { c #FF9D3D", -".{ c #FF9F41", -"+{ c #FFA145", -"@{ c #FFA44B", -"#{ c #FFA64F", -"${ c #FFA955", -"%{ c #FEA956", -"&{ c #FBA85F", -"*{ c #F29666", -"={ c #F29469", -"-{ c #F39768", -";{ c #FCAE69", -">{ c #F16F5E", -",{ c #BABAB9", -"'{ c #B2B2B3", -"){ c #B1B3B2", -"!{ c #B1B2B1", -"~{ c #ADACAB", -"{{ c #AAA9AA", -"]{ c #888988", -"^{ c #9E9D9E", -"/{ c #A0A0A1", -"({ c #A4A3A3", -"_{ c #A7A8A8", -":{ c #494747", -"<{ c #A16766", -"[{ c #E97A4A", -"}{ c #FF860F", -"|{ c #FF8915", -"1{ c #FF8B19", -"2{ c #FF8E1F", -"3{ c #FF9125", -"4{ c #FF9329", -"5{ c #FF962F", -"6{ c #FF9833", -"7{ c #FF9B39", -"8{ c #FFA043", -"9{ c #FFA247", -"0{ c #FFA751", -"a{ c #FFAA57", -"b{ c #FFAC5B", -"c{ c #FFAE5F", -"d{ c #FFB063", -"e{ c #FFB369", -"f{ c #FFB46B", -"g{ c #FDB26D", -"h{ c #F36F5F", -"i{ c #B3B4B3", -"j{ c #7D7C7C", -"k{ c #989898", -"l{ c #AEADAD", -"m{ c #ADACAD", -"n{ c #ACABAC", -"o{ c #9C9D9D", -"p{ c #7F7F7E", -"q{ c #565756", -"r{ c #989998", -"s{ c #A0A1A0", -"t{ c #A4A3A4", -"u{ c #4F4A4A", -"v{ c #9D6B6B", -"w{ c #E0756A", -"x{ c #EB7F3D", -"y{ c #FFA349", -"z{ c #FFA54D", -"A{ c #FFA853", -"B{ c #FFAB59", -"C{ c #FFAD5D", -"D{ c #FFAF61", -"E{ c #FFB267", -"F{ c #FFB66F", -"G{ c #FDB571", -"H{ c #F3836A", -"I{ c #DC5B57", -"J{ c #BA5C5C", -"K{ c #B6B7B7", -"L{ c #787877", -"M{ c #757676", -"N{ c #747474", -"O{ c #8C8D8C", -"P{ c #9D9C9D", -"Q{ c #A8A8A7", -"R{ c #545353", -"S{ c #989797", -"T{ c #9F9F9E", -"U{ c #A0A1A1", -"V{ c #8C8C8B", -"W{ c #706F70", -"X{ c #484646", -"Y{ c #9F6A6A", -"Z{ c #E9785E", -"`{ c #EC7D30", -" ] c #FE830B", -".] c #FF8711", -"+] c #FF8C1B", -"@] c #FF8F21", -"#] c #FA9231", -"$] c #F38F40", -"%] c #EE894F", -"&] c #ED8458", -"*] c #EE815B", -"=] c #EE815C", -"-] c #EE855E", -";] c #EF8D5D", -">] c #F4995D", -",] c #FAA45A", -"'] c #FEAC5C", -")] c #FFB56D", -"!] c #FFB771", -"~] c #FFB975", -"{] c #FCB677", -"]] c #F39572", -"^] c #E76158", -"/] c #8B5252", -"(] c #464343", -"_] c #B4B5B5", -":] c #777677", -"<] c #727172", -"[] c #6B6C6C", -"}] c #80807F", -"|] c #919090", -"1] c #9E9E9F", -"2] c #A4A5A4", -"3] c #A6A7A6", -"4] c #898888", -"5] c #6E6E6D", -"6] c #5F5F60", -"7] c #797A7A", -"8] c #7E7F7F", -"9] c #777777", -"0] c #616060", -"a] c #7F6464", -"b] c #A67373", -"c] c #6B5959", -"d] c #4E4A4A", -"e] c #A06C6C", -"f] c #E8795F", -"g] c #F07E20", -"h] c #FF8207", -"i] c #FF840B", -"j] c #FE8B1B", -"k] c #F68B2C", -"l] c #EC834B", -"m] c #EB775D", -"n] c #E16F65", -"o] c #C86B67", -"p] c #AD6463", -"q] c #9C605F", -"r] c #995E5D", -"s] c #A7605E", -"t] c #C0625F", -"u] c #DC6660", -"v] c #ED7363", -"w] c #EF8968", -"x] c #F6A268", -"y] c #FEB166", -"z] c #FFB873", -"A] c #FFBA77", -"B] c #FFBB79", -"C] c #F39870", -"D] c #E65F57", -"E] c #875252", -"F] c #424040", -"G] c #866263", -"H] c #A55757", -"I] c #767777", -"J] c #767675", -"K] c #717171", -"L] c #6E6E6F", -"M] c #6C6D6D", -"N] c #6A6969", -"O] c #676767", -"P] c #656665", -"Q] c #676766", -"R] c #727373", -"S] c #5C5C5B", -"T] c #6A6A6B", -"U] c #7B7A7B", -"V] c #626262", -"W] c #534D4D", -"X] c #C37F7E", -"Y] c #E67E6E", -"Z] c #CB7C78", -"`] c #886767", -" ^ c #5F5353", -".^ c #8C6767", -"+^ c #E87A68", -"@^ c #EB7B21", -"#^ c #FE7E00", -"$^ c #FB881A", -"%^ c #EC8345", -"&^ c #EA7761", -"*^ c #C76F6B", -"=^ c #926363", -"-^ c #685252", -";^ c #524A4A", -">^ c #494646", -",^ c #484545", -"'^ c #4E4848", -")^ c #5F4E4E", -"!^ c #835757", -"~^ c #B85F5D", -"{^ c #E86E63", -"]^ c #F18C6B", -"^^ c #F9AC6D", -"/^ c #FEB670", -"(^ c #FEB56E", -"_^ c #F2956C", -":^ c #E86259", -"<^ c #B46261", -"[^ c #B06261", -"}^ c #E15450", -"|^ c #F34C49", -"1^ c #B1B1B2", -"2^ c #777676", -"3^ c #747575", -"4^ c #717271", -"5^ c #6D6E6D", -"6^ c #6B6B6A", -"7^ c #686767", -"8^ c #646363", -"9^ c #5D5D5C", -"0^ c #777776", -"a^ c #878788", -"b^ c #969596", -"c^ c #9A9898", -"d^ c #9A9A99", -"e^ c #646463", -"f^ c #7B7C7C", -"g^ c #7B7C7B", -"h^ c #707170", -"i^ c #575756", -"j^ c #7E6464", -"k^ c #E68379", -"l^ c #D27438", -"m^ c #D6763F", -"n^ c #E27D68", -"o^ c #DB7D71", -"p^ c #E07E6F", -"q^ c #E47B42", -"r^ c #F77B00", -"s^ c #FF8105", -"t^ c #F58522", -"u^ c #E97D54", -"v^ c #D4736B", -"w^ c #906363", -"x^ c #5A4E4E", -"y^ c #504848", -"z^ c #7C5555", -"A^ c #C15F5D", -"B^ c #F07865", -"C^ c #F5A472", -"D^ c #F39868", -"E^ c #F08060", -"F^ c #F07E5D", -"G^ c #F08A5C", -"H^ c #F36251", -"I^ c #E35656", -"J^ c #B0B0B1", -"K^ c #ABACAB", -"L^ c #787777", -"M^ c #717170", -"N^ c #696869", -"O^ c #666565", -"P^ c #646465", -"Q^ c #636363", -"R^ c #605F5F", -"S^ c #575758", -"T^ c #8B8A8B", -"U^ c #949393", -"V^ c #665858", -"W^ c #AA7979", -"X^ c #DC8378", -"Y^ c #D77848", -"Z^ c #DB741F", -"`^ c #E27513", -" / c #E87813", -"./ c #F37901", -"+/ c #FA7C00", -"@/ c #F4811C", -"#/ c #E87D5C", -"$/ c #BC716E", -"%/ c #6E5858", -"&/ c #5C4D4D", -"*/ c #A15B5B", -"=/ c #EB7265", -"-/ c #F49D6F", -";/ c #FEB36A", -">/ c #FFB165", -",/ c #FEAA5A", -"'/ c #F07A5A", -")/ c #EE5350", -"!/ c #A5A4A4", -"~/ c #969797", -"{/ c #787778", -"]/ c #636364", -"^/ c #606161", -"// c #5D5C5C", -"(/ c #585958", -"_/ c #5C5C5D", -":/ c #868787", -"( c #946565", -",( c #EC7262", -"'( c #F8A25A", -")( c #FDA24C", -"!( c #EF6C56", -"~( c #DB6868", -"{( c #7C7D7C", -"]( c #9B9A9A", -"^( c #666667", -"/( c #818182", -"(( c #7D7E7D", -"_( c #757475", -":( c #635757", -"<( c #DA8882", -"[( c #D7752B", -"}( c #EA7400", -"|( c #E57A22", -"1( c #E18173", -"2( c #735D5D", -"3( c #6B5D5D", -"4( c #CF6663", -"5( c #EF8D5F", -"6( c #FEA54F", -"7( c #EE8357", -"8( c #E65E5B", -"9( c #707171", -"0( c #807F80", -"a( c #8E8E8F", -"b( c #979696", -"c( c #959594", -"d( c #686869", -"e( c #7F8080", -"f( c #7E7E7F", -"g( c #7C7D7D", -"h( c #737374", -"i( c #DC8878", -"j( c #DA6F0A", -"k( c #E47100", -"l( c #E87300", -"m( c #E07E45", -"n( c #C07C79", -"o( c #514C4C", -"p( c #4C4E4E", -"q( c #535453", -"r( c #A16665", -"s( c #ED7961", -"t( c #FCA14B", -"u( c #F3924D", -"v( c #EB625C", -"w( c #747473", -"x( c #838384", -"y( c #908F90", -"z( c #919192", -"A( c #7D7C7D", -"B( c #818282", -"C( c #808081", -"D( c #7F7F80", -"E( c #9D7978", -"F( c #D98162", -"G( c #DB6F07", -"H( c #E27000", -"I( c #E87506", -"J( c #E0815F", -"K( c #976E6E", -"L( c #7F6162", -"M( c #E96C5F", -"N( c #F79A4D", -"O( c #F89642", -"P( c #F16454", -"Q( c #828181", -"R( c #5A595A", -"S( c #676667", -"T( c #8A8A8A", -"U( c #7A7A7B", -"V( c #7B7777", -"W( c #827B7B", -"X( c #7A7272", -"Y( c #726B6B", -"Z( c #6F6565", -"`( c #BB8887", -" _ c #D17A45", -"._ c #DA6C00", -"+_ c #E06F00", -"@_ c #E2740E", -"#_ c #DE8470", -"$_ c #7A6363", -"%_ c #695B5C", -"&_ c #D86A63", -"*_ c #F29351", -"=_ c #FE9937", -"-_ c #ED7253", -";_ c #E16A6A", -">_ c #9E9E9D", -",_ c #838282", -"'_ c #767576", -")_ c #868585", -"!_ c #797A79", -"~_ c #777778", -"{_ c #737273", -"]_ c #A08A8A", -"^_ c #E19C98", -"/_ c #DA948B", -"(_ c #DC9288", -"__ c #DF8A78", -":_ c #CE7229", -"<_ c #DE6E00", -"[_ c #DD7314", -"}_ c #DB8678", -"|_ c #645757", -"1_ c #5E5656", -"2_ c #CB6966", -"3_ c #F08D50", -"4_ c #FF9935", -"5_ c #FE9733", -"6_ c #ED7F4C", -"7_ c #EE6657", -"8_ c #EE6357", -"9_ c #EE5E54", -"0_ c #E56464", -"a_ c #7F7E7F", -"b_ c #989897", -"c_ c #9C9D9C", -"d_ c #A58E8E", -"e_ c #D2866E", -"f_ c #BC661B", -"g_ c #BF6719", -"h_ c #C36819", -"i_ c #C86B18", -"j_ c #D26800", -"k_ c #D66A00", -"l_ c #DC6D00", -"m_ c #DB7316", -"n_ c #DC8B80", -"o_ c #746A6A", -"p_ c #4D4F4E", -"q_ c #585454", -"r_ c #C46865", -"s_ c #EF894E", -"t_ c #FE932B", -"u_ c #F58B36", -"v_ c #F58A34", -"w_ c #EC7845", -"x_ c #E8615E", -"y_ c #9C9B9C", -"z_ c #9B9B9A", -"A_ c #A48E8E", -"B_ c #E59891", -"C_ c #D78B78", -"D_ c #D88A76", -"E_ c #D88975", -"F_ c #D48465", -"G_ c #CB6D1B", -"H_ c #D46900", -"I_ c #DB7315", -"J_ c #DD8C80", -"K_ c #887C7C", -"L_ c #5A5453", -"M_ c #C86A66", -"N_ c #EF894A", -"O_ c #FF942B", -"P_ c #EE8342", -"Q_ c #EC6D51", -"R_ c #ED6A52", -"S_ c #EF614F", -"T_ c #E76363", -"U_ c #838483", -"V_ c #8D8D8C", -"W_ c #959696", -"X_ c #959795", -"Y_ c #757574", -"Z_ c #656666", -"`_ c #7D7E7E", -" : c #737372", -".: c #807A7A", -"+: c #978787", -"@: c #978686", -"#: c #988787", -"$: c #CF9A99", -"%: c #CB7845", -"&: c #D86B00", -"*: c #D87111", -"=: c #DE8B79", -"-: c #958282", -";: c #625656", -">: c #D46D66", -",: c #F08A43", -"': c #FE9127", -"): c #EC7250", -"!: c #E66F6F", -"~: c #747374", -"{: c #979796", -"]: c #939392", -"^: c #7D7D7E", -"/: c #777878", -"(: c #747373", -"_: c #C09695", -":: c #CD7C4F", -"<: c #D06700", -"[: c #D76D08", -"}: c #DC866A", -"|: c #A98A8A", -"1: c #735B5B", -"2: c #E46E62", -"3: c #F48C37", -"4: c #FF9023", -"5: c #FE8E21", -"6: c #EC7152", -"7: c #7A7B7B", -"8: c #929393", -"9: c #666566", -"0: c #7C7C7B", -"a: c #AB9191", -"b: c #D98B73", -"c: c #C9670B", -"d: c #D96C00", -"e: c #D67F50", -"f: c #C69291", -"g: c #787575", -"h: c #926464", -"i: c #EA775D", -"j: c #FB8D26", -"k: c #F2872F", -"l: c #EE695B", -"m: c #7A7B7A", -"n: c #929293", -"o: c #898A8A", -"p: c #666665", -"q: c #8E8282", -"r: c #DD9486", -"s: c #C7670E", -"t: c #CE6600", -"u: c #D0742B", -"v: c #DD928A", -"w: c #8D8080", -"x: c #564F4F", -"y: c #BF6D6B", -"z: c #EA7F4B", -"A: c #FE8C1D", -"B: c #EF8233", -"C: c #EA6C64", -"D: c #898988", -"E: c #787879", -"F: c #797978", -"G: c #757675", -"H: c #827C7C", -"I: c #D99D9A", -"J: c #C5733A", -"K: c #CC6500", -"L: c #D46D0A", -"M: c #DB876B", -"N: c #B69090", -"O: c #816060", -"P: c #E57464", -"Q: c #F3872D", -"R: c #FF8A17", -"S: c #E97747", -"T: c #E57373", -"U: c #89898A", -"V: c #858685", -"W: c #848384", -"X: c #808180", -"Y: c #757576", -"Z: c #747475", -"`: c #C29796", -" < c #C67741", -".< c #CA6400", -"+< c #D56A00", -"@< c #CF7737", -"#< c #DA948C", -"$< c #928282", -"%< c #584F4F", -"&< c #BD706E", -"*< c #E97C4D", -"=< c #FD8715", -"-< c #FF8813", -";< c #F8851B", -">< c #ED6C56", -",< c #838382", -"'< c #747576", -")< c #737473", -"!< c #BE9393", -"~< c #C47641", -"{< c #C66200", -"]< c #D26A05", -"^< c #D7825E", -"/< c #C69493", -"(< c #837B7B", -"_< c #4A4646", -":< c #976566", -"<< c #E8785F", -"[< c #F58320", -"}< c #FF850D", -"|< c #F27F20", -"1< c #DB6C64", -"2< c #79797A", -"3< c #7A7A79", -"4< c #767776", -"5< c #968989", -"6< c #D69F9C", -"7< c #BE723B", -"8< c #C26000", -"9< c #CE6F1A", -"0< c #DB8A73", -"a< c #B69191", -"b< c #555050", -"c< c #836161", -"d< c #DF7768", -"e< c #EC7E32", -"f< c #FF8309", -"g< c #F27E1D", -"h< c #EB7267", -"i< c #6B6A6A", -"j< c #747574", -"k< c #8C8383", -"l< c #BF9F9E", -"m< c #DA9F98", -"n< c #C88261", -"o< c #B85F0C", -"p< c #BD5F04", -"q< c #C16104", -"r< c #C86300", -"s< c #D16800", -"t< c #CD732C", -"u< c #DE8E7A", -"v< c #A78080", -"w< c #5D5454", -"x< c #4E4949", -"y< c #DA7A6E", -"z< c #E97D3F", -"A< c #FD8007", -"B< c #FF8003", -"C< c #FF7F01", -"D< c #F97E0A", -"E< c #E8714E", -"F< c #ED716A", -"G< c #E57E7E", -"H< c #7D7979", -"I< c #CBA6A6", -"J< c #D59482", -"K< c #B36A31", -"L< c #B66B32", -"M< c #CC8667", -"N< c #D68F7B", -"O< c #CE8462", -"P< c #C16511", -"Q< c #CD732A", -"R< c #DB8A70", -"S< c #BF8A87", -"T< c #7B6767", -"U< c #4C4A4A", -"V< c #474545", -"W< c #695959", -"X< c #A77272", -"Y< c #E37B67", -"Z< c #E77D39", -"`< c #FA7C02", -" [ c #F17B16", -".[ c #E9792D", -"+[ c #E8782C", -"@[ c #E97821", -"#[ c #E3723C", -"$[ c #F56A66", -"%[ c #B69C9C", -"&[ c #DA9A8C", -"*[ c #CD8D76", -"=[ c #E0A39D", -"-[ c #BB9D9D", -";[ c #A28F8F", -">[ c #CA9F9E", -",[ c #CC825F", -"'[ c #C26103", -")[ c #CF6D15", -"![ c #D48159", -"~[ c #DC8F83", -"{[ c #AC7F7F", -"][ c #554F4F", -"^[ c #4F4B4B", -"/[ c #6D5B5B", -"([ c #9B7070", -"_[ c #D67F78", -":[ c #E57E5B", -"<[ c #EA7B23", -"[[ c #EF790D", -"}[ c #E9775A", -"|[ c #EB7C78", -"1[ c #EF7366", -"2[ c #EC6E5B", -"3[ c #EA7C7B", -"4[ c #847F7F", -"5[ c #D1A9A9", -"6[ c #BC9D9D", -"7[ c #948888", -"8[ c #767575", -"9[ c #978A8A", -"0[ c #DD9D94", -"a[ c #C37642", -"b[ c #C16000", -"c[ c #D26902", -"d[ c #CE722A", -"e[ c #D5825D", -"f[ c #DF8C7E", -"g[ c #C98A87", -"h[ c #A97D7C", -"i[ c #8D7070", -"j[ c #7C6767", -"k[ c #7B6565", -"l[ c #876B6B", -"m[ c #A27776", -"n[ c #C07E7C", -"o[ c #DE8479", -"p[ c #E27F5F", -"q[ c #DF7A36", -"r[ c #ED7808", -"s[ c #F07802", -"t[ c #E37846", -"u[ c #EC817C", -"v[ c #EA8181", -"w[ c #817D7D", -"x[ c #A59191", -"y[ c #DB9B91", -"z[ c #C17543", -"A[ c #C36100", -"B[ c #D36B05", -"C[ c #D06F1A", -"D[ c #D1783B", -"E[ c #D47E55", -"F[ c #DA8467", -"G[ c #DD856D", -"H[ c #DD846D", -"I[ c #DC8367", -"J[ c #DA7F58", -"K[ c #DA7B41", -"L[ c #DD7622", -"M[ c #E67407", -"N[ c #EB7500", -"O[ c #EC7602", -"P[ c #DF7747", -"Q[ c #EC827B", -"R[ c #A59090", -"S[ c #DC9B91", -"T[ c #C87E57", -"U[ c #C0640F", -"V[ c #D66B02", -"W[ c #D76C04", -"X[ c #D96E05", -"Y[ c #DB6E05", -"Z[ c #DD6F04", -"`[ c #E07003", -" } c #E37100", -".} c #DE751E", -"+} c #E27A53", -"@} c #EA847E", -"#} c #A08D8D", -"$} c #D8A2A0", -"%} c #C47A4E", -"&} c #C46100", -"*} c #DC7216", -"=} c #E57D66", -"-} c #EB8E8D", -";} c #B39696", -">} c #C77F5B", -",} c #BE5E00", -"'} c #C05F00", -")} c #D5732B", -"!} c #EC8D87", -"~} c #7A7878", -"{} c #CDA2A1", -"]} c #C17A51", -"^} c #B96B2F", -"/} c #CA8261", -"(} c #CD8466", -"_} c #C87B4F", -":} c #C16C25", -"<} c #C36204", -"[} c #C76301", -"}} c #D36900", -"|} c #D56A01", -"1} c #D26C0C", -"2} c #D0722B", -"3} c #D67A50", -"4} c #D97C58", -"5} c #D3753B", -"6} c #D2712A", -"7} c #EC8881", -"8} c #A59292", -"9} c #DA9C91", -"0} c #B3672B", -"a} c #D18D76", -"b} c #B68F8F", -"c} c #947C7C", -"d} c #BD9090", -"e} c #D6958E", -"f} c #D88C77", -"g} c #CF8260", -"h} c #C57237", -"i} c #C46D26", -"j} c #C86402", -"k} c #C86C1D", -"l} c #CB7027", -"m} c #CD7640", -"n} c #D78060", -"o} c #E18673", -"p} c #EA9189", -"q} c #F09F9F", -"r} c #EC9F9F", -"s} c #E98B82", -"t} c #CF7238", -"u} c #D47750", -"v} c #EB9290", -"w} c #635B5B", -"x} c #D0A19D", -"y} c #B8754C", -"z} c #BE7C58", -"A} c #CFA19F", -"B} c #655E5E", -"C} c #555151", -"D} c #F1B2B2", -"E} c #ECA39E", -"F} c #EA9B93", -"G} c #C5743F", -"H} c #C36B21", -"I} c #E48F80", -"J} c #EB9B96", -"K} c #EEA7A7", -"L} c #DC7E66", -"M} c #C96C25", -"N} c #E88276", -"O} c #AC9393", -"P} c #EFB2B1", -"Q} c #CB8C74", -"R} c #DB9D93", -"S} c #867474", -"T} c #ECAEAE", -"U} c #CA7C57", -"V} c #C06D2F", -"W} c #EBA19D", -"X} c #EE908D", -"Y} c #DD7E6A", -"Z} c #EF8984", -"`} c #F0BDBC", -" | c #F6C1C1", -".| c #ECB0B0", -"+| c #C87C58", -"@| c #BD6C2F", -"#| c #EBA29E", -"$| c #EE9D9D", -"%| c #ECB4B4", -"&| c #C57B58", -"*| c #B86A30", -"=| c #EBA4A0", -"-| c #EEB5B5", -";| c #D58B77", -">| c #C77E61", -",| c #EEA8A5", -"'| c #EDB2B1", -")| c #EFB0AF", +"V) c #B3B3B4", +"W) c #666666", +"X) c #9F9F9F", +"Y) c #C4C3C4", +"Z) c #C2C2C3", +"`) c #C0C0BF", +" ! c #BCBBBB", +".! c #909191", +"+! c #141516", +"@! c #121211", +"#! c #0F0E0F", +"$! c #090908", +"%! c #070606", +"&! c #050605", +"*! c #020101", +"=! c #B2B3B2", +"-! c #4D4E4D", +";! c #929292", +">! c #C2C3C2", +",! c #C1C2C2", +"'! c #C2C1C2", +")! c #0B0C0B", +"!! c #030202", +"~! c #000100", +"{! c #B3B2B2", +"]! c #4B4C4B", +"^! c #464745", +"/! c #AFB0AF", +"(! c #ADAEAE", +"_! c #ABAAAA", +":! c #BFBFBE", +"~ c #565756", +",~ c #989998", +"'~ c #A0A1A0", +")~ c #A4A3A4", +"!~ c #454946", +"~~ c #444644", +"{~ c #B0B1B1", +"]~ c #B1B0B1", +"^~ c #B6B7B7", +"/~ c #787877", +"(~ c #757676", +"_~ c #747474", +":~ c #8C8D8C", +"<~ c #9D9C9D", +"[~ c #A8A8A7", +"}~ c #545353", +"|~ c #989797", +"1~ c #9F9F9E", +"2~ c #A0A1A1", +"3~ c #8C8C8B", +"4~ c #706F70", +"5~ c #455646", +"6~ c #4F6A51", +"7~ c #4F7153", +"8~ c #506B54", +"9~ c #515653", +"0~ c #B1B1B0", +"a~ c #B4B5B5", +"b~ c #777677", +"c~ c #727172", +"d~ c #6B6C6C", +"e~ c #80807F", +"f~ c #919090", +"g~ c #9E9E9F", +"h~ c #A4A5A4", +"i~ c #A6A7A6", +"j~ c #898888", +"k~ c #6E6E6D", +"l~ c #5F5F60", +"m~ c #797A7A", +"n~ c #7E7F7F", +"o~ c #777777", +"p~ c #616060", +"q~ c #4C634E", +"r~ c #5A8B5E", +"s~ c #63A86A", +"t~ c #63AC6A", +"u~ c #47854E", +"v~ c #565A57", +"w~ c #474C48", +"x~ c #626263", +"y~ c #767777", +"z~ c #767675", +"A~ c #717171", +"B~ c #6E6E6F", +"C~ c #6C6D6D", +"D~ c #6A6969", +"E~ c #676767", +"F~ c #656665", +"G~ c #676766", +"H~ c #727373", +"I~ c #5C5C5B", +"J~ c #6A6A6B", +"K~ c #7B7A7B", +"L~ c #626262", +"M~ c #4C634F", +"N~ c #5D9361", +"O~ c #6ECA78", +"P~ c #7AE984", +"Q~ c #6FCD78", +"R~ c #609D67", +"S~ c #47774A", +"T~ c #535754", +"U~ c #454745", +"V~ c #6B6A6B", +"W~ c #6C6B6B", +"X~ c #B1B1B2", +"Y~ c #777676", +"Z~ c #747575", +"`~ c #717271", +" { c #6D6E6D", +".{ c #6B6B6A", +"+{ c #686767", +"@{ c #646363", +"#{ c #5D5D5C", +"${ c #777776", +"%{ c #878788", +"&{ c #969596", +"*{ c #9A9898", +"={ c #9A9A99", +"-{ c #646463", +";{ c #7B7C7C", +">{ c #7B7C7B", +",{ c #707170", +"'{ c #575756", +"){ c #4D624F", +"!{ c #5D9463", +"~{ c #74D47F", +"{{ c #86FF91", +"]{ c #81F68C", +"^{ c #76D882", +"/{ c #6DB373", +"({ c #5C8B61", +"_{ c #5B675E", +":{ c #454C46", +"<{ c #696968", +"[{ c #B0B0B1", +"}{ c #ABACAB", +"|{ c #787777", +"1{ c #717170", +"2{ c #696869", +"3{ c #666565", +"4{ c #646465", +"5{ c #636363", +"6{ c #605F5F", +"7{ c #575758", +"8{ c #8B8A8B", +"9{ c #949393", +"0{ c #5C9361", +"a{ c #73D07D", +"b{ c #86FD92", +"c{ c #7FFC8A", +"d{ c #74F182", +"e{ c #72CA7B", +"f{ c #639D67", +"g{ c #617264", +"h{ c #4C544E", +"i{ c #444645", +"j{ c #666566", +"k{ c #A5A4A4", +"l{ c #969797", +"m{ c #787778", +"n{ c #636364", +"o{ c #606161", +"p{ c #5D5C5C", +"q{ c #585958", +"r{ c #5C5C5D", +"s{ c #868787", +"t{ c #7F807F", +"u{ c #4F6251", +"v{ c #5B9361", +"w{ c #64C46E", +"x{ c #61DD6C", +"y{ c #3DBE49", +"z{ c #25AA32", +"A{ c #43C44D", +"B{ c #63DA6F", +"C{ c #76DB82", +"D{ c #77B880", +"E{ c #668E6B", +"F{ c #586659", +"G{ c #454844", +"H{ c #606160", +"I{ c #616261", +"J{ c #656566", +"K{ c #666767", +"L{ c #ADADAC", +"M{ c #A8A9A8", +"N{ c #9A9999", +"O{ c #6A6A69", +"P{ c #626261", +"Q{ c #5F605F", +"R{ c #818081", +"S{ c #868685", +"T{ c #506252", +"U{ c #5FC36A", +"V{ c #58D863", +"W{ c #2AB336", +"X{ c #079412", +"Y{ c #1FAC2C", +"Z{ c #40CA4E", +"`{ c #62E76F", +" ] c #77E983", +".] c #72CB7B", +"+] c #66A56C", +"@] c #66796B", +"#] c #4D5750", +"$] c #464846", +"%] c #636362", +"&] c #7C7B7B", +"*] c #939292", +"=] c #8A8B8A", +"-] c #676768", +";] c #848485", +">] c #818281", +",] c #7F7E7E", +"'] c #7B7B7A", +")] c #5C9362", +"!] c #62C76C", +"~] c #60E26C", +"{] c #30C23D", +"]] c #019D0D", +"^] c #06A211", +"/] c #17AF21", +"(] c #35C63F", +"_] c #57DE62", +":] c #72F17C", +"<] c #7BE885", +"[] c #6FC077", +"}] c #619367", +"|] c #57655C", +"1] c #484C48", +"2] c #A5A6A6", +"3] c #9F9FA0", +"4] c #8B8C8B", +"5] c #818180", +"6] c #7E7D7E", +"7] c #7C7C7D", +"8] c #787978", +"9] c #636463", +"0] c #62C86B", +"a] c #5FE66C", +"b] c #32CB3F", +"c] c #06AC12", +"d] c #0DB319", +"e] c #13BA1F", +"f] c #12BB1D", +"g] c #1DC227", +"h] c #34CF3F", +"i] c #50E05A", +"j] c #6CE977", +"k] c #75DA7E", +"l] c #6AAC71", +"m] c #57805A", +"n] c #535C55", +"o] c #434543", +"p] c #5D5D5E", +"q] c #616160", +"r] c #626161", +"s] c #7C7D7C", +"t] c #9B9A9A", +"u] c #666667", +"v] c #818182", +"w] c #7D7E7D", +"x] c #757475", +"y] c #62C76B", +"z] c #5EE76A", +"A] c #30D13C", +"B] c #05B711", +"C] c #10C01C", +"D] c #15C421", +"E] c #0BBE16", +"F] c #09BD14", +"G] c #13C11E", +"H] c #2CCF37", +"I] c #50E25D", +"J] c #6BF076", +"K] c #75E481", +"L] c #72BE7A", +"M] c #639166", +"N] c #657269", +"O] c #565D58", +"P] c #505251", +"Q] c #5F6060", +"R] c #707171", +"S] c #807F80", +"T] c #8E8E8F", +"U] c #979696", +"V] c #959594", +"W] c #686869", +"X] c #7F8080", +"Y] c #7E7E7F", +"Z] c #7C7D7D", +"`] c #737374", +" ^ c #62C96B", +".^ c #5EE96A", +"+^ c #30D53C", +"@^ c #03BE0F", +"#^ c #0EC81A", +"$^ c #17D023", +"%^ c #15CF21", +"&^ c #11CE1D", +"*^ c #0BC715", +"=^ c #0EC718", +"-^ c #22D02D", +";^ c #45DF4E", +">^ c #6CF479", +",^ c #80F38B", +"'^ c #7AD682", +")^ c #6CAF72", +"!^ c #5F8464", +"~^ c #5C655F", +"{^ c #525553", +"]^ c #535453", +"^^ c #5B595B", +"/^ c #5F5F5E", +"(^ c #747473", +"_^ c #838384", +":^ c #908F90", +"<^ c #919192", +"[^ c #7D7C7D", +"}^ c #818282", +"|^ c #808081", +"1^ c #7F7F80", +"2^ c #61CA6B", +"3^ c #5DEB69", +"4^ c #2ED93B", +"5^ c #01C60D", +"6^ c #0CD118", +"7^ c #15D921", +"8^ c #13D91F", +"9^ c #10D91D", +"0^ c #0FD51A", +"a^ c #0ED119", +"b^ c #0ECD19", +"c^ c #18CB22", +"d^ c #2CD238", +"e^ c #3FD84A", +"f^ c #4EDC5A", +"g^ c #61D46B", +"h^ c #73C27B", +"i^ c #6D9D72", +"j^ c #627865", +"k^ c #545E54", +"l^ c #5B5A5C", +"m^ c #5C5D5D", +"n^ c #828181", +"o^ c #5A595A", +"p^ c #676667", +"q^ c #8A8A8A", +"r^ c #7A7A7B", +"s^ c #4F6151", +"t^ c #62CA69", +"u^ c #5EEE68", +"v^ c #2EDF3A", +"w^ c #00CD0C", +"x^ c #0AD916", +"y^ c #12E21E", +"z^ c #11E11B", +"A^ c #11E11C", +"B^ c #11DF1C", +"C^ c #10DB1B", +"D^ c #0AD615", +"E^ c #07CA14", +"F^ c #0CC61A", +"G^ c #17C625", +"H^ c #26CB34", +"I^ c #41D64E", +"J^ c #68E473", +"K^ c #74D37D", +"L^ c #6FB176", +"M^ c #728D7E", +"N^ c #5E6F60", +"O^ c #545955", +"P^ c #9E9E9D", +"Q^ c #838282", +"R^ c #767576", +"S^ c #868585", +"T^ c #797A79", +"U^ c #737273", +"V^ c #5C6E5F", +"W^ c #5F9664", +"X^ c #61CB69", +"Y^ c #5EEF69", +"Z^ c #2CE239", +"`^ c #00D20B", +" / c #09DD13", +"./ c #11E71C", +"+/ c #0EE918", +"@/ c #0EEB18", +"#/ c #0EE719", +"$/ c #11DF1B", +"%/ c #11DC1C", +"&/ c #12D51E", +"*/ c #0AC116", +"=/ c #04B610", +"-/ c #15BB21", +";/ c #3ECF4A", +">/ c #63E76E", +",/ c #7FEC89", +"'/ c #7ECF89", +")/ c #6BA873", +"!/ c #697D6E", +"~/ c #545B56", +"{/ c #7F7E7F", +"]/ c #989897", +"^/ c #9C9D9C", +"// c #738575", +"(/ c #71A977", +"_/ c #6AD471", +":/ c #5EF069", +"( c #1A9D26", +",( c #2EB039", +"'( c #50D05C", +")( c #71EE7C", +"!( c #78E382", +"~( c #71BB79", +"{( c #649269", +"]( c #606E63", +"^( c #525953", +"/( c #747374", +"(( c #979796", +"_( c #939392", +":( c #7D7D7E", +"<( c #777878", +"[( c #747373", +"}( c #768878", +"|( c #6DD675", +"1( c #5EEC6B", +"2( c #2DDE3A", +"3( c #00CB0C", +"4( c #0BD616", +"5( c #13E020", +"6( c #0FE01C", +"7( c #10DF1B", +"8( c #11DE1C", +"9( c #13D91D", +"0( c #12D21E", +"a( c #13CD1F", +"b( c #15CA21", +"c( c #18C424", +"d( c #19C025", +"e( c #19B927", +"f( c #1AB429", +"g( c #1AA927", +"h( c #179E24", +"i( c #169A23", +"j( c #1A9E28", +"k( c #30B23C", +"l( c #49CA56", +"m( c #5FDF6D", +"n( c #71E47B", +"o( c #70CE78", +"p( c #6AAB6F", +"q( c #718A77", +"r( c #5B6D5E", +"s( c #575958", +"t( c #7A7B7B", +"u( c #929393", +"v( c #7C7C7B", +"w( c #758778", +"x( c #77AE7D", +"y( c #6DD575", +"z( c #5EEC6A", +"A( c #2FDA3B", +"B( c #03C40D", +"C( c #0DCE16", +"D( c #16D721", +"E( c #12D71F", +"F( c #12D61E", +"G( c #13D41D", +"H( c #13D01F", +"I( c #15CC21", +"J( c #17C523", +"K( c #18C024", +"L( c #19BD25", +"M( c #1BB527", +"N( c #1CAF29", +"O( c #1DAA2A", +"P( c #1FA42C", +"Q( c #1BA029", +"R( c #179B24", +"S( c #179C24", +"T( c #1EA32C", +"U( c #3CC04A", +"V( c #61E06C", +"W( c #73F180", +"X( c #7CE587", +"Y( c #71BF79", +"Z( c #5F9264", +"`( c #4D6B51", +" _ c #7A7B7A", +"._ c #929293", +"+_ c #898A8A", +"@_ c #666665", +"#_ c #6F7070", +"$_ c #6A806D", +"%_ c #6BA472", +"&_ c #68D070", +"*_ c #5DE869", +"=_ c #2FD33C", +"-_ c #04BC0F", +";_ c #0EC619", +">_ c #17CF23", +",_ c #16CE20", +"'_ c #16CC21", +")_ c #16CD22", +"!_ c #16CB22", +"~_ c #17C823", +"{_ c #17C423", +"]_ c #18C023", +"^_ c #18BE24", +"/_ c #19B725", +"(_ c #1CAF26", +"__ c #1CA728", +":_ c #1DA529", +"<_ c #20A32B", +"[_ c #1CA029", +"}_ c #10951D", +"|_ c #0A8D15", +"1_ c #1CA028", +"2_ c #40C14C", +"3_ c #67E774", +"4_ c #83FA90", +"5_ c #7AD785", +"6_ c #65A76B", +"7_ c #58785C", +"8_ c #535755", +"9_ c #898988", +"0_ c #787879", +"a_ c #797978", +"b_ c #757675", +"c_ c #6D8170", +"d_ c #6BA470", +"e_ c #67CF70", +"f_ c #5FE86B", +"g_ c #31CE3D", +"h_ c #06B510", +"i_ c #11BE1A", +"j_ c #1AC725", +"k_ c #18C621", +"l_ c #18C522", +"m_ c #18C323", +"n_ c #17C123", +"o_ c #16BD22", +"p_ c #18B824", +"q_ c #19B527", +"r_ c #1AAF29", +"s_ c #1DAC29", +"t_ c #1EA52A", +"u_ c #1FA62B", +"v_ c #20A22C", +"w_ c #1A9C28", +"x_ c #139720", +"y_ c #159A23", +"z_ c #2AAD38", +"A_ c #45C651", +"B_ c #5EDE6A", +"C_ c #71E67B", +"D_ c #75D17E", +"E_ c #69A46E", +"F_ c #65786A", +"G_ c #535D54", +"H_ c #89898A", +"I_ c #858685", +"J_ c #848384", +"K_ c #808180", +"L_ c #757576", +"M_ c #747475", +"N_ c #6A6B6B", +"O_ c #6B7D6C", +"P_ c #6BA46E", +"Q_ c #64CB6D", +"R_ c #5FE56A", +"S_ c #33C73F", +"T_ c #08AB14", +"U_ c #13B51D", +"V_ c #1CBF27", +"W_ c #18BD24", +"X_ c #18BE25", +"Y_ c #18BD26", +"Z_ c #1ABA26", +"`_ c #1AB926", +" : c #19B525", +".: c #1BB126", +"+: c #1BAD27", +"@: c #1DA82A", +"#: c #1EA52B", +"$: c #1EA22B", +"%: c #1DA129", +"&: c #1B9F26", +"*: c #189C25", +"=: c #1AA027", +"-: c #31B43E", +";: c #55D660", +">: c #69E473", +",: c #70DF7B", +"': c #6BBE72", +"): c #5C8F62", +"!: c #526655", +"~: c #4A4C4B", +"{: c #838382", +"]: c #747576", +"^: c #737473", +"/: c #647867", +"(: c #67A16C", +"_: c #64C86D", +":: c #60E36C", +"<: c #32C242", +"[: c #08A218", +"}: c #14AD21", +"|: c #1EB828", +"1: c #1AB426", +"2: c #1BB526", +"3: c #1AB528", +"4: c #1CB428", +"5: c #1CB228", +"6: c #1BAF27", +"7: c #1DAB29", +"8: c #1FA62A", +"9: c #1FA42A", +"0: c #1DA028", +"a: c #199E25", +"b: c #10941D", +"c: c #0A9118", +"d: c #1C9F29", +"e: c #3BBC49", +"f: c #5FDA6C", +"g: c #7AEB86", +"h: c #76CC7F", +"i: c #64A46C", +"j: c #52785F", +"k: c #4F554E", +"l: c #79797A", +"m: c #7A7A79", +"n: c #767776", +"o: c #585959", +"p: c #5E7260", +"q: c #639D68", +"r: c #64C76E", +"s: c #62E16D", +"t: c #35BC42", +"u: c #0D9719", +"v: c #19A224", +"w: c #20AE2C", +"x: c #1DAC2B", +"y: c #1CAC2A", +"z: c #1DAC2A", +"A: c #1EA92A", +"B: c #1EA62A", +"C: c #1EA42B", +"D: c #179D25", +"E: c #189C26", +"F: c #20A52E", +"G: c #2BAD38", +"H: c #38BA45", +"I: c #4ECE59", +"J: c #65DD6F", +"K: c #6DD177", +"L: c #6BB173", +"M: c #658A6B", +"N: c #58655A", +"O: c #494E49", +"P: c #6B6A6A", +"Q: c #747574", +"R: c #566A58", +"S: c #5E9963", +"T: c #64C56D", +"U: c #61DE6C", +"V: c #35B742", +"W: c #0E911B", +"X: c #199C26", +"Y: c #21A52D", +"Z: c #1EA42A", +"`: c #1DA42B", +" < c #1EA32A", +".< c #1FA22A", +"+< c #1FA12A", +"@< c #1EA12B", +"#< c #1B9E28", +"$< c #22A42D", +"%< c #38BA44", +"&< c #4DCE59", +"*< c #61DD6D", +"=< c #6FDF7A", +"-< c #73C87C", +";< c #669E6C", +">< c #567459", +",< c #4C544D", +"'< c #566958", +")< c #639E69", +"!< c #67CB70", +"~< c #61E16C", +"{< c #36B945", +"]< c #0F931C", +"^< c #1B9E27", +"/< c #22A42E", +"(< c #20A42C", +"_< c #21A32C", +":< c #21A42E", +"<< c #20A32E", +"[< c #1DA12B", +"}< c #22A630", +"|< c #3EC049", +"1< c #62E36E", +"2< c #72ED7E", +"3< c #74D77B", +"4< c #69AF6F", +"5< c #5A835D", +"6< c #556158", +"7< c #778B79", +"8< c #75AF7A", +"9< c #6ED277", +"0< c #35B943", +"a< c #1A9E27", +"b< c #21A52F", +"c< c #20A32D", +"d< c #20A42D", +"e< c #1FA32D", +"f< c #1DA12A", +"g< c #149821", +"h< c #2CB039", +"i< c #49CB55", +"j< c #61E06D", +"k< c #72E27C", +"l< c #70C277", +"m< c #659669", +"n< c #627167", +"o< c #445045", +"p< c #77B27C", +"q< c #6ED278", +"r< c #61E16D", +"s< c #21A52E", +"t< c #30B13B", +"u< c #4ACA56", +"v< c #66DE71", +"w< c #6FD879", +"x< c #6AAF6F", +"y< c #5B845F", +"z< c #535C56", +"A< c #444845", +"B< c #10931C", +"C< c #22A62F", +"D< c #1FA22C", +"E< c #0F941C", +"F< c #169B23", +"G< c #34B741", +"H< c #51D25E", +"I< c #6BE876", +"J< c #72E17C", +"K< c #6BBF73", +"L< c #5B685F", +"M< c #4A504B", +"N< c #36BA45", +"O< c #0E931C", +"P< c #169B24", +"Q< c #19A028", +"R< c #189E26", +"S< c #36BA43", +"T< c #5BDA68", +"U< c #70E47C", +"V< c #71CE7B", +"W< c #68A96E", +"X< c #5D7D65", +"Y< c #4A5B4B", +"Z< c #62E16E", +"`< c #35BA43", +" [ c #0D9219", +".[ c #149920", +"+[ c #1A9F27", +"@[ c #1FA22B", +"#[ c #2DAF39", +"$[ c #44C450", +"%[ c #5FD869", +"&[ c #76DF7F", +"*[ c #77BE7E", +"=[ c #64906A", +"-[ c #59685D", +";[ c #484D49", +">[ c #6BCF74", +",[ c #5BDB67", +"'[ c #2BAE37", +")[ c #01850D", +"![ c #31B33D", +"~[ c #51D05D", +"{[ c #6BEA77", +"][ c #75EB80", +"^[ c #64A36B", +"/[ c #657963", +"([ c #4D5851", +"_[ c #788C7A", +":[ c #78B27D", +"<[ c #6ED177", +"[[ c #61E06E", +"}[ c #39BC45", +"|[ c #1A9F25", +"1[ c #33B53F", +"2[ c #4FCF5A", +"3[ c #68E275", +"4[ c #79DC82", +"5[ c #72BA79", +"6[ c #629367", +"7[ c #5E6C63", +"8[ c #47534A", +"9[ c #5D725F", +"0[ c #6FAA74", +"a[ c #73D67C", +"b[ c #6FEC7A", +"c[ c #56D762", +"d[ c #47CC53", +"e[ c #5CDA68", +"f[ c #6ADC76", +"g[ c #6DC976", +"h[ c #669F6B", +"i[ c #58785B", +"j[ c #4E6751", +"k[ c #5E9B65", +"l[ c #75D57D", +"m[ c #86FE90", +"n[ c #80FF8C", +"o[ c #7AF985", +"p[ c #7AE182", +"q[ c #64AE6B", +"r[ c #667F6C", +"s[ c #526254", +"t[ c #7EEF89", +"u[ c #86FB94", +"v[ c #84EF91", +"w[ c #79CB82", +"x[ c #829F8B", +"y[ c #5B6F5E", +"z[ c #82FF8E", +"A[ c #80FF8D", +"B[ c #7CFF88", " ", " ", " ", @@ -2668,56 +2535,56 @@ static char * SimRunIco_xpm[] = { " `.i)i)P P g.F#&.&$`.:+[.7@>@j)'@)@k)a@l)b@g#=&|%F==%9#V#A%y$w#Y#i$i% $<$T$[$l$C$#%;%k%7%2&E%+&4=I=c*s*t*a%K=J-@=m)))e,a>@>;,g,>,r'*)6'K'K'n)()8)8)o)p)q)/#/# ", " j.i.k+N+g.g.g.g.&.l+q$`.[.}.}.M&F.3.3.4.G+b@b@r)=@s)t)q.(%y { u)Y@w#B%`# $<$z$[$|$C$C$ &k%7%7%E%+&<&5=]*J*v)J=a%`*@=9>M-M-<;@>b>q'K,&)Z'6'6'w).)x)8)g)y)z)q)3*/#/# ", " A)-.`._+*.O+f*`.f*`.e@[.[.-.}.}.F.1.3.<%4.I.-%o+L.h@=@B)L@L@C)q.{#D)^#C#s%E)K#4@_$|$z'$%;%k%k%D%l%+& =I=]*c*t*J=a%@=J-1-M-M-<;@>;,;,{)r'&)e)`'K'F)x)()y)o)G)z)H)o*/#/# ", -" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.I)J)K)f#$$$$$$L)M)N)) 3@%%Q'O)E%+&}%n&^*^*t*6=a%`**,M=P)M-!)f,%'Q)>,R)-'S)6'T)F)7)U)8)o)G)z)V)W)X)Y)/# ", -" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%Z)/#/#/#/#/#`)Q*x*N'D& !D$E$E$.!+!@!C&#!}.@*$!5=]*I-t*%!a%K=8>&!z;M-0>@>%'q'*!K,Z'])=!-!.)n)f)8);!z)z)z)>!,!'!)!!! ", -" o+I.4.m%[+ +=$G#|.~!|.k.M&|.F.k.<+~!(@G.H.4._#_#I.n.:#o+C+.+++2+P.{!/#/#/#/#/#B#R*i*y*D*{ E$]!(%^!/!F%5&G@G@+!j*F=S@w@`#7>`*K=@=L-z;<;(!-,%)Q)r'r'-'6'=)w).)()_!g):!z)z)z)>,>,w!S)=)x!y!z!A!B!8)C!z)z)z)z)z)D!E!F!G!1! H! ", -" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#I!J!K!L!E*j*M!3*N!(&{ | =&x*[=O!/#/#/#P!Z&Z&Z&c%c%e F>Q!,,R!p$3@@%%*S!T!U!V!W!;!z)z)z)X!Y!Z!`! ~.~+~@~ #~$~%~&~ ", -" P./=*~=~G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=-~9&;~7.2*>~,~(&j*'~)~!~x*Q*!=/#/#/#/#/#/#~~P.9!c>e ,,M,{~C&;'T.]~^~/~(~_~:~<~[~}~|~1~2~3~4~5~6~7~8~9~0~a~ b~c~d~ ", -" P.G%[;o*K!e~~~=~M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`.~~/#/#/#M%f~x*=&7.E*2*{ g~| y*^&h~i~j~/#/#/#/#/#/#1*P.P.P.P.P.{~;'9*8*8*9@_)k~l~m~n~o~p~q~r~s~t~u~v~w~x~y~z~A~B~C~D~E~F~G~H~I~J~ ", -" P.c%E+E+E++)4*K~;~B#L~w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.L~/#!=_&R*i*V*E&7.| 7.M~-+x*N~B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.O~+)E+6*P~Q~R~S~T~U~V~W~X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{ ", -" P.,{p)3*R*/&'{){!{,~j*~{{{J!]{Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+M)^{/{({x*i*T*_{-+^&x*R*_&`)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.:{<{[{}{|{1{2{3{4{5{6{7{ {8{9{@{0{a{b{c{d{e{f{g{h{ ", -" P.{~i{o*%@!*j{;*k{T*j*{ l{m{n{| E*o{p{a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.q{-*} r{s{R*t{9&]&({J!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.u{v{w{x{}{|{1{2{3{4{5{6{7{x~8{y{z{A{B{C{D{E{f{F{G{H{I{J{ ", -" P.K{l*(&!*}-L{0*M{N{=~[-O{P{=&E&=&=&=&y*Q{E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$R{s !*. a)]~S{T{U{U{/#/#e*1*/#e*V{. W{K.P.P.P.P.P.P.P.X{P.P.P.P.u{Y{Z{`{ ].]|{+]@]3{#]$]%]&]*]=]-];]>],]']d{E{)]!]~]{]]]^]/](]O. ", -" P._]/&/&}-*+:]F=F==~<]5.V&S.[]-*}]|]1]9&R*R*2]3]`)4]5]s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r 6]}*i&V&N{7]8]N):&[*D+9]Z)0]) P+J.P.P.O.P.P.P.Q.a]b]c]P.P.d]e]f]g]h]i].]|{j]k]l]m]n]o]p]q]r]s]t]u]v]w]x]y])]z]A]B]A]C]D]E]F]0 G]H] ", -" P.i{K~K~*+I]J]N{N{}=K]W{L]M]p.N]w O]P]Q]R]S&M)T{^{T{I!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M S]! Z)T]5.M{U][-9]-*S.)*V]0 ..F#M&Y$o+P.P.P.P.P.W]X]Y]Z]`] ^.^+^@^#^h]i]}{$^%^&^*^=^-^;^>^r+P.,^'^)^!^~^{^]^^^/^~]~]z](^_^:^<^[^}^|^ ", -" P.1^2*g~2^M{3^=~=~4^5.L]5^p.6^.*7^Z)}*8^g*! m 9^Q 0^a^b^e~c^d^e~|%. S.e^v I.a+$+#+Q.P.P.P.P.P.P.P.p.K]0^f^g^0*h^p.Z)1=a i^*.P.P.P.P.P.P.P.P.j^k^l^m^n^o^p^q^r^#^s^i]t^u^v^w^x^r+P.P.P.P.P.P.P.P.P.y^z^A^B^C^(^!]F{)]e{D^E^F^G^H^I^ ", -" P.J^K^| !@L^=~-*-*M^V&5]S.< i&N^Q]O^P^Q^1=R^9 a H I S^M :.N^. T^E@U^U^L~>)}-K]Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.V^W^X^Y^Z^`^ /./+/#^s^@/#/$/%/++P.P.P.P.P.P.P.P.P.P.P.P.Q.&/*/=/-/;/f{e{>/D{C{,/'/)/ ", -" P.j*7.M~A*A*!/~/U&{/w*S.p.< .*w Z)Y&]/V]^/) A.//H (/M@M P g.`.}.7@_/b!D+|%]~~~://D{c{b{d/e/ ", -" P.f/g/L!e*!/=&T.V*V*x*h/;*9]i/O]Z)}*Q^j/! ) 0 S]r .v ]@N+&.`.-.1.3.4.n.<#}.k/<]l/m/>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.n/o/p/3/q/5/r/s/t/u/P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.M.F#f.v/w/x/y/c{C{b{a{z/A/ ", -" P.q!-+-+%@!*B/!@C/!=x*x*c+({Q*e*D/*+E/1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+F/S&G/:&H/=*I/L{< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.J/K/L/M/q/N/O/P/Q/Q.P.P.P.P.P.P.P.P.P.P.P.P.Q.O.l+%.B.s I R/S/T/U/B{${A{V/W/ ", -" P.7.i*X/!*}-L{0*M{N{-*. x&,.`)_&s{Y/O!e*Z/}-E/c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)`/D+ (.(. 7]*++(9]-*@(g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.N.#($(%(M/&(*(=(-(;(P.P.P.P.P.P.P.P.P.P.P.Q.P.;.q$$.N M L K q >(,('(A{0{#{)(!(~( ", -" P.=&]&]&}-*+:]F=F==~<]5.V&S.[]5.{(Z//=/#X*](e*s%V{!*^(v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&/(:&p{((f^I/p=*+0^0*_(=~N{F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.:(<([(%(}(3/|(1(2(P.P.P.P.P.P.P.P.P.P.P.P.3.[.[.O+%$P N M v t 3(4(5(6(z{@{9{7(8( ", -" P.3]Q*Q**+I]J]N{N{}=K]W{L]M]p.N]w O]P]Q]9(0(a(k{/=b(6.c(~~b%d(M [+4.Q@C+p+2+P.P.P.P.a)[*e(f(g(b%!*}-*+0^F=h(-*-*-*=~N{F=F=< 9 &.3.n.p+P.Q.P.P.P.R/i(j(k(l(3/m(n(o(P.P.P.P.P.P.P.P.P.P.Y$k.2.p(}.=%`.g.q(N M v e.r(s(t(y{9{8{u(v( ", -" P.c+_&_&2^M{3^=~=~4^5.L]5^p.6^.*7^Z)}*8^g*! m 9^O^w(x(y(z(#!&@L~|%A(.*N 0%P.P.P.P.P.B(C(D(f([-. !*}-L^-&F==~-*-*-*-*-*-*-*=~N{F=-*.*0 P }.I.O.r+E(F(G(H(%(I(J(K(o%P.P.P.P.P.P.P.O.p+_#-%R+4.2.k.m+[.O+&.%.O N ^+L(M(N(8{8{x~O(P( ", -" P.R*I!`)Q(2^=~-*-*M^V&5]S.< i&N^Q]O^P^Q^1=R^9 a H I S^M R(S(L^!@]~~~|%T(x&N)< ..n.P.G/:&D+N)b%U(7]+(9]0*N{=~-*-*-*-*-*-*-*-*-*-*-*=~N{V(W(X(Y(Z(`( _._+_k(@_#_$_P.P.P.P.P.P.O.R@1+++_*M.:#J.4.3.~!>.i.`.&.g.#.N %_&_*_x~ {w~=_-_;_ ", -" P.[=!=>_!=!=d^L~,_'_w*S.p.< .*w Z)Y&]/V]^/) A.//H (/M@M P g.`.}.}.{+< [ ~ :/)_O'S&[-`/D(N)[-%@!*!_~_0*F=N{{_-*-*-*-*-*-*-*-*-*-*-*-*-*]_^_/_(_(___:_._<_H([_}_|_#+Q.P.P.O.O.O.p+P.P.n%p+M.K.I.4.2!2.}.-.<.O+g.P 1_2_3_7{7{4_5_6_7_8_9_0_ ", -" P.a_U^b_d^c_P{X*X*X*](,#S&F=i/O]Z)}*Q^j/! ) 0 S]r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%B(:&D+N).(. !**+9]0*F==~}=-*-*-*-*-*-*-*-*-*-*-*-*-*d_e_f_g_h_i_j_k_l_+_m_n_o_&.M.$+P.P.O.P.P.P.P.P.q+p+M.Q@I.n+<%M&p_}.[.`.&.q_r_s_4_6{Z~5{t_u_v_w_x_ ", -" P.8+v+1.Z)D+~~,#/=1*y_z_e*s%s%,#O'F=E/1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+p{[-. !*v&*+I]F=N{=~-*-*-*-*-*-*-*-*-*-*-*-*-*-*A_B_C_D_E_F_G_H_._<_I_J_K_w*< .*o+P.P.P.P.P.P.P.P.O.R@S+o+n.f@r$G.~!}.[.`.L_M_N_Z~5{Y~O_P_Q_R_S_T_ ", -" P.#+8+9+#+_+w b%U_V_=+e*s%k{~/W_X_{!!@Y_Z_c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.D+`_.(. !*v&L^0*F=N{ :-*-*-*-*-*-*-*-*-*-*-*-*-*-*.:+:@:@:#:$:%:j_&:l_*:=:-:-*-*F=n.P.P.P.P.P.P.P.P.P.q+F$M.L.Q@}+-$3.1.k.}.;:>:,:O_O_4{':):!: ", -" Q.a+ v+p+M Z)~: (|%=+:={:,.]:]:{!,#~ '_P^v h.`.[.k. +4.J.o+p+P.P.P.P.P.^:g(f^U]p=/:9]'_N{(:}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}=_:::<:H_&:[:}:|:-*-*F=n.P.P.P.P.P.P.P.P.P.P.O.N&N.:@o+m.I.4.2.G#1:2:3:3{3{4:5:6: ", -" 8+#+R+N 1=[]7:|%=+,.8:&@L~a&a&^=~ 2^9:N [+4.Q@C+p+2+P.P.P.P.[-0:. 7]}-9]0*F=N{R]-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}=a:b:c:j_k_d:e:f:g:-*F=n.P.P.P.P.P.P.P.P.P.P.P.n%O.S+C+o+n.J.-$[+h:i:j:@]2{2{k:l: ", -" $+P.4.g.H O]m:V{n:,#a&V{T(o:;*x&a!*+p:Z.0%P.P.P.P.P.b%. !*}-*+9]0*F==~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*q:r:s:t:H_&:u:v:w:-*F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.O.p+M.o+Q@n.x:y:z:A:+]+]1{B:C: ", -" Q.O.I.F.N O]b%~~]~|%D:U&~ !@O'S&a)E:w M o+P.b%7:!*F:9]0*G:h(-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*H:I:J:K:<:H_L:M:N:T&F=n.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.p+M.M.O:P:Q:R:R:R:|{S:T: ", -" P.O.M.o+g.w =*U:U&V:W:a)X::&D+`_.(+(. !*}-*+0*Y:Z:=~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*(:`: <.< ", -" P.P.P.P.p+N < =*,<`/X:N)^:.(%@U(}-v&L^0*'<)<}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*(:!<~<{<.[,['[r},}'}&}{|,| ", -" '|)| ", +" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.I)J)K)f#$$$$$$L)M)N)) 3@%%Q'O)E%+&}%n&^*^*t*6=a%`**,M=P)M-!)f,%'Q)>,R)-'S)6'T)F)7)U)8)o)G)z)z)V)V)/#/# ", +" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%W)/#/#/#/#/#X)Q*x*N'D&Y)D$E$E$Z)`) !C&.!}.@*+!5=]*I-t*@!a%K=8>#!z;M-0>@>%'q'$!K,Z'])%!&!.)n)f)8)*!z)z)z)z)V)=!/#/# ", +" o+I.4.m%[+ +=$G#|.-!|.k.M&|.F.k.<+-!(@G.H.4._#_#I.n.:#o+C+.+++2+P.;!/#/#/#/#/#B#R*i*y*D*{ E$>!(%,!'!F%5&G@G@`)j*F=S@w@`#7>`*K=@=L-z;<;)!-,%)Q)r'r'-'6'=)w).)()!!g)~!z)z)z)z){!L)/#/# ", +" p+M.:#I.n+4.4.]!H.3. +G.1. +2.=$G.3.(@3.r$4.4.I.I.m.n.o+o.M.^!++2+P.P.1*/#/#/#/#/#M%R*^&A*2*/!l*3*l*/&(!_!@&G@o&`&:!>,>,f!S)%!K'/).)()g!8)h!z)z)z)z)z)z)l*(&/#/# ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#i!j!k!l!E*j*m!3*V)(&{ | =&x*[=n!/#/#/#o!Z&Z&Z&c%c%e F>p!,,q!p$3@@%M-K'.)n)f)8)*!z)z)z)z)z)z)z)l*(&/#/# ", +" P./=r!s!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=t!9&u!7.2*v!w!(&j*x!y!z!x*Q*!=/#/#/#/#/#/#A!P.[!c>e ,,M,B!C&;'T.C!D!g. $8)E!E!z)z)z)z)z)z)z)(&(&/#/# ", +" P.G%[;o*k!F!A!s!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`.A!/#/#/#M%G!x*=&7.E*2*{ H!| y*^&I!J!K!/#/#/#/#/#/#1*P.P.P.P.P.B!;'9*8*8*9@E+q)=!8!|!v+6'z)z)z)z)z)z)(&/&/#/# ", +" P.c%E+E+E++)4*L!u!B#M!w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.M!/#!=_&R*i*V*E&7.| 7.N!-+x*O!B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.P!+)E+6*4*4*h)3*o*Q!Q*p.x+b##*z)/&/&/#/#P. ", +" P.R!p)3*R*/&S!T!U!w!j*V!W!j!X!Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+M)Y!Z!`!x*i*T* ~-+^&x*R*_&X)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P..~.~o*L){!l*+~@~#~b%/&/&/#/#P.P.P.P.P. ", +" P.B!Q!o*%@!*$~;*%~T*j*{ &~*~=~| E*-~;~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.>~-*} ,~'~R*)~9&]&`!j!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.R@!~~~O.P.P.P.P.o*l*(&+~{~]~/&/&/&/#P.P.P.P.P.P.P.P.P.P.P. ", +" P.^~l*(&!*}-/~0*(~_~s![-:~<~=&E&=&=&=&y*[~E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$}~s !*. a)C!|~1~2~2~/#/#e*1*/#e*3~. 4~K.P.P.P.P.P.P.P.P.P.P.p+5~6~7~8~9~P.P.P.P.P.P.P.0~/&/&/&P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O. ", +" P.a~/&/&}-*+b~F=F=s!c~5.V&S.d~-*e~f~g~9&R*R*h~i~X)j~k~s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r l~}*i&V&_~m~n~N):&[*D+o~W)p~) P+J.P.P.O.P.P.P.P.P.P.P.P.M.q~r~s~t~u~v~w~P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.$+0 x~ ", +" P.Q!L!L!*+y~z~_~_~}=A~4~B~C~p.D~w E~F~G~H~S&M)1~Y!1~i!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M I~! W)J~5.(~K~[-o~-*S.)*L~0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.M.M~N~O~P~Q~R~S~T~U~P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.P...i&V~W~ ", +" P.X~2*H!Y~(~Z~s!s!`~5.B~ {p..{.*+{W)}*@{g*! m #{Q ${%{&{F!*{={F!|%. S.-{v I.a+$+#+Q.P.P.P.P.P.P.P.p.A~${;{>{0*,{p.W)1=a '{*.P.P.P.P.P.P.P.P.P.P.P.P.P.1+){!{~{{{]{^{/{({_{:{P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.g.W).*E~<{i& ", +" P.[{}{| !@|{s!-*-*1{V&k~S.< i&2{G~3{4{5{1=6{9 a H I 7{M :.2{. 8{E@9{9{M!>)}-A~Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.1+){0{a{b{c{d{P~e{f{g{h{i{P.P.P.P.P.P.P.P.P.P.P.P.Q.P.n.`.! W)N%Y&j{E~w ", +" P.j*7.N!A*A*k{l{U&m{w*S.p.< .*w W)Y&n{L~o{) A.p{H q{M@M P g.`.}.7@r{1!D+|%C!A!s{t{}-s!5{[.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.u{v{w{x{y{z{A{B{C{D{E{F{G{P.P.P.P.P.P.P.P.P.P.Q.n.f*H L~H{I{L~n{}*J{K{ ", +" P.L{M{l!e*k{=&T.V*V*x*N{;*o~O{E~W)}*5{P{! ) 0 I~r .v ]@N+&.`.-.1.3.4.n.<#}.Q{c~R{S{>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.T{v{U{V{W{X{Y{Z{`{ ].]+]@]#]$]P.P.P.P.P.P.Q.M.F#f.A.0 9 ) ! 1=%]5{N%3{ ", +" P.0!-+-+%@!*&]!@*]!=x*x*c+`!Q*e*=]*+-]1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+;]S&>]:&,]=*']/~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.T{)]!]~]{]]]^]/](]_]:]<][]}]|]1]T+P.P.Q.O.l+%.B.s I H r{F E ! 1=1=x~@{ ", +" P.7.i*2]!*}-/~0*(~_~-*. x&,.X)_&'~3]n!e*4]}--]c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)5]D+6]7]. m~*+8]o~-*9]g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.T{0{0]a]b]c]d]e]f]g]h]i]j]k]l]m]n]o]P.;.q$$.N M L K r c a p]9 ) ! q]r] ", +" P.=&]&]&}-*+b~F=F=s!c~5.V&S.d~5.s]4]/=/#X*t]e*s%3~!*u]v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&v]:&;~w];{']p=*+${0*x]s!_~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.M.T{0{y]z]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]P]O+%$P N M v t I H I~#{9 ) l~Q] ", +" P.i~Q*Q**+y~z~_~_~}=A~4~B~C~p.D~w E~F~G~R]S]T]%~/=U]6.V]A!b%W]M [+4.Q@C+p+2+P.P.P.P.a)[*X]Y]Z]b%!*}-*+${F=`]-*-*-*s!_~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.M.T{0{ ^.^+^@^#^$^%^&^*^=^-^;^>^,^'^)^!^~^{^`.g.]^N M v ..K ^^:.a 0 n /^ ", +" P.c+_&_&Y~(~Z~s!s!`~5.B~ {p..{.*+{W)}*@{g*! m #{3{(^_^:^<^.!&@M!|%[^.*N 0%P.P.P.P.P.}^|^1^Y][-. !*}-|{-&F=s!-*-*-*-*-*-*-*s!_~F=-*.*0 P }.I.O.Q.Q.Q.P.M.T{)]2^3^4^5^6^7^8^9^0^a^b^c^d^e^f^g^h^i^j^k^e@&.%.O N ^+7{{@s r l^r{m^ ", +" P.R*i!X)n^Y~s!-*-*1{V&k~S.< i&2{G~3{4{5{1=6{9 a H I 7{M o^p^|{!@C!A!|%q^x&N)< ..n.P.>]:&D+N)b%r^m~8]o~0*_~s!-*-*-*-*-*-*-*-*-*-*-*s!_~F=5.E~9 ..&.I.P.O.s^v{t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^&.g.#.N +.v ..s Y.r H ", +" P.[=!=P^!=!=={M!Q^R^w*S.p.< .*w W)Y&n{L~o{) A.p{H q{M@M P g.`.}.}.{+< [ ~ s{S^O'S&[-5]1^N)[-%@!*T^D!0*F=_~U^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!_~_~V&E~1=9 V^W^X^Y^Z^`^ /./+/@/#/$/%/&/&^*/=/-/;/>/,/'/)/!/~/O+g.P $.N >~v .. .s ", +" P.{/9{]/={^/<~X*X*X*t],#S&F=O{E~W)}*5{P{! ) 0 I~r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%}^:&D+N)7]. !**+o~0*F=s!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!s!F=//(/_/:/(,('()(!(~({(](^(f*&.g.}~P ", +" Q.a+ v+p+M W)/(6]|%=+:=((,._(_(;!,#~ R^4{v h.`.[.k. +4.J.o+p+P.P.P.P.P.:(Z];{K~p=<(o~R^_~[(}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*_~}(m/|(1(2(3(4(5(6(7(8(9(0(a(b(c(d(e(f(g(h(i(j(k(l(m(n(o(p(q(r(s(:+f*&. ", +" 8+#+R+N 1=d~t(|%=+,.u(&@M!a&a&^=~ Y~j{N [+4.Q@C+p+2+P.P.P.P.[-v(. m~}-o~0*F=_~H~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*A~w*R]w(x(y(z(A(B(C(D(E(&/F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(Z(`(`.[.<. ", +" $+P.4.g.H E~ _3~._,#a&3~q^+_;*x&|!*+@_Z.0%P.P.P.P.P.b%. !*}-*+o~0*F=s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*V&*+#_$_%_&_*_=_-_;_>_,_'_)_!_~_{_]_^_/_(___:_<_P([_}_|_1_2_3_4_5_6_7_8_k.}. ", +" Q.O.I.F.N E~b%A!C!|%9_U&~ !@O'S&a)0_w M o+P.b%t(!*a_o~0*b_`]-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*V&0*s!c_d_e_f_g_h_i_j_k_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z_A_B_C_D_E_F_G_[.2.<+ ", +" P.O.M.o+g.w =*H_U&I_J_a)K_:&D+S/7]8]. !*}-*+0*L_M_s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*N_p.p.O_P_Q_R_S_T_U_V_W_X_Y_Z_`_ :.:+:@:#:$:%:&:*:=:-:;:>:,:':):!:~:}+I.-$4. ", +" P.P.P.P.p+N < =*{:5]K_N):(7]%@r^}-v&|{0*]:^:}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*l~g*x~/:(:_:::<:[:}:|:1:2:3:4:5:6:7:8:9:0:a:b:c:d:e:f:g:h:i:j:k:I%M.L.K.-$4. ", +" P.Q.#+$+M. .Z*l:%@!*. m:v&m{n:F=[(H~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*Y&C.o:p:q:r:s:t:u:v:w:x:y:z:A:B:B:C:[_D:E:F:G:H:I:J:K:L:M:N:O:2+O.++o+n. ", +" P.#+$+a+f@H P:_~^:Q:L_T&s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*1=1=f*R:S:T:U:V:W:X:Y:Z:`: <.<+<.<@<#<*:$<%<&<*<=<-<;<><,[,['[)[x_![~[{[][H/^[/[([U~ ", +" P.P.O.O.M.&.1=w*y~_[:[<[[[}[|[1[2[3[4[5[6[7[8[ ", +" P.P.P.P.J.9[0[a[b[c[d[e[f[g[h[i[G_ ", +" |+j[k[l[m[n[o[p[q[r[s[ ", +" t[u[v[w[x[y[ ", +" z[A[B[ ", +" ", +" ", +" ", " ", " "}; diff --git a/src/Mod/Ship/Icons/SimStopIco.png b/src/Mod/Ship/Icons/SimStopIco.png new file mode 100644 index 0000000000000000000000000000000000000000..43a2121b8423528b40eba3569367a7103ebe9b6f GIT binary patch literal 13235 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 c #E7E7E7", +", c #E7E6E7", +"' c #E6E6E6", +") c #5F5F5F", +"! c #606060", +"~ c #868686", +"{ c #AEAEAE", +"] c #C3C2C2", +"^ c #D1D1D1", +"/ c #E4E3E3", +"( c #E5E6E5", +"_ c #E6E5E5", +": c #E5E4E5", +"< c #6B6B6B", +"[ c #7B7A7A", +"} c #888889", +"| c #ABABAB", +"1 c #D5D5D5", +"2 c #E5E6E6", +"3 c #E5E5E5", +"4 c #E4E5E4", +"5 c #E4E4E4", +"6 c #E3E3E3", +"7 c #E3E3E2", +"8 c #E2E2E2", +"9 c #5E5E5E", +"0 c #5D5D5D", +"a c #5C5C5C", +"b c #5B5B5C", +"c c #5A5B5B", +"d c #838484", +"e c #BABABA", +"f c #DEDEDE", +"g c #E2E3E2", +"h c #E1E2E2", +"i c #E1E1E2", +"j c #E0E1E0", +"k c #E1E1E1", +"l c #EAE9E9", +"m c #5E5F5F", +"n c #5E5D5E", +"o c #5C5D5C", +"p c #5B5C5B", +"q c #5B5A5A", +"r c #5A5A5A", +"s c #595959", +"t c #595858", +"u c #585857", +"v c #575757", +"w c #686868", +"x c #909090", +"y c #BEBEBE", +"z c #D3D2D3", +"A c #E0E0E0", +"B c #E0DFE0", +"C c #E0DFDF", +"D c #DEDEDF", +"E c #5F5E5E", +"F c #5E5D5D", +"G c #5C5B5B", +"H c #5B5B5B", +"I c #5A5A59", +"J c #595A59", +"K c #595859", +"L c #585757", +"M c #565656", +"N c #555555", +"O c #545455", +"P c #545454", +"Q c #676666", +"R c #717272", +"S c #8B8B8A", +"T c #B7B7B8", +"U c #DFDFDF", +"V c #DDDDDD", +"W c #DCDDDD", +"X c #DDDCDC", +"Y c #E8E9E9", +"Z c #5D5E5E", +"` c #5C5B5C", +" . c #595958", +".. c #585858", +"+. c #565657", +"@. c #555556", +"#. c #545554", +"$. c #555454", +"%. c #535354", +"&. c #525252", +"*. c #525251", +"=. c #515050", +"-. c #4F5050", +";. c #4F4F50", +">. c #4E4F4F", +",. c #959595", +"'. c #CAC9C9", +"). c #D9D9DA", +"!. c #DADBDA", +"~. c #DCDCDC", +"{. c #DDDDDC", +"]. c #DBDCDB", +"^. c #DBDBDB", +"/. c #DADADB", +"(. c #DADADA", +"_. c #E8E8E9", +":. c #5B5A5B", +"<. c #505151", +"[. c #505050", +"}. c #4F4F4F", +"|. c #4E4D4E", +"1. c #4D4D4D", +"2. c #4C4D4D", +"3. c #4C4C4C", +"4. c #4B4B4B", +"5. c #707070", +"6. c #959596", +"7. c #AAAAAA", +"8. c #BFBEBF", +"9. c #D7D7D6", +"0. c #DADAD9", +"a. c #D9DADA", +"b. c #D8D9D9", +"c. c #5B5C5C", +"d. c #5A5B5A", +"e. c #5A5959", +"f. c #565757", +"g. c #535353", +"h. c #535253", +"i. c #505150", +"j. c #4F504F", +"k. c #4E4E4E", +"l. c #4C4B4B", +"m. c #494A49", +"n. c #494949", +"o. c #484747", +"p. c #6C6C6C", +"q. c #C7C7C7", +"r. c #DAD9D9", +"s. c #D9D8D9", +"t. c #D9D8D8", +"u. c #D8D8D8", +"v. c #D8D8D7", +"w. c #D7D8D8", +"x. c #D7D7D7", +"y. c #D6D6D6", +"z. c #D5D5D6", +"A. c #5E5E5D", +"B. c #595A5A", +"C. c #575656", +"D. c #545555", +"E. c #4F4E4E", +"F. c #4E4E4D", +"G. c #4C4D4C", +"H. c #4C4B4C", +"I. c #4A4A4A", +"J. c #494A4A", +"K. c #494848", +"L. c #484847", +"M. c #474747", +"N. c #474646", +"O. c #454545", +"P. c #444444", +"Q. c #434343", +"R. c #434243", +"S. c #6D6D6D", +"T. c #A7A8A7", +"U. c #D0D0D0", +"V. c #D4D4D4", +"W. c #D6D5D5", +"X. c #E7E8E8", +"Y. c #59595A", +"Z. c #535454", +"`. c #515151", +" + c #4D4D4C", +".+ c #464647", +"++ c #464545", +"@+ c #444545", +"#+ c #424242", +"$+ c #414141", +"%+ c #404041", +"&+ c #3F4040", +"*+ c #787878", +"=+ c #969696", +"-+ c #A7A7A7", +";+ c #C3C3C2", +">+ c #D5D4D5", +",+ c #D4D4D5", +"'+ c #D3D4D4", +")+ c #D3D3D3", +"!+ c #D2D3D3", +"~+ c #E6E7E6", +"{+ c #5A5A5B", +"]+ c #575858", +"^+ c #575657", +"/+ c #555656", +"(+ c #565555", +"_+ c #525352", +":+ c #515051", +"<+ c #4D4D4E", +"[+ c #4D4C4C", +"}+ c #4A4A49", +"|+ c #474848", +"1+ c #464747", +"2+ c #444544", +"3+ c #434342", +"4+ c #434142", +"5+ c #404141", +"6+ c #403F3F", +"7+ c #3F3E3E", +"8+ c #3E3E3E", +"9+ c #3D3D3D", +"0+ c #3C3C3C", +"a+ c #404040", +"b+ c #707071", +"c+ c #A4A5A5", +"d+ c #D4D3D3", +"e+ c #D3D2D2", +"f+ c #D2D2D2", +"g+ c #D2D2D1", +"h+ c #D1D0D0", +"i+ c #D0D1D0", +"j+ c #CFD0CF", +"k+ c #525353", +"l+ c #525152", +"m+ c #504F4F", +"n+ c #4B4A4A", +"o+ c #484848", +"p+ c #464646", +"q+ c #454544", +"r+ c #454444", +"s+ c #424343", +"t+ c #414142", +"u+ c #403F40", +"v+ c #3F3F3F", +"w+ c #3C3D3C", +"x+ c #3B3B3B", +"y+ c #3A3A3A", +"z+ c #3A3A39", +"A+ c #383838", +"B+ c #373737", +"C+ c #474847", +"D+ c #7F7F7F", +"E+ c #B6B6B6", +"F+ c #C8C9C8", +"G+ c #CBCBCB", +"H+ c #CFD0D0", +"I+ c #D0D0CF", +"J+ c #D0CFD0", +"K+ c #CFCFCF", +"L+ c #CECECE", +"M+ c #CECDCE", +"N+ c #545453", +"O+ c #525151", +"P+ c #4F4E4F", +"Q+ c #4A4B4B", +"R+ c #4A494A", +"S+ c #474647", +"T+ c #454645", +"U+ c #404140", +"V+ c #3E3E3F", +"W+ c #3D3E3E", +"X+ c #3D3C3C", +"Y+ c #3C3B3C", +"Z+ c #3C3B3B", +"`+ c #3A3939", +" @ c #383839", +".@ c #363637", +"+@ c #353636", +"@@ c #353535", +"#@ c #343434", +"$@ c #333333", +"%@ c #7B7B7C", +"&@ c #919190", +"*@ c #ACACAB", +"=@ c #C9C9C9", +"-@ c #CECFCE", +";@ c #CECECD", +">@ c #CDCDCD", +",@ c #CDCDCC", +"'@ c #CCCCCC", +")@ c #CCCCCB", +"!@ c #858585", +"~@ c #E6E5E6", +"{@ c #585859", +"]@ c #565655", +"^@ c #545354", +"/@ c #4E4F4E", +"(@ c #4C4C4D", +"_@ c #4B4B4A", +":@ c #484748", +"<@ c #434344", +"[@ c #3D3C3D", +"}@ c #393839", +"|@ c #373636", +"1@ c #333334", +"2@ c #323332", +"3@ c #323232", +"4@ c #313131", +"5@ c #303131", +"6@ c #383939", +"7@ c #50504F", +"8@ c #7E7F7E", +"9@ c #B6B7B6", +"0@ c #CBCBCC", +"a@ c #CBCBCA", +"b@ c #CACACA", +"c@ c #CAC9CA", +"d@ c #575857", +"e@ c #515150", +"f@ c #4A4A4B", +"g@ c #494849", +"h@ c #474746", +"i@ c #464547", +"j@ c #434444", +"k@ c #424141", +"l@ c #3D3D3E", +"m@ c #3B3C3B", +"n@ c #3B3B3A", +"o@ c #383737", +"p@ c #363737", +"q@ c #363636", +"r@ c #353635", +"s@ c #343433", +"t@ c #333233", +"u@ c #313132", +"v@ c #323131", +"w@ c #303030", +"x@ c #2F2F2F", +"y@ c #2F2F2E", +"z@ c #2E2E2F", +"A@ c #2D2C2D", +"B@ c #2C2D2D", +"C@ c #2C2C2C", +"D@ c #2C2B2C", +"E@ c #939393", +"F@ c #B9BAB9", +"G@ c #C0C0C0", +"H@ c #C7C6C7", +"I@ c #CACAC9", +"J@ c #C9C9C8", +"K@ c #C8C8C9", +"L@ c #C8C8C8", +"M@ c #585758", +"N@ c #535152", +"O@ c #504F50", +"P@ c #4B4C4A", +"Q@ c #494948", +"R@ c #454646", +"S@ c #434443", +"T@ c #414241", +"U@ c #3F3F40", +"V@ c #3F3E3F", +"W@ c #3E3E3D", +"X@ c #3D3C3E", +"Y@ c #393939", +"Z@ c #373838", +"`@ c #363535", +" # c #343334", +".# c #313232", +"+# c #2E2E2E", +"@# c #2D2D2D", +"## c #2C2B2B", +"$# c #2B2B2B", +"%# c #2A2A2A", +"&# c #29292A", +"*# c #292929", +"=# c #282828", +"-# c #383938", +";# c #5D5E5D", +"># c #7A797A", +",# c #919191", +"'# c #B3B2B3", +")# c #C8C7C8", +"!# c #C8C7C7", +"~# c #C8C8C7", +"{# c #C7C7C6", +"]# c #C6C6C7", +"^# c #C6C6C5", +"/# c #9D9D9D", +"(# c #E4E4E5", +"_# c #4A4B4A", +":# c #484949", +"<# c #474748", +"[# c #444443", +"}# c #424241", +"|# c #3C3D3D", +"1# c #3B3A3B", +"2# c #383837", +"3# c #353434", +"4# c #333434", +"5# c #313031", +"6# c #302F2F", +"7# c #2D2D2E", +"8# c #2A2B2B", +"9# c #292A2A", +"0# c #292828", +"a# c #282928", +"b# c #272727", +"c# c #262626", +"d# c #242524", +"e# c #C6C6C6", +"f# c #C5C5C5", +"g# c #C5C5C6", +"h# c #424243", +"i# c #3B3A3A", +"j# c #383738", +"k# c #343534", +"l# c #343333", +"m# c #313130", +"n# c #302F30", +"o# c #2D2C2C", +"p# c #2C2C2D", +"q# c #272626", +"r# c #252625", +"s# c #262525", +"t# c #242424", +"u# c #232423", +"v# c #222223", +"w# c #222222", +"x# c #212121", +"y# c #1F1F20", +"z# c #30302F", +"A# c #6A696A", +"B# c #A0A09F", +"C# c #C5C6C5", +"D# c #E3E4E4", +"E# c #555655", +"F# c #535352", +"G# c #4E4D4D", +"H# c #424142", +"I# c #414040", +"J# c #3F403F", +"K# c #3C3C3D", +"L# c #39393A", +"M# c #383637", +"N# c #323233", +"O# c #323132", +"P# c #303031", +"Q# c #2F2E2E", +"R# c #2E2E2D", +"S# c #2B2C2C", +"T# c #2B2A2A", +"U# c #272627", +"V# c #252525", +"W# c #242423", +"X# c #232222", +"Y# c #212221", +"Z# c #202021", +"`# c #202020", +" $ c #1F1F1F", +".$ c #1E1E1F", +"+$ c #1E1D1D", +"@$ c #1D1C1D", +"#$ c #C4C5C5", +"$$ c #C4C4C4", +"%$ c #525253", +"&$ c #515252", +"*$ c #4E4E4F", +"=$ c #4D4C4D", +"-$ c #4B4A4B", +";$ c #414041", +">$ c #3C3C3B", +",$ c #393938", +"'$ c #363536", +")$ c #353435", +"!$ c #333433", +"~$ c #2B2A2B", +"{$ c #2A2B2A", +"]$ c #292829", +"^$ c #262627", +"/$ c #252624", +"($ c #252424", +"_$ c #222322", +":$ c #20201F", +"<$ c #1E1F1E", +"[$ c #1D1D1D", +"}$ c #1C1D1D", +"|$ c #1C1C1C", +"1$ c #C4C5C4", +"2$ c #4F4F4E", +"3$ c #444344", +"4$ c #3E3F3E", +"5$ c #3E3D3E", +"6$ c #393A39", +"7$ c #393838", +"8$ c #363736", +"9$ c #2F302F", +"0$ c #2D2E2D", +"a$ c #2E2D2E", +"b$ c #2D2D2C", +"c$ c #2B2B2C", +"d$ c #2B2B2A", +"e$ c #262526", +"f$ c #242324", +"g$ c #232324", +"h$ c #212222", +"i$ c #202121", +"j$ c #1F2020", +"k$ c #1F1F1E", +"l$ c #1D1C1C", +"m$ c #1B1B1C", +"n$ c #C4C4C3", +"o$ c #E3E2E3", +"p$ c #555455", +"q$ c #515251", +"r$ c #4B4C4C", +"s$ c #3D3E3D", +"t$ c #3B3D3C", +"u$ c #3A3A3B", +"v$ c #373837", +"w$ c #373637", +"x$ c #2F2E2F", +"y$ c #232323", +"z$ c #1E1E1D", +"A$ c #1B1C1C", +"B$ c #1C1B1B", +"C$ c #1B1B1B", +"D$ c #C3C4C4", +"E$ c #C3C3C3", +"F$ c #464546", +"G$ c #3E3F3F", +"H$ c #3E3D3D", +"I$ c #3D3D3C", +"J$ c #3A3B3B", +"K$ c #323333", +"L$ c #313030", +"M$ c #2F3030", +"N$ c #2E2F2F", +"O$ c #2D2D2B", +"P$ c #2A2B29", +"Q$ c #292A29", +"R$ c #282726", +"S$ c #202120", +"T$ c #1E1E1E", +"U$ c #19191A", +"V$ c #C3C3C4", +"W$ c #E2E1E1", +"X$ c #4A4949", +"Y$ c #484849", +"Z$ c #3A3B3A", +"`$ c #373738", +" % c #373736", +".% c #252425", +"+% c #222122", +"@% c #212122", +"#% c #1A1B1B", +"$% c #1B1A1A", +"%% c #1A1919", +"&% c #E2E1E2", +"*% c #E1E0E1", +"=% c #505051", +"-% c #49494A", +";% c #1A1A1A", +">% c #3A393A", +",% c #2E2F2E", +"'% c #282727", +")% c #242425", +"!% c #232322", +"~% c #1E1F1F", +"{% c #1B1C1B", +"]% c #1A191A", +"^% c #191A19", +"/% c #191918", +"(% c #C2C2C2", +"_% c #E0E1E1", +":% c #E1E1E0", +"<% c #4B4B4C", +"[% c #454445", +"}% c #161515", +"|% c #8B8B8B", +"1% c #2C2C2B", +"2% c #282827", +"3% c #272728", +"4% c #262727", +"5% c #1F1E1F", +"6% c #1A1A19", +"7% c #181818", +"8% c #C1C1C2", +"9% c #E1E0E0", +"0% c #464746", +"a% c #111111", +"b% c #7C7C7C", +"c% c #BBBBBB", +"d% c #969697", +"e% c #5F5F5C", +"f% c #33332F", +"g% c #28292A", +"h% c #262726", +"i% c #201F20", +"j% c #1F201F", +"k% c #191919", +"l% c #171717", +"m% c #4C4C4B", +"n% c #444445", +"o% c #444343", +"p% c #1A1717", +"q% c #211515", +"r% c #2D2B2B", +"s% c #999999", +"t% c #B3B3B5", +"u% c #8B8BB2", +"v% c #6F6F89", +"w% c #4A4A4F", +"x% c #2A2929", +"y% c #2B2C2B", +"z% c #2A292A", +"A% c #232424", +"B% c #212120", +"C% c #181718", +"D% c #171818", +"E% c #171716", +"F% c #C1C1C1", +"G% c #C0C1C1", +"H% c #DFE0E0", +"I% c #484948", +"J% c #422121", +"K% c #552D2D", +"L% c #363232", +"M% c #A0A0A0", +"N% c #646464", +"O% c #ABABAE", +"P% c #7575C7", +"Q% c #5C5CD5", +"R% c #7878BD", +"S% c #7B7B8E", +"T% c #585855", +"U% c #30302E", +"V% c #2A2A29", +"W% c #212020", +"X% c #201E1F", +"Y% c #1E1D1E", +"Z% c #1C1C1D", +"`% c #1A1B1A", +" & c #191A1A", +".& c #171616", +"+& c #161616", +"@& c #C0C0C1", +"#& c #414242", +"$& c #1F1C1C", +"%& c #542424", +"&& c #4C2625", +"*& c #585756", +"=& c #A8A8A8", +"-& c #767677", +";& c #9D9D9E", +">& c #8A8AAD", +",& c #5A5AC4", +"'& c #3838D7", +")& c #3434D9", +"!& c #4848BD", +"~& c #535372", +"{& c #878888", +"]& c #A4A4A4", +"^& c #A7A6A6", +"/& c #B0B0B0", +"(& c #B1B1B1", +"_& c #A1A1A1", +":& c #808080", +"<& c #151515", +"[& c #242525", +"}& c #1D1E1E", +"|& c #1A1A1B", +"1& c #191819", +"2& c #181817", +"3& c #161717", +"4& c #151516", +"5& c #C1C0C0", +"6& c #DFDEDE", +"7& c #5B2020", +"8& c #391A19", +"9& c #A4A4A5", +"0& c #878687", +"a& c #8E8E8E", +"b& c #9B9B98", +"c& c #999994", +"d& c #888898", +"e& c #6C6BA8", +"f& c #4F4FBD", +"g& c #50508B", +"h& c #CECDCD", +"i& c #6A6A6A", +"j& c #242323", +"k& c #222121", +"l& c #1F1E1E", +"m& c #1C1D1C", +"n& c #151514", +"o& c #BFC0BF", +"p& c #DFDFDE", +"q& c #434445", +"r& c #3F3E40", +"s& c #1B1212", +"t& c #611717", +"u& c #301414", +"v& c #797878", +"w& c #9C9C9D", +"x& c #888888", +"y& c #8A8A89", +"z& c #868688", +"A& c #7C7C8F", +"B& c #45455C", +"C& c #B8B8B8", +"D& c #C5C4C4", +"E& c #AAA9A9", +"F& c #252523", +"G& c #222323", +"H& c #171817", +"I& c #161516", +"J& c #141514", +"K& c #141313", +"L& c #C0BFBF", +"M& c #4D4E4E", +"N& c #464645", +"O& c #1B0F0F", +"P& c #570D0D", +"Q& c #270D0D", +"R& c #706F6F", +"S& c #838383", +"T& c #757474", +"U& c #878787", +"V& c #6F6F6F", +"W& c #5C5C5A", +"X& c #353533", +"Y& c #656565", +"Z& c #BCBCBC", +"`& c #BFBFBF", +" * c #C1C2C1", +".* c #696969", +"+* c #1D1D1E", +"@* c #191818", +"#* c #131313", +"$* c #DDDEDD", +"%* c #110F0F", +"&* c #220B0B", +"** c #201B1B", +"=* c #7D7D7C", +"-* c #727272", +";* c #898989", +">* c #BBBBBA", +",* c #BCBCBB", +"'* c #BDBDBD", +")* c #676868", +"!* c #7A7A7A", +"~* c #1D1D1C", +"{* c #181918", +"]* c #141414", +"^* c #131314", +"/* c #131312", +"(* c #BEBFBF", +"_* c #454546", +":* c #3B3B3C", +"<* c #181919", +"[* c #818181", +"}* c #656465", +"|* c #888787", +"1* c #9B9B9B", +"2* c #ADADAD", +"3* c #B4B4B4", +"4* c #B5B5B5", +"5* c #B5B5B4", +"6* c #B6B6B5", +"7* c #B6B6B7", +"8* c #B7B7B7", +"9* c #B7B8B8", +"0* c #767676", +"a* c #121213", +"b* c #212021", +"c* c #141413", +"d* c #111212", +"e* c #9A9A9A", +"f* c #515152", +"g* c #616162", +"h* c #949495", +"i* c #A6A6A6", +"j* c #AFAFAF", +"k* c #ACADAD", +"l* c #B2B2B2", +"m* c #B0B0AF", +"n* c #AFAFB0", +"o* c #B3B3B3", +"p* c #B5B4B4", +"q* c #1C1B1C", +"r* c #131414", +"s* c #121313", +"t* c #121212", +"u* c #BEBDBD", +"v* c #DCDCDD", +"w* c #6E6E6E", +"x* c #A5A5A5", +"y* c #A9A9A9", +"z* c #ABABAA", +"A* c #AAAAA9", +"B* c #ABA9A9", +"C* c #ABAAAB", +"D* c #ABABAC", +"E* c #ACACAC", +"F* c #666766", +"G* c #141314", +"H* c #1D1E1D", +"I* c #1B1A1B", +"J* c #131213", +"K* c #101111", +"L* c #586362", +"M* c #5D6F74", +"N* c #596767", +"O* c #555A58", +"P* c #A2A2A3", +"Q* c #A2A2A2", +"R* c #A3A3A3", +"S* c #A5A5A3", +"T* c #A6A7A7", +"U* c #A5A4A5", +"V* c #A8A7A7", +"W* c #A9A8A9", +"X* c #9C9C9C", +"Y* c #424342", +"Z* c #6C6D6C", +"`* c #101010", +" = c #151616", +".= c #131412", +"+= c #101110", +"@= c #0F0F0F", +"#= c #BDBCBD", +"$= c #DBDCDC", +"%= c #7FA3AE", +"&= c #79A5EC", +"*= c #5F80EB", +"== c #485FD4", +"-= c #4758B4", +";= c #516392", +">= c #586874", +",= c #55605F", +"'= c #393A3A", +")= c #2D2E2F", +"!= c #9E9E9E", +"~= c #979897", +"{= c #9A9B9B", +"]= c #929493", +"^= c #8C8D8D", +"/= c #979797", +"(= c #989999", +"_= c #969898", +":= c #979898", +"<= c #9B9C9C", +"[= c #A2A1A2", +"}= c #737272", +"|= c #A6A5A6", +"1= c #616161", +"2= c #1B1B1A", +"3= c #181717", +"4= c #161615", +"5= c #151414", +"6= c #121112", +"7= c #111110", +"8= c #7A9DAE", +"9= c #597AF5", +"0= c #5373F9", +"a= c #668CFC", +"b= c #5D80FC", +"c= c #5271FB", +"d= c #5576F5", +"e= c #739AE6", +"f= c #7495A5", +"g= c #607578", +"h= c #54646B", +"i= c #58686B", +"j= c #505A59", +"k= c #484B4B", +"l= c #323432", +"m= c #919292", +"n= c #959494", +"o= c #878686", +"p= c #7A7979", +"q= c #7C7777", +"r= c #807778", +"s= c #776F6F", +"t= c #706565", +"u= c #7B6C6B", +"v= c #847171", +"w= c #7C6B6B", +"x= c #746464", +"y= c #736262", +"z= c #7A6969", +"A= c #807070", +"B= c #807676", +"C= c #807C7C", +"D= c #949696", +"E= c #9E9F9F", +"F= c #757575", +"G= c #171617", +"H= c #151615", +"I= c #141415", +"J= c #121111", +"K= c #0F1010", +"L= c #0F0F10", +"M= c #0E0F0E", +"N= c #BDBDBC", +"O= c #5B6766", +"P= c #799CA3", +"Q= c #76979D", +"R= c #6F8D9F", +"S= c #97CEEF", +"T= c #76A2FB", +"U= c #4C69FC", +"V= c #1B27FD", +"W= c #3549F4", +"X= c #5979E3", +"Y= c #698DE4", +"Z= c #77A2F2", +"`= c #688EE1", +" - c #5C78C4", +".- c #576FA2", +"+- c #55697C", +"@- c #4D5C5F", +"#- c #333E39", +"$- c #3D3B37", +"%- c #6F6766", +"&- c #786868", +"*- c #7D6666", +"=- c #947676", +"-- c #9C7979", +";- c #9D7676", +">- c #AB7E7E", +",- c #BA8888", +"'- c #B88585", +")- c #B17E7E", +"!- c #B57E7E", +"~- c #BD8383", +"{- c #BD8181", +"]- c #B07777", +"^- c #A06A6A", +"/- c #956161", +"(- c #8A5B5B", +"_- c #7D5858", +":- c #755F5F", +"<- c #807878", +"[- c #7D7D7D", +"}- c #797979", +"|- c #131212", +"1- c #0F0F0E", +"2- c #0D0E0E", +"3- c #BCBBBC", +"4- c #DBDADB", +"5- c #424545", +"6- c #4F5756", +"7- c #9BD0D5", +"8- c #6D96FC", +"9- c #435DFC", +"0- c #3E55FC", +"a- c #5270FC", +"b- c #5878F8", +"c- c #4862F2", +"d- c #435DF8", +"e- c #4D6BF8", +"f- c #597BFC", +"g- c #5B7DFB", +"h- c #5E81FB", +"i- c #678DEF", +"j- c #7198D3", +"k- c #354658", +"l- c #5B4442", +"m- c #B6817F", +"n- c #C68B8B", +"o- c #C38787", +"p- c #C78888", +"q- c #CE8C8C", +"r- c #CA8686", +"s- c #C68181", +"t- c #C78080", +"u- c #C87F7F", +"v- c #C57B7B", +"w- c #C37777", +"x- c #C07373", +"y- c #C17271", +"z- c #C17070", +"A- c #BF6B6B", +"B- c #BB6767", +"C- c #B15F5F", +"D- c #9E5453", +"E- c #744343", +"F- c #302929", +"G- c #161617", +"H- c #141515", +"I- c #131413", +"J- c #100F10", +"K- c #0F0E0E", +"L- c #0E0E0E", +"M- c #0D0D0D", +"N- c #BBBCBB", +"O- c #DAD9DA", +"P- c #40403F", +"Q- c #739297", +"R- c #78A2E4", +"S- c #7AA6E2", +"T- c #86B1C5", +"U- c #6A879E", +"V- c #6A879A", +"W- c #708F95", +"X- c #7C9FA0", +"Y- c #5F7788", +"Z- c #576C96", +"`- c #5974B8", +" ; c #5774D8", +".; c #4B67F1", +"+; c #4661FD", +"@; c #3549D3", +"#; c #2F236D", +"$; c #A86F81", +"%; c #C17777", +"&; c #C27472", +"*; c #C17272", +"=; c #BE6F6F", +"-; c #BC6C6C", +";; c #BC6969", +">; c #BA6766", +",; c #B96363", +"'; c #B86060", +"); c #B75D5D", +"!; c #B55B5B", +"~; c #B35757", +"{; c #B25554", +"]; c #B15251", +"^; c #B04F4F", +"/; c #AF4C4C", +"(; c #AF4A49", +"_; c #763030", +":; c #291313", +"<; c #0C0C0C", +"[; c #BBBBBC", +"}; c #434241", +"|; c #49504F", +"1; c #697F7E", +"2; c #607270", +"3; c #464C4B", +"4; c #454748", +"5; c #3B3D3D", +"6; c #454848", +"7; c #4D5353", +"8; c #637D7F", +"9; c #7BA3C0", +"0; c #688EE9", +"a; c #364CD9", +"b; c #564EC6", +"c; c #8F639C", +"d; c #B06D77", +"e; c #B75A55", +"f; c #B55753", +"g; c #B25352", +"h; c #B15050", +"i; c #B04E4D", +"j; c #AE4A4A", +"k; c #AD4747", +"l; c #AC4444", +"m; c #AA4242", +"n; c #A93F3F", +"o; c #A83C3C", +"p; c #A63939", +"q; c #A53636", +"r; c #A43333", +"s; c #8F2C2C", +"t; c #451616", +"u; c #541A1A", +"v; c #663B3B", +"w; c #848383", +"x; c #1C1A1C", +"y; c #0E0F0F", +"z; c #0E0D0D", +"A; c #0D0D0C", +"B; c #BBBABB", +"C; c #BABBBA", +"D; c #D9DAD9", +"E; c #3E4645", +"F; c #5A6F74", +"G; c #7094BE", +"H; c #5A7EF1", +"I; c #3F52F7", +"J; c #4A49DD", +"K; c #6E3D9B", +"L; c #914B73", +"M; c #A13B45", +"N; c #A73735", +"O; c #A6332F", +"P; c #A42F2C", +"Q; c #A22C2B", +"R; c #A02B2C", +"S; c #9F2929", +"T; c #9E2626", +"U; c #9D2323", +"V; c #9B2020", +"W; c #9A1E1D", +"X; c #951919", +"Y; c #581010", +"Z; c #3B0909", +"`; c #7E1C1C", +" > c #671B1B", +".> c #2F2929", +"+> c #101011", +"@> c #0B0B0B", +"#> c #D8D9D8", +"$> c #3B3C3C", +"%> c #353534", +"&> c #353334", +"*> c #454949", +"=> c #6B8382", +"-> c #779FB5", +";> c #76A2EF", +">> c #5B72EE", +",> c #555CDE", +"'> c #623AA0", +")> c #762969", +"!> c #872F51", +"~> c #922C3C", +"{> c #952129", +"]> c #941619", +"^> c #950D0B", +"/> c #960B07", +"(> c #950B06", +"_> c #930907", +":> c #8F0707", +"<> c #680504", +"[> c #350200", +"}> c #4D0301", +"|> c #680D0E", +"1> c #391213", +"2> c #252E29", +"3> c #242B25", +"4> c #252A26", +"5> c #151415", +"6> c #121312", +"7> c #111211", +"8> c #10100F", +"9> c #0E0E0F", +"0> c #0D0C0D", +"a> c #0C0C0B", +"b> c #0A0A0B", +"c> c #B9BABA", +"d> c #2F2F30", +"e> c #313333", +"f> c #51656B", +"g> c #587293", +"h> c #5574C3", +"i> c #5170F4", +"j> c #4658F3", +"k> c #4A4BDB", +"l> c #5943B8", +"m> c #6B3E8F", +"n> c #793468", +"o> c #7F264C", +"p> c #7E1435", +"q> c #7E0320", +"r> c #82051B", +"s> c #70030D", +"t> c #2B0003", +"u> c #170002", +"v> c #3A0B12", +"w> c #35272C", +"x> c #3F5785", +"y> c #455FC7", +"z> c #4961B0", +"A> c #495E89", +"B> c #445664", +"C> c #3C4A49", +"D> c #0A0B0B", +"E> c #0A0A09", +"F> c #BAB9BA", +"G> c #2D2E2E", +"H> c #2E3030", +"I> c #323231", +"J> c #464C4C", +"K> c #6B8887", +"L> c #6C8FA1", +"M> c #6183BB", +"N> c #5071D2", +"O> c #4463E8", +"P> c #3E55F8", +"Q> c #414EED", +"R> c #4B45CF", +"S> c #5131AA", +"T> c #502EA3", +"U> c #2E1FA3", +"V> c #09089D", +"W> c #0A0B8D", +"X> c #202788", +"Y> c #5476B4", +"Z> c #7BAAF4", +"`> c #5879FB", +" , c #5D7FFD", +"., c #5C7FFB", +"+, c #658AF7", +"@, c #749FE8", +"#, c #6383A7", +"$, c #4B616A", +"%, c #394443", +"&, c #1C1F1F", +"*, c #100F0F", +"=, c #0B0B0C", +"-, c #0B0B0A", +";, c #0A0A0A", +">, c #090909", +",, c #B9B9B9", +"', c #333332", +"), c #303130", +"!, c #2E2D2D", +"~, c #2A2A2B", +"{, c #2B2D2D", +"], c #363F40", +"^, c #445358", +"/, c #526873", +"(, c #5C778D", +"_, c #607FA4", +":, c #5D7FBE", +"<, c #597ED6", +"[, c #577BE9", +"}, c #3E56B9", +"|, c #5E81D3", +"1, c #5574D4", +"2, c #425AD8", +"3, c #425BF1", +"4, c #3C54FB", +"5, c #3B52FC", +"6, c #4660FC", +"7, c #5574FC", +"8, c #5473FC", +"9, c #455FFC", +"0, c #4059F5", +"a, c #516EE2", +"b, c #6A91CA", +"c, c #587480", +"d, c #2E3636", +"e, c #0D0C0C", +"f, c #0C0B0C", +"g, c #0A090A", +"h, c #B8B9B8", +"i, c #D8D7D7", +"j, c #D7D7D8", +"k, c #333232", +"l, c #282B2C", +"m, c #363F41", +"n, c #4B5B5B", +"o, c #5B6F6D", +"p, c #3C4747", +"q, c #404D54", +"r, c #465861", +"s, c #495C67", +"t, c #577285", +"u, c #5E7EA0", +"v, c #5B7ABA", +"w, c #6084ED", +"x, c #5677FB", +"y, c #6388FC", +"z, c #82B3FB", +"A, c #86B8FB", +"B, c #5575FB", +"C, c #354AFC", +"D, c #4F6EF8", +"E, c #719BD3", +"F, c #62838E", +"G, c #4B6466", +"H, c #32403F", +"I, c #171919", +"J, c #0A0A0C", +"K, c #080908", +"L, c #070708", +"M, c #B9B8B9", +"N, c #B9B9B8", +"O, c #383937", +"P, c #2C2D2C", +"Q, c #252626", +"R, c #272C30", +"S, c #4E6676", +"T, c #5C7CB0", +"U, c #5A7CEB", +"V, c #4159FC", +"W, c #435CFC", +"X, c #374CFC", +"Y, c #3347FC", +"Z, c #1C27FD", +"`, c #222FFD", +" ' c #4864F7", +".' c #5C7EE9", +"+' c #7098D4", +"@' c #5A798B", +"#' c #394948", +"$' c #252A2A", +"%' c #0B0A0B", +"&' c #0B0A09", +"*' c #090808", +"=' c #070808", +"-' c #070707", +";' c #B8B7B8", +">' c #D6D7D7", +",' c #D7D6D7", +"'' c #343435", +")' c #2D2D2F", +"!' c #282929", +"~' c #2C2F2E", +"{' c #576E6D", +"]' c #6B90A6", +"^' c #658AE8", +"/' c #3245FD", +"(' c #3F56FC", +"_' c #84B6FB", +":' c #76A1DB", +"<' c #5370C0", +"[' c #4A65D9", +"}' c #455FF7", +"|' c #4661FA", +"1' c #5D7FE7", +"2' c #6D94B7", +"3' c #3C4D4D", +"4' c #0B0C0C", +"5' c #080809", +"6' c #060606", +"7' c #B7B8B7", +"8' c #D7D6D6", +"9' c #3F3F3E", +"0' c #363635", +"a' c #282829", +"b' c #1A1C1C", +"c' c #495F68", +"d' c #6B92CC", +"e' c #5474FC", +"f' c #75A0FB", +"g' c #769FA3", +"h' c #283137", +"i' c #364651", +"j' c #5B7A97", +"k' c #6C93DA", +"l' c #5979FB", +"m' c #4D6AFC", +"n' c #6283CF", +"o' c #4D676B", +"p' c #0D0D0E", +"q' c #0A0909", +"r' c #080808", +"s' c #070706", +"t' c #060605", +"u' c #D6D5D6", +"v' c #606061", +"w' c #272726", +"x' c #232223", +"y' c #212220", +"z' c #1C1C1B", +"A' c #3E4C4A", +"B' c #77A2C3", +"C' c #82B1EC", +"D' c #6A8F90", +"E' c #2B3332", +"F' c #55727E", +"G' c #6D95E0", +"H' c #658AFB", +"I' c #8EC3D8", +"J' c #283432", +"K' c #050505", +"L' c #B8B7B7", +"M' c #D6D6D5", +"N' c #C5C5C4", +"O' c #848484", +"P' c #252526", +"Q' c #181819", +"R' c #353E3D", +"S' c #4F6664", +"T' c #313D3D", +"U' c #111010", +"V' c #3F5255", +"W' c #53718E", +"X' c #688C93", +"Y' c #1D2425", +"Z' c #080707", +"`' c #050606", +" ) c #050406", +".) c #040404", +"+) c #B7B7B6", +"@) c #D3D3D2", +"#) c #292928", +"$) c #111312", +"%) c #0B0A0A", +"&) c #080807", +"*) c #080607", +"=) c #060505", +"-) c #050504", +";) c #D1D1D2", +">) c #858484", +",) c #272827", +"') c #0F100F", +")) c #0E0D0E", +"!) c #0C0D0C", +"~) c #080A09", +"{) c #090809", +"]) c #060707", +"^) c #060506", +"/) c #040505", +"() c #030303", +"_) c #B6B5B5", +":) c #CFCECF", +"<) c #CFCECE", +"[) c #BDBEBE", +"}) c #0E0D0F", +"|) c #0C0D0D", +"1) c #0C0B0B", +"2) c #0A0B0A", +"3) c #090A0A", +"4) c #070807", +"5) c #050506", +"6) c #040303", +"7) c #030403", +"8) c #020202", +"9) c #CFCFCE", +"0) c #CDCCCC", +"a) c #828282", +"b) c #252524", +"c) c #121011", +"d) c #0C0C0D", +"e) c #060706", +"f) c #020203", +"g) c #010202", +"h) c #B4B4B5", +"i) c #555554", +"j) c #CCCCCD", +"k) c #CBCCCB", +"l) c #CACBCA", +"m) c #0E0E0D", +"n) c #030404", +"o) c #010101", +"p) c #B5B4B5", +"q) c #B4B5B4", +"r) c #C9CACA", +"s) c #C8C9C9", +"t) c #C9C8C9", +"u) c #777877", +"v) c #121311", +"w) c #050405", +"x) c #040403", +"y) c #020201", +"z) c #000000", +"A) c #4F504E", +"B) c #C9C8C8", +"C) c #C7C7C8", +"D) c #C6C7C6", +"E) c #60605F", +"F) c #050404", +"G) c #000001", +"H) c #B3B4B4", +"I) c #C7C6C6", +"J) c #C5C6C6", +"K) c #C6C5C6", +"L) c #B2B3B3", +"M) c #949494", +"N) c #7E7E7E", +"O) c #171718", +"P) c #0D0E0D", +"Q) c #09090A", +"R) c #080909", +"S) c #070607", +"T) c #060504", +"U) c #020303", +"V) c #B3B3B4", +"W) c #666666", +"X) c #9F9F9F", +"Y) c #C4C3C4", +"Z) c #C2C2C3", +"`) c #C0C0BF", +" ! c #BCBBBB", +".! c #909191", +"+! c #141516", +"@! c #121211", +"#! c #0F0E0F", +"$! c #090908", +"%! c #070606", +"&! c #050605", +"*! c #020101", +"=! c #B2B3B2", +"-! c #4D4E4D", +";! c #929292", +">! c #C2C3C2", +",! c #C1C2C2", +"'! c #C2C1C2", +")! c #0B0C0B", +"!! c #030202", +"~! c #000100", +"{! c #B3B2B2", +"]! c #4B4C4B", +"^! c #464745", +"/! c #AFB0AF", +"(! c #ADAEAE", +"_! c #ABAAAA", +":! c #BFBFBE", +"~ c #565756", +",~ c #989998", +"'~ c #A0A1A0", +")~ c #A4A3A4", +"!~ c #B0B1B1", +"~~ c #B1B0B1", +"{~ c #B6B7B7", +"]~ c #787877", +"^~ c #757676", +"/~ c #747474", +"(~ c #8C8D8C", +"_~ c #9D9C9D", +":~ c #A8A8A7", +"<~ c #545353", +"[~ c #989797", +"}~ c #9F9F9E", +"|~ c #A0A1A1", +"1~ c #8C8C8B", +"2~ c #706F70", +"3~ c #B1B1B0", +"4~ c #B4B5B5", +"5~ c #777677", +"6~ c #727172", +"7~ c #6B6C6C", +"8~ c #80807F", +"9~ c #919090", +"0~ c #9E9E9F", +"a~ c #A4A5A4", +"b~ c #A6A7A6", +"c~ c #898888", +"d~ c #6E6E6D", +"e~ c #5F5F60", +"f~ c #797A7A", +"g~ c #7E7F7F", +"h~ c #777777", +"i~ c #616060", +"j~ c #663737", +"k~ c #FF0000", +"l~ c #932626", +"m~ c #4A4141", +"n~ c #626263", +"o~ c #767777", +"p~ c #767675", +"q~ c #717171", +"r~ c #6E6E6F", +"s~ c #6C6D6D", +"t~ c #6A6969", +"u~ c #676767", +"v~ c #656665", +"w~ c #676766", +"x~ c #727373", +"y~ c #5C5C5B", +"z~ c #6A6A6B", +"A~ c #7B7A7B", +"B~ c #626262", +"C~ c #C31515", +"D~ c #EA0707", +"E~ c #6B6A6B", +"F~ c #6C6B6B", +"G~ c #B1B1B2", +"H~ c #777676", +"I~ c #747575", +"J~ c #717271", +"K~ c #6D6E6D", +"L~ c #6B6B6A", +"M~ c #686767", +"N~ c #646363", +"O~ c #5D5D5C", +"P~ c #777776", +"Q~ c #878788", +"R~ c #969596", +"S~ c #9A9898", +"T~ c #9A9A99", +"U~ c #646463", +"V~ c #7B7C7C", +"W~ c #7B7C7B", +"X~ c #707170", +"Y~ c #575756", +"Z~ c #FFFFFF", +"`~ c #696968", +" { c #B0B0B1", +".{ c #ABACAB", +"+{ c #787777", +"@{ c #717170", +"#{ c #696869", +"${ c #666565", +"%{ c #646465", +"&{ c #636363", +"*{ c #605F5F", +"={ c #575758", +"-{ c #8B8A8B", +";{ c #949393", +">{ c #454343", +",{ c #D31010", +"'{ c #FE0100", +"){ c #FB0001", +"!{ c #F80101", +"~{ c #F40201", +"{{ c #F10102", +"]{ c #EE0202", +"^{ c #EB0303", +"/{ c #E70303", +"({ c #E40303", +"_{ c #E10403", +":{ c #DE0404", +"<{ c #932B2B", +"[{ c #666566", +"}{ c #A5A4A4", +"|{ c #969797", +"1{ c #787778", +"2{ c #636364", +"3{ c #606161", +"4{ c #5D5C5C", +"5{ c #585958", +"6{ c #5C5C5D", +"7{ c #868787", +"8{ c #7F807F", +"9{ c #FB0101", +"0{ c #F70101", +"a{ c #F40101", +"b{ c #F10101", +"c{ c #EA0302", +"d{ c #E80303", +"e{ c #E10404", +"f{ c #DD0404", +"g{ c #DA0404", +"h{ c #D70505", +"i{ c #A23A3A", +"j{ c #606160", +"k{ c #616261", +"l{ c #656566", +"m{ c #666767", +"n{ c #ADADAC", +"o{ c #A8A9A8", +"p{ c #9A9999", +"q{ c #6A6A69", +"r{ c #626261", +"s{ c #5F605F", +"t{ c #818081", +"u{ c #868685", +"v{ c #FE0001", +"w{ c #FA0000", +"x{ c #F40202", +"y{ c #F10202", +"z{ c #EA0303", +"A{ c #E10304", +"B{ c #DB0504", +"C{ c #D70405", +"D{ c #D40506", +"E{ c #D00506", +"F{ c #ED0A0A", +"G{ c #A33636", +"H{ c #655C5C", +"I{ c #636362", +"J{ c #7C7B7B", +"K{ c #939292", +"L{ c #8A8B8A", +"M{ c #676768", +"N{ c #848485", +"O{ c #818281", +"P{ c #7F7E7E", +"Q{ c #7B7B7A", +"R{ c #FD0000", +"S{ c #F40102", +"T{ c #F00202", +"U{ c #ED0202", +"V{ c #EB0203", +"W{ c #E40304", +"X{ c #DA0504", +"Y{ c #D10506", +"Z{ c #CD0606", +"`{ c #CA0607", +" ] c #A33535", +".] c #A5A6A6", +"+] c #9F9FA0", +"@] c #8B8C8B", +"#] c #818180", +"$] c #7E7D7E", +"%] c #7C7C7D", +"&] c #787978", +"*] c #636463", +"=] c #FD0001", +"-] c #FA0100", +";] c #E70203", +">] c #E30303", +",] c #D40505", +"'] c #D00605", +")] c #C70707", +"!] c #C40707", +"~] c #A23535", +"{] c #645B5B", +"]] c #616160", +"^] c #626161", +"/] c #7C7D7C", +"(] c #9B9A9A", +"_] c #666667", +":] c #818182", +"<] c #7D7E7D", +"[] c #757475", +"}] c #ED0203", +"|] c #E00404", +"1] c #DA0505", +"2] c #D60505", +"3] c #D40605", +"4] c #D00505", +"5] c #CA0706", +"6] c #C30707", +"7] c #C00707", +"8] c #BD0808", +"9] c #9F3737", +"0] c #5F6060", +"a] c #707171", +"b] c #807F80", +"c] c #8E8E8F", +"d] c #979696", +"e] c #959594", +"f] c #686869", +"g] c #7F8080", +"h] c #7E7E7F", +"i] c #7C7D7D", +"j] c #737374", +"k] c #F60101", +"l] c #F30101", +"m] c #E90302", +"n] c #E10303", +"o] c #DC0404", +"p] c #D90405", +"q] c #D00606", +"r] c #C60607", +"s] c #C00808", +"t] c #B90908", +"u] c #B60809", +"v] c #5F5F5E", +"w] c #747473", +"x] c #838384", +"y] c #908F90", +"z] c #919192", +"A] c #7D7C7D", +"B] c #818282", +"C] c #808081", +"D] c #7F7F80", +"E] c #FA0001", +"F] c #F00102", +"G] c #E60303", +"H] c #DA0405", +"I] c #D30605", +"J] c #C90607", +"K] c #C70706", +"L] c #BF0808", +"M] c #BA0908", +"N] c #B60909", +"O] c #B30909", +"P] c #B00A0A", +"Q] c #5B5A5C", +"R] c #5C5D5D", +"S] c #828181", +"T] c #5A595A", +"U] c #676667", +"V] c #8A8A8A", +"W] c #7A7A7B", +"X] c #F90101", +"Y] c #F30102", +"Z] c #E90203", +"`] c #E30403", +" ^ c #E00403", +".^ c #D90504", +"+^ c #D60405", +"@^ c #D30505", +"#^ c #CF0606", +"$^ c #CC0606", +"%^ c #C00807", +"&^ c #B90909", +"*^ c #B20909", +"=^ c #B0090A", +"-^ c #AC0A0A", +";^ c #9E9E9D", +">^ c #838282", +",^ c #767576", +"'^ c #868585", +")^ c #797A79", +"!^ c #737273", +"~^ c #FC0101", +"{^ c #EF0202", +"]^ c #C90707", +"^^ c #C60707", +"/^ c #C20807", +"(^ c #BC0808", +"_^ c #B90808", +":^ c #B3090A", +"<^ c #B00909", +"[^ c #A90A0A", +"}^ c #7F7E7F", +"|^ c #989897", +"1^ c #9C9D9C", +"2^ c #F90001", +"3^ c #EC0202", +"4^ c #E90303", +"5^ c #DF0404", +"6^ c #D50505", +"7^ c #CF0605", +"8^ c #C90706", +"9^ c #BF0708", +"0^ c #B60908", +"a^ c #AF0909", +"b^ c #A90B0A", +"c^ c #A60B0A", +"d^ c #9C9B9C", +"e^ c #9B9B9A", +"f^ c #F60102", +"g^ c #F20101", +"h^ c #E30304", +"i^ c #DC0504", +"j^ c #D90505", +"k^ c #C90606", +"l^ c #C30708", +"m^ c #B50908", +"n^ c #A90A0B", +"o^ c #A50B0B", +"p^ c #A30B0B", +"q^ c #838483", +"r^ c #8D8D8C", +"s^ c #959696", +"t^ c #959795", +"u^ c #757574", +"v^ c #656666", +"w^ c #7D7E7E", +"x^ c #737372", +"y^ c #D20505", +"z^ c #C20707", +"A^ c #B80808", +"B^ c #A80B0B", +"C^ c #A20B0B", +"D^ c #9F0B0B", +"E^ c #747374", +"F^ c #979796", +"G^ c #939392", +"H^ c #7D7D7E", +"I^ c #777878", +"J^ c #747373", +"K^ c #EC0203", +"L^ c #E50303", +"M^ c #E20404", +"N^ c #CB0606", +"O^ c #C80607", +"P^ c #C50707", +"Q^ c #B50909", +"R^ c #B20A0A", +"S^ c #AF0A09", +"T^ c #A50B0A", +"U^ c #9B0C0C", +"V^ c #7A7B7B", +"W^ c #929393", +"X^ c #7C7C7B", +"Y^ c #EB0302", +"Z^ c #E20403", +"`^ c #D80504", +" / c #CB0706", +"./ c #C80706", +"+/ c #C20708", +"@/ c #BB0808", +"#/ c #B90809", +"$/ c #B2090A", +"%/ c #AB0A0A", +"&/ c #A90B0B", +"*/ c #A50A0A", +"=/ c #A20C0C", +"-/ c #9E0C0C", +";/ c #980D0C", +">/ c #7A7B7A", +",/ c #929293", +"'/ c #898A8A", +")/ c #666665", +"!/ c #E50403", +"~/ c #E20304", +"{/ c #DF0304", +"]/ c #DB0505", +"^/ c #D20605", +"// c #CF0506", +"(/ c #CC0607", +"_/ c #BF0807", +":/ c #BB0908", +"( c #BA0808", +",( c #B70808", +"'( c #A70B0B", +")( c #9D0C0C", +"!( c #970C0C", +"~( c #870F0F", +"{( c #AB4343", +"]( c #BD0708", +"^( c #B00A09", +"/( c #AD0A09", +"(( c #AA0A0B", +"_( c #A00B0B", +":( c #9D0C0B", +"<( c #960C0C", +"[( c #940C0D", +"}( c #900D0D", +"|( c #870E0F", +"1( c #766D6D", +"2( c #AE4141", +"3( c #EF0C0C", +"4( c #C10708", +"5( c #AD0A0A", +"6( c #AA0B0B", +"7( c #A10C0B", +"8( c #930D0D", +"9( c #900D0E", +"0( c #8D0D0E", +"a( c #8A0F0E", +"b( c #B70908", +"c( c #A00B0C", +"d( c #8D0E0E", +"e( c #890E0E", +"f( c #AA0A0A", +"g( c #A70B0A", +"h( c #930C0D", +"i( c #8C0E0E", +"j( c #870E0E", +"k( c #A60B0B", +"l( c #A00C0C", +"m( c #990C0D", +"n( c #900E0D", +"o( c #860F0E", +"p( c #990C0C", +"q( c #8F0D0E", +"r( c #890E0F", +"s( c #860E0F", +"t( c #AF4242", +"u( c #EB0808", +"v( c #776E6E", +"w( c #962929", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . . . ", +" + + + . . . . . . . ", +" + + + + + @ # # $ . . . . . . ", +" + + % + & # * = - ; > , ' . . . . . ", +" + + ) ! ~ { ] ^ / > ' ' ' ( _ : . . . . . . . . ", +" + + ) ) ) ) ) < [ } | 1 2 3 3 4 5 5 6 7 8 8 . . . . . ", +" + # ) ) ) ) ) 9 0 a b c 0 d e f 8 8 7 g 8 h i j k . . . . . . ", +" l # ) ) ) m n 0 o p q r s t u v w x { y z k k A A B C D f . . . . . . . ", +" # # ) ) E F 0 a G H I J K L v M N O P u Q R S T A U U f f f V V W X . . . . . . ", +" Y $ ) ) Z 9 0 ` H r J ...+.+.@.#.$.%.&.*.=.-.;.>.! ,.'.).!.~.{.~.].^.^./.(.. . . . . ", +" _.- ) 9 0 0 H p :.s t ..v M M N P %.&.*.<.[.}.}.|.1.2.3.4.5.6.7.8.9.^.(./.0.a.% b.. . . . . . . . ", +" - ; 9 n a c.H d.e. .u v f.N N P g.h.&.[.i.j.k.k.1.3.l.4.m.n.n.o.&.) p.,.q.r.s.t.u.v.w.x.y.y.z.. . . . . ", +" ; > A.0 a H q B.s ..v C.M D.N g.&.&.<.i.[.E.F.|.G.3.H.I.J.K.L.M.N.O.O.P.Q.R.S.T.U.^ V.y.y.W.z.1 1 V.. . . . . . ", +" X.> 0 a b H Y.s s L f.C.N P Z.h.&.&.`.[.j.k.1. +3.4.J.n.n.L.M..+++@+P.Q.R.#+$+%+&+i.*+=+-+;+>+,+V.'+)+)+)+!+. . . . . . . ", +" > ~+a c.{+B.e.u ]+^+/+(+P %.h._+:+:+[.k.k.<+[+4.4.I.}+n.|+M.1+O.O.2+Q.3+4+5+%+6+7+8+9+0+a+4.N b+c+d+)+e+f+g+^ ^ h+i+j+. . . . . . ", +" , ' c.H r s t u v M N N P k+_+l+[.[.m+k.k.[+3.4.n+I.}+o+M.M.p+q+r+Q.s+#+t+a+u+v+8+9+w+0+x+y+z+A+A+B+C+D+E+F+G+H+U.I+J+K+K+L+M+. . . . . . . ", +" ' ' :.r Y.s L v v N N N+g.&.O+<.[.-.P+k.1.3.4.Q+R+n.o+M.S+T+O.2+Q.Q.#+5+U+a+v+V+W+X+Y+Z+y+`+ @A+B+.@+@@@#@$@..%@&@*@=@-@L+;@>@>@,@'@)@!@. . . . . . ", +" ~@3 r s {@..v /+]@D.^@g.k+`.<.[.}./@k.2.(@l._@I.n.o+:@M.p+O.P.<@#+3+$+$+&+v+8+9+[@0+x+y+`+}@A+B+|@+@@@#@1@2@3@4@5@6@R.7@8@9@>@,@'@'@0@G+a@b@b@c@. . . . . ", +" 3 3 r s ..d@+.@.N D.g.g.`.e@=.;.E.k.2.3.H.f@}+J.g@o.h@i@O.@+j@Q.#+k@$+a+v+V+l@9+0+m@n@y+6@A+o@p@q@r@#@s@t@u@v@w@x@y@z@A@B@C@D@M E@F@G@H@b@I@b@=@J@K@L@. . . . . . ", +" 3 4 .]+M@M N N $.Z.&.N@`.[.O@>.k.1. +3.P@I.n.Q@:@M.N.R@2+P.S@4+T@$+a+U@V@W@X@w+0+y+y+Y@A+Z@|@q@`@#@ #$@.#4@w@w@x@+#@#B@##$#%#&#*#=#-#;#>#,#'#F+L@)#!#~#{#]#^#. /#/# ", +" (#5 ..v ^+M N P Z.g.l+`.<.}.}.k.1.1.3._#_@R+:#<#M.p+O.O.[#Q.s+}#$+a+v+8+8+|#0+Y+1#y+Y@-#2#.@q@@@3#4#$@3@u@5#6#x@+#7#B@C@8#$#9#0#a#b#c#c#d#b#w@.@u ,#q.{#{#e#f#g#/#/# ", +" 5 6 ..v ]@N $.P g.&.`.:+j.>./@|.3.3.Q+I.I.o+o+M.p+++O.[#Q.h#t+$+a+v+8+W@9+w+0+i#y+Y@ @j#B+.@@@k#s@l#3@3@m#n#6#x@7#o#p#$#%#%#*#=#=#q#r#s#t#u#v#w#x#x#y#z#A#B#C#f#/#/# ", +" D#6 M M E#P g.F#&.`.e@}.}.k.G#1.3.4.n+}+g@o+1+M.p+@+r+<@s+H#t+I#J#v+8+|#K#Y+i#y+L# @A+M#q@q@k# # #N#O#4@P#x@Q#R#p#C@S#T#9#*#0#=#U#c#V#d#W#X#v#Y#Z#`# $.$+$@$#$$$/#/# ", +" 5 6 M @.D.P g.%$&$:+;.m+*$1.=$3.4.-$J.o+g@M.N.R@O.P.S@Q.H#$+;$J#V@W+9+w+>$x+y+Y@,$A+B+q@'$)$#@!$3@v@4@w@6#y@+#@#p#$#~${$]$a#=#q#^$/$($t#_$w#x#`#:$y#<$[$}$|$1$$$/#/# ", +" 6 6 (+D.N+g.F#O+:+[.2$*$F.=$2.l.4.I.:#o+o+1+p+R@P.3$Q.#+$+;$J#v+4$5$|#Y+x+y+6$7$A+B+8$@@k##@l#N#3@4@w@9$y@0$a$b$c$d${$*#=#=#b#c#e$t#f$g$w#h$i$j$ $k$+$}$l$m$$$n$/#/# ", +" o$8 p$P g.&.q$<.[.}.k.G#1.3.r$n+R+n.Q@L.M.p+@+O.3$Q.#+H#$+U@v+4$s$9+t$n@u$`+Y@A+v$w$q@r@#@#@2@O#4@w@z#x$+#@#p#C@~$%#*#a#=#b#c#V#V#t#y$w#x#Z#Z# $.$z$[$A$B$C$D$E$/#/# ", +" 8 h P g.%$&.`.[.7@}.G#1.G.4.Q+I.n.n.o+p+p+F$P.<@S@#+a+9+8+v+G$H$I$K#x+J$L# @A+o@|@q@@@)$s@K$3@4@L$M$N$+#7#O$S#c$P$Q$*#a#R$q#c#t#($u#v#h$S$`#`#T$z$+$|$C$C$U$V$E$/#/# ", +" W$i ^@k+*.q$=.}.}.k.G#G.H._#f@X$Y$o+M.p+++2+P.<@#+8+y$[$Q$8$5$9+w+>$Z$y+Y@7$`$ %q@@@)$4#t@3@4@w@w@x@+#+#@#S#c$$#�#0#b#c#c#.%t#t#X#+%@%`# $T$T$[$|$|$#%$%%%] ] /#/# ", +" &%*%F#&.q$=%j.j.k.<+3.r$4._#-%g@|+M.1+O.O.P.<@s+H#u$;%V#@@o#y$K$y+x+>%Y@7$Z@.@q@@@#@#@$@3@v@P#z#N$,%a$o#S###{$&#*#=#'%c#r#V#)%y$!%w#`#`# $~%T$+$l${%C$]%^%/%] (%/#/# ", +" _%:%&.l+i.[.}.|.1.1.r$<%I.n.n.Y$M.S+p+[%[%j@#+H#t+0+}%4@g.|%s @#w#6#q@-#Z@w$q@@@k#s@$@t@O#m#w@6#y@+#@#C@1%T#%#*#2%3%4%s#V#t#g$y$w#+%`#`#5%T$T$|$A$C$;%6%/%7%(%8%/#/# ", +" 9%A *.:+[.}.*$|.1.3.-$-$I.:#Y$1+1+0%[%P.j@s+#+H#9+8$a%Y@4.b%c%d%e%f%V#y@B+|@r@@@#@$@2@w@6#P#x@+#+#7#S#C@$#%#g%=#b#h%c#V#d#t#y$w#w#Z#i%j%T$[$[$|$C$$%6%k%7%l%(%8%/#/# ", +" A A :+[.j.E.F.1.m%4.f@I.Q@L.<#M.T+O.n%o%s+#+$+a+7#p%q%r%D+0+s%t%u%v%w%W#k%]$4@u@$#t#w#f$b#x%$#@#@#C@y%d$z%*#=#2%q#c#r#)%A%y$w#x#B%`#k$5%+$@$|$C$;%6%k%C%D%E%F%G%/#/# ", +" A H%[.;.>.F.1.H.4.-$J.m.I%M.M.p+O.2+P.R.h#k@a+V@X#J%K%L%M%g.N%O%P%Q%R%S%T%U%C$C$;%B+$+A+=# $C$l$t#$#d$T#V%*#=#b#^$s#V#t#y$X#Y#W%`#X%T$Y%Z%|$B$`% &k%7%C%.&+&G%@&/#/# ", +" U U m+/@|.F.H.<%4.I.J.Q@o.M.N.O.n%P.Q.#+#&%+a+V+$&%&&&*&=&-&Q.;&>&,&'&)&!&~&+&p+{&]&^&/&(&_&:&g.=#<&Y%b#]$3%4%c#r#[&)%y$X#w#x#`#i%.$}&z$|${%|&6%k%1&2&3&+&4&5&G@/#/# ", +" U 6&>.<+1.2.<%<%J.n.K.:@M.T+++O.[#Q.#+$+$+a+V@K#p%7&8&5.9&0&$@a&b&c&d&e&f&g&A+M%1$b@h&>@G+J@g#e /#i&3#7%C$w#U#V#)%A%j&_$k&x#W% $l&T$m&l$B$;%;%k%7%7%l%+&<&n&G@o&/#/# ", +" p&D k.1.3.<%4.R+m.n.|+o.S+O.q+q&R.s+H#$+a+r&G$,$s&t&u&v&w&x&@#:&x a&y&z&A&B&I.C&$$$$D&f#f#^#q.=@a@f#E&`.k%7%`%V#F&y$G&Y#B%S$i%T$T$@$|$|$#%;% &7%l%H&+&I&J&K&L&o&/#/# ", +" p&f M&=$3.<%R+X$n.o+M.S+N&n%P.Q.#+#+5+a+u+4$8+q@O&P&Q&R&,.S&+#T&U&. *+V&W&X&Y&Z&`&`&G@G@G@F%F%F% *(%] b%P..*+*;%f$G&w#x#W%`# $z$T$m&|$C$;%U$@*C%l%+&+&n&n&#*o&`&/#/# ", +" f $*(@<%-$I.m.n.o+o.p+R@[%[#P.#+H#$+5+v+v+8+K#3#%*&***Q.=*-*4@@+1.3.8+3@#+&.;*e e e >*c%,*Z&Z&Z&'*'*F@)*0 '*!*7%T$+%@%`# $ $T$[$~*|$;%;%k%{*@*l%+&<&<&]*^*/*8.(*/#/# ", +" V V 3.4.n+-%n.:@|+S+_*O.n%Q.Q.#&$+;$J#7+W@H$:*1%<*[.[*x+h#$+w#y+*$N }*|*E@1*2*3*4*5*6*E+7*8*8*9*C&C&2*J.0*e 4*`.a*b*x#i%<$5%z$Z%|$$%;%;%{*2&D%+&}%4&c*#*/*d*`&y /#/# ", +" V W r$_#J.n.o+o+S+p+O.2+Q.#+h#$+a+%+4$8+W@K#2#;%o+e*-+D+f*g*[*,#h*i*j*k*j*l*/&j*m*n*(&(&(&l*l*l*o*o*&@x+,#p*4*x |$C$W% $.$z$|$q*B$#%;%%%7%l%.&+&<&J&r*s*t*a%y u*/#/# ", +" v*{.-$J.n.o+C+.+p+_*M.P.R.H#T@I#v+v+8+9+9+0+4#<&w*x*x*x*_&y*^&-+z*A*=&=&7.y*B*C*| D*E*E*E*2*2*2*{ E*F*M.]&j*/&z*S@G* $k$H*[$|$I*;%;%1&<*l%.&+&<&]*r*J*t*a%K*u*'*/#/# ", +" W ~.I.n.o+C+M.p+T+L*M*N*O*2$C+#&v+4$8+K#0+m@o@]%`./#P*Q*R*P*Q*Q*R*S*]&R*i*T*i*U*i*=&=&V*=&=&=&W*y*X*Y*w y*7.| E*Z*`*H*+*[$~*C$`%`%k%7%7%.&I& =]*#*.=t*a%+=@=u*#=/#/# ", +" ~.$=R+o+|+M.p+F$2+%=&=*===-=;=>=,=8+[@0+I$y+'=)=U$k.,#R*_&M%M%Q*!=~=1*{=]=^=,#/=(=_=:=<=[=]&]&]&R*}=B+|%|=|=i*9&1=`*C$}$|$A$2=6%k%{*C%3=+&4=5=r*#*t*6=7=`*@='*'*/#/# ", +" ].^.Q@o+h@N.++q+3$8=9=0=a=b=c=d=e=f=g=h=i=j=k=v+l=+&`+U&m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C={&D=E==+M.&.X*[=Q*_&F=$#`*|$m&C$C$;%k%<*2&G=3&H=I=r*#*t*J=a%K=L=M='*N=/#/# ", +" ^.^.o+o.p+F$O.<@<@O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-R&3@[-M%_&X*}-w@`*k%~*q*C$#%k%<*7%G=+&+&5=]*^*|-J=J=`*@=1-2-Z&3-/#/# ", +" 4-(.:@p+p+O.P.j@Q.#+;$5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-E-F-3.s%_&1*}-$@a%7%Z%A$C$;%%%1&7%l%G-}%H-]*I-J*t*a%`*J-K-L-M-3-N-/#/# ", +" (.O-N.R@O.q+S@Q.#+t+%+6+P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';);!;~;{;];^;/;(;_;:;t M%e*w*+#M-<*~*|$C$;%U$k%<*l%G=H=<&]*c*t*d*a%`*@=1-2-M-<;[;c%/#/# ", +" (.).p+O.2+j@R.};}#5+J#v+8+|;1;2;3;4;v+Y@A+5;J#6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;! b#L-;%|$m&x;C$]%1&7%l%3&+&<&]*c*a*t*a%`*`*y;L-z;A;<;B;C;/#/# ", +" O-D;O.n%[#P.#+$+%+&+v+v+W@X+0+x+y+y+ @A+o@|@q@@@3#$@E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>%%a%I*}$Z%B$;%;%k%7%l%G-+& =I=G*s*t*J=+>`*@=L-M-M-<;@>C;e /#/# ", +" % #>[%P.Q.#+#&;$u+v+8+9+9+$>x+i#Y@Y@ @ %p@q@%>&>l#2@.#4@*>=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4> $Z%B$C$U$%%<*l%l%I&<&5>G*6>t*7>`*8>9>L-2-0>a>@>b>e c>/#/# ", +" % b.P.o%h#H#$+a+6+G$W@9+$>x+x+`+Y@6@o@w$'$r@#@l#K$O#O#4@d>x@e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>A>B>C>x#|&/%k%D%3&E%<&]*]*/*t*6=7=J-@=L-2-M-<;@>D>E>F>F@/#/# ", +" u.u.S@#+#&$+a+6+G$W@|#w+x+y+>%Y@7$j#w$q@@@@@#@$@3@v@m#w@x@z@G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,l%+&H=n&]*#*t*t*a%`**,y;2-M-<;=,-,;,>,,,,,/#/# ", +" u.w.s+t+;$a+a+7+8+9+0+>$x+'=Y@,$B+B+q@@@@@#@',N#O#),M$x@+#@#!,C@$#~,x%{,],^,/,(,_,:,<,[,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,<&<&r*#*/*t*K*+>@=1-L-e,<;f,D>g,>,>,,,h,/#/# ", +" i,j,#&$+U+6+v+W+s$X+$>x+'=6$}@o@p@q@'$k#4#$@k,3@5#M$x@z@+#@#C@S#~$%#*#]$3%b#c#V#l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,t*a%`*`*K-L-M-<;a>J,;,>,K,L,M,N,/#/# ", +" j,9.H#a+u+v+8+l@9+0+n@Z$L# @O,B+.@'$%>#@$@N#I>4@),d>N$a$A@P,##$#V%*#0#2%b#Q,V#V#t#y$X#Y#S$v#5%T$T$T$R,S,T,U,V,W,X,Y,Z,`, '.'+'@'#'$'`*y;L-M-M-<;%'&'>,*'='-'C&;'/#/# ", +" >','a+&+v+8+l@K#$>x+y+Y@Y@j#v$.@@@@@''$@K$3@L$L$M$,%)'@#C@$#$#9#*#!'2%4%c#V#V#t#y$w#Y#x#`# $.$T$[$|$C$y#~'{']'^'/'('_':'<'['}'|'1'2'3'3&0><;4'D>;,g,5'='L,6';'7'/#/# ", +" 8'y.a+7+9'8+9+>$Z+J$`+Y@A+B+B+0'@@)$l#k,3@4@w@M$x@+#@#p#C@$#%#*#a'2%b#c#V#.%t#y$v#h$x#W%y#<$}&l$|$q*2=;%]%7%b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'a>4';,g,q'r'-'s't'T T /#/# ", +" y.u'E@D+v'$+0+x+y+6$`+A+v$|@+@@@#@$@t@3@4@w@x@x@,%7#p#C@$#%#z%a#2%b#w's#V#W#y$x'k&y'`#y#.$T$+$|$z'I*6%%%7%3=l%}$A'B'C'D't*a%+&E'F'G'H'I'J'J,b>E>K,K,-'-'6'K'L'8*/#/# ", +" M'1 1 1 '@N'8*O'=$Y@A+A+B++@r@k#l#$@N#4@4@M$x$z@+#C@p#1%%#*#]$'%b#w'P'V#)%W#w#+%x#`# $l&T$[$l$q*C$;%%%Q'7%l%+& =<&R'S'T'a%a%U'@=H-V'W'X'Y';,E>>,r'Z's'`' ).)+)E+/#/# ", +" 1 V.V.'+)+)+@)f+f+i*S.-%#+Y@$@k,t@u@m#w@x@+#+#@#1%y%8#z%#)=#3%q#c#V#t#W#y$h$k&i$:$ $T$[$l$|$C$;%^%7%7%C%+&+&<&G*I-a*/*+>`*@=L-L-L-a%$)%);,q'r'&)*)6'=)-).)9@E+/#/# ", +" d+@)e+f+;)^ ^ i+U.y /#>)< p+4@w@x@+#G>@#C@$#~$%#*#=#,)w'e$V#V#j&y$w#x#x#j$ $T$+*~*|$C$;%^%<*7%l%+&4=<&]*^*6>t*a%`*')y;))p'!)@>@>;,~){)&)])`'^)/).)()_)4*/#/# ", +" &.^ i+U.H+K+:)<)b@D$[)1*! +#@#C@c$T#9#*#=#'%b#r#V#.%u#y$w#k&B%i% $T$H*~*|$C$I*6%7%7%3&.&+&<&J&c*a*6=7>+=@=@=})M-|)1)2)2)3)r'4)-'^)5).)6)7)8)_)4*/#/# ", +" *.P N $.P ^@K+9)<)L+L+>@>@0)'@'@,,a)j.v+1@a#=#b#c#V#b)A%y$w#@%x#j$y#T$T$[$|${%I*]%<*{*7%.&+&<&]*G*J*6>c)7=@=L-1-M-d)<;@>;,E>*'r'-'e)5)/).)6)f)g)4*h)/#/# ", +" `.i)i)P P g.F#&.&$`.:+[.7@>@j)'@)@k)a@l)b@g#=&|%F==%9#V#A%y$w#Y#i$i% $<$T$[$l$C$#%;%k%7%2&E%+&4=I=c*s*t*a%K=J-@=m)))e,a>@>;,g,>,r'*)6'K'K'n)()8)8)o)p)q)/#/# ", +" j.i.k+N+g.g.g.g.&.l+q$`.[.}.}.M&F.3.3.4.G+b@b@r)=@s)t)q.(%y { u)Y@w#B%`# $<$z$[$|$C$C$ &k%7%7%E%+&<&5=]*J*v)J=a%`*@=9>M-M-<;@>b>q'K,&)Z'6'6'w).)x)8)g)y)z)q)3*/#/# ", +" A)-.`._+*.O+f*`.f*`.e@[.[.-.}.}.F.1.3.<%4.I.-%o+L.h@=@B)L@L@C)q.{#D)^#C#s%E)K#4@_$|$z'$%;%k%k%D%l%+& =I=]*c*t*J=a%@=J-1-M-M-<;@>;,;,{)r'&)e)`'K'F)x)()y)o)G)z)H)o*/#/# ", +" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.I)J)K)f#$$$$$$L)M)N)) 3@%%Q'O)E%+&}%n&^*^*t*6=a%`**,M=P)M-!)f,%'Q)>,R)-'S)6'T)F)7)U)8)o)G)z)z)V)V)/#/# ", +" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%W)/#/#/#/#/#X)Q*x*N'D&Y)D$E$E$Z)`) !C&.!}.@*+!5=]*I-t*@!a%K=8>#!z;M-0>@>%'q'$!K,Z'])%!&!.)n)f)8)*!z)z)z)z)V)=!/#/# ", +" o+I.4.m%[+ +=$G#|.-!|.k.M&|.F.k.<+-!(@G.H.4._#_#I.n.:#o+C+.+++2+P.;!/#/#/#/#/#B#R*i*y*D*{ E$>!(%,!'!F%5&G@G@`)j*F=S@w@`#7>`*K=@=L-z;<;)!-,%)Q)r'r'-'6'=)w).)()!!g)~!z)z)z)z){!L)/#/# ", +" p+M.:#I.n+4.4.]!H.3. +G.1. +2.=$G.3.(@3.r$4.4.I.I.m.n.o+o.M.^!++2+P.P.1*/#/#/#/#/#M%R*^&A*2*/!l*3*l*/&(!_!@&G@o&`&:!>,>,f!S)%!K'/).)()g!8)h!z)z)z)z)z)z)l*(&/#/# ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#i!j!k!l!E*j*m!3*V)(&{ | =&x*[=n!/#/#/#o!Z&Z&Z&c%c%e F>p!,,q!p$3@@%M-K'.)n)f)8)*!z)z)z)z)z)z)z)l*(&/#/# ", +" P./=r!s!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=t!9&u!7.2*v!w!(&j*x!y!z!x*Q*!=/#/#/#/#/#/#A!P.[!c>e ,,M,B!C&;'T.C!D!g. $8)E!E!z)z)z)z)z)z)z)(&(&/#/# ", +" P.G%[;o*k!F!A!s!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`.A!/#/#/#M%G!x*=&7.E*2*{ H!| y*^&I!J!K!/#/#/#/#/#/#1*P.P.P.P.P.B!;'9*8*8*9@E+q)=!8!|!v+6'z)z)z)z)z)z)(&/&/#/# ", +" P.c%E+E+E++)4*L!u!B#M!w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.M!/#!=_&R*i*V*E&7.| 7.N!-+x*O!B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.P!+)E+6*4*4*h)3*o*Q!Q*p.x+b##*z)/&/&/#/#P. ", +" P.R!p)3*R*/&S!T!U!w!j*V!W!j!X!Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+M)Y!Z!`!x*i*T* ~-+^&x*R*_&X)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P..~.~o*L){!l*+~@~#~b%/&/&/#/#P.P.P.P.P. ", +" P.B!Q!o*%@!*$~;*%~T*j*{ &~*~=~| E*-~;~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.>~-*} ,~'~R*)~9&]&`!j!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o*l*(&+~!~~~/&/&/&/#P.P.P.P.P.P.P.P.P.P.P. ", +" P.{~l*(&!*}-]~0*^~/~s![-(~_~=&E&=&=&=&y*:~E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$<~s !*. a)C![~}~|~|~/#/#e*1*/#e*1~. 2~K.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.3~/&/&/&P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O. ", +" P.4~/&/&}-*+5~F=F=s!6~5.V&S.7~-*8~9~0~9&R*R*a~b~X)c~d~s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r e~}*i&V&/~f~g~N):&[*D+h~W)i~) P+J.P.P.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~k~k~k~k~k~k~k~k~k~k~k~k~k~k~k~l~m~P.P.P.P.P.P.P.$+0 n~ ", +" P.Q!L!L!*+o~p~/~/~}=q~2~r~s~p.t~w u~v~w~x~S&M)}~Y!}~i!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M y~! W)z~5.^~A~[-h~-*S.)*B~0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~C~k~k~k~k~k~k~k~k~k~k~k~k~k~k~k~D~l~m~P.P.P.O.P...i&E~F~ ", +" P.G~2*H!H~^~I~s!s!J~5.r~K~p.L~.*M~W)}*N~g*! m O~Q P~Q~R~F!S~T~F!|%. S.U~v I.a+$+#+Q.P.P.P.P.P.P.P.p.q~P~V~W~0*X~p.W)1=a Y~*.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~C~k~k~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~k~D~l~m~P.M.g.W).*u~`~i& ", +" P. {.{| !@+{s!-*-*@{V&d~S.< i&#{w~${%{&{1=*{9 a H I ={M :.#{. -{E@;{;{M!>)}-q~Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.>{,{k~k~Z~Z~k~'{){!{~{{{]{^{/{({_{:{Z~Z~k~k~<{`.! W)N%Y&[{u~w ", +" P.j*7.N!A*A*}{|{U&1{w*S.p.< .*w W)Y&2{B~3{) A.4{H 5{M@M P g.`.}.7@6{1!D+|%C!A!7{8{}-s!&{[.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.>{,{k~k~Z~Z~k~'{9{0{a{b{]{c{d{({e{f{g{h{Z~Z~k~k~i{j{k{B~2{}*l{m{ ", +" P.n{o{l!e*}{=&T.V*V*x*p{;*h~q{u~W)}*&{r{! ) 0 y~r .v ]@N+&.`.-.1.3.4.n.<#}.s{6~t{u{>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~C~k~k~Z~Z~k~v{w{!{x{y{]{z{/{({A{f{B{C{D{E{Z~Z~k~F{G{H{1=I{&{N%${ ", +" P.0!-+-+%@!*J{!@K{!=x*x*c+`!Q*e*L{*+M{1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+N{S&O{:&P{=*Q{]~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~C~k~k~Z~Z~k~R{w{0{S{T{U{V{/{W{e{f{X{h{D{Y{Z{`{Z~Z~k~F{ ]H{1=1=n~N~ ", +" P.7.i*.]!*}-]~0*^~/~-*. x&,.X)_&'~+]n!e*@]}-M{c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)#]D+$]%]. f~*+&]h~-**]g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.j~C~k~k~Z~Z~k~=]-]0{a{y{U{c{;]>]_{f{X{C{,]']Z{`{)]!]Z~Z~k~F{~]{]! ]]^] ", +" P.=&]&]&}-*+5~F=F=s!6~5.V&S.7~5./]@]/=/#X*(]e*s%1~!*_]v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&:]:&;~<]V~Q{p=*+P~0*[]s!/~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.>{,{k~k~Z~Z~k~R{w{0{a{y{}]c{/{W{|]f{1]2]3]4]Z{5])]6]7]8]Z~Z~k~k~9]) e~0] ", +" P.b~Q*Q**+o~p~/~/~}=q~2~r~s~p.t~w u~v~w~a]b]c]%~/=d]6.e]A!b%f]M [+4.Q@C+p+2+P.P.P.P.a)[*g]h]i]b%!*}-*+P~F=j]-*-*-*s!/~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.C~k~k~Z~Z~k~R{w{k]l]y{U{m]/{W{n]o]p]h{D{q]Z{5]r]6]s]8]t]u]Z~Z~k~k~0 n v] ", +" P.c+_&_&H~^~I~s!s!J~5.r~K~p.L~.*M~W)}*N~g*! m O~${w]x]y]z].!&@M!|%A].*N 0%P.P.P.P.P.B]C]D]h][-. !*}-+{-&F=s!-*-*-*-*-*-*-*s!/~F=-*.*0 P }.I.O.Q.Q.Q.P.k~k~Z~Z~k~R{E]k]~{F]U{c{G]({|]f{H]h{I]q]Z{J]K]6]L]8]M]N]O]P]Z~k~k~Q]6{R] ", +" P.R*i!X)S]H~s!-*-*@{V&d~S.< i&#{w~${%{&{1=*{9 a H I ={M T]U]+{!@C!A!|%V]x&N)< ..n.P.O{:&D+N)b%W]f~&]h~0*/~s!-*-*-*-*-*-*-*-*-*-*-*s!/~F=5.u~9 ..&.I.P.k~k~Z~k~=]X]k]Y]T{U{Z]G]`] ^o].^+^@^#^$^5]r]6]%^8]&^N]*^=^-^Z~k~k~Y.r H ", +" P.[=!=;^!=!=T~M!>^,^w*S.p.< .*w W)Y&2{B~3{) A.4{H 5{M@M P g.`.}.}.{+< [ ~ 7{'^O'S&[-#]D]N)[-%@!*)^D!0*F=/~!^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!/~/~V&u~1=k~k~Z~~^E]k]l]{^U{m]G]>]|]o].^2]I]#^$^]^^^/^%^(^_^N]:^<^-^[^Z~k~k~.. .s ", +" P.}^;{|^T~1^_~X*X*X*(],#S&F=q{u~W)}*&{r{! ) 0 y~r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%B]:&D+N)%]. !**+h~0*F=s!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!s!k~k~Z~2^k]Y]T{3^4^G]>]5^o]H]6^I]7^$^8^^^6]9^8]_^0^:^a^-^b^c^Z~k~k~M Y~]+ ", +" P.8+v+1.W)D+A!,#/=1*d^e^e*s%s%,#O'F=M{1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+;~[-. !*v&*+o~F=/~s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*k~k~Z~f^g^T{U{Z]G]h^5^i^j^2]@^#^Z{k^^^l^L](^_^m^*^a^-^n^o^p^Z~k~k~O N M ", +" P.#+8+9+#+_+w b%q^r^=+e*s%%~|{s^t^;!!@u^v^c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.D+w^%]. !*v&+{0*F=/~x^-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*k~k~Z~Y]{^3^4^G]h^5^i^.^2]y^#^$^k^^^z^L](^A^m^*^a^-^B^o^C^D^Z~k~k~g.<~P ", +" Q.a+ v+p+M W)E^$]|%=+:=F^,.G^G^;!,#~ ,^%{v h.`.[.k. +4.J.o+p+P.P.P.P.P.H^i]V~A~p=I^h~,^/~J^}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*k~k~Z~{^K^4^L^M^5^o]j^6^I]#^N^O^P^6]L](^A^Q^R^S^-^[^T^C^D^U^Z~k~k~:+f*&. ", +" 8+#+R+N 1=7~V^|%=+,.W^&@M!a&a&^=~ H~[{N [+4.Q@C+p+2+P.P.P.P.[-X^. f~}-h~0*F=/~x~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*q~w*k~k~Z~Y^d{L^Z^5^o]`^6^y^#^ /./P^+/9^@/#/Q^$/a^%/&/*/=/-/U^;/Z~k~k~}.[.<. ", +" $+P.4.g.H u~>/1~,/,#a&1~V]'/;*x&|!*+)/Z.0%P.P.P.P.P.b%. !*}-*+h~0*F=s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*V&*+k~k~Z~4^!/~/{/]/.^6^^///(/k^P^+/_/:/t]Q^*^(,(J/b/L/[/'(e/f/)($(!(M/Y/C/*(~(Z~Z~k~k~k~ ", +" P.#+a+a+P.k.s &{u~p.q~/~s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*{(k~k~Z~Z~ /K]!]@(](M]U/J/^(/((('(e/_(:($(<([(}(C/*(|(Z~Z~k~k~k~ ", +" Q. $+M.}...) W)S.s!/~s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*1(2(3(k~Z~Z~!]4(8]>(U/J/=^5(6('(e/7(:($(!(8(9(0(a(|(Z~Z~k~k~k~ ", +" Q.o+}.M 0 Y&V&F=/~s!-*-*-*-*-*-*-*-*-*-*-*-*-*1(2(3(k~Z~Z~8]>(b(O]w//(6('(p^c()($(X/8(9(d(e(`/Z~Z~k~k~k~ ", +" #+P.n.k.&.H u~q~0*/~s!-*-*-*-*-*-*-*-*-*-*1(2(3(k~Z~Z~b(O]^(5(f(g(e/_(:($(!(h(9(i(e(j(Z~Z~k~k~k~ ", +" Q.O.n.3.`.a .*s!F=/~s!-*-*-*-*-*-*-*-*{(k~k~Z~Z~P]5(f(k(p^l()(m(X/M/n(&(*(o(Z~Z~k~k~k~ ", +" P.O.M.n.`.9 p./~/~s!-*-*-*-*-*-*{(k~k~Z~Z~((k(p^c()(p(X/8(q(d(r(s(Z~Z~k~k~k~ ", +" P.P.O.O.M.&.1=w*/~s!s!-*-*1(2(3(k~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~Z~k~k~k~ ", +" P.P.P.P.p+P N%5.s!s!1(t(u(k~k~k~k~k~k~k~k~k~k~k~k~k~k~k~k~ ", +" P.Q.#+#+n...u~v(w(k~k~k~k~k~k~k~k~k~k~k~k~k~k~k~ ", +" P.#+$+Q.P. ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index de44d60a8..aac0f3a13 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -42,7 +42,7 @@ class ShipWorkbench ( Workbench ): msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") App.Console.PrintWarning(msg) else: - list = ["Ship_CreateSim", "Ship_RunSim"] + list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] self.appendToolbar("Simulation",list) # Menu @@ -55,7 +55,7 @@ class ShipWorkbench ( Workbench ): except ImportError: pass else: - list = ["Ship_CreateSim", "Ship_RunSim"] + list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] self.appendToolbar("Simulation",list) Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 158be05a7..6aa83570c 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -44,6 +44,8 @@ nobase_data_DATA = \ Icons/SimCreateIco.xpm \ Icons/SimRunIco.png \ Icons/SimRunIco.xpm \ + Icons/SimStopIco.png \ + Icons/SimStopIco.xpm \ Icons/Tank.png \ Icons/Tank.xcf \ Icons/Tank.xpm \ diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index a764a2b24..821bb01ac 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -144,6 +144,18 @@ class RunSim: ToolTip = str(Translator.translate('Run a simulation')) return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} +class StopSim: + def Activated(self): + import simRun + simRun.stop() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimStopIco.png" + MenuText = str(Translator.translate('Stop active simulation')) + ToolTip = str(Translator.translate('Stop active simulation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) FreeCADGui.addCommand('Ship_CreateShip', CreateShip()) FreeCADGui.addCommand('Ship_OutlineDraw', OutlineDraw()) @@ -154,3 +166,4 @@ FreeCADGui.addCommand('Ship_CreateTank', CreateTank()) FreeCADGui.addCommand('Ship_GZ', GZ()) FreeCADGui.addCommand('Ship_CreateSim', CreateSim()) FreeCADGui.addCommand('Ship_RunSim', RunSim()) +FreeCADGui.addCommand('Ship_StopSim', StopSim()) diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 1910f79f9..bb616dfdb 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -35,7 +35,18 @@ from FreeCAD import Part, Base, Vector # Ship design module from shipUtils import Paths, Translator, Math +class Singleton(type): + def __init__(cls, name, bases, dct): + cls.__instance = None + type.__init__(cls, name, bases, dct) + + def __call__(cls, *args, **kw): + if cls.__instance is None: + cls.__instance = type.__call__(cls, *args,**kw) + return cls.__instance + class FreeCADShipSimulation(threading.Thread): + __metaclass__ = Singleton def __init__ (self, device, endTime, output, FSmesh, waves): """ Thread constructor. @param device Device to use. @@ -45,6 +56,8 @@ class FreeCADShipSimulation(threading.Thread): @param waves Waves parameters (A,T,phi,heading) """ threading.Thread.__init__(self) + # Setup as stopped + self.active = False # Build OpenCL context and command queue self.device = device self.context = cl.Context(devices=[self.device]) @@ -58,8 +71,25 @@ class FreeCADShipSimulation(threading.Thread): def run(self): """ Runs the simulation. """ + self.active = True # Perform work here - print("Im thread, Im running...") - time.sleep(2) - # ... - print("Im thread, I end!") + while self.active: + print("Im thread, Im running...") + time.sleep(1) + # ... + print("Im thread, step done!") + # Set thread as stopped (and prepare it to restarting) + self.active = False + threading.Event().set() + threading.Thread.__init__(self) + + def stop(self): + """ Call to stop execution. + """ + self.active = False + + def isRunning(self): + """ Report thread state + @return True if thread is running, False otherwise. + """ + return self.active diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index 0a8762617..2e41ff15a 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -33,6 +33,8 @@ import SimInstance from shipUtils import Paths, Translator from Simulation import FreeCADShipSimulation as Sim +import time + class TaskPanel: def __init__(self): self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" @@ -184,3 +186,18 @@ def createTask(): Gui.Control.closeDialog(panel) return None return panel + +def stopSimulation(): + try: + simulator = Sim() + if not simulator.isRunning(): + msg = Translator.translate("Simulation already stopped\n") + App.Console.PrintWarning(msg) + return + except: + msg = Translator.translate("Any active simulation to stop!\n") + App.Console.PrintError(msg) + return + simulator.stop() + msg = Translator.translate("Simulation will stop at the end of actual iteration\n") + App.Console.PrintMessage(msg) diff --git a/src/Mod/Ship/simRun/__init__.py b/src/Mod/Ship/simRun/__init__.py index cbfb57d75..64c597c02 100644 --- a/src/Mod/Ship/simRun/__init__.py +++ b/src/Mod/Ship/simRun/__init__.py @@ -34,3 +34,7 @@ import TaskPanel def load(): """ Loads the tool """ TaskPanel.createTask() + +def stop(): + """ Stops the simulation """ + TaskPanel.stopSimulation() From 1f429e80eb240c6009d7db2ded923b915e7b7432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Sun, 8 Jul 2012 14:30:00 +0200 Subject: [PATCH 15/98] Fixed weights and simulation tools menus --- src/Mod/Ship/InitGui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index aac0f3a13..925c5e12c 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -49,13 +49,13 @@ class ShipWorkbench ( Workbench ): list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] self.appendMenu("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Weights",list) + self.appendMenu("Weights",list) try: import pyopencl except ImportError: pass else: list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] - self.appendToolbar("Simulation",list) + self.appendMenu("Simulation",list) Gui.addWorkbench(ShipWorkbench()) From 909a8d064998ddd8d42b5664883b2429371bce42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Sun, 8 Jul 2012 16:04:16 +0200 Subject: [PATCH 16/98] Imported numpy, and added as dependency --- src/Mod/Ship/InitGui.py | 18 ++++++++++++------ src/Mod/Ship/simRun/Simulation.py | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index 925c5e12c..7152e0342 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -36,12 +36,22 @@ class ShipWorkbench ( Workbench ): self.appendToolbar("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendToolbar("Weights",list) + # Simulation stuff only if pyOpenCL & numpy are present + hasOpenCL = True + hasNumpy = True try: import pyopencl except ImportError: + hasOpenCL = False msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") App.Console.PrintWarning(msg) - else: + try: + import numpy + except ImportError: + hasNumpy = False + msg = Translator.translate("numpy not installed, ship simulations disabled\n") + App.Console.PrintWarning(msg) + if hasOpenCL and hasNumpy: list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] self.appendToolbar("Simulation",list) @@ -50,11 +60,7 @@ class ShipWorkbench ( Workbench ): self.appendMenu("Ship design",list) list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] self.appendMenu("Weights",list) - try: - import pyopencl - except ImportError: - pass - else: + if hasOpenCL and hasNumpy: list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] self.appendMenu("Simulation",list) diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index bb616dfdb..0767342cb 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -27,6 +27,7 @@ import threading # pyOpenCL import pyopencl as cl +import numpy as np # FreeCAD import FreeCAD,FreeCADGui From c1e355c2cdf97e10c101fe81d6e3a3f3a24b5302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Mon, 16 Jul 2012 14:57:26 +0200 Subject: [PATCH 17/98] Fixed KB & Cf hydrostatics computation bug --- src/Mod/Ship/shipHydrostatics/Tools.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index 58fbb3d15..012996144 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -279,9 +279,9 @@ def FloatingArea(ship, draft, trim): # Valid face, compute area area = area + f.Area maxX = max(maxX, faceBounds.XMax) - minX = max(minX, faceBounds.XMin) + minX = min(minX, faceBounds.XMin) maxY = max(maxY, faceBounds.YMax) - minY = max(minY, faceBounds.YMin) + minY = min(minY, faceBounds.YMin) # Destroy last object generated App.ActiveDocument.removeObject(App.ActiveDocument.Objects[-1].Name) dx = maxX - minX @@ -416,7 +416,7 @@ class Point: self.wet = wet self.farea = farea[0] self.mom = mom - self.KBt = dispData[1].y + self.KBt = dispData[1].z self.BMt = bm self.Cb = dispData[2] self.Cf = farea[1] From a10ee753e2babc4e406ea682754afdbd5a7b7bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20pita?= Date: Mon, 16 Jul 2012 15:35:12 +0200 Subject: [PATCH 18/98] Fixed drafts list onto hydrostatics computation --- src/Mod/Ship/shipHydrostatics/TaskPanel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.py b/src/Mod/Ship/shipHydrostatics/TaskPanel.py index 4ff23dc45..54b5c7623 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.py +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.py @@ -44,7 +44,7 @@ class TaskPanel: self.save() draft = self.form.minDraft.value() drafts = [draft] - dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/self.form.nDraft.value() + dDraft = (self.form.maxDraft.value() - self.form.minDraft.value())/(self.form.nDraft.value()-1) for i in range(1,self.form.nDraft.value()): draft = draft + dDraft drafts.append(draft) From ec5fb278b0e86e88908c68515dc66848168b575b Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Wed, 25 Jul 2012 19:12:19 +0200 Subject: [PATCH 19/98] Fixed BM hydrostatic computation (wrong CoG coordinates) --- src/Mod/Ship/shipHydrostatics/Tools.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index 012996144..d329fc07c 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -306,13 +306,13 @@ def BMT(ship, draft, trim=0.0): B1 = displacement(ship,draft,roll,trim,0.0)[1] # * M # / \ - # / \ BM ==|> BM = (BB/2) / tan(alpha/2) + # / \ BM ==|> BM = (BB/2) / sin(alpha/2) # / \ # *-------* # BB - BB = [B1.x - B0.x, B1.y - B0.y] + BB = [B1.y - B0.y, B1.z - B0.z] BB = math.sqrt(BB[0]*BB[0] + BB[1]*BB[1]) - BM = BM + 0.5*BB/math.tan(math.radians(0.5*roll)) / nRoll # nRoll is the weight function + BM = BM + 0.5*BB/math.sin(math.radians(0.5*roll)) / nRoll # nRoll is the weight function return BM def mainFrameCoeff(ship, draft): From 91a9ea7fa69fd14ac0025997ddef35c951492ac2 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Wed, 25 Jul 2012 19:13:52 +0200 Subject: [PATCH 20/98] Fixed 0.0 division when only 1 Hydrostatic point is requested. Now 2 points must be selected at least --- src/Mod/Ship/Icons/SimCreateIco.xcf | Bin 0 -> 51656 bytes src/Mod/Ship/shipHydrostatics/TaskPanel.ui | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/Mod/Ship/Icons/SimCreateIco.xcf diff --git a/src/Mod/Ship/Icons/SimCreateIco.xcf b/src/Mod/Ship/Icons/SimCreateIco.xcf new file mode 100644 index 0000000000000000000000000000000000000000..6dcf3fdd0ba1fa700091f4774f887b087a237bdc GIT binary patch literal 51656 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 HzwEyOS-3zg literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui index 3c3d88a58..23367df69 100644 --- a/src/Mod/Ship/shipHydrostatics/TaskPanel.ui +++ b/src/Mod/Ship/shipHydrostatics/TaskPanel.ui @@ -190,7 +190,7 @@ - 1 + 2 9999 From 7a05d3026907c3728e605c7b4b7c4774564775b9 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Wed, 25 Jul 2012 19:28:13 +0200 Subject: [PATCH 21/98] Fixed intialization error message. --- src/Mod/Ship/InitGui.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index 7152e0342..77298ad84 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -31,6 +31,7 @@ class ShipWorkbench ( Workbench ): ToolTip = str(Translator.translate("Ship design")) def Initialize(self): + from shipUtils import Translator # ToolBar list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] self.appendToolbar("Ship design",list) From 94c8489d0f84d978081d29ea934296979dc0221c Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Fri, 27 Jul 2012 10:27:21 +0200 Subject: [PATCH 22/98] Fixed Part module import error --- src/Mod/Ship/Instance.py | 3 ++- src/Mod/Ship/SimInstance.py | 3 ++- src/Mod/Ship/TankInstance.py | 3 ++- src/Mod/Ship/shipAreasCurve/Plot.py | 3 +-- src/Mod/Ship/shipAreasCurve/Preview.py | 2 +- src/Mod/Ship/shipCreateShip/Preview.py | 2 +- src/Mod/Ship/shipHydrostatics/Plot.py | 3 ++- src/Mod/Ship/shipHydrostatics/Tools.py | 3 ++- src/Mod/Ship/shipOutlineDraw/Plot.py | 3 ++- src/Mod/Ship/shipOutlineDraw/Preview.py | 3 ++- src/Mod/Ship/simRun/Simulation.py | 3 ++- src/Mod/Ship/tankCreateTank/TaskPanel.py | 1 + src/Mod/Ship/tankGZ/Plot.py | 4 ++-- src/Mod/Ship/tankWeights/Preview.py | 2 +- 14 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Mod/Ship/Instance.py b/src/Mod/Ship/Instance.py index ca601ddaa..40fd10992 100644 --- a/src/Mod/Ship/Instance.py +++ b/src/Mod/Ship/Instance.py @@ -30,7 +30,8 @@ from pivy import coin # FreeCAD import FreeCAD,FreeCADGui -from FreeCAD import Part, Base, Vector +from FreeCAD import Base, Vector +import Part # Ship design module from shipUtils import Paths, Translator, Math diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py index 193c54823..3d047e3a1 100644 --- a/src/Mod/Ship/SimInstance.py +++ b/src/Mod/Ship/SimInstance.py @@ -31,7 +31,8 @@ from pivy import coin # FreeCAD import FreeCAD,FreeCADGui -from FreeCAD import Part, Base, Vector +from FreeCAD import Base, Vector +import Part # Ship design module from shipUtils import Paths, Translator, Math diff --git a/src/Mod/Ship/TankInstance.py b/src/Mod/Ship/TankInstance.py index e35b7f520..48a126971 100644 --- a/src/Mod/Ship/TankInstance.py +++ b/src/Mod/Ship/TankInstance.py @@ -29,7 +29,8 @@ from pivy import coin # FreeCAD import FreeCAD,FreeCADGui -from FreeCAD import Part, Base, Vector +from FreeCAD import Base, Vector +import Part # Ship design module from shipUtils import Paths, Translator, Math diff --git a/src/Mod/Ship/shipAreasCurve/Plot.py b/src/Mod/Ship/shipAreasCurve/Plot.py index 6e0fdb536..61b1f3a20 100644 --- a/src/Mod/Ship/shipAreasCurve/Plot.py +++ b/src/Mod/Ship/shipAreasCurve/Plot.py @@ -24,8 +24,7 @@ import os # FreeCAD modules import FreeCAD,FreeCADGui -from FreeCAD import Part, Base -from FreeCAD import Image, ImageGui +from FreeCAD import Base, Image, ImageGui # FreeCADShip modules from shipUtils import Paths, Translator diff --git a/src/Mod/Ship/shipAreasCurve/Preview.py b/src/Mod/Ship/shipAreasCurve/Preview.py index 8f2d7eba1..6af80580d 100644 --- a/src/Mod/Ship/shipAreasCurve/Preview.py +++ b/src/Mod/Ship/shipAreasCurve/Preview.py @@ -24,7 +24,7 @@ # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base -from FreeCAD import Part +import Part # FreeCADShip modules from shipUtils import Paths, Translator diff --git a/src/Mod/Ship/shipCreateShip/Preview.py b/src/Mod/Ship/shipCreateShip/Preview.py index b4d9e39b9..72f601432 100644 --- a/src/Mod/Ship/shipCreateShip/Preview.py +++ b/src/Mod/Ship/shipCreateShip/Preview.py @@ -24,7 +24,7 @@ # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base -from FreeCAD import Part +import Part # FreeCADShip modules from shipUtils import Paths, Translator diff --git a/src/Mod/Ship/shipHydrostatics/Plot.py b/src/Mod/Ship/shipHydrostatics/Plot.py index d953b5ddf..011b45c74 100644 --- a/src/Mod/Ship/shipHydrostatics/Plot.py +++ b/src/Mod/Ship/shipHydrostatics/Plot.py @@ -25,8 +25,9 @@ import os import math # FreeCAD modules import FreeCAD,FreeCADGui -from FreeCAD import Part, Base, Vector +from FreeCAD import Base, Vector from FreeCAD import Image, ImageGui +import Part # FreeCADShip modules from shipUtils import Paths, Translator import Tools diff --git a/src/Mod/Ship/shipHydrostatics/Tools.py b/src/Mod/Ship/shipHydrostatics/Tools.py index d329fc07c..a42c9b774 100644 --- a/src/Mod/Ship/shipHydrostatics/Tools.py +++ b/src/Mod/Ship/shipHydrostatics/Tools.py @@ -23,7 +23,8 @@ import math # FreeCAD modules -from FreeCAD import Vector, Part +from FreeCAD import Vector +import Part import FreeCAD as App import FreeCADGui as Gui # Module diff --git a/src/Mod/Ship/shipOutlineDraw/Plot.py b/src/Mod/Ship/shipOutlineDraw/Plot.py index 7d21b2fbc..682c15678 100644 --- a/src/Mod/Ship/shipOutlineDraw/Plot.py +++ b/src/Mod/Ship/shipOutlineDraw/Plot.py @@ -23,7 +23,8 @@ # FreeCAD modules import FreeCAD,FreeCADGui -from FreeCAD import Base, Part, Vector +from FreeCAD import Base, Vector +import Part # FreeCADShip modules from shipUtils import Paths, Translator from surfUtils import Geometry diff --git a/src/Mod/Ship/shipOutlineDraw/Preview.py b/src/Mod/Ship/shipOutlineDraw/Preview.py index 2b323b47e..a1ccb2012 100644 --- a/src/Mod/Ship/shipOutlineDraw/Preview.py +++ b/src/Mod/Ship/shipOutlineDraw/Preview.py @@ -23,7 +23,8 @@ # FreeCAD modules import FreeCAD,FreeCADGui -from FreeCAD import Base, Part, Vector +from FreeCAD import Base, Vector +import Part # FreeCADShip modules from shipUtils import Paths, Translator diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 0767342cb..32b570757 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -31,7 +31,8 @@ import numpy as np # FreeCAD import FreeCAD,FreeCADGui -from FreeCAD import Part, Base, Vector +from FreeCAD import Base, Vector +import Part # Ship design module from shipUtils import Paths, Translator, Math diff --git a/src/Mod/Ship/tankCreateTank/TaskPanel.py b/src/Mod/Ship/tankCreateTank/TaskPanel.py index 4eddbd03e..15305ca90 100644 --- a/src/Mod/Ship/tankCreateTank/TaskPanel.py +++ b/src/Mod/Ship/tankCreateTank/TaskPanel.py @@ -24,6 +24,7 @@ # FreeCAD modules import FreeCAD as App import FreeCADGui as Gui +import Part # Qt library from PyQt4 import QtGui,QtCore # Module diff --git a/src/Mod/Ship/tankGZ/Plot.py b/src/Mod/Ship/tankGZ/Plot.py index 1ce11d344..09db5345b 100644 --- a/src/Mod/Ship/tankGZ/Plot.py +++ b/src/Mod/Ship/tankGZ/Plot.py @@ -24,8 +24,8 @@ import os # FreeCAD modules import FreeCAD,FreeCADGui -from FreeCAD import Part, Base -from FreeCAD import Image, ImageGui +from FreeCAD import Base, Image, ImageGui +import Part # FreeCADShip modules from shipUtils import Paths, Translator diff --git a/src/Mod/Ship/tankWeights/Preview.py b/src/Mod/Ship/tankWeights/Preview.py index 571155bb9..23bb7fae6 100644 --- a/src/Mod/Ship/tankWeights/Preview.py +++ b/src/Mod/Ship/tankWeights/Preview.py @@ -24,7 +24,7 @@ # FreeCAD modules import FreeCAD,FreeCADGui from FreeCAD import Base -from FreeCAD import Part +import Part # FreeCADShip modules from shipUtils import Paths, Translator From c5ec34318b0f5560f8ac5929961d16c5a65542b0 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Mon, 30 Jul 2012 14:30:13 +0200 Subject: [PATCH 23/98] Implemented initialization stage --- src/Mod/Ship/CMakeLists.txt | 4 + src/Mod/Ship/Makefile.am | 7 +- src/Mod/Ship/OpenCL/simInit.cl | 99 ++++++++++ src/Mod/Ship/shipUtils/Paths.pyc | Bin 0 -> 1379 bytes src/Mod/Ship/shipUtils/__init__.pyc | Bin 0 -> 159 bytes src/Mod/Ship/simRun/Sim/Utils.py | 57 ++++++ src/Mod/Ship/simRun/Sim/Utils.py~ | 58 ++++++ src/Mod/Ship/simRun/Sim/__init__.py | 24 +++ src/Mod/Ship/simRun/Sim/__init__.py~ | 57 ++++++ src/Mod/Ship/simRun/Sim/initialization.py | 113 ++++++++++++ src/Mod/Ship/simRun/Sim/initialization.py~ | 117 ++++++++++++ src/Mod/Ship/simRun/Simulation.py | 202 +++++++++++---------- src/Mod/Ship/simRun/Simulation.py~ | 107 +++++++++++ 13 files changed, 747 insertions(+), 98 deletions(-) create mode 100644 src/Mod/Ship/OpenCL/simInit.cl create mode 100644 src/Mod/Ship/shipUtils/Paths.pyc create mode 100644 src/Mod/Ship/shipUtils/__init__.pyc create mode 100644 src/Mod/Ship/simRun/Sim/Utils.py create mode 100644 src/Mod/Ship/simRun/Sim/Utils.py~ create mode 100644 src/Mod/Ship/simRun/Sim/__init__.py create mode 100644 src/Mod/Ship/simRun/Sim/__init__.py~ create mode 100644 src/Mod/Ship/simRun/Sim/initialization.py create mode 100644 src/Mod/Ship/simRun/Sim/initialization.py~ create mode 100644 src/Mod/Ship/simRun/Simulation.py~ diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index ef3d635a5..5f0314abd 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -56,6 +56,7 @@ SET(ShipExamples_SRCS Examples/s60_katamaran.fcstd Examples/wigley.fcstd Examples/wigley_katamaran.fcstd + OpenCL/simInit.cl ) SOURCE_GROUP("shipexamples" FILES ${ShipExamples_SRCS}) @@ -144,6 +145,9 @@ SET(SimRun_SRCS simRun/Simulation.py simRun/TaskPanel.py simRun/TaskPanel.ui + simRun/Sim/__init__.py + simRun/Sim/initialization.py + simRun/Sim/Utils.py ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 6aa83570c..084e9a877 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -53,6 +53,7 @@ nobase_data_DATA = \ Examples/s60_katamaran.fcstd \ Examples/wigley.fcstd \ Examples/wigley_katamaran.fcstd \ + OpenCL/simInit.cl \ shipLoadExample/__init__.py \ shipLoadExample/TaskPanel.py \ shipLoadExample/TaskPanel.ui \ @@ -96,7 +97,11 @@ nobase_data_DATA = \ simRun/__init__.py \ simRun/Simulation.py \ simRun/TaskPanel.py \ - simRun/TaskPanel.ui + simRun/TaskPanel.ui \ + simRun/Sim/__init__.py \ + simRun/Sim/initialization.py + simRun/Sim/Utils.py + CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/OpenCL/simInit.cl b/src/Mod/Ship/OpenCL/simInit.cl new file mode 100644 index 000000000..7bb8a3c2f --- /dev/null +++ b/src/Mod/Ship/OpenCL/simInit.cl @@ -0,0 +1,99 @@ +/* + * ----------------------------------------------------------------------- + * + * This source file is part of AQUA-gpusph. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA + * + * + * Authors: + * - Cercos Pita, Jose Luis + * - Miguel Gonzalez, Leo + * - Saelices, Jaime + * - Souto Iglesias, Antonio + * + * ----------------------------------------------------------------------- + */ + +#ifndef M_PI + #define M_PI 3,14159265359 +#endif + +#ifdef _g + #error '_g' is already defined. +#endif +#define _g __global + +#ifdef _l + #error '_l' is already defined. +#endif +#define _l __local + +#ifdef _c + #error '_c' is already defined. +#endif +#define _c __constant + +#ifndef _grav + #define _grav 9.81 +#endif + +/** Setup velocity and acceleration potential for initial time step. + * @param pos Cell position. + * @param v Cell velocity. + * @param f Cell acceleration. + * @param waves Waves (A,T,phase,heading) + * @param phi Velocity potential. + * @param Phi Acceleration potential + * @param N Number of cell elements at each direction. + * @param n Number of waves. + */ +__kernel void FS(_g float4* pos, _g float4* v, _g float4* f, + _g float4* waves, _g float* phi, _g float* Phi, + uint2 N, uint n) +{ + // find position in global arrays + unsigned int i = get_global_id(0); + unsigned int j = get_global_id(1); + if( (i >= N.x) || (j >= N.y) ) + return; + unsigned int id = i*N.y + j; + + // ---- | ------------------------ | ---- + // ---- V ---- Your code here ---- V ---- + + unsigned int w; + for(w=0;wDcHh@xzwJ zvtJ+3pH_PR5LF#i)k!%qXYh0D*ux%k95J3dW8u(Ed~z!N`3G=0vc_}{y1ogyQx=2# z^4NIPO;kD`;loLN1A@8Aop)_Ed4`7#@0Qa0HdG{wJA@PuQAk{w3X3ggCiSKJHbAm8 z$zuM#Wx?4rUKANSRC@07v5TdF-D>7rh*USvsu$QfR#CXEw$+x30-272W;vZrY%rZ$ zApy^Y;g+i12~7V8b)J@(2e)_!@Q+KiV@P7zw>f{00jwnk=U&j@6jB(2v4f4{0a3W2 z(gg&ZTS(f6fX)FI^BEMqQ8d$Z^_;aMfDR$;vB^Y~r_gCx%7HMRJ@260 zy%TU(Y#1q;=QdFxkk5I)B4b`;=1S=DIT=sQp|z#0t?TgP44hGp=Jzt2M@VyNJWu8b z030FX8>rkC7FuhlNHtW5-%GUtxy|h9$yH)L&oANeH1F|5g-bm)^q9@7dPVw=*Nd^) StMAu`XOM-|J3+J6Z2SeBBtl;R literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/shipUtils/__init__.pyc b/src/Mod/Ship/shipUtils/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..711c3c8e986a40fc9e96644870d2ee3a44185970 GIT binary patch literal 159 zcmZSn%**v&T_7Nt0SXv_v;zR5ttd4$IWa{aMC*bW#YM^bzWFKo!5Nta`o%yZv?Md9SU)~KGcU6wK3=b& XvV;R@m`!eeN@-529mvXJAZ7pnse&aU literal 0 HcmV?d00001 diff --git a/src/Mod/Ship/simRun/Sim/Utils.py b/src/Mod/Ship/simRun/Sim/Utils.py new file mode 100644 index 000000000..1d085b9ec --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/Utils.py @@ -0,0 +1,57 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD +from shipUtils import Paths + +# pyOpenCL +import pyopencl as cl +import numpy as np + +# Standard +import math + +def loadProgram(context, file): + """ Loads a file and comnpile it. + @param context OpenCL context where apply. + @param file File to load and compile. + @return Ready to use OpenCL program. + """ + f = open(file, 'r') + str = "".join(f.readlines()) + return cl.Program(context, str).build() + +def clPath(): + """ Gets the OpenCL kernels path + @return OpenCL kernels path + """ + path = Paths.modulePath() + "/OpenCL" + return path + +def globalSize(n): + """ Compute global size from amount of data. + @param n Amount of data. + @return global size. + """ + localSize = 256.0 + return int(math.ceil(n/localSize)*localSize) diff --git a/src/Mod/Ship/simRun/Sim/Utils.py~ b/src/Mod/Ship/simRun/Sim/Utils.py~ new file mode 100644 index 000000000..7c37bfab2 --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/Utils.py~ @@ -0,0 +1,58 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD +from shipUtils import Paths + +# pyOpenCL +import pyopencl as cl +import numpy as np + +# Standard +import math + +def loadProgram(context, file): + """ Loads a file and comnpile it. + @param context OpenCL context where apply. + @param file File to load and compile. + @return Ready to use OpenCL program. + """ + f = open(file, 'r') + str = "".join(f.readlines()) + print(str) + return cl.Program(context, str).build() + +def clPath(): + """ Gets the OpenCL kernels path + @return OpenCL kernels path + """ + path = Paths.modulePath() + "/OpenCL" + return path + +def globalSize(n): + """ Compute global size from amount of data. + @param n Amount of data. + @return global size. + """ + localSize = 256.0 + return int(math.ceil(n/localSize)*localSize) diff --git a/src/Mod/Ship/simRun/Sim/__init__.py b/src/Mod/Ship/simRun/Sim/__init__.py new file mode 100644 index 000000000..2fcb8e495 --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/__init__.py @@ -0,0 +1,24 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import initialization, Utils \ No newline at end of file diff --git a/src/Mod/Ship/simRun/Sim/__init__.py~ b/src/Mod/Ship/simRun/Sim/__init__.py~ new file mode 100644 index 000000000..30db4bcdb --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/__init__.py~ @@ -0,0 +1,57 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD +from shipUtils import Paths + +# pyOpenCL +import pyopencl as cl +import numpy as np + +# Standard +import math + +def loadProgram(context, file): + """ Loads a file and comnpile it. + @param context OpenCL context where apply. + @param file File to load and compile. + @return Ready to use OpenCL program. + """ + f = open(file, 'r') + str = "".join(f.readlines()) + return cl.Program(context, str).build() + +def clPath(): + """ Gets the OpenCL kernels path + @return OpenCL kernels path + """ + path = Paths.modulePath() + "/OpenCL" + return path + +def globalSize(n): + """ Compute global size from amount of data. + @param n Amount of data. + @return global size. + """ + localSize = 256 + return int(math.ceil(n/localSize)) diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py new file mode 100644 index 000000000..90bdf5bfa --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -0,0 +1,113 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# Simulation stuff +from Utils import * + +# pyOpenCL +import pyopencl as cl +import numpy as np + +class perform: + def __init__(self, context, queue, FSmesh, waves): + """ Constructor, includes program loading. + @param context OpenCL context where apply. + @param queue OpenCL command queue. + @param FSmesh Initial free surface mesh. + @param waves Considered simulation waves (A,T,phi,heading). + """ + self.context = context + self.queue = queue + self.program = loadProgram(context, clPath() + "/simInit.cl") + self.loadData(FSmesh, waves) + self.execute() + + def loadData(self, FSmesh, waves): + """ Convert data to numpy format, and create OpenCL + buffers. + @param FSmesh Initial free surface mesh. + @param waves Considered simulation waves (A,T,phi,heading). + """ + mf = cl.mem_flags + nx = len(FSmesh) + ny = len(FSmesh[0]) + nW = len(waves) + # Mesh data + p = np.ndarray((nx*ny, 4), dtype=np.float32) + n = np.ndarray((nx*ny, 4), dtype=np.float32) + a = np.ndarray((nx*ny, 1), dtype=np.float32) + for i in range(0, nx): + for j in range(0, ny): + id = i*ny + j + pos = FSmesh[i][j].pos + normal = FSmesh[i][j].normal + area = FSmesh[i][j].area + p[id,0] = pos.x + p[id,1] = pos.y + p[id,2] = pos.z + p[id,3] = 1. + n[id,0] = normal.x + n[id,1] = normal.y + n[id,2] = normal.z + n[id,3] = 0. + a[id,0] = area + p_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=p) + n_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=n) + a_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=a) + v_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) + f_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) + phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) + Phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) + self.fs = {'Nx':nx, 'Ny':ny, 'pos':p_cl, 'vel':v_cl, 'acc':f_cl, \ + 'normal':n_cl, 'area':a_cl, 'velPot':phi, 'accPot':Phi} + # Waves data + w = np.ndarray((nW, 4), dtype=np.float32) + for i in range(0,nW): + w[i,0] = waves[i][0] + w[i,1] = waves[i][1] + w[i,2] = waves[i][2] + w[i,3] = waves[i][3] + w_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=w) + self.waves = {'N':nW, 'data':w_cl} + # Ensure that all data has been written + self.queue.finish() + + def execute(self): + """ Compute initial conditions. """ + # Global size computation + N = np.ndarray((2, 1), dtype=np.uint32) + N[0] = self.fs['Nx'] + N[1] = self.fs['Ny'] + n = np.uint32(self.waves['N']) + gSize = (globalSize(N[0]),globalSize(N[1]),) + # Kernel arguments + kernelargs = (self.fs['pos'], + self.fs['vel'], + self.fs['acc'], + self.waves['data'], + self.fs['velPot'], + self.fs['accPot'], + N, n) + # Kernel launch + self.program.FS(self.queue, gSize, None, *(kernelargs)) + self.queue.finish() diff --git a/src/Mod/Ship/simRun/Sim/initialization.py~ b/src/Mod/Ship/simRun/Sim/initialization.py~ new file mode 100644 index 000000000..63cc9f3aa --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/initialization.py~ @@ -0,0 +1,117 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# Simulation stuff +from Utils import * + +# pyOpenCL +import pyopencl as cl +import numpy as np + +class perform: + def __init__(self, context, queue, FSmesh, waves): + """ Constructor, includes program loading. + @param context OpenCL context where apply. + @param queue OpenCL command queue. + @param FSmesh Initial free surface mesh. + @param waves Considered simulation waves (A,T,phi,heading). + """ + self.context = context + self.queue = queue + self.program = loadProgram(context, clPath() + "/simInit.cl") + self.loadData(FSmesh, waves) + self.execute() + + def loadData(self, FSmesh, waves): + """ Convert data to numpy format, and create OpenCL + buffers. + @param FSmesh Initial free surface mesh. + @param waves Considered simulation waves (A,T,phi,heading). + """ + mf = cl.mem_flags + nx = len(FSmesh) + ny = len(FSmesh[0]) + nW = len(waves) + # Mesh data + p = np.ndarray((nx*ny, 4), dtype=np.float32) + n = np.ndarray((nx*ny, 4), dtype=np.float32) + a = np.ndarray((nx*ny, 1), dtype=np.float32) + for i in range(0, nx): + for j in range(0, ny): + id = i*ny + j + pos = FSmesh[i][j].pos + normal = FSmesh[i][j].normal + area = FSmesh[i][j].area + p[id,0] = pos.x + p[id,1] = pos.y + p[id,2] = pos.z + p[id,3] = 1. + n[id,0] = normal.x + n[id,1] = normal.y + n[id,2] = normal.z + n[id,3] = 0. + a[id,0] = area + p_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=p) + n_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=n) + a_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=a) + v_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) + f_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) + phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) + Phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) + self.fs = {'Nx':nx, 'Ny':ny, 'pos':p_cl, 'vel':v_cl, 'acc':f_cl, \ + 'normal':n_cl, 'area':a_cl, 'velPot':phi, 'accPot':Phi} + # Waves data + w = np.ndarray((nW, 4), dtype=np.float32) + for i in range(0,nW): + w[i,0] = waves[i][0] + w[i,1] = waves[i][1] + w[i,2] = waves[i][2] + w[i,3] = waves[i][3] + w_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=w) + self.waves = {'N':nW, 'data':w_cl} + # Ensure that all data has been written + self.queue.finish() + + def execute(self): + """ Compute initial conditions. """ + # Global size computation + N = np.ndarray((2, 1), dtype=np.uint32) + N[0] = self.fs['Nx'] + N[1] = self.fs['Ny'] + n = np.uint32(self.waves['N']) + gSize = (globalSize(N[0]),globalSize(N[1]),) + print(gSize) + # Kernel arguments + kernelargs = (self.fs['pos'], + self.fs['vel'], + self.fs['acc'], + self.waves['data'], + self.fs['velPot'], + self.fs['accPot'], + N, n) + print('Launching...') + # Kernel launch + self.program.FS(self.queue, gSize, None, *(kernelargs)) + print('Waiting...') + self.queue.finish() + print('OK!') diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 32b570757..6ffd9fe0c 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -1,97 +1,105 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import time -from math import * -import threading - -# pyOpenCL -import pyopencl as cl -import numpy as np - -# FreeCAD -import FreeCAD,FreeCADGui -from FreeCAD import Base, Vector -import Part - -# Ship design module -from shipUtils import Paths, Translator, Math - -class Singleton(type): - def __init__(cls, name, bases, dct): - cls.__instance = None - type.__init__(cls, name, bases, dct) - - def __call__(cls, *args, **kw): - if cls.__instance is None: - cls.__instance = type.__call__(cls, *args,**kw) - return cls.__instance - -class FreeCADShipSimulation(threading.Thread): - __metaclass__ = Singleton - def __init__ (self, device, endTime, output, FSmesh, waves): - """ Thread constructor. - @param device Device to use. - @param endTime Maximum simulation time. - @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. - @param FSmesh Free surface mesh faces. - @param waves Waves parameters (A,T,phi,heading) - """ - threading.Thread.__init__(self) - # Setup as stopped - self.active = False - # Build OpenCL context and command queue - self.device = device - self.context = cl.Context(devices=[self.device]) - self.queue = cl.CommandQueue(self.context) - # Storage data - self.endTime = endTime - self.output = output - self.FSmesh = FSmesh - self.waves = waves - - def run(self): - """ Runs the simulation. - """ - self.active = True - # Perform work here - while self.active: - print("Im thread, Im running...") - time.sleep(1) - # ... - print("Im thread, step done!") - # Set thread as stopped (and prepare it to restarting) - self.active = False - threading.Event().set() - threading.Thread.__init__(self) - - def stop(self): - """ Call to stop execution. - """ - self.active = False - - def isRunning(self): - """ Report thread state - @return True if thread is running, False otherwise. - """ - return self.active +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import time +from math import * +import threading + +# pyOpenCL +import pyopencl as cl +import numpy as np + +# FreeCAD +import FreeCAD,FreeCADGui +from FreeCAD import Base, Vector +import Part + +# Simulation stuff +from Sim import initialization + +# Ship design module +from shipUtils import Paths, Translator, Math + +class Singleton(type): + def __init__(cls, name, bases, dct): + cls.__instance = None + type.__init__(cls, name, bases, dct) + + def __call__(cls, *args, **kw): + if cls.__instance is None: + cls.__instance = type.__call__(cls, *args,**kw) + return cls.__instance + +class FreeCADShipSimulation(threading.Thread): + __metaclass__ = Singleton + def __init__ (self, device, endTime, output, FSmesh, waves): + """ Thread constructor. + @param device Device to use. + @param endTime Maximum simulation time. + @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param FSmesh Free surface mesh faces. + @param waves Waves parameters (A,T,phi,heading) + """ + threading.Thread.__init__(self) + # Setup as stopped + self.active = False + # Build OpenCL context and command queue + self.device = device + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) + # Storage data + self.endTime = endTime + self.output = output + self.FSmesh = FSmesh + self.waves = waves + + def run(self): + """ Runs the simulation. + """ + self.active = True + # Perform work here + msg = Translator.translate("\t[Sim]: Initializating OpenCL...\n") + FreeCAD.Console.PrintMessage(msg) + init = initialization.perform(self.context,self.queue,self.FSmesh,self.waves) + msg = Translator.translate("\t[Sim]: Iterating (outputs will be noticed)...\n") + FreeCAD.Console.PrintMessage(msg) + while self.active: + print("Im thread, Im running...") + time.sleep(1) + # ... + print("Im thread, step done!") + # Set thread as stopped (and prepare it to restarting) + self.active = False + threading.Event().set() + threading.Thread.__init__(self) + + def stop(self): + """ Call to stop execution. + """ + self.active = False + + def isRunning(self): + """ Report thread state + @return True if thread is running, False otherwise. + """ + return self.active diff --git a/src/Mod/Ship/simRun/Simulation.py~ b/src/Mod/Ship/simRun/Simulation.py~ new file mode 100644 index 000000000..03a443779 --- /dev/null +++ b/src/Mod/Ship/simRun/Simulation.py~ @@ -0,0 +1,107 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +import time +from math import * +import threading + +# pyOpenCL +import pyopencl as cl +import numpy as np + +# FreeCAD +import FreeCAD,FreeCADGui +from FreeCAD import Base, Vector +import Part + +# Simulation stuff +from Sim import initialization + +# Ship design module +from shipUtils import Paths, Translator, Math + +class Singleton(type): + def __init__(cls, name, bases, dct): + cls.__instance = None + type.__init__(cls, name, bases, dct) + + def __call__(cls, *args, **kw): + if cls.__instance is None: + cls.__instance = type.__call__(cls, *args,**kw) + return cls.__instance + +class FreeCADShipSimulation(threading.Thread): + __metaclass__ = Singleton + def __init__ (self, device, endTime, output, FSmesh, waves): + """ Thread constructor. + @param device Device to use. + @param endTime Maximum simulation time. + @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param FSmesh Free surface mesh faces. + @param waves Waves parameters (A,T,phi,heading) + """ + threading.Thread.__init__(self) + # Setup as stopped + self.active = False + # Build OpenCL context and command queue + self.device = device + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) + # Storage data + self.endTime = endTime + self.output = output + self.FSmesh = FSmesh + self.waves = waves + + def run(self): + """ Runs the simulation. + """ + self.active = True + # Perform work here + msg = Translator.translate("\t[Sim]: Initializating OpenCL...\n") + FreeCAD.Console.PrintMessage(msg) + init = initialization.perform(self.context,self.queue,self.FSmesh,self.waves) + msg = Translator.translate("\t[Sim]: Iterating (outputs will be noticed)...\n") + FreeCAD.Console.PrintMessage(msg) + while self.active: + print("Im thread, Im running...") + time.sleep(1) + # ... + print("Im thread, step done!") + msg = Translator.translate("\t[Sim]: Output performed!\n") + FreeCAD.Console.PrintMessage(msg) + # Set thread as stopped (and prepare it to restarting) + self.active = False + threading.Event().set() + threading.Thread.__init__(self) + + def stop(self): + """ Call to stop execution. + """ + self.active = False + + def isRunning(self): + """ Report thread state + @return True if thread is running, False otherwise. + """ + return self.active From eac9182ac95bc62101c33a8bf81957000d645e64 Mon Sep 17 00:00:00 2001 From: Jose Luis Cercos Pita Date: Tue, 31 Jul 2012 18:37:10 +0200 Subject: [PATCH 24/98] Added non OpenCL solver (will be developed first) --- src/Mod/Ship/CMakeLists.txt | 4 +- src/Mod/Ship/Makefile.am | 5 +- src/Mod/Ship/simRun/Sim/Utils.py~ | 58 --- src/Mod/Ship/simRun/Sim/__init__.py | 2 +- src/Mod/Ship/simRun/Sim/initialization.py | 111 ++--- src/Mod/Ship/simRun/Simulation.py | 19 +- src/Mod/Ship/simRun/Simulation.py~ | 107 ----- src/Mod/Ship/simRun/TaskPanel.py | 407 +++++++++--------- src/Mod/Ship/simRun/{Sim => clSim}/Utils.py | 0 .../{Sim/__init__.py~ => clSim/__init__.py} | 35 +- .../initialization.py} | 12 +- 11 files changed, 284 insertions(+), 476 deletions(-) delete mode 100644 src/Mod/Ship/simRun/Sim/Utils.py~ delete mode 100644 src/Mod/Ship/simRun/Simulation.py~ rename src/Mod/Ship/simRun/{Sim => clSim}/Utils.py (100%) rename src/Mod/Ship/simRun/{Sim/__init__.py~ => clSim/__init__.py} (68%) rename src/Mod/Ship/simRun/{Sim/initialization.py~ => clSim/initialization.py} (96%) diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 5f0314abd..432c91576 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -145,9 +145,11 @@ SET(SimRun_SRCS simRun/Simulation.py simRun/TaskPanel.py simRun/TaskPanel.ui + simRun/clSim/__init__.py + simRun/clSim/initialization.py + simRun/clSim/Utils.py simRun/Sim/__init__.py simRun/Sim/initialization.py - simRun/Sim/Utils.py ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 084e9a877..f2477550b 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -98,10 +98,11 @@ nobase_data_DATA = \ simRun/Simulation.py \ simRun/TaskPanel.py \ simRun/TaskPanel.ui \ + simRun/clSim/__init__.py \ + simRun/clSim/initialization.py \ + simRun/clSim/Utils.py \ simRun/Sim/__init__.py \ simRun/Sim/initialization.py - simRun/Sim/Utils.py - CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/simRun/Sim/Utils.py~ b/src/Mod/Ship/simRun/Sim/Utils.py~ deleted file mode 100644 index 7c37bfab2..000000000 --- a/src/Mod/Ship/simRun/Sim/Utils.py~ +++ /dev/null @@ -1,58 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -# FreeCAD -from shipUtils import Paths - -# pyOpenCL -import pyopencl as cl -import numpy as np - -# Standard -import math - -def loadProgram(context, file): - """ Loads a file and comnpile it. - @param context OpenCL context where apply. - @param file File to load and compile. - @return Ready to use OpenCL program. - """ - f = open(file, 'r') - str = "".join(f.readlines()) - print(str) - return cl.Program(context, str).build() - -def clPath(): - """ Gets the OpenCL kernels path - @return OpenCL kernels path - """ - path = Paths.modulePath() + "/OpenCL" - return path - -def globalSize(n): - """ Compute global size from amount of data. - @param n Amount of data. - @return global size. - """ - localSize = 256.0 - return int(math.ceil(n/localSize)*localSize) diff --git a/src/Mod/Ship/simRun/Sim/__init__.py b/src/Mod/Ship/simRun/Sim/__init__.py index 2fcb8e495..f5acc886b 100644 --- a/src/Mod/Ship/simRun/Sim/__init__.py +++ b/src/Mod/Ship/simRun/Sim/__init__.py @@ -21,4 +21,4 @@ #* * #*************************************************************************** -import initialization, Utils \ No newline at end of file +import initialization diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py index 90bdf5bfa..1c443ca85 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -21,65 +21,62 @@ #* * #*************************************************************************** -# Simulation stuff -from Utils import * - -# pyOpenCL -import pyopencl as cl +# numpy import numpy as np +grav=9.81 + class perform: - def __init__(self, context, queue, FSmesh, waves): + def __init__(self, FSmesh, waves, context=None, queue=None): """ Constructor, includes program loading. - @param context OpenCL context where apply. - @param queue OpenCL command queue. @param FSmesh Initial free surface mesh. @param waves Considered simulation waves (A,T,phi,heading). + @param context OpenCL context where apply. Only for compatibility, + must be None. + @param queue OpenCL command queue. Only for compatibility, + must be None. """ self.context = context self.queue = queue - self.program = loadProgram(context, clPath() + "/simInit.cl") self.loadData(FSmesh, waves) self.execute() def loadData(self, FSmesh, waves): - """ Convert data to numpy format, and create OpenCL - buffers. + """ Convert data to numpy format. @param FSmesh Initial free surface mesh. @param waves Considered simulation waves (A,T,phi,heading). """ - mf = cl.mem_flags nx = len(FSmesh) ny = len(FSmesh[0]) nW = len(waves) # Mesh data - p = np.ndarray((nx*ny, 4), dtype=np.float32) - n = np.ndarray((nx*ny, 4), dtype=np.float32) - a = np.ndarray((nx*ny, 1), dtype=np.float32) + p = np.ndarray((nx,ny, 3), dtype=np.float32) + v = np.ndarray((nx,ny, 3), dtype=np.float32) + f = np.ndarray((nx,ny, 3), dtype=np.float32) + n = np.ndarray((nx,ny, 3), dtype=np.float32) + a = np.ndarray((nx,ny, 1), dtype=np.float32) + phi = np.ndarray((nx,ny, 1), dtype=np.float32) + Phi = np.ndarray((nx,ny, 1), dtype=np.float32) for i in range(0, nx): for j in range(0, ny): - id = i*ny + j pos = FSmesh[i][j].pos normal = FSmesh[i][j].normal area = FSmesh[i][j].area - p[id,0] = pos.x - p[id,1] = pos.y - p[id,2] = pos.z - p[id,3] = 1. - n[id,0] = normal.x - n[id,1] = normal.y - n[id,2] = normal.z - n[id,3] = 0. - a[id,0] = area - p_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=p) - n_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=n) - a_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=a) - v_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) - f_cl = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny*4 * np.dtype('float32').itemsize) - phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) - Phi = cl.Buffer(self.context, mf.READ_WRITE, size = nx*ny * np.dtype('float32').itemsize) - self.fs = {'Nx':nx, 'Ny':ny, 'pos':p_cl, 'vel':v_cl, 'acc':f_cl, \ - 'normal':n_cl, 'area':a_cl, 'velPot':phi, 'accPot':Phi} + p[i,j,0] = pos.x + p[i,j,1] = pos.y + p[i,j,2] = pos.z + v[i,j,0] = 0. + v[i,j,1] = 0. + v[i,j,2] = 0. + f[i,j,0] = 0. + f[i,j,1] = 0. + f[i,j,2] = 0. + n[i,j,0] = normal.x + n[i,j,1] = normal.y + n[i,j,2] = normal.z + a[i,j] = area + self.fs = {'Nx':nx, 'Ny':ny, 'pos':p, 'vel':v, 'acc':f, \ + 'normal':n, 'area':a, 'velPot':phi, 'accPot':Phi} # Waves data w = np.ndarray((nW, 4), dtype=np.float32) for i in range(0,nW): @@ -87,27 +84,31 @@ class perform: w[i,1] = waves[i][1] w[i,2] = waves[i][2] w[i,3] = waves[i][3] - w_cl = cl.Buffer(self.context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=w) - self.waves = {'N':nW, 'data':w_cl} - # Ensure that all data has been written - self.queue.finish() + self.waves = {'N':nW, 'data':w} def execute(self): """ Compute initial conditions. """ - # Global size computation - N = np.ndarray((2, 1), dtype=np.uint32) - N[0] = self.fs['Nx'] - N[1] = self.fs['Ny'] - n = np.uint32(self.waves['N']) - gSize = (globalSize(N[0]),globalSize(N[1]),) - # Kernel arguments - kernelargs = (self.fs['pos'], - self.fs['vel'], - self.fs['acc'], - self.waves['data'], - self.fs['velPot'], - self.fs['accPot'], - N, n) - # Kernel launch - self.program.FS(self.queue, gSize, None, *(kernelargs)) - self.queue.finish() + nx = self.fs['Nx'] + ny = self.fs['Ny'] + for i in range(0,nx): + for j in range(0,ny): + for w in self.waves['data']: + A = w[0] + T = w[1] + phase = w[2] + heading = np.pi*w[3]/180.0 + wl = 0.5 * grav / np.pi * T*T + k = 2.0*np.pi/wl + frec = 2.0*np.pi/T + pos = self.fs['pos'][i,j] + l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) + amp = A*np.sin(k*l + phase) + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + amp + amp = frec*A*np.cos(k*l + phase) + self.fs['vel'][i,j][2] = self.fs['vel'][i,j][2] - amp + amp = frec*frec*A*np.sin(k*l + phase) + self.fs['acc'][i,j][2] = self.fs['acc'][i,j][2] - amp + amp = grav/frec*A*np.sin(k*l + phase) + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + amp + amp = grav*A*np.cos(k*l + phase) + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + amp diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 6ffd9fe0c..a06f6b0d2 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -34,9 +34,6 @@ import FreeCAD,FreeCADGui from FreeCAD import Base, Vector import Part -# Simulation stuff -from Sim import initialization - # Ship design module from shipUtils import Paths, Translator, Math @@ -65,8 +62,12 @@ class FreeCADShipSimulation(threading.Thread): self.active = False # Build OpenCL context and command queue self.device = device - self.context = cl.Context(devices=[self.device]) - self.queue = cl.CommandQueue(self.context) + if self.device == None: # Can't use OpenCL + self.context = None + self.queue = None + else: + self.context = cl.Context(devices=[self.device]) + self.queue = cl.CommandQueue(self.context) # Storage data self.endTime = endTime self.output = output @@ -77,10 +78,14 @@ class FreeCADShipSimulation(threading.Thread): """ Runs the simulation. """ self.active = True - # Perform work here + # Simulation stuff + if self.device == None: + from Sim import initialization + else: + from clSim import initialization msg = Translator.translate("\t[Sim]: Initializating OpenCL...\n") FreeCAD.Console.PrintMessage(msg) - init = initialization.perform(self.context,self.queue,self.FSmesh,self.waves) + init = initialization.perform(self.FSmesh,self.waves,self.context,self.queue) msg = Translator.translate("\t[Sim]: Iterating (outputs will be noticed)...\n") FreeCAD.Console.PrintMessage(msg) while self.active: diff --git a/src/Mod/Ship/simRun/Simulation.py~ b/src/Mod/Ship/simRun/Simulation.py~ deleted file mode 100644 index 03a443779..000000000 --- a/src/Mod/Ship/simRun/Simulation.py~ +++ /dev/null @@ -1,107 +0,0 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import time -from math import * -import threading - -# pyOpenCL -import pyopencl as cl -import numpy as np - -# FreeCAD -import FreeCAD,FreeCADGui -from FreeCAD import Base, Vector -import Part - -# Simulation stuff -from Sim import initialization - -# Ship design module -from shipUtils import Paths, Translator, Math - -class Singleton(type): - def __init__(cls, name, bases, dct): - cls.__instance = None - type.__init__(cls, name, bases, dct) - - def __call__(cls, *args, **kw): - if cls.__instance is None: - cls.__instance = type.__call__(cls, *args,**kw) - return cls.__instance - -class FreeCADShipSimulation(threading.Thread): - __metaclass__ = Singleton - def __init__ (self, device, endTime, output, FSmesh, waves): - """ Thread constructor. - @param device Device to use. - @param endTime Maximum simulation time. - @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. - @param FSmesh Free surface mesh faces. - @param waves Waves parameters (A,T,phi,heading) - """ - threading.Thread.__init__(self) - # Setup as stopped - self.active = False - # Build OpenCL context and command queue - self.device = device - self.context = cl.Context(devices=[self.device]) - self.queue = cl.CommandQueue(self.context) - # Storage data - self.endTime = endTime - self.output = output - self.FSmesh = FSmesh - self.waves = waves - - def run(self): - """ Runs the simulation. - """ - self.active = True - # Perform work here - msg = Translator.translate("\t[Sim]: Initializating OpenCL...\n") - FreeCAD.Console.PrintMessage(msg) - init = initialization.perform(self.context,self.queue,self.FSmesh,self.waves) - msg = Translator.translate("\t[Sim]: Iterating (outputs will be noticed)...\n") - FreeCAD.Console.PrintMessage(msg) - while self.active: - print("Im thread, Im running...") - time.sleep(1) - # ... - print("Im thread, step done!") - msg = Translator.translate("\t[Sim]: Output performed!\n") - FreeCAD.Console.PrintMessage(msg) - # Set thread as stopped (and prepare it to restarting) - self.active = False - threading.Event().set() - threading.Thread.__init__(self) - - def stop(self): - """ Call to stop execution. - """ - self.active = False - - def isRunning(self): - """ Report thread state - @return True if thread is running, False otherwise. - """ - return self.active diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index 2e41ff15a..d2c34b8b7 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -1,203 +1,204 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -# FreeCAD modules -import FreeCAD as App -import FreeCADGui as Gui -# Qt library -from PyQt4 import QtGui,QtCore -# pyOpenCL -import pyopencl as cl -# Module -import SimInstance -from shipUtils import Paths, Translator -from Simulation import FreeCADShipSimulation as Sim - -import time - -class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" - self.sim = False - - def accept(self): - msg = Translator.translate("Building data...\n") - App.Console.PrintMessage(msg) - # Get GUI data - endTime = self.form.time.value() - output = [] - output.append(self.form.output.value()) - output.append(self.form.outputType.currentIndex()) - devId = self.form.device.currentIndex() - # Get OpenCL device - count = 0 - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - if count == devId: - device = d - count = count + 1 - # Get free surfaces data - FSMesh = SimInstance.FSMesh(self.sim) - wData = self.sim.Waves - wDir = self.sim.Waves_Dir - waves = [] - for i in range(0,len(wData)): - waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) - msg = Translator.translate("Launching simulation...\n") - App.Console.PrintMessage(msg) - # Build simulation thread - simulator = Sim(device, endTime, output, FSMesh, waves) - simulator.start() - msg = Translator.translate("Done!\n") - App.Console.PrintMessage(msg) - return True - - def reject(self): - return True - - def clicked(self, index): - pass - - def open(self): - pass - - def needsFullSpace(self): - return True - - def isAllowedAlterSelection(self): - return False - - def isAllowedAlterView(self): - return True - - def isAllowedAlterDocument(self): - return False - - def helpRequested(self): - pass - - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") - form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") - form.outputType = form.findChild(QtGui.QComboBox, "OutputType") - form.device = form.findChild(QtGui.QComboBox, "Device") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) - - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") - - def initValues(self): - """ Set initial values for fields - """ - # Get objects - selObjs = Gui.Selection.getSelection() - if not selObjs: - msg = Translator.translate("Ship simulation instance must be selected (no object selected)\n") - App.Console.PrintError(msg) - return True - for i in range(0,len(selObjs)): - obj = selObjs[i] - # Test if is a ship instance - props = obj.PropertiesList - try: - props.index("IsShipSimulation") - except ValueError: - continue - if obj.IsShipSimulation: - # Test if another ship already selected - if self.sim: - msg = Translator.translate("More than one ship simulation selected (extra simulations will be neglected)\n") - App.Console.PrintWarning(msg) - break - self.sim = obj - # Test if any valid ship was selected - if not self.sim: - msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") - App.Console.PrintError(msg) - return True - # Get the list of devices - devices = [] - platforms = cl.get_platforms() - for p in platforms: - devs = p.get_devices() - for d in devs: - devices.append([p,d]) - dname = d.get_info(cl.device_info.NAME) - pname = p.get_info(cl.platform_info.NAME) - self.form.device.addItem(dname + " (" + pname + ")") - if not len(devices): - msg = Translator.translate("This tool requires an active OpenCL context to work\n") - App.Console.PrintError(msg) - return True - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False - - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Run the simulation")) - self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) - self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) - self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(Translator.translate("OpenCL device")) - -def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel - -def stopSimulation(): - try: - simulator = Sim() - if not simulator.isRunning(): - msg = Translator.translate("Simulation already stopped\n") - App.Console.PrintWarning(msg) - return - except: - msg = Translator.translate("Any active simulation to stop!\n") - App.Console.PrintError(msg) - return - simulator.stop() - msg = Translator.translate("Simulation will stop at the end of actual iteration\n") - App.Console.PrintMessage(msg) +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD as App +import FreeCADGui as Gui +# Qt library +from PyQt4 import QtGui,QtCore +# pyOpenCL +import pyopencl as cl +# Module +import SimInstance +from shipUtils import Paths, Translator +from Simulation import FreeCADShipSimulation as Sim + +import time + +class TaskPanel: + def __init__(self): + self.ui = Paths.modulePath() + "/simRun/TaskPanel.ui" + self.sim = False + + def accept(self): + msg = Translator.translate("Building data...\n") + App.Console.PrintMessage(msg) + # Get GUI data + endTime = self.form.time.value() + output = [] + output.append(self.form.output.value()) + output.append(self.form.outputType.currentIndex()) + devId = self.form.device.currentIndex() - 1 # First is not OpenCL + # Get OpenCL device + device = None + count = 0 + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + if count == devId: + device = d + count = count + 1 + # Get free surfaces data + FSMesh = SimInstance.FSMesh(self.sim) + wData = self.sim.Waves + wDir = self.sim.Waves_Dir + waves = [] + for i in range(0,len(wData)): + waves.append([wData[i].x, wData[i].y, wData[i].z, wDir[i]]) + msg = Translator.translate("Launching simulation...\n") + App.Console.PrintMessage(msg) + # Build simulation thread + simulator = Sim(device, endTime, output, FSMesh, waves) + simulator.start() + msg = Translator.translate("Done!\n") + App.Console.PrintMessage(msg) + return True + + def reject(self): + return True + + def clicked(self, index): + pass + + def open(self): + pass + + def needsFullSpace(self): + return True + + def isAllowedAlterSelection(self): + return False + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return False + + def helpRequested(self): + pass + + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QDoubleSpinBox, "SimTime") + form.output = form.findChild(QtGui.QDoubleSpinBox, "Output") + form.outputType = form.findChild(QtGui.QComboBox, "OutputType") + form.device = form.findChild(QtGui.QComboBox, "Device") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + # QtCore.QObject.connect(form.time, QtCore.SIGNAL("valueChanged(double)"), self.onData) + + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") + + def initValues(self): + """ Set initial values for fields + """ + # Get objects + selObjs = Gui.Selection.getSelection() + if not selObjs: + msg = Translator.translate("Ship simulation instance must be selected (no object selected)\n") + App.Console.PrintError(msg) + return True + for i in range(0,len(selObjs)): + obj = selObjs[i] + # Test if is a ship instance + props = obj.PropertiesList + try: + props.index("IsShipSimulation") + except ValueError: + continue + if obj.IsShipSimulation: + # Test if another ship already selected + if self.sim: + msg = Translator.translate("More than one ship simulation selected (extra simulations will be neglected)\n") + App.Console.PrintWarning(msg) + break + self.sim = obj + # Test if any valid ship was selected + if not self.sim: + msg = Translator.translate("Ship simulation instance must be selected (no valid simulation found at selected objects)\n") + App.Console.PrintError(msg) + return True + # Get the list of devices + self.form.device.addItem("CPU based version (No OpenCL)") + devices = [] + platforms = cl.get_platforms() + for p in platforms: + devs = p.get_devices() + for d in devs: + devices.append([p,d]) + dname = d.get_info(cl.device_info.NAME) + pname = p.get_info(cl.platform_info.NAME) + self.form.device.addItem(dname + " (" + pname + ")") + if not len(devices): + msg = Translator.translate("Can't find OpenCL devices\n") + App.Console.PrintWarning(msg) + msg = Translator.translate("Ready to work\n") + App.Console.PrintMessage(msg) + return False + + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(Translator.translate("Run the simulation")) + self.form.findChild(QtGui.QLabel, "SimTimeLabel").setText(Translator.translate("Simulation time")) + self.form.findChild(QtGui.QLabel, "OutputLabel").setText(Translator.translate("Output")) + self.form.findChild(QtGui.QLabel, "DeviceLabel").setText(Translator.translate("OpenCL device")) + +def createTask(): + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel + +def stopSimulation(): + try: + simulator = Sim() + if not simulator.isRunning(): + msg = Translator.translate("Simulation already stopped\n") + App.Console.PrintWarning(msg) + return + except: + msg = Translator.translate("Any active simulation to stop!\n") + App.Console.PrintError(msg) + return + simulator.stop() + msg = Translator.translate("Simulation will stop at the end of actual iteration\n") + App.Console.PrintMessage(msg) diff --git a/src/Mod/Ship/simRun/Sim/Utils.py b/src/Mod/Ship/simRun/clSim/Utils.py similarity index 100% rename from src/Mod/Ship/simRun/Sim/Utils.py rename to src/Mod/Ship/simRun/clSim/Utils.py diff --git a/src/Mod/Ship/simRun/Sim/__init__.py~ b/src/Mod/Ship/simRun/clSim/__init__.py similarity index 68% rename from src/Mod/Ship/simRun/Sim/__init__.py~ rename to src/Mod/Ship/simRun/clSim/__init__.py index 30db4bcdb..2fcb8e495 100644 --- a/src/Mod/Ship/simRun/Sim/__init__.py~ +++ b/src/Mod/Ship/simRun/clSim/__init__.py @@ -21,37 +21,4 @@ #* * #*************************************************************************** -# FreeCAD -from shipUtils import Paths - -# pyOpenCL -import pyopencl as cl -import numpy as np - -# Standard -import math - -def loadProgram(context, file): - """ Loads a file and comnpile it. - @param context OpenCL context where apply. - @param file File to load and compile. - @return Ready to use OpenCL program. - """ - f = open(file, 'r') - str = "".join(f.readlines()) - return cl.Program(context, str).build() - -def clPath(): - """ Gets the OpenCL kernels path - @return OpenCL kernels path - """ - path = Paths.modulePath() + "/OpenCL" - return path - -def globalSize(n): - """ Compute global size from amount of data. - @param n Amount of data. - @return global size. - """ - localSize = 256 - return int(math.ceil(n/localSize)) +import initialization, Utils \ No newline at end of file diff --git a/src/Mod/Ship/simRun/Sim/initialization.py~ b/src/Mod/Ship/simRun/clSim/initialization.py similarity index 96% rename from src/Mod/Ship/simRun/Sim/initialization.py~ rename to src/Mod/Ship/simRun/clSim/initialization.py index 63cc9f3aa..5e4f30417 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py~ +++ b/src/Mod/Ship/simRun/clSim/initialization.py @@ -29,12 +29,12 @@ import pyopencl as cl import numpy as np class perform: - def __init__(self, context, queue, FSmesh, waves): + def __init__(self, FSmesh, waves, context, queue): """ Constructor, includes program loading. - @param context OpenCL context where apply. - @param queue OpenCL command queue. @param FSmesh Initial free surface mesh. @param waves Considered simulation waves (A,T,phi,heading). + @param context OpenCL context where apply. + @param queue OpenCL command queue. """ self.context = context self.queue = queue @@ -100,7 +100,6 @@ class perform: N[1] = self.fs['Ny'] n = np.uint32(self.waves['N']) gSize = (globalSize(N[0]),globalSize(N[1]),) - print(gSize) # Kernel arguments kernelargs = (self.fs['pos'], self.fs['vel'], @@ -108,10 +107,7 @@ class perform: self.waves['data'], self.fs['velPot'], self.fs['accPot'], - N, n) - print('Launching...') + N, n) # Kernel launch self.program.FS(self.queue, gSize, None, *(kernelargs)) - print('Waiting...') self.queue.finish() - print('OK!') From aae9b17e32136b4afacaf39c66d8728df8383d72 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 5 Aug 2012 18:01:58 -0300 Subject: [PATCH 25/98] Arch: Bugfixes and hidden lines mode for section planes --- src/Mod/Arch/ArchCommands.py | 14 +- src/Mod/Arch/ArchSectionPlane.py | 73 +++++- src/Mod/Arch/ArchVRM.py | 45 +++- src/Mod/Arch/Arch_rc.py | 233 +++++++++++--------- src/Mod/Arch/Resources/ui/archprefs-base.ui | 74 +++++++ src/Mod/Draft/DraftGeomUtils.py | 103 +++++---- 6 files changed, 367 insertions(+), 175 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index 8ee62c546..d6b3a96fe 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -278,7 +278,7 @@ def getCutVolume(cutplane,shapes): v = placement.Rotation.multVec(FreeCAD.Vector(0,1,0)) if not bb.isCutPlane(placement.Base,ax): print "No objects are cut by the plane" - return None,None + return None,None,None else: corners = [FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMin), FreeCAD.Vector(bb.XMin,bb.YMax,bb.ZMin), @@ -305,7 +305,9 @@ def getCutVolume(cutplane,shapes): cutface.Placement = placement cutnormal = DraftVecUtils.scaleTo(ax,wm) cutvolume = cutface.extrude(cutnormal) - return cutface,cutvolume + cutnormal = DraftVecUtils.neg(cutnormal) + invcutvolume = cutface.extrude(cutnormal) + return cutface,cutvolume,invcutvolume def meshToShape(obj,mark=True): @@ -428,8 +430,8 @@ def download(url): else: return filepath -def check(objectslist,includehidden=True): - """check(objectslist,includehidden=True): checks if the given objects contain only solids""" +def check(objectslist,includehidden=False): + """check(objectslist,includehidden=False): checks if the given objects contain only solids""" objs = Draft.getGroupContents(objectslist) if not includehidden: objs = Draft.removeHidden(objs) @@ -439,11 +441,11 @@ def check(objectslist,includehidden=True): bad.append([o,"is not a Part-based object"]) else: s = o.Shape - if not s.isClosed(): + if (not s.isClosed()) and (not (Draft.getType(o) == "Axis")): bad.append([o,"is not closed"]) elif not s.isValid(): bad.append([o,"is not valid"]) - elif not s.Solids: + elif (not s.Solids) and (not (Draft.getType(o) == "Axis")): bad.append([o,"doesn't contain any solid"]) else: f = 0 diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 97fe2023d..7a65180a8 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -184,10 +184,12 @@ class _ArchDrawingView: def __init__(self, obj): obj.addProperty("App::PropertyLink","Source","Base","The linked object") obj.addProperty("App::PropertyEnumeration","RenderingMode","Drawing View","The rendering mode to use") + obj.addProperty("App::PropertyBool","ShowCut","Drawing View","If cut geometry is shown or not") obj.addProperty("App::PropertyFloat","LineWidth","Drawing View","The line width of the rendered objects") obj.RenderingMode = ["Solid","Wireframe"] obj.RenderingMode = "Wireframe" obj.LineWidth = 0.35 + obj.ShowCut = False obj.Proxy = self self.Type = "DrawingView" @@ -199,6 +201,22 @@ class _ArchDrawingView: if prop in ["Source","RenderingMode"]: obj.ViewResult = self.updateSVG(obj) + def __getstate__(self): + return None + + def __setstate__(self,state): + return None + + def getShape(self, obj): + "returns a flat shape representation of the view" + if hasattr(self,"baseshape"): + import Drawing + [V0,V1,H0,H1] = Drawing.project(self.baseshape,direction) + return V0.Edges+V1.Edges + else: + print "No shape has been computed yet" + return None + def updateSVG(self, obj,join=False): "encapsulates a svg fragment into a transformation node" import Part, DraftGeomUtils @@ -209,6 +227,9 @@ class _ArchDrawingView: objs = Draft.removeHidden(objs) svg = '' + st = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("CutLineThickness") + if not st: st = 2 + # generating SVG linewidth = obj.LineWidth/obj.Scale if obj.RenderingMode == "Solid": @@ -217,29 +238,43 @@ class _ArchDrawingView: render = ArchVRM.Renderer() render.setWorkingPlane(obj.Source.Placement) render.addObjects(Draft.getGroupContents(objs,walls=True)) - render.cut(obj.Source.Shape) + render.cut(obj.Source.Shape,obj.ShowCut) svg += render.getViewSVG(linewidth=linewidth) - svg += render.getSectionSVG(linewidth=linewidth*2) + svg += render.getSectionSVG(linewidth=linewidth*st) + if obj.ShowCut: + svg += render.getHiddenSVG(linewidth=linewidth) # print render.info() else: # render using the Drawing module import Drawing, Part shapes = [] + hshapes = [] + sshapes = [] p = FreeCAD.Placement(obj.Source.Placement) direction = p.Rotation.multVec(FreeCAD.Vector(0,0,1)) for o in objs: if o.isDerivedFrom("Part::Feature"): - shapes.extend(o.Shape.Solids) - cutface,cutvolume = ArchCommands.getCutVolume(obj.Source.Shape.copy(),shapes) + if o.Shape.isValid(): + shapes.extend(o.Shape.Solids) + else: + FreeCAD.Console.PrintWarning("Skipping invalid object: "+o.Name) + cutface,cutvolume,invcutvolume = ArchCommands.getCutVolume(obj.Source.Shape.copy(),shapes) if cutvolume: nsh = [] for sh in shapes: for sol in sh.Solids: c = sol.cut(cutvolume) nsh.append(c) + s = sol.section(cutface) + sshapes.append(s) + if obj.ShowCut: + c = sol.cut(invcutvolume) + hshapes.append(c) shapes = nsh - base = Part.makeCompound(shapes) + if shapes: + self.baseshape = Part.makeCompound(shapes) + svgf = Drawing.projectToSVG(self.baseshape,direction) #if shapes: # base = shapes.pop().copy() #for sh in shapes: @@ -247,12 +282,36 @@ class _ArchDrawingView: # base = base.fuse(sh) # except: # print "unable to fuse, passing..." - svgf = Drawing.projectToSVG(base,direction) if svgf: svgf = svgf.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') svgf = svgf.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') svgf = svgf.replace('stroke-width:0.01','stroke-width:' + str(linewidth) + 'px') - svg += svgf + svg += svgf + if hshapes: + hshapes = Part.makeCompound(hshapes) + svgh = Drawing.projectToSVG(hshapes,direction) + if svgh: + svgh = svgh.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') + svgh = svgh.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') + svgh = svgh.replace('stroke-width:0.01','stroke-width:' + str(linewidth) + 'px') + svgh = svgh.replace('fill="none"','fill="none"\nstroke-dasharray="0.09,0.05"') + svg += svgh + if sshapes: + edges = [] + for s in sshapes: + edges.extend(s.Edges) + wires = DraftGeomUtils.findWires(edges) + faces = [] + for w in wires: + if (w.ShapeType == "Wire") and w.isClosed(): + faces.append(Part.Face(w)) + sshapes = Part.makeCompound(faces) + svgs = Drawing.projectToSVG(sshapes,direction) + if svgs: + svgs = svgs.replace('stroke-width="0.35"','stroke-width="' + str(linewidth*st) + 'px"') + svgs = svgs.replace('stroke-width="1"','stroke-width="' + str(linewidth*st) + 'px"') + svgs = svgs.replace('stroke-width:0.01','stroke-width:' + str(linewidth*st) + 'px') + svg += svgs result = '' result += ' 1: + v1 = self.wp.getLocalCoords(edge.Vertexes[0].Point) + v2 = self.wp.getLocalCoords(edge.Vertexes[-1].Point) + return Part.Line(v1,v2).toShape() + return edge + def flattenFace(self,face): "Returns a face where all vertices have Z = 0" wires = [] @@ -219,7 +231,7 @@ class Renderer: else: return [sh]+face[1:] - def cut(self,cutplane): + def cut(self,cutplane,hidden=False): "Cuts through the shapes with a given cut plane and builds section faces" if DEBUG: print "\n\n======> Starting cut\n\n" if self.iscut: @@ -231,7 +243,7 @@ class Renderer: shps = [] for sh in self.shapes: shps.append(sh[0]) - cutface,cutvolume = ArchCommands.getCutVolume(cutplane,shps) + cutface,cutvolume,invcutvolume = ArchCommands.getCutVolume(cutplane,shps) if cutface and cutvolume: shapes = [] faces = [] @@ -246,6 +258,9 @@ class Renderer: if DraftGeomUtils.isCoplanar([f,cutface]): print "COPLANAR" sections.append([f,fill]) + if hidden: + c = sol.cut(invcutvolume) + self.hiddenEdges.extend(c.Edges) self.shapes = shapes self.faces = faces self.sections = sections @@ -555,7 +570,8 @@ class Renderer: v = e.Vertexes[-1].Point svg += 'A '+ tostr(r) + ' '+ tostr(r) +' 0 0 1 '+ tostr(v.x) +' ' svg += tostr(v.y) + ' ' - svg += 'Z ' + if len(edges) > 1: + svg += 'Z ' return svg def getViewSVG(self,linewidth=0.01): @@ -608,4 +624,25 @@ class Renderer: svg += 'fill-rule: evenodd' svg += '"/>\n' return svg + + def getHiddenSVG(self,linewidth=0.02): + "Returns a SVG fragment from cut geometry" + if DEBUG: print "Printing ", len(self.sections), " hidden faces" + if not self.oriented: + self.reorient() + svg = '' + for e in self.hiddenEdges: + svg +=' + + + + 2D rendering + + + + + + + + Show debug information during 2D rendering + + + Show renderer debug messages + + + ShowVRMDebug + + + Mod/Arch + + + + + + + + + + + Cut areas line thickness ratio + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Specifies how many times the viewed line thickness must be applied to cut lines + + + 2.000000000000000 + + + CutLineThickness + + + Mod/Arch + + + + + + + + @@ -257,6 +326,11 @@ QCheckBox

Gui/PrefWidgets.h
+ + Gui::PrefDoubleSpinBox + QDoubleSpinBox +
Gui/PrefWidgets.h
+
diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index f47ae0f09..10ee860a0 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -539,57 +539,62 @@ def sortEdges(lEdges, aVertex=None): def findWires(edgeslist): - '''finds connected wires in the given list of edges''' + '''finds connected wires in the given list of edges''' - def touches(e1,e2): - if len(e1.Vertexes) < 2: - return False - if len(e2.Vertexes) < 2: - return False - if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[0].Point): - return True - if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[-1].Point): - return True - if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[0].Point): - return True - if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[-1].Point): - return True - return False - - edges = edgeslist[:] - wires = [] - lost = [] - while edges: - e = edges[0] - if not wires: - # create first group - edges.remove(e) - wires.append([e]) + def touches(e1,e2): + if len(e1.Vertexes) < 2: + return False + if len(e2.Vertexes) < 2: + return False + if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[0].Point): + return True + if DraftVecUtils.equals(e1.Vertexes[0].Point,e2.Vertexes[-1].Point): + return True + if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[0].Point): + return True + if DraftVecUtils.equals(e1.Vertexes[-1].Point,e2.Vertexes[-1].Point): + return True + return False + + edges = edgeslist[:] + wires = [] + lost = [] + while edges: + e = edges[0] + if not wires: + # create first group + edges.remove(e) + wires.append([e]) + else: + found = False + for w in wires: + if not found: + for we in w: + if touches(e,we): + edges.remove(e) + w.append(e) + found = True + break + if not found: + if e in lost: + # we already tried this edge, and still nothing + edges.remove(e) + wires.append([e]) + lost = [] else: - found = False - for w in wires: - if not found: - for we in w: - if touches(e,we): - edges.remove(e) - w.append(e) - found = True - break - if not found: - if e in lost: - # we already tried this edge, and still nothing - edges.remove(e) - wires.append([e]) - lost = [] - else: - # put to the end of the list - edges.remove(e) - edges.append(e) - lost.append(e) - nwires = [] - for w in wires: - nwires.append(Part.Wire(w)) - return nwires + # put to the end of the list + edges.remove(e) + edges.append(e) + lost.append(e) + nwires = [] + for w in wires: + try: + wi = Part.Wire(w) + except: + print "couldn't join some edges" + else: + nwires.append(wi) + return nwires def superWire(edgeslist,closed=False): '''superWire(edges,[closed]): forces a wire between edges that don't necessarily From 43b7b9834d6c3d0d8550c1ef1b5ad1cfb621b7cc Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 5 Aug 2012 19:03:27 -0300 Subject: [PATCH 26/98] Arch: Walls and Structs can now be created directly from meshes --- src/Mod/Arch/ArchCommands.py | 77 +++++++++++++++++++++++++---------- src/Mod/Arch/ArchStructure.py | 15 +++---- src/Mod/Arch/ArchWall.py | 33 +++++++++------ src/Mod/Arch/ArchWindow.py | 9 +--- 4 files changed, 86 insertions(+), 48 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index d6b3a96fe..44dd537c2 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -43,6 +43,22 @@ def getStringList(objects): result += "]" return result +def getDefaultColor(objectType): + '''getDefaultColor(string): returns a color value for the given object + type (Wall, Structure, Window)''' + p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") + if objectType == "Wall": + c = p.GetUnsigned("WallColor") + elif objectType == "Structure": + c = p.GetUnsigned("StructureColor") + else: + c = p.GetUnsigned("WindowsColor") + r = float((c>>24)&0xFF)/255.0 + g = float((c>>16)&0xFF)/255.0 + b = float((c>>8)&0xFF)/255.0 + result = (r,g,b,1.0) + return result + def addComponents(objectsList,host): '''addComponents(objectsList,hostObject): adds the given object or the objects from the given list as components to the given host Object. Use this for @@ -308,6 +324,41 @@ def getCutVolume(cutplane,shapes): cutnormal = DraftVecUtils.neg(cutnormal) invcutvolume = cutface.extrude(cutnormal) return cutface,cutvolume,invcutvolume + +def getShapeFromMesh(mesh): + import Part, MeshPart + if mesh.isSolid() and (mesh.countComponents() == 1): + # use the best method + faces = [] + for f in mesh.Facets: + p=f.Points+[f.Points[0]] + pts = [] + for pp in p: + pts.append(FreeCAD.Vector(pp[0],pp[1],pp[2])) + faces.append(Part.Face(Part.makePolygon(pts))) + shell = Part.makeShell(faces) + solid = Part.Solid(shell) + solid = solid.removeSplitter() + return solid + + faces = [] + segments = mesh.getPlanarSegments(0.001) # use rather strict tolerance here + for i in segments: + if len(i) > 0: + wires = MeshPart.wireFromSegment(mesh, i) + if wires: + faces.append(makeFace(wires)) + try: + se = Part.makeShell(faces) + except: + return None + else: + try: + solid = Part.Solid(se) + except: + return se + else: + return solid def meshToShape(obj,mark=True): @@ -315,36 +366,18 @@ def meshToShape(obj,mark=True): mark is True (default), non-solid objects will be marked in red''' name = obj.Name - import Part, MeshPart, DraftGeomUtils if "Mesh" in obj.PropertiesList: faces = [] mesh = obj.Mesh plac = obj.Placement - segments = mesh.getPlanarSegments(0.001) # use rather strict tolerance here - print len(segments)," segments ",segments - for i in segments: - print "treating",segments.index(i),i - if len(i) > 0: - wires = MeshPart.wireFromSegment(mesh, i) - print "wire done" - print wires - if wires: - faces.append(makeFace(wires)) - print "done facing" - print "faces",faces - - try: - se = Part.makeShell(faces) - solid = Part.Solid(se) - except: - raise - else: - if solid.isClosed(): + solid = getShapeFromMesh(mesh) + if solid: + if solid.isClosed() and solid.isValid(): FreeCAD.ActiveDocument.removeObject(name) newobj = FreeCAD.ActiveDocument.addObject("Part::Feature",name) newobj.Shape = solid newobj.Placement = plac - if not solid.isClosed(): + if (not solid.isClosed()) or (not solid.isValid()): if mark: newobj.ViewObject.ShapeColor = (1.0,0.0,0.0,1.0) return newobj diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index d249a8a83..175bd5f94 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -44,12 +44,7 @@ def makeStructure(baseobj=None,length=1,width=1,height=1,name=str(translate("Arc obj.Width = width obj.Height = height obj.Length = length - p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") - c = p.GetUnsigned("StructureColor") - r = float((c>>24)&0xFF)/255.0 - g = float((c>>16)&0xFF)/255.0 - b = float((c>>8)&0xFF)/255.0 - obj.ViewObject.ShapeColor = (r,g,b,1.0) + obj.ViewObject.ShapeColor = ArchCommands.getDefaultColor("Structure") return obj def makeStructuralSystem(objects,axes): @@ -171,7 +166,13 @@ class _Structure(ArchComponent.Component): elif (len(base.Wires) == 1): if base.Wires[0].isClosed(): base = Part.Face(base.Wires[0]) - base = base.extrude(normal) + base = base.extrude(normal) + elif obj.Base.isDerivedFrom("Mesh::Feature"): + if obj.Mesh.isSolid(): + if obj.Mesh.countComponents() == 1: + sh = ArchCommands.getShapeFromMesh(obj.Mesh) + if sh.isClosed() and sh.isValid() and sh.Solids: + base = sh else: if obj.Normal == Vector(0,0,0): normal = Vector(0,0,1) diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 4983d77e7..b74f9415b 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -21,7 +21,7 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils +import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector from PyQt4 import QtCore from DraftTools import translate @@ -37,17 +37,16 @@ def makeWall(baseobj=None,width=None,height=None,align="Center",name=str(transla obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name) _Wall(obj) _ViewProviderWall(obj.ViewObject) - if baseobj: obj.Base = baseobj - if width: obj.Width = width - if height: obj.Height = height + if baseobj: + obj.Base = baseobj + if width: + obj.Width = width + if height: + obj.Height = height obj.Align = align - if obj.Base: obj.Base.ViewObject.hide() - p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") - c = p.GetUnsigned("WallColor") - r = float((c>>24)&0xFF)/255.0 - g = float((c>>16)&0xFF)/255.0 - b = float((c>>8)&0xFF)/255.0 - obj.ViewObject.ShapeColor = (r,g,b,1.0) + if obj.Base: + obj.Base.ViewObject.hide() + obj.ViewObject.ShapeColor = ArchCommands.getDefaultColor("Wall") return obj def joinWalls(walls): @@ -357,7 +356,7 @@ class _Wall(ArchComponent.Component): # computing shape base = None if obj.Base.isDerivedFrom("Part::Feature"): - if not obj.Base.Shape.isNull(): + if obj.Base.isValid() and (not obj.Base.Shape.isNull()): base = obj.Base.Shape.copy() if base.Solids: pass @@ -380,7 +379,17 @@ class _Wall(ArchComponent.Component): if sh: base = sh else: + base = None FreeCAD.Console.PrintError(str(translate("Arch","Error: Invalid base object"))) + elif obj.Base.isDerivedFrom("Mesh::Feature"): + if obj.Base.Mesh.isSolid(): + if obj.Base.Mesh.countComponents() == 1: + sh = ArchCommands.getShapeFromMesh(obj.Base.Mesh) + if sh.isClosed() and sh.isValid() and sh.Solids and (not sh.isNull()): + base = sh + else: + FreeCAD.Console.PrintWarning("This mesh is an invalid solid") + obj.Base.ViewObject.show() if base: for app in obj.Additions: diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py index 9c540e7be..5a78ce627 100644 --- a/src/Mod/Arch/ArchWindow.py +++ b/src/Mod/Arch/ArchWindow.py @@ -21,7 +21,7 @@ #* * #*************************************************************************** -import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils +import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands from FreeCAD import Vector from PyQt4 import QtCore,QtGui from DraftTools import translate @@ -49,12 +49,7 @@ def makeWindow(baseobj=None,width=None,name=str(translate("Arch","Window"))): if obj.Base: obj.Base.ViewObject.DisplayMode = "Wireframe" obj.Base.ViewObject.hide() - p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch") - c = p.GetUnsigned("WindowColor") - r = float((c>>24)&0xFF)/255.0 - g = float((c>>16)&0xFF)/255.0 - b = float((c>>8)&0xFF)/255.0 - obj.ViewObject.ShapeColor = (r,g,b,1.0) + obj.ViewObject.ShapeColor = ArchCommands.getDefaultColor("Window") return obj def makeDefaultWindowPart(obj): From 6b0f50d98cdce5159aafda2b69abf2396b174419 Mon Sep 17 00:00:00 2001 From: logari81 Date: Mon, 6 Aug 2012 13:34:29 +0200 Subject: [PATCH 27/98] Sketcher: add perpendicular mode to polyline tool and use M-key for mode-switching --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 214 ++++++++++++++-------- 1 file changed, 142 insertions(+), 72 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index eb0aa74fe..cbacc1392 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -488,50 +488,103 @@ class DrawSketchHandlerLineSet: public DrawSketchHandler { public: DrawSketchHandlerLineSet() - : Mode(STATUS_SEEK_First),LineMode(LINE_MODE_Line),EditCurve(2), - firstVertex(-1),firstCurve(-1),previousCurve(-1),previousPosId(-1), - isTangent(false) {} + : Mode(STATUS_SEEK_First),SegmentMode(SEGMENT_MODE_Line), + TransitionMode(TRANSITION_MODE_Free),suppressTransition(false),EditCurve(2), + firstVertex(-1),firstCurve(-1),previousCurve(-1),previousPosId(-1) {} virtual ~DrawSketchHandlerLineSet() {} /// mode table - enum SelectMode { + enum SELECT_MODE { STATUS_SEEK_First, /**< enum value ----. */ STATUS_SEEK_Second, /**< enum value ----. */ STATUS_Do, STATUS_Close }; - enum SelectLineMode + enum SEGMENT_MODE { - LINE_MODE_Arc, - LINE_MODE_Line + SEGMENT_MODE_Arc, + SEGMENT_MODE_Line + }; + + enum TRANSITION_MODE + { + TRANSITION_MODE_Free, + TRANSITION_MODE_Tangent, + TRANSITION_MODE_Perpendicular_L, + TRANSITION_MODE_Perpendicular_R }; virtual void registerPressedKey(bool pressed, int key) { - if (key == SoKeyboardEvent::A && pressed && previousCurve != -1) { - if (LineMode != LINE_MODE_Arc) { - Base::Vector2D onSketchPos = EditCurve[isTangent ? 2 : 1]; - LineMode = LINE_MODE_Arc; - if (previousCurve != -1) - isTangent = true; - else - isTangent = false; - EditCurve.resize(32); - mouseMove(onSketchPos); // trigger an update of EditCurve + if (key == SoKeyboardEvent::M && pressed && previousCurve != -1) { + // loop through the following modes: + // SEGMENT_MODE_Line, TRANSITION_MODE_Free / TRANSITION_MODE_Tangent + // SEGMENT_MODE_Line, TRANSITION_MODE_Perpendicular_L + // SEGMENT_MODE_Line, TRANSITION_MODE_Tangent / TRANSITION_MODE_Free + // SEGMENT_MODE_Arc, TRANSITION_MODE_Tangent + // SEGMENT_MODE_Arc, TRANSITION_MODE_Perpendicular_L + // SEGMENT_MODE_Arc, TRANSITION_MODE_Perpendicular_R + + Base::Vector2D onSketchPos; + if (SegmentMode == SEGMENT_MODE_Line) + onSketchPos = EditCurve[EditCurve.size()-1]; + else + onSketchPos = EditCurve[29]; + + const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(previousCurve); + + if (SegmentMode == SEGMENT_MODE_Line) { + switch (TransitionMode) { + case TRANSITION_MODE_Free: + if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { // 3rd mode + SegmentMode = SEGMENT_MODE_Arc; + TransitionMode = TRANSITION_MODE_Tangent; + } + else // 1st mode + TransitionMode = TRANSITION_MODE_Perpendicular_L; + break; + case TRANSITION_MODE_Perpendicular_L: // 2nd mode + if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) + TransitionMode = TRANSITION_MODE_Free; + else + TransitionMode = TRANSITION_MODE_Tangent; + break; + case TRANSITION_MODE_Tangent: + if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) // 1st mode + TransitionMode = TRANSITION_MODE_Perpendicular_L; + else { // 3rd mode + SegmentMode = SEGMENT_MODE_Arc; + TransitionMode = TRANSITION_MODE_Tangent; + } + break; + default: // unexpected mode + TransitionMode = TRANSITION_MODE_Free; + break; + } } else { - Base::Vector2D onSketchPos = EditCurve[29]; - LineMode = LINE_MODE_Line; - if (previousCurve != -1) { - const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(previousCurve); - if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) - isTangent = true; - else - isTangent = false; + switch (TransitionMode) { + case TRANSITION_MODE_Tangent: // 4th mode + TransitionMode = TRANSITION_MODE_Perpendicular_L; + break; + case TRANSITION_MODE_Perpendicular_L: // 5th mode + TransitionMode = TRANSITION_MODE_Perpendicular_R; + break; + default: // 6th mode (Perpendicular_R) + unexpexted mode + SegmentMode = SEGMENT_MODE_Line; + if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) + TransitionMode = TRANSITION_MODE_Tangent; + else + TransitionMode = TRANSITION_MODE_Free; + break; } - EditCurve.resize(isTangent ? 3 : 2); - mouseMove(onSketchPos); // trigger an update of EditCurve } + + if (SegmentMode == SEGMENT_MODE_Line) + EditCurve.resize(TransitionMode == TRANSITION_MODE_Free ? 2 : 3); + else + EditCurve.resize(32); + mouseMove(onSketchPos); // trigger an update of EditCurve } } @@ -542,6 +595,7 @@ public: virtual void mouseMove(Base::Vector2D onSketchPos) { + suppressTransition = false; setPositionText(onSketchPos); if (Mode==STATUS_SEEK_First) { if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2D(0.f,0.f))) { @@ -550,23 +604,41 @@ public: } } else if (Mode==STATUS_SEEK_Second){ - if (LineMode == LINE_MODE_Line) { - EditCurve[isTangent ? 2 : 1] = onSketchPos; - if (isTangent) { + if (SegmentMode == SEGMENT_MODE_Line) { + EditCurve[EditCurve.size()-1] = onSketchPos; + if (TransitionMode == TRANSITION_MODE_Tangent) { Base::Vector2D Tangent(dirVec.x,dirVec.y); EditCurve[1].ProjToLine(EditCurve[2] - EditCurve[0], Tangent); + if (EditCurve[1] * Tangent < 0) { + EditCurve[1] = EditCurve[2]; + suppressTransition = true; + } + else + EditCurve[1] = EditCurve[0] + EditCurve[1]; + } + else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || + TransitionMode == TRANSITION_MODE_Perpendicular_R) { + Base::Vector2D Perpendicular(-dirVec.y,dirVec.x); + EditCurve[1].ProjToLine(EditCurve[2] - EditCurve[0], Perpendicular); EditCurve[1] = EditCurve[0] + EditCurve[1]; } sketchgui->drawEdit(EditCurve); - if (!isTangent) { + if (TransitionMode == TRANSITION_MODE_Free) { if (seekAutoConstraint(sugConstr2, onSketchPos, onSketchPos - EditCurve[0])) { renderSuggestConstraintsCursor(sugConstr2); return; } } } - else if (LineMode == LINE_MODE_Arc) { - Base::Vector2D Tangent(dirVec.x,dirVec.y); + else if (SegmentMode == SEGMENT_MODE_Arc) { + Base::Vector2D Tangent; + if (TransitionMode == TRANSITION_MODE_Tangent) + Tangent = Base::Vector2D(dirVec.x,dirVec.y); + else if (TransitionMode == TRANSITION_MODE_Perpendicular_L) + Tangent = Base::Vector2D(-dirVec.y,dirVec.x); + else if (TransitionMode == TRANSITION_MODE_Perpendicular_R) + Tangent = Base::Vector2D(dirVec.y,-dirVec.x); + float theta = Tangent.GetAngle(onSketchPos - EditCurve[0]); arcRadius = (onSketchPos - EditCurve[0]).Length()/(2.0*sin(theta)); // At this point we need a unit normal vector pointing torwards @@ -581,10 +653,7 @@ public: if ((x2*y3-x3*y2)-(x1*y3-x3*y1)+(x1*y2-x2*y1) > 0) arcRadius *= -1; - Base::Vector3d centerVec = dirVec % Base::Vector3d(0.f,0.f,1.0); - centerVec.Normalize(); // this step should actually be redundant - - CenterPoint = EditCurve[0] + Base::Vector2D(arcRadius * centerVec.x, arcRadius * centerVec.y); + CenterPoint = EditCurve[0] + Base::Vector2D(arcRadius * Tangent.fY, -arcRadius * Tangent.fX); float rx = EditCurve[0].fX - CenterPoint.fX; float ry = EditCurve[0].fY - CenterPoint.fY; @@ -622,35 +691,23 @@ public: virtual bool pressButton(Base::Vector2D onSketchPos) { - if (Mode==STATUS_SEEK_First) { + if (Mode == STATUS_SEEK_First) { // remember our first point firstVertex = getHighestVertexIndex() + 1; firstCurve = getHighestCurveIndex() + 1; // TODO: here we should check if there is a preselected point // and set up a transition from the neighbouring segment. - // (peviousCurve, previousPosId, dirVec, isTangent) + // (peviousCurve, previousPosId, dirVec, TransitionMode) // in that case we should set firstCurve and firstVertex to -1 // in order to disable closing the wire - if (LineMode == LINE_MODE_Line) - EditCurve.resize(isTangent ? 3 : 2); - else if (LineMode == LINE_MODE_Arc) + if (SegmentMode == SEGMENT_MODE_Line) + EditCurve.resize(TransitionMode == TRANSITION_MODE_Free ? 2 : 3); + else if (SegmentMode == SEGMENT_MODE_Arc) EditCurve.resize(32); EditCurve[0] = onSketchPos; Mode = STATUS_SEEK_Second; } - else if (Mode==STATUS_SEEK_Second) { - if (LineMode == LINE_MODE_Line) { - EditCurve[isTangent ? 2 : 1] = onSketchPos; - if (isTangent) { - Base::Vector2D Tangent(dirVec.x,dirVec.y); - EditCurve[1].ProjToLine(EditCurve[2] - EditCurve[0], Tangent); - EditCurve[1] = EditCurve[0] + EditCurve[1]; - } - } - else if (LineMode == LINE_MODE_Arc) - EditCurve[29] = onSketchPos; // not so important - sketchgui->drawEdit(EditCurve); - applyCursor(); + else if (Mode == STATUS_SEEK_Second) { // exit on clicking exactly at the same position (e.g. double click) if (onSketchPos == EditCurve[0]) { unsetCursor(); @@ -671,7 +728,7 @@ public: { if (Mode == STATUS_Do || Mode == STATUS_Close) { - if (LineMode == LINE_MODE_Line) { + if (SegmentMode == SEGMENT_MODE_Line) { // open the transaction Gui::Command::openCommand("Add line to sketch wire"); // issue the geometry @@ -680,7 +737,7 @@ public: sketchgui->getObject()->getNameInDocument(), EditCurve[0].fX,EditCurve[0].fY,EditCurve[1].fX,EditCurve[1].fY); } - else if (LineMode == LINE_MODE_Arc) { // We're dealing with an Arc + else if (SegmentMode == SEGMENT_MODE_Arc) { // We're dealing with an Arc Gui::Command::openCommand("Add arc to sketch wire"); Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.%s.addGeometry(Part.ArcOfCircle" @@ -692,13 +749,20 @@ public: // issue the constraint if (previousCurve != -1) { int lastCurve = previousCurve+1; - int lastStartPosId = (LineMode == LINE_MODE_Arc && startAngle > endAngle) ? 2 : 1; - int lastEndPosId = (LineMode == LINE_MODE_Arc && startAngle > endAngle) ? 1 : 2; - // in case of a tangency constraint, the coincident constraint is redundant + int lastStartPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 2 : 1; + int lastEndPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 1 : 2; + // in case of a tangency constraint, the coincident constraint is redundant + std::string constrType = "Coincident"; + if (!suppressTransition) { + if (TransitionMode == TRANSITION_MODE_Tangent) + constrType = "Tangent"; + else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || + TransitionMode == TRANSITION_MODE_Perpendicular_R) + constrType = "Perpendicular"; + } Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('%s',%i,%i,%i,%i)) ", - sketchgui->getObject()->getNameInDocument(), - isTangent ? "Tangent" : "Coincident", + sketchgui->getObject()->getNameInDocument(), constrType.c_str(), previousCurve, previousPosId /* == 2 */, lastCurve, lastStartPosId); if (Mode == STATUS_Close) { int firstGeoId; @@ -750,7 +814,7 @@ public: // remember the vertex for the next rounds constraint.. previousCurve = getHighestCurveIndex(); - previousPosId = (LineMode == LINE_MODE_Arc && startAngle > endAngle) ? 1 : 2; + previousPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 1 : 2; // setup for the next line segment // Use updated endPoint as autoconstraints can modify the position @@ -764,7 +828,7 @@ public: 0.f); } else if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { - assert(LineMode == LINE_MODE_Arc); + assert(SegmentMode == SEGMENT_MODE_Arc); const Part::GeomArcOfCircle *arcSeg = dynamic_cast(geom); if (startAngle > endAngle) { EditCurve[0] = Base::Vector2D(arcSeg->getStartPoint().x,arcSeg->getStartPoint().y); @@ -779,20 +843,27 @@ public: applyCursor(); Mode = STATUS_SEEK_Second; - isTangent = (LineMode == LINE_MODE_Arc); - LineMode = LINE_MODE_Line; - EditCurve.resize(isTangent ? 3 : 2); - EditCurve[1] = EditCurve[0]; - if (isTangent) + if (SegmentMode == SEGMENT_MODE_Arc) { + TransitionMode = TRANSITION_MODE_Tangent; + EditCurve.resize(3); EditCurve[2] = EditCurve[0]; + } + else { + TransitionMode = TRANSITION_MODE_Free; + EditCurve.resize(2); + } + SegmentMode = SEGMENT_MODE_Line; + EditCurve[1] = EditCurve[0]; sketchgui->drawEdit(EditCurve); } } return true; } protected: - SelectMode Mode; - SelectLineMode LineMode; + SELECT_MODE Mode; + SEGMENT_MODE SegmentMode; + TRANSITION_MODE TransitionMode; + bool suppressTransition; std::vector EditCurve; int firstVertex; @@ -803,7 +874,6 @@ protected: Base::Vector2D CenterPoint; Base::Vector3d dirVec; - bool isTangent; float startAngle, endAngle, arcRadius; }; From 3f3b7cd68f94aa235ad85cf5993d722d851387bd Mon Sep 17 00:00:00 2001 From: logari81 Date: Mon, 6 Aug 2012 16:13:09 +0200 Subject: [PATCH 28/98] Sketcher: allow starting a new polyline connected at some already available geometry --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 109 ++++++++++++++-------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index cbacc1392..f45f9d54d 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -490,7 +490,7 @@ public: DrawSketchHandlerLineSet() : Mode(STATUS_SEEK_First),SegmentMode(SEGMENT_MODE_Line), TransitionMode(TRANSITION_MODE_Free),suppressTransition(false),EditCurve(2), - firstVertex(-1),firstCurve(-1),previousCurve(-1),previousPosId(-1) {} + firstVertex(-1),firstCurve(-1),previousCurve(-1),previousPosId(Sketcher::none) {} virtual ~DrawSketchHandlerLineSet() {} /// mode table enum SELECT_MODE { @@ -692,19 +692,41 @@ public: virtual bool pressButton(Base::Vector2D onSketchPos) { if (Mode == STATUS_SEEK_First) { - // remember our first point - firstVertex = getHighestVertexIndex() + 1; - firstCurve = getHighestCurveIndex() + 1; - // TODO: here we should check if there is a preselected point - // and set up a transition from the neighbouring segment. + + EditCurve[0] = onSketchPos; // this may be overwritten if previousCurve is found + + // here we check if there is a preselected point and + // we set up a transition from the neighbouring segment. // (peviousCurve, previousPosId, dirVec, TransitionMode) - // in that case we should set firstCurve and firstVertex to -1 - // in order to disable closing the wire + for (int i=0; i < sugConstr1.size(); i++) + if (sugConstr1[i].Type == Sketcher::Coincident) { + const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(sugConstr1[i].GeoId); + if ((geom->getTypeId() == Part::GeomLineSegment::getClassTypeId() || + geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) && + (sugConstr1[i].PosId == Sketcher::start || + sugConstr1[i].PosId == Sketcher::end)) { + previousCurve = sugConstr1[i].GeoId; + previousPosId = sugConstr1[i].PosId; + updateTransitionData(previousCurve,previousPosId); // -> dirVec, EditMode[0] + if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) + TransitionMode = TRANSITION_MODE_Tangent; + sugConstr1.erase(sugConstr1.begin()+i); // actually we should clear the vector completely + break; + } + } + + // in case a transition is set up, firstCurve and firstVertex should + // remain set to -1 in order to disable closing the wire + if (previousCurve == -1) { + // remember our first point + firstVertex = getHighestVertexIndex() + 1; + firstCurve = getHighestCurveIndex() + 1; + } + if (SegmentMode == SEGMENT_MODE_Line) EditCurve.resize(TransitionMode == TRANSITION_MODE_Free ? 2 : 3); else if (SegmentMode == SEGMENT_MODE_Arc) EditCurve.resize(32); - EditCurve[0] = onSketchPos; Mode = STATUS_SEEK_Second; } else if (Mode == STATUS_SEEK_Second) { @@ -716,7 +738,7 @@ public: sketchgui->drawEdit(EditCurve); sketchgui->purgeHandler(); // no code after this line, Handler get deleted in ViewProvider } - if (sketchgui->getPreselectPoint() == firstVertex) + if (sketchgui->getPreselectPoint() == firstVertex && firstVertex != -1) Mode = STATUS_Close; else Mode = STATUS_Do; @@ -748,9 +770,11 @@ public: } // issue the constraint if (previousCurve != -1) { - int lastCurve = previousCurve+1; - int lastStartPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 2 : 1; - int lastEndPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 1 : 2; + int lastCurve = getHighestCurveIndex(); + Sketcher::PointPos lastStartPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? + Sketcher::end : Sketcher::start; + Sketcher::PointPos lastEndPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? + Sketcher::start : Sketcher::end; // in case of a tangency constraint, the coincident constraint is redundant std::string constrType = "Coincident"; if (!suppressTransition) { @@ -763,7 +787,7 @@ public: Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('%s',%i,%i,%i,%i)) ", sketchgui->getObject()->getNameInDocument(), constrType.c_str(), - previousCurve, previousPosId /* == 2 */, lastCurve, lastStartPosId); + previousCurve, previousPosId, lastCurve, lastStartPosId); if (Mode == STATUS_Close) { int firstGeoId; Sketcher::PointPos firstPosId; @@ -814,32 +838,12 @@ public: // remember the vertex for the next rounds constraint.. previousCurve = getHighestCurveIndex(); - previousPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? 1 : 2; + previousPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? + Sketcher::start : Sketcher::end; // cw arcs are rendered in reverse // setup for the next line segment - // Use updated endPoint as autoconstraints can modify the position - // Need to determine if the previous element was a line or an arc or ??? - const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(getHighestCurveIndex()); - if (geom->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { - const Part::GeomLineSegment *lineSeg = dynamic_cast(geom); - EditCurve[0] = Base::Vector2D(lineSeg->getEndPoint().x, lineSeg->getEndPoint().y); - dirVec.Set(lineSeg->getEndPoint().x - lineSeg->getStartPoint().x, - lineSeg->getEndPoint().y - lineSeg->getStartPoint().y, - 0.f); - } - else if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { - assert(SegmentMode == SEGMENT_MODE_Arc); - const Part::GeomArcOfCircle *arcSeg = dynamic_cast(geom); - if (startAngle > endAngle) { - EditCurve[0] = Base::Vector2D(arcSeg->getStartPoint().x,arcSeg->getStartPoint().y); - dirVec = Base::Vector3d(0.f,0.f,-1.0) % (arcSeg->getStartPoint()-arcSeg->getCenter()); - } - else { // cw arcs are rendered in reverse - EditCurve[0] = Base::Vector2D(arcSeg->getEndPoint().x,arcSeg->getEndPoint().y); - dirVec = Base::Vector3d(0.f,0.f,1.0) % (arcSeg->getEndPoint()-arcSeg->getCenter()); - } - } - dirVec.Normalize(); + // calculate dirVec and EditCurve[0] + updateTransitionData(previousCurve,previousPosId); applyCursor(); Mode = STATUS_SEEK_Second; @@ -868,13 +872,40 @@ protected: std::vector EditCurve; int firstVertex; int firstCurve; - int previousPosId; int previousCurve; + Sketcher::PointPos previousPosId; std::vector sugConstr1, sugConstr2; Base::Vector2D CenterPoint; Base::Vector3d dirVec; float startAngle, endAngle, arcRadius; + + void updateTransitionData(int GeoId, Sketcher::PointPos PosId) { + + // Use updated startPoint/endPoint as autoconstraints can modify the position + const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(GeoId); + if (geom->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { + const Part::GeomLineSegment *lineSeg = dynamic_cast(geom); + EditCurve[0] = Base::Vector2D(lineSeg->getEndPoint().x, lineSeg->getEndPoint().y); + dirVec.Set(lineSeg->getEndPoint().x - lineSeg->getStartPoint().x, + lineSeg->getEndPoint().y - lineSeg->getStartPoint().y, + 0.f); + if (PosId == Sketcher::start) + dirVec *= -1; + } + else if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { + const Part::GeomArcOfCircle *arcSeg = dynamic_cast(geom); + if (PosId == Sketcher::start) { + EditCurve[0] = Base::Vector2D(arcSeg->getStartPoint().x,arcSeg->getStartPoint().y); + dirVec = Base::Vector3d(0.f,0.f,-1.0) % (arcSeg->getStartPoint()-arcSeg->getCenter()); + } + else { + EditCurve[0] = Base::Vector2D(arcSeg->getEndPoint().x,arcSeg->getEndPoint().y); + dirVec = Base::Vector3d(0.f,0.f,1.0) % (arcSeg->getEndPoint()-arcSeg->getCenter()); + } + } + dirVec.Normalize(); + } }; From 7644248953483af3dbc8b04b45cc5b848c9cf3dc Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 6 Aug 2012 18:00:50 -0300 Subject: [PATCH 29/98] Arch: Fixed typo --- src/Mod/Arch/ArchWall.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index b74f9415b..2f8e7d900 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -356,7 +356,7 @@ class _Wall(ArchComponent.Component): # computing shape base = None if obj.Base.isDerivedFrom("Part::Feature"): - if obj.Base.isValid() and (not obj.Base.Shape.isNull()): + if obj.Base.Shape.isValid() and (not obj.Base.Shape.isNull()): base = obj.Base.Shape.copy() if base.Solids: pass From db2ccb31b40685daf31b36a6b397643954c357ac Mon Sep 17 00:00:00 2001 From: logari81 Date: Mon, 6 Aug 2012 23:05:31 +0200 Subject: [PATCH 30/98] Sketcher: improve position text during geometry creation --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 47 +++++++++++++++++---- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 2 +- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index f45f9d54d..f008aa82b 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -142,15 +142,21 @@ public: virtual void mouseMove(Base::Vector2D onSketchPos) { - setPositionText(onSketchPos); - if (Mode==STATUS_SEEK_First) { + setPositionText(onSketchPos); if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2D(0.f,0.f))) { renderSuggestConstraintsCursor(sugConstr1); return; } } else if (Mode==STATUS_SEEK_Second){ + float length = (onSketchPos - EditCurve[0]).Length(); + float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2D(1.f,0.f)); + char buf[40]; + sprintf(buf, " (%.1f,%.1f°)", length, angle * 180 / M_PI); + std::string text = buf; + setPositionText(onSketchPos, text); + EditCurve[1] = onSketchPos; sketchgui->drawEdit(EditCurve); if (seekAutoConstraint(sugConstr2, onSketchPos, onSketchPos - EditCurve[0])) { @@ -301,15 +307,22 @@ public: virtual void mouseMove(Base::Vector2D onSketchPos) { - setPositionText(onSketchPos); if (Mode==STATUS_SEEK_First) { + setPositionText(onSketchPos); if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2D(0.f,0.f))) { renderSuggestConstraintsCursor(sugConstr1); return; } } else if (Mode==STATUS_SEEK_Second) { + float dx = onSketchPos.fX - EditCurve[0].fX; + float dy = onSketchPos.fY - EditCurve[0].fY; + char buf[40]; + sprintf(buf, " (%.1f x %.1f)", dx, dy); + std::string text = buf; + setPositionText(onSketchPos, text); + EditCurve[2] = onSketchPos; EditCurve[1] = Base::Vector2D(onSketchPos.fX ,EditCurve[0].fY); EditCurve[3] = Base::Vector2D(EditCurve[0].fX,onSketchPos.fY); @@ -596,8 +609,8 @@ public: virtual void mouseMove(Base::Vector2D onSketchPos) { suppressTransition = false; - setPositionText(onSketchPos); if (Mode==STATUS_SEEK_First) { + setPositionText(onSketchPos); if (seekAutoConstraint(sugConstr1, onSketchPos, Base::Vector2D(0.f,0.f))) { renderSuggestConstraintsCursor(sugConstr1); return; @@ -622,7 +635,17 @@ public: EditCurve[1].ProjToLine(EditCurve[2] - EditCurve[0], Perpendicular); EditCurve[1] = EditCurve[0] + EditCurve[1]; } + sketchgui->drawEdit(EditCurve); + + float length = (EditCurve[1] - EditCurve[0]).Length(); + float angle = (EditCurve[1] - EditCurve[0]).GetAngle(Base::Vector2D(1.f,0.f)); + + char buf[40]; + sprintf(buf, " (%.1f,%.1f°)", length, angle * 180 / M_PI); + std::string text = buf; + setPositionText(EditCurve[1], text); + if (TransitionMode == TRANSITION_MODE_Free) { if (seekAutoConstraint(sugConstr2, onSketchPos, onSketchPos - EditCurve[0])) { renderSuggestConstraintsCursor(sugConstr2); @@ -680,6 +703,12 @@ public: EditCurve[31] = EditCurve[0]; sketchgui->drawEdit(EditCurve); + + char buf[40]; + sprintf(buf, " (%.1fR,%.1f°)", std::abs(arcRadius), arcAngle * 180 / M_PI); + std::string text = buf; + setPositionText(onSketchPos, text); + if (seekAutoConstraint(sugConstr2, onSketchPos, Base::Vector2D(0.f,0.f))) { renderSuggestConstraintsCursor(sugConstr2); return; @@ -1017,10 +1046,10 @@ public: // Display radius and start angle float radius = (onSketchPos - EditCurve[0]).Length(); - float angle = atan2f(dy_ , dx_) * 180 / M_PI; + float angle = atan2f(dy_ , dx_); char buf[40]; - sprintf( buf, " (R%.1f,%.1f)", radius, angle); + sprintf(buf, " (%.1fR,%.1f°)", radius, angle * 180 / M_PI); std::string text = buf; setPositionText(onSketchPos, text); @@ -1042,11 +1071,11 @@ public: EditCurve[i] = Base::Vector2D(CenterPoint.fX + dx, CenterPoint.fY + dy); } - // Display radius and end angle + // Display radius and arc angle float radius = (onSketchPos - EditCurve[0]).Length(); char buf[40]; - sprintf( buf, " (R%.1f,%.1f)", radius, arcAngle * 180 / M_PI); + sprintf(buf, " (%.1fR,%.1f°)", radius, arcAngle * 180 / M_PI); std::string text = buf; setPositionText(onSketchPos, text); @@ -1256,7 +1285,7 @@ public: float radius = (onSketchPos - EditCurve[0]).Length(); char buf[40]; - sprintf( buf, "R%.1f", radius); + sprintf(buf, " (%.1fR)", radius); std::string text = buf; setPositionText(onSketchPos, text); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 981fee2c9..40b2a5ae4 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2834,7 +2834,7 @@ void ViewProviderSketch::setPositionText(const Base::Vector2D &Pos, const std::s void ViewProviderSketch::setPositionText(const Base::Vector2D &Pos) { char buf[40]; - sprintf( buf, " (%.1f,%.1f)", Pos.fX,Pos.fY ); + sprintf(buf, " (%.1f,%.1f)", Pos.fX, Pos.fY); edit->textX->string = buf; edit->textPos->translation = SbVec3f(Pos.fX,Pos.fY,zText); } From fef08056a14a458e380ecde489805b8d1b871942 Mon Sep 17 00:00:00 2001 From: logari81 Date: Tue, 7 Aug 2012 01:21:45 +0200 Subject: [PATCH 31/98] Sketcher, Issue 0000808: fix one more issue with restoring of external geometry --- src/Mod/Sketcher/App/SketchObject.cpp | 4 ++-- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 82813a607..1c2bd9a33 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -1350,6 +1350,8 @@ void SketchObject::rebuildExternalGeometry(void) break; } } + + rebuildVertexIndex(); } std::vector SketchObject::getCompleteGeometry(void) const @@ -1491,8 +1493,6 @@ void SketchObject::Restore(XMLReader &reader) { // read the father classes Part::Part2DObject::Restore(reader); - Constraints.acceptGeometry(getCompleteGeometry()); - rebuildVertexIndex(); } void SketchObject::onChanged(const App::Property* prop) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 40b2a5ae4..7c0072a16 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -1716,7 +1716,7 @@ void ViewProviderSketch::draw(bool temp) Points.push_back(start); Points.push_back(end); } - else if ((*it)->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { // add a circle + else if ((*it)->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { // add a bspline const Part::GeomBSplineCurve *spline = dynamic_cast(*it); Handle_Geom_BSplineCurve curve = Handle_Geom_BSplineCurve::DownCast(spline->handle()); From ba7be4f798d1eb85698362581690a7c64982037a Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 7 Aug 2012 10:59:54 +0200 Subject: [PATCH 32/98] 0000813: set colors dialog crash --- src/Gui/Document.cpp | 3 +++ src/Gui/TaskView/TaskDialog.h | 4 ++++ src/Mod/Part/Gui/TaskFaceColors.cpp | 28 ++++++++++++++++++++++ src/Mod/Part/Gui/TaskFaceColors.h | 7 ++++++ src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp | 3 +-- 5 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 972d9d148..512f39186 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -187,6 +187,9 @@ bool Document::setEdit(Gui::ViewProvider* p, int ModNum) View3DInventor *activeView = dynamic_cast(getActiveView()); if (activeView && activeView->getViewer()->setEditingViewProvider(p,ModNum)) { d->_pcInEdit = p; + Gui::TaskView::TaskDialog* dlg = Gui::Control().activeDialog(); + if (dlg) + dlg->setDocumentName(this->getDocument()->getName()); if (d->_pcInEdit->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId())) signalInEdit(*(static_cast(d->_pcInEdit))); } diff --git a/src/Gui/TaskView/TaskDialog.h b/src/Gui/TaskView/TaskDialog.h index f6a0e402f..ec92a9dd2 100644 --- a/src/Gui/TaskView/TaskDialog.h +++ b/src/Gui/TaskView/TaskDialog.h @@ -69,6 +69,8 @@ public: const std::string& getDocumentName() const { return documentName; } + void setDocumentName(const std::string& doc) + { documentName = doc; } virtual bool isAllowedAlterDocument(void) const { return false; } virtual bool isAllowedAlterView(void) const @@ -94,6 +96,8 @@ protected: /// List of TaskBoxes of that dialog std::vector Content; ButtonPosition pos; + +private: std::string documentName; }; diff --git a/src/Mod/Part/Gui/TaskFaceColors.cpp b/src/Mod/Part/Gui/TaskFaceColors.cpp index 61a112e90..ba593b5da 100644 --- a/src/Mod/Part/Gui/TaskFaceColors.cpp +++ b/src/Mod/Part/Gui/TaskFaceColors.cpp @@ -30,11 +30,15 @@ # include #endif +#include +#include + #include "ui_TaskFaceColors.h" #include "TaskFaceColors.h" #include "ViewProviderExt.h" #include +#include #include #include @@ -69,15 +73,20 @@ namespace PartGui { class FaceColors::Private { public: + typedef boost::signals::connection Connection; Ui_TaskFaceColors* ui; ViewProviderPartExt* vp; App::DocumentObject* obj; + Gui::Document* doc; std::vector current,perface; QSet index; + Connection connectDelDoc; + Connection connectDelObj; Private(ViewProviderPartExt* vp) : ui(new Ui_TaskFaceColors()), vp(vp) { obj = vp->getObject(); + doc = Gui::Application::Instance->getDocument(obj->getDocument()); // build up map edge->face TopTools_IndexedMapOfShape mapOfShape; @@ -110,14 +119,33 @@ FaceColors::FaceColors(ViewProviderPartExt* vp, QWidget* parent) FaceSelection* gate = new FaceSelection(d->vp->getObject()); Gui::Selection().addSelectionGate(gate); + + d->connectDelDoc = Gui::Application::Instance->signalDeleteDocument.connect(boost::bind + (&FaceColors::slotDeleteDocument, this, _1)); + d->connectDelObj = Gui::Application::Instance->signalDeletedObject.connect(boost::bind + (&FaceColors::slotDeleteObject, this, _1)); } FaceColors::~FaceColors() { Gui::Selection().rmvSelectionGate(); + d->connectDelDoc.disconnect(); + d->connectDelObj.disconnect(); delete d; } +void FaceColors::slotDeleteDocument(const Gui::Document& Doc) +{ + if (d->doc == &Doc) + Gui::Control().closeDialog(); +} + +void FaceColors::slotDeleteObject(const Gui::ViewProvider& obj) +{ + if (d->vp == &obj) + Gui::Control().closeDialog(); +} + void FaceColors::on_defaultButton_clicked() { std::fill(d->perface.begin(), d->perface.end(), d->vp->ShapeColor.getValue()); diff --git a/src/Mod/Part/Gui/TaskFaceColors.h b/src/Mod/Part/Gui/TaskFaceColors.h index eec3035ba..3ba96c9ce 100644 --- a/src/Mod/Part/Gui/TaskFaceColors.h +++ b/src/Mod/Part/Gui/TaskFaceColors.h @@ -27,6 +27,11 @@ #include #include +namespace Gui { + class Document; + class ViewProvider; +} + namespace PartGui { class ViewProviderPartExt; @@ -49,6 +54,8 @@ private Q_SLOTS: protected: void onSelectionChanged(const Gui::SelectionChanges& msg); void changeEvent(QEvent *e); + void slotDeleteDocument(const Gui::Document&); + void slotDeleteObject(const Gui::ViewProvider&); private: class Private; diff --git a/src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp b/src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp index e8e2451d8..0253bb4c3 100644 --- a/src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp +++ b/src/Mod/Sketcher/Gui/TaskDlgEditSketch.cpp @@ -42,7 +42,6 @@ TaskDlgEditSketch::TaskDlgEditSketch(ViewProviderSketch *sketchView) : TaskDialog(),sketchView(sketchView) { assert(sketchView); - documentName = sketchView->getObject()->getDocument()->getName(); Constraints = new TaskSketcherConstrains(sketchView); General = new TaskSketcherGeneral(sketchView); Messages = new TaskSketcherMessages(sketchView); @@ -77,7 +76,7 @@ bool TaskDlgEditSketch::accept() bool TaskDlgEditSketch::reject() { - std::string document = documentName; // needed because resetEdit() deletes this instance + std::string document = getDocumentName(); // needed because resetEdit() deletes this instance Gui::Command::doCommand(Gui::Command::Gui,"Gui.getDocument('%s').resetEdit()", document.c_str()); Gui::Command::doCommand(Gui::Command::Doc,"App.getDocument('%s').recompute()", document.c_str()); From 70d4048b38725d96cd4cbe16a6606b0c31a64eb7 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 9 Aug 2012 17:50:07 -0300 Subject: [PATCH 33/98] Arch: General optimization + More severe tests when constructing shapes + Allow to quickly export Arch views to DXF --- src/Mod/Arch/ArchSectionPlane.py | 42 +++++++---- src/Mod/Arch/ArchStructure.py | 7 +- src/Mod/Arch/ArchWall.py | 9 ++- src/Mod/Draft/importDXF.py | 117 +++++++++++++++++-------------- 4 files changed, 105 insertions(+), 70 deletions(-) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 7a65180a8..8dbb779ab 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -191,7 +191,7 @@ class _ArchDrawingView: obj.LineWidth = 0.35 obj.ShowCut = False obj.Proxy = self - self.Type = "DrawingView" + self.Type = "ArchSectionView" def execute(self, obj): if obj.Source: @@ -207,16 +207,34 @@ class _ArchDrawingView: def __setstate__(self,state): return None - def getShape(self, obj): + def getDisplayModes(self,vobj): + modes=["Default"] + return modes + + def setDisplayMode(self,mode): + return mode + + def getFlatShape(self): "returns a flat shape representation of the view" if hasattr(self,"baseshape"): import Drawing - [V0,V1,H0,H1] = Drawing.project(self.baseshape,direction) + [V0,V1,H0,H1] = Drawing.project(self.baseshape,self.direction) return V0.Edges+V1.Edges else: print "No shape has been computed yet" return None + def getDXF(self): + "returns a flat shape representation of the view" + if hasattr(self,"baseshape"): + import Drawing + [V0,V1,H0,H1] = Drawing.project(self.baseshape,self.direction) + DxfOutput = Drawing.projectToDXF(self.baseshape,self.direction) + return DxfOutput + else: + print "No shape has been computed yet" + return None + def updateSVG(self, obj,join=False): "encapsulates a svg fragment into a transformation node" import Part, DraftGeomUtils @@ -252,7 +270,7 @@ class _ArchDrawingView: hshapes = [] sshapes = [] p = FreeCAD.Placement(obj.Source.Placement) - direction = p.Rotation.multVec(FreeCAD.Vector(0,0,1)) + self.direction = p.Rotation.multVec(FreeCAD.Vector(0,0,1)) for o in objs: if o.isDerivedFrom("Part::Feature"): if o.Shape.isValid(): @@ -265,23 +283,17 @@ class _ArchDrawingView: for sh in shapes: for sol in sh.Solids: c = sol.cut(cutvolume) - nsh.append(c) s = sol.section(cutface) + nsh.extend(c.Solids) sshapes.append(s) if obj.ShowCut: c = sol.cut(invcutvolume) hshapes.append(c) shapes = nsh if shapes: + self.shapes = shapes self.baseshape = Part.makeCompound(shapes) - svgf = Drawing.projectToSVG(self.baseshape,direction) - #if shapes: - # base = shapes.pop().copy() - #for sh in shapes: - # try: - # base = base.fuse(sh) - # except: - # print "unable to fuse, passing..." + svgf = Drawing.projectToSVG(self.baseshape,self.direction) if svgf: svgf = svgf.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') svgf = svgf.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') @@ -289,7 +301,7 @@ class _ArchDrawingView: svg += svgf if hshapes: hshapes = Part.makeCompound(hshapes) - svgh = Drawing.projectToSVG(hshapes,direction) + svgh = Drawing.projectToSVG(hshapes,self.direction) if svgh: svgh = svgh.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') svgh = svgh.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') @@ -306,7 +318,7 @@ class _ArchDrawingView: if (w.ShapeType == "Wire") and w.isClosed(): faces.append(Part.Face(w)) sshapes = Part.makeCompound(faces) - svgs = Drawing.projectToSVG(sshapes,direction) + svgs = Drawing.projectToSVG(sshapes,self.direction) if svgs: svgs = svgs.replace('stroke-width="0.35"','stroke-width="' + str(linewidth*st) + 'px"') svgs = svgs.replace('stroke-width="1"','stroke-width="' + str(linewidth*st) + 'px"') diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 175bd5f94..4bf4180f7 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -222,7 +222,12 @@ class _Structure(ArchComponent.Component): # finalizing else: if base: - if not base.isNull(): + if base.isValid() and (not base.isNull()) and base.Solids: + if base.Volume < 0: + base.reverse() + if base.Volume < 0: + FreeCAD.Console.PrintError(str(translate("Arch","Couldn't compute the wall shape"))) + return base = base.removeSplitter() obj.Shape = base if not DraftGeomUtils.isNull(pl): diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 2f8e7d900..85507bf2d 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -381,6 +381,7 @@ class _Wall(ArchComponent.Component): else: base = None FreeCAD.Console.PrintError(str(translate("Arch","Error: Invalid base object"))) + elif obj.Base.isDerivedFrom("Mesh::Feature"): if obj.Base.Mesh.isSolid(): if obj.Base.Mesh.countComponents() == 1: @@ -392,6 +393,7 @@ class _Wall(ArchComponent.Component): obj.Base.ViewObject.show() if base: + for app in obj.Additions: if Draft.getType(app) == "Window": # window @@ -427,7 +429,12 @@ class _Wall(ArchComponent.Component): base = base.cut(hole.Shape) hole.ViewObject.hide() # to be removed - if not base.isNull(): + if base.isValid() and (not base.isNull()) and base.Solids: + if base.Volume < 0: + base.reverse() + if base.Volume < 0: + FreeCAD.Console.PrintError(str(translate("Arch","Couldn't compute the wall shape"))) + return try: base = base.removeSplitter() except: diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index ba8fa2909..8efd01723 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -1356,65 +1356,76 @@ def export(objectslist,filename,nospline=False): "called when freecad exports a file. If nospline=True, bsplines are exported as straight segs" global exportList exportList = objectslist - dxf = dxfLibrary.Drawing() - if (len(exportList) == 1) and (exportList[0].isDerivedFrom("Drawing::FeaturePage")): + + if (len(exportList) == 1) and (Draft.getType(exportList[0]) == "ArchSectionView"): + # arch view: export it "as is" + dxf = exportList[0].Proxy.getDXF() + if dxf: + f = open(filename,"w") + f.write(dxf) + f.close() + + elif (len(exportList) == 1) and (exportList[0].isDerivedFrom("Drawing::FeaturePage")): + # page: special hack-export! (see below) exportPage(exportList[0],filename) - return - for ob in exportList: - print "processing ",ob.Name - if ob.isDerivedFrom("Part::Feature"): - if not ob.Shape.isNull(): - if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetBool("dxfmesh"): - writeMesh(ob,dxf) - else: - if ob.Shape.ShapeType == 'Compound': - if (len(ob.Shape.Wires) == 1): - # only one wire in this compound, no lone edge -> polyline - if (len(ob.Shape.Wires[0].Edges) == len(ob.Shape.Edges)): - writeShape(ob,dxf,nospline) + + else: + # other cases, treat edges + dxf = dxfLibrary.Drawing() + for ob in exportList: + print "processing ",ob.Name + if ob.isDerivedFrom("Part::Feature"): + if not ob.Shape.isNull(): + if FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetBool("dxfmesh"): + writeMesh(ob,dxf) + else: + if ob.Shape.ShapeType == 'Compound': + if (len(ob.Shape.Wires) == 1): + # only one wire in this compound, no lone edge -> polyline + if (len(ob.Shape.Wires[0].Edges) == len(ob.Shape.Edges)): + writeShape(ob,dxf,nospline) + else: + # 1 wire + lone edges -> block + block = getBlock(ob) + dxf.blocks.append(block) + dxf.append(dxfLibrary.Insert(name=ob.Name.upper())) else: - # 1 wire + lone edges -> block + # all other cases: block block = getBlock(ob) dxf.blocks.append(block) dxf.append(dxfLibrary.Insert(name=ob.Name.upper())) else: - # all other cases: block - block = getBlock(ob) - dxf.blocks.append(block) - dxf.append(dxfLibrary.Insert(name=ob.Name.upper())) - else: - writeShape(ob,dxf,nospline) - - elif (ob.Type == "App::Annotation"): - - # texts - - # temporary - as dxfLibrary doesn't support mtexts well, we use several single-line texts - # well, anyway, at the moment, Draft only writes single-line texts, so... - for text in ob.LabelText: - point = DraftVecUtils.tup(FreeCAD.Vector(ob.Position.x, - ob.Position.y-ob.LabelText.index(text), - ob.Position.z)) - if gui: height = float(ob.ViewObject.FontSize) - else: height = 1 - dxf.append(dxfLibrary.Text(text,point,height=height, - color=getACI(ob,text=True), - style='STANDARD', - layer=getGroup(ob,exportList))) - - elif 'Dimline' in ob.PropertiesList: - p1 = DraftVecUtils.tup(ob.Start) - p2 = DraftVecUtils.tup(ob.End) - base = Part.Line(ob.Start,ob.End).toShape() - proj = DraftGeomUtils.findDistance(ob.Dimline,base) - if not proj: - pbase = DraftVecUtils.tup(ob.End) - else: - pbase = DraftVecUtils.tup(ob.End.add(DraftVecUtils.neg(proj))) - dxf.append(dxfLibrary.Dimension(pbase,p1,p2,color=getACI(ob), - layer=getGroup(ob,exportList))) - - dxf.saveas(filename) + writeShape(ob,dxf,nospline) + + elif Draft.getType(ob) == "Annotation": + # texts + + # temporary - as dxfLibrary doesn't support mtexts well, we use several single-line texts + # well, anyway, at the moment, Draft only writes single-line texts, so... + for text in ob.LabelText: + point = DraftVecUtils.tup(FreeCAD.Vector(ob.Position.x, + ob.Position.y-ob.LabelText.index(text), + ob.Position.z)) + if gui: height = float(ob.ViewObject.FontSize) + else: height = 1 + dxf.append(dxfLibrary.Text(text,point,height=height, + color=getACI(ob,text=True), + style='STANDARD', + layer=getGroup(ob,exportList))) + + elif Draft.getType(ob) == "Dimension": + p1 = DraftVecUtils.tup(ob.Start) + p2 = DraftVecUtils.tup(ob.End) + base = Part.Line(ob.Start,ob.End).toShape() + proj = DraftGeomUtils.findDistance(ob.Dimline,base) + if not proj: + pbase = DraftVecUtils.tup(ob.End) + else: + pbase = DraftVecUtils.tup(ob.End.add(DraftVecUtils.neg(proj))) + dxf.append(dxfLibrary.Dimension(pbase,p1,p2,color=getACI(ob), + layer=getGroup(ob,exportList))) + + dxf.saveas(filename) FreeCAD.Console.PrintMessage("successfully exported "+filename+"\r\n") def exportPage(page,filename): From 1a46232a53d80f96e865a8659cec1faf81553ecf Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 9 Aug 2012 20:02:54 -0300 Subject: [PATCH 34/98] Arch: small bugfix in structure object --- src/Mod/Arch/ArchStructure.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Arch/ArchStructure.py b/src/Mod/Arch/ArchStructure.py index 4bf4180f7..e08aaf275 100644 --- a/src/Mod/Arch/ArchStructure.py +++ b/src/Mod/Arch/ArchStructure.py @@ -168,9 +168,9 @@ class _Structure(ArchComponent.Component): base = Part.Face(base.Wires[0]) base = base.extrude(normal) elif obj.Base.isDerivedFrom("Mesh::Feature"): - if obj.Mesh.isSolid(): - if obj.Mesh.countComponents() == 1: - sh = ArchCommands.getShapeFromMesh(obj.Mesh) + if obj.Base.Mesh.isSolid(): + if obj.Base.Mesh.countComponents() == 1: + sh = ArchCommands.getShapeFromMesh(obj.Base.Mesh) if sh.isClosed() and sh.isValid() and sh.Solids: base = sh else: From 408e1dc8e16a4f00f9662ea6101d45505ae0bc14 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 10 Aug 2012 11:04:26 +0200 Subject: [PATCH 35/98] Allow to customize cursor text color in sketcher --- src/Gui/DlgSettingsViewColor.cpp | 2 + src/Gui/DlgSettingsViewColor.ui | 47 +++++++++++++++++---- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 7 ++- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/Gui/DlgSettingsViewColor.cpp b/src/Gui/DlgSettingsViewColor.cpp index 1449489bd..aff8c5067 100644 --- a/src/Gui/DlgSettingsViewColor.cpp +++ b/src/Gui/DlgSettingsViewColor.cpp @@ -66,6 +66,7 @@ void DlgSettingsViewColor::saveSettings() checkBoxSelection->onSave(); HighlightColor->onSave(); SelectionColor->onSave(); + CursorTextColor->onSave(); EditedEdgeColor->onSave(); EditedVertexColor->onSave(); ConstructionColor->onSave(); @@ -85,6 +86,7 @@ void DlgSettingsViewColor::loadSettings() checkBoxSelection->onRestore(); HighlightColor->onRestore(); SelectionColor->onRestore(); + CursorTextColor->onRestore(); EditedEdgeColor->onRestore(); EditedVertexColor->onRestore(); ConstructionColor->onRestore(); diff --git a/src/Gui/DlgSettingsViewColor.ui b/src/Gui/DlgSettingsViewColor.ui index e17848a4e..709e7675b 100644 --- a/src/Gui/DlgSettingsViewColor.ui +++ b/src/Gui/DlgSettingsViewColor.ui @@ -7,7 +7,7 @@ 0 0 601 - 407 + 445
@@ -369,7 +369,7 @@ 6 - + @@ -382,28 +382,28 @@ - + Edited vertex color - + Construction geometry - + Fully constrained geometry - + The color of construction geometry in edit mode @@ -423,7 +423,7 @@ - + The color of fully constrained geometry in edit mode @@ -443,7 +443,7 @@ - + The color of vertices being edited @@ -463,7 +463,7 @@ - + The color of edges being edited @@ -483,6 +483,30 @@ + + + + Cursor text color + + + + + + + + 0 + 0 + 255 + + + + CursorTextColor + + + View + + + @@ -530,6 +554,11 @@ checkBoxSelection HighlightColor SelectionColor + CursorTextColor + EditedEdgeColor + EditedVertexColor + ConstructionColor + FullyConstrainedColor radioButtonSimple radioButtonGradient checkMidColor diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 7c0072a16..ac165e199 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2735,9 +2735,14 @@ void ViewProviderSketch::createEditInventorNodes(void) edit->EditCurveSet = new SoLineSet; edit->EditRoot->addChild(edit->EditCurveSet); + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); + float transparency; + SbColor cursorTextColor(0,0,1); + cursorTextColor.setPackedValue((uint32_t)hGrp->GetUnsigned("CursorTextColor", cursorTextColor.getPackedValue()), transparency); + // stuff for the edit coordinates ++++++++++++++++++++++++++++++++++++++ SoMaterial *EditMaterials = new SoMaterial; - EditMaterials->diffuseColor = SbColor(0,0,1); + EditMaterials->diffuseColor = cursorTextColor; edit->EditRoot->addChild(EditMaterials); SoSeparator *Coordsep = new SoSeparator(); From 0d351e98e20982384282aab554b144c40d9cbe63 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 11 Aug 2012 10:58:54 +0200 Subject: [PATCH 36/98] Proper handling of SystemExitException in Python --- src/Gui/Application.cpp | 22 +++++++++++++++++----- src/Gui/Command.cpp | 3 +++ src/Gui/Macro.cpp | 2 +- src/Gui/MainWindow.cpp | 3 +-- src/Gui/PythonConsole.cpp | 2 +- src/Main/MainGui.cpp | 3 +++ src/Mod/Web/Gui/BrowserView.cpp | 14 ++++++++------ src/Mod/Web/Gui/BrowserView.h | 6 +++--- 8 files changed, 37 insertions(+), 18 deletions(-) diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index b7b8a8ea3..53dec5681 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -1457,9 +1457,10 @@ namespace Gui { */ class GUIApplication : public GUIApplicationNativeEventAware { + int systemExit; public: - GUIApplication(int & argc, char ** argv) - : GUIApplicationNativeEventAware(argc, argv) + GUIApplication(int & argc, char ** argv, int exitcode) + : GUIApplicationNativeEventAware(argc, argv), systemExit(exitcode) { } @@ -1480,6 +1481,10 @@ public: else return QApplication::notify(receiver, event); } + catch (const Base::SystemExitException&) { + qApp->exit(systemExit); + return true; + } catch (const Base::Exception& e) { Base::Console().Error("Unhandled Base::Exception caught in GUIApplication::notify.\n" "The error message is: %s\n", e.what()); @@ -1543,7 +1548,8 @@ void Application::runApplication(void) Base::Console().Log("Init: Creating Gui::Application and QApplication\n"); // if application not yet created by the splasher int argc = App::Application::GetARGC(); - GUIApplication mainApp(argc, App::Application::GetARGV()); + int systemExit = 1000; + GUIApplication mainApp(argc, App::Application::GetARGV(), systemExit); // set application icon and window title const std::map& cfg = App::Application::Config(); std::map::const_iterator it; @@ -1716,9 +1722,15 @@ void Application::runApplication(void) Base::Console().Log("Init: Entering event loop\n"); try { - mainApp.exec(); + int ret = mainApp.exec(); + if (ret == systemExit) + throw Base::SystemExitException(); } - catch(...) { + catch (const Base::SystemExitException&) { + Base::Console().Message("System exit\n"); + throw; + } + catch (...) { // catching nasty stuff coming out of the event loop App::Application::destructObserver(); Base::Console().Error("Event loop left through unhandled exception\n"); diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp index 40fdb9557..f66adf95e 100644 --- a/src/Gui/Command.cpp +++ b/src/Gui/Command.cpp @@ -281,6 +281,9 @@ void Command::invoke(int i) if (isActive()) activated( i ); } + catch (const Base::SystemExitException&) { + throw; + } catch (Base::PyException &e) { e.ReportException(); Base::Console().Error("Stack Trace: %s\n",e.getStackTrace().c_str()); diff --git a/src/Gui/Macro.cpp b/src/Gui/Macro.cpp index 1ac796478..20a7f49c4 100644 --- a/src/Gui/Macro.cpp +++ b/src/Gui/Macro.cpp @@ -233,7 +233,7 @@ void MacroManager::run(MacroType eType,const char *sName) Base::Interpreter().runFile(sName, this->localEnv); } catch (const Base::SystemExitException&) { - qApp->quit(); + throw; } catch (const Base::PyException& e) { Base::Console().Error("%s%s: %s\n", diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index a13a16c2c..cccdf146b 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1157,8 +1157,7 @@ void MainWindow::delayedStartup() App::Application::processCmdLineFiles(); } catch (const Base::SystemExitException&) { - QApplication::quit(); - return; + throw; } const std::map& cfg = App::Application::Config(); diff --git a/src/Gui/PythonConsole.cpp b/src/Gui/PythonConsole.cpp index 780789b71..eaa7f53cb 100644 --- a/src/Gui/PythonConsole.cpp +++ b/src/Gui/PythonConsole.cpp @@ -709,7 +709,7 @@ void PythonConsole::runSource(const QString& line) } if (ret == QMessageBox::Yes) { PyErr_Clear(); - qApp->quit(); + throw; } else { PyErr_Clear(); diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp index 5552bd6b4..288bc3df2 100644 --- a/src/Main/MainGui.cpp +++ b/src/Main/MainGui.cpp @@ -300,6 +300,9 @@ int main( int argc, char ** argv ) else App::Application::runApplication(); } + catch (const Base::SystemExitException&) { + exit(0); + } catch (const Base::Exception& e) { Base::Console().Error("%s\n", e.what()); } diff --git a/src/Mod/Web/Gui/BrowserView.cpp b/src/Mod/Web/Gui/BrowserView.cpp index 81c02dd8b..04739a351 100644 --- a/src/Mod/Web/Gui/BrowserView.cpp +++ b/src/Mod/Web/Gui/BrowserView.cpp @@ -114,7 +114,7 @@ BrowserView::BrowserView(QWidget* parent) connect(view, SIGNAL(loadProgress(int)), this, SLOT(onLoadProgress(int))); connect(view, SIGNAL(loadFinished(bool)), - this, SLOT(onLoadFinished())); + this, SLOT(onLoadFinished(bool))); connect(view, SIGNAL(linkClicked(const QUrl &)), this, SLOT(onLinkClicked(const QUrl &))); connect(view->page(), SIGNAL(downloadRequested(const QNetworkRequest &)), @@ -242,12 +242,14 @@ void BrowserView::onLoadProgress(int step) bar->setValue(step); } -void BrowserView::onLoadFinished() +void BrowserView::onLoadFinished(bool ok) { - QProgressBar* bar = Sequencer::instance()->getProgressBar(); - bar->setValue(100); - bar->hide(); - getMainWindow()->statusBar()->showMessage(QString()); + if (ok) { + QProgressBar* bar = Sequencer::instance()->getProgressBar(); + bar->setValue(100); + bar->hide(); + getMainWindow()->statusBar()->showMessage(QString()); + } isLoading = false; } diff --git a/src/Mod/Web/Gui/BrowserView.h b/src/Mod/Web/Gui/BrowserView.h index c32dfd659..553ccd160 100644 --- a/src/Mod/Web/Gui/BrowserView.h +++ b/src/Mod/Web/Gui/BrowserView.h @@ -92,10 +92,10 @@ public: protected Q_SLOTS: void onLoadStarted(); void onLoadProgress(int); - void onLoadFinished(); - void onLinkClicked ( const QUrl & url ) ; + void onLoadFinished(bool); + void onLinkClicked (const QUrl& url); bool chckHostAllowed(const QString& host); - void onDownloadRequested(const QNetworkRequest & request); + void onDownloadRequested(const QNetworkRequest& request); private: WebView* view; From 1859ec25597f3e133af7d07b5b3f12274dd8a2f0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 11 Aug 2012 15:09:08 +0200 Subject: [PATCH 37/98] Add utility class to better debug algorithms --- src/Base/CMakeLists.txt | 3 ++ src/Base/Debugger.cpp | 80 +++++++++++++++++++++++++++++ src/Base/Debugger.h | 76 +++++++++++++++++++++++++++ src/Base/PreCompiled.h | 2 + src/Mod/Mesh/App/Core/Algorithm.cpp | 11 ++++ src/Mod/Mesh/App/Core/Algorithm.h | 4 ++ 6 files changed, 176 insertions(+) create mode 100644 src/Base/Debugger.cpp create mode 100644 src/Base/Debugger.h diff --git a/src/Base/CMakeLists.txt b/src/Base/CMakeLists.txt index 3cab43354..4b5a06170 100644 --- a/src/Base/CMakeLists.txt +++ b/src/Base/CMakeLists.txt @@ -152,6 +152,7 @@ SET(FreeCADBase_XML_SRCS SOURCE_GROUP("XML" FILES ${FreeCADBase_XML_SRCS}) set(FreeCADBase_MOC_HDRS + Debugger.h FutureWatcherProgress.h ) fc_wrap_cpp(FreeCADBase_MOC_SRCS ${FreeCADBase_MOC_HDRS}) @@ -182,6 +183,7 @@ SET(FreeCADBase_CPP_SRCS BoundBoxPyImp.cpp Builder3D.cpp Console.cpp + Debugger.cpp Exception.cpp Factory.cpp FileInfo.cpp @@ -234,6 +236,7 @@ SET(FreeCADBase_HPP_SRCS BoundBox.h Builder3D.h Console.h + Debugger.h Exception.h Factory.h FileInfo.h diff --git a/src/Base/Debugger.cpp b/src/Base/Debugger.cpp new file mode 100644 index 000000000..2b08f0aa4 --- /dev/null +++ b/src/Base/Debugger.cpp @@ -0,0 +1,80 @@ +/*************************************************************************** + * Copyright (c) 2012 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 51 Franklin Street, * + * Fifth Floor, Boston, MA 02110-1301, USA * + * * + ***************************************************************************/ + + +#include "PreCompiled.h" +#ifndef _PreComp_ +# include +# include +#endif + +#include "Debugger.h" +#include "Console.h" + +using namespace Base; + +Debugger::Debugger(QObject* parent) + : QObject(parent), isAttached(false) +{ +} + +Debugger::~Debugger() +{ +} + +void Debugger::attach() +{ + QCoreApplication::instance()->installEventFilter(this); + isAttached = true; +} + +void Debugger::detach() +{ + QCoreApplication::instance()->removeEventFilter(this); + isAttached = false; +} + +bool Debugger::eventFilter(QObject*, QEvent* event) +{ + if (event->type() == QEvent::KeyPress) { + if (loop.isRunning()) { + loop.quit(); + return true; + } + } + + return false; +} + +int Debugger::exec() +{ + if (isAttached) + Base::Console().Message("TO CONTINUE PRESS ANY KEY...\n"); + return loop.exec(); +} + +void Debugger::quit() +{ + loop.quit(); +} + +#include "moc_Debugger.cpp" diff --git a/src/Base/Debugger.h b/src/Base/Debugger.h new file mode 100644 index 000000000..114b7e38b --- /dev/null +++ b/src/Base/Debugger.h @@ -0,0 +1,76 @@ +/*************************************************************************** + * Copyright (c) 2012 Werner Mayer * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 51 Franklin Street, * + * Fifth Floor, Boston, MA 02110-1301, USA * + * * + ***************************************************************************/ + + +#ifndef BASE_DEBUGGER_H +#define BASE_DEBUGGER_H + +#include +#include + +namespace Base { +/** + This is a utility class to break the application at a point to inspect e.g. the result of + an algorithm. + You usually use it like this + \code + ... + Base::Debugger dbg; + dbg.attach(); + dbg.exec(); + ... + \endcode + Or you can connect it with a button and let the user click it in order to continue. + \code + QPushButton* btn = new QPushButton(); + btn->setText("Continue"); + btn->show(); + Base::Debugger dbg; + connect(btn, SIGNAL(clicked()), &dbg, SLOT(quit())); + dbg.exec(); + \endcode + \author Werner Mayer + */ +class BaseExport Debugger : public QObject +{ + Q_OBJECT + +public: + Debugger(QObject* parent=0); + ~Debugger(); + + void attach(); + void detach(); + bool eventFilter(QObject*, QEvent*); + int exec(); + +public Q_SLOTS: + void quit(); + +private: + bool isAttached; + QEventLoop loop; +}; + +} + +#endif // BASE_DEBUGGER_H diff --git a/src/Base/PreCompiled.h b/src/Base/PreCompiled.h index f3b7dba3b..8d9663454 100644 --- a/src/Base/PreCompiled.h +++ b/src/Base/PreCompiled.h @@ -105,6 +105,8 @@ // QtCore #include #include +#include +#include #include #include #include diff --git a/src/Mod/Mesh/App/Core/Algorithm.cpp b/src/Mod/Mesh/App/Core/Algorithm.cpp index f72bba760..828a6675a 100644 --- a/src/Mod/Mesh/App/Core/Algorithm.cpp +++ b/src/Mod/Mesh/App/Core/Algorithm.cpp @@ -255,6 +255,17 @@ float MeshAlgorithm::GetAverageEdgeLength() const return fLen; } +Base::Vector3f MeshAlgorithm::GetGravityPoint() const +{ + Base::Vector3f center; + MeshPointIterator cP(_rclMesh); + for (cP.Init(); cP.More(); cP.Next()) { + center += *cP; + } + + return center / (float)_rclMesh.CountPoints(); +} + void MeshAlgorithm::GetMeshBorders (std::list > &rclBorders) const { std::vector aulAllFacets(_rclMesh.CountFacets()); diff --git a/src/Mod/Mesh/App/Core/Algorithm.h b/src/Mod/Mesh/App/Core/Algorithm.h index 78a4caf5b..7d55d6e94 100644 --- a/src/Mod/Mesh/App/Core/Algorithm.h +++ b/src/Mod/Mesh/App/Core/Algorithm.h @@ -115,6 +115,10 @@ public: * Calculates the average length of edges. */ float GetAverageEdgeLength() const; + /** + * Calculates the gravity point of the mesh. + */ + Base::Vector3f GetGravityPoint() const; /** * Returns all boundaries of the mesh. */ From 7a338f30cb9c16bf678248ab8de3559482bdbbb3 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 11 Aug 2012 18:28:18 -0300 Subject: [PATCH 38/98] 0000634: Draft to Sketch conversion --- src/Mod/Draft/Draft.py | 45 ++++++++++++++++----------------- src/Mod/Draft/DraftGeomUtils.py | 29 +++++++++++---------- src/Mod/Draft/DraftTools.py | 2 +- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index d9e4d0a99..337d49756 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1562,10 +1562,8 @@ def makeSketch(objectslist,autoconstraints=False,addTo=None,name="Sketch"): if tp == "BSpline": print "makeSketch: BSplines not supported" elif tp == "Circle": - if obj.FirstAngle == obj.LastAngle: - nobj.addGeometry(obj.Shape.Edges[0].Curve) - else: - nobj.addGeometry(Part.ArcOfCircle(obj.Shape.Edges[0].Curve,math.radians(obj.FirstAngle),math.radians(obj.LastAngle))) + g = (DraftGeomUtils.geom(obj.Shape.Edges[0],nobj.Placement)) + nobj.addGeometry(g) # TODO add Radius constraits ok = True elif tp == "Rectangle": @@ -1586,25 +1584,26 @@ def makeSketch(objectslist,autoconstraints=False,addTo=None,name="Sketch"): nobj.addConstraint(Constraint("Vertical",last)) ok = True elif tp in ["Wire","Polygon"]: - closed = False - if tp == "Polygon": - closed = True - elif hasattr(obj,"Closed"): - closed = obj.Closed - for edge in obj.Shape.Edges: - nobj.addGeometry(edge.Curve) - if autoconstraints: - last = nobj.GeometryCount - segs = range(last-len(obj.Shape.Edges),last-1) - for seg in segs: - nobj.addConstraint(Constraint("Coincident",seg,EndPoint,seg+1,StartPoint)) - if DraftGeomUtils.isAligned(nobj.Geometry[seg],"x"): - nobj.addConstraint(Constraint("Vertical",seg)) - elif DraftGeomUtils.isAligned(nobj.Geometry[seg],"y"): - nobj.addConstraint(Constraint("Horizontal",seg)) - if closed: - nobj.addConstraint(Constraint("Coincident",last-1,EndPoint,segs[0],StartPoint)) - ok = True + if obj.FilletRadius == 0: + closed = False + if tp == "Polygon": + closed = True + elif hasattr(obj,"Closed"): + closed = obj.Closed + for edge in obj.Shape.Edges: + nobj.addGeometry(edge.Curve) + if autoconstraints: + last = nobj.GeometryCount + segs = range(last-len(obj.Shape.Edges),last-1) + for seg in segs: + nobj.addConstraint(Constraint("Coincident",seg,EndPoint,seg+1,StartPoint)) + if DraftGeomUtils.isAligned(nobj.Geometry[seg],"x"): + nobj.addConstraint(Constraint("Vertical",seg)) + elif DraftGeomUtils.isAligned(nobj.Geometry[seg],"y"): + nobj.addConstraint(Constraint("Horizontal",seg)) + if closed: + nobj.addConstraint(Constraint("Coincident",last-1,EndPoint,segs[0],StartPoint)) + ok = True if (not ok) and obj.isDerivedFrom("Part::Feature"): if not DraftGeomUtils.isPlanar(obj.Shape): print "Error: The given object is not planar and cannot be converted into a sketch." diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index 10ee860a0..441809d22 100755 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -39,14 +39,14 @@ precision = params.GetInt("precision") def vec(edge): - "vec(edge) or vec(line) -- returns a vector from an edge or a Part.line" - # if edge is not straight, you'll get strange results! - if isinstance(edge,Part.Shape): - return edge.Vertexes[-1].Point.sub(edge.Vertexes[0].Point) - elif isinstance(edge,Part.Line): - return edge.EndPoint.sub(edge.StartPoint) - else: - return None + "vec(edge) or vec(line) -- returns a vector from an edge or a Part.line" + # if edge is not straight, you'll get strange results! + if isinstance(edge,Part.Shape): + return edge.Vertexes[-1].Point.sub(edge.Vertexes[0].Point) + elif isinstance(edge,Part.Line): + return edge.EndPoint.sub(edge.StartPoint) + else: + return None def edg(p1,p2): "edg(Vector,Vector) -- returns an edge from 2 vectors" @@ -370,17 +370,18 @@ def geom(edge,plac=FreeCAD.Placement()): c = edge.Curve.Center cu = Part.Circle(edge.Curve.Center,normal,edge.Curve.Radius) ref = plac.Rotation.multVec(Vector(1,0,0)) - a1 = math.pi + DraftVecUtils.angle(v1.sub(c),ref,normal) - a2 = DraftVecUtils.angle(v2.sub(c),ref,normal) + a1 = DraftVecUtils.angle(v1.sub(c),ref,DraftVecUtils.neg(normal)) + a2 = DraftVecUtils.angle(v2.sub(c),ref,DraftVecUtils.neg(normal)) # direction check - if a1 > a2: + if edge.Curve.Axis.getAngle(normal) > 1: a1,a2 = a2,a1 - #print "creating sketch arc from ",cu, ", p1=",v1, " (",math.degrees(a1), "d) p2=",v2," (", math.degrees(a2),"d)" + p= Part.ArcOfCircle(cu,a1,a2) return p else: + print edge.Curve return edge.Curve def mirror (point, edge): @@ -772,8 +773,8 @@ def getNormal(shape): if (shape.ShapeType == "Face") and hasattr(shape,"normalAt"): n = shape.normalAt(0.5,0.5) elif shape.ShapeType == "Edge": - if isinstance(shape.Curve,Part.Circle): - n = shape.Curve.Axis + if isinstance(shape.Edges[0].Curve,Part.Circle): + n = shape.Edges[0].Curve.Axis else: for e in shape.Edges: if isinstance(e.Curve,Part.Circle): diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 10d1bb382..916632716 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -3711,7 +3711,7 @@ class Draft2Sketch(): elif obj.isDerivedFrom("Part::Part2DObjectPython"): Draft.makeSketch(obj,autoconstraints=True) elif obj.isDerivedFrom("Part::Feature"): - if len(obj.Shape.Wires) == 1: + if (len(obj.Shape.Wires) == 1) or (len(obj.Shape.Edges) == 1): Draft.makeSketch(obj,autoconstraints=False) FreeCAD.ActiveDocument.commitTransaction() From 96c5dda4ebc4c0d3f9d693008c16fe092d622cd9 Mon Sep 17 00:00:00 2001 From: logari81 Date: Sun, 12 Aug 2012 12:21:53 +0200 Subject: [PATCH 39/98] Sketcher: crashes fix and other small fixes for the polyline tool --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 48 +++++++++++---------- src/Mod/Sketcher/Gui/DrawSketchHandler.cpp | 2 +- src/Mod/Sketcher/Gui/DrawSketchHandler.h | 2 +- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 10 ++--- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 2 +- 5 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index f008aa82b..26a5e23d2 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -152,9 +152,8 @@ public: else if (Mode==STATUS_SEEK_Second){ float length = (onSketchPos - EditCurve[0]).Length(); float angle = (onSketchPos - EditCurve[0]).GetAngle(Base::Vector2D(1.f,0.f)); - char buf[40]; - sprintf(buf, " (%.1f,%.1f°)", length, angle * 180 / M_PI); - std::string text = buf; + SbString text; + text.sprintf(" (%.1f,%.1fdeg)", length, angle * 180 / M_PI); setPositionText(onSketchPos, text); EditCurve[1] = onSketchPos; @@ -318,9 +317,8 @@ public: else if (Mode==STATUS_SEEK_Second) { float dx = onSketchPos.fX - EditCurve[0].fX; float dy = onSketchPos.fY - EditCurve[0].fY; - char buf[40]; - sprintf(buf, " (%.1f x %.1f)", dx, dy); - std::string text = buf; + SbString text; + text.sprintf(" (%.1f x %.1f)", dx, dy); setPositionText(onSketchPos, text); EditCurve[2] = onSketchPos; @@ -529,6 +527,9 @@ public: virtual void registerPressedKey(bool pressed, int key) { + if (Mode != STATUS_SEEK_Second) + return; // SegmentMode can be changed only in STATUS_SEEK_Second mode + if (key == SoKeyboardEvent::M && pressed && previousCurve != -1) { // loop through the following modes: // SEGMENT_MODE_Line, TRANSITION_MODE_Free / TRANSITION_MODE_Tangent @@ -641,9 +642,8 @@ public: float length = (EditCurve[1] - EditCurve[0]).Length(); float angle = (EditCurve[1] - EditCurve[0]).GetAngle(Base::Vector2D(1.f,0.f)); - char buf[40]; - sprintf(buf, " (%.1f,%.1f°)", length, angle * 180 / M_PI); - std::string text = buf; + SbString text; + text.sprintf(" (%.1f,%.1fdeg)", length, angle * 180 / M_PI); setPositionText(EditCurve[1], text); if (TransitionMode == TRANSITION_MODE_Free) { @@ -675,6 +675,8 @@ public: float y3 = onSketchPos.fY; if ((x2*y3-x3*y2)-(x1*y3-x3*y1)+(x1*y2-x2*y1) > 0) arcRadius *= -1; + if (isnan(arcRadius) || isinf(arcRadius)) + arcRadius = 0.f; CenterPoint = EditCurve[0] + Base::Vector2D(arcRadius * Tangent.fY, -arcRadius * Tangent.fX); @@ -686,6 +688,8 @@ public: float rxe = onSketchPos.fX - CenterPoint.fX; float rye = onSketchPos.fY - CenterPoint.fY; float arcAngle = atan2(-rxe*ry + rye*rx, rxe*rx + rye*ry); + if (isnan(arcAngle) || isinf(arcAngle)) + arcAngle = 0.f; if (arcRadius >= 0 && arcAngle > 0) arcAngle -= 2*M_PI; if (arcRadius < 0 && arcAngle < 0) @@ -704,9 +708,8 @@ public: sketchgui->drawEdit(EditCurve); - char buf[40]; - sprintf(buf, " (%.1fR,%.1f°)", std::abs(arcRadius), arcAngle * 180 / M_PI); - std::string text = buf; + SbString text; + text.sprintf(" (%.1fR,%.1fdeg)", std::abs(arcRadius), arcAngle * 180 / M_PI); setPositionText(onSketchPos, text); if (seekAutoConstraint(sugConstr2, onSketchPos, Base::Vector2D(0.f,0.f))) { @@ -789,6 +792,10 @@ public: EditCurve[0].fX,EditCurve[0].fY,EditCurve[1].fX,EditCurve[1].fY); } else if (SegmentMode == SEGMENT_MODE_Arc) { // We're dealing with an Arc + if (!isnormal(arcRadius)) { + Mode = STATUS_SEEK_Second; + return true; + } Gui::Command::openCommand("Add arc to sketch wire"); Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.%s.addGeometry(Part.ArcOfCircle" @@ -887,7 +894,7 @@ public: } SegmentMode = SEGMENT_MODE_Line; EditCurve[1] = EditCurve[0]; - sketchgui->drawEdit(EditCurve); + mouseMove(onSketchPos); // trigger an update of EditCurve } } return true; @@ -1048,9 +1055,8 @@ public: float radius = (onSketchPos - EditCurve[0]).Length(); float angle = atan2f(dy_ , dx_); - char buf[40]; - sprintf(buf, " (%.1fR,%.1f°)", radius, angle * 180 / M_PI); - std::string text = buf; + SbString text; + text.sprintf(" (%.1fR,%.1fdeg)", radius, angle * 180 / M_PI); setPositionText(onSketchPos, text); sketchgui->drawEdit(EditCurve); @@ -1074,9 +1080,8 @@ public: // Display radius and arc angle float radius = (onSketchPos - EditCurve[0]).Length(); - char buf[40]; - sprintf(buf, " (%.1fR,%.1f°)", radius, arcAngle * 180 / M_PI); - std::string text = buf; + SbString text; + text.sprintf(" (%.1fR,%.1fdeg)", radius, arcAngle * 180 / M_PI); setPositionText(onSketchPos, text); sketchgui->drawEdit(EditCurve); @@ -1284,9 +1289,8 @@ public: // Display radius for user float radius = (onSketchPos - EditCurve[0]).Length(); - char buf[40]; - sprintf(buf, " (%.1fR)", radius); - std::string text = buf; + SbString text; + text.sprintf(" (%.1fR)", radius); setPositionText(onSketchPos, text); sketchgui->drawEdit(EditCurve); diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp index f5a308b78..acd593f54 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp +++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp @@ -381,7 +381,7 @@ void DrawSketchHandler::renderSuggestConstraintsCursor(std::vectorsetPositionText(Pos, text); } diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandler.h b/src/Mod/Sketcher/Gui/DrawSketchHandler.h index 15043e1ea..84bf628c1 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandler.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.h @@ -89,7 +89,7 @@ public: void createAutoConstraints(const std::vector &autoConstrs, int geoId, Sketcher::PointPos pointPos=Sketcher::none); - void setPositionText(const Base::Vector2D &Pos, const std::string &text); + void setPositionText(const Base::Vector2D &Pos, const SbString &text); void setPositionText(const Base::Vector2D &Pos); void resetPositionText(void); void renderSuggestConstraintsCursor(std::vector &suggestedConstraints); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index ac165e199..5106f3c9a 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -2830,17 +2830,17 @@ void ViewProviderSketch::unsetEditViewer(Gui::View3DInventorViewer* viewer) static_cast(root)->selectionRole.setValue(TRUE); } -void ViewProviderSketch::setPositionText(const Base::Vector2D &Pos, const std::string &text) +void ViewProviderSketch::setPositionText(const Base::Vector2D &Pos, const SbString &text) { - edit->textX->string = text.c_str(); + edit->textX->string = text; edit->textPos->translation = SbVec3f(Pos.fX,Pos.fY,zText); } void ViewProviderSketch::setPositionText(const Base::Vector2D &Pos) { - char buf[40]; - sprintf(buf, " (%.1f,%.1f)", Pos.fX, Pos.fY); - edit->textX->string = buf; + SbString text; + text.sprintf(" (%.1f,%.1f)", Pos.fX, Pos.fY); + edit->textX->string = text; edit->textPos->translation = SbVec3f(Pos.fX,Pos.fY,zText); } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 9b05d69cc..f60e15ded 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -199,7 +199,7 @@ protected: /// build up the visual of the constraints void rebuildConstraintsVisual(void); - void setPositionText(const Base::Vector2D &Pos, const std::string &txt); + void setPositionText(const Base::Vector2D &Pos, const SbString &txt); void setPositionText(const Base::Vector2D &Pos); void resetPositionText(void); From ec0ae08612652c5a1a0d2145cb6f58c5441a7bdb Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 13 Aug 2012 10:26:02 +0200 Subject: [PATCH 40/98] Fix build errors on Windows --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 7 ++++--- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index 26a5e23d2..3822e1214 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -25,6 +25,7 @@ #ifndef _PreComp_ #endif +#include #include #include @@ -675,7 +676,7 @@ public: float y3 = onSketchPos.fY; if ((x2*y3-x3*y2)-(x1*y3-x3*y1)+(x1*y2-x2*y1) > 0) arcRadius *= -1; - if (isnan(arcRadius) || isinf(arcRadius)) + if (boost::math::isnan(arcRadius) || boost::math::isinf(arcRadius)) arcRadius = 0.f; CenterPoint = EditCurve[0] + Base::Vector2D(arcRadius * Tangent.fY, -arcRadius * Tangent.fX); @@ -688,7 +689,7 @@ public: float rxe = onSketchPos.fX - CenterPoint.fX; float rye = onSketchPos.fY - CenterPoint.fY; float arcAngle = atan2(-rxe*ry + rye*rx, rxe*rx + rye*ry); - if (isnan(arcAngle) || isinf(arcAngle)) + if (boost::math::isnan(arcAngle) || boost::math::isinf(arcAngle)) arcAngle = 0.f; if (arcRadius >= 0 && arcAngle > 0) arcAngle -= 2*M_PI; @@ -792,7 +793,7 @@ public: EditCurve[0].fX,EditCurve[0].fY,EditCurve[1].fX,EditCurve[1].fY); } else if (SegmentMode == SEGMENT_MODE_Arc) { // We're dealing with an Arc - if (!isnormal(arcRadius)) { + if (!boost::math::isnormal(arcRadius)) { Mode = STATUS_SEEK_Second; return true; } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index f60e15ded..4a850ae3c 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -43,6 +43,7 @@ class SoMarkerSet; class SoText2; class SoTranslation; +class SbString; class SbTime; struct EditData; From 53697d3bd207ed4f970d7a726625e315975b7147 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 13 Aug 2012 12:50:07 +0200 Subject: [PATCH 41/98] Convert unicode into string for de-serialized strings from JSON --- src/Gui/ViewProviderPythonFeature.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Gui/ViewProviderPythonFeature.cpp b/src/Gui/ViewProviderPythonFeature.cpp index ed84b97dd..144d15815 100644 --- a/src/Gui/ViewProviderPythonFeature.cpp +++ b/src/Gui/ViewProviderPythonFeature.cpp @@ -498,6 +498,8 @@ const char* ViewProviderPythonFeatureImp::getDefaultDisplayMode() const Py::Callable method(vp.getAttr(std::string("getDefaultDisplayMode"))); Py::Tuple args(0); Py::String str(method.apply(args)); + if (str.isUnicode()) + str = str.encode("ascii"); // json converts strings into unicode mode = str.as_std_string(); return mode.c_str(); } From 81c839059a3d77dbbdcaf606d27f60869052c230 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 12 Aug 2012 22:55:17 -0300 Subject: [PATCH 42/98] 0000630: User-defined defaults for shape colors The default colors for new geometry (light grey + 2px black line) are now a user preference (In Display->Colors properties) --- src/Gui/DlgSettingsViewColor.cpp | 6 ++ src/Gui/DlgSettingsViewColor.ui | 124 ++++++++++++++++++++++--- src/Gui/ViewProviderGeometryObject.cpp | 10 +- src/Mod/Part/Gui/ViewProviderExt.cpp | 11 ++- 4 files changed, 132 insertions(+), 19 deletions(-) diff --git a/src/Gui/DlgSettingsViewColor.cpp b/src/Gui/DlgSettingsViewColor.cpp index aff8c5067..2bba4faac 100644 --- a/src/Gui/DlgSettingsViewColor.cpp +++ b/src/Gui/DlgSettingsViewColor.cpp @@ -71,6 +71,9 @@ void DlgSettingsViewColor::saveSettings() EditedVertexColor->onSave(); ConstructionColor->onSave(); FullyConstrainedColor->onSave(); + DefaultShapeColor->onSave(); + DefaultShapeLineColor->onSave(); + DefaultShapeLineWidth->onSave(); } void DlgSettingsViewColor::loadSettings() @@ -91,6 +94,9 @@ void DlgSettingsViewColor::loadSettings() EditedVertexColor->onRestore(); ConstructionColor->onRestore(); FullyConstrainedColor->onRestore(); + DefaultShapeColor->onRestore(); + DefaultShapeLineColor->onRestore(); + DefaultShapeLineWidth->onRestore(); } /** diff --git a/src/Gui/DlgSettingsViewColor.ui b/src/Gui/DlgSettingsViewColor.ui index 709e7675b..bcd5cd44f 100644 --- a/src/Gui/DlgSettingsViewColor.ui +++ b/src/Gui/DlgSettingsViewColor.ui @@ -361,7 +361,20 @@ Default colors - + + + + Qt::Horizontal + + + + 40 + 20 + + + + + 0 @@ -509,18 +522,98 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - + + + + + + + 240 + 0 + + + + Default shape color + + + + + + + The default color for new shapes + + + + 204 + 204 + 204 + + + + DefaultShapeColor + + + View + + + + + + + + + + + + 182 + 0 + + + + Default line width and color + + + + + + + The default line color for new shapes + + + + 25 + 25 + 25 + + + + DefaultShapeLineColor + + + View + + + + + + + The default line thickness for new shapes + + + px + + + 2 + + + DefaultShapeLineWidth + + + View + + + + @@ -533,6 +626,11 @@ QPushButton
Gui/Widgets.h
+ + Gui::PrefSpinBox + QSpinBox +
Gui/PrefWidgets.h
+
Gui::PrefColorButton Gui::ColorButton diff --git a/src/Gui/ViewProviderGeometryObject.cpp b/src/Gui/ViewProviderGeometryObject.cpp index 4e17a85e1..4b5b33c3a 100644 --- a/src/Gui/ViewProviderGeometryObject.cpp +++ b/src/Gui/ViewProviderGeometryObject.cpp @@ -63,14 +63,17 @@ using namespace Gui; - PROPERTY_SOURCE(Gui::ViewProviderGeometryObject, Gui::ViewProviderDocumentObject) const App::PropertyIntegerConstraint::Constraints intPercent = {0,100,1}; ViewProviderGeometryObject::ViewProviderGeometryObject() : pcBoundSwitch(0) { - ADD_PROPERTY(ShapeColor,(0.8f,0.8f,0.8f)); + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); + unsigned long shcol = hGrp->GetUnsigned("DefaultShapeColor",3435973887UL); // light gray (204,204,204) + float r,g,b; + r = ((shcol >> 24) & 0xff) / 255.0; g = ((shcol >> 16) & 0xff) / 255.0; b = ((shcol >> 8) & 0xff) / 255.0; + ADD_PROPERTY(ShapeColor,(r, g, b)); ADD_PROPERTY(Transparency,(0)); Transparency.setConstraints(&intPercent); App::Material mat(App::Material::DEFAULT); @@ -86,7 +89,8 @@ ViewProviderGeometryObject::ViewProviderGeometryObject() : pcBoundSwitch(0) pcShapeMaterial = new SoMaterial; pcShapeMaterial->ref(); - ShapeMaterial.touch(); + //ShapeMaterial.touch(); materials are rarely used, so better to initialize with default shape color + ShapeColor.touch(); pcBoundingBox = new Gui::SoFCBoundingBox; pcBoundingBox->ref(); diff --git a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp index 1c2584813..b066476eb 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.cpp +++ b/src/Mod/Part/Gui/ViewProviderExt.cpp @@ -125,9 +125,14 @@ ViewProviderPartExt::ViewProviderPartExt() { VisualTouched = true; + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); + unsigned long lcol = hGrp->GetUnsigned("DefaultShapeLineColor",421075455UL); // dark grey (25,25,25) + float r,g,b; + r = ((lcol >> 24) & 0xff) / 255.0; g = ((lcol >> 16) & 0xff) / 255.0; b = ((lcol >> 8) & 0xff) / 255.0; + int lwidth = hGrp->GetInt("DefaultShapeLineWidth",2); App::Material mat; mat.ambientColor.set(0.2f,0.2f,0.2f); - mat.diffuseColor.set(0.1f,0.1f,0.1f); + mat.diffuseColor.set(r,g,b); mat.specularColor.set(0.0f,0.0f,0.0f); mat.emissiveColor.set(0.0f,0.0f,0.0f); mat.shininess = 1.0f; @@ -137,10 +142,10 @@ ViewProviderPartExt::ViewProviderPartExt() ADD_PROPERTY(LineColor,(mat.diffuseColor)); ADD_PROPERTY(PointColor,(mat.diffuseColor)); ADD_PROPERTY(DiffuseColor,(ShapeColor.getValue())); - ADD_PROPERTY(LineWidth,(2.0f)); + ADD_PROPERTY(LineWidth,(lwidth)); LineWidth.setConstraints(&sizeRange); PointSize.setConstraints(&sizeRange); - ADD_PROPERTY(PointSize,(2.0f)); + ADD_PROPERTY(PointSize,(lwidth)); ADD_PROPERTY(Deviation,(0.5f)); Deviation.setConstraints(&tessRange); ADD_PROPERTY(ControlPoints,(false)); From 36e48afce10d66f66a4d6724257c45ce7ba89f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Fri, 3 Aug 2012 12:25:14 +0200 Subject: [PATCH 43/98] Linear system matrix generation developed (only fluid involved for the moment) --- src/Mod/Ship/CMakeLists.txt | 1 + src/Mod/Ship/Makefile.am | 3 +- src/Mod/Ship/simRun/Sim/__init__.py | 3 +- src/Mod/Ship/simRun/Sim/initialization.py | 10 +-- src/Mod/Ship/simRun/Sim/matrixGen.py | 82 +++++++++++++++++++++++ src/Mod/Ship/simRun/Simulation.py | 21 +++--- 6 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 src/Mod/Ship/simRun/Sim/matrixGen.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 432c91576..822aa5f51 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -150,6 +150,7 @@ SET(SimRun_SRCS simRun/clSim/Utils.py simRun/Sim/__init__.py simRun/Sim/initialization.py + simRun/Sim/matrixGen.py ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index f2477550b..624a9c375 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -102,7 +102,8 @@ nobase_data_DATA = \ simRun/clSim/initialization.py \ simRun/clSim/Utils.py \ simRun/Sim/__init__.py \ - simRun/Sim/initialization.py + simRun/Sim/initialization.py \ + simRun/Sim/matrixGen.py CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/simRun/Sim/__init__.py b/src/Mod/Ship/simRun/Sim/__init__.py index f5acc886b..2e7a8647c 100644 --- a/src/Mod/Ship/simRun/Sim/__init__.py +++ b/src/Mod/Ship/simRun/Sim/__init__.py @@ -21,4 +21,5 @@ #* * #*************************************************************************** -import initialization +from initialization import * +from matrixGen import * diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py index 1c443ca85..87b2cbbfb 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -26,9 +26,9 @@ import numpy as np grav=9.81 -class perform: +class simInitialization: def __init__(self, FSmesh, waves, context=None, queue=None): - """ Constructor, includes program loading. + """ Constructor. @param FSmesh Initial free surface mesh. @param waves Considered simulation waves (A,T,phi,heading). @param context OpenCL context where apply. Only for compatibility, @@ -54,9 +54,9 @@ class perform: v = np.ndarray((nx,ny, 3), dtype=np.float32) f = np.ndarray((nx,ny, 3), dtype=np.float32) n = np.ndarray((nx,ny, 3), dtype=np.float32) - a = np.ndarray((nx,ny, 1), dtype=np.float32) - phi = np.ndarray((nx,ny, 1), dtype=np.float32) - Phi = np.ndarray((nx,ny, 1), dtype=np.float32) + a = np.ndarray((nx,ny), dtype=np.float32) + phi = np.ndarray((nx,ny), dtype=np.float32) + Phi = np.ndarray((nx,ny), dtype=np.float32) for i in range(0, nx): for j in range(0, ny): pos = FSmesh[i][j].pos diff --git a/src/Mod/Ship/simRun/Sim/matrixGen.py b/src/Mod/Ship/simRun/Sim/matrixGen.py new file mode 100644 index 000000000..5115735df --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/matrixGen.py @@ -0,0 +1,82 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# numpy +import numpy as np + +grav=9.81 + +class simMatrixGen: + def __init__(self, context=None, queue=None): + """ Constructor. + @param context OpenCL context where apply. Only for compatibility, + must be None. + @param queue OpenCL command queue. Only for compatibility, + must be None. + """ + self.context = context + self.queue = queue + + def execute(self, fs): + """ Compute system matrix. + @param fs Free surface instance. + @return Linear system matrix. + """ + self.fs = fs + nx = self.fs['Nx'] + ny = self.fs['Ny'] + nF = nx*ny + nB = 0 # No body for the moment + # Allocate matrix + N = nx*ny + nB + A = np.ndarray((N, N), dtype=np.float32) + # Fluid sources rows + for i in range(0,nx): + for j in range(0,ny): + # Append fluid effect + pos = self.fs['pos'][i,j] + A[i*ny+j,0:nF] = self.fluidEffect(pos) + # Append body effect + # ... + return A + + def fluidEffect(self, pos): + """ Compute fluid effect terms over desired position. Desingularized + sources must taken into account. + @param pos Point to evaluate. + @return Fluid effect row. + """ + nx = self.fs['Nx'] + ny = self.fs['Ny'] + nF = nx*ny + row = np.ndarray(nF, dtype=np.float32) + for i in range(0,nx): + for j in range(0,ny): + # Get source position (desingularized) + source = np.copy(self.fs['pos'][i,j]) + area = self.fs['area'][i,j] + source[2] = source[2] + np.sqrt(area) + # Get distance between points + d = np.linalg.norm(pos-source) + row[i*ny+j] = np.log(d)*area + return row \ No newline at end of file diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index a06f6b0d2..98117c639 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -21,7 +21,6 @@ #* * #*************************************************************************** -import time from math import * import threading @@ -80,19 +79,21 @@ class FreeCADShipSimulation(threading.Thread): self.active = True # Simulation stuff if self.device == None: - from Sim import initialization + from Sim import * else: - from clSim import initialization - msg = Translator.translate("\t[Sim]: Initializating OpenCL...\n") + from clSim import * + msg = Translator.translate("\t[Sim]: Initializating...\n") FreeCAD.Console.PrintMessage(msg) - init = initialization.perform(self.FSmesh,self.waves,self.context,self.queue) - msg = Translator.translate("\t[Sim]: Iterating (outputs will be noticed)...\n") + init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) + matGen = simMatrixGen(self.context,self.queue) + FS = init.fs + waves = init.waves + msg = Translator.translate("\t[Sim]: Iterating...\n") FreeCAD.Console.PrintMessage(msg) while self.active: - print("Im thread, Im running...") - time.sleep(1) - # ... - print("Im thread, step done!") + msg = Translator.translate("\t\t[Sim]: Generating linear system matrix...\n") + FreeCAD.Console.PrintMessage(msg) + A = matGen.execute(FS) # Set thread as stopped (and prepare it to restarting) self.active = False threading.Event().set() From 9bc0f7eea459014da3cd48813dd302ecbe5f6016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Fri, 3 Aug 2012 16:55:24 +0200 Subject: [PATCH 44/98] Linear systems solver developed (only fluid involved) --- src/Mod/Ship/CMakeLists.txt | 1 + src/Mod/Ship/Makefile.am | 3 +- src/Mod/Ship/simRun/Sim/__init__.py | 1 + src/Mod/Ship/simRun/Sim/computeSources.py | 69 +++++++++++++++++++++++ src/Mod/Ship/simRun/Sim/initialization.py | 14 ++++- src/Mod/Ship/simRun/Sim/matrixGen.py | 7 +-- src/Mod/Ship/simRun/Simulation.py | 7 ++- 7 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 src/Mod/Ship/simRun/Sim/computeSources.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 822aa5f51..68fc8e924 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -151,6 +151,7 @@ SET(SimRun_SRCS simRun/Sim/__init__.py simRun/Sim/initialization.py simRun/Sim/matrixGen.py + simRun/Sim/computeSources.py ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 624a9c375..3a8c9718d 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -103,7 +103,8 @@ nobase_data_DATA = \ simRun/clSim/Utils.py \ simRun/Sim/__init__.py \ simRun/Sim/initialization.py \ - simRun/Sim/matrixGen.py + simRun/Sim/matrixGen.py \ + simRun/Sim/computeSources.py CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/simRun/Sim/__init__.py b/src/Mod/Ship/simRun/Sim/__init__.py index 2e7a8647c..a2fd6db39 100644 --- a/src/Mod/Ship/simRun/Sim/__init__.py +++ b/src/Mod/Ship/simRun/Sim/__init__.py @@ -23,3 +23,4 @@ from initialization import * from matrixGen import * +from computeSources import * diff --git a/src/Mod/Ship/simRun/Sim/computeSources.py b/src/Mod/Ship/simRun/Sim/computeSources.py new file mode 100644 index 000000000..fb57daa4e --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/computeSources.py @@ -0,0 +1,69 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# numpy +import numpy as np + +grav=9.81 + +class simComputeSources: + def __init__(self, context=None, queue=None): + """ Constructor. + @param context OpenCL context where apply. Only for compatibility, + must be None. + @param queue OpenCL command queue. Only for compatibility, + must be None. + """ + self.context = context + self.queue = queue + + def execute(self, fs, A): + """ Compute potential sources (for velocity potential and + acceleration potential). + @param fs Free surface instance. + @param A Linear system matrix. + """ + self.fs = fs + # Allocate memory + nx = self.fs['Nx'] + ny = self.fs['Ny'] + nF = nx*ny + nB = 0 # No body for the moment + N = nx*ny + nB + b = np.ndarray(N, dtype=np.float32) + bb = np.ndarray(N, dtype=np.float32) + s = np.ndarray(N, dtype=np.float32) + ss = np.ndarray(N, dtype=np.float32) + # Create independent terms + for i in range(0,nx): + for j in range(0,ny): + b[i*ny+j] = self.fs['velPot'][i,j] + bb[i*ny+j] = self.fs['accPot'][i,j] + # Solve systems + s = np.linalg.solve(A, b) + ss = np.linalg.solve(A, bb) + # Store sources + for i in range(0,nx): + for j in range(0,ny): + self.fs['velSrc'][i,j] = s[i*ny+j] + self.fs['accSrc'][i,j] = ss[i*ny+j] diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py index 87b2cbbfb..823ff535e 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -57,6 +57,8 @@ class simInitialization: a = np.ndarray((nx,ny), dtype=np.float32) phi = np.ndarray((nx,ny), dtype=np.float32) Phi = np.ndarray((nx,ny), dtype=np.float32) + s = np.ndarray((nx,ny), dtype=np.float32) + ss = np.ndarray((nx,ny), dtype=np.float32) for i in range(0, nx): for j in range(0, ny): pos = FSmesh[i][j].pos @@ -75,8 +77,13 @@ class simInitialization: n[i,j,1] = normal.y n[i,j,2] = normal.z a[i,j] = area + phi[i,j] = 0. + Phi[i,j] = 0. + s[i,j] = 0. + ss[i,j] = 0. self.fs = {'Nx':nx, 'Ny':ny, 'pos':p, 'vel':v, 'acc':f, \ - 'normal':n, 'area':a, 'velPot':phi, 'accPot':Phi} + 'normal':n, 'area':a, 'velPot':phi, 'accPot':Phi, \ + 'velSrc':s, 'accSrc':ss} # Waves data w = np.ndarray((nW, 4), dtype=np.float32) for i in range(0,nW): @@ -85,6 +92,11 @@ class simInitialization: w[i,2] = waves[i][2] w[i,3] = waves[i][3] self.waves = {'N':nW, 'data':w} + # Linear system matrix + nF = nx*ny + nB = 0 # No body for the moment + N = nx*ny + nB + self.A = np.ndarray((N, N), dtype=np.float32) def execute(self): """ Compute initial conditions. """ diff --git a/src/Mod/Ship/simRun/Sim/matrixGen.py b/src/Mod/Ship/simRun/Sim/matrixGen.py index 5115735df..4eab537bc 100644 --- a/src/Mod/Ship/simRun/Sim/matrixGen.py +++ b/src/Mod/Ship/simRun/Sim/matrixGen.py @@ -37,19 +37,17 @@ class simMatrixGen: self.context = context self.queue = queue - def execute(self, fs): + def execute(self, fs, A): """ Compute system matrix. @param fs Free surface instance. - @return Linear system matrix. + @param A Linear system matrix. """ self.fs = fs nx = self.fs['Nx'] ny = self.fs['Ny'] nF = nx*ny nB = 0 # No body for the moment - # Allocate matrix N = nx*ny + nB - A = np.ndarray((N, N), dtype=np.float32) # Fluid sources rows for i in range(0,nx): for j in range(0,ny): @@ -58,7 +56,6 @@ class simMatrixGen: A[i*ny+j,0:nF] = self.fluidEffect(pos) # Append body effect # ... - return A def fluidEffect(self, pos): """ Compute fluid effect terms over desired position. Desingularized diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 98117c639..a0bb2ff37 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -86,6 +86,8 @@ class FreeCADShipSimulation(threading.Thread): FreeCAD.Console.PrintMessage(msg) init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) matGen = simMatrixGen(self.context,self.queue) + solver = simComputeSources(self.context,self.queue) + A = init.A FS = init.fs waves = init.waves msg = Translator.translate("\t[Sim]: Iterating...\n") @@ -93,7 +95,10 @@ class FreeCADShipSimulation(threading.Thread): while self.active: msg = Translator.translate("\t\t[Sim]: Generating linear system matrix...\n") FreeCAD.Console.PrintMessage(msg) - A = matGen.execute(FS) + matGen.execute(FS, A) + msg = Translator.translate("\t\t[Sim]: Solving linear systems...\n") + FreeCAD.Console.PrintMessage(msg) + solver.execute(FS, A) # Set thread as stopped (and prepare it to restarting) self.active = False threading.Event().set() From bc181f3df3ad1d9b3a888dbb1d74b4f06f6cb02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Sat, 4 Aug 2012 17:11:41 +0200 Subject: [PATCH 45/98] Developed time integrator for fluid --- src/Mod/Ship/CMakeLists.txt | 1 + src/Mod/Ship/Makefile.am | 3 +- src/Mod/Ship/simRun/Sim/__init__.py | 1 + src/Mod/Ship/simRun/Sim/fsEvolution.py | 136 ++++++++++++++++++++++ src/Mod/Ship/simRun/Sim/initialization.py | 17 +-- src/Mod/Ship/simRun/Simulation.py | 8 ++ 6 files changed, 154 insertions(+), 12 deletions(-) create mode 100644 src/Mod/Ship/simRun/Sim/fsEvolution.py diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 68fc8e924..300f999f8 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -152,6 +152,7 @@ SET(SimRun_SRCS simRun/Sim/initialization.py simRun/Sim/matrixGen.py simRun/Sim/computeSources.py + simRun/Sim/fsEvolution.py ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 3a8c9718d..308131bba 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -104,7 +104,8 @@ nobase_data_DATA = \ simRun/Sim/__init__.py \ simRun/Sim/initialization.py \ simRun/Sim/matrixGen.py \ - simRun/Sim/computeSources.py + simRun/Sim/computeSources.py \ + simRun/Sim/fsEvolution.py CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/simRun/Sim/__init__.py b/src/Mod/Ship/simRun/Sim/__init__.py index a2fd6db39..aabf4a621 100644 --- a/src/Mod/Ship/simRun/Sim/__init__.py +++ b/src/Mod/Ship/simRun/Sim/__init__.py @@ -24,3 +24,4 @@ from initialization import * from matrixGen import * from computeSources import * +from fsEvolution import * diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.py b/src/Mod/Ship/simRun/Sim/fsEvolution.py new file mode 100644 index 000000000..cd68fe085 --- /dev/null +++ b/src/Mod/Ship/simRun/Sim/fsEvolution.py @@ -0,0 +1,136 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# numpy +import numpy as np + +grav=9.81 + +class simFSEvolution: + def __init__(self, context=None, queue=None): + """ Constructor. + @param context OpenCL context where apply. Only for compatibility, + must be None. + @param queue OpenCL command queue. Only for compatibility, + must be None. + """ + self.context = context + self.queue = queue + + def execute(self, fs, waves, dt, t): + """ Compute free surface for next time step. + @param fs Free surface instance. + @param waves Waves instance. + @param dt Time step. + @param t Actual time (without adding dt). + """ + self.fs = fs + # Allocate memory + nx = self.fs['Nx'] + ny = self.fs['Ny'] + nF = nx*ny + # Evaluate potential gradients + grad = self.evaluateGradient() + # Integrate variables + for i in range(0,nx): + for j in range(0,ny): + # Free surface points position + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*grad[i*ny+j][2] + # Velocity potential + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + \ + dt*self.fs['accPot'][i,j] - \ + 0.5*dt*dt*grav*grad[i*ny+j][2] + # Acceleration potential + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] - \ + dt*grav*grad[i*ny+j][2] + # Force boundary conditions + for i in range(0,nx): + for j in [0,ny-1]: + self.boundaryCondition(i,j, waves, dt, t) + + def evaluateGradient(self): + """ Evaluate potential gradients over free surface. + @return Potential gradients. + """ + nx = self.fs['Nx'] + ny = self.fs['Ny'] + nF = nx*ny + grad = np.ndarray((nF,3), dtype=np.float32) + for i in range(0,nx): + for j in range(0,ny): + pos = self.fs['pos'][i,j] + grad[i*ny+j] = self.gradientphi(pos) + return grad + + def gradientphi(self, pos): + """ Compute gradient over desired position. + @param pos Point to evaluate. + @return Potential gradient. + """ + nx = self.fs['Nx'] + ny = self.fs['Ny'] + grad = np.ndarray(3, dtype=np.float32) + for i in range(0,nx): + for j in range(0,ny): + # Get source position (desingularized) + srcPos = np.copy(self.fs['pos'][i,j]) + area = self.fs['area'][i,j] + srcPos[2] = srcPos[2] + np.sqrt(area) + src = self.fs['velSrc'][i,j] + # Get distance between points + d = pos-srcPos + grad = grad + d/np.dot(d,d)*src*area + return grad + + def boundaryCondition(self, i,j, waves, dt, t): + """ Compute free surface at boundaries, assuming that only + incident wave can be taken into account. + @param i First free surface cell index. + @param j Second free surface cell index. + @param waves Waves instance. + @param dt Time step. + @param t Actual time (without adding dt). + """ + pos = self.fs['pos'][i,j] + pos[2] = 0. + for w in waves['data']: + A = w[0] + T = w[1] + phase = w[2] + heading = np.pi*w[3]/180.0 + wl = 0.5 * grav / np.pi * T*T + k = 2.0*np.pi/wl + frec = 2.0*np.pi/T + pos = self.fs['pos'][i,j] + l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) + amp = A*np.sin(k*l - frec*(t+dt) + phase) + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + amp + amp = frec*A*np.cos(k*l - frec*(t+dt) + phase) + self.fs['vel'][i,j][2] = self.fs['vel'][i,j][2] - amp + amp = frec*frec*A*np.sin(k*l - frec*(t+dt) + phase) + self.fs['acc'][i,j][2] = self.fs['acc'][i,j][2] - amp + amp = grav/frec*A*np.sin(k*l - frec*(t+dt) + phase) + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + amp + amp = grav*A*np.cos(k*l - frec*(t+dt) + phase) + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + amp + \ No newline at end of file diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py index 823ff535e..b2da085ff 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -40,6 +40,10 @@ class simInitialization: self.queue = queue self.loadData(FSmesh, waves) self.execute() + # Compute time step + self.dt = 0.1 + for w in self.waves['data']: + self.dt = np.min(self.dt, w[1]/200.0) def loadData(self, FSmesh, waves): """ Convert data to numpy format. @@ -51,8 +55,6 @@ class simInitialization: nW = len(waves) # Mesh data p = np.ndarray((nx,ny, 3), dtype=np.float32) - v = np.ndarray((nx,ny, 3), dtype=np.float32) - f = np.ndarray((nx,ny, 3), dtype=np.float32) n = np.ndarray((nx,ny, 3), dtype=np.float32) a = np.ndarray((nx,ny), dtype=np.float32) phi = np.ndarray((nx,ny), dtype=np.float32) @@ -67,12 +69,6 @@ class simInitialization: p[i,j,0] = pos.x p[i,j,1] = pos.y p[i,j,2] = pos.z - v[i,j,0] = 0. - v[i,j,1] = 0. - v[i,j,2] = 0. - f[i,j,0] = 0. - f[i,j,1] = 0. - f[i,j,2] = 0. n[i,j,0] = normal.x n[i,j,1] = normal.y n[i,j,2] = normal.z @@ -81,9 +77,8 @@ class simInitialization: Phi[i,j] = 0. s[i,j] = 0. ss[i,j] = 0. - self.fs = {'Nx':nx, 'Ny':ny, 'pos':p, 'vel':v, 'acc':f, \ - 'normal':n, 'area':a, 'velPot':phi, 'accPot':Phi, \ - 'velSrc':s, 'accSrc':ss} + self.fs = {'Nx':nx, 'Ny':ny, 'pos':p, 'normal':n, 'area':a, \ + 'velPot':phi, 'accPot':Phi, 'velSrc':s, 'accSrc':ss} # Waves data w = np.ndarray((nW, 4), dtype=np.float32) for i in range(0,nW): diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index a0bb2ff37..598b6178e 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -87,9 +87,12 @@ class FreeCADShipSimulation(threading.Thread): init = simInitialization(self.FSmesh,self.waves,self.context,self.queue) matGen = simMatrixGen(self.context,self.queue) solver = simComputeSources(self.context,self.queue) + fsEvol = simFSEvolution(self.context,self.queue) A = init.A FS = init.fs waves = init.waves + dt = init.dt + t = 0.0 msg = Translator.translate("\t[Sim]: Iterating...\n") FreeCAD.Console.PrintMessage(msg) while self.active: @@ -99,6 +102,11 @@ class FreeCADShipSimulation(threading.Thread): msg = Translator.translate("\t\t[Sim]: Solving linear systems...\n") FreeCAD.Console.PrintMessage(msg) solver.execute(FS, A) + msg = Translator.translate("\t\t[Sim]: Time integrating...\n") + FreeCAD.Console.PrintMessage(msg) + fsEvol.execute(FS, waves, dt, t) + t = t + dt + FreeCAD.Console.PrintMessage('t = %g s' % (t)) # Set thread as stopped (and prepare it to restarting) self.active = False threading.Event().set() From 76c641bed88c73a9a41e92857a357640ff056d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Sun, 5 Aug 2012 16:15:17 +0200 Subject: [PATCH 46/98] Changed (and accelerated) simulation creation process. --- src/Mod/Ship/SimInstance.py | 1330 ++++++++++++++------------- src/Mod/Ship/simCreate/TaskPanel.py | 351 +++---- 2 files changed, 850 insertions(+), 831 deletions(-) diff --git a/src/Mod/Ship/SimInstance.py b/src/Mod/Ship/SimInstance.py index 3d047e3a1..85740d034 100644 --- a/src/Mod/Ship/SimInstance.py +++ b/src/Mod/Ship/SimInstance.py @@ -1,657 +1,673 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -import time -from math import * -import threading - -# COIN -from pivy.coin import * -from pivy import coin - -# FreeCAD -import FreeCAD,FreeCADGui -from FreeCAD import Base, Vector -import Part - -# Ship design module -from shipUtils import Paths, Translator, Math - -class FreeSurfaceFace: - def __init__(self, pos, normal, l, b): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param l Element length (distance between elements at x direction) - @param b Element beam (distance between elements at y direction) - """ - self.pos = pos - self.normal = normal - self.area = l*b - - def __init__(self, pos, normal, area): - """ Face storage. - @param pos Face position. - @param normal Face normal. - @param area Element area - """ - self.pos = pos - self.normal = normal - self.area = area - -class ShipSimulation: - def __init__(self, obj, fsMeshData, waves): - """ Creates a new simulation instance on active document. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - @param waves [[A,T,phi,heading],] Waves involved - """ - # Add uniqueness property to identify Tank instances - obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True - # Compute free surface mesh - self.createFSMesh(obj,fsMeshData) - # Store waves - obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", str(Translator.translate("Waves (Amplitude,period,phase)"))).Waves=[] - obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", str(Translator.translate("Waves direction (0 deg to stern waves)"))).Waves_Dir=[] - w = [] - d = [] - for i in range(0,len(waves)): - w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) - d.append(waves[i][3]) - obj.Waves = w - obj.Waves_Dir = d - # Add shapes - shape = self.computeShape(obj) - if not shape: - obj.IsShipSimulation=False - return - obj.Shape = shape - obj.Proxy = self - - def onChanged(self, fp, prop): - """ Property changed, tank must be recomputed """ - if prop == "IsShipSimulation": - FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") - - def execute(self, obj): - """ Shape recomputation called """ - obj.Shape = self.computeShape(obj) - - def createFSMesh(self, obj, fsMeshData): - """ Create or modify free surface mesh. - @param obj Created Part::FeaturePython object. - @param fsMeshData [L,B,N] Free surface mesh data, with lenght - (x), Beam (y) and desired number of points. - """ - # Study input object - try: - props = obj.PropertiesList - props.index("IsShipSimulation") - if not obj.IsShipSimulation: - msg = str(Translator.translate("Object is not a valid ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - except ValueError: - msg = str(Translator.translate("Object is not a ship simulation.\n")) - FreeCAD.Console.PrintError(msg) - return - # Get areas and number of elements per direction - L = fsMeshData[0] - B = fsMeshData[1] - N = fsMeshData[2] - A = L*B - area = A/N - l = sqrt(area) - b = sqrt(area) - nx = int(round(L / l)) - ny = int(round(B / b)) - # Start data fields if not already exist - props = obj.PropertiesList - try: - props.index("FS_Nx") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", str(Translator.translate("Free surface number of elements at x direction"))).FS_Nx=0 - try: - props.index("FS_Ny") - except ValueError: - obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", str(Translator.translate("Free surface number of elements at y direction"))).FS_Ny=0 - try: - props.index("FS_Position") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", str(Translator.translate("Free surface elements position"))).FS_Position=[] - try: - props.index("FS_Area") - except ValueError: - obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", str(Translator.translate("Free surface elements area"))).FS_Area=[] - try: - props.index("FS_Normal") - except ValueError: - obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", str(Translator.translate("Free surface elements normal"))).FS_Normal=[] - # Fill data - obj.FS_Nx = nx - obj.FS_Ny = ny - pos = [] - areas = [] - normal = [] - for i in range(0,nx): - for j in range(0,ny): - pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) - areas.append(l*b) - normal.append(Vector(0.0,0.0,1.0)) - obj.FS_Position = pos[:] - obj.FS_Area = areas[:] - obj.FS_Normal = normal[:] - - def computeShape(self, obj): - """ Computes simulation involved shapes. - @param obj Created Part::FeaturePython object. - @return Shape - """ - print("[ShipSimulation] Computing mesh shape...") - nx = obj.FS_Nx - ny = obj.FS_Ny - mesh = FSMesh(obj) - planes = [] - # Create planes - Percentage = 0 - Count = 0 - print("0%") - for i in range(1,nx-1): - for j in range(1,ny-1): - Count = Count+1 - done = int(round(100 * Count / ((nx-2)*(ny-2)))) - if done != Percentage: - Percentage = done - print("%i%%" % (done)) - v0 = (mesh[i][j].pos + mesh[i-1][j].pos + mesh[i][j-1].pos + mesh[i-1][j-1].pos).multiply(0.25) - v1 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j-1].pos + mesh[i+1][j-1].pos).multiply(0.25) - v2 = (mesh[i][j].pos + mesh[i+1][j].pos + mesh[i][j+1].pos + mesh[i+1][j+1].pos).multiply(0.25) - v3 = (mesh[i][j].pos + mesh[i-1][j].pos + mesh[i][j+1].pos + mesh[i-1][j+1].pos).multiply(0.25) - p = Part.makePolygon([v0,v1,v2,v3,v0]) - planes.append(Part.makeFilledFace(p.Edges)) - # Join into a compound - return Part.makeCompound(planes) - -class ViewProviderShipSimulation: - def __init__(self, obj): - """ Set this object to the proxy object of the actual view provider """ - obj.Proxy = self - - def attach(self, obj): - """ Setup the scene sub-graph of the view provider, this method is mandatory """ - return - - def updateData(self, fp, prop): - """ If a property of the handled feature has changed we have the chance to handle this here """ - return - - def getDisplayModes(self,obj): - ''' Return a list of display modes. ''' - modes=[] - return modes - - def getDefaultDisplayMode(self): - ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' - return "Flat Lines" - - def setDisplayMode(self,mode): - ''' Map the display mode defined in attach with those defined in getDisplayModes. - Since they have the same names nothing needs to be done. This method is optinal. - ''' - return mode - - def onChanged(self, vp, prop): - ''' Print the name of the property that has changed ''' - # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") - - def __getstate__(self): - ''' When saving the document this object gets stored using Python's cPickle module. - Since we have some un-pickable here -- the Coin stuff -- we must define this method - to return a tuple of all pickable objects or None. - ''' - return None - - def __setstate__(self,state): - ''' When restoring the pickled object from document we have the chance to set some - internals here. Since no data were pickled nothing needs to be done here. - ''' - return None - - def getIcon(self): - return """ - /* XPM */ - static char * Sim_xpm[] = { - "32 32 301 2", - " c None", - ". c #CCCCCC", - "+ c #A9A9A9", - "@ c #989898", - "# c #A1A1A1", - "$ c #C3C3C3", - "% c #C1C0C1", - "& c #BFBFBF", - "* c #A7A7A7", - "= c #808080", - "- c #5C5C5C", - "; c #565655", - "> c #4E4E4E", - ", c #676767", - "' c #898989", - ") c #B6B5B6", - "! c #BABABA", - "~ c #B9B9B9", - "{ c #A5A5A5", - "] c #7E7E7E", - "^ c #595A59", - "/ c #575656", - "( c #535353", - "_ c #505050", - ": c #4D4D4C", - "< c #474747", - "[ c #404040", - "} c #4D4D4D", - "| c #787878", - "1 c #B8B7B8", - "2 c #B6B6B6", - "3 c #888888", - "4 c #7C7C7C", - "5 c #575657", - "6 c #535354", - "7 c #4E4D4E", - "8 c #4A4A4A", - "9 c #444444", - "0 c #414141", - "a c #3E3E3E", - "b c #393938", - "c c #313131", - "d c #393939", - "e c #636363", - "f c #ABABAB", - "g c #B3B3B3", - "h c #848484", - "i c #787979", - "j c #545454", - "k c #515151", - "l c #4B4B4B", - "m c #484748", - "n c #3B3B3B", - "o c #383838", - "p c #353535", - "q c #323232", - "r c #2F2F2E", - "s c #2A2A2A", - "t c #222323", - "u c #252625", - "v c #AFAFAF", - "w c #767676", - "x c #484848", - "y c #454545", - "z c #424242", - "A c #3F3F3E", - "B c #3B3B3C", - "C c #393838", - "D c #2F2F2F", - "E c #2C2C2C", - "F c #292929", - "G c #262626", - "H c #222222", - "I c #1F1F20", - "J c #171716", - "K c #959595", - "L c #747474", - "M c #4E4E4F", - "N c #4C4B4C", - "O c #484849", - "P c #424243", - "Q c #282828", - "R c #525251", - "S c #373737", - "T c #353636", - "U c #333233", - "V c #30302F", - "W c #2C2D2D", - "X c #232323", - "Y c #201F20", - "Z c #1D1D1D", - "` c #151414", - " . c #717272", - ".. c #4C4C4C", - "+. c #484949", - "@. c #464545", - "#. c #424343", - "$. c #3A3A3A", - "%. c #5D4A49", - "&. c #7E7E86", - "*. c #56569F", - "=. c #3E3E41", - "-. c #757575", - ";. c #575757", - ">. c #222221", - ",. c #262627", - "'. c #242423", - "). c #212020", - "!. c #1A1A1A", - "~. c #121212", - "{. c #939493", - "]. c #6F6F6F", - "^. c #494949", - "/. c #464646", - "(. c #434343", - "_. c #554545", - ":. c #686863", - "<. c #939394", - "[. c #BDBDBD", - "}. c #202021", - "|. c #1E1E1E", - "1. c #171718", - "2. c #0F0F0F", - "3. c #929292", - "4. c #6C6D6D", - "5. c #464746", - "6. c #525F73", - "7. c #444648", - "8. c #3D3D3D", - "9. c #2D2C2A", - "0. c #A1A2A2", - "a. c #AAACAC", - "b. c #A6A7A7", - "c. c #A8AAAA", - "d. c #AFB0B0", - "e. c #777676", - "f. c #9A9A9A", - "g. c #1B1B1B", - "h. c #181818", - "i. c #0C0C0C", - "j. c #909090", - "k. c #6B6A6B", - "l. c #55657E", - "m. c #6990FB", - "n. c #6483CD", - "o. c #5871B2", - "p. c #434E7E", - "q. c #A97C76", - "r. c #AB7777", - "s. c #AC7070", - "t. c #A26565", - "u. c #805C5C", - "v. c #848686", - "w. c #424342", - "x. c #151515", - "y. c #0A0909", - "z. c #8F8F8F", - "A. c #676868", - "B. c #3B3A3A", - "C. c #383738", - "D. c #353534", - "E. c #45525F", - "F. c #6367AC", - "G. c #804682", - "H. c #942A39", - "I. c #991312", - "J. c #540901", - "K. c #393742", - "L. c #1C1C1C", - "M. c #191919", - "N. c #161515", - "O. c #121313", - "P. c #070707", - "Q. c #8D8E8D", - "R. c #656566", - "S. c #3E3F3F", - "T. c #2F2E2F", - "U. c #353838", - "V. c #35496A", - "W. c #3E4D88", - "X. c #354889", - "Y. c #5573D7", - "Z. c #5D80FB", - "`. c #374899", - " + c #293338", - ".+ c #101010", - "++ c #0D0D0D", - "@+ c #040404", - "#+ c #8C8C8C", - "$+ c #8B8B8B", - "%+ c #4B4A4B", - "&+ c #303030", - "*+ c #333232", - "=+ c #2F2F30", - "-+ c #232223", - ";+ c #1A1919", - ">+ c #2E3949", - ",+ c #5C7BA3", - "'+ c #36467D", - ")+ c #536F93", - "!+ c #0A0A0A", - "~+ c #010101", - "{+ c #C1C1C1", - "]+ c #B8B8B8", - "^+ c #A0A0A0", - "/+ c #3F3F3F", - "(+ c #222122", - "_+ c #202020", - ":+ c #161717", - "<+ c #141414", - "[+ c #111011", - "}+ c #0D0E0E", - "|+ c #0B0B0A", - "1+ c #000000", - "2+ c #525252", - "3+ c #686868", - "4+ c #ADADAD", - "5+ c #9E9F9F", - "6+ c #6D6D6D", - "7+ c #3C3C3C", - "8+ c #131414", - "9+ c #111111", - "0+ c #0E0E0E", - "a+ c #0B0B0B", - "b+ c #080708", - "c+ c #050504", - "d+ c #4C4D4C", - "e+ c #4D4C4D", - "f+ c #494A4A", - "g+ c #454444", - "h+ c #9D9D9D", - "i+ c #9E9E9E", - "j+ c #AEAEAE", - "k+ c #BEBEBF", - "l+ c #BEBDBD", - "m+ c #979797", - "n+ c #6A6B6A", - "o+ c #3F3F40", - "p+ c #020202", - "q+ c #030303", - "r+ c #878787", - "s+ c #69696A", - "t+ c #868685", - "u+ c #646464", - "v+ c #474647", - "w+ c #656565", - "x+ c #9E9F9E", - "y+ c #A8A8A8", - "z+ c #AFAFAE", - "A+ c #A4A4A4", - "B+ c #7A7A7A", - "C+ c #969696", - "D+ c #363636", - "E+ c #777776", - "F+ c #8C8D8D", - "G+ c #7D7D7D", - "H+ c #5E5E5E", - "I+ c #4F4F50", - "J+ c #808181", - "K+ c #707070", - "L+ c #909191", - "M+ c #9C9C9C", - "N+ c #787877", - "O+ c #696969", - "P+ c #616161", - "Q+ c #6E6E6E", - "R+ c #7C7B7C", - "S+ c #777677", - "T+ c #6F6E6E", - "U+ c #595959", - "V+ c #717171", - "W+ c #8D8D8D", - "X+ c #515051", - "Y+ c #49494A", - "Z+ c #4B4A4A", - "`+ c #606060", - " @ c #6A6A6A", - ".@ c #616162", - "+@ c #6C6D6C", - "@@ c #767777", - "#@ c #727272", - "$@ c #6B6B6B", - "%@ c #828283", - "&@ c #757475", - "*@ c #444545", - "=@ c #565656", - "-@ c #5A595A", - ";@ c #666666", - ">@ c #878687", - ",@ c #8A8A8A", - "'@ c #797979", - ")@ c #444344", - "!@ c #7F8080", - "~@ c #737373", - "{@ c #484747", - "]@ c #707170", - "^@ c #7F7F7F", - "/@ c #676867", - "(@ c #4D4C4C", - "_@ c #5F5F5F", - ":@ c #434444", - " ", - " ", - " . + ", - " @ # $ % & * ", - " = - ; > , ' ) ! ~ { ", - " ] ^ / ( _ : < [ } | # 1 2 # 3 ", - " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", - " i j k 7 l m 9 0 a n o p q r s t u < | v ", - " w k > l x y z A B C p q D E F G H I J K ", - " L M N O y P Q R S T U V W F G X Y Z ` K ", - " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", - " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", - " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", - " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", - " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", - " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", - " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", - " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", - " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", - " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", - " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", - " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", - " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", - " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", - " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", - " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", - " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", - " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", - " =@_@O+L ~@#@~@L _ 9 9 :@ ", - " ;.H+ @-._ (. ", - " ", - " "}; - """ - -def FSMesh(obj, recompute=False): - """ Get free surface mesh in matrix mode. - @param obj Created Part::FeaturePython object. - @param recompute True if mesh must be recomputed, False otherwise. - @return Faces matrix - """ - nx = obj.FS_Nx - ny = obj.FS_Ny - if not recompute: - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], - obj.FS_Normal[j + i*ny], - obj.FS_Area[j + i*ny])) - return faces - # Transform positions into a mesh - pos = [] - for i in range(0,nx): - pos.append([]) - for j in range(0,ny): - pos[i].append(obj.FS_Position[j + i*ny]) - # Recompute normals and dimensions - normal = [] - l = [] - b = [] - for i in range(0,nx): - normal.append([]) - l.append([]) - b.append([]) - for j in range(0,ny): - i0 = i-1 - i1 = i+1 - fi = 1.0 - j0 = j-1 - j1 = j+1 - fj = 1.0 - if i == 0: - i0 = i - i1 = i+1 - fi = 2.0 - if i == nx-1: - i0 = i-1 - i1 = i - fi = 2.0 - if j == 0: - j0 = j - j1 = j+1 - fj = 2.0 - if j == ny-1: - j0 = j-1 - j1 = j - fj = 2.0 - l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) - b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) - xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, - obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, - obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) - yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, - obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, - obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) - n = Vector(xvec.cross(yvec)) # Z positive - normal[i].append(n.normalize()) - # Create faces - faces = [] - for i in range(0,nx): - faces.append([]) - for j in range(0,ny): - faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) - # Reconstruct mesh data - for i in range(0,nx): - for j in range(0,ny): - obj.FS_Position[j + i*ny] = faces[i][j].pos - obj.FS_Normal[j + i*ny] = faces[i][j].normal - obj.FS_Area[j + i*ny] = faces[i][j].area - return faces +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +from math import * +import threading + +# COIN +from pivy.coin import * +from pivy import coin + +# FreeCAD +import FreeCAD,FreeCADGui +from FreeCAD import Base, Vector +import Part + +# Ship design module +from shipUtils import Paths, Translator, Math + +class FreeSurfaceFace: + def __init__(self, pos, normal, l, b): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param l Element length (distance between elements at x direction) + @param b Element beam (distance between elements at y direction) + """ + self.pos = pos + self.normal = normal + self.area = l*b + + def __init__(self, pos, normal, area): + """ Face storage. + @param pos Face position. + @param normal Face normal. + @param area Element area + """ + self.pos = pos + self.normal = normal + self.area = area + +class ShipSimulation: + def __init__(self, obj, fsMeshData, waves): + """ Creates a new simulation instance on active document. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + @param waves [[A,T,phi,heading],] Waves involved + """ + # Add uniqueness property to identify Tank instances + obj.addProperty("App::PropertyBool","IsShipSimulation","ShipSimulation", str(Translator.translate("True if is a valid ship simulation instance"))).IsShipSimulation=True + # Compute free surface mesh + self.createFSMesh(obj,fsMeshData) + self.computeWaves(obj,waves) + # Store waves + obj.addProperty("App::PropertyVectorList","Waves","ShipSimulation", str(Translator.translate("Waves (Amplitude,period,phase)"))).Waves=[] + obj.addProperty("App::PropertyFloatList","Waves_Dir","ShipSimulation", str(Translator.translate("Waves direction (0 deg to stern waves)"))).Waves_Dir=[] + w = [] + d = [] + for i in range(0,len(waves)): + w.append(Vector(waves[i][0], waves[i][1], waves[i][2])) + d.append(waves[i][3]) + obj.Waves = w + obj.Waves_Dir = d + # Add shapes + shape = self.computeShape(obj) + if not shape: + obj.IsShipSimulation=False + return + obj.Shape = shape + obj.Proxy = self + + def onChanged(self, fp, prop): + """ Property changed, tank must be recomputed """ + if prop == "IsShipSimulation": + FreeCAD.Console.PrintWarning("Ussually you don't want to modify manually this option.\n") + + def execute(self, obj): + """ Shape recomputation called """ + obj.Shape = self.computeShape(obj) + + def createFSMesh(self, obj, fsMeshData): + """ Create or modify free surface mesh. + @param obj Created Part::FeaturePython object. + @param fsMeshData [L,B,N] Free surface mesh data, with lenght + (x), Beam (y) and desired number of points. + """ + # Study input object + try: + props = obj.PropertiesList + props.index("IsShipSimulation") + if not obj.IsShipSimulation: + msg = str(Translator.translate("Object is not a valid ship simulation.\n")) + FreeCAD.Console.PrintError(msg) + return + except ValueError: + msg = str(Translator.translate("Object is not a ship simulation.\n")) + FreeCAD.Console.PrintError(msg) + return + # Get areas and number of elements per direction + L = fsMeshData[0] + B = fsMeshData[1] + N = fsMeshData[2] + A = L*B + area = A/N + l = sqrt(area) + b = sqrt(area) + nx = int(round(L / l)) + ny = int(round(B / b)) + # Start data fields if not already exist + props = obj.PropertiesList + try: + props.index("FS_Nx") + except ValueError: + obj.addProperty("App::PropertyInteger","FS_Nx","ShipSimulation", str(Translator.translate("Free surface number of elements at x direction"))).FS_Nx=0 + try: + props.index("FS_Ny") + except ValueError: + obj.addProperty("App::PropertyInteger","FS_Ny","ShipSimulation", str(Translator.translate("Free surface number of elements at y direction"))).FS_Ny=0 + try: + props.index("FS_Position") + except ValueError: + obj.addProperty("App::PropertyVectorList","FS_Position","ShipSimulation", str(Translator.translate("Free surface elements position"))).FS_Position=[] + try: + props.index("FS_Area") + except ValueError: + obj.addProperty("App::PropertyFloatList","FS_Area","ShipSimulation", str(Translator.translate("Free surface elements area"))).FS_Area=[] + try: + props.index("FS_Normal") + except ValueError: + obj.addProperty("App::PropertyVectorList","FS_Normal","ShipSimulation", str(Translator.translate("Free surface elements normal"))).FS_Normal=[] + # Fill data + obj.FS_Nx = nx + obj.FS_Ny = ny + pos = [] + areas = [] + normal = [] + for i in range(0,nx): + for j in range(0,ny): + pos.append(Vector(-0.5*L + (i+0.5)*l,-0.5*B + (j+0.5)*b,0.0)) + areas.append(l*b) + normal.append(Vector(0.0,0.0,1.0)) + obj.FS_Position = pos[:] + obj.FS_Area = areas[:] + obj.FS_Normal = normal[:] + + def computeWaves(self, obj, waves): + """ Add waves effect to free surface mesh positions. + @param obj Created Part::FeaturePython object. + @param waves waves data [A,T,phase, heading]. + """ + grav = 9.81 + positions = obj.FS_Position[:] + for i in range(0, len(positions)): + for w in waves: + A = w[0] + T = w[1] + phase = w[2] + heading = pi*w[3]/180.0 + wl = 0.5 * grav / pi * T*T + k = 2.0*pi/wl + frec = 2.0*pi/T + pos = obj.FS_Position[i] + l = pos.x*cos(heading) + pos.y*sin(heading) + amp = A*sin(k*l + phase) + positions[i].z = positions[i].z + amp + obj.FS_Position = positions[:] + + def computeShape(self, obj): + """ Computes simulation involved shapes. + @param obj Created Part::FeaturePython object. + @return Shape + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + mesh = FSMesh(obj) + # Create BSpline surface + surf = Part.BSplineSurface() + for i in range(1,nx-1): + u = i / float(nx-1) + surf.insertUKnot(u,i,0.000001) + for i in range(1,ny-1): + v = i / float(ny-1) + surf.insertVKnot(v,i,0.000001) + for i in range(0,nx): + for j in range(0,ny): + u = i / float(nx-1) + v = j / float(ny-1) + point = mesh[i][j].pos + surf.movePoint(u,v,point,i+1,i+1,j+1,j+1) + return surf.toShape() + +class ViewProviderShipSimulation: + def __init__(self, obj): + """ Set this object to the proxy object of the actual view provider """ + obj.Proxy = self + + def attach(self, obj): + """ Setup the scene sub-graph of the view provider, this method is mandatory """ + return + + def updateData(self, fp, prop): + """ If a property of the handled feature has changed we have the chance to handle this here """ + return + + def getDisplayModes(self,obj): + ''' Return a list of display modes. ''' + modes=[] + return modes + + def getDefaultDisplayMode(self): + ''' Return the name of the default display mode. It must be defined in getDisplayModes. ''' + return "Flat Lines" + + def setDisplayMode(self,mode): + ''' Map the display mode defined in attach with those defined in getDisplayModes. + Since they have the same names nothing needs to be done. This method is optinal. + ''' + return mode + + def onChanged(self, vp, prop): + ''' Print the name of the property that has changed ''' + # FreeCAD.Console.PrintMessage("Change property: " + str(prop) + "\n") + + def __getstate__(self): + ''' When saving the document this object gets stored using Python's cPickle module. + Since we have some un-pickable here -- the Coin stuff -- we must define this method + to return a tuple of all pickable objects or None. + ''' + return None + + def __setstate__(self,state): + ''' When restoring the pickled object from document we have the chance to set some + internals here. Since no data were pickled nothing needs to be done here. + ''' + return None + + def getIcon(self): + return """ + /* XPM */ + static char * Sim_xpm[] = { + "32 32 301 2", + " c None", + ". c #CCCCCC", + "+ c #A9A9A9", + "@ c #989898", + "# c #A1A1A1", + "$ c #C3C3C3", + "% c #C1C0C1", + "& c #BFBFBF", + "* c #A7A7A7", + "= c #808080", + "- c #5C5C5C", + "; c #565655", + "> c #4E4E4E", + ", c #676767", + "' c #898989", + ") c #B6B5B6", + "! c #BABABA", + "~ c #B9B9B9", + "{ c #A5A5A5", + "] c #7E7E7E", + "^ c #595A59", + "/ c #575656", + "( c #535353", + "_ c #505050", + ": c #4D4D4C", + "< c #474747", + "[ c #404040", + "} c #4D4D4D", + "| c #787878", + "1 c #B8B7B8", + "2 c #B6B6B6", + "3 c #888888", + "4 c #7C7C7C", + "5 c #575657", + "6 c #535354", + "7 c #4E4D4E", + "8 c #4A4A4A", + "9 c #444444", + "0 c #414141", + "a c #3E3E3E", + "b c #393938", + "c c #313131", + "d c #393939", + "e c #636363", + "f c #ABABAB", + "g c #B3B3B3", + "h c #848484", + "i c #787979", + "j c #545454", + "k c #515151", + "l c #4B4B4B", + "m c #484748", + "n c #3B3B3B", + "o c #383838", + "p c #353535", + "q c #323232", + "r c #2F2F2E", + "s c #2A2A2A", + "t c #222323", + "u c #252625", + "v c #AFAFAF", + "w c #767676", + "x c #484848", + "y c #454545", + "z c #424242", + "A c #3F3F3E", + "B c #3B3B3C", + "C c #393838", + "D c #2F2F2F", + "E c #2C2C2C", + "F c #292929", + "G c #262626", + "H c #222222", + "I c #1F1F20", + "J c #171716", + "K c #959595", + "L c #747474", + "M c #4E4E4F", + "N c #4C4B4C", + "O c #484849", + "P c #424243", + "Q c #282828", + "R c #525251", + "S c #373737", + "T c #353636", + "U c #333233", + "V c #30302F", + "W c #2C2D2D", + "X c #232323", + "Y c #201F20", + "Z c #1D1D1D", + "` c #151414", + " . c #717272", + ".. c #4C4C4C", + "+. c #484949", + "@. c #464545", + "#. c #424343", + "$. c #3A3A3A", + "%. c #5D4A49", + "&. c #7E7E86", + "*. c #56569F", + "=. c #3E3E41", + "-. c #757575", + ";. c #575757", + ">. c #222221", + ",. c #262627", + "'. c #242423", + "). c #212020", + "!. c #1A1A1A", + "~. c #121212", + "{. c #939493", + "]. c #6F6F6F", + "^. c #494949", + "/. c #464646", + "(. c #434343", + "_. c #554545", + ":. c #686863", + "<. c #939394", + "[. c #BDBDBD", + "}. c #202021", + "|. c #1E1E1E", + "1. c #171718", + "2. c #0F0F0F", + "3. c #929292", + "4. c #6C6D6D", + "5. c #464746", + "6. c #525F73", + "7. c #444648", + "8. c #3D3D3D", + "9. c #2D2C2A", + "0. c #A1A2A2", + "a. c #AAACAC", + "b. c #A6A7A7", + "c. c #A8AAAA", + "d. c #AFB0B0", + "e. c #777676", + "f. c #9A9A9A", + "g. c #1B1B1B", + "h. c #181818", + "i. c #0C0C0C", + "j. c #909090", + "k. c #6B6A6B", + "l. c #55657E", + "m. c #6990FB", + "n. c #6483CD", + "o. c #5871B2", + "p. c #434E7E", + "q. c #A97C76", + "r. c #AB7777", + "s. c #AC7070", + "t. c #A26565", + "u. c #805C5C", + "v. c #848686", + "w. c #424342", + "x. c #151515", + "y. c #0A0909", + "z. c #8F8F8F", + "A. c #676868", + "B. c #3B3A3A", + "C. c #383738", + "D. c #353534", + "E. c #45525F", + "F. c #6367AC", + "G. c #804682", + "H. c #942A39", + "I. c #991312", + "J. c #540901", + "K. c #393742", + "L. c #1C1C1C", + "M. c #191919", + "N. c #161515", + "O. c #121313", + "P. c #070707", + "Q. c #8D8E8D", + "R. c #656566", + "S. c #3E3F3F", + "T. c #2F2E2F", + "U. c #353838", + "V. c #35496A", + "W. c #3E4D88", + "X. c #354889", + "Y. c #5573D7", + "Z. c #5D80FB", + "`. c #374899", + " + c #293338", + ".+ c #101010", + "++ c #0D0D0D", + "@+ c #040404", + "#+ c #8C8C8C", + "$+ c #8B8B8B", + "%+ c #4B4A4B", + "&+ c #303030", + "*+ c #333232", + "=+ c #2F2F30", + "-+ c #232223", + ";+ c #1A1919", + ">+ c #2E3949", + ",+ c #5C7BA3", + "'+ c #36467D", + ")+ c #536F93", + "!+ c #0A0A0A", + "~+ c #010101", + "{+ c #C1C1C1", + "]+ c #B8B8B8", + "^+ c #A0A0A0", + "/+ c #3F3F3F", + "(+ c #222122", + "_+ c #202020", + ":+ c #161717", + "<+ c #141414", + "[+ c #111011", + "}+ c #0D0E0E", + "|+ c #0B0B0A", + "1+ c #000000", + "2+ c #525252", + "3+ c #686868", + "4+ c #ADADAD", + "5+ c #9E9F9F", + "6+ c #6D6D6D", + "7+ c #3C3C3C", + "8+ c #131414", + "9+ c #111111", + "0+ c #0E0E0E", + "a+ c #0B0B0B", + "b+ c #080708", + "c+ c #050504", + "d+ c #4C4D4C", + "e+ c #4D4C4D", + "f+ c #494A4A", + "g+ c #454444", + "h+ c #9D9D9D", + "i+ c #9E9E9E", + "j+ c #AEAEAE", + "k+ c #BEBEBF", + "l+ c #BEBDBD", + "m+ c #979797", + "n+ c #6A6B6A", + "o+ c #3F3F40", + "p+ c #020202", + "q+ c #030303", + "r+ c #878787", + "s+ c #69696A", + "t+ c #868685", + "u+ c #646464", + "v+ c #474647", + "w+ c #656565", + "x+ c #9E9F9E", + "y+ c #A8A8A8", + "z+ c #AFAFAE", + "A+ c #A4A4A4", + "B+ c #7A7A7A", + "C+ c #969696", + "D+ c #363636", + "E+ c #777776", + "F+ c #8C8D8D", + "G+ c #7D7D7D", + "H+ c #5E5E5E", + "I+ c #4F4F50", + "J+ c #808181", + "K+ c #707070", + "L+ c #909191", + "M+ c #9C9C9C", + "N+ c #787877", + "O+ c #696969", + "P+ c #616161", + "Q+ c #6E6E6E", + "R+ c #7C7B7C", + "S+ c #777677", + "T+ c #6F6E6E", + "U+ c #595959", + "V+ c #717171", + "W+ c #8D8D8D", + "X+ c #515051", + "Y+ c #49494A", + "Z+ c #4B4A4A", + "`+ c #606060", + " @ c #6A6A6A", + ".@ c #616162", + "+@ c #6C6D6C", + "@@ c #767777", + "#@ c #727272", + "$@ c #6B6B6B", + "%@ c #828283", + "&@ c #757475", + "*@ c #444545", + "=@ c #565656", + "-@ c #5A595A", + ";@ c #666666", + ">@ c #878687", + ",@ c #8A8A8A", + "'@ c #797979", + ")@ c #444344", + "!@ c #7F8080", + "~@ c #737373", + "{@ c #484747", + "]@ c #707170", + "^@ c #7F7F7F", + "/@ c #676867", + "(@ c #4D4C4C", + "_@ c #5F5F5F", + ":@ c #434444", + " ", + " ", + " . + ", + " @ # $ % & * ", + " = - ; > , ' ) ! ~ { ", + " ] ^ / ( _ : < [ } | # 1 2 # 3 ", + " 4 5 6 _ 7 8 < 9 0 a b c d e ' f g + h ", + " i j k 7 l m 9 0 a n o p q r s t u < | v ", + " w k > l x y z A B C p q D E F G H I J K ", + " L M N O y P Q R S T U V W F G X Y Z ` K ", + " ...+.@.#.$.%.&.*.=.-.;.>.,.'.).Z !.~.{. ", + " ].^./.(.[ c _._ :.<.[.$ ' /.}.|.!.1.2.3. ", + " 4.5.6.7.8.9.# 0.a.b.c.d.e.f.g.g.h.` i.j. ", + " k.9 l.m.n.o.p.q.r.s.t.u.v.w.g.h.x.~.y.z. ", + " A.0 a B.C.D.E.F.G.H.I.J.K.L.M.N.O.2.P.Q. ", + " R.S.n o p q T.E U.V.W.X.Y.Z.`. +.+++@+#+ ", + " $+%+&+q *+=+E F G -+I Z ;+>+,+'+)+!+~+$+ ", + " {+]+^+w /+H (+X _+Z !.:+<+[+}+|+P.1+' ", + " k 2+_ > 3+z.4+5+6+7+x.~.8+9+0+a+b+c+1+3 ", + " %+..d+e+..f+< g+h+i+j+k+l+m+n+o+P.p+q+p+1+r+ ", + " s+t+u+< (.< v+y 9 (.w+x+y+z+y+h+A+B+C+K ].D+1+h ", + " E+i+F+f.j.G+H+9 [ (.z I+J+m+f.j.K+z 9 9 9 K+L+r+/.9 (. ", + " L M+N+O+u+P+Q+R+S+T+U+y 8 - ;...9 9 9 9 9 9 9 9 (.(.k w+ ", + " V+m+' W+r+] , X+Y+(.: r+L P+k 9 z (.9 9 9 9 (.(.Z+;.- `+ ", + " ].C+w @u+.@+@@@#@$@j %@B+&@#@L $@H+2+/.0 (.*@+.} 2+=@-@ ", + " ;@| >@,@'@u+k 8 )@..!@| ~@V+#@#@#@#@L 6+..(.9 {@.._ ( ", + " e ]@^@] /@k G+w #@#@#@#@#@V+ @$@_ 9 9 9 /.Y+(@ ", + " - R.T+L ~@#@#@#@#@]._ _@_ 9 9 9 (.9 x ", + " =@_@O+L ~@#@~@L _ 9 9 :@ ", + " ;.H+ @-._ (. ", + " ", + " "}; + """ + +def FSMesh(obj, recompute=False): + """ Get free surface mesh in matrix mode. + @param obj Created Part::FeaturePython object. + @param recompute True if mesh must be recomputed, False otherwise. + @return Faces matrix + """ + nx = obj.FS_Nx + ny = obj.FS_Ny + if not recompute: + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(obj.FS_Position[j + i*ny], + obj.FS_Normal[j + i*ny], + obj.FS_Area[j + i*ny])) + return faces + # Transform positions into a mesh + pos = [] + for i in range(0,nx): + pos.append([]) + for j in range(0,ny): + pos[i].append(obj.FS_Position[j + i*ny]) + # Recompute normals and dimensions + normal = [] + l = [] + b = [] + for i in range(0,nx): + normal.append([]) + l.append([]) + b.append([]) + for j in range(0,ny): + i0 = i-1 + i1 = i+1 + fi = 1.0 + j0 = j-1 + j1 = j+1 + fj = 1.0 + if i == 0: + i0 = i + i1 = i+1 + fi = 2.0 + if i == nx-1: + i0 = i-1 + i1 = i + fi = 2.0 + if j == 0: + j0 = j + j1 = j+1 + fj = 2.0 + if j == ny-1: + j0 = j-1 + j1 = j + fj = 2.0 + l[i].append(fi*(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x)) + b[i].append(fj*(obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y)) + xvec = Vector(obj.FS_Position[j + i1*ny].x - obj.FS_Position[j + i0*ny].x, + obj.FS_Position[j + i1*ny].y - obj.FS_Position[j + i0*ny].y, + obj.FS_Position[j + i1*ny].z - obj.FS_Position[j + i0*ny].z) + yvec = Vector(obj.FS_Position[j1 + i*ny].x - obj.FS_Position[j0 + i*ny].x, + obj.FS_Position[j1 + i*ny].y - obj.FS_Position[j0 + i*ny].y, + obj.FS_Position[j1 + i*ny].z - obj.FS_Position[j0 + i*ny].z) + n = Vector(xvec.cross(yvec)) # Z positive + normal[i].append(n.normalize()) + # Create faces + faces = [] + for i in range(0,nx): + faces.append([]) + for j in range(0,ny): + faces[i].append(FreeSurfaceFace(pos[i][j], normal[i][j], l[i][j], b[i][j])) + # Reconstruct mesh data + for i in range(0,nx): + for j in range(0,ny): + obj.FS_Position[j + i*ny] = faces[i][j].pos + obj.FS_Normal[j + i*ny] = faces[i][j].normal + obj.FS_Area[j + i*ny] = faces[i][j].area + return faces diff --git a/src/Mod/Ship/simCreate/TaskPanel.py b/src/Mod/Ship/simCreate/TaskPanel.py index e14f4c964..38ea00b96 100644 --- a/src/Mod/Ship/simCreate/TaskPanel.py +++ b/src/Mod/Ship/simCreate/TaskPanel.py @@ -1,174 +1,177 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -# FreeCAD modules -import FreeCAD as App -import FreeCADGui as Gui -# Qt library -from PyQt4 import QtGui,QtCore -# Module -import SimInstance -from shipUtils import Paths, Translator - -class TaskPanel: - def __init__(self): - self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" - - def accept(self): - form = self.form - # Read waves data - w = [] - for i in range(0,form.waves.rowCount() - 1): - item = form.waves.item(i,0) - A = item.text().toFloat()[0] - item = form.waves.item(i,1) - T = item.text().toFloat()[0] - item = form.waves.item(i,2) - phi = item.text().toFloat()[0] - item = form.waves.item(i,3) - head = item.text().toFloat()[0] - w.append([A,T,phi,head]) - obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") - sim = SimInstance.ShipSimulation(obj, - [form.length.value(), form.beam.value(), form.n.value()], - w) - SimInstance.ViewProviderShipSimulation(obj.ViewObject) - return True - - def reject(self): - return True - - def clicked(self, index): - pass - - def open(self): - pass - - def needsFullSpace(self): - return True - - def isAllowedAlterSelection(self): - return False - - def isAllowedAlterView(self): - return True - - def isAllowedAlterDocument(self): - return False - - def helpRequested(self): - pass - - def setupUi(self): - mw = self.getMainWindow() - form = mw.findChild(QtGui.QWidget, "TaskPanel") - form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") - form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") - form.n = form.findChild(QtGui.QSpinBox, "N") - form.waves = form.findChild(QtGui.QTableWidget, "Waves") - self.form = form - # Initial values - if self.initValues(): - return True - self.retranslateUi() - # Connect Signals and Slots - QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) - QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) - QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); - - def getMainWindow(self): - "returns the main window" - # using QtGui.qApp.activeWindow() isn't very reliable because if another - # widget than the mainwindow is active (e.g. a dialog) the wrong widget is - # returned - toplevel = QtGui.qApp.topLevelWidgets() - for i in toplevel: - if i.metaObject().className() == "Gui::MainWindow": - return i - raise Exception("No main window found") - - def initValues(self): - """ Set initial values for fields - """ - msg = Translator.translate("Ready to work\n") - App.Console.PrintMessage(msg) - return False - - def retranslateUi(self): - """ Set user interface locale strings. - """ - self.form.setWindowTitle(Translator.translate("Create a new ship simulation")) - self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(Translator.translate("Free surface")) - self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) - self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) - self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) - self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(Translator.translate("Waves")) - labels = [] - labels.append(Translator.translate("Amplitude") + " [m]") - labels.append(Translator.translate("Period") + " [s]") - labels.append(Translator.translate("Phase") + " [rad]") - labels.append(Translator.translate("Heading") + " [deg]") - self.form.waves.setHorizontalHeaderLabels(labels) - - def onFS(self, value): - """ Method called when free surface data is changed. - @param value Changed value. - """ - pass - - def onWaves(self, row, column): - """ Method called when waves data is changed. - @param row Affected row. - @param col Affected column. - """ - item = self.form.waves.item(row,column) - # Row deletion - if column == 0: - if not item.text(): - self.form.waves.removeRow(row) - # Ensure that exist one empty item at the end - nRow = self.form.waves.rowCount() - last = self.form.waves.item(nRow-1,0) - if last: - if(last.text() != ''): - self.form.waves.setRowCount(nRow+1) - # Fields must be numbers - for i in range(0,self.form.waves.rowCount()-1): # Avoid last row - for j in range(0,self.form.waves.columnCount()): # Avoid name column - item = self.form.waves.item(i,j) - if not item: - item = QtGui.QTableWidgetItem('0.0') - self.form.waves.setItem(i,j,item) - continue - (number,flag) = item.text().toFloat() - if not flag: - item.setText('0.0') - -def createTask(): - panel = TaskPanel() - Gui.Control.showDialog(panel) - if panel.setupUi(): - Gui.Control.closeDialog(panel) - return None - return panel +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD as App +import FreeCADGui as Gui +# Qt library +from PyQt4 import QtGui,QtCore +# Module +import SimInstance +from shipUtils import Paths, Translator + +class TaskPanel: + def __init__(self): + self.ui = Paths.modulePath() + "/simCreate/TaskPanel.ui" + + def accept(self): + form = self.form + # Read waves data + w = [] + for i in range(0,form.waves.rowCount() - 1): + item = form.waves.item(i,0) + A = item.text().toFloat()[0] + item = form.waves.item(i,1) + T = item.text().toFloat()[0] + item = form.waves.item(i,2) + phi = item.text().toFloat()[0] + item = form.waves.item(i,3) + head = item.text().toFloat()[0] + w.append([A,T,phi,head]) + obj = App.ActiveDocument.addObject("Part::FeaturePython","ShipSimulation") + sim = SimInstance.ShipSimulation(obj, + [form.length.value(), form.beam.value(), form.n.value()], + w) + SimInstance.ViewProviderShipSimulation(obj.ViewObject) + return True + + def reject(self): + return True + + def clicked(self, index): + pass + + def open(self): + pass + + def needsFullSpace(self): + return True + + def isAllowedAlterSelection(self): + return False + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return False + + def helpRequested(self): + pass + + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.length = form.findChild(QtGui.QDoubleSpinBox, "Length") + form.beam = form.findChild(QtGui.QDoubleSpinBox, "Beam") + form.n = form.findChild(QtGui.QSpinBox, "N") + form.waves = form.findChild(QtGui.QTableWidget, "Waves") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.length, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.beam, QtCore.SIGNAL("valueChanged(double)"), self.onFS) + QtCore.QObject.connect(form.n, QtCore.SIGNAL("valueChanged(int)"), self.onFS) + QtCore.QObject.connect(form.waves,QtCore.SIGNAL("cellChanged(int,int)"),self.onWaves); + + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") + + def initValues(self): + """ Set initial values for fields + """ + msg = Translator.translate("Ready to work\n") + App.Console.PrintMessage(msg) + return False + + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(Translator.translate("Create a new ship simulation")) + self.form.findChild(QtGui.QGroupBox, "FSDataBox").setTitle(Translator.translate("Free surface")) + self.form.findChild(QtGui.QLabel, "LengthLabel").setText(Translator.translate("Length")) + self.form.findChild(QtGui.QLabel, "BeamLabel").setText(Translator.translate("Beam")) + self.form.findChild(QtGui.QLabel, "NLabel").setText(Translator.translate("Number of points")) + self.form.findChild(QtGui.QGroupBox, "WavesDataBox").setTitle(Translator.translate("Waves")) + labels = [] + labels.append(Translator.translate("Amplitude") + " [m]") + labels.append(Translator.translate("Period") + " [s]") + labels.append(Translator.translate("Phase") + " [rad]") + labels.append(Translator.translate("Heading") + " [deg]") + self.form.waves.setHorizontalHeaderLabels(labels) + + def onFS(self, value): + """ Method called when free surface data is changed. + @param value Changed value. + """ + pass + + def onWaves(self, row, column): + """ Method called when waves data is changed. + @param row Affected row. + @param col Affected column. + """ + item = self.form.waves.item(row,column) + # Row deletion + if column == 0: + if not item.text(): + self.form.waves.removeRow(row) + # Ensure that exist one empty item at the end + nRow = self.form.waves.rowCount() + if not nRow: + self.form.waves.setRowCount(1) + else: + last = self.form.waves.item(nRow-1,0) + if last: + if(last.text() != ''): + self.form.waves.setRowCount(nRow+1) + # Fields must be numbers + for i in range(0,self.form.waves.rowCount()-1): # Avoid last row + for j in range(0,self.form.waves.columnCount()): # Avoid name column + item = self.form.waves.item(i,j) + if not item: + item = QtGui.QTableWidgetItem('0.0') + self.form.waves.setItem(i,j,item) + continue + (number,flag) = item.text().toFloat() + if not flag: + item.setText('0.0') + +def createTask(): + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel From 87c42d512cfcedeb8491dd2eb16b9deb51ea7a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Mon, 6 Aug 2012 18:24:18 +0200 Subject: [PATCH 47/98] Fixed several free surface evolution bugs --- src/Mod/Ship/simRun/Sim/fsEvolution.py | 20 ++++++++++++++------ src/Mod/Ship/simRun/Sim/initialization.py | 10 ++++------ src/Mod/Ship/simRun/Simulation.py | 19 ++++++++++++++++--- src/Mod/Ship/simRun/TaskPanel.py | 2 +- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.py b/src/Mod/Ship/simRun/Sim/fsEvolution.py index cd68fe085..fd0be670a 100644 --- a/src/Mod/Ship/simRun/Sim/fsEvolution.py +++ b/src/Mod/Ship/simRun/Sim/fsEvolution.py @@ -54,6 +54,11 @@ class simFSEvolution: # Integrate variables for i in range(0,nx): for j in range(0,ny): + # Get value at pos using characteristics method + gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) + gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + \ + dt*np.linalg.norm(grad[i*ny+j]) # Free surface points position self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*grad[i*ny+j][2] # Velocity potential @@ -67,6 +72,9 @@ class simFSEvolution: for i in range(0,nx): for j in [0,ny-1]: self.boundaryCondition(i,j, waves, dt, t) + for j in range(0,ny): + for i in [0,nx-1]: + self.boundaryCondition(i,j, waves, dt, t) def evaluateGradient(self): """ Evaluate potential gradients over free surface. @@ -89,7 +97,7 @@ class simFSEvolution: """ nx = self.fs['Nx'] ny = self.fs['Ny'] - grad = np.ndarray(3, dtype=np.float32) + grad = np.zeros(3, dtype=np.float32) for i in range(0,nx): for j in range(0,ny): # Get source position (desingularized) @@ -100,6 +108,8 @@ class simFSEvolution: # Get distance between points d = pos-srcPos grad = grad + d/np.dot(d,d)*src*area + # Discard Z induced effect by desingularization + grad[2] = 0. return grad def boundaryCondition(self, i,j, waves, dt, t): @@ -113,6 +123,8 @@ class simFSEvolution: """ pos = self.fs['pos'][i,j] pos[2] = 0. + self.fs['velPot'][i,j] = 0. + self.fs['accPot'][i,j] = 0. for w in waves['data']: A = w[0] T = w[1] @@ -125,11 +137,7 @@ class simFSEvolution: l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) amp = A*np.sin(k*l - frec*(t+dt) + phase) self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + amp - amp = frec*A*np.cos(k*l - frec*(t+dt) + phase) - self.fs['vel'][i,j][2] = self.fs['vel'][i,j][2] - amp - amp = frec*frec*A*np.sin(k*l - frec*(t+dt) + phase) - self.fs['acc'][i,j][2] = self.fs['acc'][i,j][2] - amp - amp = grav/frec*A*np.sin(k*l - frec*(t+dt) + phase) + amp = - grav/frec*A*np.sin(k*l - frec*(t+dt) + phase) self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + amp amp = grav*A*np.cos(k*l - frec*(t+dt) + phase) self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + amp diff --git a/src/Mod/Ship/simRun/Sim/initialization.py b/src/Mod/Ship/simRun/Sim/initialization.py index b2da085ff..e89192c14 100644 --- a/src/Mod/Ship/simRun/Sim/initialization.py +++ b/src/Mod/Ship/simRun/Sim/initialization.py @@ -43,7 +43,8 @@ class simInitialization: # Compute time step self.dt = 0.1 for w in self.waves['data']: - self.dt = np.min(self.dt, w[1]/200.0) + if(self.dt > w[1]/200.0): + self.dt = w[1]/200.0 def loadData(self, FSmesh, waves): """ Convert data to numpy format. @@ -99,6 +100,7 @@ class simInitialization: ny = self.fs['Ny'] for i in range(0,nx): for j in range(0,ny): + self.fs['pos'][i,j][2] = 0. for w in self.waves['data']: A = w[0] T = w[1] @@ -111,11 +113,7 @@ class simInitialization: l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) amp = A*np.sin(k*l + phase) self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + amp - amp = frec*A*np.cos(k*l + phase) - self.fs['vel'][i,j][2] = self.fs['vel'][i,j][2] - amp - amp = frec*frec*A*np.sin(k*l + phase) - self.fs['acc'][i,j][2] = self.fs['acc'][i,j][2] - amp - amp = grav/frec*A*np.sin(k*l + phase) + amp = - grav/frec*A*np.sin(k*l + phase) self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + amp amp = grav*A*np.cos(k*l + phase) self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + amp diff --git a/src/Mod/Ship/simRun/Simulation.py b/src/Mod/Ship/simRun/Simulation.py index 598b6178e..01375633f 100644 --- a/src/Mod/Ship/simRun/Simulation.py +++ b/src/Mod/Ship/simRun/Simulation.py @@ -48,11 +48,12 @@ class Singleton(type): class FreeCADShipSimulation(threading.Thread): __metaclass__ = Singleton - def __init__ (self, device, endTime, output, FSmesh, waves): + def __init__ (self, device, endTime, output, simInstance, FSmesh, waves): """ Thread constructor. @param device Device to use. @param endTime Maximum simulation time. @param output [Rate,Type] Output rate, Type=0 if FPS, 1 if IPF. + @param simInstance Simulaation instance. @param FSmesh Free surface mesh faces. @param waves Waves parameters (A,T,phi,heading) """ @@ -70,6 +71,7 @@ class FreeCADShipSimulation(threading.Thread): # Storage data self.endTime = endTime self.output = output + self.sim = simInstance self.FSmesh = FSmesh self.waves = waves @@ -93,9 +95,11 @@ class FreeCADShipSimulation(threading.Thread): waves = init.waves dt = init.dt t = 0.0 + nx = FS['Nx'] + ny = FS['Ny'] msg = Translator.translate("\t[Sim]: Iterating...\n") FreeCAD.Console.PrintMessage(msg) - while self.active: + while self.active and t < self.endTime: msg = Translator.translate("\t\t[Sim]: Generating linear system matrix...\n") FreeCAD.Console.PrintMessage(msg) matGen.execute(FS, A) @@ -106,7 +110,16 @@ class FreeCADShipSimulation(threading.Thread): FreeCAD.Console.PrintMessage(msg) fsEvol.execute(FS, waves, dt, t) t = t + dt - FreeCAD.Console.PrintMessage('t = %g s' % (t)) + FreeCAD.Console.PrintMessage('t = %g s\n' % (t)) + # Update FreeCAD + """ + pos = self.sim.FS_Position[:] + for i in range(0, nx): + for j in range(0, ny): + pos[i*ny+j].z = float(FS['pos'][i,j][2]) + self.sim.FS_Position = pos[:] + FreeCAD.ActiveDocument.recompute() + """ # Set thread as stopped (and prepare it to restarting) self.active = False threading.Event().set() diff --git a/src/Mod/Ship/simRun/TaskPanel.py b/src/Mod/Ship/simRun/TaskPanel.py index d2c34b8b7..58faa2b2d 100644 --- a/src/Mod/Ship/simRun/TaskPanel.py +++ b/src/Mod/Ship/simRun/TaskPanel.py @@ -69,7 +69,7 @@ class TaskPanel: msg = Translator.translate("Launching simulation...\n") App.Console.PrintMessage(msg) # Build simulation thread - simulator = Sim(device, endTime, output, FSMesh, waves) + simulator = Sim(device, endTime, output, self.sim, FSMesh, waves) simulator.start() msg = Translator.translate("Done!\n") App.Console.PrintMessage(msg) From 3d0328134d109a5e9b79e1e3281149170cfc95d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Tue, 7 Aug 2012 12:59:34 +0200 Subject: [PATCH 48/98] First simulator draft version. --- src/Mod/Ship/CMakeLists.txt | 17 +- src/Mod/Ship/Icons/SimIco.xcf | Bin 55163 -> 58237 bytes src/Mod/Ship/Icons/SimPostIco.png | Bin 0 -> 13708 bytes src/Mod/Ship/Icons/SimPostIco.xpm | 2077 +++++++++++++++++++++++ src/Mod/Ship/InitGui.py | 136 +- src/Mod/Ship/Makefile.am | 7 +- src/Mod/Ship/ShipGui.py | 352 ++-- src/Mod/Ship/simPost/TaskPanel.py | 156 ++ src/Mod/Ship/simPost/TaskPanel.ui | 81 + src/Mod/Ship/simPost/__init__.py | 40 + src/Mod/Ship/simRun/Sim/fsEvolution.py | 59 +- src/Mod/Ship/simRun/Sim/fsEvolution.pyc | Bin 0 -> 4941 bytes src/Mod/Ship/simRun/Simulation.py | 28 +- src/Mod/Ship/simRun/Simulation.pyc | Bin 0 -> 4343 bytes 14 files changed, 2684 insertions(+), 269 deletions(-) create mode 100644 src/Mod/Ship/Icons/SimPostIco.png create mode 100644 src/Mod/Ship/Icons/SimPostIco.xpm create mode 100644 src/Mod/Ship/simPost/TaskPanel.py create mode 100644 src/Mod/Ship/simPost/TaskPanel.ui create mode 100644 src/Mod/Ship/simPost/__init__.py create mode 100644 src/Mod/Ship/simRun/Sim/fsEvolution.pyc create mode 100644 src/Mod/Ship/simRun/Simulation.pyc diff --git a/src/Mod/Ship/CMakeLists.txt b/src/Mod/Ship/CMakeLists.txt index 300f999f8..9e7ed7347 100644 --- a/src/Mod/Ship/CMakeLists.txt +++ b/src/Mod/Ship/CMakeLists.txt @@ -45,6 +45,8 @@ SET(ShipIcons_SRCS Icons/SimRunIco.xpm Icons/SimStopIco.png Icons/SimStopIco.xpm + Icons/SimPostIco.png + Icons/SimPostIco.xpm Icons/Tank.png Icons/Tank.xcf Icons/Tank.xpm @@ -156,7 +158,14 @@ SET(SimRun_SRCS ) SOURCE_GROUP("simrun" FILES ${SimRun_SRCS}) -SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS} ${SimCreate_SRCS} ${SimRun_SRCS}) +SET(SimPost_SRCS + simPost/__init__.py + simPost/TaskPanel.py + simPost/TaskPanel.ui +) +SOURCE_GROUP("simpost" FILES ${SimPost_SRCS}) + +SET(all_files ${ShipMain_SRCS} ${ShipIcons_SRCS} ${ShipExamples_SRCS} ${ShipLoadExample_SRCS} ${ShipCreateShip_SRCS} ${ShipOutlineDraw_SRCS} ${ShipAreasCurve_SRCS} ${ShipHydrostatics_SRCS} ${ShipUtils_SRCS} ${ShipWeights_SRCS} ${ShipCreateTank_SRCS} ${ShipGZ_SRCS} ${SimCreate_SRCS} ${SimRun_SRCS} ${SimPost_SRCS}) ADD_CUSTOM_TARGET(Ship ALL SOURCES ${all_files} @@ -242,6 +251,12 @@ INSTALL( DESTINATION Mod/Ship/simRun ) +INSTALL( + FILES + ${SimPost_SRCS} + DESTINATION + Mod/Ship/simPost +) INSTALL( FILES ${ShipMain_SRCS} diff --git a/src/Mod/Ship/Icons/SimIco.xcf b/src/Mod/Ship/Icons/SimIco.xcf index 8d250eb82f8e3c0da77f2f8765d0f0dedbbb1cc4..1c00aefe1875587f8987d1253f87003bd98f6186 100644 GIT binary patch delta 3348 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 c #E7E7E7", +", c #E7E6E7", +"' c #E6E6E6", +") c #5F5F5F", +"! c #606060", +"~ c #868686", +"{ c #AEAEAE", +"] c #C3C2C2", +"^ c #D1D1D1", +"/ c #E4E3E3", +"( c #E5E6E5", +"_ c #E6E5E5", +": c #E5E4E5", +"< c #6B6B6B", +"[ c #7B7A7A", +"} c #888889", +"| c #ABABAB", +"1 c #D5D5D5", +"2 c #E5E6E6", +"3 c #E5E5E5", +"4 c #E4E5E4", +"5 c #E4E4E4", +"6 c #E3E3E3", +"7 c #E3E3E2", +"8 c #E2E2E2", +"9 c #5E5E5E", +"0 c #5D5D5D", +"a c #5C5C5C", +"b c #5B5B5C", +"c c #5A5B5B", +"d c #838484", +"e c #BABABA", +"f c #DEDEDE", +"g c #E2E3E2", +"h c #E1E2E2", +"i c #E1E1E2", +"j c #E0E1E0", +"k c #E1E1E1", +"l c #EAE9E9", +"m c #5E5F5F", +"n c #5E5D5E", +"o c #5C5D5C", +"p c #5B5C5B", +"q c #5B5A5A", +"r c #5A5A5A", +"s c #595959", +"t c #595858", +"u c #585857", +"v c #575757", +"w c #686868", +"x c #909090", +"y c #BEBEBE", +"z c #D3D2D3", +"A c #E0E0E0", +"B c #E0DFE0", +"C c #E0DFDF", +"D c #DEDEDF", +"E c #5F5E5E", +"F c #5E5D5D", +"G c #5C5B5B", +"H c #5B5B5B", +"I c #5A5A59", +"J c #595A59", +"K c #595859", +"L c #585757", +"M c #565656", +"N c #555555", +"O c #545455", +"P c #545454", +"Q c #676666", +"R c #717272", +"S c #8B8B8A", +"T c #B7B7B8", +"U c #DFDFDF", +"V c #DDDDDD", +"W c #DCDDDD", +"X c #DDDCDC", +"Y c #E8E9E9", +"Z c #5D5E5E", +"` c #5C5B5C", +" . c #595958", +".. c #585858", +"+. c #565657", +"@. c #555556", +"#. c #545554", +"$. c #555454", +"%. c #535354", +"&. c #525252", +"*. c #525251", +"=. c #515050", +"-. c #4F5050", +";. c #4F4F50", +">. c #4E4F4F", +",. c #959595", +"'. c #CAC9C9", +"). c #D9D9DA", +"!. c #DADBDA", +"~. c #DCDCDC", +"{. c #DDDDDC", +"]. c #DBDCDB", +"^. c #DBDBDB", +"/. c #DADADB", +"(. c #DADADA", +"_. c #E8E8E9", +":. c #5B5A5B", +"<. c #505151", +"[. c #505050", +"}. c #4F4F4F", +"|. c #4E4D4E", +"1. c #4D4D4D", +"2. c #4C4D4D", +"3. c #4C4C4C", +"4. c #4B4B4B", +"5. c #707070", +"6. c #959596", +"7. c #AAAAAA", +"8. c #BFBEBF", +"9. c #D7D7D6", +"0. c #DADAD9", +"a. c #D9DADA", +"b. c #D8D9D9", +"c. c #5B5C5C", +"d. c #5A5B5A", +"e. c #5A5959", +"f. c #565757", +"g. c #535353", +"h. c #535253", +"i. c #505150", +"j. c #4F504F", +"k. c #4E4E4E", +"l. c #4C4B4B", +"m. c #494A49", +"n. c #494949", +"o. c #484747", +"p. c #6C6C6C", +"q. c #C7C7C7", +"r. c #DAD9D9", +"s. c #D9D8D9", +"t. c #D9D8D8", +"u. c #D8D8D8", +"v. c #D8D8D7", +"w. c #D7D8D8", +"x. c #D7D7D7", +"y. c #D6D6D6", +"z. c #D5D5D6", +"A. c #5E5E5D", +"B. c #595A5A", +"C. c #575656", +"D. c #545555", +"E. c #4F4E4E", +"F. c #4E4E4D", +"G. c #4C4D4C", +"H. c #4C4B4C", +"I. c #4A4A4A", +"J. c #494A4A", +"K. c #494848", +"L. c #484847", +"M. c #474747", +"N. c #474646", +"O. c #454545", +"P. c #444444", +"Q. c #434343", +"R. c #434243", +"S. c #6D6D6D", +"T. c #A7A8A7", +"U. c #D0D0D0", +"V. c #D4D4D4", +"W. c #D6D5D5", +"X. c #E7E8E8", +"Y. c #59595A", +"Z. c #535454", +"`. c #515151", +" + c #4D4D4C", +".+ c #464647", +"++ c #464545", +"@+ c #444545", +"#+ c #424242", +"$+ c #414141", +"%+ c #404041", +"&+ c #3F4040", +"*+ c #787878", +"=+ c #969696", +"-+ c #A7A7A7", +";+ c #C3C3C2", +">+ c #D5D4D5", +",+ c #D4D4D5", +"'+ c #D3D4D4", +")+ c #D3D3D3", +"!+ c #D2D3D3", +"~+ c #E6E7E6", +"{+ c #5A5A5B", +"]+ c #575858", +"^+ c #575657", +"/+ c #555656", +"(+ c #565555", +"_+ c #525352", +":+ c #515051", +"<+ c #4D4D4E", +"[+ c #4D4C4C", +"}+ c #4A4A49", +"|+ c #474848", +"1+ c #464747", +"2+ c #444544", +"3+ c #434342", +"4+ c #434142", +"5+ c #404141", +"6+ c #403F3F", +"7+ c #3F3E3E", +"8+ c #3E3E3E", +"9+ c #3D3D3D", +"0+ c #3C3C3C", +"a+ c #404040", +"b+ c #707071", +"c+ c #A4A5A5", +"d+ c #D4D3D3", +"e+ c #D3D2D2", +"f+ c #D2D2D2", +"g+ c #D2D2D1", +"h+ c #D1D0D0", +"i+ c #D0D1D0", +"j+ c #CFD0CF", +"k+ c #525353", +"l+ c #525152", +"m+ c #504F4F", +"n+ c #4B4A4A", +"o+ c #484848", +"p+ c #464646", +"q+ c #454544", +"r+ c #454444", +"s+ c #424343", +"t+ c #414142", +"u+ c #403F40", +"v+ c #3F3F3F", +"w+ c #3C3D3C", +"x+ c #3B3B3B", +"y+ c #3A3A3A", +"z+ c #3A3A39", +"A+ c #383838", +"B+ c #373737", +"C+ c #474847", +"D+ c #7F7F7F", +"E+ c #B6B6B6", +"F+ c #C8C9C8", +"G+ c #CBCBCB", +"H+ c #CFD0D0", +"I+ c #D0D0CF", +"J+ c #D0CFD0", +"K+ c #CFCFCF", +"L+ c #CECECE", +"M+ c #CECDCE", +"N+ c #545453", +"O+ c #525151", +"P+ c #4F4E4F", +"Q+ c #4A4B4B", +"R+ c #4A494A", +"S+ c #474647", +"T+ c #454645", +"U+ c #404140", +"V+ c #3E3E3F", +"W+ c #3D3E3E", +"X+ c #3D3C3C", +"Y+ c #3C3B3C", +"Z+ c #3C3B3B", +"`+ c #3A3939", +" @ c #383839", +".@ c #363637", +"+@ c #353636", +"@@ c #353535", +"#@ c #343434", +"$@ c #333333", +"%@ c #7B7B7C", +"&@ c #919190", +"*@ c #ACACAB", +"=@ c #C9C9C9", +"-@ c #CECFCE", +";@ c #CECECD", +">@ c #CDCDCD", +",@ c #CDCDCC", +"'@ c #CCCCCC", +")@ c #CCCCCB", +"!@ c #858585", +"~@ c #E6E5E6", +"{@ c #585859", +"]@ c #565655", +"^@ c #545354", +"/@ c #4E4F4E", +"(@ c #4C4C4D", +"_@ c #4B4B4A", +":@ c #484748", +"<@ c #434344", +"[@ c #3D3C3D", +"}@ c #393839", +"|@ c #373636", +"1@ c #333334", +"2@ c #323332", +"3@ c #323232", +"4@ c #313131", +"5@ c #303131", +"6@ c #383939", +"7@ c #50504F", +"8@ c #7E7F7E", +"9@ c #B6B7B6", +"0@ c #CBCBCC", +"a@ c #CBCBCA", +"b@ c #CACACA", +"c@ c #CAC9CA", +"d@ c #575857", +"e@ c #515150", +"f@ c #4A4A4B", +"g@ c #494849", +"h@ c #474746", +"i@ c #464547", +"j@ c #434444", +"k@ c #424141", +"l@ c #3D3D3E", +"m@ c #3B3C3B", +"n@ c #3B3B3A", +"o@ c #383737", +"p@ c #363737", +"q@ c #363636", +"r@ c #353635", +"s@ c #343433", +"t@ c #333233", +"u@ c #313132", +"v@ c #323131", +"w@ c #303030", +"x@ c #2F2F2F", +"y@ c #2F2F2E", +"z@ c #2E2E2F", +"A@ c #2D2C2D", +"B@ c #2C2D2D", +"C@ c #2C2C2C", +"D@ c #2C2B2C", +"E@ c #939393", +"F@ c #B9BAB9", +"G@ c #C0C0C0", +"H@ c #C7C6C7", +"I@ c #CACAC9", +"J@ c #C9C9C8", +"K@ c #C8C8C9", +"L@ c #C8C8C8", +"M@ c #585758", +"N@ c #535152", +"O@ c #504F50", +"P@ c #4B4C4A", +"Q@ c #494948", +"R@ c #454646", +"S@ c #434443", +"T@ c #414241", +"U@ c #3F3F40", +"V@ c #3F3E3F", +"W@ c #3E3E3D", +"X@ c #3D3C3E", +"Y@ c #393939", +"Z@ c #373838", +"`@ c #363535", +" # c #343334", +".# c #313232", +"+# c #2E2E2E", +"@# c #2D2D2D", +"## c #2C2B2B", +"$# c #2B2B2B", +"%# c #2A2A2A", +"&# c #29292A", +"*# c #292929", +"=# c #282828", +"-# c #383938", +";# c #5D5E5D", +"># c #7A797A", +",# c #919191", +"'# c #B3B2B3", +")# c #C8C7C8", +"!# c #C8C7C7", +"~# c #C8C8C7", +"{# c #C7C7C6", +"]# c #C6C6C7", +"^# c #C6C6C5", +"/# c #9D9D9D", +"(# c #E4E4E5", +"_# c #4A4B4A", +":# c #484949", +"<# c #474748", +"[# c #444443", +"}# c #424241", +"|# c #3C3D3D", +"1# c #3B3A3B", +"2# c #383837", +"3# c #353434", +"4# c #333434", +"5# c #313031", +"6# c #302F2F", +"7# c #2D2D2E", +"8# c #2A2B2B", +"9# c #292A2A", +"0# c #292828", +"a# c #282928", +"b# c #272727", +"c# c #262626", +"d# c #242524", +"e# c #C6C6C6", +"f# c #C5C5C5", +"g# c #C5C5C6", +"h# c #424243", +"i# c #3B3A3A", +"j# c #383738", +"k# c #343534", +"l# c #343333", +"m# c #313130", +"n# c #302F30", +"o# c #2D2C2C", +"p# c #2C2C2D", +"q# c #272626", +"r# c #252625", +"s# c #262525", +"t# c #242424", +"u# c #232423", +"v# c #222223", +"w# c #222222", +"x# c #212121", +"y# c #1F1F20", +"z# c #30302F", +"A# c #6A696A", +"B# c #A0A09F", +"C# c #C5C6C5", +"D# c #E3E4E4", +"E# c #555655", +"F# c #535352", +"G# c #4E4D4D", +"H# c #424142", +"I# c #414040", +"J# c #3F403F", +"K# c #3C3C3D", +"L# c #39393A", +"M# c #383637", +"N# c #323233", +"O# c #323132", +"P# c #303031", +"Q# c #2F2E2E", +"R# c #2E2E2D", +"S# c #2B2C2C", +"T# c #2B2A2A", +"U# c #272627", +"V# c #252525", +"W# c #242423", +"X# c #232222", +"Y# c #212221", +"Z# c #202021", +"`# c #202020", +" $ c #1F1F1F", +".$ c #1E1E1F", +"+$ c #1E1D1D", +"@$ c #1D1C1D", +"#$ c #C4C5C5", +"$$ c #C4C4C4", +"%$ c #525253", +"&$ c #515252", +"*$ c #4E4E4F", +"=$ c #4D4C4D", +"-$ c #4B4A4B", +";$ c #414041", +">$ c #3C3C3B", +",$ c #393938", +"'$ c #363536", +")$ c #353435", +"!$ c #333433", +"~$ c #2B2A2B", +"{$ c #2A2B2A", +"]$ c #292829", +"^$ c #262627", +"/$ c #252624", +"($ c #252424", +"_$ c #222322", +":$ c #20201F", +"<$ c #1E1F1E", +"[$ c #1D1D1D", +"}$ c #1C1D1D", +"|$ c #1C1C1C", +"1$ c #C4C5C4", +"2$ c #4F4F4E", +"3$ c #444344", +"4$ c #3E3F3E", +"5$ c #3E3D3E", +"6$ c #393A39", +"7$ c #393838", +"8$ c #363736", +"9$ c #2F302F", +"0$ c #2D2E2D", +"a$ c #2E2D2E", +"b$ c #2D2D2C", +"c$ c #2B2B2C", +"d$ c #2B2B2A", +"e$ c #262526", +"f$ c #242324", +"g$ c #232324", +"h$ c #212222", +"i$ c #202121", +"j$ c #1F2020", +"k$ c #1F1F1E", +"l$ c #1D1C1C", +"m$ c #1B1B1C", +"n$ c #C4C4C3", +"o$ c #E3E2E3", +"p$ c #555455", +"q$ c #515251", +"r$ c #4B4C4C", +"s$ c #3D3E3D", +"t$ c #3B3D3C", +"u$ c #3A3A3B", +"v$ c #373837", +"w$ c #373637", +"x$ c #2F2E2F", +"y$ c #232323", +"z$ c #1E1E1D", +"A$ c #1B1C1C", +"B$ c #1C1B1B", +"C$ c #1B1B1B", +"D$ c #C3C4C4", +"E$ c #C3C3C3", +"F$ c #464546", +"G$ c #3E3F3F", +"H$ c #3E3D3D", +"I$ c #3D3D3C", +"J$ c #3A3B3B", +"K$ c #323333", +"L$ c #313030", +"M$ c #2F3030", +"N$ c #2E2F2F", +"O$ c #2D2D2B", +"P$ c #2A2B29", +"Q$ c #292A29", +"R$ c #282726", +"S$ c #202120", +"T$ c #1E1E1E", +"U$ c #19191A", +"V$ c #C3C3C4", +"W$ c #E2E1E1", +"X$ c #4A4949", +"Y$ c #484849", +"Z$ c #3A3B3A", +"`$ c #373738", +" % c #373736", +".% c #252425", +"+% c #222122", +"@% c #212122", +"#% c #1A1B1B", +"$% c #1B1A1A", +"%% c #1A1919", +"&% c #E2E1E2", +"*% c #E1E0E1", +"=% c #505051", +"-% c #49494A", +";% c #1A1A1A", +">% c #3A393A", +",% c #2E2F2E", +"'% c #282727", +")% c #242425", +"!% c #232322", +"~% c #1E1F1F", +"{% c #1B1C1B", +"]% c #1A191A", +"^% c #191A19", +"/% c #191918", +"(% c #C2C2C2", +"_% c #E0E1E1", +":% c #E1E1E0", +"<% c #4B4B4C", +"[% c #454445", +"}% c #161515", +"|% c #8B8B8B", +"1% c #2C2C2B", +"2% c #282827", +"3% c #272728", +"4% c #262727", +"5% c #1F1E1F", +"6% c #1A1A19", +"7% c #181818", +"8% c #C1C1C2", +"9% c #E1E0E0", +"0% c #464746", +"a% c #111111", +"b% c #7C7C7C", +"c% c #BBBBBB", +"d% c #969697", +"e% c #5F5F5C", +"f% c #33332F", +"g% c #28292A", +"h% c #262726", +"i% c #201F20", +"j% c #1F201F", +"k% c #191919", +"l% c #171717", +"m% c #4C4C4B", +"n% c #444445", +"o% c #444343", +"p% c #1A1717", +"q% c #211515", +"r% c #2D2B2B", +"s% c #999999", +"t% c #B3B3B5", +"u% c #8B8BB2", +"v% c #6F6F89", +"w% c #4A4A4F", +"x% c #2A2929", +"y% c #2B2C2B", +"z% c #2A292A", +"A% c #232424", +"B% c #212120", +"C% c #181718", +"D% c #171818", +"E% c #171716", +"F% c #C1C1C1", +"G% c #C0C1C1", +"H% c #DFE0E0", +"I% c #484948", +"J% c #422121", +"K% c #552D2D", +"L% c #363232", +"M% c #A0A0A0", +"N% c #646464", +"O% c #ABABAE", +"P% c #7575C7", +"Q% c #5C5CD5", +"R% c #7878BD", +"S% c #7B7B8E", +"T% c #585855", +"U% c #30302E", +"V% c #2A2A29", +"W% c #212020", +"X% c #201E1F", +"Y% c #1E1D1E", +"Z% c #1C1C1D", +"`% c #1A1B1A", +" & c #191A1A", +".& c #171616", +"+& c #161616", +"@& c #C0C0C1", +"#& c #414242", +"$& c #1F1C1C", +"%& c #542424", +"&& c #4C2625", +"*& c #585756", +"=& c #A8A8A8", +"-& c #767677", +";& c #9D9D9E", +">& c #8A8AAD", +",& c #5A5AC4", +"'& c #3838D7", +")& c #3434D9", +"!& c #4848BD", +"~& c #535372", +"{& c #878888", +"]& c #A4A4A4", +"^& c #A7A6A6", +"/& c #B0B0B0", +"(& c #B1B1B1", +"_& c #A1A1A1", +":& c #808080", +"<& c #151515", +"[& c #242525", +"}& c #1D1E1E", +"|& c #1A1A1B", +"1& c #191819", +"2& c #181817", +"3& c #161717", +"4& c #151516", +"5& c #C1C0C0", +"6& c #DFDEDE", +"7& c #5B2020", +"8& c #391A19", +"9& c #A4A4A5", +"0& c #878687", +"a& c #8E8E8E", +"b& c #9B9B98", +"c& c #999994", +"d& c #888898", +"e& c #6C6BA8", +"f& c #4F4FBD", +"g& c #50508B", +"h& c #CECDCD", +"i& c #6A6A6A", +"j& c #242323", +"k& c #222121", +"l& c #1F1E1E", +"m& c #1C1D1C", +"n& c #151514", +"o& c #BFC0BF", +"p& c #DFDFDE", +"q& c #434445", +"r& c #3F3E40", +"s& c #1B1212", +"t& c #611717", +"u& c #301414", +"v& c #797878", +"w& c #9C9C9D", +"x& c #888888", +"y& c #8A8A89", +"z& c #868688", +"A& c #7C7C8F", +"B& c #45455C", +"C& c #B8B8B8", +"D& c #C5C4C4", +"E& c #AAA9A9", +"F& c #252523", +"G& c #222323", +"H& c #171817", +"I& c #161516", +"J& c #141514", +"K& c #141313", +"L& c #C0BFBF", +"M& c #4D4E4E", +"N& c #464645", +"O& c #1B0F0F", +"P& c #570D0D", +"Q& c #270D0D", +"R& c #706F6F", +"S& c #838383", +"T& c #757474", +"U& c #878787", +"V& c #6F6F6F", +"W& c #5C5C5A", +"X& c #353533", +"Y& c #656565", +"Z& c #BCBCBC", +"`& c #BFBFBF", +" * c #C1C2C1", +".* c #696969", +"+* c #1D1D1E", +"@* c #191818", +"#* c #131313", +"$* c #DDDEDD", +"%* c #110F0F", +"&* c #220B0B", +"** c #201B1B", +"=* c #7D7D7C", +"-* c #727272", +";* c #898989", +">* c #BBBBBA", +",* c #BCBCBB", +"'* c #BDBDBD", +")* c #676868", +"!* c #7A7A7A", +"~* c #1D1D1C", +"{* c #181918", +"]* c #141414", +"^* c #131314", +"/* c #131312", +"(* c #BEBFBF", +"_* c #454546", +":* c #3B3B3C", +"<* c #181919", +"[* c #818181", +"}* c #656465", +"|* c #888787", +"1* c #9B9B9B", +"2* c #ADADAD", +"3* c #B4B4B4", +"4* c #B5B5B5", +"5* c #B5B5B4", +"6* c #B6B6B5", +"7* c #B6B6B7", +"8* c #B7B7B7", +"9* c #B7B8B8", +"0* c #767676", +"a* c #121213", +"b* c #212021", +"c* c #141413", +"d* c #111212", +"e* c #9A9A9A", +"f* c #515152", +"g* c #616162", +"h* c #949495", +"i* c #A6A6A6", +"j* c #AFAFAF", +"k* c #ACADAD", +"l* c #B2B2B2", +"m* c #B0B0AF", +"n* c #AFAFB0", +"o* c #B3B3B3", +"p* c #B5B4B4", +"q* c #1C1B1C", +"r* c #131414", +"s* c #121313", +"t* c #121212", +"u* c #BEBDBD", +"v* c #DCDCDD", +"w* c #6E6E6E", +"x* c #A5A5A5", +"y* c #A9A9A9", +"z* c #ABABAA", +"A* c #AAAAA9", +"B* c #ABA9A9", +"C* c #ABAAAB", +"D* c #ABABAC", +"E* c #ACACAC", +"F* c #666766", +"G* c #141314", +"H* c #1D1E1D", +"I* c #1B1A1B", +"J* c #131213", +"K* c #101111", +"L* c #586362", +"M* c #5D6F74", +"N* c #596767", +"O* c #555A58", +"P* c #A2A2A3", +"Q* c #A2A2A2", +"R* c #A3A3A3", +"S* c #A5A5A3", +"T* c #A6A7A7", +"U* c #A5A4A5", +"V* c #A8A7A7", +"W* c #A9A8A9", +"X* c #9C9C9C", +"Y* c #424342", +"Z* c #6C6D6C", +"`* c #101010", +" = c #151616", +".= c #131412", +"+= c #101110", +"@= c #0F0F0F", +"#= c #BDBCBD", +"$= c #DBDCDC", +"%= c #7FA3AE", +"&= c #79A5EC", +"*= c #5F80EB", +"== c #485FD4", +"-= c #4758B4", +";= c #516392", +">= c #586874", +",= c #55605F", +"'= c #393A3A", +")= c #2D2E2F", +"!= c #9E9E9E", +"~= c #979897", +"{= c #9A9B9B", +"]= c #929493", +"^= c #8C8D8D", +"/= c #979797", +"(= c #989999", +"_= c #969898", +":= c #979898", +"<= c #9B9C9C", +"[= c #A2A1A2", +"}= c #737272", +"|= c #A6A5A6", +"1= c #616161", +"2= c #1B1B1A", +"3= c #181717", +"4= c #161615", +"5= c #151414", +"6= c #121112", +"7= c #111110", +"8= c #7A9DAE", +"9= c #597AF5", +"0= c #5373F9", +"a= c #668CFC", +"b= c #5D80FC", +"c= c #5271FB", +"d= c #5576F5", +"e= c #739AE6", +"f= c #7495A5", +"g= c #607578", +"h= c #54646B", +"i= c #58686B", +"j= c #505A59", +"k= c #484B4B", +"l= c #323432", +"m= c #919292", +"n= c #959494", +"o= c #878686", +"p= c #7A7979", +"q= c #7C7777", +"r= c #807778", +"s= c #776F6F", +"t= c #706565", +"u= c #7B6C6B", +"v= c #847171", +"w= c #7C6B6B", +"x= c #746464", +"y= c #736262", +"z= c #7A6969", +"A= c #807070", +"B= c #807676", +"C= c #807C7C", +"D= c #949696", +"E= c #9E9F9F", +"F= c #757575", +"G= c #171617", +"H= c #151615", +"I= c #141415", +"J= c #121111", +"K= c #0F1010", +"L= c #0F0F10", +"M= c #0E0F0E", +"N= c #BDBDBC", +"O= c #5B6766", +"P= c #799CA3", +"Q= c #76979D", +"R= c #6F8D9F", +"S= c #97CEEF", +"T= c #76A2FB", +"U= c #4C69FC", +"V= c #1B27FD", +"W= c #3549F4", +"X= c #5979E3", +"Y= c #698DE4", +"Z= c #77A2F2", +"`= c #688EE1", +" - c #5C78C4", +".- c #576FA2", +"+- c #55697C", +"@- c #4D5C5F", +"#- c #333E39", +"$- c #3D3B37", +"%- c #6F6766", +"&- c #786868", +"*- c #7D6666", +"=- c #947676", +"-- c #9C7979", +";- c #9D7676", +">- c #AB7E7E", +",- c #BA8888", +"'- c #B88585", +")- c #B17E7E", +"!- c #B57E7E", +"~- c #BD8383", +"{- c #BD8181", +"]- c #B07777", +"^- c #A06A6A", +"/- c #956161", +"(- c #8A5B5B", +"_- c #7D5858", +":- c #755F5F", +"<- c #807878", +"[- c #7D7D7D", +"}- c #797979", +"|- c #131212", +"1- c #0F0F0E", +"2- c #0D0E0E", +"3- c #BCBBBC", +"4- c #DBDADB", +"5- c #424545", +"6- c #4F5756", +"7- c #9BD0D5", +"8- c #6D96FC", +"9- c #435DFC", +"0- c #3E55FC", +"a- c #5270FC", +"b- c #5878F8", +"c- c #4862F2", +"d- c #435DF8", +"e- c #4D6BF8", +"f- c #597BFC", +"g- c #5B7DFB", +"h- c #5E81FB", +"i- c #678DEF", +"j- c #7198D3", +"k- c #354658", +"l- c #5B4442", +"m- c #B6817F", +"n- c #C68B8B", +"o- c #C38787", +"p- c #C78888", +"q- c #CE8C8C", +"r- c #CA8686", +"s- c #C68181", +"t- c #C78080", +"u- c #C87F7F", +"v- c #C57B7B", +"w- c #C37777", +"x- c #C07373", +"y- c #C17271", +"z- c #C17070", +"A- c #BF6B6B", +"B- c #BB6767", +"C- c #B15F5F", +"D- c #9E5453", +"E- c #744343", +"F- c #302929", +"G- c #161617", +"H- c #141515", +"I- c #131413", +"J- c #100F10", +"K- c #0F0E0E", +"L- c #0E0E0E", +"M- c #0D0D0D", +"N- c #BBBCBB", +"O- c #DAD9DA", +"P- c #40403F", +"Q- c #739297", +"R- c #78A2E4", +"S- c #7AA6E2", +"T- c #86B1C5", +"U- c #6A879E", +"V- c #6A879A", +"W- c #708F95", +"X- c #7C9FA0", +"Y- c #5F7788", +"Z- c #576C96", +"`- c #5974B8", +" ; c #5774D8", +".; c #4B67F1", +"+; c #4661FD", +"@; c #3549D3", +"#; c #2F236D", +"$; c #A86F81", +"%; c #C17777", +"&; c #C27472", +"*; c #C17272", +"=; c #BE6F6F", +"-; c #BC6C6C", +";; c #BC6969", +">; c #BA6766", +",; c #B96363", +"'; c #B86060", +"); c #B75D5D", +"!; c #B55B5B", +"~; c #B35757", +"{; c #B25554", +"]; c #B15251", +"^; c #B04F4F", +"/; c #AF4C4C", +"(; c #AF4A49", +"_; c #763030", +":; c #291313", +"<; c #0C0C0C", +"[; c #BBBBBC", +"}; c #434241", +"|; c #49504F", +"1; c #697F7E", +"2; c #607270", +"3; c #464C4B", +"4; c #454748", +"5; c #3B3D3D", +"6; c #454848", +"7; c #4D5353", +"8; c #637D7F", +"9; c #7BA3C0", +"0; c #688EE9", +"a; c #364CD9", +"b; c #564EC6", +"c; c #8F639C", +"d; c #B06D77", +"e; c #B75A55", +"f; c #B55753", +"g; c #B25352", +"h; c #B15050", +"i; c #B04E4D", +"j; c #AE4A4A", +"k; c #AD4747", +"l; c #AC4444", +"m; c #AA4242", +"n; c #A93F3F", +"o; c #A83C3C", +"p; c #A63939", +"q; c #A53636", +"r; c #A43333", +"s; c #8F2C2C", +"t; c #451616", +"u; c #541A1A", +"v; c #663B3B", +"w; c #848383", +"x; c #1C1A1C", +"y; c #0E0F0F", +"z; c #0E0D0D", +"A; c #0D0D0C", +"B; c #BBBABB", +"C; c #BABBBA", +"D; c #D9DAD9", +"E; c #3E4645", +"F; c #5A6F74", +"G; c #7094BE", +"H; c #5A7EF1", +"I; c #3F52F7", +"J; c #4A49DD", +"K; c #6E3D9B", +"L; c #914B73", +"M; c #A13B45", +"N; c #A73735", +"O; c #A6332F", +"P; c #A42F2C", +"Q; c #A22C2B", +"R; c #A02B2C", +"S; c #9F2929", +"T; c #9E2626", +"U; c #9D2323", +"V; c #9B2020", +"W; c #9A1E1D", +"X; c #951919", +"Y; c #581010", +"Z; c #3B0909", +"`; c #7E1C1C", +" > c #671B1B", +".> c #2F2929", +"+> c #101011", +"@> c #0B0B0B", +"#> c #D8D9D8", +"$> c #3B3C3C", +"%> c #353534", +"&> c #353334", +"*> c #454949", +"=> c #6B8382", +"-> c #779FB5", +";> c #76A2EF", +">> c #5B72EE", +",> c #555CDE", +"'> c #623AA0", +")> c #762969", +"!> c #872F51", +"~> c #922C3C", +"{> c #952129", +"]> c #941619", +"^> c #950D0B", +"/> c #960B07", +"(> c #950B06", +"_> c #930907", +":> c #8F0707", +"<> c #680504", +"[> c #350200", +"}> c #4D0301", +"|> c #680D0E", +"1> c #391213", +"2> c #252E29", +"3> c #242B25", +"4> c #252A26", +"5> c #151415", +"6> c #121312", +"7> c #111211", +"8> c #10100F", +"9> c #0E0E0F", +"0> c #0D0C0D", +"a> c #0C0C0B", +"b> c #0A0A0B", +"c> c #B9BABA", +"d> c #2F2F30", +"e> c #313333", +"f> c #51656B", +"g> c #587293", +"h> c #5574C3", +"i> c #5170F4", +"j> c #4658F3", +"k> c #4A4BDB", +"l> c #5943B8", +"m> c #6B3E8F", +"n> c #793468", +"o> c #7F264C", +"p> c #7E1435", +"q> c #7E0320", +"r> c #82051B", +"s> c #70030D", +"t> c #2B0003", +"u> c #170002", +"v> c #3A0B12", +"w> c #35272C", +"x> c #3F5785", +"y> c #455FC7", +"z> c #4961B0", +"A> c #495E89", +"B> c #445664", +"C> c #3C4A49", +"D> c #0A0B0B", +"E> c #0A0A09", +"F> c #BAB9BA", +"G> c #2D2E2E", +"H> c #2E3030", +"I> c #323231", +"J> c #464C4C", +"K> c #6B8887", +"L> c #6C8FA1", +"M> c #6183BB", +"N> c #5071D2", +"O> c #4463E8", +"P> c #3E55F8", +"Q> c #414EED", +"R> c #4B45CF", +"S> c #5131AA", +"T> c #502EA3", +"U> c #2E1FA3", +"V> c #09089D", +"W> c #0A0B8D", +"X> c #202788", +"Y> c #5476B4", +"Z> c #7BAAF4", +"`> c #5879FB", +" , c #5D7FFD", +"., c #5C7FFB", +"+, c #658AF7", +"@, c #749FE8", +"#, c #6383A7", +"$, c #4B616A", +"%, c #394443", +"&, c #1C1F1F", +"*, c #100F0F", +"=, c #0B0B0C", +"-, c #0B0B0A", +";, c #0A0A0A", +">, c #090909", +",, c #B9B9B9", +"', c #333332", +"), c #303130", +"!, c #2E2D2D", +"~, c #2A2A2B", +"{, c #2B2D2D", +"], c #363F40", +"^, c #445358", +"/, c #526873", +"(, c #5C778D", +"_, c #607FA4", +":, c #5D7FBE", +"<, c #597ED6", +"[, c #577BE9", +"}, c #3E56B9", +"|, c #5E81D3", +"1, c #5574D4", +"2, c #425AD8", +"3, c #425BF1", +"4, c #3C54FB", +"5, c #3B52FC", +"6, c #4660FC", +"7, c #5574FC", +"8, c #5473FC", +"9, c #455FFC", +"0, c #4059F5", +"a, c #516EE2", +"b, c #6A91CA", +"c, c #587480", +"d, c #2E3636", +"e, c #0D0C0C", +"f, c #0C0B0C", +"g, c #0A090A", +"h, c #B8B9B8", +"i, c #D8D7D7", +"j, c #D7D7D8", +"k, c #333232", +"l, c #282B2C", +"m, c #363F41", +"n, c #4B5B5B", +"o, c #5B6F6D", +"p, c #3C4747", +"q, c #404D54", +"r, c #465861", +"s, c #495C67", +"t, c #577285", +"u, c #5E7EA0", +"v, c #5B7ABA", +"w, c #6084ED", +"x, c #5677FB", +"y, c #6388FC", +"z, c #82B3FB", +"A, c #86B8FB", +"B, c #5575FB", +"C, c #354AFC", +"D, c #4F6EF8", +"E, c #719BD3", +"F, c #62838E", +"G, c #4B6466", +"H, c #32403F", +"I, c #171919", +"J, c #0A0A0C", +"K, c #080908", +"L, c #070708", +"M, c #B9B8B9", +"N, c #B9B9B8", +"O, c #383937", +"P, c #2C2D2C", +"Q, c #252626", +"R, c #272C30", +"S, c #4E6676", +"T, c #5C7CB0", +"U, c #5A7CEB", +"V, c #4159FC", +"W, c #435CFC", +"X, c #374CFC", +"Y, c #3347FC", +"Z, c #1C27FD", +"`, c #222FFD", +" ' c #4864F7", +".' c #5C7EE9", +"+' c #7098D4", +"@' c #5A798B", +"#' c #394948", +"$' c #252A2A", +"%' c #0B0A0B", +"&' c #0B0A09", +"*' c #090808", +"=' c #070808", +"-' c #070707", +";' c #B8B7B8", +">' c #D6D7D7", +",' c #D7D6D7", +"'' c #343435", +")' c #2D2D2F", +"!' c #282929", +"~' c #2C2F2E", +"{' c #576E6D", +"]' c #6B90A6", +"^' c #658AE8", +"/' c #3245FD", +"(' c #3F56FC", +"_' c #84B6FB", +":' c #76A1DB", +"<' c #5370C0", +"[' c #4A65D9", +"}' c #455FF7", +"|' c #4661FA", +"1' c #5D7FE7", +"2' c #6D94B7", +"3' c #3C4D4D", +"4' c #0B0C0C", +"5' c #080809", +"6' c #060606", +"7' c #B7B8B7", +"8' c #D7D6D6", +"9' c #3F3F3E", +"0' c #363635", +"a' c #282829", +"b' c #1A1C1C", +"c' c #495F68", +"d' c #6B92CC", +"e' c #5474FC", +"f' c #75A0FB", +"g' c #769FA3", +"h' c #283137", +"i' c #364651", +"j' c #5B7A97", +"k' c #6C93DA", +"l' c #5979FB", +"m' c #4D6AFC", +"n' c #6283CF", +"o' c #4D676B", +"p' c #0D0D0E", +"q' c #0A0909", +"r' c #080808", +"s' c #070706", +"t' c #060605", +"u' c #D6D5D6", +"v' c #606061", +"w' c #272726", +"x' c #232223", +"y' c #212220", +"z' c #1C1C1B", +"A' c #3E4C4A", +"B' c #77A2C3", +"C' c #82B1EC", +"D' c #6A8F90", +"E' c #2B3332", +"F' c #55727E", +"G' c #6D95E0", +"H' c #658AFB", +"I' c #8EC3D8", +"J' c #283432", +"K' c #050505", +"L' c #B8B7B7", +"M' c #D6D6D5", +"N' c #C5C5C4", +"O' c #848484", +"P' c #252526", +"Q' c #181819", +"R' c #353E3D", +"S' c #4F6664", +"T' c #313D3D", +"U' c #111010", +"V' c #3F5255", +"W' c #53718E", +"X' c #688C93", +"Y' c #1D2425", +"Z' c #080707", +"`' c #050606", +" ) c #050406", +".) c #040404", +"+) c #B7B7B6", +"@) c #D3D3D2", +"#) c #292928", +"$) c #111312", +"%) c #0B0A0A", +"&) c #080807", +"*) c #080607", +"=) c #060505", +"-) c #050504", +";) c #D1D1D2", +">) c #858484", +",) c #272827", +"') c #0F100F", +")) c #0E0D0E", +"!) c #0C0D0C", +"~) c #080A09", +"{) c #090809", +"]) c #060707", +"^) c #060506", +"/) c #040505", +"() c #030303", +"_) c #B6B5B5", +":) c #CFCECF", +"<) c #CFCECE", +"[) c #BDBEBE", +"}) c #0E0D0F", +"|) c #0C0D0D", +"1) c #0C0B0B", +"2) c #0A0B0A", +"3) c #090A0A", +"4) c #070807", +"5) c #050506", +"6) c #040303", +"7) c #030403", +"8) c #020202", +"9) c #CFCFCE", +"0) c #CDCCCC", +"a) c #828282", +"b) c #252524", +"c) c #121011", +"d) c #0C0C0D", +"e) c #060706", +"f) c #020203", +"g) c #010202", +"h) c #B4B4B5", +"i) c #555554", +"j) c #CCCCCD", +"k) c #CBCCCB", +"l) c #CACBCA", +"m) c #0E0E0D", +"n) c #030404", +"o) c #010101", +"p) c #B5B4B5", +"q) c #B4B5B4", +"r) c #C9CACA", +"s) c #C8C9C9", +"t) c #C9C8C9", +"u) c #777877", +"v) c #121311", +"w) c #050405", +"x) c #040403", +"y) c #020201", +"z) c #000000", +"A) c #4F504E", +"B) c #C9C8C8", +"C) c #C7C7C8", +"D) c #C6C7C6", +"E) c #60605F", +"F) c #050404", +"G) c #000001", +"H) c #B3B4B4", +"I) c #C7C6C6", +"J) c #C5C6C6", +"K) c #C6C5C6", +"L) c #B2B3B3", +"M) c #949494", +"N) c #7E7E7E", +"O) c #171718", +"P) c #0D0E0D", +"Q) c #09090A", +"R) c #080909", +"S) c #070607", +"T) c #060504", +"U) c #020303", +"V) c #B3B3B4", +"W) c #666666", +"X) c #9F9F9F", +"Y) c #C4C3C4", +"Z) c #C2C2C3", +"`) c #C0C0BF", +" ! c #BCBBBB", +".! c #909191", +"+! c #141516", +"@! c #121211", +"#! c #0F0E0F", +"$! c #090908", +"%! c #070606", +"&! c #050605", +"*! c #020101", +"=! c #B2B3B2", +"-! c #4D4E4D", +";! c #929292", +">! c #C2C3C2", +",! c #C1C2C2", +"'! c #C2C1C2", +")! c #0B0C0B", +"!! c #030202", +"~! c #000100", +"{! c #B3B2B2", +"]! c #4B4C4B", +"^! c #464745", +"/! c #AFB0AF", +"(! c #ADAEAE", +"_! c #ABAAAA", +":! c #BFBFBE", +"~ c #565756", +",~ c #989998", +"'~ c #A0A1A0", +")~ c #A4A3A4", +"!~ c #B0B1B1", +"~~ c #B1B0B1", +"{~ c #B6B7B7", +"]~ c #787877", +"^~ c #757676", +"/~ c #747474", +"(~ c #8C8D8C", +"_~ c #9D9C9D", +":~ c #A8A8A7", +"<~ c #545353", +"[~ c #989797", +"}~ c #9F9F9E", +"|~ c #A0A1A1", +"1~ c #8C8C8B", +"2~ c #706F70", +"3~ c #B1B1B0", +"4~ c #B4B5B5", +"5~ c #777677", +"6~ c #727172", +"7~ c #6B6C6C", +"8~ c #80807F", +"9~ c #919090", +"0~ c #9E9E9F", +"a~ c #A4A5A4", +"b~ c #A6A7A6", +"c~ c #898888", +"d~ c #6E6E6D", +"e~ c #5F5F60", +"f~ c #797A7A", +"g~ c #7E7F7F", +"h~ c #777777", +"i~ c #616060", +"j~ c #626263", +"k~ c #767777", +"l~ c #767675", +"m~ c #717171", +"n~ c #6E6E6F", +"o~ c #6C6D6D", +"p~ c #6A6969", +"q~ c #676767", +"r~ c #656665", +"s~ c #676766", +"t~ c #727373", +"u~ c #5C5C5B", +"v~ c #6A6A6B", +"w~ c #7B7A7B", +"x~ c #626262", +"y~ c #6B6A6B", +"z~ c #6C6B6B", +"A~ c #B1B1B2", +"B~ c #777676", +"C~ c #747575", +"D~ c #717271", +"E~ c #6D6E6D", +"F~ c #6B6B6A", +"G~ c #686767", +"H~ c #646363", +"I~ c #5D5D5C", +"J~ c #777776", +"K~ c #878788", +"L~ c #969596", +"M~ c #9A9898", +"N~ c #9A9A99", +"O~ c #646463", +"P~ c #7B7C7C", +"Q~ c #7B7C7B", +"R~ c #707170", +"S~ c #575756", +"T~ c #696968", +"U~ c #B0B0B1", +"V~ c #ABACAB", +"W~ c #787777", +"X~ c #717170", +"Y~ c #696869", +"Z~ c #666565", +"`~ c #646465", +" { c #636363", +".{ c #605F5F", +"+{ c #575758", +"@{ c #8B8A8B", +"#{ c #949393", +"${ c #666566", +"%{ c #A5A4A4", +"&{ c #969797", +"*{ c #787778", +"={ c #636364", +"-{ c #606161", +";{ c #5D5C5C", +">{ c #585958", +",{ c #5C5C5D", +"'{ c #868787", +"){ c #7F807F", +"!{ c #606160", +"~{ c #616261", +"{{ c #656566", +"]{ c #666767", +"^{ c #ADADAC", +"/{ c #A8A9A8", +"({ c #9A9999", +"_{ c #6A6A69", +":{ c #626261", +"<{ c #5F605F", +"[{ c #818081", +"}{ c #868685", +"|{ c #636362", +"1{ c #7C7B7B", +"2{ c #939292", +"3{ c #8A8B8A", +"4{ c #676768", +"5{ c #848485", +"6{ c #818281", +"7{ c #7F7E7E", +"8{ c #7B7B7A", +"9{ c #A5A6A6", +"0{ c #9F9FA0", +"a{ c #8B8C8B", +"b{ c #818180", +"c{ c #7E7D7E", +"d{ c #7C7C7D", +"e{ c #787978", +"f{ c #636463", +"g{ c #5D5D5E", +"h{ c #616160", +"i{ c #626161", +"j{ c #7C7D7C", +"k{ c #9B9A9A", +"l{ c #666667", +"m{ c #818182", +"n{ c #7D7E7D", +"o{ c #757475", +"p{ c #5F6060", +"q{ c #707171", +"r{ c #807F80", +"s{ c #8E8E8F", +"t{ c #979696", +"u{ c #959594", +"v{ c #686869", +"w{ c #7F8080", +"x{ c #7E7E7F", +"y{ c #7C7D7D", +"z{ c #737374", +"A{ c #4C4E4E", +"B{ c #535453", +"C{ c #5B595B", +"D{ c #5F5F5E", +"E{ c #747473", +"F{ c #838384", +"G{ c #908F90", +"H{ c #919192", +"I{ c #7D7C7D", +"J{ c #818282", +"K{ c #808081", +"L{ c #7F7F80", +"M{ c #5B5A5C", +"N{ c #5C5D5D", +"O{ c #828181", +"P{ c #5A595A", +"Q{ c #676667", +"R{ c #8A8A8A", +"S{ c #7A7A7B", +"T{ c #9E9E9D", +"U{ c #838282", +"V{ c #767576", +"W{ c #868585", +"X{ c #797A79", +"Y{ c #737273", +"Z{ c #626363", +"`{ c #F5F5F5", +" ] c #FDFDFD", +".] c #6E6D6D", +"+] c #7F7E7F", +"@] c #989897", +"#] c #9C9D9C", +"$] c #5E5E5F", +"%] c #CACBCB", +"&] c #FFFFFF", +"*] c #9C9B9C", +"=] c #9B9B9A", +"-] c #666665", +";] c #626362", +">] c #838483", +",] c #8D8D8C", +"'] c #959696", +")] c #959795", +"!] c #757574", +"~] c #656666", +"{] c #7D7E7E", +"]] c #737372", +"^] c #6C6C6D", +"/] c #747374", +"(] c #979796", +"_] c #939392", +":] c #7D7D7E", +"<] c #777878", +"[] c #747373", +"}] c #717071", +"|] c #858685", +"1] c #7A7B7B", +"2] c #929393", +"3] c #7C7C7B", +"4] c #F8F8F8", +"5] c #F3F3F3", +"6] c #7A7B7A", +"7] c #929293", +"8] c #898A8A", +"9] c #898988", +"0] c #787879", +"a] c #797978", +"b] c #757675", +"c] c #89898A", +"d] c #848384", +"e] c #808180", +"f] c #757576", +"g] c #747475", +"h] c #C0BFC0", +"i] c #E6FBFA", +"j] c #83EFE8", +"k] c #41E6DC", +"l] c #18DDD1", +"m] c #20DACF", +"n] c #41DBD2", +"o] c #83E5E0", +"p] c #E6F9F8", +"q] c #888788", +"r] c #838382", +"s] c #747576", +"t] c #737473", +"u] c #A4F2EE", +"v] c #20E5DA", +"w] c #19E7DB", +"x] c #18E5D9", +"y] c #18E0D4", +"z] c #18DBD0", +"A] c #18D6CB", +"B] c #19D1C6", +"C] c #21CDC3", +"D] c #A4E8E4", +"E] c #79797A", +"F] c #7A7A79", +"G] c #767776", +"H] c #A4F1EC", +"I] c #18E1D6", +"J] c #18E7DA", +"K] c #18ECDF", +"L] c #18D7CC", +"M] c #18D2C7", +"N] c #18CCC2", +"O] c #18C7BC", +"P] c #A4E6E3", +"Q] c #6B6A6A", +"R] c #747574", +"S] c #E6FAF9", +"T] c #20DCD1", +"U] c #18E4D9", +"V] c #18E6DB", +"W] c #18DCD0", +"X] c #18D7CB", +"Y] c #19CCC2", +"Z] c #18C7BD", +"`] c #20C3BA", +" ^ c #E6F7F6", +".^ c #84E8E2", +"+^ c #19D9CE", +"@^ c #19E0D5", +"#^ c #18E1D5", +"$^ c #17DED1", +"%^ c #119D95", +"&^ c #119A93", +"*^ c #17D2C6", +"=^ c #18D0C5", +"-^ c #18CBC0", +";^ c #18C6BC", +">^ c #19C0B6", +",^ c #84DAD5", +"'^ c #41DAD0", +")^ c #19D5CA", +"!^ c #18D9CD", +"~^ c #17D9CE", +"{^ c #010F0E", +"]^ c #010E0D", +"^^ c #18CBBF", +"/^ c #18C9BE", +"(^ c #18C4BA", +"_^ c #19BFB5", +":^ c #41C6BE", +"<^ c #1FCFC4", +"[^ c #18D1C6", +"}^ c #18D5C9", +"|^ c #19D6CB", +"1^ c #119990", +"2^ c #119089", +"3^ c #18C1B7", +"4^ c #18BCB3", +"5^ c #1FBAB0", +"6^ c #20CBC1", +"7^ c #19CDC3", +"8^ c #18CFC5", +"9^ c #11958E", +"0^ c #118D86", +"a^ c #19C3B9", +"b^ c #18BBB1", +"c^ c #20B7AE", +"d^ c #8A898A", +"e^ c #41D0C8", +"f^ c #19C8BE", +"g^ c #19CAC0", +"h^ c #19CCC1", +"i^ c #18CABF", +"j^ c #010D0D", +"k^ c #17C0B6", +"l^ c #18BCB2", +"m^ c #19B8AD", +"n^ c #42C0B9", +"o^ c #83DDD9", +"p^ c #19C4BA", +"q^ c #18C5BC", +"r^ c #19C7BD", +"s^ c #17C3B9", +"t^ c #118C85", +"u^ c #118B84", +"v^ c #18BFB5", +"w^ c #19BEB5", +"x^ c #19BBB1", +"y^ c #19B8AE", +"z^ c #19B3AB", +"A^ c #83D6D1", +"B^ c #878786", +"C^ c #F6F6F6", +"D^ c #E6F8F6", +"E^ c #21C1B7", +"F^ c #18C2B8", +"G^ c #18C1B8", +"H^ c #19C0B7", +"I^ c #18BCB4", +"J^ c #18BAB1", +"K^ c #18B7AE", +"L^ c #18B4AB", +"M^ c #21B5AD", +"N^ c #E6F6F6", +"O^ c #EFEFEF", +"P^ c #838283", +"Q^ c #A4E3E0", +"R^ c #19BBB2", +"S^ c #19BCB3", +"T^ c #19BDB3", +"U^ c #18BAB0", +"V^ c #18B8AF", +"W^ c #18B5AC", +"X^ c #19B3A9", +"Y^ c #19B3AA", +"Z^ c #A4E1DD", +"`^ c #A4E2DE", +" / c #21B9B0", +"./ c #18B8AE", +"+/ c #19B7AE", +"@/ c #18B6AD", +"#/ c #19B4AC", +"$/ c #18B3AA", +"%/ c #84D6D1", +"&/ c #41C0B9", +"*/ c #20B5AC", +"=/ c #6E6F6F", +"-/ c #BEBEBD", +";/ c #6F706F", +">/ c #6D6D6C", +",/ c #5E5F5E", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" . . . ", +" + + + . . . . . . . ", +" + + + + + @ # # $ . . . . . . ", +" + + % + & # * = - ; > , ' . . . . . ", +" + + ) ! ~ { ] ^ / > ' ' ' ( _ : . . . . . . . . ", +" + + ) ) ) ) ) < [ } | 1 2 3 3 4 5 5 6 7 8 8 . . . . . ", +" + # ) ) ) ) ) 9 0 a b c 0 d e f 8 8 7 g 8 h i j k . . . . . . ", +" l # ) ) ) m n 0 o p q r s t u v w x { y z k k A A B C D f . . . . . . . ", +" # # ) ) E F 0 a G H I J K L v M N O P u Q R S T A U U f f f V V W X . . . . . . ", +" Y $ ) ) Z 9 0 ` H r J ...+.+.@.#.$.%.&.*.=.-.;.>.! ,.'.).!.~.{.~.].^.^./.(.. . . . . ", +" _.- ) 9 0 0 H p :.s t ..v M M N P %.&.*.<.[.}.}.|.1.2.3.4.5.6.7.8.9.^.(./.0.a.% b.. . . . . . . . ", +" - ; 9 n a c.H d.e. .u v f.N N P g.h.&.[.i.j.k.k.1.3.l.4.m.n.n.o.&.) p.,.q.r.s.t.u.v.w.x.y.y.z.. . . . . ", +" ; > A.0 a H q B.s ..v C.M D.N g.&.&.<.i.[.E.F.|.G.3.H.I.J.K.L.M.N.O.O.P.Q.R.S.T.U.^ V.y.y.W.z.1 1 V.. . . . . . ", +" X.> 0 a b H Y.s s L f.C.N P Z.h.&.&.`.[.j.k.1. +3.4.J.n.n.L.M..+++@+P.Q.R.#+$+%+&+i.*+=+-+;+>+,+V.'+)+)+)+!+. . . . . . . ", +" > ~+a c.{+B.e.u ]+^+/+(+P %.h._+:+:+[.k.k.<+[+4.4.I.}+n.|+M.1+O.O.2+Q.3+4+5+%+6+7+8+9+0+a+4.N b+c+d+)+e+f+g+^ ^ h+i+j+. . . . . . ", +" , ' c.H r s t u v M N N P k+_+l+[.[.m+k.k.[+3.4.n+I.}+o+M.M.p+q+r+Q.s+#+t+a+u+v+8+9+w+0+x+y+z+A+A+B+C+D+E+F+G+H+U.I+J+K+K+L+M+. . . . . . . ", +" ' ' :.r Y.s L v v N N N+g.&.O+<.[.-.P+k.1.3.4.Q+R+n.o+M.S+T+O.2+Q.Q.#+5+U+a+v+V+W+X+Y+Z+y+`+ @A+B+.@+@@@#@$@..%@&@*@=@-@L+;@>@>@,@'@)@!@. . . . . . ", +" ~@3 r s {@..v /+]@D.^@g.k+`.<.[.}./@k.2.(@l._@I.n.o+:@M.p+O.P.<@#+3+$+$+&+v+8+9+[@0+x+y+`+}@A+B+|@+@@@#@1@2@3@4@5@6@R.7@8@9@>@,@'@'@0@G+a@b@b@c@. . . . . ", +" 3 3 r s ..d@+.@.N D.g.g.`.e@=.;.E.k.2.3.H.f@}+J.g@o.h@i@O.@+j@Q.#+k@$+a+v+V+l@9+0+m@n@y+6@A+o@p@q@r@#@s@t@u@v@w@x@y@z@A@B@C@D@M E@F@G@H@b@I@b@=@J@K@L@. . . . . . ", +" 3 4 .]+M@M N N $.Z.&.N@`.[.O@>.k.1. +3.P@I.n.Q@:@M.N.R@2+P.S@4+T@$+a+U@V@W@X@w+0+y+y+Y@A+Z@|@q@`@#@ #$@.#4@w@w@x@+#@#B@##$#%#&#*#=#-#;#>#,#'#F+L@)#!#~#{#]#^#. /#/# ", +" (#5 ..v ^+M N P Z.g.l+`.<.}.}.k.1.1.3._#_@R+:#<#M.p+O.O.[#Q.s+}#$+a+v+8+8+|#0+Y+1#y+Y@-#2#.@q@@@3#4#$@3@u@5#6#x@+#7#B@C@8#$#9#0#a#b#c#c#d#b#w@.@u ,#q.{#{#e#f#g#/#/# ", +" 5 6 ..v ]@N $.P g.&.`.:+j.>./@|.3.3.Q+I.I.o+o+M.p+++O.[#Q.h#t+$+a+v+8+W@9+w+0+i#y+Y@ @j#B+.@@@k#s@l#3@3@m#n#6#x@7#o#p#$#%#%#*#=#=#q#r#s#t#u#v#w#x#x#y#z#A#B#C#f#/#/# ", +" D#6 M M E#P g.F#&.`.e@}.}.k.G#1.3.4.n+}+g@o+1+M.p+@+r+<@s+H#t+I#J#v+8+|#K#Y+i#y+L# @A+M#q@q@k# # #N#O#4@P#x@Q#R#p#C@S#T#9#*#0#=#U#c#V#d#W#X#v#Y#Z#`# $.$+$@$#$$$/#/# ", +" 5 6 M @.D.P g.%$&$:+;.m+*$1.=$3.4.-$J.o+g@M.N.R@O.P.S@Q.H#$+;$J#V@W+9+w+>$x+y+Y@,$A+B+q@'$)$#@!$3@v@4@w@6#y@+#@#p#$#~${$]$a#=#q#^$/$($t#_$w#x#`#:$y#<$[$}$|$1$$$/#/# ", +" 6 6 (+D.N+g.F#O+:+[.2$*$F.=$2.l.4.I.:#o+o+1+p+R@P.3$Q.#+$+;$J#v+4$5$|#Y+x+y+6$7$A+B+8$@@k##@l#N#3@4@w@9$y@0$a$b$c$d${$*#=#=#b#c#e$t#f$g$w#h$i$j$ $k$+$}$l$m$$$n$/#/# ", +" o$8 p$P g.&.q$<.[.}.k.G#1.3.r$n+R+n.Q@L.M.p+@+O.3$Q.#+H#$+U@v+4$s$9+t$n@u$`+Y@A+v$w$q@r@#@#@2@O#4@w@z#x$+#@#p#C@~$%#*#a#=#b#c#V#V#t#y$w#x#Z#Z# $.$z$[$A$B$C$D$E$/#/# ", +" 8 h P g.%$&.`.[.7@}.G#1.G.4.Q+I.n.n.o+p+p+F$P.<@S@#+a+9+8+v+G$H$I$K#x+J$L# @A+o@|@q@@@)$s@K$3@4@L$M$N$+#7#O$S#c$P$Q$*#a#R$q#c#t#($u#v#h$S$`#`#T$z$+$|$C$C$U$V$E$/#/# ", +" W$i ^@k+*.q$=.}.}.k.G#G.H._#f@X$Y$o+M.p+++2+P.<@#+8+y$[$Q$8$5$9+w+>$Z$y+Y@7$`$ %q@@@)$4#t@3@4@w@w@x@+#+#@#S#c$$#�#0#b#c#c#.%t#t#X#+%@%`# $T$T$[$|$|$#%$%%%] ] /#/# ", +" &%*%F#&.q$=%j.j.k.<+3.r$4._#-%g@|+M.1+O.O.P.<@s+H#u$;%V#@@o#y$K$y+x+>%Y@7$Z@.@q@@@#@#@$@3@v@P#z#N$,%a$o#S###{$&#*#=#'%c#r#V#)%y$!%w#`#`# $~%T$+$l${%C$]%^%/%] (%/#/# ", +" _%:%&.l+i.[.}.|.1.1.r$<%I.n.n.Y$M.S+p+[%[%j@#+H#t+0+}%4@g.|%s @#w#6#q@-#Z@w$q@@@k#s@$@t@O#m#w@6#y@+#@#C@1%T#%#*#2%3%4%s#V#t#g$y$w#+%`#`#5%T$T$|$A$C$;%6%/%7%(%8%/#/# ", +" 9%A *.:+[.}.*$|.1.3.-$-$I.:#Y$1+1+0%[%P.j@s+#+H#9+8$a%Y@4.b%c%d%e%f%V#y@B+|@r@@@#@$@2@w@6#P#x@+#+#7#S#C@$#%#g%=#b#h%c#V#d#t#y$w#w#Z#i%j%T$[$[$|$C$$%6%k%7%l%(%8%/#/# ", +" A A :+[.j.E.F.1.m%4.f@I.Q@L.<#M.T+O.n%o%s+#+$+a+7#p%q%r%D+0+s%t%u%v%w%W#k%]$4@u@$#t#w#f$b#x%$#@#@#C@y%d$z%*#=#2%q#c#r#)%A%y$w#x#B%`#k$5%+$@$|$C$;%6%k%C%D%E%F%G%/#/# ", +" A H%[.;.>.F.1.H.4.-$J.m.I%M.M.p+O.2+P.R.h#k@a+V@X#J%K%L%M%g.N%O%P%Q%R%S%T%U%C$C$;%B+$+A+=# $C$l$t#$#d$T#V%*#=#b#^$s#V#t#y$X#Y#W%`#X%T$Y%Z%|$B$`% &k%7%C%.&+&G%@&/#/# ", +" U U m+/@|.F.H.<%4.I.J.Q@o.M.N.O.n%P.Q.#+#&%+a+V+$&%&&&*&=&-&Q.;&>&,&'&)&!&~&+&p+{&]&^&/&(&_&:&g.=#<&Y%b#]$3%4%c#r#[&)%y$X#w#x#`#i%.$}&z$|${%|&6%k%1&2&3&+&4&5&G@/#/# ", +" U 6&>.<+1.2.<%<%J.n.K.:@M.T+++O.[#Q.#+$+$+a+V@K#p%7&8&5.9&0&$@a&b&c&d&e&f&g&A+M%1$b@h&>@G+J@g#e /#i&3#7%C$w#U#V#)%A%j&_$k&x#W% $l&T$m&l$B$;%;%k%7%7%l%+&<&n&G@o&/#/# ", +" p&D k.1.3.<%4.R+m.n.|+o.S+O.q+q&R.s+H#$+a+r&G$,$s&t&u&v&w&x&@#:&x a&y&z&A&B&I.C&$$$$D&f#f#^#q.=@a@f#E&`.k%7%`%V#F&y$G&Y#B%S$i%T$T$@$|$|$#%;% &7%l%H&+&I&J&K&L&o&/#/# ", +" p&f M&=$3.<%R+X$n.o+M.S+N&n%P.Q.#+#+5+a+u+4$8+q@O&P&Q&R&,.S&+#T&U&. *+V&W&X&Y&Z&`&`&G@G@G@F%F%F% *(%] b%P..*+*;%f$G&w#x#W%`# $z$T$m&|$C$;%U$@*C%l%+&+&n&n&#*o&`&/#/# ", +" f $*(@<%-$I.m.n.o+o.p+R@[%[#P.#+H#$+5+v+v+8+K#3#%*&***Q.=*-*4@@+1.3.8+3@#+&.;*e e e >*c%,*Z&Z&Z&'*'*F@)*0 '*!*7%T$+%@%`# $ $T$[$~*|$;%;%k%{*@*l%+&<&<&]*^*/*8.(*/#/# ", +" V V 3.4.n+-%n.:@|+S+_*O.n%Q.Q.#&$+;$J#7+W@H$:*1%<*[.[*x+h#$+w#y+*$N }*|*E@1*2*3*4*5*6*E+7*8*8*9*C&C&2*J.0*e 4*`.a*b*x#i%<$5%z$Z%|$$%;%;%{*2&D%+&}%4&c*#*/*d*`&y /#/# ", +" V W r$_#J.n.o+o+S+p+O.2+Q.#+h#$+a+%+4$8+W@K#2#;%o+e*-+D+f*g*[*,#h*i*j*k*j*l*/&j*m*n*(&(&(&l*l*l*o*o*&@x+,#p*4*x |$C$W% $.$z$|$q*B$#%;%%%7%l%.&+&<&J&r*s*t*a%y u*/#/# ", +" v*{.-$J.n.o+C+.+p+_*M.P.R.H#T@I#v+v+8+9+9+0+4#<&w*x*x*x*_&y*^&-+z*A*=&=&7.y*B*C*| D*E*E*E*2*2*2*{ E*F*M.]&j*/&z*S@G* $k$H*[$|$I*;%;%1&<*l%.&+&<&]*r*J*t*a%K*u*'*/#/# ", +" W ~.I.n.o+C+M.p+T+L*M*N*O*2$C+#&v+4$8+K#0+m@o@]%`./#P*Q*R*P*Q*Q*R*S*]&R*i*T*i*U*i*=&=&V*=&=&=&W*y*X*Y*w y*7.| E*Z*`*H*+*[$~*C$`%`%k%7%7%.&I& =]*#*.=t*a%+=@=u*#=/#/# ", +" ~.$=R+o+|+M.p+F$2+%=&=*===-=;=>=,=8+[@0+I$y+'=)=U$k.,#R*_&M%M%Q*!=~=1*{=]=^=,#/=(=_=:=<=[=]&]&]&R*}=B+|%|=|=i*9&1=`*C$}$|$A$2=6%k%{*C%3=+&4=5=r*#*t*6=7=`*@='*'*/#/# ", +" ].^.Q@o+h@N.++q+3$8=9=0=a=b=c=d=e=f=g=h=i=j=k=v+l=+&`+U&m=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C={&D=E==+M.&.X*[=Q*_&F=$#`*|$m&C$C$;%k%<*2&G=3&H=I=r*#*t*J=a%K=L=M='*N=/#/# ", +" ^.^.o+o.p+F$O.<@<@O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-_-:-<-R&3@[-M%_&X*}-w@`*k%~*q*C$#%k%<*7%G=+&+&5=]*^*|-J=J=`*@=1-2-Z&3-/#/# ", +" 4-(.:@p+p+O.P.j@Q.#+;$5-6-7-8-9-0-a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-A-B-C-D-E-F-3.s%_&1*}-$@a%7%Z%A$C$;%%%1&7%l%G-}%H-]*I-J*t*a%`*J-K-L-M-3-N-/#/# ", +" (.O-N.R@O.q+S@Q.#+t+%+6+P-Q-R-S-T-U-V-W-X-Y-Z-`- ;.;+;@;#;$;%;&;*;=;-;;;>;,;';);!;~;{;];^;/;(;_;:;t M%e*w*+#M-<*~*|$C$;%U$k%<*l%G=H=<&]*c*t*d*a%`*@=1-2-M-<;[;c%/#/# ", +" (.).p+O.2+j@R.};}#5+J#v+8+|;1;2;3;4;v+Y@A+5;J#6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;! b#L-;%|$m&x;C$]%1&7%l%3&+&<&]*c*a*t*a%`*`*y;L-z;A;<;B;C;/#/# ", +" O-D;O.n%[#P.#+$+%+&+v+v+W@X+0+x+y+y+ @A+o@|@q@@@3#$@E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;`; >.>%%a%I*}$Z%B$;%;%k%7%l%G-+& =I=G*s*t*J=+>`*@=L-M-M-<;@>C;e /#/# ", +" % #>[%P.Q.#+#&;$u+v+8+9+9+$>x+i#Y@Y@ @ %p@q@%>&>l#2@.#4@*>=>->;>>>,>'>)>!>~>{>]>^>/>(>_>:><>[>}>|>1>2>3>4> $Z%B$C$U$%%<*l%l%I&<&5>G*6>t*7>`*8>9>L-2-0>a>@>b>e c>/#/# ", +" % b.P.o%h#H#$+a+6+G$W@9+$>x+x+`+Y@6@o@w$'$r@#@l#K$O#O#4@d>x@e>f>g>h>i>j>k>l>m>n>o>p>q>r>s>t>u>v>w>x>y>z>A>B>C>x#|&/%k%D%3&E%<&]*]*/*t*6=7=J-@=L-2-M-<;@>D>E>F>F@/#/# ", +" u.u.S@#+#&$+a+6+G$W@|#w+x+y+>%Y@7$j#w$q@@@@@#@$@3@v@m#w@x@z@G>H>I>J>K>L>M>N>O>P>Q>R>S>T>U>V>W>X>Y>Z>`> ,.,+,@,#,$,%,&,l%+&H=n&]*#*t*t*a%`**,y;2-M-<;=,-,;,>,,,,,/#/# ", +" u.w.s+t+;$a+a+7+8+9+0+>$x+'=Y@,$B+B+q@@@@@#@',N#O#),M$x@+#@#!,C@$#~,x%{,],^,/,(,_,:,<,[,},|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,<&<&r*#*/*t*K*+>@=1-L-e,<;f,D>g,>,>,,,h,/#/# ", +" i,j,#&$+U+6+v+W+s$X+$>x+'=6$}@o@p@q@'$k#4#$@k,3@5#M$x@z@+#@#C@S#~$%#*#]$3%b#c#V#l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,t*a%`*`*K-L-M-<;a>J,;,>,K,L,M,N,/#/# ", +" j,9.H#a+u+v+8+l@9+0+n@Z$L# @O,B+.@'$%>#@$@N#I>4@),d>N$a$A@P,##$#V%*#0#2%b#Q,V#V#t#y$X#Y#S$v#5%T$T$T$R,S,T,U,V,W,X,Y,Z,`, '.'+'@'#'$'`*y;L-M-M-<;%'&'>,*'='-'C&;'/#/# ", +" >','a+&+v+8+l@K#$>x+y+Y@Y@j#v$.@@@@@''$@K$3@L$L$M$,%)'@#C@$#$#9#*#!'2%4%c#V#V#t#y$w#Y#x#`# $.$T$[$|$C$y#~'{']'^'/'('_':'<'['}'|'1'2'3'3&0><;4'D>;,g,5'='L,6';'7'/#/# ", +" 8'y.a+7+9'8+9+>$Z+J$`+Y@A+B+B+0'@@)$l#k,3@4@w@M$x@+#@#p#C@$#%#*#a'2%b#c#V#.%t#y$v#h$x#W%y#<$}&l$|$q*2=;%]%7%b'c'd'e'f'g'h'i'j'k'l'm'n'o'p'a>4';,g,q'r'-'s't'T T /#/# ", +" y.u'E@D+v'$+0+x+y+6$`+A+v$|@+@@@#@$@t@3@4@w@x@x@,%7#p#C@$#%#z%a#2%b#w's#V#W#y$x'k&y'`#y#.$T$+$|$z'I*6%%%7%3=l%}$A'B'C'D't*a%+&E'F'G'H'I'J'J,b>E>K,K,-'-'6'K'L'8*/#/# ", +" M'1 1 1 '@N'8*O'=$Y@A+A+B++@r@k#l#$@N#4@4@M$x$z@+#C@p#1%%#*#]$'%b#w'P'V#)%W#w#+%x#`# $l&T$[$l$q*C$;%%%Q'7%l%+& =<&R'S'T'a%a%U'@=H-V'W'X'Y';,E>>,r'Z's'`' ).)+)E+/#/# ", +" 1 V.V.'+)+)+@)f+f+i*S.-%#+Y@$@k,t@u@m#w@x@+#+#@#1%y%8#z%#)=#3%q#c#V#t#W#y$h$k&i$:$ $T$[$l$|$C$;%^%7%7%C%+&+&<&G*I-a*/*+>`*@=L-L-L-a%$)%);,q'r'&)*)6'=)-).)9@E+/#/# ", +" d+@)e+f+;)^ ^ i+U.y /#>)< p+4@w@x@+#G>@#C@$#~$%#*#=#,)w'e$V#V#j&y$w#x#x#j$ $T$+*~*|$C$;%^%<*7%l%+&4=<&]*^*6>t*a%`*')y;))p'!)@>@>;,~){)&)])`'^)/).)()_)4*/#/# ", +" &.^ i+U.H+K+:)<)b@D$[)1*! +#@#C@c$T#9#*#=#'%b#r#V#.%u#y$w#k&B%i% $T$H*~*|$C$I*6%7%7%3&.&+&<&J&c*a*6=7>+=@=@=})M-|)1)2)2)3)r'4)-'^)5).)6)7)8)_)4*/#/# ", +" *.P N $.P ^@K+9)<)L+L+>@>@0)'@'@,,a)j.v+1@a#=#b#c#V#b)A%y$w#@%x#j$y#T$T$[$|${%I*]%<*{*7%.&+&<&]*G*J*6>c)7=@=L-1-M-d)<;@>;,E>*'r'-'e)5)/).)6)f)g)4*h)/#/# ", +" `.i)i)P P g.F#&.&$`.:+[.7@>@j)'@)@k)a@l)b@g#=&|%F==%9#V#A%y$w#Y#i$i% $<$T$[$l$C$#%;%k%7%2&E%+&4=I=c*s*t*a%K=J-@=m)))e,a>@>;,g,>,r'*)6'K'K'n)()8)8)o)p)q)/#/# ", +" j.i.k+N+g.g.g.g.&.l+q$`.[.}.}.M&F.3.3.4.G+b@b@r)=@s)t)q.(%y { u)Y@w#B%`# $<$z$[$|$C$C$ &k%7%7%E%+&<&5=]*J*v)J=a%`*@=9>M-M-<;@>b>q'K,&)Z'6'6'w).)x)8)g)y)z)q)3*/#/# ", +" A)-.`._+*.O+f*`.f*`.e@[.[.-.}.}.F.1.3.<%4.I.-%o+L.h@=@B)L@L@C)q.{#D)^#C#s%E)K#4@_$|$z'$%;%k%k%D%l%+& =I=]*c*t*J=a%@=J-1-M-M-<;@>;,;,{)r'&)e)`'K'F)x)()y)o)G)z)H)o*/#/# ", +" 1.}.-.i.[.=.[.[.=%[.7@7@j.}.>.k.M&1.G.3.4.f@I.m.o+o.M.R@<#.*e*e*/#q.I)J)K)f#$$$$$$L)M)N)) 3@%%Q'O)E%+&}%n&^*^*t*6=a%`**,M=P)M-!)f,%'Q)>,R)-'S)6'T)F)7)U)8)o)G)z)z)V)V)/#/# ", +" -%3.G#M&k.k.}.}.}.}.2$2$/@}.P+*$|.<+1.G.3.<%Q+I.R+Q@o+o.h@_*[%W)/#/#/#/#/#X)Q*x*N'D&Y)D$E$E$Z)`) !C&.!}.@*+!5=]*I-t*@!a%K=8>#!z;M-0>@>%'q'$!K,Z'])%!&!.)n)f)8)*!z)z)z)z)V)=!/#/# ", +" o+I.4.m%[+ +=$G#|.-!|.k.M&|.F.k.<+-!(@G.H.4._#_#I.n.:#o+C+.+++2+P.;!/#/#/#/#/#B#R*i*y*D*{ E$>!(%,!'!F%5&G@G@`)j*F=S@w@`#7>`*K=@=L-z;<;)!-,%)Q)r'r'-'6'=)w).)()!!g)~!z)z)z)z){!L)/#/# ", +" p+M.:#I.n+4.4.]!H.3. +G.1. +2.=$G.3.(@3.r$4.4.I.I.m.n.o+o.M.^!++2+P.P.1*/#/#/#/#/#M%R*^&A*2*/!l*3*l*/&(!_!@&G@o&`&:!>,>,f!S)%!K'/).)()g!8)h!z)z)z)z)z)z)l*(&/#/# ", +" P.3.&+U+[#O.M.o+:#n.m.J.}+I.I.I.I._@_#I.I.I.n.g@n.o+o+<#C+M.p+T+O.P.P.P.P.P.N s%/#/#/#/#i!j!k!l!E*j*m!3*V)(&{ | =&x*[=n!/#/#/#o!Z&Z&Z&c%c%e F>p!,,q!p$3@@%M-K'.)n)f)8)*!z)z)z)z)z)z)z)l*(&/#/# ", +" P./=r!s!G O.8+5+j@p+C+K.Q@n.K.:#n.X$n.:#Q@o+o+o+o+M.M.M..+++r+P.P.P.P.P.P.P.M ! /#/#/#/#!=t!9&u!7.2*v!w!(&j*x!y!z!x*Q*!=/#/#/#/#/#/#A!P.[!c>e ,,M,B!C&;'T.C!D!g. $8)E!E!z)z)z)z)z)z)z)(&(&/#/# ", +" P.G%[;o*k!F!A!s!M v+8+$+n%p+M.o+|+o.M.M.M.M.M.S+0%p+++O.O.P.P.P.P.P.P.P.P.P.P.P.`.A!/#/#/#M%G!x*=&7.E*2*{ H!| y*^&I!J!K!/#/#/#/#/#/#1*P.P.P.P.P.B!;'9*8*8*9@E+q)=!8!|!v+6'z)z)z)z)z)z)(&/&/#/# ", +" P.c%E+E+E++)4*L!u!B#M!w*k.9+v+#+P.O.p+p+p+p+T+T+O.O.r+P.P.P.P.P.P.P.P.P.P.P.P.P.P.k.p.M!/#!=_&R*i*V*E&7.| 7.N!-+x*O!B#/#/#/#/#/#/#/#a&P.P.P.P.P.P.P.P.P!+)E+6*4*4*h)3*o*Q!Q*p.x+b##*z)/&/&/#/#P. ", +" P.R!p)3*R*/&S!T!U!w!j*V!W!j!X!Y&M.a+#+Q.P.P.n%P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.) D+M)Y!Z!`!x*i*T* ~-+^&x*R*_&X)/#/#/#/#/#/#e*! P.P.P.P.P.P.P.P.P.P.P.P.P.P..~.~o*L){!l*+~@~#~b%/&/&/#/#P.P.P.P.P. ", +" P.B!Q!o*%@!*$~;*%~T*j*{ &~*~=~| E*-~;~a p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o+@.>~-*} ,~'~R*)~9&]&`!j!_&E=/#/#/#/#/#/=x 1=O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.o*l*(&+~!~~~/&/&/&/#P.P.P.P.P.P.P.P.P.P.P. ", +" P.{~l*(&!*}-]~0*^~/~s![-(~_~=&E&=&=&=&y*:~E@F=..4.n.p+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.2+n.*$<~s !*. a)C![~}~|~|~/#/#e*1*/#e*1~. 2~K.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.3~/&/&/&P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O. ", +" P.4~/&/&}-*+5~F=F=s!6~5.V&S.7~-*8~9~0~9&R*R*a~b~X)c~d~s &.3.p+#+Q.Q.P.P.P.P.P.P.P.P.R@4.}.p$r e~}*i&V&/~f~g~N):&[*D+h~W)i~) P+J.P.P.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.$+0 j~ ", +" P.Q!L!L!*+k~l~/~/~}=m~2~n~o~p.p~w q~r~s~t~S&M)}~Y!}~i!_&,.:&< 9 M 3.Q.$+#+Q.P.P.P.P.P.P.P.M u~! W)v~5.^~w~[-h~-*S.)*x~0 ..F#M&Y$o+P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.O.P...i&y~z~ ", +" P.A~2*H!B~^~C~s!s!D~5.n~E~p.F~.*G~W)}*H~g*! m I~Q J~K~L~F!M~N~F!|%. S.O~v I.a+$+#+Q.P.P.P.P.P.P.P.p.m~J~P~Q~0*R~p.W)1=a S~*.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.M.g.W).*q~T~i& ", +" P.U~V~| !@W~s!-*-*X~V&d~S.< i&Y~s~Z~`~ {1=.{9 a H I +{M :.Y~. @{E@#{#{M!>)}-m~Y&N p+v+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.P.n.`.! W)N%Y&${q~w ", +" P.j*7.N!A*A*%{&{U&*{w*S.p.< .*w W)Y&={x~-{) A.;{H >{M@M P g.`.}.7@,{1!D+|%C!A!'{){}-s! {[.Q.a+#+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.n.f*H x~!{~{x~={}*{{]{ ", +" P.^{/{l!e*%{=&T.V*V*x*({;*h~_{q~W)}* {:{! ) 0 u~r .v ]@N+&.`.-.1.3.4.n.<#}.<{6~[{}{>)[*[-p=R&9 3.$+$+Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.M.F#f.A.0 9 ) ! 1=|{ {N%Z~ ", +" P.0!-+-+%@!*1{!@2{!=x*x*c+`!Q*e*3{*+4{1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+5{S&6{:&7{=*8{]~< ..n.#+Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.O.l+%.B.s I H ,{F E ! 1=1=j~H~ ", +" P.7.i*9{!*}-]~0*^~/~-*. x&,.X)_&'~0{n!e*a{}-4{c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.S&a)b{D+c{d{. f~*+e{h~-*f{g.M.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.Q.P.;.q$$.N M L K r c a g{9 ) ! h{i{ ", +" P.=&]&]&}-*+5~F=F=s!6~5.V&S.7~5.j{a{/=/#X*k{e*s%1~!*l{v h.`.[.k. +4.J.o+p+P.P.P.P.P.S&m{:&;~n{P~8{p=*+J~0*o{s!/~F=S.! `.n.M.O.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.0 g.P.P.P.P.3.[.[.o+;.P N M v t I H u~I~9 ) e~p{ ", +" P.b~Q*Q**+k~l~/~/~}=m~2~n~o~p.p~w q~r~s~q{r{s{%~/=t{6.u{A!b%v{M [+4.Q@C+p+2+P.P.P.P.a)[*w{x{y{b%!*}-*+J~F=z{-*-*-*s!/~F=F=< 9 &.3.n.p+P.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.N 0 P.P.Y$k.2.A{k.M.[.g.B{N M v ..K C{:.a 0 n D{ ", +" P.c+_&_&B~^~C~s!s!D~5.n~E~p.F~.*G~W)}*H~g*! m I~Z~E{F{G{H{.!&@M!|%I{.*N 0%P.P.P.P.P.J{K{L{x{[-. !*}-W~-&F=s!-*-*-*-*-*-*-*s!/~F=-*.*0 P }.I.O.Q.Q.Q.P.P.P.P.P.P.P.P.P.P.P.P.P.3.W)p+_#-%R+4.2.1.M.[.O+&.%.O N ^+O M.s r M{,{N{ ", +" P.R*i!X)O{B~s!-*-*X~V&d~S.< i&Y~s~Z~`~ {1=.{9 a H I +{M P{Q{W~!@C!A!|%R{x&N)< ..n.P.6{:&D+N)b%S{f~e{h~0*/~s!-*-*-*-*-*-*-*-*-*-*-*s!/~F=5.q~9 ..&.I.P.#+Q.Q.P.P.P.P.1.I.L.O.H#4$o+Y@|@!$4@G>$#C@y+>.i.`.&.g.#.N +#v+..s Y.r H ", +" P.[=!=T{!=!=N~M!U{V{w*S.p.< .*w W)Y&={x~-{) A.;{H >{M@M P g.`.}.}.{+< [ ~ '{W{O'S&[-b{L{N)[-%@!*X{D!0*F=/~Y{-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!/~/~V&q~1=H g.n.#+v P `.&$Z{K{I!e#6 `{ ]`{k F%s%.]n%$#u#x#T$<.O+g.o+l$&.>~v .. .s ", +" P.+]#{@]N~#]_~X*X*X*k{,#S&F=_{q~W)}* {:{! ) 0 u~r .v ]@N+&.`.-.1.3.4.n.<#2$Z w*b%J{:&D+N)d{. !**+h~0*F=s!}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*s!s!s!w*$]G e~U&%]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]'*x~a'~*;%`.*#A+P N N M S~]+ ", +" P.8+v+1.W)D+A!,#/=1**]=]e*s%s%,#O'F=4{1=) n 0 H s .v (+^@&.=%}.G#3._@Q@M.O.P.P.P.o+D+;~[-. !*v&*+k~F=/~s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-];]z{c%&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]_&-#l%+&2$F#g.P O N M ", +" P.#+8+9+#+_+w b%>],]=+e*s%%~&{'])];!!@!]~]c s M@M D.%.&.=%P+1.l.J.o+S+O.P.P.P.P.D+{]d{. !*v&W~0*F=/~]]-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*^].**+G+&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]o*O#]*a%f*&.g.<~P 8) ", +" Q.a+ v+p+M W)/]c{|%=+:=(],._]_];!,#~ V{`~v h.`.[.k. +4.J.o+p+P.P.P.P.P.:]y{P~w~p=<]h~V{/~[]}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}]}]l*&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]|]2&K=[.:+f*A+z) ", +" 8+#+R+N 1=7~1]|%=+,.2]&@M!a&a&^=~ B~${N [+4.Q@C+p+2+P.P.P.P.[-3]. f~}-h~0*F=/~t~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*F=x&4]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]5]q@L-}.x@>, ", +" $+P.4.g.H q~6]1~7],#a&1~R{8];*x&|!*+-]Z.0%P.P.P.P.P.b%. !*}-*+h~0*F=s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*}-R*&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]9 4)@>O. ", +" Q.O.I.F.N q~b%A!C!|%9]U&~ !@O'S&a)0]w M o+P.b%1]!*a]h~0*b]z{-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*[-8*&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]b%>,<+ ", +" P.O.M.o+g.w =*c]U&|]d]a)e]:&D+{]d{e{. !*}-*+0*f]g]s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*O{h]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]i]j]k]l]m]n]o]p]&]&]&]&]&]&]&]&]&]q]>, ", +" P.P.P.P.p+N < =*r]b{e]N):]d{%@S{}-v&W~0*s]t]}=-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*~ c%&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]u]v]w]x]y]z]A]B]C]D]&]&]&]&]&]&]&]&]&]!*K, z) ", +" P.Q.#+$+M. .Z*E]%@!*. F]v&*{G]F=[]t~-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*R{{ &]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]H]I]J]K]J]I]l]L]M]N]O]P]&]&]&]&]&]&]&]&]&]r S) z) ", +" P.#+$+a+f@H Q]/~t]R]f]T&s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*A!!=&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]S]T]y]U]V]U]y]W]X]B]Y]Z]`] ^&]&]&]&]&]&]&]&]&]@#o)z) ", +" P.Q.$+a+#+1.H q~< S.m~s!s!-*-*-*-*-*-*-*-*-*-*-*-*-*-*A!E@&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&].^+^l]@^#^$^%^&^*^=^-^;^>^,^&]&]&]&]&]&]&]&]&]E%x) ", +" P.#+a+a+P.k.s {q~p.m~/~s!-*-*-*-*-*-*-*-*-*-*-*A!M%&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]'^)^!^z]~^{^z)z)]^^^/^(^_^:^&]&]&]&]&]&]&]&]J$@> ", +" Q. $+M.}...) W)S.s!/~s!-*-*-*-*-*-*-*-*A!{ &]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]<^[^}^|^1^z)z)z)z)2^;^3^4^5^&]&]&]&]&]&]&]c @= ", +" Q.o+}.M 0 Y&V&F=/~s!-*-*-*-*-*|%V)&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]6^7^8^[^9^z)z)z)z)0^a^_^b^c^&]&]&]&]&]&]Q]K& ", +" #+P.n.k.&.H q~m~0*/~s!-*-*d^*@&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]e^f^g^h^i^]^z)z)j^k^_^l^m^n^&]&]&]&]&]i~O) ", +" Q.O.n.3.`.a .*s!F=/~x&1*&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]o^p^q^O]r^s^t^u^v^w^x^y^z^A^&]&]&]&]:#B$ ", +" P.O.M.n.`.9 p.B^|%C^&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]D^E^3^F^G^3^H^v^I^J^K^L^M^N^&]&]O^w@Z# ", +" P.P.O.O.M.!@P^E&&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]Q^R^S^T^S^R^U^V^W^X^Y^Z^&]&]m~b#t# ", +" P.P.d [*S&E$&]&]&]&]&]&]&]&]&]&]&]&]&]&]`^ /./+/@/#/$/Y^M^Z^&]Q*q@S#0# ", +" L{$~:&o*&]&]&]&]&]&]&]&]&]&]&]&]&]N^%/&/$/*/&/%/N^x 4$k,9$ ", +" . }-B~x&E$&]&]&]&]&]&]&]&]&]&]&]&]&]&]&]/&0 H$z+B+ ", +" h~/~m~=/m~a)/#-/V 5] ]5]^.{~M!i&l+N.3$5+8+ ", +" ;/>/i&G~N%i{,/a .M g.[.F._@o+ ", +" ", +" ", +" ", +" "}; diff --git a/src/Mod/Ship/InitGui.py b/src/Mod/Ship/InitGui.py index 77298ad84..e735befa1 100644 --- a/src/Mod/Ship/InitGui.py +++ b/src/Mod/Ship/InitGui.py @@ -1,68 +1,68 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -class ShipWorkbench ( Workbench ): - """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ - from shipUtils import Paths, Translator - import ShipGui - - Icon = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate("Ship design")) - ToolTip = str(Translator.translate("Ship design")) - - def Initialize(self): - from shipUtils import Translator - # ToolBar - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendToolbar("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendToolbar("Weights",list) - # Simulation stuff only if pyOpenCL & numpy are present - hasOpenCL = True - hasNumpy = True - try: - import pyopencl - except ImportError: - hasOpenCL = False - msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - try: - import numpy - except ImportError: - hasNumpy = False - msg = Translator.translate("numpy not installed, ship simulations disabled\n") - App.Console.PrintWarning(msg) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] - self.appendToolbar("Simulation",list) - - # Menu - list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] - self.appendMenu("Ship design",list) - list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] - self.appendMenu("Weights",list) - if hasOpenCL and hasNumpy: - list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim"] - self.appendMenu("Simulation",list) - -Gui.addWorkbench(ShipWorkbench()) +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +class ShipWorkbench ( Workbench ): + """ @brief Workbench of Ship design module. Here toolbars & icons are append. """ + from shipUtils import Paths, Translator + import ShipGui + + Icon = Paths.iconsPath() + "/Ico.png" + MenuText = str(Translator.translate("Ship design")) + ToolTip = str(Translator.translate("Ship design")) + + def Initialize(self): + from shipUtils import Translator + # ToolBar + list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] + self.appendToolbar("Ship design",list) + list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] + self.appendToolbar("Weights",list) + # Simulation stuff only if pyOpenCL & numpy are present + hasOpenCL = True + hasNumpy = True + try: + import pyopencl + except ImportError: + hasOpenCL = False + msg = Translator.translate("pyOpenCL not installed, ship simulations disabled\n") + App.Console.PrintWarning(msg) + try: + import numpy + except ImportError: + hasNumpy = False + msg = Translator.translate("numpy not installed, ship simulations disabled\n") + App.Console.PrintWarning(msg) + if hasOpenCL and hasNumpy: + list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] + self.appendToolbar("Simulation",list) + + # Menu + list = ["Ship_LoadExample", "Ship_CreateShip", "Ship_OutlineDraw", "Ship_AreasCurve", "Ship_Hydrostatics"] + self.appendMenu("Ship design",list) + list = ["Ship_Weights", "Ship_CreateTank", "Ship_GZ"] + self.appendMenu("Weights",list) + if hasOpenCL and hasNumpy: + list = ["Ship_CreateSim", "Ship_RunSim", "Ship_StopSim", "Ship_TrackSim"] + self.appendMenu("Simulation",list) + +Gui.addWorkbench(ShipWorkbench()) diff --git a/src/Mod/Ship/Makefile.am b/src/Mod/Ship/Makefile.am index 308131bba..2c643646c 100644 --- a/src/Mod/Ship/Makefile.am +++ b/src/Mod/Ship/Makefile.am @@ -46,6 +46,8 @@ nobase_data_DATA = \ Icons/SimRunIco.xpm \ Icons/SimStopIco.png \ Icons/SimStopIco.xpm \ + Icons/SimPostIco.png \ + Icons/SimPostIco.xpm \ Icons/Tank.png \ Icons/Tank.xcf \ Icons/Tank.xpm \ @@ -105,7 +107,10 @@ nobase_data_DATA = \ simRun/Sim/initialization.py \ simRun/Sim/matrixGen.py \ simRun/Sim/computeSources.py \ - simRun/Sim/fsEvolution.py + simRun/Sim/fsEvolution.py \ + simPost/__init__.py \ + simPost/TaskPanel.py \ + simPost/TaskPanel.ui CLEANFILES = $(BUILT_SOURCES) diff --git a/src/Mod/Ship/ShipGui.py b/src/Mod/Ship/ShipGui.py index 821bb01ac..4848a6609 100644 --- a/src/Mod/Ship/ShipGui.py +++ b/src/Mod/Ship/ShipGui.py @@ -1,169 +1,183 @@ -#*************************************************************************** -#* * -#* Copyright (c) 2011, 2012 * -#* Jose Luis Cercos Pita * -#* * -#* This program is free software; you can redistribute it and/or modify * -#* it under the terms of the GNU Lesser General Public License (LGPL) * -#* as published by the Free Software Foundation; either version 2 of * -#* the License, or (at your option) any later version. * -#* for detail see the LICENCE text file. * -#* * -#* This program is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * -#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -#* GNU Library General Public License for more details. * -#* * -#* You should have received a copy of the GNU Library General Public * -#* License along with this program; if not, write to the Free Software * -#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * -#* USA * -#* * -#*************************************************************************** - -from PyQt4 import QtCore, QtGui -import FreeCAD, FreeCADGui, os - -class LoadExample: - def Activated(self): - import shipLoadExample - shipLoadExample.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/LoadIco.png" - MenuText = str(Translator.translate('Load an example ship geometry')) - ToolTip = str(Translator.translate('Load an example ship geometry able to be converted into a ship.')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class CreateShip: - def Activated(self): - import shipCreateShip - shipCreateShip.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Ico.png" - MenuText = str(Translator.translate('Create a new ship')) - ToolTip = str(Translator.translate('Create a new ship in order to work with them')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class OutlineDraw: - def Activated(self): - import shipOutlineDraw - shipOutlineDraw.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/OutlineDrawIco.png" - MenuText = str(Translator.translate('Outline draw')) - ToolTip = str(Translator.translate('Plot ship outline draw')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class AreasCurve: - def Activated(self): - import shipAreasCurve - shipAreasCurve.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/AreaCurveIco.png" - MenuText = str(Translator.translate('Areas curve')) - ToolTip = str(Translator.translate('Plot transversal areas curve')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class Hydrostatics: - def Activated(self): - import shipHydrostatics - shipHydrostatics.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('Hydrostatics')) - ToolTip = str(Translator.translate('Plot ship hydrostatics')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class SetWeights: - def Activated(self): - import tankWeights - tankWeights.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Weight.png" - MenuText = str(Translator.translate('Set ship weights')) - ToolTip = str(Translator.translate('Set ship weights, tanks must be added later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class CreateTank: - def Activated(self): - import tankCreateTank - tankCreateTank.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/Tank.png" - MenuText = str(Translator.translate('Create a new tank')) - ToolTip = str(Translator.translate('Create a new ship tank')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class GZ: - def Activated(self): - import tankGZ - tankGZ.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" - MenuText = str(Translator.translate('GZ curve')) - ToolTip = str(Translator.translate('Transversal stability GZ curve computation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class CreateSim: - def Activated(self): - import simCreate - simCreate.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimCreateIco.png" - MenuText = str(Translator.translate('Create a new simulation')) - ToolTip = str(Translator.translate('Create a new simulation in order to process later')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class RunSim: - def Activated(self): - import simRun - simRun.load() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimRunIco.png" - MenuText = str(Translator.translate('Run a simulation')) - ToolTip = str(Translator.translate('Run a simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -class StopSim: - def Activated(self): - import simRun - simRun.stop() - - def GetResources(self): - from shipUtils import Paths, Translator - IconPath = Paths.iconsPath() + "/SimStopIco.png" - MenuText = str(Translator.translate('Stop active simulation')) - ToolTip = str(Translator.translate('Stop active simulation')) - return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} - -FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) -FreeCADGui.addCommand('Ship_CreateShip', CreateShip()) -FreeCADGui.addCommand('Ship_OutlineDraw', OutlineDraw()) -FreeCADGui.addCommand('Ship_AreasCurve', AreasCurve()) -FreeCADGui.addCommand('Ship_Hydrostatics', Hydrostatics()) -FreeCADGui.addCommand('Ship_Weights', SetWeights()) -FreeCADGui.addCommand('Ship_CreateTank', CreateTank()) -FreeCADGui.addCommand('Ship_GZ', GZ()) -FreeCADGui.addCommand('Ship_CreateSim', CreateSim()) -FreeCADGui.addCommand('Ship_RunSim', RunSim()) -FreeCADGui.addCommand('Ship_StopSim', StopSim()) +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +from PyQt4 import QtCore, QtGui +import FreeCAD, FreeCADGui, os + +class LoadExample: + def Activated(self): + import shipLoadExample + shipLoadExample.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/LoadIco.png" + MenuText = str(Translator.translate('Load an example ship geometry')) + ToolTip = str(Translator.translate('Load an example ship geometry able to be converted into a ship.')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class CreateShip: + def Activated(self): + import shipCreateShip + shipCreateShip.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/Ico.png" + MenuText = str(Translator.translate('Create a new ship')) + ToolTip = str(Translator.translate('Create a new ship in order to work with them')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class OutlineDraw: + def Activated(self): + import shipOutlineDraw + shipOutlineDraw.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/OutlineDrawIco.png" + MenuText = str(Translator.translate('Outline draw')) + ToolTip = str(Translator.translate('Plot ship outline draw')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class AreasCurve: + def Activated(self): + import shipAreasCurve + shipAreasCurve.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/AreaCurveIco.png" + MenuText = str(Translator.translate('Areas curve')) + ToolTip = str(Translator.translate('Plot transversal areas curve')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class Hydrostatics: + def Activated(self): + import shipHydrostatics + shipHydrostatics.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" + MenuText = str(Translator.translate('Hydrostatics')) + ToolTip = str(Translator.translate('Plot ship hydrostatics')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class SetWeights: + def Activated(self): + import tankWeights + tankWeights.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/Weight.png" + MenuText = str(Translator.translate('Set ship weights')) + ToolTip = str(Translator.translate('Set ship weights, tanks must be added later')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class CreateTank: + def Activated(self): + import tankCreateTank + tankCreateTank.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/Tank.png" + MenuText = str(Translator.translate('Create a new tank')) + ToolTip = str(Translator.translate('Create a new ship tank')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class GZ: + def Activated(self): + import tankGZ + tankGZ.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/HydrostaticsIco.png" + MenuText = str(Translator.translate('GZ curve')) + ToolTip = str(Translator.translate('Transversal stability GZ curve computation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class CreateSim: + def Activated(self): + import simCreate + simCreate.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimCreateIco.png" + MenuText = str(Translator.translate('Create a new simulation')) + ToolTip = str(Translator.translate('Create a new simulation in order to process later')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class RunSim: + def Activated(self): + import simRun + simRun.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimRunIco.png" + MenuText = str(Translator.translate('Run a simulation')) + ToolTip = str(Translator.translate('Run a simulation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class StopSim: + def Activated(self): + import simRun + simRun.stop() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimStopIco.png" + MenuText = str(Translator.translate('Stop active simulation')) + ToolTip = str(Translator.translate('Stop active simulation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + +class TrackSim: + def Activated(self): + import simPost + simPost.load() + + def GetResources(self): + from shipUtils import Paths, Translator + IconPath = Paths.iconsPath() + "/SimPostIco.png" + MenuText = str(Translator.translate('Track simulation')) + ToolTip = str(Translator.translate('Track simulation')) + return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip} + + +FreeCADGui.addCommand('Ship_LoadExample', LoadExample()) +FreeCADGui.addCommand('Ship_CreateShip', CreateShip()) +FreeCADGui.addCommand('Ship_OutlineDraw', OutlineDraw()) +FreeCADGui.addCommand('Ship_AreasCurve', AreasCurve()) +FreeCADGui.addCommand('Ship_Hydrostatics', Hydrostatics()) +FreeCADGui.addCommand('Ship_Weights', SetWeights()) +FreeCADGui.addCommand('Ship_CreateTank', CreateTank()) +FreeCADGui.addCommand('Ship_GZ', GZ()) +FreeCADGui.addCommand('Ship_CreateSim', CreateSim()) +FreeCADGui.addCommand('Ship_RunSim', RunSim()) +FreeCADGui.addCommand('Ship_StopSim', StopSim()) +FreeCADGui.addCommand('Ship_TrackSim', TrackSim()) diff --git a/src/Mod/Ship/simPost/TaskPanel.py b/src/Mod/Ship/simPost/TaskPanel.py new file mode 100644 index 000000000..9c6ca53c3 --- /dev/null +++ b/src/Mod/Ship/simPost/TaskPanel.py @@ -0,0 +1,156 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD as App +import FreeCADGui as Gui +# Qt library +from PyQt4 import QtGui,QtCore +# pyOpenCL +import pyopencl as cl +# Module +import SimInstance +from shipUtils import Paths, Translator +from simRun import Simulation +Sim = Simulation.FreeCADShipSimulation +# from Simulation import FreeCADShipSimulation as Sim + +class TaskPanel: + def __init__(self): + self.ui = Paths.modulePath() + "/simPost/TaskPanel.ui" + + def accept(self): + return True + + def reject(self): + return True + + def clicked(self, index): + pass + + def open(self): + pass + + def needsFullSpace(self): + return True + + def isAllowedAlterSelection(self): + return False + + def isAllowedAlterView(self): + return True + + def isAllowedAlterDocument(self): + return False + + def helpRequested(self): + pass + + def setupUi(self): + mw = self.getMainWindow() + form = mw.findChild(QtGui.QWidget, "TaskPanel") + form.time = form.findChild(QtGui.QLabel, "TimeLabel") + form.first = form.findChild(QtGui.QPushButton, "First") + form.prev = form.findChild(QtGui.QPushButton, "Prev") + form.now = form.findChild(QtGui.QPushButton, "Now") + form.next = form.findChild(QtGui.QPushButton, "Next") + form.last = form.findChild(QtGui.QPushButton, "Last") + self.form = form + # Initial values + if self.initValues(): + return True + self.retranslateUi() + # Connect Signals and Slots + QtCore.QObject.connect(form.first, QtCore.SIGNAL("pressed()"), self.onFirst) + QtCore.QObject.connect(form.prev, QtCore.SIGNAL("pressed()"), self.onPrev) + QtCore.QObject.connect(form.now, QtCore.SIGNAL("pressed()"), self.onNow) + QtCore.QObject.connect(form.next, QtCore.SIGNAL("pressed()"), self.onNext) + QtCore.QObject.connect(form.last, QtCore.SIGNAL("pressed()"), self.onLast) + + def getMainWindow(self): + "returns the main window" + # using QtGui.qApp.activeWindow() isn't very reliable because if another + # widget than the mainwindow is active (e.g. a dialog) the wrong widget is + # returned + toplevel = QtGui.qApp.topLevelWidgets() + for i in toplevel: + if i.metaObject().className() == "Gui::MainWindow": + return i + raise Exception("No main window found") + + def initValues(self): + """ Set initial values for fields + """ + msg = Translator.translate("Ready to work\n") + App.Console.PrintMessage(msg) + return False + + def retranslateUi(self): + """ Set user interface locale strings. + """ + self.form.setWindowTitle(Translator.translate("Track simulation")) + self.form.findChild(QtGui.QPushButton, "Now").setText(Translator.translate("Now")) + + def onFirst(self): + """ Called when first frame button is pressed. + """ + + def onPrev(self): + """ Called when previous frame button is pressed. + """ + + def onNow(self): + """ Called when actual frame button is pressed. + """ + sim = Sim() + pos = sim.sim.FS_Position[:] + nx = sim.FS['Nx'] + ny = sim.FS['Ny'] + for i in range(0, nx): + for j in range(0, ny): + pos[i*ny+j].z = float(sim.FS['pos'][i,j][2]) + sim.sim.FS_Position = pos[:] + App.ActiveDocument.recompute() + self.form.time.setText("t = %g s" % (sim.t)) + + def onNext(self): + """ Called when next frame button is pressed. + """ + + def onLast(self): + """ Called when last frame button is pressed. + """ + +def createTask(): + try: + simulator = Sim() + except: + msg = Translator.translate("Can't find any active simulation!\n") + App.Console.PrintError(msg) + return + panel = TaskPanel() + Gui.Control.showDialog(panel) + if panel.setupUi(): + Gui.Control.closeDialog(panel) + return None + return panel diff --git a/src/Mod/Ship/simPost/TaskPanel.ui b/src/Mod/Ship/simPost/TaskPanel.ui new file mode 100644 index 000000000..dd43f4c9d --- /dev/null +++ b/src/Mod/Ship/simPost/TaskPanel.ui @@ -0,0 +1,81 @@ + + + TaskPanel + + + + 0 + 0 + 300 + 102 + + + + + 0 + 1 + + + + + 0 + 100 + + + + + 300 + 16777215 + + + + Track simulation + + + + + + |< + + + + + + + < + + + + + + + > + + + + + + + >| + + + + + + + Now + + + + + + + t = 0 s + + + + + + + + diff --git a/src/Mod/Ship/simPost/__init__.py b/src/Mod/Ship/simPost/__init__.py new file mode 100644 index 000000000..64c597c02 --- /dev/null +++ b/src/Mod/Ship/simPost/__init__.py @@ -0,0 +1,40 @@ +#*************************************************************************** +#* * +#* Copyright (c) 2011, 2012 * +#* Jose Luis Cercos Pita * +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU Lesser General Public License (LGPL) * +#* as published by the Free Software Foundation; either version 2 of * +#* the License, or (at your option) any later version. * +#* for detail see the LICENCE text file. * +#* * +#* This program is distributed in the hope that it will be useful, * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +#* GNU Library General Public License for more details. * +#* * +#* You should have received a copy of the GNU Library General Public * +#* License along with this program; if not, write to the Free Software * +#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +#* USA * +#* * +#*************************************************************************** + +# FreeCAD modules +import FreeCAD +import FreeCADGui + +# Qt libraries +from PyQt4 import QtGui,QtCore + +# Main object +import TaskPanel + +def load(): + """ Loads the tool """ + TaskPanel.createTask() + +def stop(): + """ Stops the simulation """ + TaskPanel.stopSimulation() diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.py b/src/Mod/Ship/simRun/Sim/fsEvolution.py index fd0be670a..a4d2e0161 100644 --- a/src/Mod/Ship/simRun/Sim/fsEvolution.py +++ b/src/Mod/Ship/simRun/Sim/fsEvolution.py @@ -57,24 +57,47 @@ class simFSEvolution: # Get value at pos using characteristics method gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) - self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + \ - dt*np.linalg.norm(grad[i*ny+j]) - # Free surface points position - self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*grad[i*ny+j][2] + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*gradVal # Velocity potential self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + \ - dt*self.fs['accPot'][i,j] - \ - 0.5*dt*dt*grav*grad[i*ny+j][2] - # Acceleration potential - self.fs['accPot'][i,j] = self.fs['accPot'][i,j] - \ - dt*grav*grad[i*ny+j][2] - # Force boundary conditions + dt*self.fs['accPot'][i,j] + \ + 0.5*dt*dt*grav*self.fs['pos'][i,j][2] + # Acceleration potential. This is really hard to simulate + # accurately due to numerical diffusion of the function, so + # external waves, and diffracted waves will be computed + # in two different ways: + # * External waves will be considered analitically, + # substracting waves at t, and adding waves at t+dt + # * Second order waves will be computed substracting external + # waves to free surface height, and then imposing boundary + # condition. + pos = np.copy(self.fs['pos'][i,j]) + for w in waves['data']: + A = w[0] + T = w[1] + phase = w[2] + heading = np.pi*w[3]/180.0 + wl = 0.5 * grav / np.pi * T*T + k = 2.0*np.pi/wl + frec = 2.0*np.pi/T + l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) + # Substract external waves height in order to know second + # order waves free surface amplitude. + amp = A*np.sin(k*l - frec*(t+dt) + phase) + pos[2] = pos[2] - amp + # Compute analitic external waves acceleration potential + amp0 = grav*A*np.cos(k*l - frec*t + phase) + amp1 = grav*A*np.cos(k*l - frec*(t+dt) + phase) + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] - amp0 + amp1 + # Now impose free surface boundary condition + # self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + grav*pos[2] + # Impose values at beach (far free surface) for i in range(0,nx): for j in [0,ny-1]: - self.boundaryCondition(i,j, waves, dt, t) + self.beach(i,j, waves, dt, t) for j in range(0,ny): for i in [0,nx-1]: - self.boundaryCondition(i,j, waves, dt, t) + self.beach(i,j, waves, dt, t) def evaluateGradient(self): """ Evaluate potential gradients over free surface. @@ -84,10 +107,15 @@ class simFSEvolution: ny = self.fs['Ny'] nF = nx*ny grad = np.ndarray((nF,3), dtype=np.float32) + FF = open('gradient', 'w') for i in range(0,nx): for j in range(0,ny): pos = self.fs['pos'][i,j] grad[i*ny+j] = self.gradientphi(pos) + gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) + gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) + FF.write('%g\t%g\n' % (pos[1], gradVal)) + FF.close() return grad def gradientphi(self, pos): @@ -112,9 +140,9 @@ class simFSEvolution: grad[2] = 0. return grad - def boundaryCondition(self, i,j, waves, dt, t): - """ Compute free surface at boundaries, assuming that only - incident wave can be taken into account. + def beach(self, i,j, waves, dt, t): + """ Compute far free surface where only + incident waves can be taken into account. @param i First free surface cell index. @param j Second free surface cell index. @param waves Waves instance. @@ -133,7 +161,6 @@ class simFSEvolution: wl = 0.5 * grav / np.pi * T*T k = 2.0*np.pi/wl frec = 2.0*np.pi/T - pos = self.fs['pos'][i,j] l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) amp = A*np.sin(k*l - frec*(t+dt) + phase) self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + amp diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.pyc b/src/Mod/Ship/simRun/Sim/fsEvolution.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8cf2ab57f85012e37793c30e682c17326e5a245 GIT binary patch literal 4941 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 literal 0 HcmV?d00001 From 060d63c6c91b9be39377fc3e1d3573ee116ab31e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Fri, 10 Aug 2012 11:42:03 +0200 Subject: [PATCH 49/98] Removed surfaces modules (broken due to Part import) --- src/Mod/Ship/shipAreasCurve/TaskPanel.py | 3 +-- src/Mod/Ship/shipLoadExample/TaskPanel.py | 1 - src/Mod/Ship/shipOutlineDraw/Plot.py | 31 +++++++++++++++++++++-- src/Mod/Ship/shipOutlineDraw/TaskPanel.py | 3 +-- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/Mod/Ship/shipAreasCurve/TaskPanel.py b/src/Mod/Ship/shipAreasCurve/TaskPanel.py index 01389551a..e027f5f9e 100644 --- a/src/Mod/Ship/shipAreasCurve/TaskPanel.py +++ b/src/Mod/Ship/shipAreasCurve/TaskPanel.py @@ -31,7 +31,6 @@ from PyQt4 import QtGui,QtCore import Preview, Plot import Instance from shipUtils import Paths, Translator -from surfUtils import Geometry from shipHydrostatics import Tools as Hydrostatics class TaskPanel: @@ -114,7 +113,7 @@ class TaskPanel: """ Set initial values for fields """ # Get objects - selObjs = Geometry.getSelectedObjs() + selObjs = Gui.Selection.getSelection() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) diff --git a/src/Mod/Ship/shipLoadExample/TaskPanel.py b/src/Mod/Ship/shipLoadExample/TaskPanel.py index 2ab325d7d..b325a9236 100644 --- a/src/Mod/Ship/shipLoadExample/TaskPanel.py +++ b/src/Mod/Ship/shipLoadExample/TaskPanel.py @@ -28,7 +28,6 @@ import FreeCADGui as Gui from PyQt4 import QtGui,QtCore # Module from shipUtils import Paths, Translator -from surfUtils import Geometry class TaskPanel: def __init__(self): diff --git a/src/Mod/Ship/shipOutlineDraw/Plot.py b/src/Mod/Ship/shipOutlineDraw/Plot.py index 682c15678..004ab9b40 100644 --- a/src/Mod/Ship/shipOutlineDraw/Plot.py +++ b/src/Mod/Ship/shipOutlineDraw/Plot.py @@ -27,7 +27,6 @@ from FreeCAD import Base, Vector import Part # FreeCADShip modules from shipUtils import Paths, Translator -from surfUtils import Geometry def Plot(scale, sections, shape): """ Creates the outline draw. @@ -52,7 +51,7 @@ def Plot(scale, sections, shape): x0 = xMid - 0.5*xTot y0 = 297.0 - yMid - 0.5*yTot # 297 = A3_width # Get border - edges = Geometry.getEdges([shape]) + edges = self.getEdges([shape]) border = edges[0] for i in range(0,len(edges)): border = border.oldFuse(edges[i]) # Only group objects, don't try to build more complex entities @@ -95,3 +94,31 @@ def Plot(scale, sections, shape): FreeCAD.ActiveDocument.OutlineDrawPlot.addObject(FreeCAD.ActiveDocument.OutlineDrawUpView) FreeCAD.ActiveDocument.recompute() return obj + +def getEdges(self, objs=None): + """ Returns object edges (list of them) + @param objs Object to get the faces, none if selected + object may used. + @return Selected edges. None if errors happens + """ + edges = [] + if not objs: + objs = FreeCADGui.Selection.getSelection() + if not objs: + return None + for i in range(0, len(objs)): + obj = objs[i] + if obj.isDerivedFrom('Part::Feature'): + # get shape + shape = obj.Shape + if not shape: + return None + obj = shape + if not obj.isDerivedFrom('Part::TopoShape'): + return None + objEdges = obj.Edges + if not objEdges: + continue + for j in range(0, len(objEdges)): + edges.append(objEdges[j]) + return edges diff --git a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py index 834738a0c..c49abcd0d 100644 --- a/src/Mod/Ship/shipOutlineDraw/TaskPanel.py +++ b/src/Mod/Ship/shipOutlineDraw/TaskPanel.py @@ -30,7 +30,6 @@ from PyQt4 import QtGui,QtCore import Preview, Plot import Instance from shipUtils import Paths, Translator -from surfUtils import Geometry class TaskPanel: def __init__(self): @@ -116,7 +115,7 @@ class TaskPanel: """ Set initial values for fields """ # Get selected objects - selObjs = Geometry.getSelectedObjs() + selObjs = Gui.Selection.getSelection() if not selObjs: msg = Translator.translate("Ship instance must be selected (no object selected)\n") App.Console.PrintError(msg) From b349147ea2ad0c294085dedd0f5f86013c40c502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Luis=20Cerc=C3=B3s=20Pita?= Date: Fri, 10 Aug 2012 16:57:58 +0200 Subject: [PATCH 50/98] Improved free surface evolving method in order to support long simulations. --- src/Mod/Ship/simRun/Sim/fsEvolution.py | 70 +++++++++++++----------- src/Mod/Ship/simRun/Sim/fsEvolution.pyc | Bin 4941 -> 0 bytes src/Mod/Ship/simRun/Simulation.py | 8 --- src/Mod/Ship/simRun/Simulation.pyc | Bin 4343 -> 0 bytes 4 files changed, 38 insertions(+), 40 deletions(-) delete mode 100644 src/Mod/Ship/simRun/Sim/fsEvolution.pyc delete mode 100644 src/Mod/Ship/simRun/Simulation.pyc diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.py b/src/Mod/Ship/simRun/Sim/fsEvolution.py index a4d2e0161..14fdf4ba3 100644 --- a/src/Mod/Ship/simRun/Sim/fsEvolution.py +++ b/src/Mod/Ship/simRun/Sim/fsEvolution.py @@ -45,33 +45,19 @@ class simFSEvolution: @param t Actual time (without adding dt). """ self.fs = fs - # Allocate memory nx = self.fs['Nx'] ny = self.fs['Ny'] nF = nx*ny - # Evaluate potential gradients grad = self.evaluateGradient() - # Integrate variables + # In order to improve results in really long simulations free surface + # will performed considering external waves and second order effects + # in two different ways. First external waves at time t will be + # substracted, then second order waves will be computed, and finally + # external waves at t+dt will be added. for i in range(0,nx): for j in range(0,ny): - # Get value at pos using characteristics method - gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) - gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) - self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*gradVal - # Velocity potential - self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + \ - dt*self.fs['accPot'][i,j] + \ - 0.5*dt*dt*grav*self.fs['pos'][i,j][2] - # Acceleration potential. This is really hard to simulate - # accurately due to numerical diffusion of the function, so - # external waves, and diffracted waves will be computed - # in two different ways: - # * External waves will be considered analitically, - # substracting waves at t, and adding waves at t+dt - # * Second order waves will be computed substracting external - # waves to free surface height, and then imposing boundary - # condition. pos = np.copy(self.fs['pos'][i,j]) + # Substract external waves at time t. for w in waves['data']: A = w[0] T = w[1] @@ -81,16 +67,39 @@ class simFSEvolution: k = 2.0*np.pi/wl frec = 2.0*np.pi/T l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) - # Substract external waves height in order to know second - # order waves free surface amplitude. - amp = A*np.sin(k*l - frec*(t+dt) + phase) + amp = A*np.sin(k*l - frec*t + phase) pos[2] = pos[2] - amp - # Compute analitic external waves acceleration potential - amp0 = grav*A*np.cos(k*l - frec*t + phase) - amp1 = grav*A*np.cos(k*l - frec*(t+dt) + phase) - self.fs['accPot'][i,j] = self.fs['accPot'][i,j] - amp0 + amp1 - # Now impose free surface boundary condition - # self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + grav*pos[2] + amp = - grav/frec*A*np.sin(k*l - frec*t + phase) + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] - amp + amp = grav*A*np.cos(k*l - frec*t + phase) + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] - amp + # Now compute second order waves using position copy, + # where external waves are excluded, in order impose + # free surface boundary condition relative to second + # order phenomena. + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + \ + dt*self.fs['accPot'][i,j] + # self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + \ + # grav*pos[2] + # Restore external waves to velocity and acceleration + # potentials. + for w in waves['data']: + A = w[0] + T = w[1] + phase = w[2] + heading = np.pi*w[3]/180.0 + wl = 0.5 * grav / np.pi * T*T + k = 2.0*np.pi/wl + frec = 2.0*np.pi/T + l = pos[0]*np.cos(heading) + pos[1]*np.sin(heading) + amp = - grav/frec*A*np.sin(k*l - frec*(t+dt) + phase) + self.fs['velPot'][i,j] = self.fs['velPot'][i,j] + amp + amp = grav*A*np.cos(k*l - frec*(t+dt) + phase) + self.fs['accPot'][i,j] = self.fs['accPot'][i,j] + amp + # Update free surface point position + gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) + gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) + self.fs['pos'][i,j][2] = self.fs['pos'][i,j][2] + dt*gradVal # Impose values at beach (far free surface) for i in range(0,nx): for j in [0,ny-1]: @@ -107,15 +116,12 @@ class simFSEvolution: ny = self.fs['Ny'] nF = nx*ny grad = np.ndarray((nF,3), dtype=np.float32) - FF = open('gradient', 'w') for i in range(0,nx): for j in range(0,ny): pos = self.fs['pos'][i,j] grad[i*ny+j] = self.gradientphi(pos) gradVal = np.dot(np.abs(grad[i*ny+j]),grad[i*ny+j]) gradVal = np.copysign(np.sqrt(np.abs(gradVal)), gradVal) - FF.write('%g\t%g\n' % (pos[1], gradVal)) - FF.close() return grad def gradientphi(self, pos): diff --git a/src/Mod/Ship/simRun/Sim/fsEvolution.pyc b/src/Mod/Ship/simRun/Sim/fsEvolution.pyc deleted file mode 100644 index e8cf2ab57f85012e37793c30e682c17326e5a245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4941 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 From 969f4b57ebd70f726b0535152c4d17d30e856232 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 14 Aug 2012 20:41:18 -0300 Subject: [PATCH 51/98] 0000715: Draft axis constraints --- src/Mod/Draft/DraftGui.py | 2 +- src/Mod/Draft/DraftSnap.py | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 1e84dbce8..85c6f8385 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -990,7 +990,7 @@ class DraftToolBar: def setCurrentText(self,tstr): if (not self.taskmode) or (self.taskmode and self.isTaskOn): self.textValue.setText(tstr) - + def sendText(self): ''' this function sends the entered text to the active draft command diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index ddc66e528..5a36e70ff 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -317,16 +317,16 @@ class Snapper: "returns a 3D point, projected on the current working plane" view = Draft.get3DView() pt = view.getPoint(x,y) - if hasattr(FreeCAD,"DraftWorkingPlane"): - if view.getCameraType() == "Perspective": - camera = view.getCameraNode() - p = camera.getField("position").getValue() - dv = pt.sub(Vector(p[0],p[1],p[2])) - else: - dv = view.getViewDirection() - return FreeCAD.DraftWorkingPlane.projectPoint(pt,dv) - else: - return pt + if self.mask != "z": + if hasattr(FreeCAD,"DraftWorkingPlane"): + if view.getCameraType() == "Perspective": + camera = view.getCameraNode() + p = camera.getField("position").getValue() + dv = pt.sub(Vector(p[0],p[1],p[2])) + else: + dv = view.getViewDirection() + return FreeCAD.DraftWorkingPlane.projectPoint(pt,dv) + return pt def snapToExtensions(self,point,last,constrain,eline): "returns a point snapped to extension or parallel line to last object, if any" From afc84ed8f7053214900a4feed35704230f56089f Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 15 Aug 2012 10:24:49 +0200 Subject: [PATCH 52/98] Add measure distance tool to toolbar in Complete workbench, disable unused command --- src/Gui/CommandStd.cpp | 2 +- src/Mod/Complete/Gui/Workbench.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Gui/CommandStd.cpp b/src/Gui/CommandStd.cpp index dba6d5f71..4bb0148a2 100644 --- a/src/Gui/CommandStd.cpp +++ b/src/Gui/CommandStd.cpp @@ -576,7 +576,7 @@ void CreateStdCommands(void) rcCmdMgr.addCommand(new StdCmdOnlineHelpWebsite()); rcCmdMgr.addCommand(new StdCmdFreeCADWebsite()); rcCmdMgr.addCommand(new StdCmdPythonWebsite()); - rcCmdMgr.addCommand(new StdCmdMeasurementSimple()); + //rcCmdMgr.addCommand(new StdCmdMeasurementSimple()); //rcCmdMgr.addCommand(new StdCmdDownloadOnlineHelp()); //rcCmdMgr.addCommand(new StdCmdDescription()); } diff --git a/src/Mod/Complete/Gui/Workbench.cpp b/src/Mod/Complete/Gui/Workbench.cpp index 149f50ea5..d51928c2f 100644 --- a/src/Mod/Complete/Gui/Workbench.cpp +++ b/src/Mod/Complete/Gui/Workbench.cpp @@ -452,7 +452,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const view->setCommand("View"); *view << "Std_ViewFitAll" << "Separator" << "Std_ViewAxo" << "Separator" << "Std_ViewFront" << "Std_ViewRight" << "Std_ViewTop" << "Separator" << "Std_ViewRear" << "Std_ViewLeft" - << "Std_ViewBottom"; + << "Std_ViewBottom" << "Separator" << "Std_MeasureDistance"; // Part Design Gui::ToolBarItem* part_design = new Gui::ToolBarItem( root ); From 0d983553d9c1f074ce69f36acef7c9ba02c9a7fa Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 15 Aug 2012 13:18:19 +0200 Subject: [PATCH 53/98] Show popup menu on mouse button release to avoid problems with navigation style --- src/Gui/MouseSelection.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Gui/MouseSelection.cpp b/src/Gui/MouseSelection.cpp index 97262f601..a4733b545 100644 --- a/src/Gui/MouseSelection.cpp +++ b/src/Gui/MouseSelection.cpp @@ -345,11 +345,24 @@ int PolyPickerSelection::mouseButtonEvent( const SoMouseButtonEvent * const e, c m_iXnew = pos.x(); m_iYnew = pos.y(); m_iXold = pos.x(); m_iYold = pos.y(); } - + } break; + default: + { + } break; + } + } + // release + else { + switch (button) + { + case SoMouseButtonEvent::BUTTON2: + { QCursor cur = _pcView3D->getWidget()->cursor(); _pcView3D->getWidget()->setCursor(m_cPrevCursor); -// _pcView3D->getGLWidget()->releaseMouse(); + // The pop-up menu should be shown when releasing mouse button because + // otherwise the navigation style doesn't get the UP event and gets into + // an inconsistent state. int id = popupMenu(); if (id == Finish || id == Cancel) { releaseMouseModel(); From 7510657f2a219c57f59574ea3ab8ce4c3354fd3a Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 15 Aug 2012 13:20:28 +0200 Subject: [PATCH 54/98] Fix possible crash when exporting STEP files --- src/Mod/Part/App/TopoShape.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/App/TopoShape.cpp b/src/Mod/Part/App/TopoShape.cpp index d8a5a13e2..1d50d9b13 100644 --- a/src/Mod/Part/App/TopoShape.cpp +++ b/src/Mod/Part/App/TopoShape.cpp @@ -145,6 +145,7 @@ # include # include # include +# include # include #include @@ -696,7 +697,7 @@ void TopoShape::exportStep(const char *filename) const STEPControl_Writer aWriter; Handle_Message_ProgressIndicator pi = new ProgressIndicator(100); - aWriter.WS()->MapReader()->SetProgress(pi); + aWriter.WS()->MapWriter()->SetProgress(pi); pi->NewScope(100, "Writing STEP file..."); pi->Show(); From b5706a8ba2ba61e619fe67e29575ee2d490a7f56 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 15 Aug 2012 15:47:57 +0200 Subject: [PATCH 55/98] Trimming & cutting from python --- src/Base/Matrix.cpp | 10 +++++ src/Base/Matrix.h | 2 + src/Mod/Mesh/App/Mesh.cpp | 79 +++++++++++++++++++++++++++++++++- src/Mod/Mesh/App/Mesh.h | 7 ++- src/Mod/Mesh/App/MeshPy.xml | 18 ++++++++ src/Mod/Mesh/App/MeshPyImp.cpp | 42 +++++++++++++++++- 6 files changed, 154 insertions(+), 4 deletions(-) diff --git a/src/Base/Matrix.cpp b/src/Base/Matrix.cpp index ba936e13f..18072b6b0 100644 --- a/src/Base/Matrix.cpp +++ b/src/Base/Matrix.cpp @@ -587,6 +587,16 @@ void Matrix_invert (Matrix a, Matrix inva) Matrix_gauss(temp,inva); } +void Matrix4D::inverseOrthogonal(void) +{ + Base::Vector3d c(dMtrx4D[0][3],dMtrx4D[1][3],dMtrx4D[2][3]); + transpose(); + c = this->operator * (c); + dMtrx4D[0][3] = -c.x; dMtrx4D[3][0] = 0; + dMtrx4D[1][3] = -c.y; dMtrx4D[3][1] = 0; + dMtrx4D[2][3] = -c.z; dMtrx4D[3][2] = 0; +} + void Matrix4D::inverseGauss (void) { double matrix [16]; diff --git a/src/Base/Matrix.h b/src/Base/Matrix.h index 333ae860a..b6aa5349d 100644 --- a/src/Base/Matrix.h +++ b/src/Base/Matrix.h @@ -135,6 +135,8 @@ public: void transform (const Vector3f& rclVct, const Matrix4D& rclMtrx); void transform (const Vector3d& rclVct, const Matrix4D& rclMtrx); void inverse (void); + /// if matrix is orthogonal a special way of getting the inverse is used + void inverseOrthogonal(void); void inverseGauss (void); void transpose (void); //@} diff --git a/src/Mod/Mesh/App/Mesh.cpp b/src/Mod/Mesh/App/Mesh.cpp index dec5da73b..928c57edd 100644 --- a/src/Mod/Mesh/App/Mesh.cpp +++ b/src/Mod/Mesh/App/Mesh.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include "Core/Builder.h" #include "Core/MeshKernel.h" @@ -46,6 +47,8 @@ #include "Core/Degeneration.h" #include "Core/Segmentation.h" #include "Core/SetOperations.h" +#include "Core/Triangulation.h" +#include "Core/Trim.h" #include "Core/Visitor.h" #include "Mesh.h" @@ -812,6 +815,80 @@ void MeshObject::crossSections(const std::vector& planes, st } } +void MeshObject::cut(const std::vector& polygon, MeshObject::CutType type) +{ + MeshCore::FlatTriangulator tria; + tria.SetPolygon(polygon); + // this gives us the inverse matrix + Base::Matrix4D inv = tria.GetTransformToFitPlane(); + // compute the matrix for the coordinate transformation + Base::Matrix4D mat = inv; + mat.inverseOrthogonal(); + + std::vector poly = tria.ProjectToFitPlane(); + + Base::ViewProjMatrix proj(mat); + Base::Polygon2D polygon2d; + for (std::vector::const_iterator it = poly.begin(); it != poly.end(); ++it) + polygon2d.Add(Base::Vector2D(it->x, it->y)); + + MeshCore::MeshAlgorithm meshAlg(this->_kernel); + std::vector check; + + bool inner; + switch (type) { + case INNER: + inner = true; + break; + case OUTER: + inner = false; + break; + } + + MeshCore::MeshFacetGrid meshGrid(this->_kernel); + meshAlg.CheckFacets(meshGrid, &proj, polygon2d, inner, check); + if (!check.empty()) + this->deleteFacets(check); +} + +void MeshObject::trim(const std::vector& polygon, MeshObject::CutType type) +{ + MeshCore::FlatTriangulator tria; + tria.SetPolygon(polygon); + // this gives us the inverse matrix + Base::Matrix4D inv = tria.GetTransformToFitPlane(); + // compute the matrix for the coordinate transformation + Base::Matrix4D mat = inv; + mat.inverseOrthogonal(); + + std::vector poly = tria.ProjectToFitPlane(); + + Base::ViewProjMatrix proj(mat); + Base::Polygon2D polygon2d; + for (std::vector::const_iterator it = poly.begin(); it != poly.end(); ++it) + polygon2d.Add(Base::Vector2D(it->x, it->y)); + MeshCore::MeshTrimming trim(this->_kernel, &proj, polygon2d); + std::vector check; + std::vector triangle; + + switch (type) { + case INNER: + trim.SetInnerOrOuter(MeshCore::MeshTrimming::INNER); + break; + case OUTER: + trim.SetInnerOrOuter(MeshCore::MeshTrimming::OUTER); + break; + } + + MeshCore::MeshFacetGrid meshGrid(this->_kernel); + trim.CheckFacets(meshGrid, check); + trim.TrimFacets(check, triangle); + if (!check.empty()) + this->deleteFacets(check); + if (!triangle.empty()) + this->_kernel.AddFacets(triangle); +} + MeshObject* MeshObject::unite(const MeshObject& mesh) const { MeshCore::MeshKernel result; @@ -1423,7 +1500,7 @@ MeshObject* MeshObject::meshFromSegment(const std::vector& indice return new MeshObject(kernel, _Mtrx); } -std::vector MeshObject::getSegmentsFromType(MeshObject::Type type, const Segment& aSegment, +std::vector MeshObject::getSegmentsFromType(MeshObject::GeometryType type, const Segment& aSegment, float dev, unsigned long minFacets) const { std::vector segm; diff --git a/src/Mod/Mesh/App/Mesh.h b/src/Mod/Mesh/App/Mesh.h index 3d884517f..441db4de3 100644 --- a/src/Mod/Mesh/App/Mesh.h +++ b/src/Mod/Mesh/App/Mesh.h @@ -66,7 +66,8 @@ class MeshExport MeshObject : public Data::ComplexGeoData TYPESYSTEM_HEADER(); public: - enum Type {PLANE, CYLINDER, SPHERE}; + enum GeometryType {PLANE, CYLINDER, SPHERE}; + enum CutType {INNER, OUTER}; // typedef needed for cross-section typedef std::pair TPlane; @@ -198,6 +199,8 @@ public: Base::Vector3d getPointNormal(unsigned long) const; void crossSections(const std::vector&, std::vector §ions, float fMinEps = 1.0e-2f, bool bConnectPolygons = false) const; + void cut(const std::vector& polygon, CutType); + void trim(const std::vector& polygon, CutType); //@} /** @name Selection */ @@ -266,7 +269,7 @@ public: const Segment& getSegment(unsigned long) const; Segment& getSegment(unsigned long); MeshObject* meshFromSegment(const std::vector&) const; - std::vector getSegmentsFromType(Type, const Segment& aSegment, float dev, unsigned long minFacets) const; + std::vector getSegmentsFromType(GeometryType, const Segment& aSegment, float dev, unsigned long minFacets) const; //@} /** @name Primitives */ diff --git a/src/Mod/Mesh/App/MeshPy.xml b/src/Mod/Mesh/App/MeshPy.xml index 116979807..d8dc7c78e 100644 --- a/src/Mod/Mesh/App/MeshPy.xml +++ b/src/Mod/Mesh/App/MeshPy.xml @@ -327,6 +327,24 @@ for c in mesh.getSeparatecomponents(): Get a list of facet indices and intersection points + + + Cuts the mesh with a given closed polygon +cut(list, int) -> None +The argument list is an array of points, a polygon +The argument int is the mode: 0=inner, 1=outer + + + + + + Trims the mesh with a given closed polygon +trim(list, int) -> None +The argument list is an array of points, a polygon +The argument int is the mode: 0=inner, 1=outer + + + diff --git a/src/Mod/Mesh/App/MeshPyImp.cpp b/src/Mod/Mesh/App/MeshPyImp.cpp index a2a1e6302..6d7c542f4 100644 --- a/src/Mod/Mesh/App/MeshPyImp.cpp +++ b/src/Mod/Mesh/App/MeshPyImp.cpp @@ -35,12 +35,12 @@ #include "MeshPy.cpp" #include "MeshProperties.h" #include "Core/Algorithm.h" +#include "Core/Triangulation.h" #include "Core/Iterator.h" #include "Core/Degeneration.h" #include "Core/Elements.h" #include "Core/Grid.h" #include "Core/MeshKernel.h" -#include "Core/Triangulation.h" #include "Core/Segmentation.h" #include "Core/Curvature.h" @@ -1280,6 +1280,46 @@ PyObject* MeshPy::foraminate(PyObject *args) } } +PyObject* MeshPy::cut(PyObject *args) +{ + PyObject* poly; + int mode; + if (!PyArg_ParseTuple(args, "O!i", &PyList_Type, &poly, &mode)) + return NULL; + + Py::List list(poly); + std::vector polygon; + polygon.reserve(list.size()); + for (Py::List::iterator it = list.begin(); it != list.end(); ++it) { + Base::Vector3d pnt = Py::Vector(*it).toVector(); + polygon.push_back(Base::convertTo(pnt)); + } + + getMeshObjectPtr()->cut(polygon, MeshObject::CutType(mode)); + + Py_Return; +} + +PyObject* MeshPy::trim(PyObject *args) +{ + PyObject* poly; + int mode; + if (!PyArg_ParseTuple(args, "O!i", &PyList_Type, &poly, &mode)) + return NULL; + + Py::List list(poly); + std::vector polygon; + polygon.reserve(list.size()); + for (Py::List::iterator it = list.begin(); it != list.end(); ++it) { + Base::Vector3d pnt = Py::Vector(*it).toVector(); + polygon.push_back(Base::convertTo(pnt)); + } + + getMeshObjectPtr()->trim(polygon, MeshObject::CutType(mode)); + + Py_Return; +} + PyObject* MeshPy::smooth(PyObject *args) { int iter=1; From e4e997fd12c1babd4bdeee474becf6584c4057b5 Mon Sep 17 00:00:00 2001 From: jriegel Date: Wed, 15 Aug 2012 16:40:03 +0200 Subject: [PATCH 56/98] extend boost fix for newer boost versions --- src/App/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App/Application.cpp b/src/App/Application.cpp index e6a399926..948748fcc 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -1339,7 +1339,7 @@ void Application::LoadParameters(void) // fix weird error while linking boost (all versions of VC) // VS2010: https://sourceforge.net/apps/phpbb/free-cad/viewtopic.php?f=4&t=1886&p=12553&hilit=boost%3A%3Afilesystem%3A%3Aget#p12553 namespace boost { namespace program_options { std::string arg="arg"; } } -#if (defined (BOOST_VERSION) && (BOOST_VERSION == 104100)) +#if (defined (BOOST_VERSION) && (BOOST_VERSION >= 104100)) namespace boost { namespace program_options { const unsigned options_description::m_default_line_length = 80; } } From c2955998282fa63acab0d513e4a70382105ae236 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 15 Aug 2012 12:20:19 -0300 Subject: [PATCH 57/98] Arch: small optimizations --- src/Mod/Arch/ArchSectionPlane.py | 86 ++++++++++++++++++-------------- src/Mod/Arch/ArchStructure.py | 17 ++++--- src/Mod/Arch/ArchWall.py | 76 ++++++++++++++-------------- 3 files changed, 97 insertions(+), 82 deletions(-) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 8dbb779ab..5f9be09d5 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -199,6 +199,7 @@ class _ArchDrawingView: def onChanged(self, obj, prop): if prop in ["Source","RenderingMode"]: + self.buildSVG(obj) obj.ViewResult = self.updateSVG(obj) def __getstate__(self): @@ -221,7 +222,7 @@ class _ArchDrawingView: [V0,V1,H0,H1] = Drawing.project(self.baseshape,self.direction) return V0.Edges+V1.Edges else: - print "No shape has been computed yet" + print "No shape has been computed yet, use wireframe rendering and re-render" return None def getDXF(self): @@ -232,24 +233,20 @@ class _ArchDrawingView: DxfOutput = Drawing.projectToDXF(self.baseshape,self.direction) return DxfOutput else: - print "No shape has been computed yet" + print "No shape has been computed yet, use wireframe rendering and re-render" return None - def updateSVG(self, obj,join=False): - "encapsulates a svg fragment into a transformation node" + def buildSVG(self, obj,join=False): + "creates a svg representation" import Part, DraftGeomUtils if hasattr(obj,"Source"): if obj.Source: if obj.Source.Objects: objs = Draft.getGroupContents(obj.Source.Objects) objs = Draft.removeHidden(objs) - svg = '' - - st = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("CutLineThickness") - if not st: st = 2 + self.svg = '' # generating SVG - linewidth = obj.LineWidth/obj.Scale if obj.RenderingMode == "Solid": # render using the Arch Vector Renderer import ArchVRM @@ -257,10 +254,10 @@ class _ArchDrawingView: render.setWorkingPlane(obj.Source.Placement) render.addObjects(Draft.getGroupContents(objs,walls=True)) render.cut(obj.Source.Shape,obj.ShowCut) - svg += render.getViewSVG(linewidth=linewidth) - svg += render.getSectionSVG(linewidth=linewidth*st) + self.svg += render.getViewSVG(linewidth="LWPlaceholder") + self.svg += render.getSectionSVG(linewidth="SWPLaceholder") if obj.ShowCut: - svg += render.getHiddenSVG(linewidth=linewidth) + self.svg += render.getHiddenSVG(linewidth="LWPlaceholder") # print render.info() else: @@ -282,6 +279,8 @@ class _ArchDrawingView: nsh = [] for sh in shapes: for sol in sh.Solids: + if sol.Volume < 0: + sol.reverse() c = sol.cut(cutvolume) s = sol.section(cutface) nsh.extend(c.Solids) @@ -294,20 +293,20 @@ class _ArchDrawingView: self.shapes = shapes self.baseshape = Part.makeCompound(shapes) svgf = Drawing.projectToSVG(self.baseshape,self.direction) - if svgf: - svgf = svgf.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') - svgf = svgf.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') - svgf = svgf.replace('stroke-width:0.01','stroke-width:' + str(linewidth) + 'px') - svg += svgf + if svgf: + svgf = svgf.replace('stroke-width="0.35"','stroke-width="LWPlaceholder"') + svgf = svgf.replace('stroke-width="1"','stroke-width="LWPlaceholder"') + svgf = svgf.replace('stroke-width:0.01','stroke-width:LWPlaceholder') + self.svg += svgf if hshapes: hshapes = Part.makeCompound(hshapes) svgh = Drawing.projectToSVG(hshapes,self.direction) if svgh: - svgh = svgh.replace('stroke-width="0.35"','stroke-width="' + str(linewidth) + 'px"') - svgh = svgh.replace('stroke-width="1"','stroke-width="' + str(linewidth) + 'px"') - svgh = svgh.replace('stroke-width:0.01','stroke-width:' + str(linewidth) + 'px') + svgh = svgh.replace('stroke-width="0.35"','stroke-width="LWPlaceholder"') + svgh = svgh.replace('stroke-width="1"','stroke-width="LWPlaceholder"') + svgh = svgh.replace('stroke-width:0.01','stroke-width:LWPlaceholder') svgh = svgh.replace('fill="none"','fill="none"\nstroke-dasharray="0.09,0.05"') - svg += svgh + self.svg += svgh if sshapes: edges = [] for s in sshapes: @@ -320,22 +319,35 @@ class _ArchDrawingView: sshapes = Part.makeCompound(faces) svgs = Drawing.projectToSVG(sshapes,self.direction) if svgs: - svgs = svgs.replace('stroke-width="0.35"','stroke-width="' + str(linewidth*st) + 'px"') - svgs = svgs.replace('stroke-width="1"','stroke-width="' + str(linewidth*st) + 'px"') - svgs = svgs.replace('stroke-width:0.01','stroke-width:' + str(linewidth*st) + 'px') - svg += svgs + svgs = svgs.replace('stroke-width="0.35"','stroke-width="SWPlaceholder"') + svgs = svgs.replace('stroke-width="1"','stroke-width="SWPlaceholder"') + svgs = svgs.replace('stroke-width:0.01','stroke-width:SWPlaceholder') + self.svg += svgs - result = '' - result += ' Date: Wed, 15 Aug 2012 18:39:53 -0300 Subject: [PATCH 58/98] Arch: Fixed strings to be translated --- src/Mod/Arch/ArchCommands.py | 22 ++++++++++------------ src/Mod/Arch/ArchComponent.py | 3 ++- src/Mod/Arch/ArchSectionPlane.py | 6 +++--- src/Mod/Arch/ArchWall.py | 2 +- src/Mod/Arch/ArchWindow.py | 6 +----- src/Mod/Arch/importDAE.py | 7 ++++--- src/Mod/Arch/importIFC.py | 7 ++++--- src/Mod/Arch/importOBJ.py | 3 ++- src/Mod/Draft/Draft.py | 9 ++++++++- 9 files changed, 35 insertions(+), 30 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index 44dd537c2..1268dd89f 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -111,9 +111,7 @@ def removeComponents(objectsList,host=None): if Draft.getType(host) in ["Wall","Structure"]: if hasattr(host,"Axes"): a = host.Axes - print a for o in objectsList[:]: - print o.Name if o in a: a.remove(o) objectsList.remove(o) @@ -127,10 +125,10 @@ def removeComponents(objectsList,host=None): if o.Base.Support: if isinstance(o.Base.Support,tuple): if o.Base.Support[0].Name == host.Name: - print "removing sketch support to avoid cross-referencing" + FreeCAD.Console.PrintMessage(str(translate("Arch","removing sketch support to avoid cross-referencing"))) o.Base.Support = None elif o.Base.Support.Name == host.Name: - print "removing sketch support to avoid cross-referencing" + FreeCAD.Console.PrintMessage(str(translate("Arch","removing sketch support to avoid cross-referencing"))) o.Base.Support = None host.Subtractions = s else: @@ -293,7 +291,7 @@ def getCutVolume(cutplane,shapes): u = placement.Rotation.multVec(FreeCAD.Vector(1,0,0)) v = placement.Rotation.multVec(FreeCAD.Vector(0,1,0)) if not bb.isCutPlane(placement.Base,ax): - print "No objects are cut by the plane" + FreeCAD.Console.PrintMessage(str(translate("Arch","No objects are cut by the plane"))) return None,None,None else: corners = [FreeCAD.Vector(bb.XMin,bb.YMin,bb.ZMin), @@ -475,19 +473,19 @@ def check(objectslist,includehidden=False): else: s = o.Shape if (not s.isClosed()) and (not (Draft.getType(o) == "Axis")): - bad.append([o,"is not closed"]) + bad.append([o,str(translate("Arch","is not closed"))]) elif not s.isValid(): - bad.append([o,"is not valid"]) + bad.append([o,str(translate("Arch","is not valid"))]) elif (not s.Solids) and (not (Draft.getType(o) == "Axis")): - bad.append([o,"doesn't contain any solid"]) + bad.append([o,str(translate("Arch","doesn't contain any solid"))]) else: f = 0 for sol in s.Solids: f += len(sol.Faces) if not sol.isClosed(): - bad.append([o,"contains a non-closed solid"]) + bad.append([o,str(translate("Arch","contains a non-closed solid"))]) if len(s.Faces) != f: - bad.append([o,"contains faces that are not part of any solid"]) + bad.append([o,str(translate("Arch","contains faces that are not part of any solid"))]) return bad @@ -589,7 +587,7 @@ class _CommandMeshToShape: def GetResources(self): return {'Pixmap' : 'Arch_MeshToShape', 'MenuText': QtCore.QT_TRANSLATE_NOOP("Arch_MeshToShape","Mesh to Shape"), - 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Arch_MeshToPart","Turns selected meshes into Part Shape objects")} + 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Arch_MeshToShape","Turns selected meshes into Part Shape objects")} def IsActive(self): if FreeCADGui.Selection.getSelection(): @@ -694,7 +692,7 @@ class _CommandCheck: def Activated(self): result = check(FreeCADGui.Selection.getSelection()) if not result: - FreeCAD.Console.PrintMessage("All good! no problems found") + FreeCAD.Console.PrintMessage(str(translate("Arch","All good! no problems found"))) else: FreeCADGui.Selection.clearSelection() for i in result: diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py index b97d022ed..a2646dcc0 100644 --- a/src/Mod/Arch/ArchComponent.py +++ b/src/Mod/Arch/ArchComponent.py @@ -27,6 +27,7 @@ __url__ = "http://free-cad.sourceforge.net" import FreeCAD,FreeCADGui from PyQt4 import QtGui,QtCore +from DraftTools import translate def addToComponent(compobject,addobject,mod=None): '''addToComponent(compobject,addobject,mod): adds addobject @@ -317,7 +318,7 @@ class ArchSelectionObserver: def addSelection(self,document, object, element, position): if object == self.watched.Name: if not element: - print "closing Sketch edit" + FreeCAD.Console.PrintMessage(str(translate("Arch","closing Sketch edit"))) if self.hide: self.origin.ViewObject.Transparency = 0 self.origin.ViewObject.Selectable = True diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 5f9be09d5..96f55f982 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -222,7 +222,7 @@ class _ArchDrawingView: [V0,V1,H0,H1] = Drawing.project(self.baseshape,self.direction) return V0.Edges+V1.Edges else: - print "No shape has been computed yet, use wireframe rendering and re-render" + FreeCAD.Console.PrintMessage(str(translate("Arch","No shape has been computed yet, select wireframe rendering and render again"))) return None def getDXF(self): @@ -233,7 +233,7 @@ class _ArchDrawingView: DxfOutput = Drawing.projectToDXF(self.baseshape,self.direction) return DxfOutput else: - print "No shape has been computed yet, use wireframe rendering and re-render" + FreeCAD.Console.PrintMessage(str(translate("Arch","No shape has been computed yet, select wireframe rendering and render again"))) return None def buildSVG(self, obj,join=False): @@ -273,7 +273,7 @@ class _ArchDrawingView: if o.Shape.isValid(): shapes.extend(o.Shape.Solids) else: - FreeCAD.Console.PrintWarning("Skipping invalid object: "+o.Name) + FreeCAD.Console.PrintWarning(str(translate("Arch","Skipping invalid object: "))+o.Name) cutface,cutvolume,invcutvolume = ArchCommands.getCutVolume(obj.Source.Shape.copy(),shapes) if cutvolume: nsh = [] diff --git a/src/Mod/Arch/ArchWall.py b/src/Mod/Arch/ArchWall.py index 8d1258e26..d39e1c1df 100644 --- a/src/Mod/Arch/ArchWall.py +++ b/src/Mod/Arch/ArchWall.py @@ -390,7 +390,7 @@ class _Wall(ArchComponent.Component): if sh.isClosed() and sh.isValid() and sh.Solids and (not sh.isNull()): base = sh else: - FreeCAD.Console.PrintWarning("This mesh is an invalid solid") + FreeCAD.Console.PrintWarning(str(translate("Arch","This mesh is an invalid solid"))) obj.Base.ViewObject.show() if base: diff --git a/src/Mod/Arch/ArchWindow.py b/src/Mod/Arch/ArchWindow.py index 5a78ce627..36051685e 100644 --- a/src/Mod/Arch/ArchWindow.py +++ b/src/Mod/Arch/ArchWindow.py @@ -161,7 +161,6 @@ class _Window(ArchComponent.Component): if zof: zov = DraftVecUtils.scaleTo(norm,zof) shape.translate(zov) - print shape shapes.append(shape) if shapes: obj.Shape = Part.makeCompound(shapes) @@ -440,10 +439,7 @@ class _ArchWindowTaskPanel: self.obj.WindowParts = parts self.update() else: - FreeCAD.Console.PrintWarning(str( - QtGui.QApplication.translate( - "Arch", "Unable to create component", - None, QtGui.QApplication.UnicodeUTF8))) + FreeCAD.Console.PrintWarning(str(translate("Arch", "Unable to create component"))) self.newtitle.setVisible(False) self.new1.setVisible(False) diff --git a/src/Mod/Arch/importDAE.py b/src/Mod/Arch/importDAE.py index 123adadae..408dccce0 100644 --- a/src/Mod/Arch/importDAE.py +++ b/src/Mod/Arch/importDAE.py @@ -22,6 +22,7 @@ #*************************************************************************** import FreeCAD, Mesh, os, numpy +from DraftTools import translate __title__="FreeCAD Collada importer" __author__ = "Yorik van Havre" @@ -36,7 +37,7 @@ def checkCollada(): try: import collada except: - FreeCAD.Console.PrintError("pycollada not found, no collada support.\n") + FreeCAD.Console.PrintError(str(translate("Arch","pycollada not found, no collada support.\n"))) return False else: return True @@ -70,7 +71,7 @@ def decode(name): try: decodedName = (name.decode("latin1")) except UnicodeDecodeError: - print "ifc: error: couldn't determine character encoding" + FreeCAD.Console.PrintError(str(translate("Arch","Error: Couldn't determine character encoding"))) decodedName = name return decodedName @@ -148,4 +149,4 @@ def export(exportList,filename): colmesh.scenes.append(myscene) colmesh.scene = myscene colmesh.write(filename) - print "file ",filename," successfully created." + FreeCAD.Console.PrintMessage(str(translate("Arch","file %s successfully created.")) % filename) diff --git a/src/Mod/Arch/importIFC.py b/src/Mod/Arch/importIFC.py index 17dc3d166..f99a3df30 100644 --- a/src/Mod/Arch/importIFC.py +++ b/src/Mod/Arch/importIFC.py @@ -22,6 +22,7 @@ #*************************************************************************** import ifcReader, FreeCAD, Arch, Draft, os, sys, time, Part, DraftVecUtils +from DraftTools import translate __title__="FreeCAD IFC importer" __author__ = "Yorik van Havre" @@ -79,7 +80,7 @@ def decode(name): try: decodedName = (name.decode("latin1")) except UnicodeDecodeError: - print "ifc: error: couldn't determine character encoding" + FreeCAD.Console.PrintError(str(translate("Arch", "Error: Couldn't determine character encoding\n"))) decodedName = name return decodedName @@ -101,7 +102,7 @@ def getIfcOpenShell(): global IfcImport import IfcImport except: - print "Couldn't import IfcOpenShell" + FreeCAD.Console.PrintMessage(str(translate("Arch","Couldn't locate IfcOpenShell\n"))) return False else: return True @@ -117,7 +118,7 @@ def read(filename): if DEBUG: print "opening",filename,"..." ifc = ifcReader.IfcDocument(filename,schema=schema,debug=DEBUG) else: - FreeCAD.Console.PrintWarning("IFC Schema not found, IFC import disabled.\n") + FreeCAD.Console.PrintWarning(str(translate("Arch","IFC Schema not found, IFC import disabled.\n"))) return None t2 = time.time() if DEBUG: print "Successfully loaded",ifc,"in %s s" % ((t2-t1)) diff --git a/src/Mod/Arch/importOBJ.py b/src/Mod/Arch/importOBJ.py index f947afbcd..1042d1425 100644 --- a/src/Mod/Arch/importOBJ.py +++ b/src/Mod/Arch/importOBJ.py @@ -22,6 +22,7 @@ #*************************************************************************** import FreeCAD, DraftGeomUtils, Part, Draft +from DraftTools import translate p = Draft.precision() @@ -91,7 +92,7 @@ def export(exportList,filename): for f in flist: outfile.write("f" + f + "\n") outfile.close() - FreeCAD.Console.PrintMessage("successfully written "+filename) + FreeCAD.Console.PrintMessage(str(translate("Arch","successfully written "))+filename) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 337d49756..4843a1863 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -74,7 +74,6 @@ How it works / how to extend: # import FreeCAD modules import FreeCAD, math, sys, os, DraftVecUtils, Draft_rc from FreeCAD import Vector -from pivy import coin if FreeCAD.GuiUp: import FreeCADGui, WorkingPlane @@ -220,6 +219,7 @@ def ungroup(obj): def dimSymbol(): "returns the current dim symbol from the preferences as a pivy SoMarkerSet" s = getParam("dimsymbol") + from pivy import coin marker = coin.SoMarkerSet() if s == 0: marker.markerIndex = coin.SoMarkerSet.CIRCLE_FILLED_5_5 elif s == 1: marker.markerIndex = coin.SoMarkerSet.CIRCLE_FILLED_7_7 @@ -1816,6 +1816,7 @@ class _ViewProviderDimension: def calcGeom(self,obj): import Part, DraftGeomUtils + from pivy import coin p1 = obj.Start p4 = obj.End base = Part.Line(p1,p4).toShape() @@ -1866,6 +1867,7 @@ class _ViewProviderDimension: return p1,p2,p3,p4,tbase,norm,rot def attach(self, obj): + from pivy import coin self.Object = obj.Object p1,p2,p3,p4,tbase,norm,rot = self.calcGeom(obj.Object) self.color = coin.SoBaseColor() @@ -1932,6 +1934,7 @@ class _ViewProviderDimension: self.onChanged(obj,"FontName") def updateData(self, obj, prop): + from pivy import coin try: dm = obj.ViewObject.DisplayMode except: @@ -2122,6 +2125,7 @@ class _ViewProviderAngularDimension: obj.Override = '' def attach(self, vobj): + from pivy import coin self.Object = vobj.Object self.arc = None c,tbase,trot,p2,p3 = self.calcGeom(vobj.Object) @@ -2202,6 +2206,7 @@ class _ViewProviderAngularDimension: return cir, tbase, trot, cir.Vertexes[0].Point, cir.Vertexes[-1].Point def updateData(self, obj, prop): + from pivy import coin text = None ivob = None c,tbase,trot,p2,p3 = self.calcGeom(obj) @@ -2492,6 +2497,7 @@ class _ViewProviderWire(_ViewProviderDraft): "Displays a dim symbol at the end of the wire") def attach(self, obj): + from pivy import coin self.Object = obj.Object col = coin.SoBaseColor() col.rgb.setValue(obj.LineColor[0], @@ -2646,6 +2652,7 @@ class _BSpline: class _ViewProviderBSpline(_ViewProviderDraft): "A View Provider for the BSPline object" def __init__(self, obj): + from pivy import coin _ViewProviderDraft.__init__(self,obj) obj.addProperty("App::PropertyBool","EndArrow", "Base","Displays a dim symbol at the end of the wire") From 0d475b6fe04d614fb097a61843b1da30cc1881e3 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 16 Aug 2012 12:24:45 -0300 Subject: [PATCH 59/98] Misc polishes to Arch and Draft + The Draft Drawing tool can make additional views of SectionPlanes + Draft Dimensions have a readonly "Distance" property that show the length + The Draft WB can be completely switched off (since all tools are also in Arch) --- src/Mod/Arch/ArchSectionPlane.py | 17 +- src/Mod/Draft/Draft.py | 33 +- src/Mod/Draft/Draft_rc.py | 627 ++++++++++--------- src/Mod/Draft/InitGui.py | 4 +- src/Mod/Draft/Resources/ui/userprefs-base.ui | 19 + 5 files changed, 372 insertions(+), 328 deletions(-) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 96f55f982..d9eecb8e5 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -253,11 +253,15 @@ class _ArchDrawingView: render = ArchVRM.Renderer() render.setWorkingPlane(obj.Source.Placement) render.addObjects(Draft.getGroupContents(objs,walls=True)) - render.cut(obj.Source.Shape,obj.ShowCut) + if hasattr(obj,"ShowCut"): + render.cut(obj.Source.Shape,obj.ShowCut) + else: + render.cut(obj.Source.Shape) self.svg += render.getViewSVG(linewidth="LWPlaceholder") self.svg += render.getSectionSVG(linewidth="SWPLaceholder") - if obj.ShowCut: - self.svg += render.getHiddenSVG(linewidth="LWPlaceholder") + if hasattr(obj,"ShowCut"): + if obj.ShowCut: + self.svg += render.getHiddenSVG(linewidth="LWPlaceholder") # print render.info() else: @@ -285,9 +289,10 @@ class _ArchDrawingView: s = sol.section(cutface) nsh.extend(c.Solids) sshapes.append(s) - if obj.ShowCut: - c = sol.cut(invcutvolume) - hshapes.append(c) + if hasattr(obj,"ShowCut"): + if obj.ShowCut: + c = sol.cut(invcutvolume) + hshapes.append(c) shapes = nsh if shapes: self.shapes = shapes diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 4843a1863..909aaf916 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1510,15 +1510,23 @@ def makeDrawingView(obj,page,lwmod=None,tmod=None): given page. lwmod modifies lineweights (in percent), tmod modifies text heights (in percent). The Hint scale, X and Y of the page are used. ''' - viewobj = FreeCAD.ActiveDocument.addObject("Drawing::FeatureViewPython","View"+obj.Name) - _DrawingView(viewobj) - page.addObject(viewobj) - viewobj.Scale = page.ViewObject.HintScale - viewobj.X = page.ViewObject.HintOffsetX - viewobj.Y = page.ViewObject.HintOffsetY - viewobj.Source = obj - if lwmod: viewobj.LineweightModifier = lwmod - if tmod: viewobj.TextModifier = tmod + if getType(obj) == "SectionPlane": + import ArchSectionPlane + viewobj = FreeCAD.ActiveDocument.addObject("Drawing::FeatureViewPython","View") + page.addObject(viewobj) + ArchSectionPlane._ArchDrawingView(viewobj) + viewobj.Source = obj + viewobj.Label = "View of "+obj.Name + else: + viewobj = FreeCAD.ActiveDocument.addObject("Drawing::FeatureViewPython","View"+obj.Name) + _DrawingView(viewobj) + page.addObject(viewobj) + viewobj.Scale = page.ViewObject.HintScale + viewobj.X = page.ViewObject.HintOffsetX + viewobj.Y = page.ViewObject.HintOffsetY + viewobj.Source = obj + if lwmod: viewobj.LineweightModifier = lwmod + if tmod: viewobj.TextModifier = tmod return viewobj def makeShape2DView(baseobj,projectionVector=None): @@ -1785,6 +1793,7 @@ class _Dimension: "The base object this dimension is linked to") obj.addProperty("App::PropertyIntegerList","LinkedVertices","Base", "The indices of the vertices from the base object to measure") + obj.addProperty("App::PropertyLength","Distance","Base","The measurement of this dimension") obj.Start = FreeCAD.Vector(0,0,0) obj.End = FreeCAD.Vector(1,0,0) obj.Dimline = FreeCAD.Vector(0,1,0) @@ -1792,7 +1801,7 @@ class _Dimension: self.Type = "Dimension" def onChanged(self, obj, prop): - pass + obj.setEditorMode('Distance',1) def execute(self, obj): if obj.ViewObject: @@ -1992,6 +2001,10 @@ class _ViewProviderDimension: self.line.numVertices.setValues([3,3]) self.coord1.point.setValue((p2.x,p2.y,p2.z)) self.coord2.point.setValue((p3.x,p3.y,p3.z)) + if hasattr(obj,"Distance"): + l = p3.sub(p2).Length + if round(obj.Distance,precision()) != round(l,precision()): + obj.Distance = l def onChanged(self, vp, prop): self.Object = vp.Object diff --git a/src/Mod/Draft/Draft_rc.py b/src/Mod/Draft/Draft_rc.py index 4028d367e..770792e39 100644 --- a/src/Mod/Draft/Draft_rc.py +++ b/src/Mod/Draft/Draft_rc.py @@ -2,8 +2,8 @@ # Resource object code # -# Created: Wed Jun 6 16:21:23 2012 -# by: The Resource Compiler for PyQt (Qt v4.8.1) +# Created: Thu Aug 16 12:22:58 2012 +# by: The Resource Compiler for PyQt (Qt v4.8.2) # # WARNING! All changes made in this file will be lost! @@ -26767,263 +26767,268 @@ qt_resource_data = "\ \x33\x2e\x72\x9f\xc2\xcc\xa8\x77\x7d\x66\xc6\x1b\xcc\xef\xf2\x48\ \xa6\x8c\x0e\x28\xa3\x2d\x9e\x88\x63\x66\x74\x00\x9f\x1b\xd5\x84\ \x37\x0f\xfe\x01\xbd\x89\x17\xfc\ -\x00\x00\x0f\xe1\ +\x00\x00\x10\x37\ \x00\ -\x00\xa3\x4a\x78\x9c\xed\x1d\x6b\x6f\xdb\x38\xf2\x7b\x7e\x05\x91\ -\x0f\x45\x0f\xc8\xc6\xb1\xf3\x6e\x1d\x2f\xda\xf4\x09\x74\x77\xbb\ -\x75\xda\xde\xde\x97\x05\x2d\xd1\x36\xaf\xb2\xe8\x8a\x74\x12\x2f\ -\xee\xc7\xdf\x0c\x49\x59\x8f\xc8\x72\x64\x59\x96\xdd\xba\x28\x10\ -\x89\xa4\xc8\xe1\x70\x5e\x9c\x19\xd2\xed\x5f\xef\x47\x1e\xb9\x65\ -\x81\xe4\xc2\xbf\xda\x6f\x1e\x1e\xed\x13\xe6\x3b\xc2\xe5\xfe\xe0\ -\x6a\xff\xf3\xcd\x9b\x5f\x2e\xf6\x7f\xed\xec\xb5\x27\x3c\x6a\x74\ -\x02\x8d\x3a\x7b\xa4\xed\x78\x54\xca\xce\xdb\x09\x7f\xf6\xec\x15\ -\xa7\x9e\x18\xc0\x5f\x6f\xd0\x65\x4a\xc1\xc7\xf2\x55\x40\xfb\xaa\ -\xdd\x30\x8d\xa0\xf5\x1d\x77\x07\x4c\x11\xfd\x7e\xb5\xff\xe7\x57\ -\xfd\xba\x4f\x7c\x3a\x62\x57\xfb\xb9\x9d\xe0\x60\xa4\x3d\x0e\xc4\ -\x98\x05\x6a\x6a\xbf\x18\x30\x31\x62\x2a\x98\xea\x4a\xd2\x0e\x98\ -\xa3\xf4\x13\x69\xdf\x77\x8e\xda\x8d\x7b\xfb\x32\xc5\x97\xa9\x7d\ -\x01\x10\xd4\xb0\x73\x7a\x09\x45\xe6\xd1\x14\x0f\x19\x1f\x0c\x55\ -\xe7\xec\xb8\xd5\x6e\xd8\x67\xdd\x67\x23\xec\xb4\xdd\x08\x07\xcf\ -\x82\xe4\x8e\xfb\xae\xb8\xbb\xe1\xca\x63\x16\x18\xa9\x02\x00\xbe\ -\xf3\x96\xf9\x2c\xa0\x1e\x91\x76\x32\xed\x86\xad\x78\xd8\xa5\x47\ -\xa7\x62\x12\x21\xe7\xcb\x4b\x71\xff\x41\x17\xd9\x1e\x53\x43\xca\ -\x31\x75\xa0\xa3\x7d\x3b\x01\x7f\x32\xea\xb1\xa0\x73\xd6\x6e\xd8\ -\x27\x03\x7e\x7c\x84\x07\x5d\x8c\x68\x30\xe0\x7e\xaa\x87\xcb\xdc\ -\x1e\xb8\x62\xa3\x08\x93\xf1\xc5\x7c\x1b\x88\xc9\x18\x60\x0e\x97\ -\x73\x10\xbe\x9b\xe6\x0f\x06\x57\x11\xb2\x32\xf0\xa5\x17\x9d\x74\ -\x33\xb0\xf6\x10\xa8\x5c\xdc\xd9\xd1\x80\x70\x15\x77\xa8\x67\x4a\ -\xff\x6e\x45\x03\x47\x33\xca\xe8\xe8\xdd\x83\x8e\x86\x22\xe0\xff\ -\x08\x5f\xcd\xba\x6a\x5e\xce\xfa\x4a\xf7\xf6\x10\x49\x1f\x68\x8f\ -\x79\x61\x57\x1e\xbe\x24\xbf\xcf\x40\x13\xbb\x57\x89\x06\x33\x54\ -\x19\x14\x71\x5f\xb1\xa0\x4f\x1d\x46\x46\xc2\x65\x29\x44\x65\x63\ -\xcb\x14\x1a\xc8\x62\xa0\x37\x92\xb0\x2f\x98\x8a\xe6\xd6\x8f\x01\ -\xeb\x5f\x8b\x51\x4f\xc4\xd7\x1d\x2b\xc6\x50\xe1\x60\x45\x4f\xdc\ -\xff\x7d\x92\x3f\x41\x21\xbc\x1b\x3e\xce\x9e\xe3\xcd\x90\x4b\x02\ -\xff\xd5\x90\x91\xcf\xef\xf5\x14\x61\xc6\xe4\x6e\xc8\x9d\xa1\x2e\ -\x34\x48\x80\xf2\x89\xc7\xc8\x1d\xf7\x3c\x72\x27\x82\x6f\xcf\xc8\ -\x0d\xf4\xda\xa3\x81\xf9\x42\x97\x8f\x3d\x44\x12\xf5\x42\xda\x0a\ -\x39\x12\xfb\xa3\xf0\x36\xa6\x01\x55\x8c\x28\xf3\xe1\x01\x8e\x01\ -\x5d\x2a\x2a\xbf\x25\xfb\x99\x48\xa6\x47\x7e\x13\x30\x76\xfd\xe2\ -\x15\xb9\x81\x16\xb7\x9c\xdd\x11\x39\x95\x80\x31\xd2\x17\x81\x1e\ -\x85\x2b\x89\x6d\x03\xb3\x42\xd4\x51\x20\x37\x1f\xbd\x3c\x0f\xb0\ -\x84\x08\x7d\xed\xa3\xac\x23\x52\xb9\x00\xfb\xd5\xfe\x51\x0a\x65\ -\x8e\xed\xfb\x33\xff\x4d\x53\x82\x53\x66\xac\x8f\x54\x0d\x17\x0f\ -\x05\x03\x35\x42\x19\xff\xe8\xd1\x52\x74\xf5\x18\x92\x8f\xe8\xc1\ -\xac\x4e\x16\x1e\xe7\x0d\xd7\x48\x8f\x57\x0e\x00\xbb\xda\x65\x20\ -\x58\xc8\x7b\xed\x86\x11\x43\x33\x19\x95\xa8\x2e\x2d\xb1\x5a\xe5\ -\x04\x56\x6b\x59\x79\xc5\xfa\x74\xe2\x41\xd7\xc2\x13\x99\x2b\x58\ -\xb9\xa0\x82\x71\x5f\x4e\x94\x12\x7e\x86\xac\x82\xba\x9e\xa9\x5b\ -\x5a\x58\xa1\x54\x70\xe3\x93\xd4\xb2\xc0\x07\xd1\x20\x7a\xff\x05\ -\x33\x22\xad\xc6\xf2\x68\x26\x35\xae\xee\x2e\xcd\x84\x58\x96\xa2\ -\xd2\x80\xb9\x68\xec\xe0\x9f\x64\xc5\x00\xa4\x95\x8f\x55\xe6\x21\ -\x59\xd9\xf3\x26\x0c\xeb\xf4\xdf\x24\x41\x3f\x18\x64\xe5\xe2\xca\ -\x92\xc3\x66\x4a\xab\xd2\xd4\x97\xc5\x40\x0b\xf4\xe1\x5c\x06\xea\ -\xfa\x74\xbc\xe9\xdc\xb3\x48\x3a\x14\xe7\x1f\x89\xb3\x96\x53\xb0\ -\x25\xbc\x1d\x03\x25\xc0\xb7\xb8\x40\x04\xfd\x7c\x4c\xb4\xac\xd5\ -\x7c\x2d\x7c\x78\x9a\x68\x73\x6c\xe3\x99\xe9\x78\x35\x96\xf3\x43\ -\xa6\xb2\x0a\x89\xf4\x18\xb4\x25\x6e\x40\xef\x7c\x6b\xf0\x72\xc4\ -\x4a\x0c\x45\x68\xf8\x1e\xae\x87\xef\x4e\x4e\xe6\x33\x5e\xb3\x75\ -\x9a\xc3\x7a\xad\xd3\xd3\xda\xb4\x57\x84\xab\x9f\x8f\x09\x17\xd0\ -\xe7\x42\x53\xd0\xe3\x60\x1d\xa1\x17\xa6\x06\x1e\xec\x8e\xb9\x9f\ -\xb5\x6d\x95\x50\xde\x8b\xdc\x16\xd9\x33\x7b\xac\x1a\x9b\x4d\x70\ -\x75\xa6\xe0\x2d\x05\x3a\x4f\x8d\x6c\x1d\x36\xad\x84\xeb\xa6\x50\ -\xaf\x05\x48\x3e\xb6\x68\x5b\x4a\xea\x15\xef\xaf\x8e\x4b\xee\xaf\ -\x8e\x4a\xa9\x36\xca\xb5\xd0\xde\x48\x4f\xd0\x69\x19\x7d\xc6\xc8\ -\x6c\x82\xa8\xb4\x60\x8e\xbc\xcf\x59\x40\xbe\xb1\xe9\x5a\xfc\x2a\ -\x30\xa0\x13\x02\xb0\xa9\xa4\x5f\xce\xb9\x21\x87\x1c\x07\xab\xcb\ -\xb7\xe2\xa8\xc0\xab\x6f\x74\xea\x95\x9a\xfa\x12\x6c\x84\x1e\x7c\ -\xa0\xdf\xb4\x14\xe9\xea\xe2\x05\xbc\x02\xad\x19\x34\x46\xb3\x23\ -\x45\x3d\x0c\x54\x40\xe7\x4f\xf5\xec\xd9\xbb\x59\x8f\xed\x86\x2e\ -\x2c\x4c\xaa\x92\xff\xc3\xde\x71\x5f\xcd\x27\x55\x6c\x91\x42\xa7\ -\x89\xaa\x9c\x24\xe3\x2b\xb3\x5a\x1b\x5b\x69\x1d\x25\xc2\x2c\x11\ -\x58\xe9\x0e\xe7\x88\x2c\x83\xba\x95\xda\x32\xad\x66\x99\x6d\xf9\ -\xa6\x4a\xdc\xb3\x72\x12\x57\xda\xb9\xad\x40\xd2\x3a\x93\x20\x00\ -\x92\x7d\xef\xbb\xec\x3e\xdb\x7c\x69\xae\xc5\x7c\x81\xd9\xe0\xac\ -\x76\x12\xdc\x94\xee\x24\x78\x54\xb0\x62\x09\x9e\xcf\x7b\x3b\x09\ -\xbe\x72\x09\xbe\x6c\x64\xe2\x85\xa7\x36\x56\x80\x9f\x97\x13\xe0\ -\xd4\x4c\x6d\x2d\xf2\x7b\x3d\xdb\x4f\x98\x8d\x66\xf4\x9d\xf8\xde\ -\x89\xef\x4d\x8a\xaa\x36\xe3\x54\xb4\x4c\x1e\x48\xb9\x6d\xbf\x75\ -\xd7\xea\xac\x1b\xfd\x49\x0d\xd2\xec\x03\xf7\xd9\x6b\x97\xab\x07\ -\xd2\x0c\x5d\x46\x0c\x2a\xca\x44\x87\xb2\x1c\xda\xd1\x6c\xb5\x7f\ -\x2d\xe1\xb8\x0e\x93\xc3\x96\x97\x78\x8f\x43\xf9\x5a\x7c\x0f\xf1\ -\x99\xe9\x49\x9b\x15\xde\x4c\x19\x58\x37\x27\x9e\x3c\x9e\x11\x23\ -\x45\x3c\x64\xce\xb7\x4c\x45\x8c\x15\xa5\xfc\xc1\xba\x07\x20\x5b\ -\x24\xdf\x3e\x01\x08\xc9\x1d\xf5\x15\x51\x62\x96\x4a\xa4\x03\x07\ -\x8d\x98\xaf\x38\x10\x23\x5d\x61\x93\x91\x08\x95\x21\xc9\x57\x41\ -\xcd\x5d\x7a\x0b\x30\x18\xf5\x6e\x63\x44\xd4\x77\x63\xbe\x6b\xea\ -\x04\x42\x4a\x22\x99\xc4\xe4\xcf\x12\xbe\xeb\x22\x51\x4d\x00\x4a\ -\xf8\xec\x9e\x6f\xac\xaa\xaf\x9b\xcc\xcf\xab\x20\xf3\x32\x2e\xda\ -\xf7\x7d\x4b\xe5\x92\xe8\xee\x98\x7b\x00\xe4\x34\x9e\xc6\x92\xe7\ -\x7a\x0c\x8c\xd0\xb1\x0a\x29\x0a\xac\xdc\x11\x90\xda\x01\x11\x40\ -\xed\xc1\x1d\x97\x2c\x2c\x92\xa6\x3d\xf5\xee\xe8\x14\x28\x4f\xd1\ -\x00\x53\x1d\x89\x2f\x7e\x99\xf5\x58\x05\x2b\xbc\xf5\x44\x8f\x7a\ -\x64\x05\x63\x58\x0c\xa4\x86\xe9\x01\xfe\x3a\x20\xc8\xa1\x63\xfd\ -\x58\xad\xce\x18\x4f\x47\x1b\x9c\x09\x58\x37\xff\x34\x2f\x2a\x61\ -\xa0\x12\x31\xfb\xdf\x45\x30\xa2\x9e\x37\x3d\x20\x80\x48\x16\x68\ -\x32\xc4\x50\x87\x8d\x19\x1e\x58\x65\x31\xe6\x4c\x12\x04\x4e\x32\ -\x0f\xca\x99\x7b\x48\x42\xd6\x13\x63\x6d\xfb\xc4\x39\x10\xbf\xe9\ -\x51\xe0\xac\x30\xe6\x1f\x32\x62\xf8\x35\xf0\x95\x54\x8c\xba\x25\ -\xa2\xfc\x39\xba\x45\x0f\x92\x04\x20\x31\xb9\xf5\x28\x13\x0d\xc5\ -\x4b\x00\xe2\x8f\x30\xfc\xba\xe3\x89\x2c\x9e\x38\xad\x84\x25\x2e\ -\x56\xab\x53\xb4\x09\x15\xd7\x0e\xe8\xa4\x06\x73\x0a\x8c\x05\xa9\ -\x62\xfc\x62\x33\x5a\x30\xbb\x05\x4a\x35\x93\xf8\x42\xc5\xbe\xef\ -\x19\x07\xf7\x58\x7f\xe3\x7b\x53\xf8\x80\xf9\x04\x40\x07\x3b\x07\ -\x8a\xae\x6f\x3e\x7d\xa8\x84\x29\x5e\x24\xe1\x0e\xc1\x7d\xea\x72\ -\x49\x7b\x5e\xe4\x75\x47\x87\xcd\xbf\xb6\x59\x05\x99\x05\xea\x6e\ -\xb0\xbb\x7d\xe5\x4e\xdf\xfc\x1d\xee\xce\xe9\xbb\x6a\xa7\x6f\xb3\ -\xa4\x83\x34\xa0\x2e\x9f\xc8\x59\xa6\xa9\x96\x05\xc0\x93\x72\xcc\ -\x1c\x0e\x96\xe0\x58\x00\x22\xe5\x21\x9e\x44\xc2\xe2\x23\x93\xc7\ -\x23\x08\xb0\xaa\xa2\xbe\xc3\xc8\x53\xee\xf7\xb9\x0f\x70\x97\x60\ -\xd4\x05\xb1\xc5\x80\xfa\x83\x3a\xdc\x39\x0b\x32\xa4\x16\x90\xba\ -\x9c\xf4\xfb\x3c\xed\x29\xb6\x73\x18\xdf\xaf\x47\xed\x03\xf6\x3e\ -\x19\xe4\x6d\xa9\xf4\xa9\xfa\x24\x48\x01\x9f\x65\x01\x7d\x5f\xe2\ -\xc0\x57\x96\xbe\x9f\xf1\xa5\x56\xda\xa0\xc2\x89\x70\x9c\x49\x40\ -\xe8\x80\xa2\xe9\x1a\x33\x6c\xd5\x10\xd4\x66\x80\x4e\x15\xea\x6b\ -\xc3\x97\xfb\x2e\x77\x28\x1a\xb9\x26\x32\x41\x44\x9f\x30\x98\x55\ -\x09\x1f\xc6\xa2\x44\x00\x7a\xcf\x47\x93\x51\x25\x5a\xbb\x4f\x3d\ -\xb9\x0e\xb5\x0d\x73\xf8\x99\x74\xf6\x4e\x63\xcf\xc7\x74\x15\x61\ -\xda\xfc\x1d\x32\xf3\xd1\x06\x5e\x3d\xfd\xe7\x8a\x9d\xdf\x0c\xd7\ -\xa6\xa5\x04\xaa\xfc\x1e\xd3\x71\x05\xee\xb2\x00\xc4\x48\xdc\x4e\ -\xa8\x42\x86\xcc\x01\x64\x03\xb5\x7f\x7e\x76\x43\x55\xab\x68\xc5\ -\x6b\x76\x00\xfa\xf2\xf2\x72\xf9\x10\x74\x5e\x5e\xf5\xc9\x7a\x22\ -\xdb\x46\xec\xbe\x36\x0b\xbe\xa5\xb2\xb7\x6a\x8b\xa5\x59\x89\xc5\ -\x52\x62\x13\x01\x16\x4b\xc2\xd7\xd6\x35\xbb\x7a\x13\xb8\x99\xb9\ -\x19\x86\x42\x9f\xb0\x61\x3e\xbb\x05\xb6\x46\x0f\x04\x06\x7f\xaa\ -\x94\x24\x5d\x18\x32\xbc\x46\x21\x06\xd2\x36\xbb\x13\x10\x8b\x38\ -\x97\x97\xf4\xc7\x3d\x66\x53\x80\x68\x97\x3d\x02\xf7\x0e\x74\x59\ -\x78\x09\x42\x9c\x58\x8d\x5f\x76\x22\x4b\x44\x3d\x0a\x2c\xe6\x10\ -\xa0\xd8\xf6\xc5\xac\x3a\x42\x51\xe0\xa4\x7e\x01\xba\x69\x2e\xc8\ -\x74\xce\x93\x76\x3c\x26\xed\x28\xb1\x20\xd8\x5d\x96\x76\x9d\x0c\ -\xa3\x50\x32\xde\xc4\x81\x65\x63\x8f\xfa\x8c\xc4\x0c\x69\x02\x52\ -\x8f\xd1\x40\x12\x77\x82\x9d\x86\x1e\x5a\x82\x60\xe8\x06\xd5\x6c\ -\xcf\x50\x20\x7e\xb5\x30\x7d\xd4\x30\xa9\x80\xc2\x54\x4a\xc8\xc4\ -\x82\xc2\x4b\x8f\x7a\x13\x0e\xba\x23\xfa\x2c\xa2\xaf\x26\x2a\x57\ -\x22\x0f\x3e\xcb\x25\x91\x88\xa5\x19\x6a\xc6\x24\x8d\x3e\xbc\xc2\ -\x26\x21\x4a\xd7\x38\x24\x7f\x84\x91\x6d\x6d\x1d\x4c\xd3\x5f\xdc\ -\x71\x80\x32\x28\x92\xae\x55\x80\xe2\xdf\xe0\x58\xb3\xa3\xbe\xd3\ -\xf2\x39\x24\x05\xc8\x1d\x51\xb1\x8b\x3e\xcf\x27\xf3\xb2\xb7\x46\ -\x95\xbd\x85\x25\x21\x9c\x37\x32\xf3\x39\x7f\x86\x05\x48\xd1\x92\ -\xfd\xd7\x8f\x9b\x4a\x8b\xe5\xf2\x66\x7f\x17\xd9\x0b\xb8\x9e\xac\ -\xdd\x7f\xff\x45\x9e\xde\x88\x71\x66\xf4\x63\x4d\x10\xfc\x87\x3c\ -\x7d\x13\x00\x6f\xd5\x08\xc3\x5f\x00\x43\x17\x0c\xda\x52\x20\xd4\ -\x2d\x92\x9a\xd5\x64\x94\x95\xc8\xf9\x7d\x9f\xb0\x36\x07\x01\x77\ -\x13\xfa\x53\x87\xeb\xad\xf1\x58\x85\xfe\xfc\x0c\x5b\x74\x1c\x74\ -\xab\x9d\xf9\x66\x02\x9b\x29\xf8\x56\x1e\x7d\xcf\xf7\xe3\xec\x7c\ -\xf9\x65\x7c\xf9\x45\x76\x98\xf9\x67\x19\x6a\x71\xf1\xa7\xfd\x74\ -\xc6\x01\x12\x93\x29\x26\x29\xa7\xc7\xc8\x2d\x97\x1c\xd3\x70\xb4\ -\x78\x89\x9a\xa2\xc5\xd4\x63\xbe\x33\xc4\x9d\x00\xde\xe7\x78\xcb\ -\x62\xe6\x7d\x2c\x81\x68\xa2\xb3\x87\x68\x98\xca\x5a\x65\x06\x11\ -\xec\x29\xd7\x62\xcd\xdb\x44\x1e\x18\xee\xed\x8f\x25\x4e\x1e\x61\ -\x69\xe7\x67\x44\x57\x46\xcb\xf3\x73\x94\x91\x64\xed\xed\xbf\x35\ -\x18\xee\xaf\xc4\x04\x26\x3c\x2f\x3a\xe4\xea\xda\x30\x46\xb4\x81\ -\x91\x3e\x7d\xaa\xdd\x20\x0f\x78\x5d\xdd\x31\x60\x58\x46\x81\xa9\ -\xb5\x24\xc0\x33\x0f\xcb\x33\x94\xcb\x1c\x3e\x02\xc8\xb3\xa3\x48\ -\x25\x82\x48\xd9\x51\x2f\x83\x6b\x8c\x7a\x5d\x1e\x5e\x5e\x5c\xce\ -\xfe\x9d\x5f\xb4\xda\x0d\x5b\x59\x78\xa8\xac\x30\x98\xed\xab\x79\ -\x78\x94\xfc\xb7\xfc\x28\x05\xed\x97\x6e\x48\xed\x3f\x93\xdc\xa9\ -\x27\xc0\x9a\x17\x9a\xe6\xbe\x66\x10\x49\x30\x88\xf5\xf8\x83\x75\ -\xeb\x8b\x49\xe7\x27\x1e\xd5\x94\x59\xc0\x7d\x83\xb4\x30\x16\x68\ -\x6e\xdb\x53\x43\x8e\x5e\xe0\x43\xd2\xc5\x4c\xc3\xfe\x94\x80\x1d\ -\xc1\x08\xba\xa8\xc1\x66\x98\x12\xf9\x7d\x42\x03\x26\x67\x22\x6a\ -\x14\x76\x53\x22\x21\x39\x27\xc2\xdd\x3c\x5a\x4b\x84\x1b\x79\xf9\ -\xb5\xa1\x9d\x2d\xe5\xe4\xaa\xb7\xe0\x25\xef\x0e\x5b\x90\x69\x3f\ -\x97\xb7\xdf\xe3\x1d\xe5\x3e\xe6\xbb\x06\x40\x8d\x78\xca\x8f\x78\ -\xc0\xe4\x99\xa7\xc1\x6b\xe6\xf1\x7c\x9b\xc2\x6a\xca\x2e\xec\x88\ -\x1e\xbb\xeb\x3a\xcb\xdf\x75\x35\xcf\xce\xcf\xcf\x5b\xcd\xd3\x32\ -\x7b\xaf\xe2\x26\x4a\x94\xff\x13\x1a\x15\x78\xfc\x8d\x87\xcb\xe4\ -\x08\x11\xb8\xdc\xa7\x8a\xc9\x58\xd4\x8c\x3c\xc5\xf4\x24\x76\x7f\ -\x48\x8e\xc9\x15\x39\x02\x75\xdd\x2c\x91\x95\x9c\x23\x2e\xce\xd6\ -\x22\x2d\x66\xb4\xb8\xb5\xd2\xa2\xa8\xfb\x22\x5f\x7f\xed\xdc\x17\ -\x2b\x3f\x3c\xb0\xac\xbc\x7c\xc5\x47\xcc\xd7\x87\xa1\xb7\x40\x62\ -\xe6\x6f\x60\x73\x33\xea\x2e\xaa\xc9\xa7\x5b\x8b\xf8\x70\xf9\xe8\ -\xe3\xd6\x4b\x90\xaa\xed\x8d\x02\x07\xfe\xb2\x18\x68\x41\xde\xdc\ -\x5c\xfe\xb9\x11\x1e\x28\x2d\xdf\xa9\x34\xf2\x98\x2f\x6b\xf3\x59\ -\x7f\x27\x6b\x57\xe2\x2a\x2e\xe0\x2c\xfa\x09\xcc\xba\xe8\x02\x1b\ -\x2d\x1c\x31\xd5\xce\xc5\xbc\x8c\xfe\xc4\x77\x8c\x01\xa7\x86\x54\ -\xe9\xcc\x50\x4a\x54\xc8\x22\x87\x7b\x5f\xb0\xb5\x3d\xdf\xe2\xf2\ -\x7e\x1f\x76\x8a\x50\x8e\x9b\x43\x0f\xf6\x8b\x3a\x39\xc5\x74\x18\ -\x6e\x31\x55\xc0\xf4\xa1\x17\x2a\x89\x04\xc0\x4a\xec\x19\x73\x4e\ -\x71\x35\x96\x21\x78\x7f\x00\xe4\xa0\x58\x1a\x45\xd6\x8f\x04\x26\ -\x6b\x73\x45\x1e\xa6\x1c\x3f\x16\x8c\x72\xba\x7e\x3f\x96\x8a\x44\ -\xde\x4e\x17\x65\xe9\xa2\xb3\x72\xaa\x68\x41\x86\xd7\xc2\x84\x18\ -\x6c\x41\x8c\x2c\xd8\x70\xaf\x7a\x7e\x40\xfd\x47\x10\x95\xe1\x9a\ -\x98\xf1\xf4\xa1\x1b\x5c\x1e\xa9\xef\x25\x72\x67\xb6\xf7\x6a\xf7\ -\xb6\x33\xe9\xd0\xaa\xc1\xcb\x8d\xd3\x0b\x89\x6f\x4b\xc5\x43\x51\ -\x03\x2c\xdf\x91\xb3\x33\xc0\x56\xbd\xd9\x5d\x70\xb3\xd3\xe3\x04\ -\x64\x1f\xf0\xbd\x89\x37\x0b\x2e\x9f\x63\x94\x75\xaf\x20\xce\x52\ -\x7f\x3b\xfb\x35\x47\x93\x02\x90\x25\x84\x0e\xf7\xde\x03\xbc\xd4\ -\x47\xbb\x8b\xc6\xbe\x94\x13\x67\x88\x06\xd8\x93\xef\x13\xa1\x9e\ -\xbf\x08\x38\xf5\xcc\x23\xa6\x32\x85\x03\x49\x35\xf5\xd2\x4d\x25\ -\xf5\x65\xd8\xd2\x96\xb0\x80\xf7\xcd\xe3\x1e\xc0\x63\x9e\x46\xc2\ -\x17\x61\x33\x04\x92\xf4\xe9\x88\x7b\xd3\xac\x71\x0f\xde\x31\xef\ -\x96\xe1\xef\x9f\x1e\x44\x9d\x9b\x8f\x34\xa8\xda\xb0\xa4\x06\x98\ -\xbd\x8c\xef\x9f\xbd\x14\x9e\x6b\xde\x2b\x49\x66\xc0\x31\x96\xef\ -\x98\x7a\x7c\xe0\xc3\x6a\x3c\xe8\x1d\x08\x0f\xc5\xc4\x0b\xac\xff\ -\x84\xac\xf8\xbf\xd9\xeb\x4d\x40\x39\x90\xce\x20\x2a\xf9\x72\xcd\ -\xd0\xb9\x0a\x60\x30\x55\x1c\x86\x82\x92\xde\x70\xd1\x96\xca\xf9\ -\xaa\x5d\x12\x05\x4e\xf8\x65\xfa\xf4\x96\xbd\xc7\x3f\x92\x73\xa3\ -\xb1\x87\x3f\x05\x2b\x87\x8c\x55\x2a\xec\xf2\xf5\xe3\x82\x89\xec\ -\x14\xe4\x4a\x3c\x14\x6f\xb8\xc7\xae\x87\x42\x80\x8c\x7d\xa0\x5c\ -\xfa\x50\xe7\x98\xba\x45\x46\x37\xf7\x8b\x1a\xdd\xc7\x47\xf9\x08\ -\x2a\x85\x9f\xe2\x01\x27\x37\x4d\xfd\xf6\x7e\x52\x9d\xd1\xe6\xa0\ -\x3f\xc1\x24\xb5\xe1\x6f\x58\x85\xe7\xb5\x8a\x31\x48\x39\xa1\x69\ -\xa0\xda\x09\xcd\x39\x42\xb3\xc0\x9d\xb7\x19\x42\xb3\x7c\x14\xe4\ -\x09\x1d\x8d\x9f\x93\x0f\x8c\xba\x20\xd0\x68\x10\x88\x3b\x63\x4e\ -\x6c\xe2\xc9\x92\x95\x9d\x2b\xe1\x23\xf3\xbb\xa4\x9b\x4a\x95\xe5\ -\xce\x34\xbc\x12\x8a\x9c\xd6\x77\xa4\x02\x87\x3f\xaf\x77\xf8\xcb\ -\xfa\x86\xbf\xe6\x81\x03\x3b\x83\x1a\xf1\x6f\x21\xa8\x71\x09\x2c\ -\x04\x35\xae\x42\x17\x44\xcb\xb0\xce\x45\x30\x00\xd4\xb8\x06\x06\ -\x80\x1a\x97\xe0\x25\x75\xbe\xc9\xba\x97\x21\x02\xa2\xc6\xa5\x88\ -\x80\x28\xb5\x1c\xb5\x9b\x2a\x25\xfd\xfc\xcd\xfc\x24\x99\xf9\xd6\ -\xca\x17\x68\xc5\x1d\xea\xc5\x7c\x37\xc6\xa7\x15\xdb\x49\x6d\xa2\ -\xb9\xb2\xaa\x5f\x81\x8e\x5f\xc0\x20\xfa\xc6\xdf\x15\x62\xc2\x7a\ -\xb6\xec\x89\x17\xd8\xf0\xc4\x91\x44\x03\x46\x6e\x2d\xf2\x0e\x49\ -\xb8\x4d\x86\x5e\x3d\xd6\x57\x07\x78\xcb\xae\x39\x13\x83\x3d\xbe\ -\xef\xfe\x81\xb7\xb5\xfb\x2e\x0d\xca\x5c\x28\x5d\xcc\x0a\x4b\x2c\ -\xe0\x8f\x68\x8a\x7d\x00\x44\x93\xa7\x71\xdc\xd6\x78\xd6\xf5\xd3\ -\xbc\x10\xd9\x96\x48\xa0\x92\xe2\x67\xd9\xdf\xbc\x7e\xe1\xe9\xdc\ -\x4d\xd8\x59\x77\xbf\xbc\x25\x40\x68\xf8\x0a\x3c\x24\x9c\xca\x25\ -\xcf\x02\x3f\x53\xfe\x61\xbd\x9d\x9f\x69\xad\x7e\xa6\x05\xe9\xcd\ -\x5b\xed\x67\x7a\x87\x47\x1c\xf0\xee\x33\x0c\x97\x48\x7b\xee\x81\ -\x82\xaa\x09\x98\xa3\x44\x30\xc5\x8b\x16\x95\xfd\x79\x67\x64\x12\ -\xc4\x8b\x8c\x17\x3e\xf1\xd4\xf3\xb1\xe1\x9c\x27\x03\xf5\x1c\x9d\ -\x56\x78\xf7\x72\x94\x3a\x13\xc6\x61\x5c\x97\xb9\xe8\xc1\x42\x95\ -\x14\x8a\x4c\x1b\xc3\x81\x66\xa0\xae\x6c\x2f\xeb\xf9\x2d\x1b\x3b\ -\x18\x92\xc0\xa6\xea\xa7\x72\x32\x39\x59\x99\xe8\x2b\x6a\x17\x6b\ -\x14\x6b\x61\xe5\xf7\x2c\x20\x66\x4e\x7a\x5d\xed\x9f\xed\x93\x11\ -\x0d\x06\xdc\xbf\xda\x6f\x36\xf7\x31\xd7\xa8\x3d\xe6\xf7\x23\x3a\ -\x0e\x93\xa5\x3a\xdf\x3f\xea\xf7\x37\x81\x18\xfd\x06\xc6\x4a\x57\ -\x4c\x02\x4c\xae\x49\xb5\x82\xef\x9c\x89\x54\x62\x64\x46\x94\x1a\ -\x92\x78\x89\x81\x52\xb3\x6b\x47\x73\x6b\x8c\x53\x01\x7f\xba\x5c\ -\x37\x01\xc9\xce\x7c\x57\x76\xfe\xfc\xaa\xbf\x03\x51\x67\x0b\xf6\ -\x0c\x37\xa1\xeb\x0b\x7b\x68\x60\x07\xaf\x38\xf5\xc4\xe0\x70\x88\ -\xcc\xa5\x2b\x34\x02\xd2\xe3\xe6\x03\x72\x8d\x3f\xc5\xf4\x72\xa2\ -\x94\x36\x6b\x32\x00\xf9\x38\x91\xc3\xb0\x7e\x1e\x30\x06\x58\x59\ -\x0e\x92\x94\x00\xcb\x84\xe6\x21\xee\xe6\x81\x84\xbd\xad\x0c\x2c\ -\x9b\x32\x93\x8d\xa0\x59\xe5\x5a\x40\x59\xb4\x5e\x0f\x17\x75\x3d\ -\x60\xd9\xe3\xfa\xd9\x28\x8a\x6a\xd7\x84\x23\xb3\xdb\x99\x03\xcc\ -\xac\x76\x2d\xc0\x84\x59\x05\xd9\xc0\x44\xb5\x6b\x01\x26\x91\x01\ -\x96\x0d\x51\xaa\x49\x79\xb0\x92\x05\xd8\x53\x3b\x60\x52\x0b\x52\ -\xa9\x45\x2e\xe8\x5e\x9f\x99\xdc\x54\x33\x8b\xd9\xbb\x19\x55\x02\ -\x00\xd0\x77\xc6\xa5\x2f\x18\x48\xf7\xed\xb8\x68\x9d\x0c\x7c\xea\ -\x75\x1c\x0f\x0f\x3d\xba\x4f\xf1\x9c\x25\xee\x60\x4c\xa9\x6e\x01\ -\x26\x00\xe3\xb7\xf1\xbe\x52\x47\xc9\xdb\x8d\x59\x13\xd3\xa5\x27\ -\x54\x07\xd4\xe0\x6b\x73\xaa\x73\xd6\x27\x16\x1b\x8c\xe0\x2f\x37\ -\x58\x8d\x84\xcf\x44\x4d\xc7\x68\x6a\xea\xe9\x25\xc2\x1e\xed\xfb\ -\xce\x25\x00\x7c\x1f\xbe\x4e\x3b\xc7\xe7\x97\xed\xc6\x34\x54\x67\ -\xf8\xf5\xc3\x8e\x5c\x86\xbf\x36\xa3\x0d\xe3\x74\x6f\x27\xcd\xf3\ -\x64\x77\x17\xcd\xac\xee\xcc\xa3\xb4\x4b\x93\x40\xed\x5a\x31\x3d\ -\x3b\x3e\x5b\x2d\x8e\x11\xa7\x09\x1c\x1f\x97\xc1\xf1\xe9\x79\x33\ -\xd5\xdd\x49\x65\x38\x3e\x59\x1d\x8e\xcf\xaa\xc5\xf1\x59\x92\xf0\ -\x5a\xe7\x47\xab\xc4\x71\xeb\xbc\xb5\x81\x38\x0e\xaf\x95\xaf\x18\ -\xb3\xad\x95\x62\xb6\x79\xb6\x36\xcc\x2e\x2f\x21\xc2\x1b\x50\xaa\ -\xc5\xec\xe9\x45\x92\x91\xcf\x4e\xcb\x60\xf6\xf8\xf4\x64\x0b\x64\ -\x6f\x78\xc7\x43\xb5\x98\x3d\x3e\x4e\x61\xf6\x7c\x95\x34\x5b\x25\ -\x66\xcf\xcb\x4b\xdc\xe8\x9e\xec\x6a\x91\xdc\x4c\xd1\x6f\xeb\xb2\ -\x94\x64\x38\x41\x7f\x4d\xa2\xbb\x4c\x35\xb9\x29\xb6\x43\xec\xce\ -\xaf\x8a\xad\x87\xb4\x85\x56\x4a\x4a\xb4\x5a\x67\x8f\x31\x46\xe6\ -\x63\x39\xfe\x0a\xf5\xed\xc6\x84\x77\xf6\xfe\x0f\x9b\x41\x85\x54\ -\ +\x00\xa6\x66\x78\x9c\xed\x1d\x6b\x6f\xdb\x38\xf2\x7b\x7e\x05\x91\ +\x0f\xbd\x1e\x90\x8d\x63\xe7\xdd\x3a\x3e\xb4\xe9\x13\x68\x77\xdb\ +\x3a\x6d\x6f\xef\xcb\x82\x96\x68\x9b\x57\x59\xf4\x92\x72\x12\x2f\ +\xee\xc7\xdf\x0c\x49\x59\x8f\xc8\x72\x64\x59\x96\xbd\x75\x51\x20\ +\x16\x49\x91\xc3\xe1\xbc\x38\x33\xa4\xda\xff\xba\x1f\x79\xe4\x96\ +\x49\xc5\x85\x7f\xb5\xdf\x3c\x3c\xda\x27\xcc\x77\x84\xcb\xfd\xc1\ +\xd5\xfe\xd7\x9b\x37\xbf\x5c\xec\xff\xab\xb3\xd7\x9e\xf0\xa8\xd1\ +\x09\x34\xea\xec\x91\xb6\xe3\x51\xa5\x3a\x6f\x27\xfc\xd9\xb3\x57\ +\x9c\x7a\x62\x00\x7f\xbd\x41\x97\x05\x01\xbc\xac\x5e\x49\xda\x0f\ +\xda\x0d\xd3\x08\x5a\xdf\x71\x77\xc0\x02\xa2\x9f\xaf\xf6\x3f\x7f\ +\xd7\x8f\xfb\xc4\xa7\x23\x76\xb5\x9f\xdb\x09\x0e\x46\xda\x63\x29\ +\xc6\x4c\x06\x53\xfb\xc6\x80\x89\x11\x0b\xe4\x54\x57\x92\xb6\x64\ +\x4e\xa0\x7f\x91\xf6\x7d\xe7\xa8\xdd\xb8\xb7\x0f\x53\x7c\x98\xda\ +\x07\x00\x21\x18\x76\x4e\x2f\xa1\xc8\xfc\x34\xc5\x43\xc6\x07\xc3\ +\xa0\x73\x76\xdc\x6a\x37\xec\x6f\xdd\x67\x23\xec\xb4\xdd\x08\x07\ +\xcf\x82\xe4\x8e\xfb\xae\xb8\xbb\xe1\x81\xc7\x2c\x30\x2a\x90\x00\ +\x7c\xe7\x2d\xf3\x99\xa4\x1e\x51\x76\x32\xed\x86\xad\x78\xd8\xa5\ +\x47\xa7\x62\x12\x21\xe7\xdb\x4b\x71\xff\x41\x17\xd9\x1e\x53\x43\ +\xaa\x31\x75\xa0\xa3\x7d\x3b\x01\x7f\x32\xea\x31\xd9\x39\x6b\x37\ +\xec\x2f\x03\x7e\x7c\x84\x07\x5d\x8c\xa8\x1c\x70\x3f\xd5\xc3\x65\ +\x6e\x0f\x3c\x60\xa3\x08\x93\xf1\xc5\x7c\x2b\xc5\x64\x0c\x30\x87\ +\xcb\x39\x08\x9f\x4d\xf3\x07\x83\x07\x11\xb2\x32\xf0\xa5\x17\x9d\ +\x74\x33\xb0\xf6\x10\xa8\x5c\xdc\xd9\xd1\x80\x70\x03\xee\x50\xcf\ +\x94\xfe\xd1\x8a\x06\x8e\x66\x94\xd1\xd1\xbb\x07\x1d\x0d\x85\xe4\ +\x7f\x09\x3f\x98\x75\xd5\xbc\x9c\xf5\x95\xee\xed\x01\x92\x34\x89\ +\x7f\x92\xac\x7f\x3d\x64\xce\x8f\x38\xb2\xb0\x62\x0c\x15\x0e\x56\ +\xf4\xc4\xfd\x1f\xcd\x56\xac\xdb\x0c\xec\x09\xe1\xdd\xf0\x71\xa2\ +\xcd\x0c\x89\xef\xfb\x24\x18\x72\x45\xe0\xbf\xee\x8f\xb9\x07\x50\ +\xc0\x2c\x52\xef\x84\xfc\xd1\x03\xfe\x1e\xc2\x2f\xff\x1f\x01\xa1\ +\xe3\x31\xa3\xf2\x90\x7c\x55\xac\x3f\x01\x4a\xe5\xbe\xc3\x08\xf5\ +\x3c\x22\xfa\xb1\xb7\x70\x40\x45\xa8\xc4\x2a\x25\x08\xf7\x75\xdd\ +\x0b\xa9\xbb\xb1\x1d\x1e\xa6\xd6\x29\x7b\xb1\xb2\xe7\xc3\xee\x83\ +\xec\xc9\xbc\xe3\xee\x03\xc8\x97\x1f\x07\x71\xfc\xda\x47\x99\x41\ +\x54\xe0\x02\x57\x5e\xed\x1f\xa5\xc6\x75\x6c\xdf\x43\x18\x58\x8f\ +\xfb\x3d\x1a\xd6\x29\x33\xee\x27\x1a\x0c\x17\x0f\xfb\x51\xb8\x8d\ +\x50\x6e\x3e\x72\x34\x2d\xca\x80\xcc\x62\x74\xd8\x48\x12\xe2\x02\ +\xba\xfc\xfc\x81\xf6\x98\x17\x12\xa3\x87\x0f\x49\xba\x2e\xb2\x60\ +\x66\xad\xb8\x1f\x30\xd9\xa7\x40\x4a\x23\xe1\xb2\xe5\x17\x8c\x7a\ +\x7c\xe0\x8f\x98\xff\x60\x30\x98\xee\xe7\xe0\xd9\xb3\x17\x58\xff\ +\x05\x05\xf6\xff\x66\x8f\x37\x92\x72\x0f\x46\x8b\x4a\xbe\x5d\x33\ +\x84\x07\xc0\x88\x63\xa9\x2a\x74\x46\x6c\x2e\x46\x3d\x91\xc9\xe6\ +\x58\x81\x6c\x7e\xb2\x3c\x97\xdf\x58\x16\x47\x3e\xfc\xfa\x5e\xa3\ +\x19\xd9\xf2\x6e\xc8\x81\x27\x23\xc6\x85\xf2\x89\xc7\xc8\x1d\x07\ +\x8e\x46\x06\x7a\x46\x6e\xa0\xd7\x1e\x95\xe6\x0d\x5d\x3e\xf6\xa8\ +\xe5\x79\xf3\x4e\xa8\xad\xb0\x3f\x0a\x4f\x63\x2a\x69\xc0\xb4\x0c\ +\x80\x17\x0f\x70\x0c\xe8\x32\xa0\xea\x47\xb2\x9f\x89\x62\x7a\xe4\ +\x37\x92\xb1\xeb\x17\xaf\xc8\x0d\xb4\xb8\xe5\xec\x8e\xa8\xa9\x02\ +\x8c\x91\xbe\x90\x7a\x14\x1e\x28\x6c\x2b\x0d\x95\x50\x27\x00\x9b\ +\x62\x2d\x3c\xfd\x95\x7f\xd4\xd4\xb8\x99\x7c\xfc\x80\xae\x1e\xc3\ +\x76\x11\x3d\x98\xd5\xc9\xc2\xe3\xbc\xe1\x1a\xe9\xf1\xca\x01\x60\ +\x57\xbb\x0c\x04\x0b\x79\xaf\xdd\x30\x2a\x7a\xa6\xbf\x13\xd5\xa5\ +\xb5\x79\xeb\xf1\xca\x3c\x4b\x68\x2e\x50\xda\xf3\x65\x26\xeb\xd3\ +\x89\x07\x5d\x0b\x4f\x64\xae\x60\xe5\x82\x0a\xc6\x7d\x39\x09\x02\ +\xe1\x67\xc8\x2a\xa8\xeb\x99\xba\xa5\x85\x15\x4a\x05\x37\x3e\x49\ +\x2d\x0b\x7c\x10\x0d\xa2\xf7\x5f\x30\xb1\xd3\x26\x5e\x1e\xcd\xa4\ +\xc6\xd5\xdd\xa5\x99\x10\xcb\x52\x54\x2a\x99\x8b\x1b\x01\xfc\x93\ +\xac\x18\x80\xb4\xf2\xb1\xca\xfc\x48\x56\xf6\xbc\x09\xc3\x3a\xfd\ +\x37\x49\xd0\x0f\x06\x59\xb9\xb8\xb2\xe4\xb0\x99\xd2\xaa\x12\xab\ +\x63\x81\x3e\x9c\xcb\x40\x5d\x9f\x8e\x37\x9d\x7b\x16\x49\x87\xe2\ +\xfc\xa3\x70\xd6\x6a\x0a\xb6\x84\xb7\x63\xa0\x04\xf8\x16\x17\x88\ +\xa0\x9f\x8f\x89\x96\xb5\xdc\xaf\x85\x0f\xbf\x26\xda\x1c\xdb\x78\ +\x66\x3a\x5e\x8d\xe5\xfc\x90\xa9\xac\x42\x22\x3d\x06\x6d\x89\x2b\ +\xe9\x9d\x6f\x0d\x5e\x8e\x58\x89\xa1\x08\x0d\xdf\x12\x7b\xde\x22\ +\x7c\x77\x72\x32\x9f\xf1\x9a\xad\xd3\x1c\xd6\x6b\x9d\x9e\xd6\xa6\ +\xbd\x22\x5c\xfd\x7c\x4c\xb8\x80\x3e\x17\x9a\x82\xb0\x81\x65\xda\ +\x43\x59\x03\x0f\x76\xc7\xdc\xcf\xda\xb6\x2a\x28\xef\x45\x2e\xbd\ +\xec\x99\x3d\x56\x8d\xcd\x26\xb8\x3a\x53\xf0\x96\x02\x9d\xa7\x46\ +\xb6\xce\xcc\x56\xc2\xad\x59\xa8\xd7\x02\x24\x1f\x5b\xb4\x2d\x25\ +\xf5\x8a\xf7\x57\xc7\x25\xf7\x57\x47\xa5\x54\x1b\xe5\x5a\x68\xd7\ +\xa2\xd5\x16\x79\x82\x4e\xcb\xe8\x33\x46\x66\x13\x44\xa5\x05\x73\ +\xe4\x7d\xce\x24\xf9\xc1\xa6\x6b\xf1\xab\xc0\x80\x4e\x08\xc0\xa6\ +\x92\x7e\x39\xe7\x86\x1a\x72\x1c\xac\x2e\xdf\x8a\x13\x48\xaf\xbe\ +\xd1\xa9\x57\x6a\xea\x4b\xb0\x11\x46\xb7\x80\x7e\xd3\x52\xa4\xab\ +\x8b\x17\xf0\x0a\xb4\x66\xd0\x18\xcd\x8e\x14\xf5\x30\x50\x01\xda\ +\x6b\xfc\x6e\xd6\x63\xbb\xa1\x0b\x0b\x93\xaa\xe2\x7f\xb1\x77\xdc\ +\x0f\xe6\x93\x2a\xb6\x48\xa1\xd3\x44\x1c\x4f\x92\xb1\xc7\x59\xad\ +\x8d\x3b\xb6\x8e\x12\x21\xc8\x08\xac\x74\x87\x73\x44\x96\x41\xdd\ +\x4a\x6d\x99\x56\xb3\xcc\xb6\x7c\x53\x25\xee\x59\x39\x89\xab\xec\ +\xdc\x56\x20\x69\x9d\x89\x94\x40\xb2\xef\x7d\x97\xdd\x67\x9b\x2f\ +\xcd\xb5\x98\x2f\x30\x1b\x9c\xd5\x4e\x82\x9b\xd2\x9d\x04\x8f\x0a\ +\x56\x2c\xc1\xf3\x79\x6f\x27\xc1\x57\x2e\xc1\x97\x8d\x4c\xbc\xf0\ +\x82\x8d\x15\xe0\xe7\xe5\x04\x38\x35\x53\x5b\x8b\xfc\x5e\xcf\xf6\ +\x13\x66\xa3\x19\x7d\x27\xbe\x77\xe2\x7b\x93\xa2\xaa\xcd\x38\x15\ +\x2d\x93\x8b\x52\x6e\xdb\x6f\xdd\xb5\x3a\x23\x4d\xbf\x52\x83\x34\ +\xfb\xc0\x7d\xf6\xda\xe5\xc1\x03\x69\x86\x2e\x23\x06\x15\x65\xa2\ +\x43\x59\x0e\xed\x68\xb6\xda\xbf\x96\x70\x5c\x87\x89\x93\x55\xe4\ +\x6b\xc5\x51\xbe\x16\xdf\x43\x7c\x66\x7a\xd2\x66\x85\x37\x53\x06\ +\xd6\xcd\x89\x27\x8f\x67\xc4\xc7\x27\x2b\x2e\x4f\xb8\xba\x07\x9b\ +\xac\xd8\x27\x00\x21\xb9\xa3\x3e\x26\x1b\xce\x52\x89\x74\xe0\xa0\ +\x11\xf3\x15\x4b\x31\xd2\x15\x36\x19\x89\x50\x15\x92\x7c\x15\xd4\ +\xdc\xa5\xb7\x00\x83\x51\xef\x36\x46\x44\x7d\x37\xe6\xbb\xa6\x8e\ +\x14\x4a\x11\xc5\x14\x26\x46\x97\xf0\x5d\x17\x89\x6a\x02\x50\xc2\ +\x67\xf7\x7c\x63\x55\x7d\xdd\x64\x7e\x5e\x05\x99\x97\x71\xd1\x66\ +\xa5\xe4\x3a\x62\x3c\x8d\x25\xcf\xf5\x18\x18\xa1\xe3\x20\xa4\x28\ +\xb0\x72\x47\x40\x6a\x07\x44\x00\xb5\xcb\x3b\xae\x58\x58\xa4\x4c\ +\x7b\xea\xdd\xd1\x29\x50\x5e\x40\x25\xa6\x5b\x12\x5f\xfc\x32\xeb\ +\xb1\x0a\x56\x78\xeb\x89\x1e\xf5\xc8\x0a\xc6\xb0\x18\x48\x0d\xd3\ +\x03\xfc\x75\x40\x90\x43\xc7\xfa\x67\xb5\x3a\x63\x3c\x1d\x6d\x70\ +\x26\x60\xdd\xfc\xd3\xbc\xa8\x84\x81\x4a\xc4\xec\x7f\x15\x72\x44\ +\x3d\x6f\x7a\x40\x00\x91\x4c\x6a\x32\xc4\x50\x87\x8d\x19\x1e\x58\ +\x65\x31\xe6\x4c\x11\x04\x4e\x31\x0f\xca\x99\x7b\x48\x42\xd6\x13\ +\x63\x6d\xfb\xa4\x93\xe2\x7b\x14\x38\x2b\x8c\xf9\x87\x8c\x18\xbe\ +\x0d\x7c\xa5\x02\x46\xdd\x4a\x32\xdb\xbb\x7a\x90\x24\x00\x89\xc9\ +\xad\x47\x99\x68\x28\x5e\x02\x10\xbf\x85\xe1\xd7\x1d\x4f\x64\xf1\ +\xc4\x69\x25\x2c\x71\xb1\x5a\x9d\xa2\x4d\xa8\xb8\x76\x40\x27\x35\ +\x98\x53\x60\x2c\xa8\x20\xc6\x2f\x36\xa3\x05\xb3\x5b\xa0\x54\x33\ +\x89\x2f\x82\xd8\xfb\x3d\xe3\xe0\x1e\xeb\x77\x7c\x6f\x0a\x2f\x30\ +\x9f\x00\xe8\x60\xe7\x40\xd1\xf5\xcd\x97\x0f\x95\x30\xc5\x8b\x24\ +\xdc\x21\xb8\x4f\x5d\xae\x68\xcf\x8b\xbc\xee\xe8\xb0\xf9\xe7\x36\ +\xab\x20\xb3\x40\xdd\x0d\x76\xb7\xaf\xdc\xe9\x9b\xbf\xc3\xdd\x39\ +\x7d\x57\xed\xf4\x6d\x96\x74\x90\x4a\xea\xf2\x89\x9a\x65\x9a\x6a\ +\x59\x00\x3c\xa9\xc6\xcc\xe1\x60\x09\x8e\x05\x20\x52\x1d\xe2\x29\ +\x3d\x2c\x3e\x32\x79\x3c\x82\x00\xab\x06\x14\x0f\x91\x3d\xe5\x7e\ +\x9f\xfb\x00\x77\x09\x46\x5d\x10\x5b\x94\xd4\x1f\xd4\xe1\xce\x59\ +\x90\x21\xb5\x80\xd4\xd5\xa4\xdf\xe7\x69\x4f\xb1\x9d\xc3\xf8\x7e\ +\x3d\x6a\x1f\xb0\xf7\xc5\x20\x6f\x4b\xa5\x4f\xd5\x27\x41\x0a\xf8\ +\x2c\x0b\xe8\xfb\x12\x07\xbe\xb2\xf4\xfd\x8c\x2f\xb5\xd2\x06\x15\ +\x4e\x84\xe3\x4c\x24\xa1\x03\x8a\xa6\x6b\xcc\xb0\x0d\x86\xa0\x36\ +\x25\x3a\x55\xa8\x39\xbb\xc9\x7d\x97\x3b\x14\x8d\x5c\x13\x99\xc0\ +\xf3\x9e\x0c\x66\x55\xc2\x87\xb1\x28\x11\x80\xde\xf3\xd1\x64\x54\ +\x89\xd6\xee\x53\x4f\xad\x43\x6d\xc3\x1c\x7e\x26\x9d\xbd\xd3\xd8\ +\xf3\x31\x5d\x45\x98\x36\x7f\x87\xcc\x7c\xb4\x81\x57\x4f\xff\xb9\ +\x62\xe7\xa3\xe1\xda\xb4\x94\x40\x95\xdf\x63\x3a\xae\xc0\x5d\x26\ +\x41\x8c\xc4\xed\x84\x2a\x64\xc8\x1c\x40\x36\x50\xfb\xe7\x67\x37\ +\x54\xb5\x8a\x56\xbc\x66\x07\xa0\x2f\x2f\x2f\x97\x0f\x41\xe7\xe5\ +\x55\x9f\xac\x27\xb2\x6d\xc4\xee\x6b\xb3\xe0\x5b\x2a\x7b\xab\xb6\ +\x58\x9a\x95\x58\x2c\x25\x36\x11\x60\xb1\x24\x7c\x6d\x5d\xb3\xab\ +\x37\x81\x9b\x99\x9b\x61\x28\xf4\x09\x1b\xe6\xb3\x5b\x60\x6b\xf4\ +\x40\x60\xf0\xa7\x4a\x49\xd2\x85\x21\xc3\x2b\x46\x62\x20\x6d\xb3\ +\x3b\x01\xb1\x88\x73\x79\x49\xff\xbe\xc7\x6c\x0a\x10\xed\xb2\x47\ +\xe0\x62\xb7\x8d\xa8\x38\xb1\x1a\xbf\xec\x44\x95\x88\x7a\x14\xbc\ +\x7a\x64\xdb\x17\xb3\xea\x08\x45\x81\x93\xfa\x45\xae\xdd\x59\x90\ +\xe9\x9c\x27\xed\x78\x4c\xda\x51\x62\x41\xb0\xbb\x2c\xed\x3a\x19\ +\x46\xa1\x64\xbc\x89\x03\xcb\xc6\x1e\xf5\x19\x89\x19\xd2\xf6\x3a\ +\x1e\x45\xdc\x09\x76\x1a\x7a\x68\x09\x82\xa1\x1b\x54\xb3\x3d\x43\ +\x81\xf8\xdd\xc2\xf4\x49\xc3\x14\x48\x0a\x53\x29\x21\x13\x0b\x0a\ +\x2f\x3d\xea\x4d\x38\xe8\x8e\xe8\xb3\x88\xbe\x9a\xa8\x5c\x89\x3c\ +\xf8\x2c\x97\x44\x22\x96\x66\xa8\x19\x93\x34\xfa\xf0\x08\x9b\x84\ +\x28\x5d\xe3\x90\xfc\x16\x46\xb6\xb5\x75\x30\x4d\xbf\x71\xc7\x01\ +\x4a\x59\x24\x5d\xab\x00\xc5\xbf\xc1\xb1\x66\x47\x7d\xa7\xe5\x73\ +\x48\x0a\x90\x3b\xa2\x62\x17\x7d\x9e\x4f\xe6\x05\x6e\x54\xcb\x74\ +\x7b\x97\xbd\x85\x25\x21\x9c\x37\x32\xf3\x39\x7f\x86\x05\x48\xd1\ +\x92\xfd\xf7\x4f\x9b\x4a\x8b\xe5\xf2\x66\x7f\x15\xd9\x0b\xb8\x9e\ +\xac\xdd\x7f\xff\x4e\x9e\xde\x88\x71\x66\xf4\x63\x4d\x10\xfc\x87\ +\x3c\x7d\x23\x81\xb7\x6a\x84\xe1\x77\x80\xa1\x0b\x06\x6d\x29\x10\ +\xea\x16\x49\xcd\x6a\x32\xca\xca\x5d\xf2\x18\xb3\x36\x07\x92\xbb\ +\x09\xfd\xa9\xc3\xf5\xd6\x78\xac\x42\x7f\x7e\x85\x2d\x3a\x0e\xba\ +\xd5\xce\x7c\x33\x81\xcd\x14\x7c\x2b\x8f\xbe\xe7\xfb\x71\x76\xbe\ +\xfc\x32\xbe\xfc\x22\x3b\xcc\xfc\xb3\x0c\xb5\xb8\xf8\xd3\x7e\x3a\ +\xe3\x00\x89\xc9\x14\x93\x94\xd3\x63\xe4\x96\x2b\x8e\x69\x38\x5a\ +\xbc\x64\xdd\x29\x0b\x3b\x01\xbc\xcf\xf1\x96\xc5\xcc\xfb\x58\x02\ +\xd1\x44\x67\x0f\xd1\x30\x95\xb5\xca\x0c\x22\xd8\x53\xae\xc5\x9a\ +\xb7\x89\x3c\x30\xdc\xdb\xbf\x97\x38\x79\x84\xa5\x9d\x9f\x11\x5d\ +\x19\x2d\xcf\xcf\x51\x46\x92\xb5\x37\x63\xd7\x60\xb8\xbf\x12\x13\ +\x98\xf0\xbc\xe8\x90\xab\x6b\xc3\x18\xd1\x06\x46\xfa\xf4\xa9\x76\ +\x83\x3c\xe0\xf5\xe0\x8e\x01\xc3\x32\x0a\x4c\xad\x25\x01\x9e\x79\ +\x58\x9e\xa1\x5c\xe6\xf0\x11\x40\x9e\x1d\x45\x2a\x11\x44\xca\x8e\ +\x7a\x19\x5c\x63\xd4\xeb\xf2\xf0\xf2\xe2\x72\xf6\xef\xfc\xa2\xd5\ +\x6e\xd8\xca\xc2\x43\x65\x85\xc1\x6c\x5f\xcd\xc3\xa3\xe4\xbf\xe5\ +\x47\x29\x68\xbf\x74\x43\x6a\xff\x99\xe4\x4e\x3d\x01\xd6\xbc\xd0\ +\x34\xf7\x35\x83\x28\x82\x41\xac\xc7\x1f\xac\x5b\x5f\x4c\x3a\x3f\ +\xf1\xa8\xa6\xcc\x02\xee\x1b\xa4\x85\xb1\x40\x73\xdb\x5e\x30\xe4\ +\xe8\x05\x3e\x24\x5d\xcc\x34\xec\x4f\x09\xd8\x11\x8c\xa0\x8b\x1a\ +\x6c\x86\x29\x51\x7f\x4e\xa8\x64\x6a\x26\xa2\x46\x61\x37\x25\x12\ +\x92\x73\x22\xdc\xcd\xa3\xb5\x44\xb8\x91\x97\x5f\x1b\xda\xd9\x52\ +\x4e\xae\x7a\x0b\x5e\xf2\xee\xb0\x05\x99\xf6\x73\x79\xfb\x3d\xde\ +\x51\xee\x63\xbe\xab\x04\x6a\xc4\x53\x7e\xc4\x03\x26\xcf\x3c\x0d\ +\x5e\x33\x8f\xe7\xdb\x14\x56\x53\x76\x61\x47\xf4\xd8\x5d\xd7\x59\ +\xfe\xae\xab\x79\x76\x7e\x7e\xde\x6a\x9e\x96\xd9\x7b\x15\x37\x51\ +\xa2\xfc\x9f\xd0\xa8\xc0\xe3\x6f\x3c\x5c\x26\x47\x08\xe9\x72\x9f\ +\x06\x4c\xc5\xa2\x66\xe4\x29\xa6\x27\xb1\xfb\x43\x72\x4c\xae\xc8\ +\x11\xa8\xeb\x66\x89\xac\xe4\x1c\x71\x71\xb6\x16\x69\x31\xa3\xc5\ +\xad\x95\x16\x45\xdd\x17\xf9\xfa\x6b\xe7\xbe\x58\xf9\xe1\x81\x65\ +\xe5\xe5\x2b\x3e\x62\xbe\x3e\x0c\xbd\x05\x12\x33\x7f\x03\x9b\x9b\ +\x51\x77\x51\x4d\x3e\xdd\x5a\xc4\x87\xcb\x47\x9f\xb6\x5e\x82\x54\ +\x6d\x6f\x14\x38\xf0\x97\xc5\x40\x0b\xf2\xe6\xe6\xf2\xcf\x8d\xf0\ +\x40\x69\xf9\x4e\xa5\x91\xc7\x7c\x59\x9b\xcf\xfa\x3b\x59\xbb\x12\ +\x57\x71\x01\x67\xd1\x4f\x60\xd6\x45\x17\xd8\x68\xe1\x88\xa9\x76\ +\x2e\xe6\x65\xf4\x27\xbe\x63\x0c\xb8\x60\x48\x03\x9d\x19\x4a\x49\ +\x10\xb2\xc8\xe1\xde\x37\x6c\x6d\xcf\xb7\xb8\xbc\xdf\x87\x9d\x22\ +\x94\xe3\xe6\xd0\x83\xfd\xa2\x4e\x4e\x31\x1d\x86\x5b\xcc\x40\x32\ +\x7d\xe8\x85\x2a\xa2\x00\xb0\x12\x7b\xc6\x9c\x53\x5c\x8d\x65\x08\ +\xde\x1f\x00\x39\x04\x2c\x8d\x22\xeb\x47\x02\x93\xb5\xb9\x22\x0f\ +\x53\x8e\x1f\x0b\x46\x39\x5d\xbf\x1f\x2b\x88\x44\xde\x4e\x17\x65\ +\xe9\xa2\xb3\x72\xaa\x68\x41\x86\xd7\xc2\x84\x18\x6c\x41\x8c\x2c\ +\xd8\x70\xaf\x7a\x7e\x40\xfd\xef\x20\x2a\xc3\x35\x31\xe3\xe9\x43\ +\x37\xb8\x3c\x4a\xdf\x4b\xe4\xce\x6c\xef\xd5\xee\x6d\x67\xd2\xa1\ +\x55\x83\x97\x1b\xa7\x17\x12\xdf\x96\x8a\x87\xa2\x06\x58\xbe\x23\ +\x67\x67\x80\xad\x7a\xb3\xbb\xe0\x66\xa7\xc7\x09\xc8\x3e\xe0\x7b\ +\x13\x6f\x16\x5c\x3e\xc7\x28\xeb\x5e\x41\x9c\xa5\x7e\x77\xf6\x35\ +\x47\xfb\x81\xd8\x0c\x21\x74\xb8\xf7\x1e\xe0\xa5\x3e\xda\x5d\x34\ +\xf6\xa6\x9a\x38\x43\x34\xc0\x9e\xfc\x39\x11\xc1\xf3\x17\x92\x53\ +\xcf\xfc\xc4\x54\xa6\x70\x20\x15\x4c\xbd\x74\x53\x45\x7d\x15\xb6\ +\xb4\x25\x4c\xf2\xbe\xf9\xb9\x07\xf0\x98\x5f\x23\xe1\x8b\xb0\x19\ +\x02\x49\xfa\x74\xc4\xbd\x69\xd6\xb8\x07\xef\x98\x77\xcb\xf0\xdb\ +\xc0\x07\x51\xe7\xe6\x25\x0d\xaa\x36\x2c\xa9\x01\x66\x2f\xe3\xfd\ +\x67\x2f\x85\xe7\x9a\xe7\x4a\x92\x19\x70\x8c\xad\xfa\x7a\x6a\x59\ +\x49\x6f\xb8\x68\x4b\xe5\x7c\xd5\x2e\x89\x02\x27\xfc\x32\x7d\x7a\ +\xcb\xde\xe3\x1f\xc9\xb9\xd1\xd8\xc3\x4f\xc1\xaa\x21\x63\x95\x0a\ +\xbb\x7c\xfd\xb8\x60\x22\x3b\x05\xb9\x12\x0f\xc5\x1b\xee\xb1\xeb\ +\xa1\x10\x20\x63\x1f\x28\x97\x3e\xd4\x39\xa6\x6e\x91\xd1\xcd\xfd\ +\xa2\x46\xf7\xf1\x51\x3e\x82\x4a\xe1\xa7\x78\xc0\xc9\x4d\x53\xbf\ +\xbd\x9f\x54\x67\xb4\x39\xe8\x4f\x30\x49\x6d\xf8\x0d\xab\xf0\xbc\ +\x56\x31\x06\x29\x27\x34\x0d\x54\x3b\xa1\x39\x47\x68\x16\xb8\xf3\ +\x36\x43\x68\x96\x8f\x82\x3c\xa1\xa3\xf1\x73\xf2\x81\x51\x17\x04\ +\x1a\x95\x52\xdc\x19\x73\x62\x13\x4f\x96\xac\xec\x5c\x09\x1f\x99\ +\xef\x92\x6e\x2a\x55\x96\x3b\xd3\xf0\x4a\x04\xe4\xb4\xbe\x23\x15\ +\x38\xfc\x79\xbd\xc3\x5f\xd6\x37\xfc\x35\x97\x0e\xec\x0c\x6a\xc4\ +\xbf\x85\xa0\xc6\x25\xb0\x10\xd4\xb8\x0a\x5d\x10\x2d\xc3\x3a\x17\ +\xc1\x00\x50\xe3\x1a\x18\x00\x6a\x5c\x82\x97\xd4\xf9\xa1\xea\x5e\ +\x86\x08\x88\x1a\x97\x22\x02\xa2\xd4\x72\xd4\x6e\xaa\x94\xf4\xf3\ +\x37\xf3\x93\x64\xe6\x5b\x2b\xdf\xa0\x15\x77\xa8\x17\xf3\xdd\x18\ +\x9f\x56\x6c\x27\xb5\x89\xe6\xca\xaa\xbe\x02\x1d\xbf\x80\x41\xf4\ +\x8d\xbf\x2b\xc4\x84\xf5\x6c\xd9\x13\x2f\xb0\xe1\x89\x23\x89\x4a\ +\x46\x6e\x2d\xf2\x0e\x49\xb8\x4d\x86\x5e\x3d\xd6\x0f\x0e\xf0\x96\ +\x5d\x73\x26\x06\x7b\x7c\xdf\xfd\x0d\x6f\x6b\xf7\x5d\x2a\xcb\x5c\ +\x28\x5d\xcc\x0a\x4b\x2c\xe0\xdf\xd1\x14\xfb\x00\x88\x26\x4f\xe3\ +\xb8\xad\xf1\xac\xeb\x97\x79\x21\xb2\x2d\x91\x40\x25\xc5\xcf\xb2\ +\xdf\xbc\x7e\xe1\xe9\xdc\x4d\xd8\x59\x77\xbf\xbd\x25\x40\x68\xf8\ +\x08\x3c\x24\x9c\xca\x25\xcf\x02\x3f\x53\xfe\x61\xbd\x9d\x9f\x69\ +\xad\x7e\xa6\x05\xe9\xcd\x5b\xed\x67\x7a\x87\x47\x1c\xf0\xee\x33\ +\x0c\x97\x28\x7b\xee\x81\x82\xaa\x91\xcc\x09\x84\x9c\xe2\x45\x8b\ +\x81\xfd\xbc\x33\x32\x09\xe2\x45\xc5\x0b\x9f\x78\xc1\xf3\xb1\xe1\ +\x9c\x27\x83\xe0\x39\x3a\xad\xf0\xee\xe5\x28\x75\x26\x8c\xc3\xb8\ +\x2e\x73\xd1\x83\x85\x2a\x29\x14\x99\x36\x86\x03\xcd\x40\x5d\xd9\ +\x5e\xd6\xf3\x2d\x1b\x3b\x18\x92\xc0\xa6\xea\xa7\x72\x32\x39\x59\ +\x99\xe8\x2b\x6a\x17\x6b\x14\x6b\x61\xe5\xf7\x2c\x20\x66\x4e\x7a\ +\x5d\xed\x9f\xed\x93\x11\x95\x03\xee\x5f\xed\x37\x9b\xfb\x98\x6b\ +\xd4\x1e\xf3\xfb\x11\x1d\x87\xc9\x52\x9d\x3f\x3f\xe9\xe7\x37\x52\ +\x8c\x3e\x82\xb1\xd2\x15\x13\x89\xc9\x35\xa9\x56\xf0\x9e\x33\x51\ +\x81\x18\x99\x11\x95\x86\x24\x5e\x62\xa0\xd4\xec\xda\xd1\xdc\x1a\ +\xe3\x54\xc0\x9f\x2e\xd7\x4d\x40\xb2\x33\xdf\x55\x9d\xcf\xdf\xf5\ +\x7b\x20\xea\x6c\xc1\x9e\xe1\x26\x74\x7d\x61\x0f\x0d\xec\xe0\x15\ +\xa7\x9e\x18\x1c\x0e\x91\xb9\x74\x85\x46\x40\x7a\xdc\x7c\x40\xae\ +\xf1\x53\x4c\x2f\x27\x41\xa0\xcd\x9a\x0c\x40\x3e\x4d\xd4\x30\xac\ +\x9f\x07\x8c\x01\x56\x95\x83\x24\x25\xc0\x32\xa1\x79\x88\xbb\x79\ +\x20\x61\x6f\x2b\x03\xcb\xa6\xcc\x64\x23\x68\x56\xb9\x16\x50\x16\ +\xad\xd7\xc3\x45\x5d\x0f\x58\xf6\xb8\x7e\x36\x8a\xa2\xda\x35\xe1\ +\xc8\xec\x76\xe6\x00\x33\xab\x5d\x0b\x30\x61\x56\x41\x36\x30\x51\ +\xed\x5a\x80\x49\x64\x80\x65\x43\x94\x6a\x52\x1e\xac\x64\x01\xf6\ +\xd4\x96\x4c\x69\x41\xaa\xb4\xc8\x05\xdd\xeb\x33\x93\x9b\x6a\x66\ +\x31\x7b\x36\xa3\x2a\x00\x00\xfa\xce\xb8\xf4\x05\x03\xe9\xbe\x1d\ +\x17\xad\x93\x81\x4f\xbd\x8e\xe3\xe1\xa1\x47\xf7\x29\x9e\xb3\xc4\ +\x1d\x8c\x29\xd5\x2d\xc0\x04\x60\xfc\x36\xde\x57\xea\x28\x79\xbb\ +\x31\x6b\x62\xba\xf4\x44\xd0\x01\x35\xf8\xda\x9c\xea\x9c\xf5\x89\ +\xc5\x06\x23\xf8\xe5\x06\xab\x91\xf0\x37\x09\xa6\x63\x34\x35\xf5\ +\xf4\x12\x61\x8f\xf6\x7d\xe7\x12\x00\xbe\x0f\x1f\xa7\x9d\xe3\xf3\ +\xcb\x76\x63\x1a\xaa\x33\x7c\xfb\x61\x47\x2e\xc3\xaf\xcd\x68\xc3\ +\x38\xdd\xdb\x49\xf3\x3c\xd9\xdd\x45\x33\xab\x3b\xf3\x53\xd9\xa5\ +\x49\xa0\x76\xad\x98\x9e\x1d\x9f\xad\x16\xc7\x88\xd3\x04\x8e\x8f\ +\xcb\xe0\xf8\xf4\xbc\x99\xea\xee\xa4\x32\x1c\x9f\xac\x0e\xc7\x67\ +\xd5\xe2\xf8\x2c\x49\x78\xad\xf3\xa3\x55\xe2\xb8\x75\xde\xda\x40\ +\x1c\x87\xd7\xca\x57\x8c\xd9\xd6\x4a\x31\xdb\x3c\x5b\x1b\x66\x97\ +\x97\x10\xe1\x0d\x28\xd5\x62\xf6\xf4\x22\xc9\xc8\x67\xa7\x65\x30\ +\x7b\x7c\x7a\xb2\x05\xb2\x37\xbc\xe3\xa1\x5a\xcc\x1e\x1f\xa7\x30\ +\x7b\xbe\x4a\x9a\xad\x12\xb3\xe7\xe5\x25\x6e\x74\x4f\x76\xb5\x48\ +\x6e\xa6\xe8\xb7\x75\x59\x4a\x32\x9c\xa0\xbf\x26\xd1\x5d\xa6\x9a\ +\xdc\x14\xdb\x21\x76\xe7\x57\xc5\xd6\x43\xda\x42\x2b\x25\x25\x5a\ +\xad\xb3\xc7\x18\x23\xf3\xb1\x1c\x7f\x84\xfa\x76\x63\xc2\x3b\x7b\ +\xff\x07\xbf\xef\x72\xe5\ \x00\x00\x07\xb5\ \x00\ \x00\x1a\x6e\x78\x9c\xed\x58\x5d\x6f\xe3\xb8\x15\x7d\xcf\xaf\x50\ @@ -37873,59 +37878,59 @@ qt_resource_struct = "\ \x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x01\x64\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x04\xc4\ \x00\x00\x00\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x12\ -\x00\x00\x06\x02\x00\x01\x00\x00\x00\x01\x00\x07\x70\xc5\ -\x00\x00\x03\xb0\x00\x00\x00\x00\x00\x01\x00\x06\xc2\x72\ -\x00\x00\x08\x38\x00\x01\x00\x00\x00\x01\x00\x08\x24\x8f\ -\x00\x00\x0a\x7e\x00\x01\x00\x00\x00\x01\x00\x08\xe3\x77\ -\x00\x00\x04\xba\x00\x01\x00\x00\x00\x01\x00\x07\x0d\x59\ -\x00\x00\x06\x4a\x00\x00\x00\x00\x00\x01\x00\x07\x8e\x0f\ -\x00\x00\x07\x5e\x00\x01\x00\x00\x00\x01\x00\x07\xe6\xad\ -\x00\x00\x06\xbe\x00\x00\x00\x00\x00\x01\x00\x07\xb7\xde\ -\x00\x00\x08\xd2\x00\x01\x00\x00\x00\x01\x00\x08\x5e\x1e\ -\x00\x00\x0a\xce\x00\x01\x00\x00\x00\x01\x00\x08\xff\x87\ -\x00\x00\x03\xf6\x00\x01\x00\x00\x00\x01\x00\x06\xdb\x94\ -\x00\x00\x07\x84\x00\x01\x00\x00\x00\x01\x00\x07\xec\x71\ -\x00\x00\x06\x24\x00\x00\x00\x00\x00\x01\x00\x07\x7b\x79\ -\x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x06\xe1\x13\ -\x00\x00\x06\x92\x00\x01\x00\x00\x00\x01\x00\x07\xa6\xd4\ -\x00\x00\x03\xd2\x00\x01\x00\x00\x00\x01\x00\x06\xd1\x28\ -\x00\x00\x0a\x08\x00\x00\x00\x00\x00\x01\x00\x08\xc5\xbd\ -\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x06\x9c\xbc\ -\x00\x00\x05\x0a\x00\x01\x00\x00\x00\x01\x00\x07\x28\x78\ -\x00\x00\x09\xc0\x00\x01\x00\x00\x00\x01\x00\x08\xb1\xc7\ -\x00\x00\x09\xe2\x00\x01\x00\x00\x00\x01\x00\x08\xbc\x29\ -\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x07\x16\x5f\ -\x00\x00\x02\xfe\x00\x01\x00\x00\x00\x01\x00\x06\x95\x03\ -\x00\x00\x07\xee\x00\x01\x00\x00\x00\x01\x00\x08\x0d\x65\ -\x00\x00\x09\x2c\x00\x00\x00\x00\x00\x01\x00\x08\x6e\x66\ -\x00\x00\x05\x5e\x00\x01\x00\x00\x00\x01\x00\x07\x39\xe8\ -\x00\x00\x09\x50\x00\x00\x00\x00\x00\x01\x00\x08\x85\x19\ -\x00\x00\x07\x18\x00\x00\x00\x00\x00\x01\x00\x07\xce\x80\ -\x00\x00\x04\x6c\x00\x01\x00\x00\x00\x01\x00\x06\xfc\x7b\ -\x00\x00\x0a\x9e\x00\x00\x00\x00\x00\x01\x00\x08\xee\x11\ -\x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x07\x51\x27\ -\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x06\xa4\xc3\ -\x00\x00\x0a\xfe\x00\x00\x00\x00\x00\x01\x00\x09\x0b\x60\ -\x00\x00\x09\x98\x00\x00\x00\x00\x00\x01\x00\x08\xa2\xa0\ -\x00\x00\x03\x80\x00\x01\x00\x00\x00\x01\x00\x06\xb9\xe3\ -\x00\x00\x08\x5a\x00\x01\x00\x00\x00\x01\x00\x08\x2d\x38\ -\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x08\xce\x4a\ -\x00\x00\x05\xe0\x00\x01\x00\x00\x00\x01\x00\x07\x63\x66\ -\x00\x00\x06\xf0\x00\x01\x00\x00\x00\x01\x00\x07\xc4\xcf\ -\x00\x00\x08\xb0\x00\x00\x00\x00\x00\x01\x00\x08\x49\x8d\ -\x00\x00\x04\x90\x00\x01\x00\x00\x00\x01\x00\x07\x03\x18\ -\x00\x00\x07\x3e\x00\x01\x00\x00\x00\x01\x00\x07\xe0\x38\ -\x00\x00\x05\x3e\x00\x01\x00\x00\x00\x01\x00\x07\x34\x69\ -\x00\x00\x08\xfc\x00\x01\x00\x00\x00\x01\x00\x08\x64\x93\ -\x00\x00\x07\xc6\x00\x01\x00\x00\x00\x01\x00\x08\x01\xf3\ -\x00\x00\x08\x10\x00\x01\x00\x00\x00\x01\x00\x08\x14\xb9\ -\x00\x00\x0a\x54\x00\x01\x00\x00\x00\x01\x00\x08\xd8\xf5\ -\x00\x00\x09\x74\x00\x01\x00\x00\x00\x01\x00\x08\x97\xf0\ -\x00\x00\x04\x3c\x00\x01\x00\x00\x00\x01\x00\x06\xf4\x32\ -\x00\x00\x07\xa6\x00\x00\x00\x00\x00\x01\x00\x07\xf2\x21\ -\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x07\x41\xcd\ -\x00\x00\x06\x72\x00\x01\x00\x00\x00\x01\x00\x07\x9d\x60\ -\x00\x00\x08\x7e\x00\x00\x00\x00\x00\x01\x00\x08\x34\x89\ +\x00\x00\x06\x02\x00\x01\x00\x00\x00\x01\x00\x07\x71\x1b\ +\x00\x00\x03\xb0\x00\x00\x00\x00\x00\x01\x00\x06\xc2\xc8\ +\x00\x00\x08\x38\x00\x01\x00\x00\x00\x01\x00\x08\x24\xe5\ +\x00\x00\x0a\x7e\x00\x01\x00\x00\x00\x01\x00\x08\xe3\xcd\ +\x00\x00\x04\xba\x00\x01\x00\x00\x00\x01\x00\x07\x0d\xaf\ +\x00\x00\x06\x4a\x00\x00\x00\x00\x00\x01\x00\x07\x8e\x65\ +\x00\x00\x07\x5e\x00\x01\x00\x00\x00\x01\x00\x07\xe7\x03\ +\x00\x00\x06\xbe\x00\x00\x00\x00\x00\x01\x00\x07\xb8\x34\ +\x00\x00\x08\xd2\x00\x01\x00\x00\x00\x01\x00\x08\x5e\x74\ +\x00\x00\x0a\xce\x00\x01\x00\x00\x00\x01\x00\x08\xff\xdd\ +\x00\x00\x03\xf6\x00\x01\x00\x00\x00\x01\x00\x06\xdb\xea\ +\x00\x00\x07\x84\x00\x01\x00\x00\x00\x01\x00\x07\xec\xc7\ +\x00\x00\x06\x24\x00\x00\x00\x00\x00\x01\x00\x07\x7b\xcf\ +\x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x06\xe1\x69\ +\x00\x00\x06\x92\x00\x01\x00\x00\x00\x01\x00\x07\xa7\x2a\ +\x00\x00\x03\xd2\x00\x01\x00\x00\x00\x01\x00\x06\xd1\x7e\ +\x00\x00\x0a\x08\x00\x00\x00\x00\x00\x01\x00\x08\xc6\x13\ +\x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x06\x9d\x12\ +\x00\x00\x05\x0a\x00\x01\x00\x00\x00\x01\x00\x07\x28\xce\ +\x00\x00\x09\xc0\x00\x01\x00\x00\x00\x01\x00\x08\xb2\x1d\ +\x00\x00\x09\xe2\x00\x01\x00\x00\x00\x01\x00\x08\xbc\x7f\ +\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x07\x16\xb5\ +\x00\x00\x02\xfe\x00\x01\x00\x00\x00\x01\x00\x06\x95\x59\ +\x00\x00\x07\xee\x00\x01\x00\x00\x00\x01\x00\x08\x0d\xbb\ +\x00\x00\x09\x2c\x00\x00\x00\x00\x00\x01\x00\x08\x6e\xbc\ +\x00\x00\x05\x5e\x00\x01\x00\x00\x00\x01\x00\x07\x3a\x3e\ +\x00\x00\x09\x50\x00\x00\x00\x00\x00\x01\x00\x08\x85\x6f\ +\x00\x00\x07\x18\x00\x00\x00\x00\x00\x01\x00\x07\xce\xd6\ +\x00\x00\x04\x6c\x00\x01\x00\x00\x00\x01\x00\x06\xfc\xd1\ +\x00\x00\x0a\x9e\x00\x00\x00\x00\x00\x01\x00\x08\xee\x67\ +\x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x07\x51\x7d\ +\x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x06\xa5\x19\ +\x00\x00\x0a\xfe\x00\x00\x00\x00\x00\x01\x00\x09\x0b\xb6\ +\x00\x00\x09\x98\x00\x00\x00\x00\x00\x01\x00\x08\xa2\xf6\ +\x00\x00\x03\x80\x00\x01\x00\x00\x00\x01\x00\x06\xba\x39\ +\x00\x00\x08\x5a\x00\x01\x00\x00\x00\x01\x00\x08\x2d\x8e\ +\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x08\xce\xa0\ +\x00\x00\x05\xe0\x00\x01\x00\x00\x00\x01\x00\x07\x63\xbc\ +\x00\x00\x06\xf0\x00\x01\x00\x00\x00\x01\x00\x07\xc5\x25\ +\x00\x00\x08\xb0\x00\x00\x00\x00\x00\x01\x00\x08\x49\xe3\ +\x00\x00\x04\x90\x00\x01\x00\x00\x00\x01\x00\x07\x03\x6e\ +\x00\x00\x07\x3e\x00\x01\x00\x00\x00\x01\x00\x07\xe0\x8e\ +\x00\x00\x05\x3e\x00\x01\x00\x00\x00\x01\x00\x07\x34\xbf\ +\x00\x00\x08\xfc\x00\x01\x00\x00\x00\x01\x00\x08\x64\xe9\ +\x00\x00\x07\xc6\x00\x01\x00\x00\x00\x01\x00\x08\x02\x49\ +\x00\x00\x08\x10\x00\x01\x00\x00\x00\x01\x00\x08\x15\x0f\ +\x00\x00\x0a\x54\x00\x01\x00\x00\x00\x01\x00\x08\xd9\x4b\ +\x00\x00\x09\x74\x00\x01\x00\x00\x00\x01\x00\x08\x98\x46\ +\x00\x00\x04\x3c\x00\x01\x00\x00\x00\x01\x00\x06\xf4\x88\ +\x00\x00\x07\xa6\x00\x00\x00\x00\x00\x01\x00\x07\xf2\x77\ +\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x07\x42\x23\ +\x00\x00\x06\x72\x00\x01\x00\x00\x00\x01\x00\x07\x9d\xb6\ +\x00\x00\x08\x7e\x00\x00\x00\x00\x00\x01\x00\x08\x34\xdf\ \x00\x00\x02\xaa\x00\x01\x00\x00\x00\x01\x00\x06\x7b\xb1\ \x00\x00\x02\xd6\x00\x01\x00\x00\x00\x01\x00\x06\x85\x1e\ " diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index ea71b0d00..8f74063b8 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -230,7 +230,9 @@ class DraftWorkbench (Workbench): def GetClassName(self): return "Gui::PythonWorkbench" -FreeCADGui.addWorkbench(DraftWorkbench) +# ability to turn off the Draft workbench (since it is also all included in Arch) +if not FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Draft").GetBool("hideDraftWorkbench"): + FreeCADGui.addWorkbench(DraftWorkbench) App.addImportType("Autodesk DXF (*.dxf)","importDXF") App.addImportType("SVG as geometry (*.svg)","importSVG") App.addImportType("Open CAD Format (*.oca *.gcad)","importOCA") diff --git a/src/Mod/Draft/Resources/ui/userprefs-base.ui b/src/Mod/Draft/Resources/ui/userprefs-base.ui index ebf2bdbd9..a24aa0db6 100755 --- a/src/Mod/Draft/Resources/ui/userprefs-base.ui +++ b/src/Mod/Draft/Resources/ui/userprefs-base.ui @@ -28,11 +28,30 @@ + + + + If this is checked, the Draft workbench won't appear. Useful since all of the Draft tools are also in the Arch workbench. + + + Hide Draft workbench + + + hideDraftWorkbench + + + Mod/Draft + + + Draft interface mode + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + From 3a8f6dff5993e548cedf12cd66ecb688572848a8 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 16 Aug 2012 16:09:56 -0300 Subject: [PATCH 60/98] Updated translation files --- src/Gui/Language/FreeCAD.ts | 465 +- src/Gui/Language/FreeCAD_af.ts | 6142 +++++++++-------- src/Gui/Language/FreeCAD_de.ts | 474 +- src/Gui/Language/FreeCAD_es.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_fi.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_fr.ts | 6134 ++++++++-------- src/Gui/Language/FreeCAD_hr.ts | 6122 ++++++++-------- src/Gui/Language/FreeCAD_hu.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_it.ts | 6140 ++++++++-------- src/Gui/Language/FreeCAD_ja.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_nl.ts | 6122 ++++++++-------- src/Gui/Language/FreeCAD_no.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_pl.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_pt.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_ru.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_se.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_uk.ts | 6132 ++++++++-------- src/Gui/Language/FreeCAD_zh.ts | 6132 ++++++++-------- src/Mod/Arch/Resources/translations/Arch.ts | 696 +- .../Gui/Resources/translations/Assembly_af.ts | 40 +- .../Gui/Resources/translations/Assembly_de.ts | 40 +- .../Gui/Resources/translations/Assembly_es.ts | 40 +- .../Gui/Resources/translations/Assembly_fi.ts | 40 +- .../Gui/Resources/translations/Assembly_fr.ts | 40 +- .../Gui/Resources/translations/Assembly_hr.ts | 40 +- .../Gui/Resources/translations/Assembly_hu.ts | 40 +- .../Gui/Resources/translations/Assembly_it.ts | 40 +- .../Gui/Resources/translations/Assembly_ja.ts | 40 +- .../Gui/Resources/translations/Assembly_nl.ts | 40 +- .../Gui/Resources/translations/Assembly_no.ts | 40 +- .../Gui/Resources/translations/Assembly_pl.ts | 40 +- .../Gui/Resources/translations/Assembly_pt.ts | 40 +- .../Gui/Resources/translations/Assembly_ru.ts | 40 +- .../Gui/Resources/translations/Assembly_se.ts | 40 +- .../Gui/Resources/translations/Assembly_uk.ts | 40 +- .../Gui/Resources/translations/Assembly_zh.ts | 40 +- .../Gui/Resources/translations/Complete_af.ts | 85 +- .../Gui/Resources/translations/Complete_de.ts | 85 +- .../Gui/Resources/translations/Complete_es.ts | 85 +- .../Gui/Resources/translations/Complete_fi.ts | 85 +- .../Gui/Resources/translations/Complete_fr.ts | 85 +- .../Gui/Resources/translations/Complete_hr.ts | 85 +- .../Gui/Resources/translations/Complete_hu.ts | 85 +- .../Gui/Resources/translations/Complete_it.ts | 85 +- .../Gui/Resources/translations/Complete_ja.ts | 85 +- .../Gui/Resources/translations/Complete_nl.ts | 85 +- .../Gui/Resources/translations/Complete_no.ts | 85 +- .../Gui/Resources/translations/Complete_pl.ts | 85 +- .../Gui/Resources/translations/Complete_pt.ts | 85 +- .../Gui/Resources/translations/Complete_ru.ts | 85 +- .../Gui/Resources/translations/Complete_se.ts | 85 +- .../Gui/Resources/translations/Complete_uk.ts | 85 +- .../Gui/Resources/translations/Complete_zh.ts | 85 +- src/Mod/Draft/Resources/translations/Draft.ts | 951 ++- .../Gui/Resources/translations/Drawing_af.ts | 653 +- .../Gui/Resources/translations/Drawing_de.ts | 653 +- .../Gui/Resources/translations/Drawing_es.ts | 653 +- .../Gui/Resources/translations/Drawing_fi.ts | 653 +- .../Gui/Resources/translations/Drawing_fr.ts | 653 +- .../Gui/Resources/translations/Drawing_hr.ts | 653 +- .../Gui/Resources/translations/Drawing_hu.ts | 653 +- .../Gui/Resources/translations/Drawing_it.ts | 653 +- .../Gui/Resources/translations/Drawing_ja.ts | 653 +- .../Gui/Resources/translations/Drawing_nl.ts | 653 +- .../Gui/Resources/translations/Drawing_no.ts | 653 +- .../Gui/Resources/translations/Drawing_pl.ts | 653 +- .../Gui/Resources/translations/Drawing_pt.ts | 653 +- .../Gui/Resources/translations/Drawing_ru.ts | 653 +- .../Gui/Resources/translations/Drawing_se.ts | 653 +- .../Gui/Resources/translations/Drawing_uk.ts | 653 +- .../Gui/Resources/translations/Drawing_zh.ts | 653 +- .../Fem/Gui/Resources/translations/Fem_af.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_de.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_es.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_fi.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_fr.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_hr.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_hu.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_it.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_ja.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_nl.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_no.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_pl.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_pt.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_ru.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_se.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_uk.ts | 65 +- .../Fem/Gui/Resources/translations/Fem_zh.ts | 65 +- .../Gui/Resources/translations/Image_af.ts | 192 +- .../Gui/Resources/translations/Image_de.ts | 192 +- .../Gui/Resources/translations/Image_es.ts | 192 +- .../Gui/Resources/translations/Image_fi.ts | 192 +- .../Gui/Resources/translations/Image_fr.ts | 192 +- .../Gui/Resources/translations/Image_hr.ts | 192 +- .../Gui/Resources/translations/Image_hu.ts | 192 +- .../Gui/Resources/translations/Image_it.ts | 192 +- .../Gui/Resources/translations/Image_ja.ts | 192 +- .../Gui/Resources/translations/Image_nl.ts | 192 +- .../Gui/Resources/translations/Image_no.ts | 192 +- .../Gui/Resources/translations/Image_pl.ts | 192 +- .../Gui/Resources/translations/Image_pt.ts | 192 +- .../Gui/Resources/translations/Image_ru.ts | 192 +- .../Gui/Resources/translations/Image_se.ts | 192 +- .../Gui/Resources/translations/Image_uk.ts | 192 +- .../Gui/Resources/translations/Image_zh.ts | 192 +- .../Gui/Resources/translations/Mesh_af.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_de.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_es.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_fi.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_fr.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_hr.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_hu.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_it.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_ja.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_nl.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_no.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_pl.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_pt.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_ru.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_se.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_uk.ts | 1243 ++-- .../Gui/Resources/translations/Mesh_zh.ts | 1243 ++-- .../Gui/Resources/translations/MeshPart_af.ts | 73 +- .../Gui/Resources/translations/MeshPart_de.ts | 73 +- .../Gui/Resources/translations/MeshPart_es.ts | 73 +- .../Gui/Resources/translations/MeshPart_fi.ts | 73 +- .../Gui/Resources/translations/MeshPart_fr.ts | 73 +- .../Gui/Resources/translations/MeshPart_hr.ts | 73 +- .../Gui/Resources/translations/MeshPart_hu.ts | 73 +- .../Gui/Resources/translations/MeshPart_it.ts | 73 +- .../Gui/Resources/translations/MeshPart_ja.ts | 73 +- .../Gui/Resources/translations/MeshPart_nl.ts | 73 +- .../Gui/Resources/translations/MeshPart_no.ts | 73 +- .../Gui/Resources/translations/MeshPart_pl.ts | 73 +- .../Gui/Resources/translations/MeshPart_pt.ts | 73 +- .../Gui/Resources/translations/MeshPart_ru.ts | 73 +- .../Gui/Resources/translations/MeshPart_se.ts | 73 +- .../Gui/Resources/translations/MeshPart_uk.ts | 73 +- .../Gui/Resources/translations/MeshPart_zh.ts | 73 +- .../Gui/Resources/translations/Part_af.ts | 2626 ++++--- .../Gui/Resources/translations/Part_de.ts | 2624 ++++--- .../Gui/Resources/translations/Part_es.ts | 2624 ++++--- .../Gui/Resources/translations/Part_fi.ts | 2624 ++++--- .../Gui/Resources/translations/Part_fr.ts | 2624 ++++--- .../Gui/Resources/translations/Part_hr.ts | 2624 ++++--- .../Gui/Resources/translations/Part_hu.ts | 2624 ++++--- .../Gui/Resources/translations/Part_it.ts | 2624 ++++--- .../Gui/Resources/translations/Part_ja.ts | 2624 ++++--- .../Gui/Resources/translations/Part_nl.ts | 2624 ++++--- .../Gui/Resources/translations/Part_no.ts | 2624 ++++--- .../Gui/Resources/translations/Part_pl.ts | 2624 ++++--- .../Gui/Resources/translations/Part_pt.ts | 2624 ++++--- .../Gui/Resources/translations/Part_ru.ts | 2624 ++++--- .../Gui/Resources/translations/Part_se.ts | 2624 ++++--- .../Gui/Resources/translations/Part_uk.ts | 2624 ++++--- .../Gui/Resources/translations/Part_zh.ts | 2624 ++++--- .../Resources/translations/PartDesign_af.ts | 803 ++- .../Resources/translations/PartDesign_de.ts | 801 ++- .../Resources/translations/PartDesign_es.ts | 801 ++- .../Resources/translations/PartDesign_fi.ts | 801 ++- .../Resources/translations/PartDesign_fr.ts | 801 ++- .../Resources/translations/PartDesign_hr.ts | 801 ++- .../Resources/translations/PartDesign_hu.ts | 801 ++- .../Resources/translations/PartDesign_it.ts | 801 ++- .../Resources/translations/PartDesign_ja.ts | 801 ++- .../Resources/translations/PartDesign_nl.ts | 801 ++- .../Resources/translations/PartDesign_no.ts | 801 ++- .../Resources/translations/PartDesign_pl.ts | 801 ++- .../Resources/translations/PartDesign_pt.ts | 801 ++- .../Resources/translations/PartDesign_ru.ts | 801 ++- .../Resources/translations/PartDesign_se.ts | 801 ++- .../Resources/translations/PartDesign_uk.ts | 801 ++- .../Resources/translations/PartDesign_zh.ts | 801 ++- .../Gui/Resources/translations/Points_af.ts | 260 +- .../Gui/Resources/translations/Points_de.ts | 260 +- .../Gui/Resources/translations/Points_es.ts | 260 +- .../Gui/Resources/translations/Points_fi.ts | 260 +- .../Gui/Resources/translations/Points_fr.ts | 260 +- .../Gui/Resources/translations/Points_hr.ts | 260 +- .../Gui/Resources/translations/Points_hu.ts | 260 +- .../Gui/Resources/translations/Points_it.ts | 260 +- .../Gui/Resources/translations/Points_ja.ts | 260 +- .../Gui/Resources/translations/Points_nl.ts | 260 +- .../Gui/Resources/translations/Points_no.ts | 260 +- .../Gui/Resources/translations/Points_pl.ts | 260 +- .../Gui/Resources/translations/Points_pt.ts | 260 +- .../Gui/Resources/translations/Points_ru.ts | 260 +- .../Gui/Resources/translations/Points_se.ts | 260 +- .../Gui/Resources/translations/Points_uk.ts | 260 +- .../Gui/Resources/translations/Points_zh.ts | 260 +- .../Resources/translations/Raytracing_af.ts | 262 +- .../Resources/translations/Raytracing_de.ts | 262 +- .../Resources/translations/Raytracing_es.ts | 262 +- .../Resources/translations/Raytracing_fi.ts | 262 +- .../Resources/translations/Raytracing_fr.ts | 262 +- .../Resources/translations/Raytracing_hr.ts | 262 +- .../Resources/translations/Raytracing_hu.ts | 262 +- .../Resources/translations/Raytracing_it.ts | 262 +- .../Resources/translations/Raytracing_ja.ts | 262 +- .../Resources/translations/Raytracing_nl.ts | 262 +- .../Resources/translations/Raytracing_no.ts | 262 +- .../Resources/translations/Raytracing_pl.ts | 262 +- .../Resources/translations/Raytracing_pt.ts | 262 +- .../Resources/translations/Raytracing_ru.ts | 262 +- .../Resources/translations/Raytracing_se.ts | 262 +- .../Resources/translations/Raytracing_uk.ts | 262 +- .../Resources/translations/Raytracing_zh.ts | 262 +- .../translations/ReverseEngineering_af.ts | 51 +- .../translations/ReverseEngineering_de.ts | 51 +- .../translations/ReverseEngineering_es.ts | 51 +- .../translations/ReverseEngineering_fi.ts | 51 +- .../translations/ReverseEngineering_fr.ts | 51 +- .../translations/ReverseEngineering_hr.ts | 51 +- .../translations/ReverseEngineering_hu.ts | 51 +- .../translations/ReverseEngineering_it.ts | 51 +- .../translations/ReverseEngineering_ja.ts | 51 +- .../translations/ReverseEngineering_nl.ts | 51 +- .../translations/ReverseEngineering_no.ts | 51 +- .../translations/ReverseEngineering_pl.ts | 51 +- .../translations/ReverseEngineering_pt.ts | 51 +- .../translations/ReverseEngineering_ru.ts | 51 +- .../translations/ReverseEngineering_se.ts | 51 +- .../translations/ReverseEngineering_uk.ts | 51 +- .../translations/ReverseEngineering_zh.ts | 51 +- .../Gui/Resources/translations/Robot_af.ts | 1129 +-- .../Gui/Resources/translations/Robot_de.ts | 1129 +-- .../Gui/Resources/translations/Robot_es.ts | 1129 +-- .../Gui/Resources/translations/Robot_fi.ts | 1129 +-- .../Gui/Resources/translations/Robot_fr.ts | 1129 +-- .../Gui/Resources/translations/Robot_hr.ts | 1129 +-- .../Gui/Resources/translations/Robot_hu.ts | 1129 +-- .../Gui/Resources/translations/Robot_it.ts | 1129 +-- .../Gui/Resources/translations/Robot_ja.ts | 1129 +-- .../Gui/Resources/translations/Robot_nl.ts | 1129 +-- .../Gui/Resources/translations/Robot_no.ts | 1129 +-- .../Gui/Resources/translations/Robot_pl.ts | 1129 +-- .../Gui/Resources/translations/Robot_pt.ts | 1129 +-- .../Gui/Resources/translations/Robot_ru.ts | 1129 +-- .../Gui/Resources/translations/Robot_se.ts | 1129 +-- .../Gui/Resources/translations/Robot_uk.ts | 1129 +-- .../Gui/Resources/translations/Robot_zh.ts | 1129 +-- .../Gui/Resources/translations/Sketcher_af.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_de.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_es.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_fi.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_fr.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_hr.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_hu.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_it.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_ja.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_nl.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_no.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_pl.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_pt.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_ru.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_se.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_uk.ts | 1361 ++-- .../Gui/Resources/translations/Sketcher_zh.ts | 1361 ++-- .../Gui/Resources/translations/StartPage.ts | 96 +- .../Gui/Resources/translations/Test_af.ts | 108 +- .../Gui/Resources/translations/Test_de.ts | 106 +- .../Gui/Resources/translations/Test_es.ts | 106 +- .../Gui/Resources/translations/Test_fi.ts | 106 +- .../Gui/Resources/translations/Test_fr.ts | 110 +- .../Gui/Resources/translations/Test_hr.ts | 106 +- .../Gui/Resources/translations/Test_hu.ts | 106 +- .../Gui/Resources/translations/Test_it.ts | 108 +- .../Gui/Resources/translations/Test_ja.ts | 106 +- .../Gui/Resources/translations/Test_nl.ts | 106 +- .../Gui/Resources/translations/Test_no.ts | 106 +- .../Gui/Resources/translations/Test_pl.ts | 106 +- .../Gui/Resources/translations/Test_pt.ts | 106 +- .../Gui/Resources/translations/Test_ru.ts | 106 +- .../Gui/Resources/translations/Test_se.ts | 106 +- .../Gui/Resources/translations/Test_uk.ts | 106 +- .../Gui/Resources/translations/Test_zh.ts | 106 +- 276 files changed, 148579 insertions(+), 104292 deletions(-) diff --git a/src/Gui/Language/FreeCAD.ts b/src/Gui/Language/FreeCAD.ts index 024b5a7f1..107a438bf 100644 --- a/src/Gui/Language/FreeCAD.ts +++ b/src/Gui/Language/FreeCAD.ts @@ -63,6 +63,44 @@ + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + + + + Remove + + + + Move up + + + + Move down + + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + Gui::BlenderNavigationStyle @@ -160,6 +198,10 @@ License... + + Copy to clipboard + + Gui::Dialog::ButtonModel @@ -708,10 +750,6 @@ Please define another shortcut. Viewing mode - - Display mode: - - Plot mode: @@ -736,6 +774,10 @@ Please define another shortcut. Color plot: + + Document window: + + Gui::Dialog::DlgEditorSettings @@ -1482,6 +1524,14 @@ Specify another directory, please. Invert zoom + + Zoom at cursor + + + + Zoom step + + Gui::Dialog::DlgSettings3DViewImp @@ -1722,6 +1772,10 @@ Specify another directory, please. Items + + Current line highlight + + Gui::Dialog::DlgSettingsImage @@ -1956,6 +2010,14 @@ Specify another directory, please. Macro path + + General macro settings + + + + Run macros in local environment + + Gui::Dialog::DlgSettingsUnits @@ -2046,14 +2108,6 @@ Specify another directory, please. Fully constrained geometry - - The color of construction geometry in editmode - - - - The color of fully constrained geometry in editmode - - The color of vertices being edited @@ -2062,6 +2116,42 @@ Specify another directory, please. The color of edges being edited + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + Gui::Dialog::DlgTipOfTheDay @@ -2124,7 +2214,39 @@ Specify another directory, please. Gui::Dialog::DownloadDialog - Canceled. + Download + + + + Cancel + + + + Close + + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + + + + Downloaded %1 to current directory. @@ -2162,6 +2284,13 @@ Specify another directory, please. + + Gui::Dialog::LicenseDialog + + Copyright + + + Gui::Dialog::MouseButtons @@ -2847,6 +2976,25 @@ Do you want to save your changes? + + Gui::LocationWidget + + X: + + + + Y: + + + + Z: + + + + Direction: + + + Gui::MacroCommand @@ -2877,6 +3025,88 @@ Do you want to save your changes? + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + Gui::NetworkRetriever @@ -3020,6 +3250,10 @@ Do you want to exit without saving your data? Select All + + Clear console + + Gui::PythonEditor @@ -3158,10 +3392,6 @@ Do you want to specify another directory? Gui::TaskView::TaskAppearance - - Display mode: - - Plot mode: @@ -3182,6 +3412,10 @@ Do you want to specify another directory? Appearance + + Document window: + + Gui::TaskView::TaskEditControl @@ -3206,9 +3440,21 @@ Do you want to specify another directory? - Gui::Translator + Gui::TouchpadNavigationStyle - English + Press left mouse button + + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button @@ -3464,14 +3710,6 @@ Do you want to specify another directory? A general error occurred while loading the workbench - - File not found - - - - Cannot open file %1 - - Save views... @@ -3769,6 +4007,17 @@ You either have to finish or cancel the editing in the task panel. + + StdBoxSelection + + Standard-View + + + + Box selection + + + StdCmdAbout @@ -3829,6 +4078,21 @@ You either have to finish or cancel the editing in the task panel. + + StdCmdAlignment + + Edit + + + + Alignment... + + + + Align the selected objects + + + StdCmdArrangeIcons @@ -3945,21 +4209,6 @@ You either have to finish or cancel the editing in the task panel. - - StdCmdDDuplicateSelection - - Edit - - - - Duplicate selection - - - - Put duplicates of the selected objects to the active document - - - StdCmdDelete @@ -4106,6 +4355,40 @@ You either have to finish or cancel the editing in the task panel. + + StdCmdDuplicateSelection + + Edit + + + + Duplicate selection + + + + Put duplicates of the selected objects to the active document + + + + + StdCmdEdit + + Edit + + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + StdCmdExport @@ -4121,7 +4404,26 @@ You either have to finish or cancel the editing in the task panel. - Supported formats + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document @@ -4297,11 +4599,11 @@ You either have to finish or cancel the editing in the task panel. - Mesure distance + Measures distance between two selected objects - Measures distance between two selected objects + Measure distance @@ -4354,21 +4656,6 @@ You either have to finish or cancel the editing in the task panel. - - StdCmdOnlineHelpPython - - Help - - - - Python Manuals - - - - Show the Python documentation - - - StdCmdOnlineHelpWebsite @@ -5183,6 +5470,36 @@ You either have to finish or cancel the editing in the task panel. + + StdCmdViewRotateLeft + + Standard-View + + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + StdCmdViewTop @@ -5366,6 +5683,34 @@ You either have to finish or cancel the editing in the task panel. + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + Workbench diff --git a/src/Gui/Language/FreeCAD_af.ts b/src/Gui/Language/FreeCAD_af.ts index 4ba0e26ca..d2ddf2c47 100644 --- a/src/Gui/Language/FreeCAD_af.ts +++ b/src/Gui/Language/FreeCAD_af.ts @@ -1,5488 +1,5906 @@ - - + + Angle - Form - Vorm + Form + Vorm - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Hoekspronge + Angle Snap + Hoekspronge - - 1 ° - 1° + + 1 ° + 1° - - 2 ° - 2° + + 2 ° + 2° - - 5 ° - 5° + + 5 ° + 5° - - 10 ° - 10° + + 10 ° + 10° - - 20 ° - 20° + + 20 ° + 20° - - 45 ° - 45° + + 45 ° + 45° - - 90 ° - 90° + + 90 ° + 90° - - 180 ° - 180° + + 180 ° + 180° - - + + Gui::AccelLineEdit - none - geen + none + geen - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Voeg by + + + Remove + Verwyder + + + Move up + Skuif op + + + Move down + Skuif neer + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Druk linker muisknoppie + Press left mouse button + Druk linker muisknoppie - Press SHIFT and middle mouse button - Press SHIFT and middle mouse button + Press SHIFT and middle mouse button + Press SHIFT and middle mouse button - Press middle mouse button - Druk middelste muisknoppie + Press middle mouse button + Druk middelste muisknoppie - Scroll middle mouse button - Blaai neer met middelste muisknoppie + Scroll middle mouse button + Blaai neer met middelste muisknoppie - - + + Gui::CADNavigationStyle - Press left mouse button - Druk linker muisknoppie + Press left mouse button + Druk linker muisknoppie - Press middle mouse button - Druk middelste muisknoppie + Press middle mouse button + Druk middelste muisknoppie - Press left and middle mouse button - Druk linker- en middelste muisknoppie + Press left and middle mouse button + Druk linker- en middelste muisknoppie - Scroll middle mouse button - Blaai neer met middelste muisknoppie + Scroll middle mouse button + Blaai neer met middelste muisknoppie - - + + Gui::Command - Standard - Standaard + Standard + Standaard - - + + Gui::ContainerDialog - &OK - &Goedgekeur + &OK + &Goedgekeur - &Cancel - &Kanselleer + &Cancel + &Kanselleer - - + + Gui::ControlSingleton - Task panel - Taakpaneel + Task panel + Taakpaneel - - + + Gui::Dialog::AboutApplication - About - Aangaande + About + Aangaande - Revision number - Hersieningsnommer + Revision number + Hersieningsnommer - Version - Weergawe + Version + Weergawe - OK - Goed + OK + Goed - - + + - Release date - Uitgawedatum + Release date + Uitgawedatum - Platform - Platform + Platform + Platform - License... - License... + License... + License... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Bevele + Commands + Bevele - - + + Gui::Dialog::DemoMode - View Turntable - Kyk na Draaitafel + View Turntable + Kyk na Draaitafel - Speed - Spoed + Speed + Spoed - Maximum - Maksimum + Maximum + Maksimum - Minimum - Minimum + Minimum + Minimum - Fullscreen - Volskerm + Fullscreen + Volskerm - Enable timer - Aktiveer tydhouer + Enable timer + Aktiveer tydhouer - s - s + s + s - Angle - Hoek + Angle + Hoek + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Speel - -90° - -90° + Stop + Stop - Play - Speel + Close + Maak toe - - Stop - Stop - - - Close - Maak toe - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Kies Venster + Choose Window + Kies Venster - &Activate - &Aktiveer + &Activate + &Aktiveer - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Kanselleer + &Cancel + &Kanselleer - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Vensters + Windows + Vensters - - + + Gui::Dialog::DlgAuthorization - Authorization - Magtiging + Authorization + Magtiging - &OK - &Goedgekeur + &OK + &Goedgekeur - &Cancel - &Kanselleer + &Cancel + &Kanselleer - Password: - Wagwoord: + Password: + Wagwoord: - User name: - Gebruikersnaam: + User name: + Gebruikersnaam: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Kies ikoon + Choose Icon + Kies ikoon - OK - Goed + OK + Goed - Cancel - Kanselleer + Cancel + Kanselleer - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - Makros + Macros + Makros - Setup Custom Macros - Maak Pasgemaakte Makros + Setup Custom Macros + Maak Pasgemaakte Makros - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Beeldelementkaart + Pixmap + Beeldelementkaart - Accelerator: - Versneller: + Accelerator: + Versneller: - What's this: - Wat is dit: + What's this: + Wat is dit: - Status text: - Status teks: + Status text: + Status teks: - Tool tip: - Werktuigwenk: + Tool tip: + Werktuigwenk: - Menu text: - Kieslys teks: + Menu text: + Kieslys teks: - Add - Voeg by + Add + Voeg by - Remove - Verwyder + Remove + Verwyder - Replace - Vervang + Replace + Vervang - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikone + Icons + Ikone - Macros - Makros + Macros + Makros - No macro - Geen makro + No macro + Geen makro - No macros found. - Geen makros gevind nie. + No macros found. + Geen makros gevind nie. - Macro not found - Makro nie gevind nie + Macro not found + Makro nie gevind nie - Sorry, couldn't find macro file '%1'. - Jammer, kon nie die makro-lêer '%1' vind nie. + Sorry, couldn't find macro file '%1'. + Jammer, kon nie die makro-lêer '%1' vind nie. - Empty macro - Leë makro + Empty macro + Leë makro - Please specify the macro first. - Kies asseblief eers 'n makro. + Please specify the macro first. + Kies asseblief eers 'n makro. - Empty text - Leë teks + Empty text + Leë teks - Please specify the menu text first. - Spesifiseer asseblief eers die kieslysteks. + Please specify the menu text first. + Spesifiseer asseblief eers die kieslysteks. - No item selected - Geen item gekies + No item selected + Geen item gekies - Please select a macro item first. - Kies eers 'n makro-item. + Please select a macro item first. + Kies eers 'n makro-item. - - + + Gui::Dialog::DlgCustomCommands - Commands - Bevele + Commands + Bevele - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategorie + Category + Kategorie - Icon - Ikoon + Icon + Ikoon - Command - Bevel + Command + Bevel - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Sleutelbord + Keyboard + Sleutelbord - Description: - Beskrywing: + Description: + Beskrywing: - &Category: - &Kategorie: + &Category: + &Kategorie: - C&ommands: - &Bevele: + C&ommands: + &Bevele: - Current shortcut: - Huidige kortpad: + Current shortcut: + Huidige kortpad: - Press &new shortcut: - Druk & nuwe kortpad: + Press &new shortcut: + Druk & nuwe kortpad: - Currently assigned to: - Tans toegeken aan: + Currently assigned to: + Tans toegeken aan: - &Assign - &KenToe + &Assign + &KenToe - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - Herstel + &Reset + Herstel - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - &Herstel Alles + Re&set All + &Herstel Alles - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikoon + Icon + Ikoon - Command - Bevel + Command + Bevel - none - geen + none + geen - Multiple defined shortcut - Veelvuldig gedefinieerde kortpad + Multiple defined shortcut + Veelvuldig gedefinieerde kortpad - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Die kortpad '%1' is meer as een keer gedefinieer. Dit kan lei tot onverwagte gedrag. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Die kortpad '%1' is meer as een keer gedefinieer. Dit kan lei tot onverwagte gedrag. - Already defined shortcut - Reeds gedefinieerde kortpad + Already defined shortcut + Reeds gedefinieerde kortpad - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Die kortpad '%1' is reeds toegeken aan '%2'. -Definieer asseblief 'n ander kortpad. + Die kortpad '%1' is reeds toegeken aan '%2'. +Definieer asseblief 'n ander kortpad. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Gereedskapskisbalke + Toolbox bars + Gereedskapskisbalke - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Nutsbalke + Toolbars + Nutsbalke - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Die veranderinge word aktief die volgende keer wat jy die gepaste werkbank gebruik</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Die veranderinge word aktief die volgende keer wat jy die gepaste werkbank gebruik</p></body></html> - Move right - Skuif na regs + Move right + Skuif na regs - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Beweeg die gekose item een vlak neer.</b><p>Dit sal ook die vlak van die oueritem verander.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Beweeg die gekose item een vlak neer.</b><p>Dit sal ook die vlak van die oueritem verander.</p> - Move left - Skuif na links + Move left + Skuif na links - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Beweeg die gekose item een vlak op.</b><p>Dit sal ook die vlak van die oueritem verander.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Beweeg die gekose item een vlak op.</b><p>Dit sal ook die vlak van die oueritem verander.</p> - Move down - Skuif neer + Move down + Skuif neer - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Beweeg die gekose item neer.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Beweeg die gekose item neer.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> - Move up - Skuif op + Move up + Skuif op - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Beweeg die gekose item op.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Beweeg die gekose item op.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> - New... - Nuwe... + New... + Nuwe... - Rename... - Hernoem... + Rename... + Hernoem... - Delete - Vee uit + Delete + Vee uit - Icon - Ikoon + Icon + Ikoon - Command - Bevel + Command + Bevel - <Separator> - <Verdeler> + <Separator> + <Verdeler> - New toolbar - Nuwe nutsbalk + New toolbar + Nuwe nutsbalk - Toolbar name: - Nutsbalknaam: + Toolbar name: + Nutsbalknaam: - Duplicated name - Gedupliseerde naam + Duplicated name + Gedupliseerde naam - The toolbar name '%1' is already used - Die nutsbalknaam '%1' is reeds in gebruik + The toolbar name '%1' is already used + Die nutsbalknaam '%1' is reeds in gebruik - Rename toolbar - Hernoem nutsbalk + Rename toolbar + Hernoem nutsbalk - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Pas aan + Customize + Pas aan - &Help - &Help + &Help + &Help - &Close - &Maak toe + &Close + &Maak toe - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Buttons + Buttons + Buttons - Clear - Maak skoon + Clear + Maak skoon - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Vertoon eienskappe + Display properties + Vertoon eienskappe - Display - Vertoon + Display + Vertoon - Transparency: - Deursigtigheid: + Transparency: + Deursigtigheid: - Line width: - Lynwydte: + Line width: + Lynwydte: - Point size: - Puntgrootte: + Point size: + Puntgrootte: - Material - Materiaal + Material + Materiaal - ... - ... + ... + ... - Close - Maak toe + Close + Maak toe - Viewing mode - Besigtingsmodus + Viewing mode + Besigtingsmodus - Display mode: - Vertoningsmodus: + Display mode: + Vertoningsmodus: - Plot mode: - Plotmodus: + Plot mode: + Plotmodus: - - + + - Line transparency: - Lyndeursigtigheid: + Line transparency: + Lyndeursigtigheid: - Line color: - Lynkleur: + Line color: + Lynkleur: - Shape color: - Vormkleur: + Shape color: + Vormkleur: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Redakteur + Editor + Redakteur - Options - Opsies + Options + Opsies - Enable line numbers - Aktiveer lynnommers + Enable line numbers + Aktiveer lynnommers - Enable folding - Aktiveer vouing + Enable folding + Aktiveer vouing - Indentation - Verskuiwing + Indentation + Verskuiwing - Insert spaces - Voeg spasies in + Insert spaces + Voeg spasies in - Tab size: - Spronggrootte: + Tab size: + Spronggrootte: - Indent size: - Verskuiwinggrootte: + Indent size: + Verskuiwinggrootte: - Keep tabs - Behou spronge + Keep tabs + Behou spronge - Display Items - Wys items + Display Items + Wys items - Family: - Familie: + Family: + Familie: - Size: - Grootte: + Size: + Grootte: - Preview: - Voorskou: + Preview: + Voorskou: - - + + - - + + Gui::Dialog::DlgGeneral - General - Algemeen + General + Algemeen - Start up - Begin + Start up + Begin - Enable splash screen at start up - Aktiveer introduksiebeeld gedurende programaanvang + Enable splash screen at start up + Aktiveer introduksiebeeld gedurende programaanvang - Switch to tab of report window: - Slaan oor na die blad van die rapporteringsvenster: + Switch to tab of report window: + Slaan oor na die blad van die rapporteringsvenster: - Auto load module after start up: - Autolaai module na programaanvang: + Auto load module after start up: + Autolaai module na programaanvang: - Language - Taal + Language + Taal - Change language: - Verander taal: + Change language: + Verander taal: - Main window - Hoofvenster + Main window + Hoofvenster - Size of recent file list - Grootte van onlangse lêerlys + Size of recent file list + Grootte van onlangse lêerlys - Window style: - Vensterstyl: + Window style: + Vensterstyl: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Invoer + Input + Invoer - OK - Goed + OK + Goed - Cancel - Kanselleer + Cancel + Kanselleer - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Toneelinspekteur + Scene Inspector + Toneelinspekteur - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Voer makro uit + Execute macro + Voer makro uit - Macro name: - Makronaam: + Macro name: + Makronaam: - Macro destination: - Makrobestemming: + Macro destination: + Makrobestemming: - Execute - Voer uit + Execute + Voer uit - Close - Maak toe + Close + Maak toe - Create - Skep + Create + Skep - Delete - Vee uit + Delete + Vee uit - Edit - Wysig + Edit + Wysig - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makros + Macros + Makros - Macro file - Makro-lêer + Macro file + Makro-lêer - Enter a file name, please: - Gee 'n lêernaam, asseblief: + Enter a file name, please: + Gee 'n lêernaam, asseblief: - Existing file - Bestaande lêer + Existing file + Bestaande lêer - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Hierdie lêer bestaan reeds. - Delete macro - Verwyder makro + Delete macro + Verwyder makro - Do you really want to delete the macro '%1'? - Wil jy regtig die makro '%1' verwyder? + Do you really want to delete the macro '%1'? + Wil jy regtig die makro '%1' verwyder? - Cannot create file - Kan nie lêer skep nie + Cannot create file + Kan nie lêer skep nie - Creation of file '%1' failed. - Wat is hierdie? + Creation of file '%1' failed. + Wat is hierdie? - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Makro-opname + Macro recording + Makro-opname - Macro name: - Makronaam: + Macro name: + Makronaam: - Stop - Stop + Stop + Stop - Cancel - Kanselleer + Cancel + Kanselleer - Macro path: - Makropad: + Macro path: + Makropad: - ... - ... + ... + ... - Record - Neem op + Record + Neem op - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Makro-opnemer + Macro recorder + Makro-opnemer - Specify first a place to save. - Spesifiseer eers waar om te spaar. + Specify first a place to save. + Spesifiseer eers waar om te spaar. - Existing macro - Bestaande makro + Existing macro + Bestaande makro - The macro '%1' already exists. Do you want to overwrite? - Die makro '%1' bestaan reeds. Wil jy hom vervang? + The macro '%1' already exists. Do you want to overwrite? + Die makro '%1' bestaan reeds. Wil jy hom vervang? - The macro directory doesn't exist. Please, choose another one. - Die makrogids bestaan nie. Kies asseblief 'n ander een. + The macro directory doesn't exist. Please, choose another one. + Die makrogids bestaan nie. Kies asseblief 'n ander een. - Choose macro directory - Kies makrogids + Choose macro directory + Kies makrogids - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Materiaaleienskappe + Material properties + Materiaaleienskappe - &Close - &Maak toe + &Close + &Maak toe - Alt+C - Alt+C + Alt+C + Alt+C - Material - Materiaal + Material + Materiaal - Diffuse color: - Diffuse kleur: + Diffuse color: + Diffuse kleur: - Specular color: - Reflekterende kleur: + Specular color: + Reflekterende kleur: - Shininess: - Blinkheid: + Shininess: + Blinkheid: - % - % + % + % - Ambient color: - Skadukleur: + Ambient color: + Skadukleur: - - + + - Emissive color: - Uitstralende kleur: + Emissive color: + Uitstralende kleur: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Internethulp + On-line help + Internethulp - Help viewer - Hulpbeskouer + Help viewer + Hulpbeskouer - Location of start page - Ligging van tuisblad + Location of start page + Ligging van tuisblad - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML-lêers (*.html *.htm) + HTML files (*.html *.htm) + HTML-lêers (*.html *.htm) - Access denied - Toegang geweier + Access denied + Toegang geweier - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Toegang geweier vir '%1' -Spesifiseer asseblief 'n ander gids. + Toegang geweier vir '%1' +Spesifiseer asseblief 'n ander gids. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parameter Wysiger + Parameter Editor + Parameter Wysiger - Save to disk - Stoor op skyf + Save to disk + Stoor op skyf - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Maak toe + &Close + &Maak toe - - + + Gui::Dialog::DlgParameterImp - Group - Groep + Group + Groep - Name - Naam + Name + Naam - Type - Soort + Type + Soort - Value - Waarde + Value + Waarde - User parameter - Gebruikersparameter + User parameter + Gebruikersparameter - Invalid input - Ongeldige inset + Invalid input + Ongeldige inset - Invalid key name '%1' - Ongeldige sleutelnaam '%1' + Invalid key name '%1' + Ongeldige sleutelnaam '%1' - System parameter - Stelselparameter + System parameter + Stelselparameter - - + + Gui::Dialog::DlgPreferences - Preferences - Voorkeure + Preferences + Voorkeure - &Help - &Help + &Help + &Help - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &Goedgekeur + &OK + &Goedgekeur - &Apply - &Pas toe + &Apply + &Pas toe - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Kanselleer + &Cancel + &Kanselleer - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Verkeerde parameter + Wrong parameter + Verkeerde parameter - - + + Gui::Dialog::DlgProjectInformation - Project information - Projekinformasie + Project information + Projekinformasie - Information - Inligting + Information + Inligting - &Name: - &Naam: + &Name: + &Naam: - Commen&t: - &Kommentaar: + Commen&t: + &Kommentaar: - Path: - Pad: + Path: + Pad: - &Last modified by: - &Laas verander deur: + &Last modified by: + &Laas verander deur: - Created &by: - &Geskep deur: + Created &by: + &Geskep deur: - Com&pany: - &Maatskappy: + Com&pany: + &Maatskappy: - Last &modification date: - &Laaste veranderingsdatum: + Last &modification date: + &Laaste veranderingsdatum: - Creation &date: - &Skeppingsdatum: + Creation &date: + &Skeppingsdatum: - &OK - &Goedgekeur + &OK + &Goedgekeur - &Cancel - &Kanselleer + &Cancel + &Kanselleer - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Source + Source + Source - Project file (*.fcstd) - Project file (*.fcstd) + Project file (*.fcstd) + Project file (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extract + Extract + Extract - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - Skep + Create + Skep - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Resultaatvenster + Output window + Resultaatvenster - Output - Resultaat + Output + Resultaat - Record log messages - Stoor opgawesboodskappe + Record log messages + Stoor opgawesboodskappe - Record warnings - Stoor waarskuwings + Record warnings + Stoor waarskuwings - Record error messages - Stoor foutboodskappe + Record error messages + Stoor foutboodskappe - Colors - Kleure + Colors + Kleure - Normal messages: - Algemene boodskappe: + Normal messages: + Algemene boodskappe: - Log messages: - Opgawesboodskappe: + Log messages: + Opgawesboodskappe: - Warnings: - Waarskuwings: + Warnings: + Waarskuwings: - Errors: - Foute: + Errors: + Foute: - - + + - Redirect internal Python errors to report view - Herlei interne Python foute na die rapportvenster + Redirect internal Python errors to report view + Herlei interne Python foute na die rapportvenster - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - Loop eksterne program + Running external program + Loop eksterne program - TextLabel - TeksEtiket + TextLabel + TeksEtiket - Advanced >> - Gevorderd >> + Advanced >> + Gevorderd >> - ... - ... + ... + ... - Accept changes - Aanvaar veranderinge + Accept changes + Aanvaar veranderinge - Discard changes - Laat vaar veranderinge + Discard changes + Laat vaar veranderinge - Abort program - Stop program + Abort program + Stop program - Help - Hulp + Help + Hulp - Select a file - Kies 'n lêer + Select a file + Kies 'n lêer - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D-aansig + 3D View + 3D-aansig - 3D View settings - 3D-aansig instellings + 3D View settings + 3D-aansig instellings - Show coordinate system in the corner - Wys koördinaatstelsel in die hoek + Show coordinate system in the corner + Wys koördinaatstelsel in die hoek - Show counter of frames per second - Wys rame per sekonde teller + Show counter of frames per second + Wys rame per sekonde teller - Enable animation - Aktiveer animasie + Enable animation + Aktiveer animasie - Enable anti-aliasing (slower) - Aktiveer kantversagting (stadiger) + Enable anti-aliasing (slower) + Aktiveer kantversagting (stadiger) - Eye to eye distance for stereo modes: - Oog-na-oog afstand vir stereomodusse: + Eye to eye distance for stereo modes: + Oog-na-oog afstand vir stereomodusse: - Camera type - Kamerasoort + Camera type + Kamerasoort - Orthographic rendering - Ortografiese weergawe + Orthographic rendering + Ortografiese weergawe - Perspective rendering - Perspektief weergawe + Perspective rendering + Perspektief weergawe - - + + - 3D Navigation - 3D Navigasie + 3D Navigation + 3D Navigasie - Mouse... - Muis... + Mouse... + Muis... - Intensity of backlight - Intensiteit van die agterlig + Intensity of backlight + Intensiteit van die agterlig - Enable backlight color - Aktiveer agterligkleur + Enable backlight color + Aktiveer agterligkleur - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigasie + %1 navigation + %1 navigasie - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Kleurmodel + Color model + Kleurmodel - &Gradient: - &Gradiënt: + &Gradient: + &Gradiënt: - red-yellow-green-cyan-blue - rooi-geel-groen-siaan-blou + red-yellow-green-cyan-blue + rooi-geel-groen-siaan-blou - blue-cyan-green-yellow-red - blou-siaan-groen-geel-rooi + blue-cyan-green-yellow-red + blou-siaan-groen-geel-rooi - white-black - wit-swart + white-black + wit-swart - black-white - swart-wit + black-white + swart-wit - Visibility - Sigbaarheid + Visibility + Sigbaarheid - Out g&rayed - &Uitvergrys + Out g&rayed + &Uitvergrys - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - &Uitonsigbaar + Out &invisible + &Uitonsigbaar - Alt+I - Alt+I + Alt+I + Alt+I - Style - Styl + Style + Styl - &Zero - &Nul + &Zero + &Nul - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Vloei + &Flow + &Vloei - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &Goedgekeur + &OK + &Goedgekeur - &Cancel - &Kanselleer + &Cancel + &Kanselleer - Parameter range - Parameteromvang + Parameter range + Parameteromvang - Mi&nimum: - &Minimum: + Mi&nimum: + &Minimum: - Ma&ximum: - &Maximum: + Ma&ximum: + &Maximum: - &Labels: - &Etikette: + &Labels: + &Etikette: - &Decimals: - &Desimale: + &Decimals: + &Desimale: - - + + - Color-gradient settings - Kleurgradiënt instellings + Color-gradient settings + Kleurgradiënt instellings - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Verkeerde parameter + Wrong parameter + Verkeerde parameter - The maximum value must be higher than the minimum value. - Die maksimum waarde moet hoër wees as die minimum waarde. + The maximum value must be higher than the minimum value. + Die maksimum waarde moet hoër wees as die minimum waarde. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokument + Document + Dokument - General - Algemeen + General + Algemeen - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Kompressievlak vir dokumentstoring + Kompressievlak vir dokumentstoring (0 = geen, 9 = hoogste, 3 = versuimwaarde) - Create new document at start up - Skep nuwe dokument tydens programaanvang + Create new document at start up + Skep nuwe dokument tydens programaanvang - Storage - Stoorplek + Storage + Stoorplek - Saving transactions (Auto-save) - Stoor transaksies (Autospaar) + Saving transactions (Auto-save) + Stoor transaksies (Autospaar) - Discard saved transaction after saving document - Vee gestoorde transaksie uit na dokument gestoor is + Discard saved transaction after saving document + Vee gestoorde transaksie uit na dokument gestoor is - Save thumbnail into project file when saving document - Stoor miniatuurvoorskou in projeklêer wanneer dokument gestoor word + Save thumbnail into project file when saving document + Stoor miniatuurvoorskou in projeklêer wanneer dokument gestoor word - Create up to backup files when resaving document - Skep rugsteunlêers wanneer dokument weer gestoor word + Create up to backup files when resaving document + Skep rugsteunlêers wanneer dokument weer gestoor word - Document objects - Dokumentvoorwerpe + Document objects + Dokumentvoorwerpe - Allow duplicate object labels in one document - Laat duplikaat voorwerpetikette toe in een dokument + Allow duplicate object labels in one document + Laat duplikaat voorwerpetikette toe in een dokument - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Teks + Text + Teks - Bookmark - Boekmerk + Bookmark + Boekmerk - Breakpoint - Breekpunt + Breakpoint + Breekpunt - Keyword - Sleutelwoord + Keyword + Sleutelwoord - Comment - Opmerking + Comment + Opmerking - Block comment - Blok kommentaar + Block comment + Blok kommentaar - Number - Syfer + Number + Syfer - String - String + String + String - Character - Karakter + Character + Karakter - Class name - Klasnaam + Class name + Klasnaam - Define name - Definieer naam + Define name + Definieer naam - Operator - Operateur + Operator + Operateur - Python output - Python resultaat + Python output + Python resultaat - Python error - Python fout + Python error + Python fout - Items - Items + Items + Items - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Beeldinstellings + Image settings + Beeldinstellings - Image properties - Beeldeienskappe + Image properties + Beeldeienskappe - Back&ground: - &Agtergrond: + Back&ground: + &Agtergrond: - Current - Huidige + Current + Huidige - White - Wit + White + Wit - Black - Swart + Black + Swart - Transparent - Deursigtig + Transparent + Deursigtig - Image dimensions - Beelddimensies + Image dimensions + Beelddimensies - Pixel - Beeldelement + Pixel + Beeldelement - &Width: - &Wydte: + &Width: + &Wydte: - Current screen - Huidige skerm + Current screen + Huidige skerm - Icon 32 x 32 - Ikoon 32 x 32 + Icon 32 x 32 + Ikoon 32 x 32 - Icon 64 x 64 - Ikoon 64 x 64 + Icon 64 x 64 + Ikoon 64 x 64 - Icon 128 x 128 - Ikoon 128 x 128 + Icon 128 x 128 + Ikoon 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA + 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA + 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standaardgroottes: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Hoogte: - Standard sizes: - Standaardgroottes: + Aspect ratio: + Vormverhouding: - &Height: - &Hoogte: + &Screen + &Skerm - Aspect ratio: - Vormverhouding: + Alt+S + Alt+S - &Screen - &Skerm + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Beeldkommentaar - Alt+1 - Alt+1 + Insert MIBA + Voeg MIBA in - Image comment - Beeldkommentaar + Insert comment + Voeg opmerking in - - Insert MIBA - Voeg MIBA in - - - Insert comment - Voeg opmerking in - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makro + Macro + Makro - Macro recording settings - Makro-opname instellings + Macro recording settings + Makro-opname instellings - Logging Commands - Noteer bevele + Logging Commands + Noteer bevele - Show script commands in python console - Wys bevele in pythonvenster + Show script commands in python console + Wys bevele in pythonvenster - Log all commands issued by menus to file: - Noteer alle bevele vanuit kieslyse na lêer: + Log all commands issued by menus to file: + Noteer alle bevele vanuit kieslyse na lêer: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Grafiese Gebruikerskoppelvlak (GGKV) instruksies + Gui commands + Grafiese Gebruikerskoppelvlak (GGKV) instruksies - Recording GUI commands - Neem Grafiese Gebruikerskoppelvlak (GGKV) instruksies op + Recording GUI commands + Neem Grafiese Gebruikerskoppelvlak (GGKV) instruksies op - Record as comment - Neem op as opmerking + Record as comment + Neem op as opmerking - Macro path - Makropad + Macro path + Makropad - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Eenhede + Units + Eenhede - Units settings - Eenheidsinstellings + Units settings + Eenheidsinstellings - Standard (mm/kg/s/degree) - Standaard (mm/kg/s/graad) + Standard (mm/kg/s/degree) + Standaard (mm/kg/s/graad) - MKS (m/kg/s/degree) - MKS (m/kg/s/graad) + MKS (m/kg/s/degree) + MKS (m/kg/s/graad) - Magnitude - Grootte + Magnitude + Grootte - Unit - Eenheid + Unit + Eenheid - User system: - Gebruikerstelsel: + User system: + Gebruikerstelsel: - Imperial (in/lb) - Engelse eenhede (duim/pond) + Imperial (in/lb) + Engelse eenhede (duim/pond) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Kleure + Colors + Kleure - Selection - Seleksie + Selection + Seleksie - Enable selection highlighting - Aktiveer seleksieverligting + Enable selection highlighting + Aktiveer seleksieverligting - Enable preselection highlighting - Aktiveer seleksieverligting + Enable preselection highlighting + Aktiveer seleksieverligting - Background color - Agtergrond kleur + Background color + Agtergrond kleur - Middle color - Middelste kleur + Middle color + Middelste kleur - Color gradient - Kleurgradient + Color gradient + Kleurgradient - Simple color - Eenvoudige kleur + Simple color + Eenvoudige kleur - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Wenk van die dag + Tip of the day + Wenk van die dag - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Het jy geweet...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Het jy geweet...</font></font></b> - &Show tips at start up - &Wys wenke tydens programaanvang + &Show tips at start up + &Wys wenke tydens programaanvang - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Volgende Wenk + &Next Tip + &Volgende Wenk - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Maak toe + &Close + &Maak toe - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Aflaai het misluk: '%1' + Aflaai het misluk: '%1' - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - As jy meer wil weet oor FreeCAD moet jy gaan na '%1' of druk die Help item in die Hulpkieslys. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + As jy meer wil weet oor FreeCAD moet jy gaan na '%1' of druk die Help item in die Hulpkieslys. - - + + Gui::Dialog::DockablePlacement - Placement - Plasing + Placement + Plasing - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + Kanselleer + + + Close + Maak toe + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Aflaai het misluk: '%1'. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - Invoervektor + Input vector + Invoervektor - Vector - Vektor + Vector + Vektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - Goed + OK + Goed - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Muisknoppies + Mouse buttons + Muisknoppies - Configuration - Opstelling + Configuration + Opstelling - Selection: - Seleksie: + Selection: + Seleksie: - Panning - Panorama + Panning + Panorama - Rotation: - Rotasie: + Rotation: + Rotasie: - Zooming: - Nabyheid: + Zooming: + Nabyheid: - - + + Gui::Dialog::ParameterGroup - Expand - Brei uit + Expand + Brei uit - Add sub-group - Voeg subgroep by + Add sub-group + Voeg subgroep by - Remove group - Verwyder groep + Remove group + Verwyder groep - Rename group - Hernoem groep + Rename group + Hernoem groep - Export parameter - Voer parameter uit + Export parameter + Voer parameter uit - Import parameter - Voer parameter in + Import parameter + Voer parameter in - Collapse - Stort ineen + Collapse + Stort ineen - Do really want to remove this parameter group? - Wil jy regtig hierdie parametergroep verwyder? + Do really want to remove this parameter group? + Wil jy regtig hierdie parametergroep verwyder? - Existing sub-group - Bestaande subgroep + Existing sub-group + Bestaande subgroep - The sub-group '%1' already exists. - Die subgroep '%1' bestaan reeds. + The sub-group '%1' already exists. + Die subgroep '%1' bestaan reeds. - Export parameter to file - Voer parameter uit na 'n lêer + Export parameter to file + Voer parameter uit na 'n lêer - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Voer parameter in van lêer + Import parameter from file + Voer parameter in van lêer - Import Error - Invoer Fout + Import Error + Invoer Fout - Reading from '%1' failed. - Lees van '%1' het misluk. + Reading from '%1' failed. + Lees van '%1' het misluk. - - + + Gui::Dialog::ParameterValue - Change value - Verander waarde + Change value + Verander waarde - Remove key - Verwyder sleutel + Remove key + Verwyder sleutel - Rename key - Hernoem sleutel + Rename key + Hernoem sleutel - New - Nuwe + New + Nuwe - New string item - Nuwe stringitem + New string item + Nuwe stringitem - New float item - Nuwe dryfitem + New float item + Nuwe dryfitem - New integer item - Nuwe heelgetalitem + New integer item + Nuwe heelgetalitem - New unsigned item - Nuwe onondertekende item + New unsigned item + Nuwe onondertekende item - New Boolean item - Nuwe Boole-item + New Boolean item + Nuwe Boole-item - Existing item - Bestaande item + Existing item + Bestaande item - The item '%1' already exists. - Die item '%1' bestaan reeds. + The item '%1' already exists. + Die item '%1' bestaan reeds. - - + + Gui::Dialog::Placement - Placement - Plasing + Placement + Plasing - OK - Goed + OK + Goed - Translation: - Omsetting: + Translation: + Omsetting: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotasie: + Rotation: + Rotasie: - Angle: - Hoek: + Angle: + Hoek: - Axis: - As: + Axis: + As: - Center: - Sentreer: + Center: + Sentreer: - Pitch: - Styghoek: + Pitch: + Styghoek: - Roll: - Kantelhoek: + Roll: + Kantelhoek: - Yaw: - Rigtinghoek: + Yaw: + Rigtinghoek: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Eulerhoeke + Euler angles + Eulerhoeke - Apply placement changes immediately - Pas plasingveranderings onmiddellik toe + Apply placement changes immediately + Pas plasingveranderings onmiddellik toe - Apply incremental changes to object placement - Pas inkrementele veranderinge toe met die plasing van die voorwerp + Apply incremental changes to object placement + Pas inkrementele veranderinge toe met die plasing van die voorwerp - Apply - Pas toe + Apply + Pas toe - Reset - Herstel + Reset + Herstel - Close - Maak toe + Close + Maak toe - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - Bevel + Command + Bevel - - + + Gui::Dialog::SceneInspector - Dialog - Dialoog + Dialog + Dialoog - Close - Maak toe + Close + Maak toe - Refresh - Verfris + Refresh + Verfris - - + + Gui::Dialog::SceneModel - Inventor Tree - Uitvinderboom + Inventor Tree + Uitvinderboom - Nodes - Knooppunte + Nodes + Knooppunte - - + + Gui::Dialog::TextureMapping - Texture - Tekstuur + Texture + Tekstuur - Texture mapping - Tekstuurkartering + Texture mapping + Tekstuurkartering - Global - Globaal + Global + Globaal - Environment - Omgewing + Environment + Omgewing - Image files (%1) - Beeldlêers (%1) + Image files (%1) + Beeldlêers (%1) - No image - Geen beeld + No image + Geen beeld - The specified file is not a valid image file. - Die gespesifiseerde lêer is nie 'n geldige beeldlêer nie. + The specified file is not a valid image file. + Die gespesifiseerde lêer is nie 'n geldige beeldlêer nie. - No 3d view - Geen 3D aansig + No 3d view + Geen 3D aansig - No active 3d view found. - Geen aktiewe 3D aansig gevind nie. + No active 3d view found. + Geen aktiewe 3D aansig gevind nie. - - + + Gui::Dialog::Transform - Cancel - Kanselleer + Cancel + Kanselleer - Transform - Omskep + Transform + Omskep - - + + Gui::DlgTreeWidget - Dialog - Dialoog + Dialog + Dialoog - Items - Items + Items + Items - OK - Goed + OK + Goed - Cancel - Kanselleer + Cancel + Kanselleer - - + + - - + + Gui::DockWnd::CombiView - CombiView - SaamgesteldeVoorkoms + CombiView + SaamgesteldeVoorkoms - Project - Projek + Project + Projek - Tasks - Take + Tasks + Take - - + + Gui::DockWnd::HelpView - Previous - Vorige + Previous + Vorige - Next - Volgende + Next + Volgende - Home - Tuis + Home + Tuis - Open - Maak oop + Open + Maak oop - Open file - Maak lêer oop + Open file + Maak lêer oop - All HTML files (*.html *.htm) - Alle HTML-lêers (*.html *.htm) + All HTML files (*.html *.htm) + Alle HTML-lêers (*.html *.htm) - External browser - Eksterne leser + External browser + Eksterne leser - No external browser found. Specify in preferences, please - Geen eksterne leser gevind nie. Spesifiseer asseblief in die voorkeure + No external browser found. Specify in preferences, please + Geen eksterne leser gevind nie. Spesifiseer asseblief in die voorkeure - Starting of %1 failed - Begin van '%1' het misluk + Starting of %1 failed + Begin van '%1' het misluk - - + + Gui::DockWnd::PropertyDockView - Property View - Eiendomsaansig + Property View + Eiendomsaansig - - + + Gui::DockWnd::ReportOutput - Logging - Opgawe + Logging + Opgawe - Warning - Waarskuwing + Warning + Waarskuwing - Error - Fout + Error + Fout - Options - Opsies + Options + Opsies - Clear - Maak skoon + Clear + Maak skoon - Save As... - Stoor as... + Save As... + Stoor as... - Save Report Output - Stoor Rapportresultaat + Save Report Output + Stoor Rapportresultaat - Plain Text Files (*.txt *.log) - Eenvoudige Tekslêers (*.txt *.log) + Plain Text Files (*.txt *.log) + Eenvoudige Tekslêers (*.txt *.log) - Go to end - Gaan na die einde + Go to end + Gaan na die einde - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Herlei Python foute + Redirect Python errors + Herlei Python foute - - + + Gui::DockWnd::ReportView - Output - Resultaat + Output + Resultaat - Python console - Pythonkonsole + Python console + Pythonkonsole - - + + Gui::DockWnd::SelectionView - Property View - Eiendomsaansig + Property View + Eiendomsaansig - - + + Gui::DockWnd::TaskPanelView - Task View - Taakaansig + Task View + Taakaansig - - + + Gui::DockWnd::TextBrowser - Could not open file. - Kon nie lêer oopmaak nie. + Could not open file. + Kon nie lêer oopmaak nie. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Jy het probeer om die adres '%1' wat tans onbeskikbaar is, oop te maak. Maak asseblief seker dat die URL bestaan, en probeer die blad herlaai. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Jy het probeer om die adres '%1' wat tans onbeskikbaar is, oop te maak. Maak asseblief seker dat die URL bestaan, en probeer die blad herlaai. - Connecting to %1 - Verbind met '%1' + Connecting to %1 + Verbind met '%1' - Sending to %1 - Stuur na '%1' + Sending to %1 + Stuur na '%1' - Reading from %1 - Lees van '%1' + Reading from %1 + Lees van '%1' - Download failed: %1. - Aflaai het misluk: '%1'. + Download failed: %1. + Aflaai het misluk: '%1'. - Previous - Vorige + Previous + Vorige - Forward - Vorentoe + Forward + Vorentoe - Home - Tuis + Home + Tuis - Refresh - Verfris + Refresh + Verfris - Copy - Kopieer + Copy + Kopieer - Select all - Kies alles + Select all + Kies alles - No description for - Geen beskrywing vir + No description for + Geen beskrywing vir - - + + Gui::DocumentModel - Application - Toepassing + Application + Toepassing - Labels & Attributes - Etikette & Eienskappe + Labels & Attributes + Etikette & Eienskappe - - + + Gui::EditorView - Modified file - Gewysigde lêer + Modified file + Gewysigde lêer - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - '%1'. + '%1'. Dit is verander buite die bronwysiger. Wil jy dit herlaai? - Unsaved document - Ongestoorde dokument + Unsaved document + Ongestoorde dokument - The document has been modified. + The document has been modified. Do you want to save your changes? - Die dokument is verander. + Die dokument is verander. Wil jy jou veranderinge stoor? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD makro (*.FCMacro); Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD makro (*.FCMacro); Python (*.py) - Export PDF - Stoor na PDF + Export PDF + Stoor na PDF - PDF file (*.pdf) - PDF-lêer (*.pdf) + PDF file (*.pdf) + PDF-lêer (*.pdf) - untitled[*] - ongetiteld[*] + untitled[*] + ongetiteld[*] - - Editor - -Wysiger + - Editor + -Wysiger - %1 chars removed - %1 karakters verwyder + %1 chars removed + %1 karakters verwyder - %1 chars added - %1 karakters bygevoeg + %1 chars added + %1 karakters bygevoeg - Formatted - Geformateer + Formatted + Geformateer - - + + Gui::FileChooser - Select a file - Kies 'n lêer + Select a file + Kies 'n lêer - Select a directory - Kies 'n gids + Select a directory + Kies 'n gids - - + + Gui::FileDialog - Save as - Stoor as + Save as + Stoor as - Open - Maak oop + Open + Maak oop - - + + Gui::FileOptionsDialog - Extended - Uitgebrei + Extended + Uitgebrei - All files (*.*) - Alle lêers (*.*) + All files (*.*) + Alle lêers (*.*) - - + + Gui::Flag - Top left - Bo links + Top left + Bo links - Bottom left - Onder links + Bottom left + Onder links - Top right - Bo regs + Top right + Bo regs - Bottom right - Onder regs + Bottom right + Onder regs - Remove - Verwyder + Remove + Verwyder - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Druk CTRL en linker muisknoppie + Press CTRL and left mouse button + Druk CTRL en linker muisknoppie - Press middle mouse button - Druk middelste muisknoppie + Press middle mouse button + Druk middelste muisknoppie - Press left mouse button - Druk linker muisknoppie + Press left mouse button + Druk linker muisknoppie - Scroll middle mouse button - Blaai neer met middelste muisknoppie + Scroll middle mouse button + Blaai neer met middelste muisknoppie - - + + Gui::LocationDialog - Wrong direction - Verkeerde rigting + Wrong direction + Verkeerde rigting - Direction must not be the null vector - Rigting moet nie die nul vektor wees nie + Direction must not be the null vector + Rigting moet nie die nul vektor wees nie - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Gebruikergedefinieerd... + User defined... + Gebruikergedefinieerd... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makros + Macros + Makros - - + + Gui::MainWindow - Dimension - Dimensioneer + Dimension + Dimensioneer - Ready - Gereed + Ready + Gereed - Toggles this toolbar - Aktiveer/Inaktiveer die nutsbalk + Toggles this toolbar + Aktiveer/Inaktiveer die nutsbalk - Toggles this dockable window - Aktiveer/inaktiveer hierdie ingebedde venster + Toggles this dockable window + Aktiveer/inaktiveer hierdie ingebedde venster - Close All - Maak alles toe + Close All + Maak alles toe - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Aflaai het begin... + Aflaai het begin... - - + + Gui::ProgressBar - Remaining: %1 - Oorblywende: %1 + Remaining: %1 + Oorblywende: %1 - Aborting - Staak + Aborting + Staak - Do you really want to abort the operation? - Wil jy regtig die aksie staak? + Do you really want to abort the operation? + Wil jy regtig die aksie staak? - - + + Gui::ProgressDialog - Remaining: %1 - Oorblywende: %1 + Remaining: %1 + Oorblywende: %1 - Aborting - Staak + Aborting + Staak - Do you really want to abort the operation? - Wil jy regtig die aksie staak? + Do you really want to abort the operation? + Wil jy regtig die aksie staak? - - + + Gui::PropertyEditor::PropertyModel - Property - Eienskap + Property + Eienskap - Value - Waarde + Value + Waarde - - + + Gui::PropertyView - View - Voorkoms + View + Voorkoms - Data - Data + Data + Data - - + + Gui::PythonConsole - System exit - Verlaat stelsel + System exit + Verlaat stelsel - The application is still running. + The application is still running. Do you want to exit without saving your data? - Die program loop nog. + Die program loop nog. Wil jy afsluit sonder om jou data te stoor? - Python console - Pythonkonsole + Python console + Pythonkonsole - Unhandled PyCXX exception. - Ongehanteerde PyCXX uitsondering. + Unhandled PyCXX exception. + Ongehanteerde PyCXX uitsondering. - Unhandled FreeCAD exception. - Ongehanteerde FreeCAD uitsondering. + Unhandled FreeCAD exception. + Ongehanteerde FreeCAD uitsondering. - Unhandled unknown C++ exception. - Ongehanteerde onbekende C++ uitsondering. + Unhandled unknown C++ exception. + Ongehanteerde onbekende C++ uitsondering. - &Copy command - &Kopieer bevel + &Copy command + &Kopieer bevel - &Copy history - &Kopieer geskiedenis + &Copy history + &Kopieer geskiedenis - Save history as... - Stoor geskiedenis as... + Save history as... + Stoor geskiedenis as... - Insert file name... - Gee lêernaam... + Insert file name... + Gee lêernaam... - Save History - Stoor geskiedenis + Save History + Stoor geskiedenis - Macro Files (*.FCMacro *.py) - Makro-lêers (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Makro-lêers (*.FCMacro *.py) - Insert file name - Gee lêernaam + Insert file name + Gee lêernaam - All Files (*.*) - Alle lêers (*.*) + All Files (*.*) + Alle lêers (*.*) - Python Input Dialog - Python Invoer Dialoog + Python Input Dialog + Python Invoer Dialoog - Unhandled std C++ exception. - Ongehanteerde std C++ uitsondering. + Unhandled std C++ exception. + Ongehanteerde std C++ uitsondering. - Word wrap - Woordomvouding + Word wrap + Woordomvouding - &Copy - &Kopieer + &Copy + &Kopieer - &Paste - &Plak + &Paste + &Plak - Select All - Kies alles + Select All + Kies alles - - + + Clear console + + + + Gui::PythonEditor - Comment - Opmerking + Comment + Opmerking - Uncomment - Verwyder opmerking + Uncomment + Verwyder opmerking - - + + Gui::PythonInputField - OK - Goed + OK + Goed - Clear - Maak skoon + Clear + Maak skoon - - + + Gui::RecentFilesAction - Open file %1 - Maak lêer '%1' oop + Open file %1 + Maak lêer '%1' oop - File not found - Lêer nie gevind nie + File not found + Lêer nie gevind nie - The file '%1' cannot be opened. - Die lêer '%1' kan nie oopgemaak word nie. + The file '%1' cannot be opened. + Die lêer '%1' kan nie oopgemaak word nie. - - + + Gui::SelectModule - Select module - Kies module + Select module + Kies module - Open %1 as - Maak '%1' oop as + Open %1 as + Maak '%1' oop as - Select - Kies + Select + Kies - - + + Gui::StdCmdDescription - Help - Hulp + Help + Hulp - Des&cription - &Beskrywing + Des&cription + &Beskrywing - Long description of commands - Lang beskrywing van bevele + Long description of commands + Lang beskrywing van bevele - - + + Gui::StdCmdDownloadOnlineHelp - Help - Hulp + Help + Hulp - Download online help - Laai internethulp af + Download online help + Laai internethulp af - Download %1's online help - Laai %1 se internethulp af + Download %1's online help + Laai %1 se internethulp af - Non-existing directory - Gids bestaan nie + Non-existing directory + Gids bestaan nie - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Die gids '%1' bestaan nie. -Wil jy 'n bestaande gids spesifiseer? + Die gids '%1' bestaan nie. +Wil jy 'n bestaande gids spesifiseer? - Missing permission - Toestemming ontbreek + Missing permission + Toestemming ontbreek - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Jy het nie toestemming om te skryf na '%1' nie -Wil jy 'n ander gids aangee? + Jy het nie toestemming om te skryf na '%1' nie +Wil jy 'n ander gids aangee? - Stop downloading - Stop aflaai + Stop downloading + Stop aflaai - - + + Gui::StdCmdPythonHelp - Tools - Gereedskap + Tools + Gereedskap - Python Modules - Pythonmodules + Python Modules + Pythonmodules - Opens a browser to show the Python modules - Maak 'n leser oop om die Pythonmodules te wys + Opens a browser to show the Python modules + Maak 'n leser oop om die Pythonmodules te wys - - + + Gui::TaskBoxAngle - Angle - Hoek + Angle + Hoek - - + + Gui::TaskBoxPosition - Position - Posisie + Position + Posisie - - + + Gui::TaskView::TaskAppearance - Display mode: - Vertoningsmodus: + Display mode: + Vertoningsmodus: - Plot mode: - Plotmodus: + Plot mode: + Plotmodus: - Point size: - Puntgrootte: + Point size: + Puntgrootte: - Line width: - Lynwydte: + Line width: + Lynwydte: - Transparency: - Deursigtigheid: + Transparency: + Deursigtigheid: - Appearance - Voorkoms + Appearance + Voorkoms - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Wysig + Edit + Wysig - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Voorkoms + Appearance + Voorkoms - ... - ... + ... + ... - edit selection - Wysig seleksie + edit selection + Wysig seleksie - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Druk linker muisknoppie + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Engels + English + Engels - - + + Gui::TreeDockWidget - Tree view - Boomvoorkoms + Tree view + Boomvoorkoms - - + + Gui::TreeWidget - Create group... - Skep groep ... + Create group... + Skep groep ... - Create a group - Skep 'n groep + Create a group + Skep 'n groep - Group - Groep + Group + Groep - Rename - Hernoem + Rename + Hernoem - Rename object - Hernoem voorwerp + Rename object + Hernoem voorwerp - Labels & Attributes - Etikette & Eienskappe + Labels & Attributes + Etikette & Eienskappe - Application - Toepassing + Application + Toepassing - Finish editing - Klaar gewysig + Finish editing + Klaar gewysig - Finish editing object - Voltooi voorwerpwysiging + Finish editing object + Voltooi voorwerpwysiging - Activate document - Aktiveer dokument + Activate document + Aktiveer dokument - Activate document %1 - Aktiveer dokument %1 + Activate document %1 + Aktiveer dokument %1 - - + + Gui::View3DInventor - Export PDF - Stoor na PDF + Export PDF + Stoor na PDF - PDF file (*.pdf) - PDF-lêer (*.pdf) + PDF file (*.pdf) + PDF-lêer (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Kies die '%1' werkbank + Select the '%1' workbench + Kies die '%1' werkbank - - + + Position - Form - Vorm + Form + Vorm - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Gidslynvashegting + Grid Snap in + Gidslynvashegting - - + + QDockWidget - Tree view - Boomvoorkoms + Tree view + Boomvoorkoms - Property view - Eiendomsaansig + Property view + Eiendomsaansig - Selection view - Seleksieaansig + Selection view + Seleksieaansig - Report view - Rapportaansig + Report view + Rapportaansig - Task View - Taakaansig + Task View + Taakaansig - Combo View - Saamgestelde aansig + Combo View + Saamgestelde aansig - Toolbox - Gereedskapskis + Toolbox + Gereedskapskis - Python console - Pythonkonsole + Python console + Pythonkonsole - Display properties - Vertoon eienskappe + Display properties + Vertoon eienskappe - - + + QObject - General - Algemeen + General + Algemeen - Display - Vertoon + Display + Vertoon - Unknown filetype - Onbekende lêersoort + Unknown filetype + Onbekende lêersoort - Cannot open unknown filetype: %1 - Kan nie onbekende lêersoort oop maak nie: '%1' + Cannot open unknown filetype: %1 + Kan nie onbekende lêersoort oop maak nie: '%1' - Cannot save to unknown filetype: %1 - Kan nie stoor na 'n onbekende lêersoort nie: '%1' + Cannot save to unknown filetype: %1 + Kan nie stoor na 'n onbekende lêersoort nie: '%1' - Workbench failure - Werkbankmislukking + Workbench failure + Werkbankmislukking - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Kan nie Qt-assistent (%1) lanseer nie + Unable to launch Qt Assistant (%1) + Kan nie Qt-assistent (%1) lanseer nie - Exception - Uitsondering + Exception + Uitsondering - Open document - Maak dokument oop + Open document + Maak dokument oop - Import file - Voer lêer in + Import file + Voer lêer in - Export file - Voer lêer uit + Export file + Voer lêer uit - Printing... - Druk tans... + Printing... + Druk tans... - Cannot load workbench - Kan nie werkbank laai nie + Cannot load workbench + Kan nie werkbank laai nie - A general error occurred while loading the workbench - 'n Algemene fout het voorgekom tydens die laai van die werkbank + A general error occurred while loading the workbench + 'n Algemene fout het voorgekom tydens die laai van die werkbank - File not found - Lêer nie gevind nie + File not found + Lêer nie gevind nie - Cannot open file %1 - Kan nie lêer '%1' oop maak nie + Cannot open file %1 + Kan nie lêer '%1' oop maak nie - Save views... - Stoor aansigte... + Save views... + Stoor aansigte... - Load views... - Laai aansigte... + Load views... + Laai aansigte... - Freeze view - Vries aansig + Freeze view + Vries aansig - Clear views - Maak aansigte skoon + Clear views + Maak aansigte skoon - Restore view &%1 - Herstel aansig &%1 + Restore view &%1 + Herstel aansig &%1 - Save frozen views - Stoor gevriesde aansigte + Save frozen views + Stoor gevriesde aansigte - Frozen views (*.cam) - Bevrore aansigte (*.cam) + Frozen views (*.cam) + Bevrore aansigte (*.cam) - Restore views - Herstel aansigte + Restore views + Herstel aansigte - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Die invoer van die herstelde aansigte verwyder die reeds gestoorde aansigte. Wil jy voortgaan? + Die invoer van die herstelde aansigte verwyder die reeds gestoorde aansigte. Wil jy voortgaan? - Restore frozen views - Herstel bevrore aansigte + Restore frozen views + Herstel bevrore aansigte - Cannot open file '%1'. - Kan nie lêer '%1' oop maak nie. + Cannot open file '%1'. + Kan nie lêer '%1' oop maak nie. - Docked - Vasgekoppel + Docked + Vasgekoppel - Undocked - Losgekoppel + Undocked + Losgekoppel - Fullscreen - Volskerm + Fullscreen + Volskerm - files - lêers + files + lêers - Save picture - Stoor beeld + Save picture + Stoor beeld - New sub-group - Nuwe subgroep + New sub-group + Nuwe subgroep - Enter the name: - Gee die naam: + Enter the name: + Gee die naam: - New text item - Nuwe teksitem + New text item + Nuwe teksitem - Enter your text: - Gee jou teks: + Enter your text: + Gee jou teks: - New integer item - Nuwe heelgetalitem + New integer item + Nuwe heelgetalitem - Enter your number: - Gee jou nommer: + Enter your number: + Gee jou nommer: - New unsigned item - Nuwe onondertekende item + New unsigned item + Nuwe onondertekende item - New float item - Nuwe dryfitem + New float item + Nuwe dryfitem - New Boolean item - Nuwe Boole-item + New Boolean item + Nuwe Boole-item - Choose an item: - Kies 'n item: + Choose an item: + Kies 'n item: - Rename group - Hernoem groep + Rename group + Hernoem groep - The group '%1' cannot be renamed. - Die groep '%1' kan nie hernoem word nie. + The group '%1' cannot be renamed. + Die groep '%1' kan nie hernoem word nie. - Existing group - Bestaande groep + Existing group + Bestaande groep - The group '%1' already exists. - Die groep '%1' bestaan reeds. + The group '%1' already exists. + Die groep '%1' bestaan reeds. - Change value - Verander waarde + Change value + Verander waarde - Save document under new filename... - Stoor dokument onder 'n nuwe lêernaam ... + Save document under new filename... + Stoor dokument onder 'n nuwe lêernaam ... - Saving aborted - Storing gestaak + Saving aborted + Storing gestaak - Unsaved document - Ongestoorde dokument + Unsaved document + Ongestoorde dokument - Save document before close? - Stoor dokument voor jy dit toe maak? + Save document before close? + Stoor dokument voor jy dit toe maak? - Save Macro - Stoor Makro + Save Macro + Stoor Makro - Finish - Voltooi + Finish + Voltooi - Clear - Maak skoon + Clear + Maak skoon - Cancel - Kanselleer + Cancel + Kanselleer - Inner - Binneste + Inner + Binneste - Outer - Buitenste + Outer + Buitenste - No Browser - Geen Leser + No Browser + Geen Leser - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Kan nie jou webleser oop maak nie. -Maak asb. 'n leservenster oop en tik in http://localhost:%1 + Kan nie jou webleser oop maak nie. +Maak asb. 'n leservenster oop en tik in http://localhost:%1 - No Server - Geen Bediener + No Server + Geen Bediener - Unable to start the server to port %1: %2. - Nie in staat om die bediener te begin na poort %1:%2 nie. + Unable to start the server to port %1: %2. + Nie in staat om die bediener te begin na poort %1:%2 nie. - Unable to open your system browser. - Nie in staat om stelselleser oop te maak nie. + Unable to open your system browser. + Nie in staat om stelselleser oop te maak nie. - Options... - Opsies... + Options... + Opsies... - Out of memory - Onvoldoende geheue + Out of memory + Onvoldoende geheue - Not enough memory available to display the data. - Nie genoeg geheue is beskikbaar om die data te vertoon nie. + Not enough memory available to display the data. + Nie genoeg geheue is beskikbaar om die data te vertoon nie. - Cannot find file %1 - Kan nie lêer '%1' vind nie + Cannot find file %1 + Kan nie lêer '%1' vind nie - Cannot find file %1 neither in %2 nor in %3 - Kan nie lêer '%1' vind nie, nie in '%2' of '%3' nie + Cannot find file %1 neither in %2 nor in %3 + Kan nie lêer '%1' vind nie, nie in '%2' of '%3' nie - Save %1 Document - Stoor '%1' Dokument + Save %1 Document + Stoor '%1' Dokument - %1 document (*.FCStd) - %1-dokument (*.FCStd) + %1 document (*.FCStd) + %1-dokument (*.FCStd) - Save As - Stoor as + Save As + Stoor as - %1 already exists. + %1 already exists. Do you want to replace it? - %1 bestaan reeds. Wil jy dit vervang? + %1 bestaan reeds. Wil jy dit vervang? - Document not closable - Dokument nie toemaakbaar nie + Document not closable + Dokument nie toemaakbaar nie - The document is not closable for the moment. - Die dokument is huidiglik nie toemaakbaar nie. + The document is not closable for the moment. + Die dokument is huidiglik nie toemaakbaar nie. - No OpenGL - Geen OpenGL + No OpenGL + Geen OpenGL - This system does not support OpenGL - Hierdie stelsel ondersteun nie OpenGL nie + This system does not support OpenGL + Hierdie stelsel ondersteun nie OpenGL nie - Help - Hulp + Help + Hulp - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Kan nie dokumentasie laai nie. + Kan nie dokumentasie laai nie. Om dit te laai word Qt 4.4 of hoër benodig. - %1 Help - %1 Hulp + %1 Help + %1 Hulp - Exporting PDF... - Voer PDF uit... + Exporting PDF... + Voer PDF uit... - Wrong selection - Verkeerde keuse + Wrong selection + Verkeerde keuse - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Slegs een voorwerp gekies. Kies asseblief twee. + Slegs een voorwerp gekies. Kies asseblief twee. Wees bewus dat die plek waar jy kliek belangrik is. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Kies asseblief twee voorwerpe. + Kies asseblief twee voorwerpe. Wees bewus dat die punt waar jy kliek belangrik is. - New boolean item - Nuwe Boole-item + New boolean item + Nuwe Boole-item - Navigation styles - Navigasiestyle + Navigation styles + Navigasiestyle - %1 navigation - %1 navigasie + %1 navigation + %1 navigasie - Move annotation - Skuif annotasie + Move annotation + Skuif annotasie - Transform - Omskep + Transform + Omskep - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Standaardaansig + + + Box selection + + + + StdCmdAbout - Help - Hulp + Help + Hulp - &About %1 - &Aangaande %1 + &About %1 + &Aangaande %1 - About %1 - Aangaande %1 + About %1 + Aangaande %1 - - + + StdCmdAboutQt - Help - Hulp + Help + Hulp - About &Qt - &Aangaande Qt + About &Qt + &Aangaande Qt - About Qt - Aangaande Qt + About Qt + Aangaande Qt - - + + StdCmdActivateNextWindow - Window - Venster + Window + Venster - Ne&xt - &Volgende + Ne&xt + &Volgende - Activate next window - Aktiveer volgende venster + Activate next window + Aktiveer volgende venster - - + + StdCmdActivatePrevWindow - Window - Venster + Window + Venster - Pre&vious - &Vorige + Pre&vious + &Vorige - Activate previous window - Aktiveer vorige venster + Activate previous window + Aktiveer vorige venster - - + + + StdCmdAlignment + + Edit + Wysig + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Venster + Window + Venster - Arrange &Icons - &Organiseer Ikone + Arrange &Icons + &Organiseer Ikone - Arrange Icons - Organiseer Ikone + Arrange Icons + Organiseer Ikone - - + + StdCmdAxisCross - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Venster + Window + Venster - &Cascade - &Kaskade + &Cascade + &Kaskade - Tile pragmatic - Teël pragmaties + Tile pragmatic + Teël pragmaties - - + + StdCmdCloseActiveWindow - Window - Venster + Window + Venster - Cl&ose - &Maak toe + Cl&ose + &Maak toe - Close active window - Maak aktiewe venster toe + Close active window + Maak aktiewe venster toe - - + + StdCmdCloseAllWindows - Window - Venster + Window + Venster - Close Al&l - &Maak alles toe + Close Al&l + &Maak alles toe - Close all windows - Maak alle vensters toe + Close all windows + Maak alle vensters toe - - + + StdCmdCommandLine - Tools - Gereedskap + Tools + Gereedskap - Start command &line... - &Begin bevelmodus... + Start command &line... + &Begin bevelmodus... - Opens the command line in the console - Maak bevelmodus oop in die konsool + Opens the command line in the console + Maak bevelmodus oop in die konsool - - + + StdCmdCopy - Edit - Wysig + Edit + Wysig - C&opy - &Kopieer + C&opy + &Kopieer - Copy operation - Kopieer verwerking + Copy operation + Kopieer verwerking - - + + StdCmdCut - Edit - Wysig + Edit + Wysig - &Cut - &Knip + &Cut + &Knip - Cut out - Knip uit + Cut out + Knip uit - - + + StdCmdDDuplicateSelection - Edit - Wysig + Edit + Wysig - Duplicate selection - Duplikaatseleksie + Duplicate selection + Duplikaatseleksie - Put duplicates of the selected objects to the active document - Plaas duplikate van die geselekteerde voorwerpe in die aktiewe dokument + Put duplicates of the selected objects to the active document + Plaas duplikate van die geselekteerde voorwerpe in die aktiewe dokument - - + + StdCmdDelete - Edit - Wysig + Edit + Wysig - &Delete - &Verwyder + &Delete + &Verwyder - Deletes the selected objects - Verwyder die geselekteerde voorwerpe + Deletes the selected objects + Verwyder die geselekteerde voorwerpe - - + + StdCmdDemoMode - Standard-View - Standaardaansig + Standard-View + Standaardaansig - View turntable... - Wys draaitafel... + View turntable... + Wys draaitafel... - View turntable - Wys draaitafel + View turntable + Wys draaitafel - - + + StdCmdDlgCustomize - Tools - Gereedskap + Tools + Gereedskap - Cu&stomize... - &Aanpassing... + Cu&stomize... + &Aanpassing... - Customize toolbars and command bars - Verander nutsbalke and bevelbalke + Customize toolbars and command bars + Verander nutsbalke and bevelbalke - - + + StdCmdDlgMacroExecute - Macros ... - Makros... + Macros ... + Makros... - Opens a dialog to let you execute a recorded macro - Maak 'n dialoog oop om 'n opgeneemde makro uit te voer + Opens a dialog to let you execute a recorded macro + Maak 'n dialoog oop om 'n opgeneemde makro uit te voer - Macro - Makro + Macro + Makro - - + + StdCmdDlgMacroExecuteDirect - Macro - Makro + Macro + Makro - Execute macro - Voer makro uit + Execute macro + Voer makro uit - Execute the macro in the editor - Voer die makro in die wysiger uit + Execute the macro in the editor + Voer die makro in die wysiger uit - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makro-opname... + &Macro recording ... + &Makro-opname... - Opens a dialog to record a macro - Maak 'n dialoog oop om 'n makro op te neem + Opens a dialog to record a macro + Maak 'n dialoog oop om 'n makro op te neem - Macro - Makro + Macro + Makro - - + + StdCmdDlgParameter - Tools - Gereedskap + Tools + Gereedskap - E&dit parameters ... - &Wysig parameters... + E&dit parameters ... + &Wysig parameters... - Opens a Dialog to edit the parameters - Maak 'n dialoog oop om die parameters te wysig + Opens a Dialog to edit the parameters + Maak 'n dialoog oop om die parameters te wysig - - + + StdCmdDlgPreferences - Tools - Gereedskap + Tools + Gereedskap - &Preferences ... - &Voorkeure... + &Preferences ... + &Voorkeure... - Opens a Dialog to edit the preferences - Maak 'n dialoog oop om die voorkeure te wysig + Opens a Dialog to edit the preferences + Maak 'n dialoog oop om die voorkeure te wysig - - + + StdCmdDockViewMenu - View - Voorkoms + View + Voorkoms - Vie&ws - &Aansigte + Vie&ws + &Aansigte - Toggles this window - Aktiveer/inaktiveer hierdie venster + Toggles this window + Aktiveer/inaktiveer hierdie venster - - + + StdCmdDrawStyle - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Wysig + + + Duplicate selection + Duplikaatseleksie + + + Put duplicates of the selected objects to the active document + Plaas duplikate van die geselekteerde voorwerpe in die aktiewe dokument + + + + StdCmdEdit + + Edit + Wysig + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Lêer + File + Lêer - &Export... - &Voer uit... + &Export... + &Voer uit... - Export an object in the active document - Voer 'n voorwerp in die aktiewe dokument uit + Export an object in the active document + Voer 'n voorwerp in die aktiewe dokument uit - Supported formats - Ondersteunde formate + Supported formats + Ondersteunde formate - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Gereedskap + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Lêer + File + Lêer - &Recompute - &Herbereken + &Recompute + &Herbereken - Recompute feature or document - Herbereken eienskap of dokument + Recompute feature or document + Herbereken eienskap of dokument - - + + StdCmdFreeCADWebsite - Help - Hulp + Help + Hulp - FreeCAD Website - FreeCAD Webwerf + FreeCAD Website + FreeCAD Webwerf - The FreeCAD website - Die FreeCAD webwerf + The FreeCAD website + Die FreeCAD webwerf - - + + StdCmdFreezeViews - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Freeze display - Vries vertoning + Freeze display + Vries vertoning - Freezes the current view position - Vries die huidige aansigposisie + Freezes the current view position + Vries die huidige aansigposisie - - + + StdCmdHideObjects - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Hide all objects - Verskuil al die voorwerpe + Hide all objects + Verskuil al die voorwerpe - Hide all objects in the document - Verskuil al die voorwerpe in die dokument + Hide all objects in the document + Verskuil al die voorwerpe in die dokument - - + + StdCmdHideSelection - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Hide selection - Verskuil seleksie + Hide selection + Verskuil seleksie - Hide all selected objects - Verskuil al die gekose voorwerpe + Hide all selected objects + Verskuil al die gekose voorwerpe - - + + StdCmdImport - File - Lêer + File + Lêer - &Import... - &Voer in... + &Import... + &Voer in... - Import a file in the active document - Voer 'n lêer in in die aktiewe dokument + Import a file in the active document + Voer 'n lêer in in die aktiewe dokument - Supported formats - Ondersteunde formate + Supported formats + Ondersteunde formate - All files (*.*) - Alle lêers (*.*) + All files (*.*) + Alle lêers (*.*) - - + + StdCmdMacroStartDebug - Macro - Makro + Macro + Makro - Debug macro - Stel foute in die makro reg + Debug macro + Stel foute in die makro reg - Start debugging of macro - Begin om makrofoute te soek + Start debugging of macro + Begin om makrofoute te soek - - + + StdCmdMacroStepOver - Macro - Makro + Macro + Makro - Step over - Spring oor + Step over + Spring oor - - + + StdCmdMacroStopDebug - Macro - Makro + Macro + Makro - Stop debugging - Stop foutsoeking + Stop debugging + Stop foutsoeking - Stop debugging of macro - Stop makrofoutsoeking + Stop debugging of macro + Stop makrofoutsoeking - - + + StdCmdMacroStopRecord - Macro - Makro + Macro + Makro - S&top macro recording - &Stop makro opname + S&top macro recording + &Stop makro opname - Stop the macro recording session - Stop die makro opnamesessie + Stop the macro recording session + Stop die makro opnamesessie - - + + StdCmdMeasureDistance - View - Voorkoms + View + Voorkoms - Measure distance - Meet afstand + Measure distance + Meet afstand - - + + StdCmdMeasurementSimple - Tools - Gereedskap + Tools + Gereedskap - Mesure distance - Meet afstand + Mesure distance + Meet afstand - Measures distance between two selected objects - Meet afstand tussen twee geselekteerde voorwerpe + Measures distance between two selected objects + Meet afstand tussen twee geselekteerde voorwerpe - - + + Measure distance + Meet afstand + + + StdCmdMergeProjects - File - Lêer + File + Lêer - Merge project... - Verenig projek ... + Merge project... + Verenig projek ... - Merge project - Verenig projek + Merge project + Verenig projek - %1 document (*.fcstd) - %1 dokument (*.fcstd) + %1 document (*.fcstd) + %1 dokument (*.fcstd) - Cannot merge project with itself. - Kan nie die projek met homself verenig nie. + Cannot merge project with itself. + Kan nie die projek met homself verenig nie. - - + + StdCmdNew - File - Lêer + File + Lêer - &New - &Nuwe + &New + &Nuwe - Create a new empty document - Skep 'n nuwe leë dokument + Create a new empty document + Skep 'n nuwe leë dokument - - + + StdCmdOnlineHelp - Help - Hulp + Help + Hulp - Show help to the application - Wys hulp vir die toepassing + Show help to the application + Wys hulp vir die toepassing - - + + StdCmdOnlineHelpPython - Help - Hulp + Help + Hulp - Python Manuals - Python Handleidings + Python Manuals + Python Handleidings - Show the Python documentation - Wys die Python dokumentasie + Show the Python documentation + Wys die Python dokumentasie - - + + StdCmdOnlineHelpWebsite - Help - Hulp + Help + Hulp - Help Website - Hulpwebwerf + Help Website + Hulpwebwerf - The website where the help is maintained - Die webwerf waar die hulp in stand gehou word + The website where the help is maintained + Die webwerf waar die hulp in stand gehou word - - + + StdCmdOpen - File - Lêer + File + Lêer - &Open... - &Maak oop... + &Open... + &Maak oop... - Open a document or import files - Maak 'n dokument oop of voer lêers in + Open a document or import files + Maak 'n dokument oop of voer lêers in - Supported formats - Ondersteunde formate + Supported formats + Ondersteunde formate - All files (*.*) - Alle lêers (*.*) + All files (*.*) + Alle lêers (*.*) - - + + StdCmdPaste - Edit - Wysig + Edit + Wysig - &Paste - &Plak + &Paste + &Plak - Paste operation - Plak operasie + Paste operation + Plak operasie - - + + StdCmdPlacement - Edit - Wysig + Edit + Wysig - Placement... - Plasing... + Placement... + Plasing... - Place the selected objects - Plaseer die geselekteerde objekte + Place the selected objects + Plaseer die geselekteerde objekte - - + + StdCmdPrint - File - Lêer + File + Lêer - &Print... - &Druk... + &Print... + &Druk... - Print the document - Druk die dokument + Print the document + Druk die dokument - - + + StdCmdPrintPdf - File - Lêer + File + Lêer - &Export PDF... - &Stoor na PDF... + &Export PDF... + &Stoor na PDF... - Export the document as PDF - Voer die dokument uit na PDF + Export the document as PDF + Voer die dokument uit na PDF - - + + StdCmdPrintPreview - File - Lêer + File + Lêer - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Druk die dokument + Print the document + Druk die dokument - Print preview - Print preview + Print preview + Print preview - - + + StdCmdProjectInfo - File - Lêer + File + Lêer - Project i&nformation... - &Projekinligting... + Project i&nformation... + &Projekinligting... - Show details of the currently active project - Wys besonderhede van die aktiewe projek + Show details of the currently active project + Wys besonderhede van die aktiewe projek - - + + StdCmdProjectUtil - Tools - Gereedskap + Tools + Gereedskap - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Hulp + Help + Hulp - Python Website - Python Webwerf + Python Website + Python Webwerf - The official Python website - Die amptelike Python webwerf + The official Python website + Die amptelike Python webwerf - - + + StdCmdQuit - File - Lêer + File + Lêer - E&xit - &Verlaat + E&xit + &Verlaat - Quits the application - Verlaat die toepassing + Quits the application + Verlaat die toepassing - - + + StdCmdRandomColor - File - Lêer + File + Lêer - Random color - Willekeurige kleur + Random color + Willekeurige kleur - - + + StdCmdRecentFiles - File - Lêer + File + Lêer - Recent files - Onlangse lêers + Recent files + Onlangse lêers - Recent file list - Onlangse lêerlys + Recent file list + Onlangse lêerlys - - + + StdCmdRedo - Edit - Wysig + Edit + Wysig - &Redo - &Herdoen + &Redo + &Herdoen - Redoes a previously undone action - Herdoen 'n voorheen ongedane aksie + Redoes a previously undone action + Herdoen 'n voorheen ongedane aksie - - + + StdCmdRefresh - Edit - Wysig + Edit + Wysig - &Refresh - &Verfris + &Refresh + &Verfris - Recomputes the current active document - Herbereken die huidige aktiewe dokument + Recomputes the current active document + Herbereken die huidige aktiewe dokument - - + + StdCmdSave - File - Lêer + File + Lêer - &Save - &Stoor + &Save + &Stoor - Save the active document - Stoor die aktiewe dokument + Save the active document + Stoor die aktiewe dokument - - + + StdCmdSaveAs - File - Lêer + File + Lêer - Save &As... - &Stoor as... + Save &As... + &Stoor as... - Save the active document under a new file name - Stoor die aktiewe dokument onder 'n nuwe lêernaam + Save the active document under a new file name + Stoor die aktiewe dokument onder 'n nuwe lêernaam - - + + StdCmdSceneInspector - Tools - Gereedskap + Tools + Gereedskap - Scene inspector... - Toneelinspekteur... + Scene inspector... + Toneelinspekteur... - Scene inspector - Toneelinspekteur + Scene inspector + Toneelinspekteur - - + + StdCmdSelectAll - Edit - Wysig + Edit + Wysig - Select &All - &Kies alles + Select &All + &Kies alles - Select all - Kies alles + Select all + Kies alles - - + + StdCmdSetAppearance - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Appearance... - Voorkoms ... + Appearance... + Voorkoms ... - Sets the display properties of the selected object - Stel die vertooneienskappe van die gekose objek + Sets the display properties of the selected object + Stel die vertooneienskappe van die gekose objek - - + + StdCmdShowObjects - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Show all objects - Wys alle voorwerpe + Show all objects + Wys alle voorwerpe - Show all objects in the document - Wys alle voorwerpe in die dokument + Show all objects in the document + Wys alle voorwerpe in die dokument - - + + StdCmdShowSelection - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Show selection - Wys seleksie + Show selection + Wys seleksie - Show all selected objects - Wys alle gekose voorwerpe + Show all selected objects + Wys alle gekose voorwerpe - - + + StdCmdStatusBar - View - Voorkoms + View + Voorkoms - Status bar - Statusbalk + Status bar + Statusbalk - Toggles the status bar - Aktiveer/inaktiveer die statusbalk + Toggles the status bar + Aktiveer/inaktiveer die statusbalk - - + + StdCmdTextureMapping - Tools - Gereedskap + Tools + Gereedskap - Texture mapping... - Tekstuurkartering... + Texture mapping... + Tekstuurkartering... - Texture mapping - Tekstuurkartering + Texture mapping + Tekstuurkartering - - + + StdCmdTileWindows - Window - Venster + Window + Venster - &Tile - &Teël + &Tile + &Teël - Tile the windows - Teël die vensters + Tile the windows + Teël die vensters - - + + StdCmdToggleBreakpoint - Macro - Makro + Macro + Makro - Toggle breakpoint - Aktiveer/Inaktiveer Breekpunt + Toggle breakpoint + Aktiveer/Inaktiveer Breekpunt - - + + StdCmdToggleClipPlane - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Clipping plane - Knipvlak + Clipping plane + Knipvlak - Toggles clipping plane for active view - Aktiveer/inaktiveer knipvlak vir aktiewe aansig + Toggles clipping plane for active view + Aktiveer/inaktiveer knipvlak vir aktiewe aansig - - + + StdCmdToggleNavigation - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Toggle navigation/Edit mode - Kies navigasie- of wysigingsmodus + Toggle navigation/Edit mode + Kies navigasie- of wysigingsmodus - Toggle between navigation and edit mode - Skakel tussen die navigasie- en wysigingsmodus + Toggle between navigation and edit mode + Skakel tussen die navigasie- en wysigingsmodus - - + + StdCmdToggleObjects - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Toggle all objects - Aktiveer/inaktiveer alle voorwerpe + Toggle all objects + Aktiveer/inaktiveer alle voorwerpe - Toggles visibility of all objects in the active document - Verander sigbaarheid van al die voorwerpe in die aktiewe dokument + Toggles visibility of all objects in the active document + Verander sigbaarheid van al die voorwerpe in die aktiewe dokument - - + + StdCmdToggleSelectability - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Toggle selectability - Aktiveer/Inaktiveer kiesbaarheid + Toggle selectability + Aktiveer/Inaktiveer kiesbaarheid - Toggles the property of the objects to get selected in the 3D-View - Aktiveer/inaktiveer die eienskap van die voorwerpe om gekies te word in die 3D-aansig + Toggles the property of the objects to get selected in the 3D-View + Aktiveer/inaktiveer die eienskap van die voorwerpe om gekies te word in die 3D-aansig - - + + StdCmdToggleVisibility - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Toggle visibility - Verander sigbaarheid + Toggle visibility + Verander sigbaarheid - Toggles visibility - Verander sigbaarheid + Toggles visibility + Verander sigbaarheid - - + + StdCmdToolBarMenu - View - Voorkoms + View + Voorkoms - Tool&bars - &Nutsbalke + Tool&bars + &Nutsbalke - Toggles this window - Aktiveer/inaktiveer hierdie venster + Toggles this window + Aktiveer/inaktiveer hierdie venster - - + + StdCmdTransform - Edit - Wysig + Edit + Wysig - Transform... - Omskep... + Transform... + Omskep... - Transform the geometry of selected objects - Omskep die geometrie van gekose voorwerpe + Transform the geometry of selected objects + Omskep die geometrie van gekose voorwerpe - - + + StdCmdTreeSelection - View - Voorkoms + View + Voorkoms - Go to selection - Gaan na seleksie + Go to selection + Gaan na seleksie - Scroll to first selected item - Blaai na die eerste geselekteerde item + Scroll to first selected item + Blaai na die eerste geselekteerde item - - + + StdCmdUndo - Edit - Wysig + Edit + Wysig - &Undo - &Herstel + &Undo + &Herstel - Undo exactly one action - Herstel presies een aksie + Undo exactly one action + Herstel presies een aksie - - + + StdCmdUserInterface - View - Voorkoms + View + Voorkoms - Dock views - Koppel aansigte vas + Dock views + Koppel aansigte vas - Dock all top-level views - Koppel alle topvlak aansigte vas + Dock all top-level views + Koppel alle topvlak aansigte vas - - + + StdCmdViewAxo - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Axometric - Aksonometries + Axometric + Aksonometries - Set to axometric view - Ingestel op aksonometriese aansig + Set to axometric view + Ingestel op aksonometriese aansig - - + + StdCmdViewBottom - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Bottom - Bodem + Bottom + Bodem - Set to bottom view - Stel in op onderaansig + Set to bottom view + Stel in op onderaansig - - + + StdCmdViewCreate - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Create new view - Skep nuwe aansig + Create new view + Skep nuwe aansig - Creates a new view window for the active document - Skep 'n nuwe aansigvenster vir die aktiewe dokument + Creates a new view window for the active document + Skep 'n nuwe aansigvenster vir die aktiewe dokument - - + + StdCmdViewExample1 - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Inventor example #1 - Uitvinder voorbeeld #1 + Inventor example #1 + Uitvinder voorbeeld #1 - Shows a 3D texture with manipulator - Toon 'n 3D tekstuur met manipuleerder + Shows a 3D texture with manipulator + Toon 'n 3D tekstuur met manipuleerder - - + + StdCmdViewExample2 - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Inventor example #2 - Uitvinder voorbeeld #2 + Inventor example #2 + Uitvinder voorbeeld #2 - Shows spheres and drag-lights - Wys sfere en sleepligte + Shows spheres and drag-lights + Wys sfere en sleepligte - - + + StdCmdViewExample3 - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Inventor example #3 - Uitvinder voorbeeld #3 + Inventor example #3 + Uitvinder voorbeeld #3 - Shows a animated texture - Wys 'n geanimeerde tekstuur + Shows a animated texture + Wys 'n geanimeerde tekstuur - - + + StdCmdViewFitAll - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Fit all - Pas alles + Fit all + Pas alles - Fits the whole content on the screen - Pas die hele inhoud op die skerm + Fits the whole content on the screen + Pas die hele inhoud op die skerm - - + + StdCmdViewFitSelection - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Fit selection - Pas seleksie + Fit selection + Pas seleksie - Fits the selected content on the screen - Pas die geselekteerde inhoud op die skerm + Fits the selected content on the screen + Pas die geselekteerde inhoud op die skerm - - + + StdCmdViewFront - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Front - Vooraansig + Front + Vooraansig - Set to front view - Ingestel op vooraansig + Set to front view + Ingestel op vooraansig - - + + StdCmdViewIvIssueCamPos - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Issue camera position - Stel kameraposisie + Issue camera position + Stel kameraposisie - Issue the camera position to the console and to a macro, to easily recall this position - Stuur die kameraposisie na die konsool en na 'n makro, om hierdie posisie maklik te onthou + Issue the camera position to the console and to a macro, to easily recall this position + Stuur die kameraposisie na die konsool en na 'n makro, om hierdie posisie maklik te onthou - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Stereo Interleaved Columns - Stereo oorvleuelende kolomme + Stereo Interleaved Columns + Stereo oorvleuelende kolomme - Switch stereo viewing to Interleaved Columns - Verander stereo vertoning na Oorvleuelende Kolomme + Switch stereo viewing to Interleaved Columns + Verander stereo vertoning na Oorvleuelende Kolomme - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Stereo Interleaved Rows - Stereo Oorvleuelende Rye + Stereo Interleaved Rows + Stereo Oorvleuelende Rye - Switch stereo viewing to Interleaved Rows - Verander stereo vertoning na Oorvleuelende Rye + Switch stereo viewing to Interleaved Rows + Verander stereo vertoning na Oorvleuelende Rye - - + + StdCmdViewIvStereoOff - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Stereo Off - Stereo Af + Stereo Off + Stereo Af - Switch stereo viewing off - Skakel stereo vertoning af + Switch stereo viewing off + Skakel stereo vertoning af - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Stereo quad buffer - Stereo viervuldige buffer + Stereo quad buffer + Stereo viervuldige buffer - Switch stereo viewing to quad buffer - Verander stereo beskouing na viervuldige buffer + Switch stereo viewing to quad buffer + Verander stereo beskouing na viervuldige buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Stereo red/green - Stereo rooi/groen + Stereo red/green + Stereo rooi/groen - Switch stereo viewing to red/green - Verander stereo vertoning na rooi/groen + Switch stereo viewing to red/green + Verander stereo vertoning na rooi/groen - - + + StdCmdViewLeft - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Left - Links + Left + Links - Set to left view - Ingestel op linkeraansig + Set to left view + Ingestel op linkeraansig - - + + StdCmdViewRear - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Rear - Agterste + Rear + Agterste - Set to rear view - Stel na agteraansig + Set to rear view + Stel na agteraansig - - + + StdCmdViewRight - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Right - Regs + Right + Regs - Set to right view - Stel op regteraansig + Set to right view + Stel op regteraansig - - + + + StdCmdViewRotateLeft + + Standard-View + Standaardaansig + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standaardaansig + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Top - Bo-aansig + Top + Bo-aansig - Set to top view - Stel op bo-aansig + Set to top view + Stel op bo-aansig - - + + StdCmdWhatsThis - Help - Hulp + Help + Hulp - &What's This? - &Wat is hierdie? + &What's This? + &Wat is hierdie? - What's This - Wat is hierdie? + What's This + Wat is hierdie? - - + + StdCmdWindows - Window - Venster + Window + Venster - &Windows... - &Vensters... + &Windows... + &Vensters... - Windows list - Vensterlys + Windows list + Vensterlys - - + + StdCmdWindowsMenu - Window - Venster + Window + Venster - Activates this window - Aktiveer hierdie venster + Activates this window + Aktiveer hierdie venster - - + + StdCmdWorkbench - View - Voorkoms + View + Voorkoms - Workbench - Werkbank + Workbench + Werkbank - Switch between workbenches - Skakel tussen werkbanke + Switch between workbenches + Skakel tussen werkbanke - - + + StdOrthographicCamera - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Orthographic view - Ortografiese aansig + Orthographic view + Ortografiese aansig - Switches to orthographic view mode - Skakel na ortografiese aansigmodus + Switches to orthographic view mode + Skakel na ortografiese aansigmodus - - + + StdPerspectiveCamera - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Perspective view - Perspektief aansig + Perspective view + Perspektief aansig - Switches to perspective view mode - Skakel na perspektief aansigmodus + Switches to perspective view mode + Skakel na perspektief aansigmodus - - + + StdViewBoxZoom - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Box zoom - Bokszoem + Box zoom + Bokszoem - - + + StdViewDockUndockFullscreen - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Document window - Dokument venster + Document window + Dokument venster - Display the active view either in fullscreen, in undocked or docked mode - Vertoon die aktiewe aansig in volskerm, losgekoppelde, of vasgekoppelde modus + Display the active view either in fullscreen, in undocked or docked mode + Vertoon die aktiewe aansig in volskerm, losgekoppelde, of vasgekoppelde modus - - + + StdViewScreenShot - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Save picture... - Stoor beeld... + Save picture... + Stoor beeld... - Creates a screenshot of the active view - Vang 'n beeld van die huidige aansig + Creates a screenshot of the active view + Vang 'n beeld van die huidige aansig - - + + StdViewZoomIn - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Zoom In - Zoem in + Zoom In + Zoem in - - + + StdViewZoomOut - Standard-View - Standaardaansig + Standard-View + Standaardaansig - Zoom Out - Zoem Uit + Zoom Out + Zoem Uit - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Lêer + &File + &Lêer - &Edit - &Wysig + &Edit + &Wysig - Standard views - Standaard voorkomste + Standard views + Standaard voorkomste - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Nabyheid + &Zoom + &Nabyheid - Visibility - Sigbaarheid + Visibility + Sigbaarheid - &View - &Voorkoms + &View + &Voorkoms - &Tools - &Gereedskap + &Tools + &Gereedskap - &Macro - &Makro + &Macro + &Makro - &Windows - &Vensters + &Windows + &Vensters - &On-line help - &Internethulp + &On-line help + &Internethulp - &Help - &Help + &Help + &Help - File - Lêer + File + Lêer - Macro - Makro + Macro + Makro - View - Voorkoms + View + Voorkoms - Special Ops - Spesiale verwerkings + Special Ops + Spesiale verwerkings - - + + testClass - test - Toets + test + Toets - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaakPaneel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Geskep vir Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaakPaneel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Geskep vir Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Kies die styl van die taakpaneel + Choose the style of the Task Panel + Kies die styl van die taakpaneel - Default - Versuiminstelling + Default + Versuiminstelling - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_de.ts b/src/Gui/Language/FreeCAD_de.ts index 79e5131c2..07c2a2f0b 100644 --- a/src/Gui/Language/FreeCAD_de.ts +++ b/src/Gui/Language/FreeCAD_de.ts @@ -23,35 +23,35 @@ Angle Snap Einrastwinkel - + 1 ° 1 ° - + 2 ° 2 ° - + 5 ° 5 ° - + 10 ° 10 ° - + 20 ° 20 ° - + 45 ° 45 ° - + 90 ° 90 ° - + 180 ° 180 ° @@ -63,6 +63,44 @@ kein + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Hinzufügen + + + Remove + Entfernen + + + Move up + Noch oben verschieben + + + Move down + Nache unten verschieben + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + Gui::BlenderNavigationStyle @@ -160,6 +198,10 @@ License... Lizenz... + + Copy to clipboard + + Gui::Dialog::ButtonModel @@ -213,11 +255,11 @@ Angle Winkel - + 90° 90° - + -90° -90 ° @@ -711,7 +753,7 @@ Wählen Sie bitte eine andere Tastenkombination. Display mode: - Anzeigemodus: + Anzeigemodus: Plot mode: @@ -737,6 +779,10 @@ Wählen Sie bitte eine andere Tastenkombination. Color plot: Farb-Plot: + + Document window: + + Gui::Dialog::DlgEditorSettings @@ -1486,6 +1532,14 @@ Wählen Sie bitte ein anderes Verzeichnis aus. Invert zoom Zoom umkehren + + Zoom at cursor + + + + Zoom step + + Gui::Dialog::DlgSettings3DViewImp @@ -1727,6 +1781,10 @@ Wählen Sie bitte ein anderes Verzeichnis aus. Items Elemente + + Current line highlight + + Gui::Dialog::DlgSettingsImage @@ -1850,11 +1908,11 @@ Wählen Sie bitte ein anderes Verzeichnis aus. QSXGA 2560 x 2048 QSXGA 2560 x 2024 - + QUXGA 3200 × 2400 QUXGA 3200 x 2400 - + HUXGA 6400 × 4800 HUXGA 6400 x 4800 @@ -1961,6 +2019,14 @@ Wählen Sie bitte ein anderes Verzeichnis aus. Macro path Makro-Zielpfad + + General macro settings + + + + Run macros in local environment + + Gui::Dialog::DlgSettingsUnits @@ -2053,11 +2119,11 @@ Wählen Sie bitte ein anderes Verzeichnis aus. The color of construction geometry in editmode - Die Farbe der Konstruktionsgeometrien im Editier-Modus + Die Farbe der Konstruktionsgeometrien im Editier-Modus The color of fully constrained geometry in editmode - Die Farbe der komplett festgelegten Geometrien im Editier-Modus + Die Farbe der komplett festgelegten Geometrien im Editier-Modus The color of vertices being edited @@ -2067,6 +2133,42 @@ Wählen Sie bitte ein anderes Verzeichnis aus. The color of edges being edited Die Farbe der zu bearbeitenden Kanten + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + Gui::Dialog::DlgTipOfTheDay @@ -2131,7 +2233,43 @@ Wählen Sie bitte ein anderes Verzeichnis aus. Gui::Dialog::DownloadDialog Canceled. - Abgebrochen. + Abgebrochen. + + + Download + + + + Cancel + Abbrechen + + + Close + Schließen + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Download fehlgeschlagen: %1. + + + Downloaded %1 to current directory. + @@ -2168,6 +2306,13 @@ Wählen Sie bitte ein anderes Verzeichnis aus. OK + + Gui::Dialog::LicenseDialog + + Copyright + + + Gui::Dialog::MouseButtons @@ -2856,6 +3001,25 @@ Sollen die Änderungen gespeichert werden? Benutzerdefiniert... + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + Gui::MacroCommand @@ -2886,6 +3050,88 @@ Sollen die Änderungen gespeichert werden? Alles schließen + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + Gui::NetworkRetriever @@ -3031,6 +3277,10 @@ Wollen Sie sie beenden, ohne Ihre Daten zu speichern? Select All Alles auswählen + + Clear console + + Gui::PythonEditor @@ -3175,7 +3425,7 @@ Möchten Sie ein anderes Verzeichnis angeben? Gui::TaskView::TaskAppearance Display mode: - Anzeigemodus: + Anzeigemodus: Plot mode: @@ -3197,6 +3447,10 @@ Möchten Sie ein anderes Verzeichnis angeben? Appearance Erscheinungsbild + + Document window: + + Gui::TaskView::TaskEditControl @@ -3220,11 +3474,30 @@ Möchten Sie ein anderes Verzeichnis angeben? Selektion bearbeiten + + Gui::TouchpadNavigationStyle + + Press left mouse button + Drücken Sie die linke Maustaste + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + Gui::Translator English - Englisch + Englisch @@ -3481,11 +3754,11 @@ Möchten Sie ein anderes Verzeichnis angeben? File not found - Datei nicht gefunden + Datei nicht gefunden Cannot open file %1 - Kann Datei %1 nicht öffnen + Kann Datei %1 nicht öffnen Save views... @@ -3792,6 +4065,17 @@ You either have to finish or cancel the editing in the task panel. Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufgabenfensters abbrechen. + + StdBoxSelection + + Standard-View + Standardansicht + + + Box selection + + + StdCmdAbout @@ -3852,6 +4136,21 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Vorheriges Fenster aktivieren + + StdCmdAlignment + + Edit + Bearbeiten + + + Alignment... + + + + Align the selected objects + + + StdCmdArrangeIcons @@ -3972,15 +4271,15 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg StdCmdDDuplicateSelection Edit - Bearbeiten + Bearbeiten Duplicate selection - Auswahl duplizieren + Auswahl duplizieren Put duplicates of the selected objects to the active document - Duplikate der selektierten Objekte in aktives Dokument einfügen + Duplikate der selektierten Objekte in aktives Dokument einfügen @@ -4129,6 +4428,40 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Zeichenstil + + StdCmdDuplicateSelection + + Edit + Bearbeiten + + + Duplicate selection + Auswahl duplizieren + + + Put duplicates of the selected objects to the active document + Duplikate der selektierten Objekte in aktives Dokument einfügen + + + + StdCmdEdit + + Edit + Bearbeiten + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + StdCmdExport @@ -4145,7 +4478,30 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Supported formats - Unterstützte Formate + Unterstützte Formate + + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Werkzeuge + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + @@ -4321,12 +4677,16 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Mesure distance - Abstand messen + Abstand messen Measures distance between two selected objects Misst die Distanz zwischen zwei ausgewählten Objekten + + Measure distance + Abstand messen + StdCmdMergeProjects @@ -4381,15 +4741,15 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg StdCmdOnlineHelpPython Help - Hilfe + Hilfe Python Manuals - Python-Handbuch + Python-Handbuch Show the Python documentation - Python-Dokumentation anzeigen + Python-Dokumentation anzeigen @@ -5206,6 +5566,36 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Rechtsansicht + + StdCmdViewRotateLeft + + Standard-View + Standardansicht + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standardansicht + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + StdCmdViewTop @@ -5389,6 +5779,34 @@ Sie müssen entweder den Bearbeitungsvorgang fertigstellen oder mittels des Aufg Drahtgitter-Modus + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + Workbench diff --git a/src/Gui/Language/FreeCAD_es.ts b/src/Gui/Language/FreeCAD_es.ts index 089b96e95..328b1b2f9 100644 --- a/src/Gui/Language/FreeCAD_es.ts +++ b/src/Gui/Language/FreeCAD_es.ts @@ -1,5494 +1,5912 @@ - - + + Angle - Form - Formulario + Form + Formulario - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Ajuste angular + Angle Snap + Ajuste angular - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - ninguno + none + ninguno - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Añadir + + + Remove + Quitar + + + Move up + Mover hacia arriba + + + Move down + Mover hacia abajo + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Cliquee el botón izquierdo del mouse + Press left mouse button + Cliquee el botón izquierdo del mouse - Press SHIFT and middle mouse button - Pulse SHIFT y el botón central del mouse + Press SHIFT and middle mouse button + Pulse SHIFT y el botón central del mouse - Press middle mouse button - Cliquee el botón central del mouse + Press middle mouse button + Cliquee el botón central del mouse - Scroll middle mouse button - Despláce botón central del mouse + Scroll middle mouse button + Despláce botón central del mouse - - + + Gui::CADNavigationStyle - Press left mouse button - Cliquee el botón izquierdo del mouse + Press left mouse button + Cliquee el botón izquierdo del mouse - Press middle mouse button - Cliquee el botón central del mouse + Press middle mouse button + Cliquee el botón central del mouse - Press left and middle mouse button - Cliquee el botón central e izquierdo del mouse + Press left and middle mouse button + Cliquee el botón central e izquierdo del mouse - Scroll middle mouse button - Despláce botón central del mouse + Scroll middle mouse button + Despláce botón central del mouse - - + + Gui::Command - Standard - Estándar + Standard + Estándar - - + + Gui::ContainerDialog - &OK - &Aceptar + &OK + &Aceptar - &Cancel - &Cancelar + &Cancel + &Cancelar - - + + Gui::ControlSingleton - Task panel - Panel de tareas + Task panel + Panel de tareas - - + + Gui::Dialog::AboutApplication - About - Acerca de + About + Acerca de - Revision number - Número de revisión + Revision number + Número de revisión - Version - Versión + Version + Versión - OK - Aceptar + OK + Aceptar - - (Vacio) + + (Vacio) - Release date - Fecha de la versión + Release date + Fecha de la versión - Platform - Plataforma + Platform + Plataforma - License... - Licencia... + License... + Licencia... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Botón %1 + Button %1 + Botón %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Comandos + Commands + Comandos - - + + Gui::Dialog::DemoMode - View Turntable - Ver Torno + View Turntable + Ver Torno - Speed - Velocidad + Speed + Velocidad - Maximum - Valor máximo + Maximum + Valor máximo - Minimum - Valor mínimo + Minimum + Valor mínimo - Fullscreen - Pantalla completa + Fullscreen + Pantalla completa - Enable timer - Activar el temporizador + Enable timer + Activar el temporizador - s - s + s + s - Angle - Ãngulo + Angle + Ãngulo + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Reproducir - -90° - -90° + Stop + Parar - Play - Reproducir + Close + Cerrar - - Stop - Parar - - - Close - Cerrar - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Seleccionar ventana + Choose Window + Seleccionar ventana - &Activate - &Activar + &Activate + &Activar - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Cancelar + &Cancel + &Cancelar - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Ventanas + Windows + Ventanas - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorización + Authorization + Autorización - &OK - &Aceptar + &OK + &Aceptar - &Cancel - &Cancelar + &Cancel + &Cancelar - Password: - Contraseña: + Password: + Contraseña: - User name: - Nombre de usuario: + User name: + Nombre de usuario: - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Seleccionar icono + Choose Icon + Seleccionar icono - OK - Aceptar + OK + Aceptar - Cancel - Cancelar + Cancel + Cancelar - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - Macros + Macros + Macros - Setup Custom Macros - Macros de sistema personalizadas + Setup Custom Macros + Macros de sistema personalizadas - Macro: - Macro: + Macro: + Macro: - ... - ... + ... + ... - Pixmap - Pixmap + Pixmap + Pixmap - Accelerator: - Acelerador: + Accelerator: + Acelerador: - What's this: - Qué es esto: + What's this: + Qué es esto: - Status text: - Texto de estado: + Status text: + Texto de estado: - Tool tip: - sugerencia: + Tool tip: + sugerencia: - Menu text: - Texto de menú: + Menu text: + Texto de menú: - Add - Añadir + Add + Añadir - Remove - Quitar + Remove + Quitar - Replace - Reemplazar + Replace + Reemplazar - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Iconos + Icons + Iconos - Macros - Macros + Macros + Macros - No macro - Ninguna macro + No macro + Ninguna macro - No macros found. - Ninguna macro encontrada. + No macros found. + Ninguna macro encontrada. - Macro not found - Macro no encontrada + Macro not found + Macro no encontrada - Sorry, couldn't find macro file '%1'. - Lo siento, no se ha podido encontrar el archivo de macro '%1'. + Sorry, couldn't find macro file '%1'. + Lo siento, no se ha podido encontrar el archivo de macro '%1'. - Empty macro - Macro vacía + Empty macro + Macro vacía - Please specify the macro first. - Por favor especifique la macro primero. + Please specify the macro first. + Por favor especifique la macro primero. - Empty text - Texto vacío + Empty text + Texto vacío - Please specify the menu text first. - Por favor, especifique el texto del menú primero. + Please specify the menu text first. + Por favor, especifique el texto del menú primero. - No item selected - Ningún elemento seleccionado + No item selected + Ningún elemento seleccionado - Please select a macro item first. - Por favor seleccione un elemento de macro primero. + Please select a macro item first. + Por favor seleccione un elemento de macro primero. - - + + Gui::Dialog::DlgCustomCommands - Commands - Comandos + Commands + Comandos - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Categoría + Category + Categoría - Icon - Icono + Icon + Icono - Command - Comando + Command + Comando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Teclado + Keyboard + Teclado - Description: - Descripción: + Description: + Descripción: - &Category: - &Categoría: + &Category: + &Categoría: - C&ommands: - C&omandos: + C&ommands: + C&omandos: - Current shortcut: - Atajo de teclado actual: + Current shortcut: + Atajo de teclado actual: - Press &new shortcut: - Presionar &nuevo atajo de teclado: + Press &new shortcut: + Presionar &nuevo atajo de teclado: - Currently assigned to: - Actualmente asignado a: + Currently assigned to: + Actualmente asignado a: - &Assign - &Asignar + &Assign + &Asignar - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Restaurar + &Reset + &Restaurar - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Re&staurar todo + Re&set All + Re&staurar todo - Alt+S - Alt+S + Alt+S + Alt+S - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Icono + Icon + Icono - Command - Comando + Command + Comando - none - ninguno + none + ninguno - Multiple defined shortcut - Múltiples atajos de teclado definidos + Multiple defined shortcut + Múltiples atajos de teclado definidos - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - El atajo de teclado '%1' está definido más de una vez. Esto puede ocasionar un comportamiento inesperado. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + El atajo de teclado '%1' está definido más de una vez. Esto puede ocasionar un comportamiento inesperado. - Already defined shortcut - Atajo de teclado ya definido + Already defined shortcut + Atajo de teclado ya definido - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - El atajo de teclado '%1' ya está asignado a '%2'. + El atajo de teclado '%1' ya está asignado a '%2'. Por favor defina otro atajo de teclado. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Barras de herramientas + Toolbox bars + Barras de herramientas - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Barras de herramientas + Toolbars + Barras de herramientas - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Los cambios se activarán la próxima vez que cargue el entorno apropiado</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Los cambios se activarán la próxima vez que cargue el entorno apropiado</p></body></html> - Move right - Mover a la derecha + Move right + Mover a la derecha - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Mueva el elemento seleccionado un nivel hacia abajo.</b><p>Esto también cambiará el nivel del elemento padre.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Mueva el elemento seleccionado un nivel hacia abajo.</b><p>Esto también cambiará el nivel del elemento padre.</p> - Move left - Mover a la izquierda + Move left + Mover a la izquierda - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mueva el elemento seleccionado un nivel hacia arriba.</b><p>Esto también cambiará el nivel del elemento padre.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mueva el elemento seleccionado un nivel hacia arriba.</b><p>Esto también cambiará el nivel del elemento padre.</p> - Move down - Mover hacia abajo + Move down + Mover hacia abajo - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mueva el elemento seleccionado hacia abajo.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mueva el elemento seleccionado hacia abajo.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> - Move up - Mover hacia arriba + Move up + Mover hacia arriba - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mueva el elemento seleccionado hacia arriba.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mueva el elemento seleccionado hacia arriba.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> - New... - Nuevo... + New... + Nuevo... - Rename... - Renombrar... + Rename... + Renombrar... - Delete - Borrar + Delete + Borrar - Icon - Icono + Icon + Icono - Command - Comando + Command + Comando - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Nueva barra de herramientas + New toolbar + Nueva barra de herramientas - Toolbar name: - Nombre de la barra de herramientas: + Toolbar name: + Nombre de la barra de herramientas: - Duplicated name - Nombre duplicado + Duplicated name + Nombre duplicado - The toolbar name '%1' is already used - El nombre de la barra de herramientas '%1' ya se está utilizando + The toolbar name '%1' is already used + El nombre de la barra de herramientas '%1' ya se está utilizando - Rename toolbar - Renombrar barra de herramientas + Rename toolbar + Renombrar barra de herramientas - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgCustomizeImp - Customize - Personalizar + Customize + Personalizar - &Help - Ay&uda + &Help + Ay&uda - &Close - &Cerrar + &Close + &Cerrar - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Botones + Buttons + Botones - Clear - Limpiar + Clear + Limpiar - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Propiedades de visualización + Display properties + Propiedades de visualización - Display - Visualización + Display + Visualización - Transparency: - Transparencia: + Transparency: + Transparencia: - Line width: - Ancho de línea: + Line width: + Ancho de línea: - Point size: - Tamaño de punto: + Point size: + Tamaño de punto: - Material - Material + Material + Material - ... - ... + ... + ... - Close - Cerrar + Close + Cerrar - Viewing mode - Modo de visualización + Viewing mode + Modo de visualización - Display mode: - Modo de visualización: + Display mode: + Modo de visualización: - Plot mode: - Modo de impresión: + Plot mode: + Modo de impresión: - - (Vacio) + + (Vacio) - Line transparency: - Transparencia de la línea: + Line transparency: + Transparencia de la línea: - Line color: - Color de la línea: + Line color: + Color de la línea: - Shape color: - Color del cuerpo: + Shape color: + Color del cuerpo: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Editor + Editor + Editor - Options - Opciones + Options + Opciones - Enable line numbers - Permite números de línea + Enable line numbers + Permite números de línea - Enable folding - Permite el plegado + Enable folding + Permite el plegado - Indentation - Sangrado + Indentation + Sangrado - Insert spaces - Insertar espacios + Insert spaces + Insertar espacios - Tab size: - Tamaño de la tabulación: + Tab size: + Tamaño de la tabulación: - Indent size: - Tamaño de sangrado: + Indent size: + Tamaño de sangrado: - Keep tabs - Mantener la tabulación + Keep tabs + Mantener la tabulación - Display Items - Visualizar elementos + Display Items + Visualizar elementos - Family: - Familia: + Family: + Familia: - Size: - Tamaño: + Size: + Tamaño: - Preview: - Previsualización: + Preview: + Previsualización: - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgGeneral - General - General + General + General - Start up - Iniciar + Start up + Iniciar - Enable splash screen at start up - Activar página de bienvenida en el inicio + Enable splash screen at start up + Activar página de bienvenida en el inicio - Switch to tab of report window: - Cambiar a la pestaña de ventana de informe: + Switch to tab of report window: + Cambiar a la pestaña de ventana de informe: - Auto load module after start up: - Carga automática del módulo después de iniciar: + Auto load module after start up: + Carga automática del módulo después de iniciar: - Language - Idioma + Language + Idioma - Change language: - Cambiar idioma: + Change language: + Cambiar idioma: - Main window - Ventana principal + Main window + Ventana principal - Size of recent file list - Tamaño de la lista de archivos recientes + Size of recent file list + Tamaño de la lista de archivos recientes - Window style: - Estilo de ventana: + Window style: + Estilo de ventana: - Size of toolbar icons: - Tamaño de los iconos de la barra de herramientas: + Size of toolbar icons: + Tamaño de los iconos de la barra de herramientas: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Predeterminado (%1 x %1) + Default (%1 x %1) + Predeterminado (%1 x %1) - Small (%1 x %1) - Pequeño (%1 x %1) + Small (%1 x %1) + Pequeño (%1 x %1) - Large (%1 x %1) - Grande (%1 x %1) + Large (%1 x %1) + Grande (%1 x %1) - Extra large (%1 x %1) - Extra lgrande (%1 x %1) + Extra large (%1 x %1) + Extra lgrande (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - introducir + Input + introducir - OK - Aceptar + OK + Aceptar - Cancel - Cancelar + Cancel + Cancelar - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgInspector - Scene Inspector - Inspector de escena + Scene Inspector + Inspector de escena - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Ejecutar macro + Execute macro + Ejecutar macro - Macro name: - Nombre de la macro: + Macro name: + Nombre de la macro: - Macro destination: - Destino de la macro: + Macro destination: + Destino de la macro: - Execute - Ejecutar + Execute + Ejecutar - Close - Cerrar + Close + Cerrar - Create - Crear + Create + Crear - Delete - Borrar + Delete + Borrar - Edit - Editar + Edit + Editar - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Macros + Macros + Macros - Macro file - Archivo de macro + Macro file + Archivo de macro - Enter a file name, please: - Introduzca un nombre de archivo, por favor: + Enter a file name, please: + Introduzca un nombre de archivo, por favor: - Existing file - Archivo existente + Existing file + Archivo existente - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Este archivo ya existe. - Delete macro - Borrar macro + Delete macro + Borrar macro - Do you really want to delete the macro '%1'? - ¿Realmente quiere borrar la macro '%1'? + Do you really want to delete the macro '%1'? + ¿Realmente quiere borrar la macro '%1'? - Cannot create file - No se puede crear el archivo + Cannot create file + No se puede crear el archivo - Creation of file '%1' failed. - Falló la creación del archivo '%1'. + Creation of file '%1' failed. + Falló la creación del archivo '%1'. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Grabando macro + Macro recording + Grabando macro - Macro name: - Nombre de la macro: + Macro name: + Nombre de la macro: - Stop - Parar + Stop + Parar - Cancel - Cancelar + Cancel + Cancelar - Macro path: - Ruta de la macro: + Macro path: + Ruta de la macro: - ... - ... + ... + ... - Record - Grabar + Record + Grabar - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Grabador de macros + Macro recorder + Grabador de macros - Specify first a place to save. - Especificar primero donde guardar. + Specify first a place to save. + Especificar primero donde guardar. - Existing macro - Macro existente + Existing macro + Macro existente - The macro '%1' already exists. Do you want to overwrite? - La macro '%1' ya existe. ¿Desea sobreescribirla? + The macro '%1' already exists. Do you want to overwrite? + La macro '%1' ya existe. ¿Desea sobreescribirla? - The macro directory doesn't exist. Please, choose another one. - No existe el directorio de macro. Por favor, seleccione otro. + The macro directory doesn't exist. Please, choose another one. + No existe el directorio de macro. Por favor, seleccione otro. - Choose macro directory - Elija el directorio de macro + Choose macro directory + Elija el directorio de macro - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Propiedades de material + Material properties + Propiedades de material - &Close - &Cerrar + &Close + &Cerrar - Alt+C - Alt+C + Alt+C + Alt+C - Material - Material + Material + Material - Diffuse color: - Color difuso: + Diffuse color: + Color difuso: - Specular color: - Color especular: + Specular color: + Color especular: - Shininess: - Luminosidad: + Shininess: + Luminosidad: - % - % + % + % - Ambient color: - Color ambiente: + Ambient color: + Color ambiente: - - (Vacio) + + (Vacio) - Emissive color: - Color emisivo: + Emissive color: + Color emisivo: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Ayuda online + On-line help + Ayuda online - Help viewer - Visor de ayuda + Help viewer + Visor de ayuda - Location of start page - Ubicación de la página de inicio + Location of start page + Ubicación de la página de inicio - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - Archivos HTML (*.html *.htm) + HTML files (*.html *.htm) + Archivos HTML (*.html *.htm) - Access denied - Acceso denegado + Access denied + Acceso denegado - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Acceso denegado a '%1' + Acceso denegado a '%1' Especifique otro directorio, por favor. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Editor de parámetros + Parameter Editor + Editor de parámetros - Save to disk - Guardar en disco + Save to disk + Guardar en disco - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Cerrar + &Close + &Cerrar - - + + Gui::Dialog::DlgParameterImp - Group - Grupo + Group + Grupo - Name - Nombre + Name + Nombre - Type - Tipo + Type + Tipo - Value - Valor + Value + Valor - User parameter - Parámetro del usuario + User parameter + Parámetro del usuario - Invalid input - Entrada incorrecta + Invalid input + Entrada incorrecta - Invalid key name '%1' - Nombre clave inválido '%1' + Invalid key name '%1' + Nombre clave inválido '%1' - System parameter - Parámetro del sistema + System parameter + Parámetro del sistema - - + + Gui::Dialog::DlgPreferences - Preferences - Preferencias + Preferences + Preferencias - &Help - Ay&uda + &Help + Ay&uda - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &Aceptar + &OK + &Aceptar - &Apply - &Aplicar + &Apply + &Aplicar - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Cancelar + &Cancel + &Cancelar - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Parámetro incorrecto + Wrong parameter + Parámetro incorrecto - - + + Gui::Dialog::DlgProjectInformation - Project information - Información del proyecto + Project information + Información del proyecto - Information - Información + Information + Información - &Name: - &Nombre: + &Name: + &Nombre: - Commen&t: - Comen&tario: + Commen&t: + Comen&tario: - Path: - Ruta: + Path: + Ruta: - &Last modified by: - &Última modificación por: + &Last modified by: + &Última modificación por: - Created &by: - Creado &por: + Created &by: + Creado &por: - Com&pany: - Em&presa: + Com&pany: + Em&presa: - Last &modification date: - Fecha de la última &modificación: + Last &modification date: + Fecha de la última &modificación: - Creation &date: - Fecha &de creación: + Creation &date: + Fecha &de creación: - &OK - &Aceptar + &OK + &Aceptar - &Cancel - &Cancelar + &Cancel + &Cancelar - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Fuente + Source + Fuente - Project file (*.fcstd) - Archivo de proyecto (*. fcstd) + Project file (*.fcstd) + Archivo de proyecto (*. fcstd) - Destination - Destino + Destination + Destino - Extract - Extraer + Extract + Extraer - Create project - Crear proyecto + Create project + Crear proyecto - Document.xml - Document.xml + Document.xml + Document.xml - Create - Crear + Create + Crear - Load project file after creation - Cargar el archivo del proyecto después de la creación + Load project file after creation + Cargar el archivo del proyecto después de la creación - Empty source - Fuente vacía + Empty source + Fuente vacía - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Destino vacío + Empty destination + Destino vacío - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Ventana de salida + Output window + Ventana de salida - Output - Salida + Output + Salida - Record log messages - Grabar lista de mensajes + Record log messages + Grabar lista de mensajes - Record warnings - Guardar advertencias + Record warnings + Guardar advertencias - Record error messages - Guardar mensajes de error + Record error messages + Guardar mensajes de error - Colors - Colores + Colors + Colores - Normal messages: - Mensajes normales: + Normal messages: + Mensajes normales: - Log messages: - Lista de mensajes: + Log messages: + Lista de mensajes: - Warnings: - Advertencias: + Warnings: + Advertencias: - Errors: - Errores: + Errors: + Errores: - - (Vacio) + + (Vacio) - Redirect internal Python errors to report view - Redirigir los errores internos de Python a un informe visual + Redirect internal Python errors to report view + Redirigir los errores internos de Python a un informe visual - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - Ejecutando programa externo + Running external program + Ejecutando programa externo - TextLabel - EtiquetaTexto + TextLabel + EtiquetaTexto - Advanced >> - Avanzado>> + Advanced >> + Avanzado>> - ... - ... + ... + ... - Accept changes - Aceptar cambios + Accept changes + Aceptar cambios - Discard changes - Descartar cambios + Discard changes + Descartar cambios - Abort program - Abortar programa + Abort program + Abortar programa - Help - Ayuda + Help + Ayuda - Select a file - Seleccionar un archivo + Select a file + Seleccionar un archivo - - + + Gui::Dialog::DlgSettings3DView - 3D View - Vista 3D + 3D View + Vista 3D - 3D View settings - Configuración de vista 3D + 3D View settings + Configuración de vista 3D - Show coordinate system in the corner - Mostrar sistema de coordenadas en la esquina + Show coordinate system in the corner + Mostrar sistema de coordenadas en la esquina - Show counter of frames per second - Mostrar contador de cuadros por segundo + Show counter of frames per second + Mostrar contador de cuadros por segundo - Enable animation - Activar animación + Enable animation + Activar animación - Enable anti-aliasing (slower) - Activar anti-aliasing (más lento) + Enable anti-aliasing (slower) + Activar anti-aliasing (más lento) - Eye to eye distance for stereo modes: - Distancia del punto de mira para los modos estéreo: + Eye to eye distance for stereo modes: + Distancia del punto de mira para los modos estéreo: - Camera type - Tipo de cámara + Camera type + Tipo de cámara - Orthographic rendering - Renderizado ortográfico + Orthographic rendering + Renderizado ortográfico - Perspective rendering - Renderizado en perspectiva + Perspective rendering + Renderizado en perspectiva - - (Vacio) + + (Vacio) - 3D Navigation - Navegación 3D + 3D Navigation + Navegación 3D - Mouse... - Mouse... + Mouse... + Mouse... - Intensity of backlight - Intensidad de luz de fondo + Intensity of backlight + Intensidad de luz de fondo - Enable backlight color - Habilitar color de luz de fondo + Enable backlight color + Habilitar color de luz de fondo - Orbit style - Estilo órbita + Orbit style + Estilo órbita - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navegación + %1 navigation + %1 navegación - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Color del modelo + Color model + Color del modelo - &Gradient: - &Gradiente: + &Gradient: + &Gradiente: - red-yellow-green-cyan-blue - rojo-amarillo-verde-cian-azul + red-yellow-green-cyan-blue + rojo-amarillo-verde-cian-azul - blue-cyan-green-yellow-red - azul-cian-verde-amarillo-rojo + blue-cyan-green-yellow-red + azul-cian-verde-amarillo-rojo - white-black - blanco-negro + white-black + blanco-negro - black-white - negro-blanco + black-white + negro-blanco - Visibility - Visibilidad + Visibility + Visibilidad - Out g&rayed - No &seleccionable + Out g&rayed + No &seleccionable - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Sin &visibilidad + Out &invisible + Sin &visibilidad - Alt+I - Alt+I + Alt+I + Alt+I - Style - Estilo + Style + Estilo - &Zero - &Cero + &Zero + &Cero - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flujo + &Flow + &Flujo - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &Aceptar + &OK + &Aceptar - &Cancel - &Cancelar + &Cancel + &Cancelar - Parameter range - Rango de parámetros + Parameter range + Rango de parámetros - Mi&nimum: - Mín&imo: + Mi&nimum: + Mín&imo: - Ma&ximum: - Má&ximo: + Ma&ximum: + Má&ximo: - &Labels: - &Etiquetas: + &Labels: + &Etiquetas: - &Decimals: - &Decimales: + &Decimals: + &Decimales: - - (Vacio) + + (Vacio) - Color-gradient settings - Ajustes de degradado de color + Color-gradient settings + Ajustes de degradado de color - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Parámetro incorrecto + Wrong parameter + Parámetro incorrecto - The maximum value must be higher than the minimum value. - El valor máximo debe ser mayor que el valor mínimo. + The maximum value must be higher than the minimum value. + El valor máximo debe ser mayor que el valor mínimo. - - + + Gui::Dialog::DlgSettingsDocument - Document - Documento + Document + Documento - General - General + General + General - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Nivel de compresión de guardado del documento + Nivel de compresión de guardado del documento (0 = ninguno, 9 = el más alto, 3 = por defecto) - Create new document at start up - Crear un documento nuevo al iniciar + Create new document at start up + Crear un documento nuevo al iniciar - Storage - Almacenamiento + Storage + Almacenamiento - Saving transactions (Auto-save) - Guardando operaciones (Guardado automático) + Saving transactions (Auto-save) + Guardando operaciones (Guardado automático) - Discard saved transaction after saving document - Descartar operaciones guardadas depués de guardar el documento + Discard saved transaction after saving document + Descartar operaciones guardadas depués de guardar el documento - Save thumbnail into project file when saving document - Guardar la imagen en miniatura dentro del archivo de proyecto cuando se guarda un documento + Save thumbnail into project file when saving document + Guardar la imagen en miniatura dentro del archivo de proyecto cuando se guarda un documento - Create up to backup files when resaving document - Crear archivos de copia de seguridad cuando se vuelva a guardar el documento + Create up to backup files when resaving document + Crear archivos de copia de seguridad cuando se vuelva a guardar el documento - Document objects - Objetos del documento + Document objects + Objetos del documento - Allow duplicate object labels in one document - Permitir etiquetas de objetos duplicadas en un documento + Allow duplicate object labels in one document + Permitir etiquetas de objetos duplicadas en un documento - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Texto + Text + Texto - Bookmark - Marcador + Bookmark + Marcador - Breakpoint - Punto de parada + Breakpoint + Punto de parada - Keyword - Palabra clave + Keyword + Palabra clave - Comment - Comentar + Comment + Comentar - Block comment - Comentar bloque + Block comment + Comentar bloque - Number - Número + Number + Número - String - Cadena de texto + String + Cadena de texto - Character - Caracter + Character + Caracter - Class name - Nombre de clase + Class name + Nombre de clase - Define name - Definir nombre + Define name + Definir nombre - Operator - Operador + Operator + Operador - Python output - Salida de Python + Python output + Salida de Python - Python error - Error de Python + Python error + Error de Python - Items - Elementos + Items + Elementos - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Configuración de imagen + Image settings + Configuración de imagen - Image properties - Propiedades de imagen + Image properties + Propiedades de imagen - Back&ground: - C&olor de fondo: + Back&ground: + C&olor de fondo: - Current - Actual + Current + Actual - White - Blanco + White + Blanco - Black - Negro + Black + Negro - Transparent - Transparente + Transparent + Transparente - Image dimensions - Dimensiones de imagen + Image dimensions + Dimensiones de imagen - Pixel - Pixel + Pixel + Pixel - &Width: - &Ancho: + &Width: + &Ancho: - Current screen - Pantalla actual + Current screen + Pantalla actual - Icon 32 x 32 - Icono 32 x 32 + Icon 32 x 32 + Icono 32 x 32 - Icon 64 x 64 - Icono 64 x 64 + Icon 64 x 64 + Icono 64 x 64 - Icon 128 x 128 - Icono 128 x 128 + Icon 128 x 128 + Icono 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Tamaños estándar: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Altura: - Standard sizes: - Tamaños estándar: + Aspect ratio: + Relación de aspecto: - &Height: - &Altura: + &Screen + &Pantalla - Aspect ratio: - Relación de aspecto: + Alt+S + Alt+S - &Screen - &Pantalla + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Comentario de imagen - Alt+1 - Alt+1 + Insert MIBA + Introducir MIBA - Image comment - Comentario de imagen + Insert comment + Introducir comentario - - Insert MIBA - Introducir MIBA - - - Insert comment - Introducir comentario - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Configuración de la grabación de macros + Macro recording settings + Configuración de la grabación de macros - Logging Commands - Comandos de inicio de sesión + Logging Commands + Comandos de inicio de sesión - Show script commands in python console - Mostrar comandos de archivos de guión en la consola de Python + Show script commands in python console + Mostrar comandos de archivos de guión en la consola de Python - Log all commands issued by menus to file: - Registrar todos los comandos publicados por menús en el archivo: + Log all commands issued by menus to file: + Registrar todos los comandos publicados por menús en el archivo: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Comandos de interfaz de usuario + Gui commands + Comandos de interfaz de usuario - Recording GUI commands - Grabando comandos de interfaz de usuario + Recording GUI commands + Grabando comandos de interfaz de usuario - Record as comment - Grabar como comentario + Record as comment + Grabar como comentario - Macro path - Ruta de la macro + Macro path + Ruta de la macro - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Unidades + Units + Unidades - Units settings - Configuración de unidades + Units settings + Configuración de unidades - Standard (mm/kg/s/degree) - Estándar (mm/kg/s/grados) + Standard (mm/kg/s/degree) + Estándar (mm/kg/s/grados) - MKS (m/kg/s/degree) - MKS (m/kg/s/grado) + MKS (m/kg/s/degree) + MKS (m/kg/s/grado) - Magnitude - Magnitud + Magnitude + Magnitud - Unit - Unidad + Unit + Unidad - User system: - Sistema del usuario: + User system: + Sistema del usuario: - Imperial (in/lb) - Imperial (pulg/lb) + Imperial (in/lb) + Imperial (pulg/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Colores + Colors + Colores - Selection - Selección + Selection + Selección - Enable selection highlighting - Activar resaltado de selección + Enable selection highlighting + Activar resaltado de selección - Enable preselection highlighting - Activar resaltado de preselección + Enable preselection highlighting + Activar resaltado de preselección - Background color - Color de fondo + Background color + Color de fondo - Middle color - Color medio + Middle color + Color medio - Color gradient - Gradiente de color + Color gradient + Gradiente de color - Simple color - Color simple + Simple color + Color simple - Default colors - Colores predeterminados + Default colors + Colores predeterminados - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Consejo del día + Tip of the day + Consejo del día - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Sabías que...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Sabías que...</font></font></b> - &Show tips at start up - &Mostrar consejos al inicio + &Show tips at start up + &Mostrar consejos al inicio - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Siguiente consejo + &Next Tip + &Siguiente consejo - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Cerrar + &Close + &Cerrar - Alt+C - Alt+C + Alt+C + Alt+C - - (Vacio) + + (Vacio) - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Descarga fallida: %1 + Descarga fallida: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Si quieres aprender más sobre FreeCAD deberías ir a %1 o presionar el elemento de ayuda en el menú de ayuda. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Si quieres aprender más sobre FreeCAD deberías ir a %1 o presionar el elemento de ayuda en el menú de ayuda. - - + + Gui::Dialog::DockablePlacement - Placement - Ubicación + Placement + Ubicación - - + + Gui::Dialog::DownloadDialog - Canceled. - Cancelado. + Canceled. + Cancelado. - - + + Download + + + + Cancel + Cancelar + + + Close + Cerrar + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + La descarga ha fallado: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Agregar icono + Add icon + Agregar icono - - + + Gui::Dialog::InputVector - Input vector - Introducir vector + Input vector + Introducir vector - Vector - Vector + Vector + Vector - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - Aceptar + OK + Aceptar - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Botones del mouse + Mouse buttons + Botones del mouse - Configuration - Configuración + Configuration + Configuración - Selection: - Selección: + Selection: + Selección: - Panning - Encuadrar + Panning + Encuadrar - Rotation: - Rotación: + Rotation: + Rotación: - Zooming: - Zoom: + Zooming: + Zoom: - - + + Gui::Dialog::ParameterGroup - Expand - Expandir + Expand + Expandir - Add sub-group - Añadir subgrupo + Add sub-group + Añadir subgrupo - Remove group - Eliminar subgrupo + Remove group + Eliminar subgrupo - Rename group - Renombrar grupo + Rename group + Renombrar grupo - Export parameter - Exportar parámetro + Export parameter + Exportar parámetro - Import parameter - Importar parámetro + Import parameter + Importar parámetro - Collapse - Colapsar + Collapse + Colapsar - Do really want to remove this parameter group? - ¿Realmente desea eliminar este grupo de parámetros? + Do really want to remove this parameter group? + ¿Realmente desea eliminar este grupo de parámetros? - Existing sub-group - Subgrupo existente + Existing sub-group + Subgrupo existente - The sub-group '%1' already exists. - El subgrupo '%1' ya existe. + The sub-group '%1' already exists. + El subgrupo '%1' ya existe. - Export parameter to file - Exportar parámetro a archivo + Export parameter to file + Exportar parámetro a archivo - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Importar parámetro de archivo + Import parameter from file + Importar parámetro de archivo - Import Error - Error de importación + Import Error + Error de importación - Reading from '%1' failed. - La lectura de '%1' ha fallado. + Reading from '%1' failed. + La lectura de '%1' ha fallado. - - + + Gui::Dialog::ParameterValue - Change value - Cambiar valor + Change value + Cambiar valor - Remove key - Eliminar clave + Remove key + Eliminar clave - Rename key - Renombrar clave + Rename key + Renombrar clave - New - Nuevo + New + Nuevo - New string item - Nuevo elemento de cadena de texto + New string item + Nuevo elemento de cadena de texto - New float item - Nuevo elemento de coma flotante + New float item + Nuevo elemento de coma flotante - New integer item - Nuevo elemento entero + New integer item + Nuevo elemento entero - New unsigned item - Nuevo elemento sin signo + New unsigned item + Nuevo elemento sin signo - New Boolean item - nuevo elemento booleano + New Boolean item + nuevo elemento booleano - Existing item - Elemento existente + Existing item + Elemento existente - The item '%1' already exists. - El elemento '%1' ya existe. + The item '%1' already exists. + El elemento '%1' ya existe. - - + + Gui::Dialog::Placement - Placement - Ubicación + Placement + Ubicación - OK - Aceptar + OK + Aceptar - Translation: - Traslación: + Translation: + Traslación: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotación: + Rotation: + Rotación: - Angle: - Ãngulo: + Angle: + Ãngulo: - Axis: - Ejes: + Axis: + Ejes: - Center: - Centro: + Center: + Centro: - Pitch: - Tono: + Pitch: + Tono: - Roll: - Lanzar: + Roll: + Lanzar: - Yaw: - Del desvío: + Yaw: + Del desvío: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Ãngulos de Euler + Euler angles + Ãngulos de Euler - Apply placement changes immediately - Aplicar los cambios de posición de inmediato + Apply placement changes immediately + Aplicar los cambios de posición de inmediato - Apply incremental changes to object placement - Aplicar cambios incrementales a la posición de los objetos + Apply incremental changes to object placement + Aplicar cambios incrementales a la posición de los objetos - Apply - Aplicar + Apply + Aplicar - Reset - Reiniciar + Reset + Reiniciar - Close - Cerrar + Close + Cerrar - - + + Gui::Dialog::PrintModel - Button - Botón + Button + Botón - Command - Comando + Command + Comando - - + + Gui::Dialog::SceneInspector - Dialog - Diálogo + Dialog + Diálogo - Close - Cerrar + Close + Cerrar - Refresh - Actualizar pantalla + Refresh + Actualizar pantalla - - + + Gui::Dialog::SceneModel - Inventor Tree - Ãrbol de Inventor + Inventor Tree + Ãrbol de Inventor - Nodes - Nodos + Nodes + Nodos - - + + Gui::Dialog::TextureMapping - Texture - Textura + Texture + Textura - Texture mapping - Mapeo de textura + Texture mapping + Mapeo de textura - Global - Global + Global + Global - Environment - Entorno + Environment + Entorno - Image files (%1) - Archivos de imagen (%1) + Image files (%1) + Archivos de imagen (%1) - No image - No existe la imagen + No image + No existe la imagen - The specified file is not a valid image file. - El archivo especificado no es un archivo de imagen válido. + The specified file is not a valid image file. + El archivo especificado no es un archivo de imagen válido. - No 3d view - No exista vista 3d + No 3d view + No exista vista 3d - No active 3d view found. - No se encontró una vista activa en 3d. + No active 3d view found. + No se encontró una vista activa en 3d. - - + + Gui::Dialog::Transform - Cancel - Cancelar + Cancel + Cancelar - Transform - Transformar + Transform + Transformar - - + + Gui::DlgTreeWidget - Dialog - Diálogo + Dialog + Diálogo - Items - Elementos + Items + Elementos - OK - Aceptar + OK + Aceptar - Cancel - Cancelar + Cancel + Cancelar - - (Vacio) + + (Vacio) - - + + Gui::DockWnd::CombiView - CombiView - Vista combinada + CombiView + Vista combinada - Project - Proyecto + Project + Proyecto - Tasks - Tareas + Tasks + Tareas - - + + Gui::DockWnd::HelpView - Previous - Previo + Previous + Previo - Next - Siguiente + Next + Siguiente - Home - Inicio + Home + Inicio - Open - Abrir + Open + Abrir - Open file - Abrir archivo + Open file + Abrir archivo - All HTML files (*.html *.htm) - Todos los archivos HTML (*.html *.htm) + All HTML files (*.html *.htm) + Todos los archivos HTML (*.html *.htm) - External browser - Visor de ayuda + External browser + Visor de ayuda - No external browser found. Specify in preferences, please - No se ha encontrado ningún navegador externo. Especifíquelo en preferencias, por favor + No external browser found. Specify in preferences, please + No se ha encontrado ningún navegador externo. Especifíquelo en preferencias, por favor - Starting of %1 failed - Iniciando %1 ha fallado + Starting of %1 failed + Iniciando %1 ha fallado - - + + Gui::DockWnd::PropertyDockView - Property View - Vista de propiedades + Property View + Vista de propiedades - - + + Gui::DockWnd::ReportOutput - Logging - Inicio de sesión + Logging + Inicio de sesión - Warning - Advertencia + Warning + Advertencia - Error - Error + Error + Error - Options - Opciones + Options + Opciones - Clear - Limpiar + Clear + Limpiar - Save As... - Guardar como... + Save As... + Guardar como... - Save Report Output - Guardar salida de informe + Save Report Output + Guardar salida de informe - Plain Text Files (*.txt *.log) - Archivos de texto (*.txt *.log) + Plain Text Files (*.txt *.log) + Archivos de texto (*.txt *.log) - Go to end - Ir al final + Go to end + Ir al final - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Redirigir errores de Python + Redirect Python errors + Redirigir errores de Python - - + + Gui::DockWnd::ReportView - Output - Salida + Output + Salida - Python console - Consola de Python + Python console + Consola de Python - - + + Gui::DockWnd::SelectionView - Property View - Vista de propiedades + Property View + Vista de propiedades - - + + Gui::DockWnd::TaskPanelView - Task View - Vista de Tareas + Task View + Vista de Tareas - - + + Gui::DockWnd::TextBrowser - Could not open file. - No es posible abrir el archivo. + Could not open file. + No es posible abrir el archivo. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Has intentado acceder a la dirección %1 que no está disponible actualmente. Por favor asegurate de que la URL existe y prueba recargando la página. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Has intentado acceder a la dirección %1 que no está disponible actualmente. Por favor asegurate de que la URL existe y prueba recargando la página. - Connecting to %1 - Conectando con %1 + Connecting to %1 + Conectando con %1 - Sending to %1 - Enviando a %1 + Sending to %1 + Enviando a %1 - Reading from %1 - Leyendo de %1 + Reading from %1 + Leyendo de %1 - Download failed: %1. - La descarga ha fallado: %1. + Download failed: %1. + La descarga ha fallado: %1. - Previous - Previo + Previous + Previo - Forward - Adelante + Forward + Adelante - Home - Inicio + Home + Inicio - Refresh - Actualizar pantalla + Refresh + Actualizar pantalla - Copy - Copiar + Copy + Copiar - Select all - Seleccionar todo + Select all + Seleccionar todo - No description for - Sin descripción para + No description for + Sin descripción para - - + + Gui::DocumentModel - Application - Aplicación + Application + Aplicación - Labels & Attributes - Etiquetas & Atributos + Labels & Attributes + Etiquetas & Atributos - - + + Gui::EditorView - Modified file - Archivo modificado + Modified file + Archivo modificado - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Ha sido modificado fuera del editor de código fuente. Desea recargarlo? - Unsaved document - Documento sin guardar + Unsaved document + Documento sin guardar - The document has been modified. + The document has been modified. Do you want to save your changes? - El documento ha sido modificado. + El documento ha sido modificado. Desea guardar los cambios? - FreeCAD macro (*.FCMacro);;Python (*.py) - Macro de FreeCAD (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + Macro de FreeCAD (*.FCMacro);;Python (*.py) - Export PDF - Exportar PDF + Export PDF + Exportar PDF - PDF file (*.pdf) - Archivo PDF (*.pdf) + PDF file (*.pdf) + Archivo PDF (*.pdf) - untitled[*] - Sin título[*] + untitled[*] + Sin título[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - %1 carácteres eliminados + %1 chars removed + %1 carácteres eliminados - %1 chars added - %1 carácteres añadidos + %1 chars added + %1 carácteres añadidos - Formatted - Formateado + Formatted + Formateado - - + + Gui::FileChooser - Select a file - Seleccionar un archivo + Select a file + Seleccionar un archivo - Select a directory - Seleccionar un directorio + Select a directory + Seleccionar un directorio - - + + Gui::FileDialog - Save as - Guardar como + Save as + Guardar como - Open - Abrir + Open + Abrir - - + + Gui::FileOptionsDialog - Extended - Extendida + Extended + Extendida - All files (*.*) - Todos los archivos (*.*) + All files (*.*) + Todos los archivos (*.*) - - + + Gui::Flag - Top left - Planta izquierda + Top left + Planta izquierda - Bottom left - Inferior izquierda + Bottom left + Inferior izquierda - Top right - OPlanta derecha + Top right + OPlanta derecha - Bottom right - Inferior derecha + Bottom right + Inferior derecha - Remove - Quitar + Remove + Quitar - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Presione la tecla CTRL y el botón izquierdo del mouse + Press CTRL and left mouse button + Presione la tecla CTRL y el botón izquierdo del mouse - Press middle mouse button - Cliquee el botón central del mouse + Press middle mouse button + Cliquee el botón central del mouse - Press left mouse button - Cliquee el botón izquierdo del mouse + Press left mouse button + Cliquee el botón izquierdo del mouse - Scroll middle mouse button - Despláce botón central del mouse + Scroll middle mouse button + Despláce botón central del mouse - - + + Gui::LocationDialog - Wrong direction - Dirección incorrecta + Wrong direction + Dirección incorrecta - Direction must not be the null vector - La dirección no puede ser el vector nulo + Direction must not be the null vector + La dirección no puede ser el vector nulo - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Definido por el usuario... + User defined... + Definido por el usuario... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Macros + Macros + Macros - - + + Gui::MainWindow - Dimension - Cota + Dimension + Cota - Ready - Preparado + Ready + Preparado - Toggles this toolbar - Muestra u oculta la barra de herramientas + Toggles this toolbar + Muestra u oculta la barra de herramientas - Toggles this dockable window - Alterna esta ventana acoplable + Toggles this dockable window + Alterna esta ventana acoplable - Close All - Cerrar todo + Close All + Cerrar todo - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Descarga comenzada... + Descarga comenzada... - - + + Gui::ProgressBar - Remaining: %1 - Restante: %1 + Remaining: %1 + Restante: %1 - Aborting - Abortando + Aborting + Abortando - Do you really want to abort the operation? - Realmente quieres abortar la operación? + Do you really want to abort the operation? + Realmente quieres abortar la operación? - - + + Gui::ProgressDialog - Remaining: %1 - Restante: %1 + Remaining: %1 + Restante: %1 - Aborting - Abortando + Aborting + Abortando - Do you really want to abort the operation? - Realmente quieres abortar la operación? + Do you really want to abort the operation? + Realmente quieres abortar la operación? - - + + Gui::PropertyEditor::PropertyModel - Property - Propiedad + Property + Propiedad - Value - Valor + Value + Valor - - + + Gui::PropertyView - View - Vista + View + Vista - Data - Datos + Data + Datos - - + + Gui::PythonConsole - System exit - Salida del sistema + System exit + Salida del sistema - The application is still running. + The application is still running. Do you want to exit without saving your data? - La aplicación aún se está ejecutando. + La aplicación aún se está ejecutando. Desea salir sin guardar sus datos? - Python console - Consola de Python + Python console + Consola de Python - Unhandled PyCXX exception. - Excepción de PyCXX no gestionada. + Unhandled PyCXX exception. + Excepción de PyCXX no gestionada. - Unhandled FreeCAD exception. - Excepción de FreeCAD no gestionada. + Unhandled FreeCAD exception. + Excepción de FreeCAD no gestionada. - Unhandled unknown C++ exception. - Excepción desconocida de C++ no gestionada. + Unhandled unknown C++ exception. + Excepción desconocida de C++ no gestionada. - &Copy command - &Comando copiar + &Copy command + &Comando copiar - &Copy history - &Copiar historia + &Copy history + &Copiar historia - Save history as... - Guardar historioa como... + Save history as... + Guardar historioa como... - Insert file name... - Insertar nombre de archivo... + Insert file name... + Insertar nombre de archivo... - Save History - Guardar historia + Save History + Guardar historia - Macro Files (*.FCMacro *.py) - Archivos de macro (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Archivos de macro (*.FCMacro *.py) - Insert file name - Introducir nombre de archivo + Insert file name + Introducir nombre de archivo - All Files (*.*) - Todos los archivos (*.*) + All Files (*.*) + Todos los archivos (*.*) - Python Input Dialog - Diálogo de entrada de Python + Python Input Dialog + Diálogo de entrada de Python - Unhandled std C++ exception. - Excepción de std C++ no gestionada. + Unhandled std C++ exception. + Excepción de std C++ no gestionada. - Word wrap - Ajuste de texto + Word wrap + Ajuste de texto - &Copy - &Copiar + &Copy + &Copiar - &Paste - &Pegar + &Paste + &Pegar - Select All - Seleccionar todo + Select All + Seleccionar todo - - + + Clear console + + + + Gui::PythonEditor - Comment - Comentar + Comment + Comentar - Uncomment - Quitar comentario + Uncomment + Quitar comentario - - + + Gui::PythonInputField - OK - Aceptar + OK + Aceptar - Clear - Limpiar + Clear + Limpiar - - + + Gui::RecentFilesAction - Open file %1 - Abrir archivo %1 + Open file %1 + Abrir archivo %1 - File not found - Archivo no encontrado + File not found + Archivo no encontrado - The file '%1' cannot be opened. - El archivo '%1' no se puede abrir. + The file '%1' cannot be opened. + El archivo '%1' no se puede abrir. - - + + Gui::SelectModule - Select module - Seleccionar módulo + Select module + Seleccionar módulo - Open %1 as - Abrir %1 como + Open %1 as + Abrir %1 como - Select - Seleccionar + Select + Seleccionar - - + + Gui::StdCmdDescription - Help - Ayuda + Help + Ayuda - Des&cription - Des&cripción + Des&cription + Des&cripción - Long description of commands - Descripción larga de comandos + Long description of commands + Descripción larga de comandos - - + + Gui::StdCmdDownloadOnlineHelp - Help - Ayuda + Help + Ayuda - Download online help - Descargar ayuda online + Download online help + Descargar ayuda online - Download %1's online help - Descargar %1's ayuda online + Download %1's online help + Descargar %1's ayuda online - Non-existing directory - Directorio no existente + Non-existing directory + Directorio no existente - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - El directorio '%1' no existe. + El directorio '%1' no existe. Desea especificar un directorio existente? - Missing permission - Permiso perdido + Missing permission + Permiso perdido - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - No tiene permisos de escritura para '%1' + No tiene permisos de escritura para '%1' Desea especificar otro directorio? - Stop downloading - Detener la descarga + Stop downloading + Detener la descarga - - + + Gui::StdCmdPythonHelp - Tools - Herramientas + Tools + Herramientas - Python Modules - Módulos de Python + Python Modules + Módulos de Python - Opens a browser to show the Python modules - Abre un explorador para mostrar los módulos de Python + Opens a browser to show the Python modules + Abre un explorador para mostrar los módulos de Python - - + + Gui::TaskBoxAngle - Angle - Ãngulo + Angle + Ãngulo - - + + Gui::TaskBoxPosition - Position - Posición + Position + Posición - - + + Gui::TaskView::TaskAppearance - Display mode: - Modo de visualización: + Display mode: + Modo de visualización: - Plot mode: - Modo de impresión: + Plot mode: + Modo de impresión: - Point size: - Tamaño de punto: + Point size: + Tamaño de punto: - Line width: - Ancho de línea: + Line width: + Ancho de línea: - Transparency: - Transparencia: + Transparency: + Transparencia: - Appearance - Apariencia + Appearance + Apariencia - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Editar + Edit + Editar - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Apariencia + Appearance + Apariencia - ... - ... + ... + ... - edit selection - Editar selección + edit selection + Editar selección - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Cliquee el botón izquierdo del mouse + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Inglés + English + Inglés - - + + Gui::TreeDockWidget - Tree view - Vista en árbol + Tree view + Vista en árbol - - + + Gui::TreeWidget - Create group... - Crear grupo... + Create group... + Crear grupo... - Create a group - Crear un grupo + Create a group + Crear un grupo - Group - Grupo + Group + Grupo - Rename - Renombrar + Rename + Renombrar - Rename object - Renombrar objeto + Rename object + Renombrar objeto - Labels & Attributes - Etiquetas & Atributos + Labels & Attributes + Etiquetas & Atributos - Application - Aplicación + Application + Aplicación - Finish editing - Finalizar la edición + Finish editing + Finalizar la edición - Finish editing object - Finalizar edición de objeto + Finish editing object + Finalizar edición de objeto - Activate document - Activar documento + Activate document + Activar documento - Activate document %1 - Activar documento %1 + Activate document %1 + Activar documento %1 - - + + Gui::View3DInventor - Export PDF - Exportar PDF + Export PDF + Exportar PDF - PDF file (*.pdf) - Archivo PDF (*.pdf) + PDF file (*.pdf) + Archivo PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Seleccionar el escenario '%1' + Select the '%1' workbench + Seleccionar el escenario '%1' - - + + Position - Form - Formulario + Form + Formulario - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Ajuste de rejilla en + Grid Snap in + Ajuste de rejilla en - - + + QDockWidget - Tree view - Vista en árbol + Tree view + Vista en árbol - Property view - Vista de Propiedades + Property view + Vista de Propiedades - Selection view - Vista de selección + Selection view + Vista de selección - Report view - Vista de informe + Report view + Vista de informe - Task View - Vista de Tareas + Task View + Vista de Tareas - Combo View - Vista combinada + Combo View + Vista combinada - Toolbox - Caja de herramientas + Toolbox + Caja de herramientas - Python console - Consola de Python + Python console + Consola de Python - Display properties - Propiedades de visualización + Display properties + Propiedades de visualización - - + + QObject - General - General + General + General - Display - Visualización + Display + Visualización - Unknown filetype - Tipo de archivo desconocido + Unknown filetype + Tipo de archivo desconocido - Cannot open unknown filetype: %1 - No es posible abrir el tipo de archivo desconocido: %1 + Cannot open unknown filetype: %1 + No es posible abrir el tipo de archivo desconocido: %1 - Cannot save to unknown filetype: %1 - No es posible guardar el tipo de archivo desconocido: %1 + Cannot save to unknown filetype: %1 + No es posible guardar el tipo de archivo desconocido: %1 - Workbench failure - Fracaso de escenario + Workbench failure + Fracaso de escenario - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Incapaz de iniciar Qt Assistant (%1) + Unable to launch Qt Assistant (%1) + Incapaz de iniciar Qt Assistant (%1) - Exception - Excepción + Exception + Excepción - Open document - Abrir documento + Open document + Abrir documento - Import file - Importar archivo + Import file + Importar archivo - Export file - Exportar archivo + Export file + Exportar archivo - Printing... - Imprimiendo... + Printing... + Imprimiendo... - Cannot load workbench - No es posible cargar el escenario + Cannot load workbench + No es posible cargar el escenario - A general error occurred while loading the workbench - Un error general ocurrio mientras se cargaba el escenario + A general error occurred while loading the workbench + Un error general ocurrio mientras se cargaba el escenario - File not found - Archivo no encontrado + File not found + Archivo no encontrado - Cannot open file %1 - No es posible abrir el archivo %1 + Cannot open file %1 + No es posible abrir el archivo %1 - Save views... - Guardar vistas... + Save views... + Guardar vistas... - Load views... - Cargar vistas... + Load views... + Cargar vistas... - Freeze view - Congelar vista + Freeze view + Congelar vista - Clear views - Limpiar vistas + Clear views + Limpiar vistas - Restore view &%1 - Restaurar vista &%1 + Restore view &%1 + Restaurar vista &%1 - Save frozen views - Guardar vistas congeladas + Save frozen views + Guardar vistas congeladas - Frozen views (*.cam) - Vistas congeladas (*.cam) + Frozen views (*.cam) + Vistas congeladas (*.cam) - Restore views - Restaurar vistas + Restore views + Restaurar vistas - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - La importación de las vistas restauradas podría limpiar las vistas ya almacenadas. + La importación de las vistas restauradas podría limpiar las vistas ya almacenadas. Desea continuar? - Restore frozen views - Restaurar vistas congeladas + Restore frozen views + Restaurar vistas congeladas - Cannot open file '%1'. - No es posible abrir el archivo '%1'. + Cannot open file '%1'. + No es posible abrir el archivo '%1'. - Docked - Acoplado + Docked + Acoplado - Undocked - Sin acoplar + Undocked + Sin acoplar - Fullscreen - Pantalla completa + Fullscreen + Pantalla completa - files - archivos + files + archivos - Save picture - Guardar imagen + Save picture + Guardar imagen - New sub-group - Nuevo subgrupo + New sub-group + Nuevo subgrupo - Enter the name: - Introducir el nombre: + Enter the name: + Introducir el nombre: - New text item - Nuevo elemento de texto + New text item + Nuevo elemento de texto - Enter your text: - Introduzca su texto: + Enter your text: + Introduzca su texto: - New integer item - Nuevo elemento entero + New integer item + Nuevo elemento entero - Enter your number: - Introduzca su número: + Enter your number: + Introduzca su número: - New unsigned item - Nuevo elemento sin signo + New unsigned item + Nuevo elemento sin signo - New float item - Nuevo elemento de coma flotante + New float item + Nuevo elemento de coma flotante - New Boolean item - nuevo elemento booleano + New Boolean item + nuevo elemento booleano - Choose an item: - Seleccionar un elemento: + Choose an item: + Seleccionar un elemento: - Rename group - Renombrar grupo + Rename group + Renombrar grupo - The group '%1' cannot be renamed. - El grupo '%1' no puede renombrarse. + The group '%1' cannot be renamed. + El grupo '%1' no puede renombrarse. - Existing group - Grupo existente + Existing group + Grupo existente - The group '%1' already exists. - El grupo '%1' ya existe. + The group '%1' already exists. + El grupo '%1' ya existe. - Change value - Cambiar valor + Change value + Cambiar valor - Save document under new filename... - Guardar documento con un nombre de archivo nuevo... + Save document under new filename... + Guardar documento con un nombre de archivo nuevo... - Saving aborted - Guardar abortado + Saving aborted + Guardar abortado - Unsaved document - Documento sin guardar + Unsaved document + Documento sin guardar - Save document before close? - Guardar documento antes de cerrar? + Save document before close? + Guardar documento antes de cerrar? - Save Macro - Guardar macro + Save Macro + Guardar macro - Finish - Terminado + Finish + Terminado - Clear - Limpiar + Clear + Limpiar - Cancel - Cancelar + Cancel + Cancelar - Inner - Interior + Inner + Interior - Outer - Exterior + Outer + Exterior - No Browser - Ningún navegador + No Browser + Ningún navegador - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Incapaz de abrir su navegador. + Incapaz de abrir su navegador. Por favor abra una ventana del navegador y escriba en ella: http://localhost:%1. - No Server - Ningún servidor + No Server + Ningún servidor - Unable to start the server to port %1: %2. - Incapaz de iniciar el servidor al puerto %1: %2. + Unable to start the server to port %1: %2. + Incapaz de iniciar el servidor al puerto %1: %2. - Unable to open your system browser. - Incapaz de abrir su navegador del sistema. + Unable to open your system browser. + Incapaz de abrir su navegador del sistema. - Options... - Opciones... + Options... + Opciones... - Out of memory - Memoria insuficiente + Out of memory + Memoria insuficiente - Not enough memory available to display the data. - Insuficiente memoria disponible para mostrar los datos. + Not enough memory available to display the data. + Insuficiente memoria disponible para mostrar los datos. - Cannot find file %1 - No se puede encontrar el archivo %1 + Cannot find file %1 + No se puede encontrar el archivo %1 - Cannot find file %1 neither in %2 nor in %3 - No se pueden encontrar los archivos %1 ni %2 ni %3 + Cannot find file %1 neither in %2 nor in %3 + No se pueden encontrar los archivos %1 ni %2 ni %3 - Save %1 Document - Guardar el documento %1 + Save %1 Document + Guardar el documento %1 - %1 document (*.FCStd) - %1 documento (*.FCStd) + %1 document (*.FCStd) + %1 documento (*.FCStd) - Save As - Guardar como + Save As + Guardar como - %1 already exists. + %1 already exists. Do you want to replace it? - %1 ya existe. + %1 ya existe. Desea reemplazarlo? - Document not closable - El documento no se puede cerrar + Document not closable + El documento no se puede cerrar - The document is not closable for the moment. - El documento no se puede cerrar por el momento. + The document is not closable for the moment. + El documento no se puede cerrar por el momento. - No OpenGL - Sin OpenGL + No OpenGL + Sin OpenGL - This system does not support OpenGL - Este sistema no es compatible con OpenGL + This system does not support OpenGL + Este sistema no es compatible con OpenGL - Help - Ayuda + Help + Ayuda - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - No se puede cargar la documentación. + No se puede cargar la documentación. Para cargarlo es necesario Qt 4.4 o superior. - %1 Help - %1 Ayuda + %1 Help + %1 Ayuda - Exporting PDF... - Exportando a PDF... + Exporting PDF... + Exportando a PDF... - Wrong selection - Selección incorrecta + Wrong selection + Selección incorrecta - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Sólo un objeto seleccionado. Seleccione dos objetos. Tenga en cuenta el punto en que hace clic. + Sólo un objeto seleccionado. Seleccione dos objetos. Tenga en cuenta el punto en que hace clic. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Seleccione dos objetos. Tenga en cuenta el punto en que hace clic. + Seleccione dos objetos. Tenga en cuenta el punto en que hace clic. - New boolean item - Nuevo elemento booleano + New boolean item + Nuevo elemento booleano - Navigation styles - Estilos de navegación + Navigation styles + Estilos de navegación - %1 navigation - %1 navegación + %1 navigation + %1 navegación - Move annotation - Mover anotación + Move annotation + Mover anotación - Transform - Transformar + Transform + Transformar - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - El documento está en modo de edición y no puede ser cerrado en este momento. + El documento está en modo de edición y no puede ser cerrado en este momento. Tienes que finzalizar o cancelar la edición en el panel de tareas. - - + + + StdBoxSelection + + Standard-View + Vista estándar + + + Box selection + + + + StdCmdAbout - Help - Ayuda + Help + Ayuda - &About %1 - &Acerca de %1 + &About %1 + &Acerca de %1 - About %1 - Acerca de %1 + About %1 + Acerca de %1 - - + + StdCmdAboutQt - Help - Ayuda + Help + Ayuda - About &Qt - Acerca de &Qt + About &Qt + Acerca de &Qt - About Qt - Acerca de Qt + About Qt + Acerca de Qt - - + + StdCmdActivateNextWindow - Window - Ventana + Window + Ventana - Ne&xt - &Siguiente + Ne&xt + &Siguiente - Activate next window - Activar ventana siguiente + Activate next window + Activar ventana siguiente - - + + StdCmdActivatePrevWindow - Window - Ventana + Window + Ventana - Pre&vious - Pre&via + Pre&vious + Pre&via - Activate previous window - Activar ventana previa + Activate previous window + Activar ventana previa - - + + + StdCmdAlignment + + Edit + Editar + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Ventana + Window + Ventana - Arrange &Icons - Organizar &Iconos + Arrange &Icons + Organizar &Iconos - Arrange Icons - Organizar iconos + Arrange Icons + Organizar iconos - - + + StdCmdAxisCross - Standard-View - Vista estándar + Standard-View + Vista estándar - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Ventana + Window + Ventana - &Cascade - &Cascada + &Cascade + &Cascada - Tile pragmatic - Mosaico pragmático + Tile pragmatic + Mosaico pragmático - - + + StdCmdCloseActiveWindow - Window - Ventana + Window + Ventana - Cl&ose - &Cerrar + Cl&ose + &Cerrar - Close active window - Cerrar la ventana activa + Close active window + Cerrar la ventana activa - - + + StdCmdCloseAllWindows - Window - Ventana + Window + Ventana - Close Al&l - Cerrar &Todo + Close Al&l + Cerrar &Todo - Close all windows - Cerrar todas las ventanas + Close all windows + Cerrar todas las ventanas - - + + StdCmdCommandLine - Tools - Herramientas + Tools + Herramientas - Start command &line... - &Iniciar línea de comandos... + Start command &line... + &Iniciar línea de comandos... - Opens the command line in the console - Abre la línea de comandos en la consola + Opens the command line in the console + Abre la línea de comandos en la consola - - + + StdCmdCopy - Edit - Editar + Edit + Editar - C&opy - C&opiar + C&opy + C&opiar - Copy operation - Operación de copia + Copy operation + Operación de copia - - + + StdCmdCut - Edit - Editar + Edit + Editar - &Cut - &Cortar + &Cut + &Cortar - Cut out - Recortar + Cut out + Recortar - - + + StdCmdDDuplicateSelection - Edit - Editar + Edit + Editar - Duplicate selection - Duplicar la selección + Duplicate selection + Duplicar la selección - Put duplicates of the selected objects to the active document - Ponga los duplicados de los objetos seleccionados en el documento activo + Put duplicates of the selected objects to the active document + Ponga los duplicados de los objetos seleccionados en el documento activo - - + + StdCmdDelete - Edit - Editar + Edit + Editar - &Delete - &Borrar + &Delete + &Borrar - Deletes the selected objects - Borra los elementos seleccionados + Deletes the selected objects + Borra los elementos seleccionados - - + + StdCmdDemoMode - Standard-View - Vista estándar + Standard-View + Vista estándar - View turntable... - Ver torno... + View turntable... + Ver torno... - View turntable - Ver torno + View turntable + Ver torno - - + + StdCmdDlgCustomize - Tools - Herramientas + Tools + Herramientas - Cu&stomize... - &Personalizar... + Cu&stomize... + &Personalizar... - Customize toolbars and command bars - Personalizar barras de herramientas y comandos + Customize toolbars and command bars + Personalizar barras de herramientas y comandos - - + + StdCmdDlgMacroExecute - Macros ... - Macros... + Macros ... + Macros... - Opens a dialog to let you execute a recorded macro - Abre un cuadro de diálogo que te permite ejecutar una macro grabada + Opens a dialog to let you execute a recorded macro + Abre un cuadro de diálogo que te permite ejecutar una macro grabada - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Ejecutar macro + Execute macro + Ejecutar macro - Execute the macro in the editor - Ejecutar macro en el editor + Execute the macro in the editor + Ejecutar macro en el editor - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Grabación de macro... + &Macro recording ... + &Grabación de macro... - Opens a dialog to record a macro - Abre un cuadro de diálogo para grabar una macro + Opens a dialog to record a macro + Abre un cuadro de diálogo para grabar una macro - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Herramientas + Tools + Herramientas - E&dit parameters ... - &Editar parámetros... + E&dit parameters ... + &Editar parámetros... - Opens a Dialog to edit the parameters - Abre un cuadro de diálogo para editar los parametros + Opens a Dialog to edit the parameters + Abre un cuadro de diálogo para editar los parametros - - + + StdCmdDlgPreferences - Tools - Herramientas + Tools + Herramientas - &Preferences ... - &Preferencias... + &Preferences ... + &Preferencias... - Opens a Dialog to edit the preferences - Abre un cuadro de diálogo para editar las preferencias + Opens a Dialog to edit the preferences + Abre un cuadro de diálogo para editar las preferencias - - + + StdCmdDockViewMenu - View - Vista + View + Vista - Vie&ws - &Vistas + Vie&ws + &Vistas - Toggles this window - Conmutar esta ventana + Toggles this window + Conmutar esta ventana - - + + StdCmdDrawStyle - Standard-View - Vista estándar + Standard-View + Vista estándar - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Editar + + + Duplicate selection + Duplicar la selección + + + Put duplicates of the selected objects to the active document + Ponga los duplicados de los objetos seleccionados en el documento activo + + + + StdCmdEdit + + Edit + Editar + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Archivo + File + Archivo - &Export... - &Exportar... + &Export... + &Exportar... - Export an object in the active document - Exportar un objeto en el documento activo + Export an object in the active document + Exportar un objeto en el documento activo - Supported formats - Formatos soportados + Supported formats + Formatos soportados - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Herramientas + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Archivo + File + Archivo - &Recompute - &Recalcular + &Recompute + &Recalcular - Recompute feature or document - Recalcular caracteristicas o documento + Recompute feature or document + Recalcular caracteristicas o documento - - + + StdCmdFreeCADWebsite - Help - Ayuda + Help + Ayuda - FreeCAD Website - Sitio web de FreeCAD + FreeCAD Website + Sitio web de FreeCAD - The FreeCAD website - El sitio web de FreeCAD + The FreeCAD website + El sitio web de FreeCAD - - + + StdCmdFreezeViews - Standard-View - Vista estándar + Standard-View + Vista estándar - Freeze display - Congelar visualización + Freeze display + Congelar visualización - Freezes the current view position - Congelar la posición de la vista actual + Freezes the current view position + Congelar la posición de la vista actual - - + + StdCmdHideObjects - Standard-View - Vista estándar + Standard-View + Vista estándar - Hide all objects - Ocultar todos los objetos + Hide all objects + Ocultar todos los objetos - Hide all objects in the document - Ocultar todos los objetos en el documento + Hide all objects in the document + Ocultar todos los objetos en el documento - - + + StdCmdHideSelection - Standard-View - Vista estándar + Standard-View + Vista estándar - Hide selection - Ocultar selección + Hide selection + Ocultar selección - Hide all selected objects - Ocultar todos los objetos seleccionados + Hide all selected objects + Ocultar todos los objetos seleccionados - - + + StdCmdImport - File - Archivo + File + Archivo - &Import... - &Importar... + &Import... + &Importar... - Import a file in the active document - Importar un archivo en el documento activo + Import a file in the active document + Importar un archivo en el documento activo - Supported formats - Formatos soportados + Supported formats + Formatos soportados - All files (*.*) - Todos los archivos (*.*) + All files (*.*) + Todos los archivos (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Depurar macro + Debug macro + Depurar macro - Start debugging of macro - Iniciar depuración de macro + Start debugging of macro + Iniciar depuración de macro - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Pasar al siguiente + Step over + Pasar al siguiente - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Parar depuración + Stop debugging + Parar depuración - Stop debugging of macro - Parar depuración de macro + Stop debugging of macro + Parar depuración de macro - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - &Detener la grabaciṕon de la macro + S&top macro recording + &Detener la grabaciṕon de la macro - Stop the macro recording session - Detener la sesión de grabación de la macro + Stop the macro recording session + Detener la sesión de grabación de la macro - - + + StdCmdMeasureDistance - View - Vista + View + Vista - Measure distance - Medir distancia + Measure distance + Medir distancia - - + + StdCmdMeasurementSimple - Tools - Herramientas + Tools + Herramientas - Mesure distance - Medir distancia + Mesure distance + Medir distancia - Measures distance between two selected objects - Medir distancias entre dos objetos seleccionados + Measures distance between two selected objects + Medir distancias entre dos objetos seleccionados - - + + Measure distance + Medir distancia + + + StdCmdMergeProjects - File - Archivo + File + Archivo - Merge project... - Fusionar proyecto... + Merge project... + Fusionar proyecto... - Merge project - Fusionar proyecto + Merge project + Fusionar proyecto - %1 document (*.fcstd) - Documento %1(*.fcstd) + %1 document (*.fcstd) + Documento %1(*.fcstd) - Cannot merge project with itself. - No se puede fusionar el proyecto consigo mismo. + Cannot merge project with itself. + No se puede fusionar el proyecto consigo mismo. - - + + StdCmdNew - File - Archivo + File + Archivo - &New - &Nuevo + &New + &Nuevo - Create a new empty document - Crear un documento vacío nuevo + Create a new empty document + Crear un documento vacío nuevo - - + + StdCmdOnlineHelp - Help - Ayuda + Help + Ayuda - Show help to the application - Mostrar ayuda de la aplicación + Show help to the application + Mostrar ayuda de la aplicación - - + + StdCmdOnlineHelpPython - Help - Ayuda + Help + Ayuda - Python Manuals - Manuales de Python + Python Manuals + Manuales de Python - Show the Python documentation - Mostrar la documentación de Python + Show the Python documentation + Mostrar la documentación de Python - - + + StdCmdOnlineHelpWebsite - Help - Ayuda + Help + Ayuda - Help Website - Sitio web de ayuda + Help Website + Sitio web de ayuda - The website where the help is maintained - El sitio web donde se mantiene la ayuda + The website where the help is maintained + El sitio web donde se mantiene la ayuda - - + + StdCmdOpen - File - Archivo + File + Archivo - &Open... - &Abrir... + &Open... + &Abrir... - Open a document or import files - Abrir un documento o importar archivos + Open a document or import files + Abrir un documento o importar archivos - Supported formats - Formatos soportados + Supported formats + Formatos soportados - All files (*.*) - Todos los archivos (*.*) + All files (*.*) + Todos los archivos (*.*) - - + + StdCmdPaste - Edit - Editar + Edit + Editar - &Paste - &Pegar + &Paste + &Pegar - Paste operation - Operación de pegar + Paste operation + Operación de pegar - - + + StdCmdPlacement - Edit - Editar + Edit + Editar - Placement... - Ubicación... + Placement... + Ubicación... - Place the selected objects - Sitúe los objetos seleccionados + Place the selected objects + Sitúe los objetos seleccionados - - + + StdCmdPrint - File - Archivo + File + Archivo - &Print... - &Imprimir... + &Print... + &Imprimir... - Print the document - Imprimir el documento + Print the document + Imprimir el documento - - + + StdCmdPrintPdf - File - Archivo + File + Archivo - &Export PDF... - &Exportar PDF... + &Export PDF... + &Exportar PDF... - Export the document as PDF - Exportar el documento como PDF + Export the document as PDF + Exportar el documento como PDF - - + + StdCmdPrintPreview - File - Archivo + File + Archivo - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Imprimir el documento + Print the document + Imprimir el documento - Print preview - Vista previa de impresión + Print preview + Vista previa de impresión - - + + StdCmdProjectInfo - File - Archivo + File + Archivo - Project i&nformation... - &Información del proyecto... + Project i&nformation... + &Información del proyecto... - Show details of the currently active project - Mostrar detalles del proyecto activo actual + Show details of the currently active project + Mostrar detalles del proyecto activo actual - - + + StdCmdProjectUtil - Tools - Herramientas + Tools + Herramientas - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Herramienta para extraer o crear archivos de proyectos + Utility to extract or create project files + Herramienta para extraer o crear archivos de proyectos - - + + StdCmdPythonWebsite - Help - Ayuda + Help + Ayuda - Python Website - Sitio web de Python + Python Website + Sitio web de Python - The official Python website - El sitio web oficial de Python + The official Python website + El sitio web oficial de Python - - + + StdCmdQuit - File - Archivo + File + Archivo - E&xit - &Salir + E&xit + &Salir - Quits the application - Salir de la aplicación + Quits the application + Salir de la aplicación - - + + StdCmdRandomColor - File - Archivo + File + Archivo - Random color - Color aleatorio + Random color + Color aleatorio - - + + StdCmdRecentFiles - File - Archivo + File + Archivo - Recent files - Archivos recientes + Recent files + Archivos recientes - Recent file list - Lista de archivos recientes + Recent file list + Lista de archivos recientes - - + + StdCmdRedo - Edit - Editar + Edit + Editar - &Redo - &Rehacer + &Redo + &Rehacer - Redoes a previously undone action - Rehace una acción previa de deshacer + Redoes a previously undone action + Rehace una acción previa de deshacer - - + + StdCmdRefresh - Edit - Editar + Edit + Editar - &Refresh - &Actualizar pantalla + &Refresh + &Actualizar pantalla - Recomputes the current active document - Recalcula el documento activo actual + Recomputes the current active document + Recalcula el documento activo actual - - + + StdCmdSave - File - Archivo + File + Archivo - &Save - &Guardar + &Save + &Guardar - Save the active document - Guarda el documento activo + Save the active document + Guarda el documento activo - - + + StdCmdSaveAs - File - Archivo + File + Archivo - Save &As... - Guardar &como... + Save &As... + Guardar &como... - Save the active document under a new file name - Guarda el documento activo con un nombre de archivo nuevo + Save the active document under a new file name + Guarda el documento activo con un nombre de archivo nuevo - - + + StdCmdSceneInspector - Tools - Herramientas + Tools + Herramientas - Scene inspector... - Inspector de escena... + Scene inspector... + Inspector de escena... - Scene inspector - Inspector de escena + Scene inspector + Inspector de escena - - + + StdCmdSelectAll - Edit - Editar + Edit + Editar - Select &All - Seleccionar &todo + Select &All + Seleccionar &todo - Select all - Seleccionar todo + Select all + Seleccionar todo - - + + StdCmdSetAppearance - Standard-View - Vista estándar + Standard-View + Vista estándar - Appearance... - Apariencia... + Appearance... + Apariencia... - Sets the display properties of the selected object - Establece las propiedades de visualización de los objetos seleccionados + Sets the display properties of the selected object + Establece las propiedades de visualización de los objetos seleccionados - - + + StdCmdShowObjects - Standard-View - Vista estándar + Standard-View + Vista estándar - Show all objects - Mostrar todos los objetos + Show all objects + Mostrar todos los objetos - Show all objects in the document - Mostrar todos los objetos en el documento + Show all objects in the document + Mostrar todos los objetos en el documento - - + + StdCmdShowSelection - Standard-View - Vista estándar + Standard-View + Vista estándar - Show selection - Mostrar selección + Show selection + Mostrar selección - Show all selected objects - Mostrar todos los objetos seleccionados + Show all selected objects + Mostrar todos los objetos seleccionados - - + + StdCmdStatusBar - View - Vista + View + Vista - Status bar - Barra de estado + Status bar + Barra de estado - Toggles the status bar - Conmutar la barra de estado + Toggles the status bar + Conmutar la barra de estado - - + + StdCmdTextureMapping - Tools - Herramientas + Tools + Herramientas - Texture mapping... - Mapeo de textura... + Texture mapping... + Mapeo de textura... - Texture mapping - Mapeo de textura + Texture mapping + Mapeo de textura - - + + StdCmdTileWindows - Window - Ventana + Window + Ventana - &Tile - &Mosaico + &Tile + &Mosaico - Tile the windows - Poner las ventanas en mosaico + Tile the windows + Poner las ventanas en mosaico - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Conmutar punto de parada + Toggle breakpoint + Conmutar punto de parada - - + + StdCmdToggleClipPlane - Standard-View - Vista estándar + Standard-View + Vista estándar - Clipping plane - Plano de recorte + Clipping plane + Plano de recorte - Toggles clipping plane for active view - Conmuta el plano de recorte para la vista activa + Toggles clipping plane for active view + Conmuta el plano de recorte para la vista activa - - + + StdCmdToggleNavigation - Standard-View - Vista estándar + Standard-View + Vista estándar - Toggle navigation/Edit mode - Alternar en modo Navegación/Edición + Toggle navigation/Edit mode + Alternar en modo Navegación/Edición - Toggle between navigation and edit mode - Alternar entre el modo de navegación y edición + Toggle between navigation and edit mode + Alternar entre el modo de navegación y edición - - + + StdCmdToggleObjects - Standard-View - Vista estándar + Standard-View + Vista estándar - Toggle all objects - Conmutar todos los objetos + Toggle all objects + Conmutar todos los objetos - Toggles visibility of all objects in the active document - Conmuta la visibilidad de todos los objetos en el documento activo + Toggles visibility of all objects in the active document + Conmuta la visibilidad de todos los objetos en el documento activo - - + + StdCmdToggleSelectability - Standard-View - Vista estándar + Standard-View + Vista estándar - Toggle selectability - Conmutar selectividad + Toggle selectability + Conmutar selectividad - Toggles the property of the objects to get selected in the 3D-View - Conmutar la propiedad de los objetos de ser seleccionados en la Vista 3D + Toggles the property of the objects to get selected in the 3D-View + Conmutar la propiedad de los objetos de ser seleccionados en la Vista 3D - - + + StdCmdToggleVisibility - Standard-View - Vista estándar + Standard-View + Vista estándar - Toggle visibility - Conmutar visibilidad + Toggle visibility + Conmutar visibilidad - Toggles visibility - Conmuta la visibilidad + Toggles visibility + Conmuta la visibilidad - - + + StdCmdToolBarMenu - View - Vista + View + Vista - Tool&bars - &Barras de herramientas + Tool&bars + &Barras de herramientas - Toggles this window - Conmutar esta ventana + Toggles this window + Conmutar esta ventana - - + + StdCmdTransform - Edit - Editar + Edit + Editar - Transform... - Transformar... + Transform... + Transformar... - Transform the geometry of selected objects - Transformar la geometría de los objetos seleccionados + Transform the geometry of selected objects + Transformar la geometría de los objetos seleccionados - - + + StdCmdTreeSelection - View - Vista + View + Vista - Go to selection - Ir a la selección + Go to selection + Ir a la selección - Scroll to first selected item - Desplazarse al primer elemento seleccionado + Scroll to first selected item + Desplazarse al primer elemento seleccionado - - + + StdCmdUndo - Edit - Editar + Edit + Editar - &Undo - &Deshacer + &Undo + &Deshacer - Undo exactly one action - Deshacer exactamente una acción + Undo exactly one action + Deshacer exactamente una acción - - + + StdCmdUserInterface - View - Vista + View + Vista - Dock views - Acoplar vistas + Dock views + Acoplar vistas - Dock all top-level views - Acoplar todas las vistas de nivel superior + Dock all top-level views + Acoplar todas las vistas de nivel superior - - + + StdCmdViewAxo - Standard-View - Vista estándar + Standard-View + Vista estándar - Axometric - Axonométrica + Axometric + Axonométrica - Set to axometric view - Establecer la vista axonométrica + Set to axometric view + Establecer la vista axonométrica - - + + StdCmdViewBottom - Standard-View - Vista estándar + Standard-View + Vista estándar - Bottom - Inferior + Bottom + Inferior - Set to bottom view - Establece la vista inferior + Set to bottom view + Establece la vista inferior - - + + StdCmdViewCreate - Standard-View - Vista estándar + Standard-View + Vista estándar - Create new view - Crear una vista nueva + Create new view + Crear una vista nueva - Creates a new view window for the active document - Crea una ventana de vista nueva para el documento activo + Creates a new view window for the active document + Crea una ventana de vista nueva para el documento activo - - + + StdCmdViewExample1 - Standard-View - Vista estándar + Standard-View + Vista estándar - Inventor example #1 - Inventor ejemplo #1 + Inventor example #1 + Inventor ejemplo #1 - Shows a 3D texture with manipulator - Muestra una textura 3D con manipulador + Shows a 3D texture with manipulator + Muestra una textura 3D con manipulador - - + + StdCmdViewExample2 - Standard-View - Vista estándar + Standard-View + Vista estándar - Inventor example #2 - Inventor ejemplo #2 + Inventor example #2 + Inventor ejemplo #2 - Shows spheres and drag-lights - Muestra esferas y luces arrastradas + Shows spheres and drag-lights + Muestra esferas y luces arrastradas - - + + StdCmdViewExample3 - Standard-View - Vista estándar + Standard-View + Vista estándar - Inventor example #3 - Inventor ejemplo #3 + Inventor example #3 + Inventor ejemplo #3 - Shows a animated texture - Muestra una textura animada + Shows a animated texture + Muestra una textura animada - - + + StdCmdViewFitAll - Standard-View - Vista estándar + Standard-View + Vista estándar - Fit all - Ajustar todo + Fit all + Ajustar todo - Fits the whole content on the screen - Ajustar el contenido completo a la pantalla + Fits the whole content on the screen + Ajustar el contenido completo a la pantalla - - + + StdCmdViewFitSelection - Standard-View - Vista estándar + Standard-View + Vista estándar - Fit selection - Ajustar a la selección + Fit selection + Ajustar a la selección - Fits the selected content on the screen - Ajustar el contenido seleccionado a la pantalla + Fits the selected content on the screen + Ajustar el contenido seleccionado a la pantalla - - + + StdCmdViewFront - Standard-View - Vista estándar + Standard-View + Vista estándar - Front - Alzado + Front + Alzado - Set to front view - Establecer vista alzado + Set to front view + Establecer vista alzado - - + + StdCmdViewIvIssueCamPos - Standard-View - Vista estándar + Standard-View + Vista estándar - Issue camera position - Publicar la posición de la cámara + Issue camera position + Publicar la posición de la cámara - Issue the camera position to the console and to a macro, to easily recall this position - Publicar la posición de la cámara a la consola y a una macro, para rellamar fácilmente a esta posición + Issue the camera position to the console and to a macro, to easily recall this position + Publicar la posición de la cámara a la consola y a una macro, para rellamar fácilmente a esta posición - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Vista estándar + Standard-View + Vista estándar - Stereo Interleaved Columns - Estéreo columnas intercaladas + Stereo Interleaved Columns + Estéreo columnas intercaladas - Switch stereo viewing to Interleaved Columns - Cambiar la visualización estéreo a columnas intercaladas + Switch stereo viewing to Interleaved Columns + Cambiar la visualización estéreo a columnas intercaladas - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Vista estándar + Standard-View + Vista estándar - Stereo Interleaved Rows - Estéreo filas intercaladas + Stereo Interleaved Rows + Estéreo filas intercaladas - Switch stereo viewing to Interleaved Rows - Cambiar la visualización estéreo a filas intercaladas + Switch stereo viewing to Interleaved Rows + Cambiar la visualización estéreo a filas intercaladas - - + + StdCmdViewIvStereoOff - Standard-View - Vista estándar + Standard-View + Vista estándar - Stereo Off - Estéreo apagado + Stereo Off + Estéreo apagado - Switch stereo viewing off - Cambiar la visualización estéreo a apagado + Switch stereo viewing off + Cambiar la visualización estéreo a apagado - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Vista estándar + Standard-View + Vista estándar - Stereo quad buffer - Estéreo cuádruple buffer + Stereo quad buffer + Estéreo cuádruple buffer - Switch stereo viewing to quad buffer - Cambiar la visualización estéreo a cuádruple buffer + Switch stereo viewing to quad buffer + Cambiar la visualización estéreo a cuádruple buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Vista estándar + Standard-View + Vista estándar - Stereo red/green - Estéreo rojo/verde + Stereo red/green + Estéreo rojo/verde - Switch stereo viewing to red/green - Cambiar la visualización estéreo a rojo/verde + Switch stereo viewing to red/green + Cambiar la visualización estéreo a rojo/verde - - + + StdCmdViewLeft - Standard-View - Vista estándar + Standard-View + Vista estándar - Left - Izquierda + Left + Izquierda - Set to left view - Establecer vista izquierda + Set to left view + Establecer vista izquierda - - + + StdCmdViewRear - Standard-View - Vista estándar + Standard-View + Vista estándar - Rear - Posterior + Rear + Posterior - Set to rear view - Establecer vista posterior + Set to rear view + Establecer vista posterior - - + + StdCmdViewRight - Standard-View - Vista estándar + Standard-View + Vista estándar - Right - Derecha + Right + Derecha - Set to right view - Establecer vista derecha + Set to right view + Establecer vista derecha - - + + + StdCmdViewRotateLeft + + Standard-View + Vista estándar + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Vista estándar + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Vista estándar + Standard-View + Vista estándar - Top - Planta + Top + Planta - Set to top view - Establecer vista en planta + Set to top view + Establecer vista en planta - - + + StdCmdWhatsThis - Help - Ayuda + Help + Ayuda - &What's This? - &Qué es esto? + &What's This? + &Qué es esto? - What's This - Qué es esto + What's This + Qué es esto - - + + StdCmdWindows - Window - Ventana + Window + Ventana - &Windows... - &Ventanas... + &Windows... + &Ventanas... - Windows list - Lista de ventanas + Windows list + Lista de ventanas - - + + StdCmdWindowsMenu - Window - Ventana + Window + Ventana - Activates this window - Activa esta ventana + Activates this window + Activa esta ventana - - + + StdCmdWorkbench - View - Vista + View + Vista - Workbench - Escenario + Workbench + Escenario - Switch between workbenches - Cambiar entre escenarios + Switch between workbenches + Cambiar entre escenarios - - + + StdOrthographicCamera - Standard-View - Vista estándar + Standard-View + Vista estándar - Orthographic view - Vista ortográfica + Orthographic view + Vista ortográfica - Switches to orthographic view mode - Cambiar a modo de vista ortográfica + Switches to orthographic view mode + Cambiar a modo de vista ortográfica - - + + StdPerspectiveCamera - Standard-View - Vista estándar + Standard-View + Vista estándar - Perspective view - Vista perspectiva + Perspective view + Vista perspectiva - Switches to perspective view mode - Cambiar a modo de vista perspectiva + Switches to perspective view mode + Cambiar a modo de vista perspectiva - - + + StdViewBoxZoom - Standard-View - Vista estándar + Standard-View + Vista estándar - Box zoom - Zona de zoom + Box zoom + Zona de zoom - - + + StdViewDockUndockFullscreen - Standard-View - Vista estándar + Standard-View + Vista estándar - Document window - Ventana de documento + Document window + Ventana de documento - Display the active view either in fullscreen, in undocked or docked mode - Muestra la vista activa a pantalla completa, en modo desacoplado o acoplado + Display the active view either in fullscreen, in undocked or docked mode + Muestra la vista activa a pantalla completa, en modo desacoplado o acoplado - - + + StdViewScreenShot - Standard-View - Vista estándar + Standard-View + Vista estándar - Save picture... - Guardar imagen... + Save picture... + Guardar imagen... - Creates a screenshot of the active view - Crea una captura de pantalla de la vista activa + Creates a screenshot of the active view + Crea una captura de pantalla de la vista activa - - + + StdViewZoomIn - Standard-View - Vista estándar + Standard-View + Vista estándar - Zoom In - Aumentar con el zoom + Zoom In + Aumentar con el zoom - - + + StdViewZoomOut - Standard-View - Vista estándar + Standard-View + Vista estándar - Zoom Out - Reducir con el zoom + Zoom Out + Reducir con el zoom - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Archivo + &File + &Archivo - &Edit - &Editar + &Edit + &Editar - Standard views - Vistas estándar + Standard views + Vistas estándar - &Stereo - &Estéreo + &Stereo + &Estéreo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Visibilidad + Visibility + Visibilidad - &View - &Ver + &View + &Ver - &Tools - &Herramientas + &Tools + &Herramientas - &Macro - &Macro + &Macro + &Macro - &Windows - &Ventanas + &Windows + &Ventanas - &On-line help - &Ayuda online + &On-line help + &Ayuda online - &Help - Ay&uda + &Help + Ay&uda - File - Archivo + File + Archivo - Macro - Macro + Macro + Macro - View - Vista + View + Vista - Special Ops - Operaciones especiales + Special Ops + Operaciones especiales - - + + testClass - test - prueba + test + prueba - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Creado por Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Creado por Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Seleccionar el estilo del Panel de Tareas + Choose the style of the Task Panel + Seleccionar el estilo del Panel de Tareas - Default - Por defecto + Default + Por defecto - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_fi.ts b/src/Gui/Language/FreeCAD_fi.ts index ec9cde9a0..b6b7ceb0c 100644 --- a/src/Gui/Language/FreeCAD_fi.ts +++ b/src/Gui/Language/FreeCAD_fi.ts @@ -1,5485 +1,5903 @@ - - + + Angle - Form - Lomake + Form + Lomake - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Angle Snap + Angle Snap + Angle Snap - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - ei mitään + none + ei mitään - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Lisää + + + Remove + Poista + + + Move up + Siirrä ylös + + + Move down + Siirrä alas + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Paina hiiren vasenta painiketta + Press left mouse button + Paina hiiren vasenta painiketta - Press SHIFT and middle mouse button - Press SHIFT and middle mouse button + Press SHIFT and middle mouse button + Press SHIFT and middle mouse button - Press middle mouse button - Paina hiiren keskipainiketta + Press middle mouse button + Paina hiiren keskipainiketta - Scroll middle mouse button - Selaa hiiren keskimmäisellä painikkeella + Scroll middle mouse button + Selaa hiiren keskimmäisellä painikkeella - - + + Gui::CADNavigationStyle - Press left mouse button - Paina hiiren vasenta painiketta + Press left mouse button + Paina hiiren vasenta painiketta - Press middle mouse button - Paina hiiren keskipainiketta + Press middle mouse button + Paina hiiren keskipainiketta - Press left and middle mouse button - Paina hiiren keskimmäistä ja vasenta painiketta + Press left and middle mouse button + Paina hiiren keskimmäistä ja vasenta painiketta - Scroll middle mouse button - Selaa hiiren keskimmäisellä painikkeella + Scroll middle mouse button + Selaa hiiren keskimmäisellä painikkeella - - + + Gui::Command - Standard - Standardi + Standard + Standardi - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Peruuta + &Cancel + &Peruuta - - + + Gui::ControlSingleton - Task panel - Tehtävä paneeli + Task panel + Tehtävä paneeli - - + + Gui::Dialog::AboutApplication - About - Tietoja + About + Tietoja - Revision number - Versionumero + Revision number + Versionumero - Version - Versio + Version + Versio - OK - OK + OK + OK - - + + - Release date - Julkaisupäivä + Release date + Julkaisupäivä - Platform - Platform + Platform + Platform - License... - License... + License... + License... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Komennot + Commands + Komennot - - + + Gui::Dialog::DemoMode - View Turntable - Näkymän kääntöpöytä + View Turntable + Näkymän kääntöpöytä - Speed - Nopeus + Speed + Nopeus - Maximum - Maksimi + Maximum + Maksimi - Minimum - Minimi + Minimum + Minimi - Fullscreen - Kokoruututila + Fullscreen + Kokoruututila - Enable timer - Ota ajastin käyttöön + Enable timer + Ota ajastin käyttöön - s - s + s + s - Angle - Angle + Angle + Angle + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Play - -90° - -90° + Stop + Pysäytä - Play - Play + Close + Sulje - - Stop - Pysäytä - - - Close - Sulje - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Valitse Ikkuna + Choose Window + Valitse Ikkuna - &Activate - &Aktivoi + &Activate + &Aktivoi - Alt+A - ALT+A + Alt+A + ALT+A - &Cancel - &Peruuta + &Cancel + &Peruuta - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Ikkunat + Windows + Ikkunat - - + + Gui::Dialog::DlgAuthorization - Authorization - Tunnistautuminen + Authorization + Tunnistautuminen - &OK - &OK + &OK + &OK - &Cancel - &Peruuta + &Cancel + &Peruuta - Password: - Salasana: + Password: + Salasana: - User name: - Käyttäjätunnus: + User name: + Käyttäjätunnus: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Valitse kuvake + Choose Icon + Valitse kuvake - OK - OK + OK + OK - Cancel - Peruuta + Cancel + Peruuta - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - Makrot + Macros + Makrot - Setup Custom Macros - Asennuksen mukautetut makrot + Setup Custom Macros + Asennuksen mukautetut makrot - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Pikselikartta + Pixmap + Pikselikartta - Accelerator: - Pikanäppäin: + Accelerator: + Pikanäppäin: - What's this: - Mikä tämä on: + What's this: + Mikä tämä on: - Status text: - Tila teksti: + Status text: + Tila teksti: - Tool tip: - Työkaluvihje: + Tool tip: + Työkaluvihje: - Menu text: - Valikko teksti: + Menu text: + Valikko teksti: - Add - Lisää + Add + Lisää - Remove - Poista + Remove + Poista - Replace - Korvaa + Replace + Korvaa - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Kuvakkeet + Icons + Kuvakkeet - Macros - Makrot + Macros + Makrot - No macro - Ei makro + No macro + Ei makro - No macros found. - Makroja ei löydy. + No macros found. + Makroja ei löydy. - Macro not found - makroa ei löytynyt + Macro not found + makroa ei löytynyt - Sorry, couldn't find macro file '%1'. - Valitettavasti makro tiedostoa '%1' ei löydy. + Sorry, couldn't find macro file '%1'. + Valitettavasti makro tiedostoa '%1' ei löydy. - Empty macro - Tyhjä makro + Empty macro + Tyhjä makro - Please specify the macro first. - Ole hyvä ja määritä ensin makro. + Please specify the macro first. + Ole hyvä ja määritä ensin makro. - Empty text - Tyhjä teksti + Empty text + Tyhjä teksti - Please specify the menu text first. - Ole hyvä ja määritä valikon teksti. + Please specify the menu text first. + Ole hyvä ja määritä valikon teksti. - No item selected - Ei valittuja kohteita + No item selected + Ei valittuja kohteita - Please select a macro item first. - Ole hyvä ja valitse makro kohde. + Please select a macro item first. + Ole hyvä ja valitse makro kohde. - - + + Gui::Dialog::DlgCustomCommands - Commands - Komennot + Commands + Komennot - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategoria + Category + Kategoria - Icon - kuvake + Icon + kuvake - Command - Komento + Command + Komento - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Näppäimistö + Keyboard + Näppäimistö - Description: - Kuvaus: + Description: + Kuvaus: - &Category: - &Kategoria: + &Category: + &Kategoria: - C&ommands: - &Komennot: + C&ommands: + &Komennot: - Current shortcut: - Nykyinen pikakuvake: + Current shortcut: + Nykyinen pikakuvake: - Press &new shortcut: - Paina &uusi pikakuvaketta: + Press &new shortcut: + Paina &uusi pikakuvaketta: - Currently assigned to: - Tällä hetkellä määritetty: + Currently assigned to: + Tällä hetkellä määritetty: - &Assign - &Määrittää + &Assign + &Määrittää - Alt+A - ALT+A + Alt+A + ALT+A - &Reset - &Palauta + &Reset + &Palauta - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Nollaa Kaikki + Re&set All + Nollaa Kaikki - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - kuvake + Icon + kuvake - Command - Komento + Command + Komento - none - ei mitään + none + ei mitään - Multiple defined shortcut - Useasti määritetty pikakuvake + Multiple defined shortcut + Useasti määritetty pikakuvake - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Pikakuvake "%1" on määritelty enemmän kuin kerran. Tämä saattaa johtaa odottamattomaan lopputulokseen. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Pikakuvake "%1" on määritelty enemmän kuin kerran. Tämä saattaa johtaa odottamattomaan lopputulokseen. - Already defined shortcut - Jo aikaisemmin määritelty pikakuvake + Already defined shortcut + Jo aikaisemmin määritelty pikakuvake - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Jo aikaisemmin määritelty pikakuvake + Jo aikaisemmin määritelty pikakuvake - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Työkaluryhmän palkit + Toolbox bars + Työkaluryhmän palkit - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Työkalurivit + Toolbars + Työkalurivit - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - Move right - Siirrä oikealle + Move right + Siirrä oikealle - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - Move left - Siirrä vasemmalle + Move left + Siirrä vasemmalle - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - Move down - Siirrä alas + Move down + Siirrä alas - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - Move up - Siirrä ylös + Move up + Siirrä ylös - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - New... - Uusi ... + New... + Uusi ... - Rename... - Nimeä uudelleen ... + Rename... + Nimeä uudelleen ... - Delete - Poista + Delete + Poista - Icon - kuvake + Icon + kuvake - Command - Komento + Command + Komento - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Uusi työkalurivi + New toolbar + Uusi työkalurivi - Toolbar name: - Työkalurivin nimi: + Toolbar name: + Työkalurivin nimi: - Duplicated name - Duplicated name + Duplicated name + Duplicated name - The toolbar name '%1' is already used - The toolbar name '%1' is already used + The toolbar name '%1' is already used + The toolbar name '%1' is already used - Rename toolbar - Uudelleennimeä työkalurivi + Rename toolbar + Uudelleennimeä työkalurivi - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Mukauttaminen + Customize + Mukauttaminen - &Help - &Ohje + &Help + &Ohje - &Close - &Sulje + &Close + &Sulje - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Buttons + Buttons + Buttons - Clear - Tyhjennä + Clear + Tyhjennä - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Näytön ominaisuudet + Display properties + Näytön ominaisuudet - Display - Näyttö + Display + Näyttö - Transparency: - Läpinäkyvyys: + Transparency: + Läpinäkyvyys: - Line width: - Viivan leveys: + Line width: + Viivan leveys: - Point size: - Pistekoko: + Point size: + Pistekoko: - Material - Materiaali + Material + Materiaali - ... - ... + ... + ... - Close - Sulje + Close + Sulje - Viewing mode - Viewing mode + Viewing mode + Viewing mode - Display mode: - Display mode: + Display mode: + Display mode: - Plot mode: - Plot mode: + Plot mode: + Plot mode: - - + + - Line transparency: - Line transparency: + Line transparency: + Line transparency: - Line color: - Line color: + Line color: + Line color: - Shape color: - Shape color: + Shape color: + Shape color: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Muokkain + Editor + Muokkain - Options - Asetukset + Options + Asetukset - Enable line numbers - Ota rivinumerot käyttöön + Enable line numbers + Ota rivinumerot käyttöön - Enable folding - Ota taivutus käyttöön + Enable folding + Ota taivutus käyttöön - Indentation - Indentation + Indentation + Indentation - Insert spaces - Insert spaces + Insert spaces + Insert spaces - Tab size: - Sarkaimen koko: + Tab size: + Sarkaimen koko: - Indent size: - Sisennä koko: + Indent size: + Sisennä koko: - Keep tabs - Keep tabs + Keep tabs + Keep tabs - Display Items - Display Items + Display Items + Display Items - Family: - Family: + Family: + Family: - Size: - Koko: + Size: + Koko: - Preview: - Esikatselu: + Preview: + Esikatselu: - - + + - - + + Gui::Dialog::DlgGeneral - General - Yleiset + General + Yleiset - Start up - käynnistys + Start up + käynnistys - Enable splash screen at start up - Enable splash screen at start up + Enable splash screen at start up + Enable splash screen at start up - Switch to tab of report window: - Switch to tab of report window: + Switch to tab of report window: + Switch to tab of report window: - Auto load module after start up: - Auto load module after start up: + Auto load module after start up: + Auto load module after start up: - Language - Kieli + Language + Kieli - Change language: - Vaihda kieli: + Change language: + Vaihda kieli: - Main window - Pääikkuna + Main window + Pääikkuna - Size of recent file list - Size of recent file list + Size of recent file list + Size of recent file list - Window style: - Ikkuna tyyli: + Window style: + Ikkuna tyyli: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Syöttö + Input + Syöttö - OK - OK + OK + OK - Cancel - Peruuta + Cancel + Peruuta - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Scene Inspector + Scene Inspector + Scene Inspector - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Suorita makro + Execute macro + Suorita makro - Macro name: - Makron nimi: + Macro name: + Makron nimi: - Macro destination: - Makro kohde: + Macro destination: + Makro kohde: - Execute - Suorita + Execute + Suorita - Close - Sulje + Close + Sulje - Create - Luo + Create + Luo - Delete - Poista + Delete + Poista - Edit - Muokkaa + Edit + Muokkaa - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makrot + Macros + Makrot - Macro file - Makro-tiedosto + Macro file + Makro-tiedosto - Enter a file name, please: - Anna tiedoston nimi, kiitos: + Enter a file name, please: + Anna tiedoston nimi, kiitos: - Existing file - Olemassa oleva tiedosto + Existing file + Olemassa oleva tiedosto - '%1'. + '%1'. This file already exists. - "%1". Tämä tiedosto on jo olemassa. + "%1". Tämä tiedosto on jo olemassa. - Delete macro - Poista makro + Delete macro + Poista makro - Do you really want to delete the macro '%1'? - Haluatko varmasti poistaa makron "%1"? + Do you really want to delete the macro '%1'? + Haluatko varmasti poistaa makron "%1"? - Cannot create file - Cannot create file + Cannot create file + Cannot create file - Creation of file '%1' failed. - Creation of file '%1' failed. + Creation of file '%1' failed. + Creation of file '%1' failed. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Makron tallennus + Macro recording + Makron tallennus - Macro name: - Makron nimi: + Macro name: + Makron nimi: - Stop - Pysäytä + Stop + Pysäytä - Cancel - Peruuta + Cancel + Peruuta - Macro path: - Macro path: + Macro path: + Macro path: - ... - ... + ... + ... - Record - Record + Record + Record - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Makro-tallennin + Macro recorder + Makro-tallennin - Specify first a place to save. - Määritä ensin tallennuspaikka. + Specify first a place to save. + Määritä ensin tallennuspaikka. - Existing macro - Aiemmin luotu makro + Existing macro + Aiemmin luotu makro - The macro '%1' already exists. Do you want to overwrite? - Makro '%1' on jo olemassa. Haluatko korvata? + The macro '%1' already exists. Do you want to overwrite? + Makro '%1' on jo olemassa. Haluatko korvata? - The macro directory doesn't exist. Please, choose another one. - The macro directory doesn't exist. Please, choose another one. + The macro directory doesn't exist. Please, choose another one. + The macro directory doesn't exist. Please, choose another one. - Choose macro directory - Choose macro directory + Choose macro directory + Choose macro directory - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Materiaaliominaisuudet + Material properties + Materiaaliominaisuudet - &Close - &Sulje + &Close + &Sulje - Alt+C - Alt+C + Alt+C + Alt+C - Material - Materiaali + Material + Materiaali - Diffuse color: - Diffuse color: + Diffuse color: + Diffuse color: - Specular color: - Heijastuneen valon väri: + Specular color: + Heijastuneen valon väri: - Shininess: - Shininess: + Shininess: + Shininess: - % - % + % + % - Ambient color: - Ympäristön väri: + Ambient color: + Ympäristön väri: - - + + - Emissive color: - Emissive color: + Emissive color: + Emissive color: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Käytönaikainen ohje + On-line help + Käytönaikainen ohje - Help viewer - Ohjeen katseluohjelma + Help viewer + Ohjeen katseluohjelma - Location of start page - Aloitussivun sijainti + Location of start page + Aloitussivun sijainti - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML-tiedostot (*.html *.htm) + HTML files (*.html *.htm) + HTML-tiedostot (*.html *.htm) - Access denied - Pääsy evätty + Access denied + Pääsy evätty - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Pääsy evätty "%1" Määritä toinen hakemisto, ole hyvä. + Pääsy evätty "%1" Määritä toinen hakemisto, ole hyvä. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parametrimuokkain + Parameter Editor + Parametrimuokkain - Save to disk - Tallenna levylle + Save to disk + Tallenna levylle - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Sulje + &Close + &Sulje - - + + Gui::Dialog::DlgParameterImp - Group - Ryhmä + Group + Ryhmä - Name - Nimi + Name + Nimi - Type - Tyyppi + Type + Tyyppi - Value - Arvo + Value + Arvo - User parameter - Käyttäjäparametri + User parameter + Käyttäjäparametri - Invalid input - Virheellinen syöte + Invalid input + Virheellinen syöte - Invalid key name '%1' - Virheellinen avaimen nimi "%1" + Invalid key name '%1' + Virheellinen avaimen nimi "%1" - System parameter - Järjestelmäparametri + System parameter + Järjestelmäparametri - - + + Gui::Dialog::DlgPreferences - Preferences - Preferences + Preferences + Preferences - &Help - &Ohje + &Help + &Ohje - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &OK + &OK + &OK - &Apply - &Apply + &Apply + &Apply - Alt+A - ALT+A + Alt+A + ALT+A - &Cancel - &Peruuta + &Cancel + &Peruuta - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Wrong parameter + Wrong parameter + Wrong parameter - - + + Gui::Dialog::DlgProjectInformation - Project information - Project information + Project information + Project information - Information - Information + Information + Information - &Name: - &Name: + &Name: + &Name: - Commen&t: - Commen&t: + Commen&t: + Commen&t: - Path: - Path: + Path: + Path: - &Last modified by: - &Last modified by: + &Last modified by: + &Last modified by: - Created &by: - Created &by: + Created &by: + Created &by: - Com&pany: - Com&pany: + Com&pany: + Com&pany: - Last &modification date: - Last &modification date: + Last &modification date: + Last &modification date: - Creation &date: - Creation &date: + Creation &date: + Creation &date: - &OK - &OK + &OK + &OK - &Cancel - &Peruuta + &Cancel + &Peruuta - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Source + Source + Source - Project file (*.fcstd) - Project file (*.fcstd) + Project file (*.fcstd) + Project file (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extract + Extract + Extract - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - Luo + Create + Luo - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Output window + Output window + Output window - Output - Output + Output + Output - Record log messages - Record log messages + Record log messages + Record log messages - Record warnings - Record warnings + Record warnings + Record warnings - Record error messages - Record error messages + Record error messages + Record error messages - Colors - Colors + Colors + Colors - Normal messages: - Normal messages: + Normal messages: + Normal messages: - Log messages: - Log messages: + Log messages: + Log messages: - Warnings: - Warnings: + Warnings: + Warnings: - Errors: - Virheet: + Errors: + Virheet: - - + + - Redirect internal Python errors to report view - Redirect internal Python errors to report view + Redirect internal Python errors to report view + Redirect internal Python errors to report view - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - Ulkoisen ohjelman käynnistäminen + Running external program + Ulkoisen ohjelman käynnistäminen - TextLabel - TextLabel + TextLabel + TextLabel - Advanced >> - Advanced >> + Advanced >> + Advanced >> - ... - ... + ... + ... - Accept changes - Hyväksy muutokset + Accept changes + Hyväksy muutokset - Discard changes - Hylkää muutokset + Discard changes + Hylkää muutokset - Abort program - Keskeytä ohjelma + Abort program + Keskeytä ohjelma - Help - Ohje + Help + Ohje - Select a file - Valitse tiedosto + Select a file + Valitse tiedosto - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D View + 3D View + 3D View - 3D View settings - 3D-näkymän asetukset + 3D View settings + 3D-näkymän asetukset - Show coordinate system in the corner - Show coordinate system in the corner + Show coordinate system in the corner + Show coordinate system in the corner - Show counter of frames per second - Show counter of frames per second + Show counter of frames per second + Show counter of frames per second - Enable animation - Ota animaatiot käyttöön + Enable animation + Ota animaatiot käyttöön - Enable anti-aliasing (slower) - Enable anti-aliasing (slower) + Enable anti-aliasing (slower) + Enable anti-aliasing (slower) - Eye to eye distance for stereo modes: - Eye to eye distance for stereo modes: + Eye to eye distance for stereo modes: + Eye to eye distance for stereo modes: - Camera type - Kameratyyppi + Camera type + Kameratyyppi - Orthographic rendering - Orthographic rendering + Orthographic rendering + Orthographic rendering - Perspective rendering - Perspektiivin renderöinti + Perspective rendering + Perspektiivin renderöinti - - + + - 3D Navigation - 3D navigointi + 3D Navigation + 3D navigointi - Mouse... - Hiiri... + Mouse... + Hiiri... - Intensity of backlight - Taustavalon intensiteetti + Intensity of backlight + Taustavalon intensiteetti - Enable backlight color - Ota taustavalon väri käyttöön + Enable backlight color + Ota taustavalon väri käyttöön - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigointi + %1 navigation + %1 navigointi - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Värimalli + Color model + Värimalli - &Gradient: - &Liukuväri: + &Gradient: + &Liukuväri: - red-yellow-green-cyan-blue - red-yellow-green-cyan-blue + red-yellow-green-cyan-blue + red-yellow-green-cyan-blue - blue-cyan-green-yellow-red - blue-cyan-green-yellow-red + blue-cyan-green-yellow-red + blue-cyan-green-yellow-red - white-black - valko-musta + white-black + valko-musta - black-white - musta-valko + black-white + musta-valko - Visibility - Näkyvyys + Visibility + Näkyvyys - Out g&rayed - Out g&rayed + Out g&rayed + Out g&rayed - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Out &invisible + Out &invisible + Out &invisible - Alt+I - Alt+I + Alt+I + Alt+I - Style - Tyyli + Style + Tyyli - &Zero - &Nolla + &Zero + &Nolla - Alt+Z - ALT+Z + Alt+Z + ALT+Z - &Flow - &Virtaukset + &Flow + &Virtaukset - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Peruuta + &Cancel + &Peruuta - Parameter range - Parameter range + Parameter range + Parameter range - Mi&nimum: - Mi&nimi: + Mi&nimum: + Mi&nimi: - Ma&ximum: - Ma&ximi: + Ma&ximum: + Ma&ximi: - &Labels: - &Labels: + &Labels: + &Labels: - &Decimals: - &Desimaalit: + &Decimals: + &Desimaalit: - - + + - Color-gradient settings - Liukuvärin värin asetukset + Color-gradient settings + Liukuvärin värin asetukset - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Wrong parameter + Wrong parameter + Wrong parameter - The maximum value must be higher than the minimum value. - Maksimiarvon pitää olla suurempi kuin minimiarvo. + The maximum value must be higher than the minimum value. + Maksimiarvon pitää olla suurempi kuin minimiarvo. - - + + Gui::Dialog::DlgSettingsDocument - Document - Asiakirja + Document + Asiakirja - General - Yleiset + General + Yleiset - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Asiakirja tallennetaan pakkaustasolla (0 = ei yhtään, 9 = suurin, 3 = oletus) + Asiakirja tallennetaan pakkaustasolla (0 = ei yhtään, 9 = suurin, 3 = oletus) - Create new document at start up - Luo uusi asiakirja käynnistettäessä + Create new document at start up + Luo uusi asiakirja käynnistettäessä - Storage - Talletuspaikka + Storage + Talletuspaikka - Saving transactions (Auto-save) - Saving transactions (Auto-save) + Saving transactions (Auto-save) + Saving transactions (Auto-save) - Discard saved transaction after saving document - Discard saved transaction after saving document + Discard saved transaction after saving document + Discard saved transaction after saving document - Save thumbnail into project file when saving document - Tallenna pikkukuva projektitiedostoon asiakirjaa tallennettaessa + Save thumbnail into project file when saving document + Tallenna pikkukuva projektitiedostoon asiakirjaa tallennettaessa - Create up to backup files when resaving document - Luo varmuuskopion tiedostoista, kun asiakirja tallennetaan uudestaan + Create up to backup files when resaving document + Luo varmuuskopion tiedostoista, kun asiakirja tallennetaan uudestaan - Document objects - Asiakirjan objektit + Document objects + Asiakirjan objektit - Allow duplicate object labels in one document - Allow duplicate object labels in one document + Allow duplicate object labels in one document + Allow duplicate object labels in one document - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Teksti + Text + Teksti - Bookmark - Kirjanmerkki + Bookmark + Kirjanmerkki - Breakpoint - Keskeytyskohta + Breakpoint + Keskeytyskohta - Keyword - Avainsana + Keyword + Avainsana - Comment - Kommentti + Comment + Kommentti - Block comment - Estä kommentti + Block comment + Estä kommentti - Number - Numero + Number + Numero - String - Merkkijono + String + Merkkijono - Character - Merkki + Character + Merkki - Class name - Luokan nimi + Class name + Luokan nimi - Define name - Määritä nimi + Define name + Määritä nimi - Operator - Operaattori + Operator + Operaattori - Python output - Python ulostulo + Python output + Python ulostulo - Python error - Python virhe + Python error + Python virhe - Items - Osat + Items + Osat - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Kuvan asetukset + Image settings + Kuvan asetukset - Image properties - Kuvan ominaisuudet + Image properties + Kuvan ominaisuudet - Back&ground: - Tausta&kuva: + Back&ground: + Tausta&kuva: - Current - Nykyinen + Current + Nykyinen - White - Valkoinen + White + Valkoinen - Black - Musta + Black + Musta - Transparent - Läpinäkyvä + Transparent + Läpinäkyvä - Image dimensions - Kuvan mitat + Image dimensions + Kuvan mitat - Pixel - Pikseli + Pixel + Pikseli - &Width: - &Leveys: + &Width: + &Leveys: - Current screen - Nykyinen näyttö + Current screen + Nykyinen näyttö - Icon 32 x 32 - Kuvake 32 x 32 + Icon 32 x 32 + Kuvake 32 x 32 - Icon 64 x 64 - Kuvake 64 x 64 + Icon 64 x 64 + Kuvake 64 x 64 - Icon 128 x 128 - Kuvake 128 x 128 + Icon 128 x 128 + Kuvake 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1 024 x 768 + XGA 1024 x 768 + XGA 1 024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA + 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA + 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standard sizes: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Height: - Standard sizes: - Standard sizes: + Aspect ratio: + Aspect ratio: - &Height: - &Height: + &Screen + &Screen - Aspect ratio: - Aspect ratio: + Alt+S + Alt+S - &Screen - &Screen + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Image comment - Alt+1 - Alt+1 + Insert MIBA + Insert MIBA - Image comment - Image comment + Insert comment + Insert comment - - Insert MIBA - Insert MIBA - - - Insert comment - Insert comment - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Macro recording settings + Macro recording settings + Macro recording settings - Logging Commands - Logging Commands + Logging Commands + Logging Commands - Show script commands in python console - Show script commands in python console + Show script commands in python console + Show script commands in python console - Log all commands issued by menus to file: - Log all commands issued by menus to file: + Log all commands issued by menus to file: + Log all commands issued by menus to file: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Gui commands + Gui commands + Gui commands - Recording GUI commands - GUI komentojen nauhoitus + Recording GUI commands + GUI komentojen nauhoitus - Record as comment - Tallenna kommenttina + Record as comment + Tallenna kommenttina - Macro path - Makron polku + Macro path + Makron polku - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Yksiköt + Units + Yksiköt - Units settings - Yksiköiden asetukset + Units settings + Yksiköiden asetukset - Standard (mm/kg/s/degree) - Standardi (mm/kg/s/astetta) + Standard (mm/kg/s/degree) + Standardi (mm/kg/s/astetta) - MKS (m/kg/s/degree) - MKS (m/kg/s/astetta) + MKS (m/kg/s/degree) + MKS (m/kg/s/astetta) - Magnitude - Suuruusluokka + Magnitude + Suuruusluokka - Unit - Yksikkö + Unit + Yksikkö - User system: - User system: + User system: + User system: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Colors + Colors + Colors - Selection - Valinta + Selection + Valinta - Enable selection highlighting - Enable selection highlighting + Enable selection highlighting + Enable selection highlighting - Enable preselection highlighting - Ota esivalinnan korostaminen käyttöön + Enable preselection highlighting + Ota esivalinnan korostaminen käyttöön - Background color - Taustaväri + Background color + Taustaväri - Middle color - Middle color + Middle color + Middle color - Color gradient - Color gradient + Color gradient + Color gradient - Simple color - Yksinkertainen väri + Simple color + Yksinkertainen väri - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Päivän vihje + Tip of the day + Päivän vihje - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - &Show tips at start up - &Näytä vihjeet käynnistyksen yhteydessä + &Show tips at start up + &Näytä vihjeet käynnistyksen yhteydessä - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Seuraava vihje + &Next Tip + &Seuraava vihje - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Sulje + &Close + &Sulje - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Lataus epäonnistui: %1 + Lataus epäonnistui: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - - + + Gui::Dialog::DockablePlacement - Placement - Sijainti + Placement + Sijainti - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + Peruuta + + + Close + Sulje + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Lataus epäonnistui: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - Sisääntulo vektori + Input vector + Sisääntulo vektori - Vector - Vektori + Vector + Vektori - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Hiiren painikkeet + Mouse buttons + Hiiren painikkeet - Configuration - Asetustiedostot + Configuration + Asetustiedostot - Selection: - Valinta: + Selection: + Valinta: - Panning - Panorointi + Panning + Panorointi - Rotation: - Kierto: + Rotation: + Kierto: - Zooming: - Zoomaus: + Zooming: + Zoomaus: - - + + Gui::Dialog::ParameterGroup - Expand - Expand + Expand + Expand - Add sub-group - Lisää alaryhmä + Add sub-group + Lisää alaryhmä - Remove group - Poista ryhmä + Remove group + Poista ryhmä - Rename group - Nimeä ryhmä uudelleen + Rename group + Nimeä ryhmä uudelleen - Export parameter - Vie parametri + Export parameter + Vie parametri - Import parameter - Tuo parametri + Import parameter + Tuo parametri - Collapse - Kutista + Collapse + Kutista - Do really want to remove this parameter group? - Haluatko todella poistaa tämän parametriryhmän? + Do really want to remove this parameter group? + Haluatko todella poistaa tämän parametriryhmän? - Existing sub-group - Nykyinen alaryhmä + Existing sub-group + Nykyinen alaryhmä - The sub-group '%1' already exists. - Alaryhmä "%1" on jo olemassa. + The sub-group '%1' already exists. + Alaryhmä "%1" on jo olemassa. - Export parameter to file - Vie parametri tiedostoon + Export parameter to file + Vie parametri tiedostoon - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Tuo parametri tiedostosta + Import parameter from file + Tuo parametri tiedostosta - Import Error - Virhe tuotaessa + Import Error + Virhe tuotaessa - Reading from '%1' failed. - '%1' lukeminen epäonnistui. + Reading from '%1' failed. + '%1' lukeminen epäonnistui. - - + + Gui::Dialog::ParameterValue - Change value - Muuta arvoa + Change value + Muuta arvoa - Remove key - Poista avain + Remove key + Poista avain - Rename key - Nimeä avain + Rename key + Nimeä avain - New - Uusi + New + Uusi - New string item - Uuden merkkijonon kohde + New string item + Uuden merkkijonon kohde - New float item - Uuden sijainnin kohde + New float item + Uuden sijainnin kohde - New integer item - Uuden kokonaisluvun kohde + New integer item + Uuden kokonaisluvun kohde - New unsigned item - Uusi allekirjoittamaton kohde + New unsigned item + Uusi allekirjoittamaton kohde - New Boolean item - New Boolean item + New Boolean item + New Boolean item - Existing item - Nykyinen kohde + Existing item + Nykyinen kohde - The item '%1' already exists. - Kohde "%1" on jo olemassa. + The item '%1' already exists. + Kohde "%1" on jo olemassa. - - + + Gui::Dialog::Placement - Placement - Sijainti + Placement + Sijainti - OK - OK + OK + OK - Translation: - Käännös: + Translation: + Käännös: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Kierto: + Rotation: + Kierto: - Angle: - Kulma: + Angle: + Kulma: - Axis: - Axis: + Axis: + Axis: - Center: - Keskitetty: + Center: + Keskitetty: - Pitch: - Pitch: + Pitch: + Pitch: - Roll: - Roll: + Roll: + Roll: - Yaw: - Yaw: + Yaw: + Yaw: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler kulmat + Euler angles + Euler kulmat - Apply placement changes immediately - Apply placement changes immediately + Apply placement changes immediately + Apply placement changes immediately - Apply incremental changes to object placement - Apply incremental changes to object placement + Apply incremental changes to object placement + Apply incremental changes to object placement - Apply - Käytä + Apply + Käytä - Reset - Palauta + Reset + Palauta - Close - Sulje + Close + Sulje - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - Komento + Command + Komento - - + + Gui::Dialog::SceneInspector - Dialog - Dialog + Dialog + Dialog - Close - Sulje + Close + Sulje - Refresh - Päivitä + Refresh + Päivitä - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor Tree + Inventor Tree + Inventor Tree - Nodes - Nodes + Nodes + Nodes - - + + Gui::Dialog::TextureMapping - Texture - Materiaalikuvio + Texture + Materiaalikuvio - Texture mapping - Texture mapping + Texture mapping + Texture mapping - Global - Järjestelmän laajuinen + Global + Järjestelmän laajuinen - Environment - Ympäristö + Environment + Ympäristö - Image files (%1) - Kuvatiedostot (%1) + Image files (%1) + Kuvatiedostot (%1) - No image - Ei kuvaa + No image + Ei kuvaa - The specified file is not a valid image file. - The specified file is not a valid image file. + The specified file is not a valid image file. + The specified file is not a valid image file. - No 3d view - Ei 3D näkymää + No 3d view + Ei 3D näkymää - No active 3d view found. - Ei löytynyt aktiivista 3D näkymää. + No active 3d view found. + Ei löytynyt aktiivista 3D näkymää. - - + + Gui::Dialog::Transform - Cancel - Peruuta + Cancel + Peruuta - Transform - Transform + Transform + Transform - - + + Gui::DlgTreeWidget - Dialog - Dialog + Dialog + Dialog - Items - Osat + Items + Osat - OK - OK + OK + OK - Cancel - Peruuta + Cancel + Peruuta - - + + - - + + Gui::DockWnd::CombiView - CombiView - CombiView + CombiView + CombiView - Project - Projekti + Project + Projekti - Tasks - Tehtävät + Tasks + Tehtävät - - + + Gui::DockWnd::HelpView - Previous - Edellinen + Previous + Edellinen - Next - Seuraava + Next + Seuraava - Home - Home + Home + Home - Open - Avaa + Open + Avaa - Open file - Avaa tiedosto + Open file + Avaa tiedosto - All HTML files (*.html *.htm) - Kaikki HTML-tiedostot (*.html *.htm) + All HTML files (*.html *.htm) + Kaikki HTML-tiedostot (*.html *.htm) - External browser - Ulkoinen selain + External browser + Ulkoinen selain - No external browser found. Specify in preferences, please - No external browser found. Specify in preferences, please + No external browser found. Specify in preferences, please + No external browser found. Specify in preferences, please - Starting of %1 failed - %1 käynnistäminen epäonnistui + Starting of %1 failed + %1 käynnistäminen epäonnistui - - + + Gui::DockWnd::PropertyDockView - Property View - Näytä ominaisuudet + Property View + Näytä ominaisuudet - - + + Gui::DockWnd::ReportOutput - Logging - Logging + Logging + Logging - Warning - Varoitus + Warning + Varoitus - Error - Virhe + Error + Virhe - Options - Asetukset + Options + Asetukset - Clear - Tyhjennä + Clear + Tyhjennä - Save As... - Tallenna nimellä... + Save As... + Tallenna nimellä... - Save Report Output - Save Report Output + Save Report Output + Save Report Output - Plain Text Files (*.txt *.log) - Teksti-tiedostot (*.txt *.log) + Plain Text Files (*.txt *.log) + Teksti-tiedostot (*.txt *.log) - Go to end - Siirry loppuun + Go to end + Siirry loppuun - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Redirect Python errors + Redirect Python errors + Redirect Python errors - - + + Gui::DockWnd::ReportView - Output - Output + Output + Output - Python console - Python-konsoli + Python console + Python-konsoli - - + + Gui::DockWnd::SelectionView - Property View - Näytä ominaisuudet + Property View + Näytä ominaisuudet - - + + Gui::DockWnd::TaskPanelView - Task View - Task View + Task View + Task View - - + + Gui::DockWnd::TextBrowser - Could not open file. - Tiedostoa ei voitu avata. + Could not open file. + Tiedostoa ei voitu avata. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Connecting to %1 - Yhdistetään %1 + Connecting to %1 + Yhdistetään %1 - Sending to %1 - Lähetetään %1 + Sending to %1 + Lähetetään %1 - Reading from %1 - Luetaan %1 + Reading from %1 + Luetaan %1 - Download failed: %1. - Lataus epäonnistui: %1. + Download failed: %1. + Lataus epäonnistui: %1. - Previous - Edellinen + Previous + Edellinen - Forward - Eteenpäin + Forward + Eteenpäin - Home - Home + Home + Home - Refresh - Päivitä + Refresh + Päivitä - Copy - Kopioi + Copy + Kopioi - Select all - Valitse kaikki + Select all + Valitse kaikki - No description for - Ei kuvausta + No description for + Ei kuvausta - - + + Gui::DocumentModel - Application - Application + Application + Application - Labels & Attributes - Labels & Attributes + Labels & Attributes + Labels & Attributes - - + + Gui::EditorView - Modified file - Muokattu tiedosto + Modified file + Muokattu tiedosto - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - Unsaved document - Tallentamaton asiakirja + Unsaved document + Tallentamaton asiakirja - The document has been modified. + The document has been modified. Do you want to save your changes? - Asiakirjaa on muokattu. Haluatko tallentaa muutokset? + Asiakirjaa on muokattu. Haluatko tallentaa muutokset? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) - Export PDF - Export PDF + Export PDF + Export PDF - PDF file (*.pdf) - PDF-tiedosto (*.pdf) + PDF file (*.pdf) + PDF-tiedosto (*.pdf) - untitled[*] - Nimetön[*] + untitled[*] + Nimetön[*] - - Editor - -Muokkain + - Editor + -Muokkain - %1 chars removed - %1 merkit poistettu + %1 chars removed + %1 merkit poistettu - %1 chars added - %1 merkkiä lisätty + %1 chars added + %1 merkkiä lisätty - Formatted - Alustettu + Formatted + Alustettu - - + + Gui::FileChooser - Select a file - Valitse tiedosto + Select a file + Valitse tiedosto - Select a directory - Valitse hakemisto + Select a directory + Valitse hakemisto - - + + Gui::FileDialog - Save as - Tallenna nimellä + Save as + Tallenna nimellä - Open - Avaa + Open + Avaa - - + + Gui::FileOptionsDialog - Extended - Laajennettu + Extended + Laajennettu - All files (*.*) - Kaikki tiedostot (*.*) + All files (*.*) + Kaikki tiedostot (*.*) - - + + Gui::Flag - Top left - Vasen ylhäällä + Top left + Vasen ylhäällä - Bottom left - Alas vasemmalle + Bottom left + Alas vasemmalle - Top right - Oikeasta yläkulmasta + Top right + Oikeasta yläkulmasta - Bottom right - Alas oikealle + Bottom right + Alas oikealle - Remove - Poista + Remove + Poista - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Paina CTRL ja hiiren vasenta painiketta + Press CTRL and left mouse button + Paina CTRL ja hiiren vasenta painiketta - Press middle mouse button - Paina hiiren keskipainiketta + Press middle mouse button + Paina hiiren keskipainiketta - Press left mouse button - Paina hiiren vasenta painiketta + Press left mouse button + Paina hiiren vasenta painiketta - Scroll middle mouse button - Selaa hiiren keskimmäisellä painikkeella + Scroll middle mouse button + Selaa hiiren keskimmäisellä painikkeella - - + + Gui::LocationDialog - Wrong direction - Väärä suunta + Wrong direction + Väärä suunta - Direction must not be the null vector - Suunta ei saa olla null-arvoinen vektori + Direction must not be the null vector + Suunta ei saa olla null-arvoinen vektori - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - User defined... + User defined... + User defined... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makrot + Macros + Makrot - - + + Gui::MainWindow - Dimension - Mitta + Dimension + Mitta - Ready - Valmis + Ready + Valmis - Toggles this toolbar - Näyttä tai piilota tämä työkalurivi + Toggles this toolbar + Näyttä tai piilota tämä työkalurivi - Toggles this dockable window - Näytä tai piilota telakointiasema ikkunasta + Toggles this dockable window + Näytä tai piilota telakointiasema ikkunasta - Close All - Sulje kaikki + Close All + Sulje kaikki - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Download started... + Download started... - - + + Gui::ProgressBar - Remaining: %1 - Jäljellä: %1 + Remaining: %1 + Jäljellä: %1 - Aborting - Keskeytetään + Aborting + Keskeytetään - Do you really want to abort the operation? - Haluatko todella keskeyttää toiminnon? + Do you really want to abort the operation? + Haluatko todella keskeyttää toiminnon? - - + + Gui::ProgressDialog - Remaining: %1 - Jäljellä: %1 + Remaining: %1 + Jäljellä: %1 - Aborting - Keskeytetään + Aborting + Keskeytetään - Do you really want to abort the operation? - Haluatko todella keskeyttää toiminnon? + Do you really want to abort the operation? + Haluatko todella keskeyttää toiminnon? - - + + Gui::PropertyEditor::PropertyModel - Property - Ominaisuus + Property + Ominaisuus - Value - Arvo + Value + Arvo - - + + Gui::PropertyView - View - Näytä + View + Näytä - Data - Tiedot + Data + Tiedot - - + + Gui::PythonConsole - System exit - Poistu järjestelmästä + System exit + Poistu järjestelmästä - The application is still running. + The application is still running. Do you want to exit without saving your data? - Sovellus on edelleen käynnissä. Haluatko lopettaa tallentamatta tietoja? + Sovellus on edelleen käynnissä. Haluatko lopettaa tallentamatta tietoja? - Python console - Python-konsoli + Python console + Python-konsoli - Unhandled PyCXX exception. - Käsittelemätön PyCXX poikkeus. + Unhandled PyCXX exception. + Käsittelemätön PyCXX poikkeus. - Unhandled FreeCAD exception. - Käsittelemätön FreeCAD poikkeus. + Unhandled FreeCAD exception. + Käsittelemätön FreeCAD poikkeus. - Unhandled unknown C++ exception. - Käsittelemätön tuntematon C++-poikkeus. + Unhandled unknown C++ exception. + Käsittelemätön tuntematon C++-poikkeus. - &Copy command - &Kopiointi-komento + &Copy command + &Kopiointi-komento - &Copy history - &Kopiointi historia + &Copy history + &Kopiointi historia - Save history as... - Tallenna historia nimellä... + Save history as... + Tallenna historia nimellä... - Insert file name... - Lisää tiedostonimi... + Insert file name... + Lisää tiedostonimi... - Save History - Tallenna historia + Save History + Tallenna historia - Macro Files (*.FCMacro *.py) - Makro-tiedostot (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Makro-tiedostot (*.FCMacro *.py) - Insert file name - Lisää tiedostonimi + Insert file name + Lisää tiedostonimi - All Files (*.*) - Kaikki tiedostot (*.*) + All Files (*.*) + Kaikki tiedostot (*.*) - Python Input Dialog - Python Input-valintaikkuna + Python Input Dialog + Python Input-valintaikkuna - Unhandled std C++ exception. - Unhandled std C++ exception. + Unhandled std C++ exception. + Unhandled std C++ exception. - Word wrap - Word wrap + Word wrap + Word wrap - &Copy - &Kopioi + &Copy + &Kopioi - &Paste - &Liitä + &Paste + &Liitä - Select All - Valitse kaikki + Select All + Valitse kaikki - - + + Clear console + + + + Gui::PythonEditor - Comment - Kommentti + Comment + Kommentti - Uncomment - Poista kommentti + Uncomment + Poista kommentti - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Tyhjennä + Clear + Tyhjennä - - + + Gui::RecentFilesAction - Open file %1 - Avaa tiedosto %1 + Open file %1 + Avaa tiedosto %1 - File not found - Tiedostoa ei löydy + File not found + Tiedostoa ei löydy - The file '%1' cannot be opened. - Tiedostoa '%1' ei voi avata. + The file '%1' cannot be opened. + Tiedostoa '%1' ei voi avata. - - + + Gui::SelectModule - Select module - Valitse moduuli + Select module + Valitse moduuli - Open %1 as - Avaa kuin %1 + Open %1 as + Avaa kuin %1 - Select - Valitse + Select + Valitse - - + + Gui::StdCmdDescription - Help - Ohje + Help + Ohje - Des&cription - Des&cription + Des&cription + Des&cription - Long description of commands - Long description of commands + Long description of commands + Long description of commands - - + + Gui::StdCmdDownloadOnlineHelp - Help - Ohje + Help + Ohje - Download online help - Lataa online-ohje + Download online help + Lataa online-ohje - Download %1's online help - Download %1's online help + Download %1's online help + Download %1's online help - Non-existing directory - Olemassa olematon hakemisto + Non-existing directory + Olemassa olematon hakemisto - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Missing permission - Vajavaiset käyttöoikeudet + Missing permission + Vajavaiset käyttöoikeudet - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Stop downloading - Stop downloading + Stop downloading + Stop downloading - - + + Gui::StdCmdPythonHelp - Tools - Työkalut + Tools + Työkalut - Python Modules - Python-moduulit + Python Modules + Python-moduulit - Opens a browser to show the Python modules - Avaa selain nähdäksesi python-moduulit + Opens a browser to show the Python modules + Avaa selain nähdäksesi python-moduulit - - + + Gui::TaskBoxAngle - Angle - Angle + Angle + Angle - - + + Gui::TaskBoxPosition - Position - Sijainti + Position + Sijainti - - + + Gui::TaskView::TaskAppearance - Display mode: - Display mode: + Display mode: + Display mode: - Plot mode: - Plot mode: + Plot mode: + Plot mode: - Point size: - Pistekoko: + Point size: + Pistekoko: - Line width: - Viivan leveys: + Line width: + Viivan leveys: - Transparency: - Läpinäkyvyys: + Transparency: + Läpinäkyvyys: - Appearance - Appearance + Appearance + Appearance - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Muokkaa + Edit + Muokkaa - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Appearance + Appearance + Appearance - ... - ... + ... + ... - edit selection - edit selection + edit selection + edit selection - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Paina hiiren vasenta painiketta + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - English + English + English - - + + Gui::TreeDockWidget - Tree view - Tree view + Tree view + Tree view - - + + Gui::TreeWidget - Create group... - Create group... + Create group... + Create group... - Create a group - Create a group + Create a group + Create a group - Group - Ryhmä + Group + Ryhmä - Rename - Rename + Rename + Rename - Rename object - Rename object + Rename object + Rename object - Labels & Attributes - Labels & Attributes + Labels & Attributes + Labels & Attributes - Application - Application + Application + Application - Finish editing - Lopeta muokkaaminen + Finish editing + Lopeta muokkaaminen - Finish editing object - Lopeta objektin muokkaaminen + Finish editing object + Lopeta objektin muokkaaminen - Activate document - Aktivoi asiakirja + Activate document + Aktivoi asiakirja - Activate document %1 - Aktivoi asiakirja %1 + Activate document %1 + Aktivoi asiakirja %1 - - + + Gui::View3DInventor - Export PDF - Export PDF + Export PDF + Export PDF - PDF file (*.pdf) - PDF-tiedosto (*.pdf) + PDF file (*.pdf) + PDF-tiedosto (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Select the '%1' workbench + Select the '%1' workbench + Select the '%1' workbench - - + + Position - Form - Lomake + Form + Lomake - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Grid Snap in + Grid Snap in + Grid Snap in - - + + QDockWidget - Tree view - Tree view + Tree view + Tree view - Property view - Property view + Property view + Property view - Selection view - Selection view + Selection view + Selection view - Report view - Report view + Report view + Report view - Task View - Task View + Task View + Task View - Combo View - Combo View + Combo View + Combo View - Toolbox - Työkalut + Toolbox + Työkalut - Python console - Python-konsoli + Python console + Python-konsoli - Display properties - Näytön ominaisuudet + Display properties + Näytön ominaisuudet - - + + QObject - General - Yleiset + General + Yleiset - Display - Näyttö + Display + Näyttö - Unknown filetype - Unknown filetype + Unknown filetype + Unknown filetype - Cannot open unknown filetype: %1 - Cannot open unknown filetype: %1 + Cannot open unknown filetype: %1 + Cannot open unknown filetype: %1 - Cannot save to unknown filetype: %1 - Cannot save to unknown filetype: %1 + Cannot save to unknown filetype: %1 + Cannot save to unknown filetype: %1 - Workbench failure - Workbench failure + Workbench failure + Workbench failure - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Unable to launch Qt Assistant (%1) + Unable to launch Qt Assistant (%1) + Unable to launch Qt Assistant (%1) - Exception - Exception + Exception + Exception - Open document - Open document + Open document + Open document - Import file - Import file + Import file + Import file - Export file - Export file + Export file + Export file - Printing... - Tulostaminen... + Printing... + Tulostaminen... - Cannot load workbench - Cannot load workbench + Cannot load workbench + Cannot load workbench - A general error occurred while loading the workbench - A general error occurred while loading the workbench + A general error occurred while loading the workbench + A general error occurred while loading the workbench - File not found - Tiedostoa ei löydy + File not found + Tiedostoa ei löydy - Cannot open file %1 - Tiedoston %1 avaaminen epäonnistui + Cannot open file %1 + Tiedoston %1 avaaminen epäonnistui - Save views... - Tallenna näkymät ... + Save views... + Tallenna näkymät ... - Load views... - Lataa näkymät... + Load views... + Lataa näkymät... - Freeze view - Jäädytä näkymä + Freeze view + Jäädytä näkymä - Clear views - Puhdista näkymät + Clear views + Puhdista näkymät - Restore view &%1 - Palauta näkymä &%1 + Restore view &%1 + Palauta näkymä &%1 - Save frozen views - Jäädytettyjen näkymien tallentaminen + Save frozen views + Jäädytettyjen näkymien tallentaminen - Frozen views (*.cam) - Jäädytetyt näkymät (*.cam) + Frozen views (*.cam) + Jäädytetyt näkymät (*.cam) - Restore views - Palauta näkymät + Restore views + Palauta näkymät - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Restore frozen views - Palauta jäädytetyt näkymät + Restore frozen views + Palauta jäädytetyt näkymät - Cannot open file '%1'. - Tiedostoa '%1' ei voi avata. + Cannot open file '%1'. + Tiedostoa '%1' ei voi avata. - Docked - Telakoitu + Docked + Telakoitu - Undocked - Irrallinen + Undocked + Irrallinen - Fullscreen - Kokoruututila + Fullscreen + Kokoruututila - files - tiedostot + files + tiedostot - Save picture - Tallenna kuva + Save picture + Tallenna kuva - New sub-group - Uusi alaryhmä + New sub-group + Uusi alaryhmä - Enter the name: - Kirjoita nimi: + Enter the name: + Kirjoita nimi: - New text item - Uusi kohdeteksti + New text item + Uusi kohdeteksti - Enter your text: - Kirjoita teksti: + Enter your text: + Kirjoita teksti: - New integer item - Uuden kokonaisluvun kohde + New integer item + Uuden kokonaisluvun kohde - Enter your number: - Syötä numero: + Enter your number: + Syötä numero: - New unsigned item - Uusi allekirjoittamaton kohde + New unsigned item + Uusi allekirjoittamaton kohde - New float item - Uuden sijainnin kohde + New float item + Uuden sijainnin kohde - New Boolean item - New Boolean item + New Boolean item + New Boolean item - Choose an item: - Valitse kohde: + Choose an item: + Valitse kohde: - Rename group - Nimeä ryhmä uudelleen + Rename group + Nimeä ryhmä uudelleen - The group '%1' cannot be renamed. - Ryhmää '%1' ei voi nimetä uudelleen. + The group '%1' cannot be renamed. + Ryhmää '%1' ei voi nimetä uudelleen. - Existing group - Aiemmin luotu ryhmä + Existing group + Aiemmin luotu ryhmä - The group '%1' already exists. - Ryhmä '%1' on jo olemassa. + The group '%1' already exists. + Ryhmä '%1' on jo olemassa. - Change value - Muuta arvoa + Change value + Muuta arvoa - Save document under new filename... - Tallenna asiakirja uudella tiedostonimellä... + Save document under new filename... + Tallenna asiakirja uudella tiedostonimellä... - Saving aborted - Tallentaminen keskeytettiin + Saving aborted + Tallentaminen keskeytettiin - Unsaved document - Tallentamaton asiakirja + Unsaved document + Tallentamaton asiakirja - Save document before close? - Tallennetaanko asiakirja ennen sulkemista? + Save document before close? + Tallennetaanko asiakirja ennen sulkemista? - Save Macro - Tallenna makro + Save Macro + Tallenna makro - Finish - Valmis + Finish + Valmis - Clear - Tyhjennä + Clear + Tyhjennä - Cancel - Peruuta + Cancel + Peruuta - Inner - Sisempi + Inner + Sisempi - Outer - Ulompi + Outer + Ulompi - No Browser - Ei selain + No Browser + Ei selain - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Selaimen avaaminen ei onnistu. Avaa selainikkuna ja kirjoita: http://localhost:%1. + Selaimen avaaminen ei onnistu. Avaa selainikkuna ja kirjoita: http://localhost:%1. - No Server - Ei Serveriä + No Server + Ei Serveriä - Unable to start the server to port %1: %2. - Ei voitu käynnistää palvelimen porttia %1:%2. + Unable to start the server to port %1: %2. + Ei voitu käynnistää palvelimen porttia %1:%2. - Unable to open your system browser. - Järjestelmä-selaimen avaaminen ei onnistu. + Unable to open your system browser. + Järjestelmä-selaimen avaaminen ei onnistu. - Options... - Asetukset... + Options... + Asetukset... - Out of memory - Muisti loppui + Out of memory + Muisti loppui - Not enough memory available to display the data. - Muisti ei riitä tietojen näyttämiseen. + Not enough memory available to display the data. + Muisti ei riitä tietojen näyttämiseen. - Cannot find file %1 - Tiedostoa %1 ei löydy + Cannot find file %1 + Tiedostoa %1 ei löydy - Cannot find file %1 neither in %2 nor in %3 - Ei voida löytää tiedostoja %1, %2 ja %3 + Cannot find file %1 neither in %2 nor in %3 + Ei voida löytää tiedostoja %1, %2 ja %3 - Save %1 Document - Tallenna asiakirja %1 + Save %1 Document + Tallenna asiakirja %1 - %1 document (*.FCStd) - asiakirja %1 (*.FCStd) + %1 document (*.FCStd) + asiakirja %1 (*.FCStd) - Save As - Tallenna nimellä + Save As + Tallenna nimellä - %1 already exists. + %1 already exists. Do you want to replace it? - %1 on jo olemassa. Haluatko korvata sen? + %1 on jo olemassa. Haluatko korvata sen? - Document not closable - Asiakirja ei ole suljettavissa + Document not closable + Asiakirja ei ole suljettavissa - The document is not closable for the moment. - Asiakirja ei ole tällä hetkellä suljettavissa. + The document is not closable for the moment. + Asiakirja ei ole tällä hetkellä suljettavissa. - No OpenGL - Ei OpenGL + No OpenGL + Ei OpenGL - This system does not support OpenGL - Tämä järjestelmä ei tue OpenGL:ää + This system does not support OpenGL + Tämä järjestelmä ei tue OpenGL:ää - Help - Ohje + Help + Ohje - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - %1 Help - %1 Ohjeet + %1 Help + %1 Ohjeet - Exporting PDF... - PDF vienti... + Exporting PDF... + PDF vienti... - Wrong selection - Väärä valinta + Wrong selection + Väärä valinta - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - New boolean item - New boolean item + New boolean item + New boolean item - Navigation styles - Navigointi tyylit + Navigation styles + Navigointi tyylit - %1 navigation - %1 navigointi + %1 navigation + %1 navigointi - Move annotation - Move annotation + Move annotation + Move annotation - Transform - Transform + Transform + Transform - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Standardi-Näkymä + + + Box selection + + + + StdCmdAbout - Help - Ohje + Help + Ohje - &About %1 - &Tietoja %1 + &About %1 + &Tietoja %1 - About %1 - Tietoja %1 + About %1 + Tietoja %1 - - + + StdCmdAboutQt - Help - Ohje + Help + Ohje - About &Qt - Tietoja &Qt + About &Qt + Tietoja &Qt - About Qt - Tietoja Qt + About Qt + Tietoja Qt - - + + StdCmdActivateNextWindow - Window - Ikkuna + Window + Ikkuna - Ne&xt - Seur&aava + Ne&xt + Seur&aava - Activate next window - Aktivoi seuraava ikkuna + Activate next window + Aktivoi seuraava ikkuna - - + + StdCmdActivatePrevWindow - Window - Ikkuna + Window + Ikkuna - Pre&vious - Edell&inen + Pre&vious + Edell&inen - Activate previous window - Aktivoi edellinen ikkuna + Activate previous window + Aktivoi edellinen ikkuna - - + + + StdCmdAlignment + + Edit + Muokkaa + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Ikkuna + Window + Ikkuna - Arrange &Icons - Järjestä &kuvakkeet + Arrange &Icons + Järjestä &kuvakkeet - Arrange Icons - Järjestä kuvakkeet + Arrange Icons + Järjestä kuvakkeet - - + + StdCmdAxisCross - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Ikkuna + Window + Ikkuna - &Cascade - &Cascade + &Cascade + &Cascade - Tile pragmatic - Tile pragmatic + Tile pragmatic + Tile pragmatic - - + + StdCmdCloseActiveWindow - Window - Ikkuna + Window + Ikkuna - Cl&ose - Sulje + Cl&ose + Sulje - Close active window - Sulje aktiivinen ikkuna + Close active window + Sulje aktiivinen ikkuna - - + + StdCmdCloseAllWindows - Window - Ikkuna + Window + Ikkuna - Close Al&l - Sulje kaikki + Close Al&l + Sulje kaikki - Close all windows - Sulje kaikki ikkunat + Close all windows + Sulje kaikki ikkunat - - + + StdCmdCommandLine - Tools - Työkalut + Tools + Työkalut - Start command &line... - Start command &line... + Start command &line... + Start command &line... - Opens the command line in the console - Avaa komentorivin konsolissa + Opens the command line in the console + Avaa komentorivin konsolissa - - + + StdCmdCopy - Edit - Muokkaa + Edit + Muokkaa - C&opy - C&opy + C&opy + C&opy - Copy operation - Kopiointi toiminto + Copy operation + Kopiointi toiminto - - + + StdCmdCut - Edit - Muokkaa + Edit + Muokkaa - &Cut - &Leikkaa + &Cut + &Leikkaa - Cut out - Leikata pois + Cut out + Leikata pois - - + + StdCmdDDuplicateSelection - Edit - Muokkaa + Edit + Muokkaa - Duplicate selection - Moninkertainen valinta + Duplicate selection + Moninkertainen valinta - Put duplicates of the selected objects to the active document - Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document - - + + StdCmdDelete - Edit - Muokkaa + Edit + Muokkaa - &Delete - &Poista + &Delete + &Poista - Deletes the selected objects - Poistaa valitut objektit + Deletes the selected objects + Poistaa valitut objektit - - + + StdCmdDemoMode - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - View turntable... - View turntable... + View turntable... + View turntable... - View turntable - View turntable + View turntable + View turntable - - + + StdCmdDlgCustomize - Tools - Työkalut + Tools + Työkalut - Cu&stomize... - Mukauta... + Cu&stomize... + Mukauta... - Customize toolbars and command bars - Customize toolbars and command bars + Customize toolbars and command bars + Customize toolbars and command bars - - + + StdCmdDlgMacroExecute - Macros ... - Makrot ... + Macros ... + Makrot ... - Opens a dialog to let you execute a recorded macro - Opens a dialog to let you execute a recorded macro + Opens a dialog to let you execute a recorded macro + Opens a dialog to let you execute a recorded macro - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Suorita makro + Execute macro + Suorita makro - Execute the macro in the editor - Suorittaa makron editorissa + Execute the macro in the editor + Suorittaa makron editorissa - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makron tallennus ... + &Macro recording ... + &Makron tallennus ... - Opens a dialog to record a macro - Avaa valintaikkunan tallennettavalle makrolle + Opens a dialog to record a macro + Avaa valintaikkunan tallennettavalle makrolle - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Työkalut + Tools + Työkalut - E&dit parameters ... - M&uokkaa parametrejä... + E&dit parameters ... + M&uokkaa parametrejä... - Opens a Dialog to edit the parameters - Opens a Dialog to edit the parameters + Opens a Dialog to edit the parameters + Opens a Dialog to edit the parameters - - + + StdCmdDlgPreferences - Tools - Työkalut + Tools + Työkalut - &Preferences ... - &Asetukset ... + &Preferences ... + &Asetukset ... - Opens a Dialog to edit the preferences - Opens a Dialog to edit the preferences + Opens a Dialog to edit the preferences + Opens a Dialog to edit the preferences - - + + StdCmdDockViewMenu - View - Näytä + View + Näytä - Vie&ws - Näky&mät + Vie&ws + Näky&mät - Toggles this window - Näytä tai piilota tämä ikkuna + Toggles this window + Näytä tai piilota tämä ikkuna - - + + StdCmdDrawStyle - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Muokkaa + + + Duplicate selection + Moninkertainen valinta + + + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + + + + StdCmdEdit + + Edit + Muokkaa + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - File + File + File - &Export... - &Export... + &Export... + &Export... - Export an object in the active document - Export an object in the active document + Export an object in the active document + Export an object in the active document - Supported formats - Supported formats + Supported formats + Supported formats - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Työkalut + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - File + File + File - &Recompute - &Recompute + &Recompute + &Recompute - Recompute feature or document - Recompute feature or document + Recompute feature or document + Recompute feature or document - - + + StdCmdFreeCADWebsite - Help - Ohje + Help + Ohje - FreeCAD Website - FreeCAD Web-sivusto + FreeCAD Website + FreeCAD Web-sivusto - The FreeCAD website - FreeCAD-sivusto + The FreeCAD website + FreeCAD-sivusto - - + + StdCmdFreezeViews - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Freeze display - Näytön lukitseminen + Freeze display + Näytön lukitseminen - Freezes the current view position - Nykyisen näkymän sijainti jumittuu + Freezes the current view position + Nykyisen näkymän sijainti jumittuu - - + + StdCmdHideObjects - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Hide all objects - Piilota kaikki kohteet + Hide all objects + Piilota kaikki kohteet - Hide all objects in the document - Piilota kaikki objektit asiakirjassa + Hide all objects in the document + Piilota kaikki objektit asiakirjassa - - + + StdCmdHideSelection - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Hide selection - Piilota valinta + Hide selection + Piilota valinta - Hide all selected objects - Piilota kaikki valitut objektit + Hide all selected objects + Piilota kaikki valitut objektit - - + + StdCmdImport - File - File + File + File - &Import... - &Tuo... + &Import... + &Tuo... - Import a file in the active document - Tuo tiedosto aktiiviseen asiakirjaan + Import a file in the active document + Tuo tiedosto aktiiviseen asiakirjaan - Supported formats - Supported formats + Supported formats + Supported formats - All files (*.*) - Kaikki tiedostot (*.*) + All files (*.*) + Kaikki tiedostot (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Makron debuggaus + Debug macro + Makron debuggaus - Start debugging of macro - Aloita makron debuggaus + Start debugging of macro + Aloita makron debuggaus - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Step over + Step over + Step over - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Lopeta debuggaus + Stop debugging + Lopeta debuggaus - Stop debugging of macro - Lopeta makron debuggaus + Stop debugging of macro + Lopeta makron debuggaus - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - P&ysäytä makron tallentaminen + S&top macro recording + P&ysäytä makron tallentaminen - Stop the macro recording session - Lopeta makro istunnon tallentaminen + Stop the macro recording session + Lopeta makro istunnon tallentaminen - - + + StdCmdMeasureDistance - View - Näytä + View + Näytä - Measure distance - Mittaa etäisyys + Measure distance + Mittaa etäisyys - - + + StdCmdMeasurementSimple - Tools - Työkalut + Tools + Työkalut - Mesure distance - Mittaa etäisyys + Mesure distance + Mittaa etäisyys - Measures distance between two selected objects - Mittaa etäisyys kahden valitun objektin välillä + Measures distance between two selected objects + Mittaa etäisyys kahden valitun objektin välillä - - + + Measure distance + Mittaa etäisyys + + + StdCmdMergeProjects - File - File + File + File - Merge project... - Merge project... + Merge project... + Merge project... - Merge project - Merge project + Merge project + Merge project - %1 document (*.fcstd) - %1 document (*.fcstd) + %1 document (*.fcstd) + %1 document (*.fcstd) - Cannot merge project with itself. - Cannot merge project with itself. + Cannot merge project with itself. + Cannot merge project with itself. - - + + StdCmdNew - File - File + File + File - &New - &Uusi + &New + &Uusi - Create a new empty document - Luo uusi tyhjä dokumentti + Create a new empty document + Luo uusi tyhjä dokumentti - - + + StdCmdOnlineHelp - Help - Ohje + Help + Ohje - Show help to the application - Näytä ohje sovellukselle + Show help to the application + Näytä ohje sovellukselle - - + + StdCmdOnlineHelpPython - Help - Ohje + Help + Ohje - Python Manuals - Python Manuaalit + Python Manuals + Python Manuaalit - Show the Python documentation - Näytä python-asiakirjat + Show the Python documentation + Näytä python-asiakirjat - - + + StdCmdOnlineHelpWebsite - Help - Ohje + Help + Ohje - Help Website - Ohje Web-sivusto + Help Website + Ohje Web-sivusto - The website where the help is maintained - Verkkosivusto, josta saat pääasiallisen avun + The website where the help is maintained + Verkkosivusto, josta saat pääasiallisen avun - - + + StdCmdOpen - File - File + File + File - &Open... - &Avaa... + &Open... + &Avaa... - Open a document or import files - Avaa asiakirja tai tuo tiedostoja + Open a document or import files + Avaa asiakirja tai tuo tiedostoja - Supported formats - Supported formats + Supported formats + Supported formats - All files (*.*) - Kaikki tiedostot (*.*) + All files (*.*) + Kaikki tiedostot (*.*) - - + + StdCmdPaste - Edit - Muokkaa + Edit + Muokkaa - &Paste - &Liitä + &Paste + &Liitä - Paste operation - Liittämistoiminto + Paste operation + Liittämistoiminto - - + + StdCmdPlacement - Edit - Muokkaa + Edit + Muokkaa - Placement... - Sijainti... + Placement... + Sijainti... - Place the selected objects - Place the selected objects + Place the selected objects + Place the selected objects - - + + StdCmdPrint - File - File + File + File - &Print... - &Tulostaa... + &Print... + &Tulostaa... - Print the document - Tulosta asiakirja + Print the document + Tulosta asiakirja - - + + StdCmdPrintPdf - File - File + File + File - &Export PDF... - &Vie PDF-asiakirjaan... + &Export PDF... + &Vie PDF-asiakirjaan... - Export the document as PDF - Vie asiakirja PDF-tiedostona + Export the document as PDF + Vie asiakirja PDF-tiedostona - - + + StdCmdPrintPreview - File - File + File + File - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Tulosta asiakirja + Print the document + Tulosta asiakirja - Print preview - Print preview + Print preview + Print preview - - + + StdCmdProjectInfo - File - File + File + File - Project i&nformation... - Projektin t&iedot... + Project i&nformation... + Projektin t&iedot... - Show details of the currently active project - Näytä aktiivisen projektin tiedot + Show details of the currently active project + Näytä aktiivisen projektin tiedot - - + + StdCmdProjectUtil - Tools - Työkalut + Tools + Työkalut - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Ohje + Help + Ohje - Python Website - Python Web-sivusto + Python Website + Python Web-sivusto - The official Python website - The official Python website + The official Python website + The official Python website - - + + StdCmdQuit - File - File + File + File - E&xit - L&opeta + E&xit + L&opeta - Quits the application - Lopeta sovellus + Quits the application + Lopeta sovellus - - + + StdCmdRandomColor - File - File + File + File - Random color - Satunnainen väri + Random color + Satunnainen väri - - + + StdCmdRecentFiles - File - File + File + File - Recent files - Viimeisimmät tiedostot + Recent files + Viimeisimmät tiedostot - Recent file list - Viimeksi käytettyjen tiedostojen luettelo + Recent file list + Viimeksi käytettyjen tiedostojen luettelo - - + + StdCmdRedo - Edit - Muokkaa + Edit + Muokkaa - &Redo - &Tee uudelleen + &Redo + &Tee uudelleen - Redoes a previously undone action - Tekee uudelleen viimeksi kumotun toiminnon + Redoes a previously undone action + Tekee uudelleen viimeksi kumotun toiminnon - - + + StdCmdRefresh - Edit - Muokkaa + Edit + Muokkaa - &Refresh - &Päivitä + &Refresh + &Päivitä - Recomputes the current active document - Recomputes the current active document + Recomputes the current active document + Recomputes the current active document - - + + StdCmdSave - File - File + File + File - &Save - &Tallenna + &Save + &Tallenna - Save the active document - Tallenna aktiivinen asiakirja + Save the active document + Tallenna aktiivinen asiakirja - - + + StdCmdSaveAs - File - File + File + File - Save &As... - Tallenna &nimellä... + Save &As... + Tallenna &nimellä... - Save the active document under a new file name - Tallentaa aktiivisen asiakirjan uudella tiedostonimellä + Save the active document under a new file name + Tallentaa aktiivisen asiakirjan uudella tiedostonimellä - - + + StdCmdSceneInspector - Tools - Työkalut + Tools + Työkalut - Scene inspector... - Scene inspector... + Scene inspector... + Scene inspector... - Scene inspector - Scene inspector + Scene inspector + Scene inspector - - + + StdCmdSelectAll - Edit - Muokkaa + Edit + Muokkaa - Select &All - Valitse &kaikki + Select &All + Valitse &kaikki - Select all - Valitse kaikki + Select all + Valitse kaikki - - + + StdCmdSetAppearance - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Appearance... - Ulkoasu... + Appearance... + Ulkoasu... - Sets the display properties of the selected object - Sets the display properties of the selected object + Sets the display properties of the selected object + Sets the display properties of the selected object - - + + StdCmdShowObjects - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Show all objects - Show all objects + Show all objects + Show all objects - Show all objects in the document - Show all objects in the document + Show all objects in the document + Show all objects in the document - - + + StdCmdShowSelection - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Show selection - Show selection + Show selection + Show selection - Show all selected objects - Show all selected objects + Show all selected objects + Show all selected objects - - + + StdCmdStatusBar - View - Näytä + View + Näytä - Status bar - Status bar + Status bar + Status bar - Toggles the status bar - Toggles the status bar + Toggles the status bar + Toggles the status bar - - + + StdCmdTextureMapping - Tools - Työkalut + Tools + Työkalut - Texture mapping... - Texture mapping... + Texture mapping... + Texture mapping... - Texture mapping - Texture mapping + Texture mapping + Texture mapping - - + + StdCmdTileWindows - Window - Ikkuna + Window + Ikkuna - &Tile - &Tile + &Tile + &Tile - Tile the windows - Tile the windows + Tile the windows + Tile the windows - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Toggle breakpoint + Toggle breakpoint + Toggle breakpoint - - + + StdCmdToggleClipPlane - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Clipping plane - Clipping plane + Clipping plane + Clipping plane - Toggles clipping plane for active view - Toggles clipping plane for active view + Toggles clipping plane for active view + Toggles clipping plane for active view - - + + StdCmdToggleNavigation - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Toggle navigation/Edit mode - Toggle navigation/Edit mode + Toggle navigation/Edit mode + Toggle navigation/Edit mode - Toggle between navigation and edit mode - Toggle between navigation and edit mode + Toggle between navigation and edit mode + Toggle between navigation and edit mode - - + + StdCmdToggleObjects - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Toggle all objects - Toggle all objects + Toggle all objects + Toggle all objects - Toggles visibility of all objects in the active document - Toggles visibility of all objects in the active document + Toggles visibility of all objects in the active document + Toggles visibility of all objects in the active document - - + + StdCmdToggleSelectability - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Toggle selectability - Toggle selectability + Toggle selectability + Toggle selectability - Toggles the property of the objects to get selected in the 3D-View - Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View - - + + StdCmdToggleVisibility - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Toggle visibility - Toggle visibility + Toggle visibility + Toggle visibility - Toggles visibility - Toggles visibility + Toggles visibility + Toggles visibility - - + + StdCmdToolBarMenu - View - Näytä + View + Näytä - Tool&bars - Tool&bars + Tool&bars + Tool&bars - Toggles this window - Näytä tai piilota tämä ikkuna + Toggles this window + Näytä tai piilota tämä ikkuna - - + + StdCmdTransform - Edit - Muokkaa + Edit + Muokkaa - Transform... - Transform... + Transform... + Transform... - Transform the geometry of selected objects - Transform the geometry of selected objects + Transform the geometry of selected objects + Transform the geometry of selected objects - - + + StdCmdTreeSelection - View - Näytä + View + Näytä - Go to selection - Go to selection + Go to selection + Go to selection - Scroll to first selected item - Scroll to first selected item + Scroll to first selected item + Scroll to first selected item - - + + StdCmdUndo - Edit - Muokkaa + Edit + Muokkaa - &Undo - &Undo + &Undo + &Undo - Undo exactly one action - Undo exactly one action + Undo exactly one action + Undo exactly one action - - + + StdCmdUserInterface - View - Näytä + View + Näytä - Dock views - Dock views + Dock views + Dock views - Dock all top-level views - Dock all top-level views + Dock all top-level views + Dock all top-level views - - + + StdCmdViewAxo - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Axometric - Axometric + Axometric + Axometric - Set to axometric view - Set to axometric view + Set to axometric view + Set to axometric view - - + + StdCmdViewBottom - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Bottom - Bottom + Bottom + Bottom - Set to bottom view - Aseta pohjan tarkastelu näkymä + Set to bottom view + Aseta pohjan tarkastelu näkymä - - + + StdCmdViewCreate - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Create new view - Luo uusi näkymä + Create new view + Luo uusi näkymä - Creates a new view window for the active document - Creates a new view window for the active document + Creates a new view window for the active document + Creates a new view window for the active document - - + + StdCmdViewExample1 - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Inventor example #1 - Inventor example #1 + Inventor example #1 + Inventor example #1 - Shows a 3D texture with manipulator - Shows a 3D texture with manipulator + Shows a 3D texture with manipulator + Shows a 3D texture with manipulator - - + + StdCmdViewExample2 - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Inventor example #2 - Inventor example #2 + Inventor example #2 + Inventor example #2 - Shows spheres and drag-lights - Shows spheres and drag-lights + Shows spheres and drag-lights + Shows spheres and drag-lights - - + + StdCmdViewExample3 - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Inventor example #3 - Inventor example #3 + Inventor example #3 + Inventor example #3 - Shows a animated texture - Shows a animated texture + Shows a animated texture + Shows a animated texture - - + + StdCmdViewFitAll - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Fit all - Fit all + Fit all + Fit all - Fits the whole content on the screen - Fits the whole content on the screen + Fits the whole content on the screen + Fits the whole content on the screen - - + + StdCmdViewFitSelection - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Fit selection - Sovita valinta + Fit selection + Sovita valinta - Fits the selected content on the screen - Fits the selected content on the screen + Fits the selected content on the screen + Fits the selected content on the screen - - + + StdCmdViewFront - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Front - Etupuoli + Front + Etupuoli - Set to front view - Aseta näkymä edestäpäin + Set to front view + Aseta näkymä edestäpäin - - + + StdCmdViewIvIssueCamPos - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Issue camera position - Issue camera position + Issue camera position + Issue camera position - Issue the camera position to the console and to a macro, to easily recall this position - Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Stereo Interleaved Columns - Stereo Interleaved Columns + Stereo Interleaved Columns + Stereo Interleaved Columns - Switch stereo viewing to Interleaved Columns - Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Stereo Interleaved Rows - Stereo Interleaved Rows + Stereo Interleaved Rows + Stereo Interleaved Rows - Switch stereo viewing to Interleaved Rows - Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows - - + + StdCmdViewIvStereoOff - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Stereo Off - Stereo Off + Stereo Off + Stereo Off - Switch stereo viewing off - Switch stereo viewing off + Switch stereo viewing off + Switch stereo viewing off - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Stereo red/green - Stereo red/green + Stereo red/green + Stereo red/green - Switch stereo viewing to red/green - Switch stereo viewing to red/green + Switch stereo viewing to red/green + Switch stereo viewing to red/green - - + + StdCmdViewLeft - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Left - Vasen + Left + Vasen - Set to left view - Aseta vasemmanpuoleinen näkymä + Set to left view + Aseta vasemmanpuoleinen näkymä - - + + StdCmdViewRear - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Rear - Takana + Rear + Takana - Set to rear view - Aseta Taustakamera + Set to rear view + Aseta Taustakamera - - + + StdCmdViewRight - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Right - Oikea + Right + Oikea - Set to right view - Aseta oikea näkymä + Set to right view + Aseta oikea näkymä - - + + + StdCmdViewRotateLeft + + Standard-View + Standardi-Näkymä + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standardi-Näkymä + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Top - Yläpuoli + Top + Yläpuoli - Set to top view - Aseta yläpuolen näkymä + Set to top view + Aseta yläpuolen näkymä - - + + StdCmdWhatsThis - Help - Ohje + Help + Ohje - &What's This? - &Mikä tämä on? + &What's This? + &Mikä tämä on? - What's This - Mikä tämä on + What's This + Mikä tämä on - - + + StdCmdWindows - Window - Ikkuna + Window + Ikkuna - &Windows... - &Ikkunat... + &Windows... + &Ikkunat... - Windows list - Lista ikkunoista + Windows list + Lista ikkunoista - - + + StdCmdWindowsMenu - Window - Ikkuna + Window + Ikkuna - Activates this window - Aktivoi tämä ikkuna + Activates this window + Aktivoi tämä ikkuna - - + + StdCmdWorkbench - View - Näytä + View + Näytä - Workbench - Workbench + Workbench + Workbench - Switch between workbenches - Switch between workbenches + Switch between workbenches + Switch between workbenches - - + + StdOrthographicCamera - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Orthographic view - Orthographic view + Orthographic view + Orthographic view - Switches to orthographic view mode - Switches to orthographic view mode + Switches to orthographic view mode + Switches to orthographic view mode - - + + StdPerspectiveCamera - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Perspective view - Perspektiivinäkymä + Perspective view + Perspektiivinäkymä - Switches to perspective view mode - Vaihtaa perspektiivinäkymään + Switches to perspective view mode + Vaihtaa perspektiivinäkymään - - + + StdViewBoxZoom - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Box zoom - Valitun alueen zoomaus + Box zoom + Valitun alueen zoomaus - - + + StdViewDockUndockFullscreen - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Document window - Asiakirjan ikkuna + Document window + Asiakirjan ikkuna - Display the active view either in fullscreen, in undocked or docked mode - Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode - - + + StdViewScreenShot - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Save picture... - Tallenna kuva... + Save picture... + Tallenna kuva... - Creates a screenshot of the active view - Luo kuvakaappaus aktiivisesta näkymästä + Creates a screenshot of the active view + Luo kuvakaappaus aktiivisesta näkymästä - - + + StdViewZoomIn - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Zoom In - Suurenna + Zoom In + Suurenna - - + + StdViewZoomOut - Standard-View - Standardi-Näkymä + Standard-View + Standardi-Näkymä - Zoom Out - Loitonna + Zoom Out + Loitonna - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Tiedosto + &File + &Tiedosto - &Edit - &Muokkaa + &Edit + &Muokkaa - Standard views - Standardi näkymät + Standard views + Standardi näkymät - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Näkyvyys + Visibility + Näkyvyys - &View - &Näytä + &View + &Näytä - &Tools - &Tools + &Tools + &Tools - &Macro - &Macro + &Macro + &Macro - &Windows - &Windows + &Windows + &Windows - &On-line help - &On-line help + &On-line help + &On-line help - &Help - &Ohje + &Help + &Ohje - File - File + File + File - Macro - Macro + Macro + Macro - View - Näytä + View + Näytä - Special Ops - Special Ops + Special Ops + Special Ops - - + + testClass - test - testi + test + testi - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Valitse tehtävä-paneelin tyyli + Choose the style of the Task Panel + Valitse tehtävä-paneelin tyyli - Default - Oletus + Default + Oletus - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_fr.ts b/src/Gui/Language/FreeCAD_fr.ts index f665da6bd..62ed9e6ed 100644 --- a/src/Gui/Language/FreeCAD_fr.ts +++ b/src/Gui/Language/FreeCAD_fr.ts @@ -1,5490 +1,5908 @@ - - + + Angle - Form - Forme + Form + Forme - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Angle d'accrochage + Angle Snap + Angle d'accrochage - - 1 ° - 1° + + 1 ° + 1° - - 2 ° - 2° + + 2 ° + 2° - - 5 ° - 5° + + 5 ° + 5° - - 10 ° - 10° + + 10 ° + 10° - - 20 ° - 20° + + 20 ° + 20° - - 45 ° - 45° + + 45 ° + 45° - - 90 ° - 90° + + 90 ° + 90° - - 180 ° - 180° + + 180 ° + 180° - - + + Gui::AccelLineEdit - none - aucun + none + aucun - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Ajouter + + + Remove + Enlever + + + Move up + Déplacer vers le haut + + + Move down + Déplacer vers le bas + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Appuyez sur le bouton gauche de la souris + Press left mouse button + Appuyez sur le bouton gauche de la souris - Press SHIFT and middle mouse button - Appuyez sur Maj et le bouton du milieu de la souris + Press SHIFT and middle mouse button + Appuyez sur Maj et le bouton du milieu de la souris - Press middle mouse button - Appuyez sur le bouton central de la souris + Press middle mouse button + Appuyez sur le bouton central de la souris - Scroll middle mouse button - Faites défiler le bouton milieu de la souris + Scroll middle mouse button + Faites défiler le bouton milieu de la souris - - + + Gui::CADNavigationStyle - Press left mouse button - Appuyez sur le bouton gauche de la souris + Press left mouse button + Appuyez sur le bouton gauche de la souris - Press middle mouse button - Appuyez sur le bouton central de la souris + Press middle mouse button + Appuyez sur le bouton central de la souris - Press left and middle mouse button - Appuyez sur le bouton gauche et le bouton central + Press left and middle mouse button + Appuyez sur le bouton gauche et le bouton central - Scroll middle mouse button - Faites défiler le bouton milieu de la souris + Scroll middle mouse button + Faites défiler le bouton milieu de la souris - - + + Gui::Command - Standard - Standard + Standard + Standard - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Annuler + &Cancel + &Annuler - - + + Gui::ControlSingleton - Task panel - Panneau de Tâches + Task panel + Panneau de Tâches - - + + Gui::Dialog::AboutApplication - About - À propos + About + À propos - Revision number - Numéro de révision + Revision number + Numéro de révision - Version - Version + Version + Version - OK - OK + OK + OK - - Texte source + + Texte source - Release date - Date de publication + Release date + Date de publication - Platform - Plate-forme + Platform + Plate-forme - License... - Licence... + License... + Licence... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Bouton %1 + Button %1 + Bouton %1 - Out Of Range - Hors de portée + Out Of Range + Hors de portée - - + + Gui::Dialog::CommandModel - Commands - Commandes + Commands + Commandes - - + + Gui::Dialog::DemoMode - View Turntable - Vue en rotation + View Turntable + Vue en rotation - Speed - Vitesse + Speed + Vitesse - Maximum - Maximum + Maximum + Maximum - Minimum - Minimum + Minimum + Minimum - Fullscreen - Plein écran + Fullscreen + Plein écran - Enable timer - Activer la minuterie + Enable timer + Activer la minuterie - s - s + s + s - Angle - Angle + Angle + Angle + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Exécuter - -90° - -90° + Stop + Arrêter - Play - Exécuter + Close + Fermer - - Stop - Arrêter - - - Close - Fermer - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Choisir la fenêtre + Choose Window + Choisir la fenêtre - &Activate - &Activer + &Activate + &Activer - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annuler + &Cancel + &Annuler - - Texte source + + Texte source - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Fenêtres + Windows + Fenêtres - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorisation + Authorization + Autorisation - &OK - &OK + &OK + &OK - &Cancel - &Annuler + &Cancel + &Annuler - Password: - Mot de passe : + Password: + Mot de passe : - User name: - Nom d'utilisateur : + User name: + Nom d'utilisateur : - - Texte source + + Texte source - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Choisir l'icône + Choose Icon + Choisir l'icône - OK - OK + OK + OK - Cancel - Annuler + Cancel + Annuler - Add icons... - Ajouter des icônes... + Add icons... + Ajouter des icônes... - - + + Gui::Dialog::DlgCustomActions - Macros - Macros + Macros + Macros - Setup Custom Macros - Installer des macros personnalisées + Setup Custom Macros + Installer des macros personnalisées - Macro: - Macro : + Macro: + Macro : - ... - ... + ... + ... - Pixmap - Pixmap + Pixmap + Pixmap - Accelerator: - Accélérateur: + Accelerator: + Accélérateur: - What's this: - Qu'est ce que c'est : + What's this: + Qu'est ce que c'est : - Status text: - Texte d'état: + Status text: + Texte d'état: - Tool tip: - infobulle + Tool tip: + infobulle - Menu text: - Texte menu : + Menu text: + Texte menu : - Add - Ajouter + Add + Ajouter - Remove - Enlever + Remove + Enlever - Replace - Remplacer + Replace + Remplacer - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Icônes + Icons + Icônes - Macros - Macros + Macros + Macros - No macro - Aucune macro + No macro + Aucune macro - No macros found. - Aucune macro trouvée. + No macros found. + Aucune macro trouvée. - Macro not found - Macro non trouvée + Macro not found + Macro non trouvée - Sorry, couldn't find macro file '%1'. - Désolé, impossible de trouver le fichier macro '%1'. + Sorry, couldn't find macro file '%1'. + Désolé, impossible de trouver le fichier macro '%1'. - Empty macro - Macro vide + Empty macro + Macro vide - Please specify the macro first. - Veuillez d'abord spécifier la macro. + Please specify the macro first. + Veuillez d'abord spécifier la macro. - Empty text - Texte vide + Empty text + Texte vide - Please specify the menu text first. - Veuillez d'abord spécifier le texte du menu. + Please specify the menu text first. + Veuillez d'abord spécifier le texte du menu. - No item selected - Aucun élément sélectionné + No item selected + Aucun élément sélectionné - Please select a macro item first. - Veuillez d'abord sélectionner un élément de macro. + Please select a macro item first. + Veuillez d'abord sélectionner un élément de macro. - - + + Gui::Dialog::DlgCustomCommands - Commands - Commandes + Commands + Commandes - - Texte source + + Texte source - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Catégorie + Category + Catégorie - Icon - Icône + Icon + Icône - Command - Commande + Command + Commande - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Clavier + Keyboard + Clavier - Description: - Description : + Description: + Description : - &Category: - &Catégorie : + &Category: + &Catégorie : - C&ommands: - C&ommandes : + C&ommands: + C&ommandes : - Current shortcut: - Raccourci actuel : + Current shortcut: + Raccourci actuel : - Press &new shortcut: - Appuyez &sur le nouveau raccourci : + Press &new shortcut: + Appuyez &sur le nouveau raccourci : - Currently assigned to: - Actuellement attribué à : + Currently assigned to: + Actuellement attribué à : - &Assign - &Attribuer + &Assign + &Attribuer - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Réinitialiser + &Reset + &Réinitialiser - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Tout réinitiali&ser + Re&set All + Tout réinitiali&ser - Alt+S - Alt+M + Alt+S + Alt+M - - Texte source + + Texte source - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Icône + Icon + Icône - Command - Commande + Command + Commande - none - aucun + none + aucun - Multiple defined shortcut - Raccourci défini plusieurs fois + Multiple defined shortcut + Raccourci défini plusieurs fois - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Le raccourci '%1' est défini plus d'une fois. Il pourrait en résulter un comportement inattendu. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Le raccourci '%1' est défini plus d'une fois. Il pourrait en résulter un comportement inattendu. - Already defined shortcut - Raccourci déjà défini + Already defined shortcut + Raccourci déjà défini - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Le raccourci '%1' est déjà attribué à '%2'. + Le raccourci '%1' est déjà attribué à '%2'. Veuillez définir un autre raccourci. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Barres des boîtes à outils + Toolbox bars + Barres des boîtes à outils - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Barre d'outils + Toolbars + Barre d'outils - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Les changements seront pris en charge lors du prochain chargement de l'atelier approprié</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Les changements seront pris en charge lors du prochain chargement de l'atelier approprié</p></body></html> - Move right - Déplacer vers la droite + Move right + Déplacer vers la droite - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Descendre l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Descendre l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> - Move left - Déplacer vers la gauche + Move left + Déplacer vers la gauche - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Monter l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Monter l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> - Move down - Déplacer vers le bas + Move down + Déplacer vers le bas - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Descendre l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Descendre l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> - Move up - Déplacer vers le haut + Move up + Déplacer vers le haut - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Monter l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Monter l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> - New... - Nouveau... + New... + Nouveau... - Rename... - Renommer... + Rename... + Renommer... - Delete - Supprimer + Delete + Supprimer - Icon - Icône + Icon + Icône - Command - Commande + Command + Commande - <Separator> - <Séparateur> + <Separator> + <Séparateur> - New toolbar - Nouvelle barre d'outils + New toolbar + Nouvelle barre d'outils - Toolbar name: - Nom de la barre d'outils : + Toolbar name: + Nom de la barre d'outils : - Duplicated name - Nom dupliqué + Duplicated name + Nom dupliqué - The toolbar name '%1' is already used - Le nom de barre d'outils '%1' est déjà utilisé + The toolbar name '%1' is already used + Le nom de barre d'outils '%1' est déjà utilisé - Rename toolbar - Renommer la barre d'outils + Rename toolbar + Renommer la barre d'outils - - Texte source + + Texte source - - + + Gui::Dialog::DlgCustomizeImp - Customize - Personnaliser + Customize + Personnaliser - &Help - &Aide + &Help + &Aide - &Close - &Fermer + &Close + &Fermer - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - SpaceBall + Spaceball + SpaceBall - No Spaceball Present - Aucun Spaceball trouvé + No Spaceball Present + Aucun Spaceball trouvé - Buttons - Boutons + Buttons + Boutons - Clear - Effacer + Clear + Effacer - Print Reference - Imprimer les références + Print Reference + Imprimer les références - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Propriétés d'affichage + Display properties + Propriétés d'affichage - Display - Affichage + Display + Affichage - Transparency: - Transparence : + Transparency: + Transparence : - Line width: - Épaisseur de ligne : + Line width: + Épaisseur de ligne : - Point size: - Taille de point : + Point size: + Taille de point : - Material - Matériau + Material + Matériau - ... - ... + ... + ... - Close - Fermer + Close + Fermer - Viewing mode - Mode d'affichage + Viewing mode + Mode d'affichage - Display mode: - Mode d'affichage : + Display mode: + Mode d'affichage : - Plot mode: - Mode de tracé : + Plot mode: + Mode de tracé : - - Texte source + + Texte source - Line transparency: - Transparence de trait : + Line transparency: + Transparence de trait : - Line color: - Couleur de trait : + Line color: + Couleur de trait : - Shape color: - Couleur de la forme : + Shape color: + Couleur de la forme : - Color plot: - Diagramme de couleur : + Color plot: + Diagramme de couleur : - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Éditeur + Editor + Éditeur - Options - Options + Options + Options - Enable line numbers - Activer la numérotation des lignes + Enable line numbers + Activer la numérotation des lignes - Enable folding - Activer le pliage + Enable folding + Activer le pliage - Indentation - Retrait + Indentation + Retrait - Insert spaces - Insérer des espaces + Insert spaces + Insérer des espaces - Tab size: - Taille des tabulations : + Tab size: + Taille des tabulations : - Indent size: - Taille de retrait : + Indent size: + Taille de retrait : - Keep tabs - Garder les tabulations + Keep tabs + Garder les tabulations - Display Items - Éléments d'affichage + Display Items + Éléments d'affichage - Family: - Police : + Family: + Police : - Size: - Taille : + Size: + Taille : - Preview: - Aperçu : + Preview: + Aperçu : - - Texte source + + Texte source - - + + Gui::Dialog::DlgGeneral - General - Général + General + Général - Start up - Démarrage + Start up + Démarrage - Enable splash screen at start up - Activer la page de garde au démarrage + Enable splash screen at start up + Activer la page de garde au démarrage - Switch to tab of report window: - Basculer vers l'onglet de la fenêtre de rapport : + Switch to tab of report window: + Basculer vers l'onglet de la fenêtre de rapport : - Auto load module after start up: - Charger automatiquement le module après le démarrage : + Auto load module after start up: + Charger automatiquement le module après le démarrage : - Language - Langue + Language + Langue - Change language: - Changer la langue : + Change language: + Changer la langue : - Main window - Fenêtre principale + Main window + Fenêtre principale - Size of recent file list - Taille de la liste des fichiers récents + Size of recent file list + Taille de la liste des fichiers récents - Window style: - Style de fenêtre : + Window style: + Style de fenêtre : - Size of toolbar icons: - Taille des icônes de la barre d'outils : + Size of toolbar icons: + Taille des icônes de la barre d'outils : - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Défaut (%1 x %1) + Default (%1 x %1) + Défaut (%1 x %1) - Small (%1 x %1) - Petit (%1 x %1) + Small (%1 x %1) + Petit (%1 x %1) - Large (%1 x %1) - Grand (%1 x %1) + Large (%1 x %1) + Grand (%1 x %1) - Extra large (%1 x %1) - Très grand (%1 x %1) + Extra large (%1 x %1) + Très grand (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Saisie + Input + Saisie - OK - OK + OK + OK - Cancel - Annuler + Cancel + Annuler - - Texte source + + Texte source - - + + Gui::Dialog::DlgInspector - Scene Inspector - Inspecteur de scène + Scene Inspector + Inspecteur de scène - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Lancer la macro + Execute macro + Lancer la macro - Macro name: - Nom de la macro : + Macro name: + Nom de la macro : - Macro destination: - Destination de la macro : + Macro destination: + Destination de la macro : - Execute - Lancer + Execute + Lancer - Close - Fermer + Close + Fermer - Create - Créer + Create + Créer - Delete - Supprimer + Delete + Supprimer - Edit - Éditer + Edit + Éditer - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Macros + Macros + Macros - Macro file - Fichier de macro + Macro file + Fichier de macro - Enter a file name, please: - Veuillez saisir un nom de fichier : + Enter a file name, please: + Veuillez saisir un nom de fichier : - Existing file - Fichier existant + Existing file + Fichier existant - '%1'. + '%1'. This file already exists. - '%1'. Ce fichier existe déjà. + '%1'. Ce fichier existe déjà. - Delete macro - Supprimer la macro + Delete macro + Supprimer la macro - Do you really want to delete the macro '%1'? - Voulez-vous vraiment supprimer la macro '% 1' ? + Do you really want to delete the macro '%1'? + Voulez-vous vraiment supprimer la macro '% 1' ? - Cannot create file - Impossible de créer le fichier + Cannot create file + Impossible de créer le fichier - Creation of file '%1' failed. - Échec de la création du fichier « %1 ». + Creation of file '%1' failed. + Échec de la création du fichier « %1 ». - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Enregistrement d'une macro + Macro recording + Enregistrement d'une macro - Macro name: - Nom de la macro : + Macro name: + Nom de la macro : - Stop - Arrêter + Stop + Arrêter - Cancel - Annuler + Cancel + Annuler - Macro path: - Chemin de la macro : + Macro path: + Chemin de la macro : - ... - ... + ... + ... - Record - Enregistrer + Record + Enregistrer - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Enregistreur de macro + Macro recorder + Enregistreur de macro - Specify first a place to save. - Spécifiez d'abord une destination de sauvegarde. + Specify first a place to save. + Spécifiez d'abord une destination de sauvegarde. - Existing macro - Macro existante + Existing macro + Macro existante - The macro '%1' already exists. Do you want to overwrite? - La macro '%1' existe déjà. Voulez-vous l'écraser? + The macro '%1' already exists. Do you want to overwrite? + La macro '%1' existe déjà. Voulez-vous l'écraser? - The macro directory doesn't exist. Please, choose another one. - Le répertoire de macro n'existe pas. Veuillez en choisir un autre. + The macro directory doesn't exist. Please, choose another one. + Le répertoire de macro n'existe pas. Veuillez en choisir un autre. - Choose macro directory - Choisir le répertoire de macro + Choose macro directory + Choisir le répertoire de macro - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Propriétés du matériau + Material properties + Propriétés du matériau - &Close - &Fermer + &Close + &Fermer - Alt+C - Alt+F + Alt+C + Alt+F - Material - Matériau + Material + Matériau - Diffuse color: - Couleur diffuse : + Diffuse color: + Couleur diffuse : - Specular color: - Couleur spéculaire : + Specular color: + Couleur spéculaire : - Shininess: - Brillance : + Shininess: + Brillance : - % - % + % + % - Ambient color: - Couleur ambiante : + Ambient color: + Couleur ambiante : - - Texte source + + Texte source - Emissive color: - Couleur émissive : + Emissive color: + Couleur émissive : - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Aide en ligne + On-line help + Aide en ligne - Help viewer - Visionneuse d'aide + Help viewer + Visionneuse d'aide - Location of start page - Emplacement de la page de démarrage + Location of start page + Emplacement de la page de démarrage - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - Fichiers HTML (*.html *.htm) + HTML files (*.html *.htm) + Fichiers HTML (*.html *.htm) - Access denied - Accès refusé + Access denied + Accès refusé - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Accès refusé à '%1' + Accès refusé à '%1' Veuillez spécifier un autre répertoire. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Éditeur de paramètres + Parameter Editor + Éditeur de paramètres - Save to disk - Sauvegarder sur le disque + Save to disk + Sauvegarder sur le disque - Alt+C - Alt+F + Alt+C + Alt+F - &Close - &Fermer + &Close + &Fermer - - + + Gui::Dialog::DlgParameterImp - Group - Groupe + Group + Groupe - Name - Nom + Name + Nom - Type - Type + Type + Type - Value - Valeur + Value + Valeur - User parameter - Paramètre utilisateur + User parameter + Paramètre utilisateur - Invalid input - Saisie invalide + Invalid input + Saisie invalide - Invalid key name '%1' - Nom de clé '%1' invalide + Invalid key name '%1' + Nom de clé '%1' invalide - System parameter - Paramètres système + System parameter + Paramètres système - - + + Gui::Dialog::DlgPreferences - Preferences - Préférences + Preferences + Préférences - &Help - &Aide + &Help + &Aide - Alt+H - Alt+A + Alt+H + Alt+A - &OK - &OK + &OK + &OK - &Apply - &Appliquer + &Apply + &Appliquer - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annuler + &Cancel + &Annuler - - Texte source + + Texte source - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Paramètre erroné + Wrong parameter + Paramètre erroné - - + + Gui::Dialog::DlgProjectInformation - Project information - Informations sur le projet + Project information + Informations sur le projet - Information - Informations + Information + Informations - &Name: - &Nom : + &Name: + &Nom : - Commen&t: - Commen&taire : + Commen&t: + Commen&taire : - Path: - Chemin d'accès : + Path: + Chemin d'accès : - &Last modified by: - &Dernière modification par : + &Last modified by: + &Dernière modification par : - Created &by: - Créé &par : + Created &by: + Créé &par : - Com&pany: - So&ciété : + Com&pany: + So&ciété : - Last &modification date: - Date &de dernière modification : + Last &modification date: + Date &de dernière modification : - Creation &date: - &Date de création : + Creation &date: + &Date de création : - &OK - &OK + &OK + &OK - &Cancel - &Annuler + &Cancel + &Annuler - - Texte source + + Texte source - - + + Gui::Dialog::DlgProjectUtility - Project utility - Utilitaire de projet + Project utility + Utilitaire de projet - Extract project - Extraire le projet + Extract project + Extraire le projet - Source - Source + Source + Source - Project file (*.fcstd) - Fichier de projet (*.fcstd) + Project file (*.fcstd) + Fichier de projet (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extraire + Extract + Extraire - Create project - Créer un projet + Create project + Créer un projet - Document.xml - Document.xml + Document.xml + Document.xml - Create - Créer + Create + Créer - Load project file after creation - Charger le fichier de projet après la création + Load project file after creation + Charger le fichier de projet après la création - Empty source - Source vide + Empty source + Source vide - No source is defined. - Aucune source n'est définie. + No source is defined. + Aucune source n'est définie. - Empty destination - Destination vide + Empty destination + Destination vide - No destination is defined. - Aucune destination n'est définie. + No destination is defined. + Aucune destination n'est définie. - - + + Gui::Dialog::DlgReportView - Output window - Fenêtre de sortie + Output window + Fenêtre de sortie - Output - Sortie + Output + Sortie - Record log messages - Enregistrer les messages du journal + Record log messages + Enregistrer les messages du journal - Record warnings - Enregistrer les avertissements + Record warnings + Enregistrer les avertissements - Record error messages - Enregistrer les messages d'erreur + Record error messages + Enregistrer les messages d'erreur - Colors - Couleurs + Colors + Couleurs - Normal messages: - Messages normaux : + Normal messages: + Messages normaux : - Log messages: - Journal des messages : + Log messages: + Journal des messages : - Warnings: - Avertissements: + Warnings: + Avertissements: - Errors: - Erreurs : + Errors: + Erreurs : - - Texte source + + Texte source - Redirect internal Python errors to report view - Rediriger les erreurs internes de Python vers la vue rapport + Redirect internal Python errors to report view + Rediriger les erreurs internes de Python vers la vue rapport - Redirect internal Python output to report view - Rediriger les messages interne Python vers la Vue rapport + Redirect internal Python output to report view + Rediriger les messages interne Python vers la Vue rapport - - + + Gui::Dialog::DlgRunExternal - Running external program - Exécution de programme externe + Running external program + Exécution de programme externe - TextLabel - TextLabel + TextLabel + TextLabel - Advanced >> - Avancé >> + Advanced >> + Avancé >> - ... - ... + ... + ... - Accept changes - Accepter les modifications + Accept changes + Accepter les modifications - Discard changes - Abandonner les modifications + Discard changes + Abandonner les modifications - Abort program - Abandonner le programme + Abort program + Abandonner le programme - Help - Aide + Help + Aide - Select a file - Sélectionner un fichier + Select a file + Sélectionner un fichier - - + + Gui::Dialog::DlgSettings3DView - 3D View - Vue 3D + 3D View + Vue 3D - 3D View settings - Paramètres de la vue 3D + 3D View settings + Paramètres de la vue 3D - Show coordinate system in the corner - Afficher le système de coordonnées dans le coin + Show coordinate system in the corner + Afficher le système de coordonnées dans le coin - Show counter of frames per second - Afficher le compteur d'images par seconde + Show counter of frames per second + Afficher le compteur d'images par seconde - Enable animation - Permettre l'animation + Enable animation + Permettre l'animation - Enable anti-aliasing (slower) - Activer l'anticrénelage (plus lent) + Enable anti-aliasing (slower) + Activer l'anticrénelage (plus lent) - Eye to eye distance for stereo modes: - Distance entre les yeux pour les modes stéréo : + Eye to eye distance for stereo modes: + Distance entre les yeux pour les modes stéréo : - Camera type - Type de caméra + Camera type + Type de caméra - Orthographic rendering - Rendu orthographique + Orthographic rendering + Rendu orthographique - Perspective rendering - Rendu en perspective + Perspective rendering + Rendu en perspective - - Texte source + + Texte source - 3D Navigation - Navigation 3D + 3D Navigation + Navigation 3D - Mouse... - Souris... + Mouse... + Souris... - Intensity of backlight - Intensité du rétro-éclairage + Intensity of backlight + Intensité du rétro-éclairage - Enable backlight color - Activer la couleur de rétroéclairage + Enable backlight color + Activer la couleur de rétroéclairage - Orbit style - Style d'orbite + Orbit style + Style d'orbite - Turntable - Table tournante + Turntable + Table tournante - Trackball - Trackball + Trackball + Trackball - Invert zoom - Inverser le zoom + Invert zoom + Inverser le zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 de navigation + %1 navigation + %1 de navigation - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Modèle de couleurs + Color model + Modèle de couleurs - &Gradient: - Dé&gradé : + &Gradient: + Dé&gradé : - red-yellow-green-cyan-blue - rouge-jaune-vert-cyan-bleu + red-yellow-green-cyan-blue + rouge-jaune-vert-cyan-bleu - blue-cyan-green-yellow-red - bleu-cyan-vert-jaune-rouge + blue-cyan-green-yellow-red + bleu-cyan-vert-jaune-rouge - white-black - blanc-noir + white-black + blanc-noir - black-white - noir-blanc + black-white + noir-blanc - Visibility - Visibilité + Visibility + Visibilité - Out g&rayed - Sortie g&risée + Out g&rayed + Sortie g&risée - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Sortie &invisible + Out &invisible + Sortie &invisible - Alt+I - Alt+I + Alt+I + Alt+I - Style - Style + Style + Style - &Zero - &Zéro + &Zero + &Zéro - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flux + &Flow + &Flux - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Annuler + &Cancel + &Annuler - Parameter range - Gamme de paramètres + Parameter range + Gamme de paramètres - Mi&nimum: - Mi&nimum : + Mi&nimum: + Mi&nimum : - Ma&ximum: - Ma&ximum : + Ma&ximum: + Ma&ximum : - &Labels: - É&tiquettes : + &Labels: + É&tiquettes : - &Decimals: - &Décimales : + &Decimals: + &Décimales : - - Texte source + + Texte source - Color-gradient settings - Paramètres du dégradé de couleurs + Color-gradient settings + Paramètres du dégradé de couleurs - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Paramètre erroné + Wrong parameter + Paramètre erroné - The maximum value must be higher than the minimum value. - La valeur maximale doit être plus grande que la valeur minimale. + The maximum value must be higher than the minimum value. + La valeur maximale doit être plus grande que la valeur minimale. - - + + Gui::Dialog::DlgSettingsDocument - Document - Document + Document + Document - General - Général + General + Général - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Niveau de compression pour la sauvegarde de document + Niveau de compression pour la sauvegarde de document (0 = aucune, 9 = forte, 3 = par défaut) - Create new document at start up - Créer un nouveau document au démarrage + Create new document at start up + Créer un nouveau document au démarrage - Storage - Stockage + Storage + Stockage - Saving transactions (Auto-save) - Sauvegardes des transactions (Auto-sauvegarde) + Saving transactions (Auto-save) + Sauvegardes des transactions (Auto-sauvegarde) - Discard saved transaction after saving document - Annuler les transactions enregistrées après la sauvegarde du document + Discard saved transaction after saving document + Annuler les transactions enregistrées après la sauvegarde du document - Save thumbnail into project file when saving document - Enregistrer la vignette dans le fichier projet lors de la sauvegarde du document + Save thumbnail into project file when saving document + Enregistrer la vignette dans le fichier projet lors de la sauvegarde du document - Create up to backup files when resaving document - Nombre maximal de sauvegardes crées lors du ré-enregistrement du document + Create up to backup files when resaving document + Nombre maximal de sauvegardes crées lors du ré-enregistrement du document - Document objects - objets Documents + Document objects + objets Documents - Allow duplicate object labels in one document - Autoriser la duplication des étiquettes dans un document + Allow duplicate object labels in one document + Autoriser la duplication des étiquettes dans un document - Maximum Undo/Redo steps - Nombre maximal d'actions Annuler/Rétablir + Maximum Undo/Redo steps + Nombre maximal d'actions Annuler/Rétablir - Using Undo/Redo on documents - Utiliser Annuler / Rétablir sur les documents + Using Undo/Redo on documents + Utiliser Annuler / Rétablir sur les documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Texte + Text + Texte - Bookmark - Marque-pages + Bookmark + Marque-pages - Breakpoint - Point d'arrêt + Breakpoint + Point d'arrêt - Keyword - Mot-clé + Keyword + Mot-clé - Comment - Commentaire + Comment + Commentaire - Block comment - Bloc commentaire + Block comment + Bloc commentaire - Number - Nombre + Number + Nombre - String - Chaîne + String + Chaîne - Character - Caractère + Character + Caractère - Class name - Nom de classe + Class name + Nom de classe - Define name - Définir le nom + Define name + Définir le nom - Operator - Opérateur + Operator + Opérateur - Python output - Sortie Python + Python output + Sortie Python - Python error - Erreur Python + Python error + Erreur Python - Items - Items + Items + Items - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Paramètres de l'image + Image settings + Paramètres de l'image - Image properties - Propriétés de l'image + Image properties + Propriétés de l'image - Back&ground: - Arr&ière-plan : + Back&ground: + Arr&ière-plan : - Current - Courant + Current + Courant - White - Blanc + White + Blanc - Black - Noir + Black + Noir - Transparent - Transparent + Transparent + Transparent - Image dimensions - Dimensions de l'image + Image dimensions + Dimensions de l'image - Pixel - Pixel + Pixel + Pixel - &Width: - &Largeur : + &Width: + &Largeur : - Current screen - Écran actuel + Current screen + Écran actuel - Icon 32 x 32 - Icône 32 x 32 + Icon 32 x 32 + Icône 32 x 32 - Icon 64 x 64 - Icône 64 x 64 + Icon 64 x 64 + Icône 64 x 64 - Icon 128 x 128 - Icône 128 x 128 + Icon 128 x 128 + Icône 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Tailles standards : - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Hauteur : - Standard sizes: - Tailles standards : + Aspect ratio: + Ratio d'aspect : - &Height: - &Hauteur : + &Screen + É&cran - Aspect ratio: - Ratio d'aspect : + Alt+S + Alt+M - &Screen - É&cran + &4:3 + &4:3 - Alt+S - Alt+M + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Commentaire de l'image - Alt+1 - Alt+1 + Insert MIBA + Insérer MIBA - Image comment - Commentaire de l'image + Insert comment + Insérer un commentaire - - Insert MIBA - Insérer MIBA - - - Insert comment - Insérer un commentaire - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Réglages d'enregistrement d'une macro + Macro recording settings + Réglages d'enregistrement d'une macro - Logging Commands - Enregistrement des commandes + Logging Commands + Enregistrement des commandes - Show script commands in python console - Montrer les commandes du script dans la console Python + Show script commands in python console + Montrer les commandes du script dans la console Python - Log all commands issued by menus to file: - Enregistrer toutes les commandes venant des menus vers le fichier : + Log all commands issued by menus to file: + Enregistrer toutes les commandes venant des menus vers le fichier : - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Commandes d'interface graphique Gui + Gui commands + Commandes d'interface graphique Gui - Recording GUI commands - Enregistrement des commandes de l'interface graphique + Recording GUI commands + Enregistrement des commandes de l'interface graphique - Record as comment - Enregistrer comme un commentaire + Record as comment + Enregistrer comme un commentaire - Macro path - Chemin de la macro + Macro path + Chemin de la macro - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Unités + Units + Unités - Units settings - Réglage des unités + Units settings + Réglage des unités - Standard (mm/kg/s/degree) - Standard (mm/kg/s/degrés) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/degrés) - MKS (m/kg/s/degree) - MKS (m/kg/s/degrés) + MKS (m/kg/s/degree) + MKS (m/kg/s/degrés) - Magnitude - Amplitude + Magnitude + Amplitude - Unit - Unité + Unit + Unité - User system: - Système de l'utilisateur : + User system: + Système de l'utilisateur : - Imperial (in/lb) - Impérial (po/lb) + Imperial (in/lb) + Impérial (po/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Couleurs + Colors + Couleurs - Selection - Sélection + Selection + Sélection - Enable selection highlighting - Activer la surbrillance de la sélection + Enable selection highlighting + Activer la surbrillance de la sélection - Enable preselection highlighting - Activer la surbrillance de présélection + Enable preselection highlighting + Activer la surbrillance de présélection - Background color - Couleur d'arrière-plan + Background color + Couleur d'arrière-plan - Middle color - Couleur intermédiaire + Middle color + Couleur intermédiaire - Color gradient - Dégradé de couleurs + Color gradient + Dégradé de couleurs - Simple color - Couleur simple + Simple color + Couleur simple - Default colors - Couleurs par défaut + Default colors + Couleurs par défaut - Edited edge color - Couleur d'arête éditée + Edited edge color + Couleur d'arête éditée - Edited vertex color - Couleur de sommet édité + Edited vertex color + Couleur de sommet édité - Construction geometry - Géométrie de construction + Construction geometry + Géométrie de construction - Fully constrained geometry - Géométrie entièrement contrainte + Fully constrained geometry + Géométrie entièrement contrainte - The color of construction geometry in editmode - La couleur des géométries de construction en mode édition + The color of construction geometry in editmode + La couleur des géométries de construction en mode édition - The color of fully constrained geometry in editmode - Couleur d'une géométrie entièrement contrainte en mode édition + The color of fully constrained geometry in editmode + Couleur d'une géométrie entièrement contrainte en mode édition - The color of vertices being edited - La couleur des sommets en cours d'édition + The color of vertices being edited + La couleur des sommets en cours d'édition - The color of edges being edited - La couleur des arêtes en cours d'édition + The color of edges being edited + La couleur des arêtes en cours d'édition - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Astuce du jour + Tip of the day + Astuce du jour - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Saviez-vous...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Saviez-vous...</font></font></b> - &Show tips at start up - &Afficher les astuces au démarrage + &Show tips at start up + &Afficher les astuces au démarrage - Alt+S - Alt+M + Alt+S + Alt+M - &Next Tip - &Astuce suivante + &Next Tip + &Astuce suivante - Alt+N - Alt+A + Alt+N + Alt+A - &Close - &Fermer + &Close + &Fermer - Alt+C - Alt+F + Alt+C + Alt+F - - Texte source + + Texte source - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Téléchargement échoué: %1 + Téléchargement échoué: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Si vous voulez en apprendre plus à propos de FreeCAD, aller sur %1 ou choisissez 'Aide' dans le menu Aide. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Si vous voulez en apprendre plus à propos de FreeCAD, aller sur %1 ou choisissez 'Aide' dans le menu Aide. - - + + Gui::Dialog::DockablePlacement - Placement - Placement + Placement + Placement - - + + Gui::Dialog::DownloadDialog - Canceled. - Annulé. + Canceled. + Annulé. - - + + Download + + + + Cancel + Annuler + + + Close + Fermer + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Téléchargement échoué : %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Ajouter une icône + Add icon + Ajouter une icône - - + + Gui::Dialog::InputVector - Input vector - Vecteur d'entrée + Input vector + Vecteur d'entrée - Vector - Vecteur + Vector + Vecteur - Z: - Z : + Z: + Z : - Y: - Y : + Y: + Y : - X: - X : + X: + X : - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Boutons de la souris + Mouse buttons + Boutons de la souris - Configuration - Configuration + Configuration + Configuration - Selection: - Sélection : + Selection: + Sélection : - Panning - Panoramique + Panning + Panoramique - Rotation: - Rotation : + Rotation: + Rotation : - Zooming: - Zoom : + Zooming: + Zoom : - - + + Gui::Dialog::ParameterGroup - Expand - Développer + Expand + Développer - Add sub-group - Ajouter un sous-groupe + Add sub-group + Ajouter un sous-groupe - Remove group - Enlever le groupe + Remove group + Enlever le groupe - Rename group - Renommer le groupe + Rename group + Renommer le groupe - Export parameter - Exporter le paramètre + Export parameter + Exporter le paramètre - Import parameter - Importer un paramètre + Import parameter + Importer un paramètre - Collapse - Réduire + Collapse + Réduire - Do really want to remove this parameter group? - Voulez-vous vraiment enlever ce groupe de paramètres? + Do really want to remove this parameter group? + Voulez-vous vraiment enlever ce groupe de paramètres? - Existing sub-group - Sous-groupe existant + Existing sub-group + Sous-groupe existant - The sub-group '%1' already exists. - Le sous-groupe '%1' existe déjà. + The sub-group '%1' already exists. + Le sous-groupe '%1' existe déjà. - Export parameter to file - Exporter le paramètre vers un fichier + Export parameter to file + Exporter le paramètre vers un fichier - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Importer un paramètre depuis un fichier + Import parameter from file + Importer un paramètre depuis un fichier - Import Error - Erreur d'importation + Import Error + Erreur d'importation - Reading from '%1' failed. - La lecture à partir de '% 1' a échoué. + Reading from '%1' failed. + La lecture à partir de '% 1' a échoué. - - + + Gui::Dialog::ParameterValue - Change value - Changer la valeur + Change value + Changer la valeur - Remove key - Enlever la clé + Remove key + Enlever la clé - Rename key - Renommer la clé + Rename key + Renommer la clé - New - Nouveau + New + Nouveau - New string item - Nouvel article chaîne + New string item + Nouvel article chaîne - New float item - Nouvel article flottant + New float item + Nouvel article flottant - New integer item - Nouvel article entier + New integer item + Nouvel article entier - New unsigned item - Nouvel article non signé + New unsigned item + Nouvel article non signé - New Boolean item - Nouvel article booléen + New Boolean item + Nouvel article booléen - Existing item - Article existant + Existing item + Article existant - The item '%1' already exists. - L'article '%1' existe déjà. + The item '%1' already exists. + L'article '%1' existe déjà. - - + + Gui::Dialog::Placement - Placement - Placement + Placement + Placement - OK - OK + OK + OK - Translation: - Translation : + Translation: + Translation : - Z: - Z : + Z: + Z : - Y: - Y : + Y: + Y : - X: - X : + X: + X : - Rotation: - Rotation : + Rotation: + Rotation : - Angle: - Angle : + Angle: + Angle : - Axis: - Axe : + Axis: + Axe : - Center: - Centre : + Center: + Centre : - Pitch: - Axe de tangage : + Pitch: + Axe de tangage : - Roll: - Axe de roulis : + Roll: + Axe de roulis : - Yaw: - Axe de lacet : + Yaw: + Axe de lacet : - Rotation axis with angle - Axe de rotation et angle + Rotation axis with angle + Axe de rotation et angle - Euler angles - Angles d'Euler + Euler angles + Angles d'Euler - Apply placement changes immediately - Appliquer immédiatement les changements de position + Apply placement changes immediately + Appliquer immédiatement les changements de position - Apply incremental changes to object placement - Appliquer les modifications incrémentielles au placement de l'objet + Apply incremental changes to object placement + Appliquer les modifications incrémentielles au placement de l'objet - Apply - Appliquer + Apply + Appliquer - Reset - Réinitialiser + Reset + Réinitialiser - Close - Fermer + Close + Fermer - - + + Gui::Dialog::PrintModel - Button - Bouton + Button + Bouton - Command - Commande + Command + Commande - - + + Gui::Dialog::SceneInspector - Dialog - Fenêtre de dialogue + Dialog + Fenêtre de dialogue - Close - Fermer + Close + Fermer - Refresh - Actualiser + Refresh + Actualiser - - + + Gui::Dialog::SceneModel - Inventor Tree - Arbre Inventor + Inventor Tree + Arbre Inventor - Nodes - NÅ“uds + Nodes + NÅ“uds - - + + Gui::Dialog::TextureMapping - Texture - Texture + Texture + Texture - Texture mapping - Mappage de texture + Texture mapping + Mappage de texture - Global - Global + Global + Global - Environment - Environnement + Environment + Environnement - Image files (%1) - Fichiers image (%1) + Image files (%1) + Fichiers image (%1) - No image - Aucune image + No image + Aucune image - The specified file is not a valid image file. - Le fichier spécifié n'est pas un fichier image valide. + The specified file is not a valid image file. + Le fichier spécifié n'est pas un fichier image valide. - No 3d view - Aucune vue 3D + No 3d view + Aucune vue 3D - No active 3d view found. - Aucune vue 3D active trouvée. + No active 3d view found. + Aucune vue 3D active trouvée. - - + + Gui::Dialog::Transform - Cancel - Annuler + Cancel + Annuler - Transform - Transformer + Transform + Transformer - - + + Gui::DlgTreeWidget - Dialog - Fenêtre de dialogue + Dialog + Fenêtre de dialogue - Items - Items + Items + Items - OK - OK + OK + OK - Cancel - Annuler + Cancel + Annuler - - Texte source + + Texte source - - + + Gui::DockWnd::CombiView - CombiView - Vue combinée + CombiView + Vue combinée - Project - Projet + Project + Projet - Tasks - Tâches + Tasks + Tâches - - + + Gui::DockWnd::HelpView - Previous - Précédent + Previous + Précédent - Next - Suivant + Next + Suivant - Home - Accueil + Home + Accueil - Open - Ouvrir + Open + Ouvrir - Open file - Ouvrir un fichier + Open file + Ouvrir un fichier - All HTML files (*.html *.htm) - Tous les fichiers HTML (*.html *.htm) + All HTML files (*.html *.htm) + Tous les fichiers HTML (*.html *.htm) - External browser - Navigateur externe + External browser + Navigateur externe - No external browser found. Specify in preferences, please - Aucun navigateur externe trouvé. Veuillez le spécifier dans les préférences + No external browser found. Specify in preferences, please + Aucun navigateur externe trouvé. Veuillez le spécifier dans les préférences - Starting of %1 failed - Le démarrage de %1 a échoué + Starting of %1 failed + Le démarrage de %1 a échoué - - + + Gui::DockWnd::PropertyDockView - Property View - Affichage des propriétés + Property View + Affichage des propriétés - - + + Gui::DockWnd::ReportOutput - Logging - Enregistrement + Logging + Enregistrement - Warning - Alerte + Warning + Alerte - Error - Erreur + Error + Erreur - Options - Options + Options + Options - Clear - Effacer + Clear + Effacer - Save As... - Enregistrer sous… + Save As... + Enregistrer sous… - Save Report Output - Enregistrer la sortie du rapport + Save Report Output + Enregistrer la sortie du rapport - Plain Text Files (*.txt *.log) - Fichiers texte de base(*.txt *.log) + Plain Text Files (*.txt *.log) + Fichiers texte de base(*.txt *.log) - Go to end - Aller à la fin + Go to end + Aller à la fin - Redirect Python output - Rediriger la sortie de Python + Redirect Python output + Rediriger la sortie de Python - Redirect Python errors - Rediriger les erreurs de Python + Redirect Python errors + Rediriger les erreurs de Python - - + + Gui::DockWnd::ReportView - Output - Sortie + Output + Sortie - Python console - Console Python + Python console + Console Python - - + + Gui::DockWnd::SelectionView - Property View - Affichage des propriétés + Property View + Affichage des propriétés - - + + Gui::DockWnd::TaskPanelView - Task View - Afficher les tâches + Task View + Afficher les tâches - - + + Gui::DockWnd::TextBrowser - Could not open file. - Impossible d'ouvrir le fichier. + Could not open file. + Impossible d'ouvrir le fichier. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Vous essayez d'accéder à l'adresse %1, actuellement indisponible. Assurez-vous que l'URL existe et rechargez la page. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Vous essayez d'accéder à l'adresse %1, actuellement indisponible. Assurez-vous que l'URL existe et rechargez la page. - Connecting to %1 - Connexion à %1 + Connecting to %1 + Connexion à %1 - Sending to %1 - Envoi vers %1 + Sending to %1 + Envoi vers %1 - Reading from %1 - Lecture depuis %1 + Reading from %1 + Lecture depuis %1 - Download failed: %1. - Téléchargement échoué : %1. + Download failed: %1. + Téléchargement échoué : %1. - Previous - Précédent + Previous + Précédent - Forward - Suivant + Forward + Suivant - Home - Accueil + Home + Accueil - Refresh - Actualiser + Refresh + Actualiser - Copy - Copier + Copy + Copier - Select all - Tout sélectionner + Select all + Tout sélectionner - No description for - Pas de description pour + No description for + Pas de description pour - - + + Gui::DocumentModel - Application - Application + Application + Application - Labels & Attributes - Étiquettes & attributs + Labels & Attributes + Étiquettes & attributs - - + + Gui::EditorView - Modified file - Fichier modifié + Modified file + Fichier modifié - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. -Ce fichier a été modifié à l'extérieur de l'éditeur source. Voulez-vous le recharger? +Ce fichier a été modifié à l'extérieur de l'éditeur source. Voulez-vous le recharger? - Unsaved document - Document non sauvegardé + Unsaved document + Document non sauvegardé - The document has been modified. + The document has been modified. Do you want to save your changes? - Le document a été modifié. + Le document a été modifié. Voulez enregistrer les modifications ? - FreeCAD macro (*.FCMacro);;Python (*.py) - Macro FreeCAD (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + Macro FreeCAD (*.FCMacro);;Python (*.py) - Export PDF - Exporter vers PDF + Export PDF + Exporter vers PDF - PDF file (*.pdf) - Fichier PDF (*.pdf) + PDF file (*.pdf) + Fichier PDF (*.pdf) - untitled[*] - sansnom[*] + untitled[*] + sansnom[*] - - Editor - - Éditeur + - Editor + - Éditeur - %1 chars removed - %1 caractères supprimés + %1 chars removed + %1 caractères supprimés - %1 chars added - %1 caractères ajoutés + %1 chars added + %1 caractères ajoutés - Formatted - Formaté + Formatted + Formaté - - + + Gui::FileChooser - Select a file - Sélectionner un fichier + Select a file + Sélectionner un fichier - Select a directory - Sélectionner un répertoire + Select a directory + Sélectionner un répertoire - - + + Gui::FileDialog - Save as - Enregistrer sous + Save as + Enregistrer sous - Open - Ouvrir + Open + Ouvrir - - + + Gui::FileOptionsDialog - Extended - Étendu + Extended + Étendu - All files (*.*) - Tous les fichiers (*.*) + All files (*.*) + Tous les fichiers (*.*) - - + + Gui::Flag - Top left - En haut à gauche + Top left + En haut à gauche - Bottom left - En bas à gauche + Bottom left + En bas à gauche - Top right - En haut à droite + Top right + En haut à droite - Bottom right - En bas à droite + Bottom right + En bas à droite - Remove - Enlever + Remove + Enlever - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Appuyez sur CTRL et le bouton gauche de la souris + Press CTRL and left mouse button + Appuyez sur CTRL et le bouton gauche de la souris - Press middle mouse button - Appuyez sur le bouton central de la souris + Press middle mouse button + Appuyez sur le bouton central de la souris - Press left mouse button - Appuyez sur le bouton gauche de la souris + Press left mouse button + Appuyez sur le bouton gauche de la souris - Scroll middle mouse button - Faites défiler le bouton milieu de la souris + Scroll middle mouse button + Faites défiler le bouton milieu de la souris - - + + Gui::LocationDialog - Wrong direction - Mauvaise direction + Wrong direction + Mauvaise direction - Direction must not be the null vector - La direction ne peut pas être un vecteur nul + Direction must not be the null vector + La direction ne peut pas être un vecteur nul - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Défini par l'utilisateur... + User defined... + Défini par l'utilisateur... - - + + + Gui::LocationWidget + + X: + X : + + + Y: + Y : + + + Z: + Z : + + + Direction: + + + + Gui::MacroCommand - Macros - Macros + Macros + Macros - - + + Gui::MainWindow - Dimension - Dimension + Dimension + Dimension - Ready - Prêt + Ready + Prêt - Toggles this toolbar - Bascule cette barre d'outils + Toggles this toolbar + Bascule cette barre d'outils - Toggles this dockable window - Bascule cette fenêtre dockable + Toggles this dockable window + Bascule cette fenêtre dockable - Close All - Fermer tout + Close All + Fermer tout - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Téléchargement commencé... + Téléchargement commencé... - - + + Gui::ProgressBar - Remaining: %1 - Restant : %1 + Remaining: %1 + Restant : %1 - Aborting - Abandon + Aborting + Abandon - Do you really want to abort the operation? - Voulez-vous vraiment abandonner l'opération? + Do you really want to abort the operation? + Voulez-vous vraiment abandonner l'opération? - - + + Gui::ProgressDialog - Remaining: %1 - Restant : %1 + Remaining: %1 + Restant : %1 - Aborting - Abandon + Aborting + Abandon - Do you really want to abort the operation? - Voulez-vous vraiment abandonner l'opération? + Do you really want to abort the operation? + Voulez-vous vraiment abandonner l'opération? - - + + Gui::PropertyEditor::PropertyModel - Property - Propriété + Property + Propriété - Value - Valeur + Value + Valeur - - + + Gui::PropertyView - View - Vue + View + Vue - Data - Données + Data + Données - - + + Gui::PythonConsole - System exit - Sortie système + System exit + Sortie système - The application is still running. + The application is still running. Do you want to exit without saving your data? - L'application est en cours d'exécution. + L'application est en cours d'exécution. Voulez vous quitter sans sauvegarder vos données? - Python console - Console Python + Python console + Console Python - Unhandled PyCXX exception. - Exception PyCXX non gérée. + Unhandled PyCXX exception. + Exception PyCXX non gérée. - Unhandled FreeCAD exception. - Exception FreeCad non gérée. + Unhandled FreeCAD exception. + Exception FreeCad non gérée. - Unhandled unknown C++ exception. - Exception C++ non gérée et/ou inconnue. + Unhandled unknown C++ exception. + Exception C++ non gérée et/ou inconnue. - &Copy command - &Copier la commande + &Copy command + &Copier la commande - &Copy history - &Copier l'historique + &Copy history + &Copier l'historique - Save history as... - Sauvegarder l'historique sous... + Save history as... + Sauvegarder l'historique sous... - Insert file name... - Insérez un nom de fichier... + Insert file name... + Insérez un nom de fichier... - Save History - Sauvegarder l'historique + Save History + Sauvegarder l'historique - Macro Files (*.FCMacro *.py) - Fichiers Macro(*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Fichiers Macro(*.FCMacro *.py) - Insert file name - Insérez un nom de fichier + Insert file name + Insérez un nom de fichier - All Files (*.*) - Tous les fichiers (*.*) + All Files (*.*) + Tous les fichiers (*.*) - Python Input Dialog - Dialogue d'entrée Python + Python Input Dialog + Dialogue d'entrée Python - Unhandled std C++ exception. - Exception non gérée de std C++. + Unhandled std C++ exception. + Exception non gérée de std C++. - Word wrap - Retour à la ligne + Word wrap + Retour à la ligne - &Copy - C&opier + &Copy + C&opier - &Paste - &Coller + &Paste + &Coller - Select All - Tout sélectionner + Select All + Tout sélectionner - - + + Clear console + + + + Gui::PythonEditor - Comment - Commentaire + Comment + Commentaire - Uncomment - Décommenter + Uncomment + Décommenter - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Effacer + Clear + Effacer - - + + Gui::RecentFilesAction - Open file %1 - Ouvrir le fichier %1 + Open file %1 + Ouvrir le fichier %1 - File not found - Fichier introuvable + File not found + Fichier introuvable - The file '%1' cannot be opened. - Impossible d'ouvrir le fichier '%1'. + The file '%1' cannot be opened. + Impossible d'ouvrir le fichier '%1'. - - + + Gui::SelectModule - Select module - Sélectionner le module + Select module + Sélectionner le module - Open %1 as - Ouvrir '%1' comme + Open %1 as + Ouvrir '%1' comme - Select - Sélectionner + Select + Sélectionner - - + + Gui::StdCmdDescription - Help - Aide + Help + Aide - Des&cription - Des&cription + Des&cription + Des&cription - Long description of commands - Description longue des commandes + Long description of commands + Description longue des commandes - - + + Gui::StdCmdDownloadOnlineHelp - Help - Aide + Help + Aide - Download online help - Télécharger l'aide en ligne + Download online help + Télécharger l'aide en ligne - Download %1's online help - Télécharger l'aide en ligne de %1 + Download %1's online help + Télécharger l'aide en ligne de %1 - Non-existing directory - Dossier inexistant + Non-existing directory + Dossier inexistant - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Le dossier '%1' n'existe pas. + Le dossier '%1' n'existe pas. Voulez-vous spécifier un dossier existant? - Missing permission - Erreur de droit d'accès + Missing permission + Erreur de droit d'accès - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Vous n'avez pas l'accès en écriture à '%1'. Voulez-vous indiquer un autre dossier? + Vous n'avez pas l'accès en écriture à '%1'. Voulez-vous indiquer un autre dossier? - Stop downloading - Arrêter le téléchargement + Stop downloading + Arrêter le téléchargement - - + + Gui::StdCmdPythonHelp - Tools - Outils + Tools + Outils - Python Modules - Modules Python + Python Modules + Modules Python - Opens a browser to show the Python modules - Ouvre un navigateur pour afficher les modules Python + Opens a browser to show the Python modules + Ouvre un navigateur pour afficher les modules Python - - + + Gui::TaskBoxAngle - Angle - Angle + Angle + Angle - - + + Gui::TaskBoxPosition - Position - Position + Position + Position - - + + Gui::TaskView::TaskAppearance - Display mode: - Mode d'affichage : + Display mode: + Mode d'affichage : - Plot mode: - Mode de tracé : + Plot mode: + Mode de tracé : - Point size: - Taille de point : + Point size: + Taille de point : - Line width: - Épaisseur de ligne : + Line width: + Épaisseur de ligne : - Transparency: - Transparence : + Transparency: + Transparence : - Appearance - Apparence + Appearance + Apparence - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Éditer + Edit + Éditer - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Apparence + Appearance + Apparence - ... - ... + ... + ... - edit selection - modifier la sélection + edit selection + modifier la sélection - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Appuyez sur le bouton gauche de la souris + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Anglais + English + Anglais - - + + Gui::TreeDockWidget - Tree view - Vue arborescente + Tree view + Vue arborescente - - + + Gui::TreeWidget - Create group... - Créer un groupe... + Create group... + Créer un groupe... - Create a group - Créer un groupe + Create a group + Créer un groupe - Group - Groupe + Group + Groupe - Rename - Renommer + Rename + Renommer - Rename object - Renommer un objet + Rename object + Renommer un objet - Labels & Attributes - Étiquettes & attributs + Labels & Attributes + Étiquettes & attributs - Application - Application + Application + Application - Finish editing - Terminer l'édition + Finish editing + Terminer l'édition - Finish editing object - Terminer l'édition de l'objet + Finish editing object + Terminer l'édition de l'objet - Activate document - Activer le document + Activate document + Activer le document - Activate document %1 - Activer document %1 + Activate document %1 + Activer document %1 - - + + Gui::View3DInventor - Export PDF - Exporter vers PDF + Export PDF + Exporter vers PDF - PDF file (*.pdf) - Fichier PDF (*.pdf) + PDF file (*.pdf) + Fichier PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Sélectionner l'atelier '%1' + Select the '%1' workbench + Sélectionner l'atelier '%1' - - + + Position - Form - Forme + Form + Forme - X: - X : + X: + X : - Y: - Y : + Y: + Y : - Z: - Z : + Z: + Z : - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Accrochage de grille + Grid Snap in + Accrochage de grille - - + + QDockWidget - Tree view - Vue arborescente + Tree view + Vue arborescente - Property view - Affichage des propriétés + Property view + Affichage des propriétés - Selection view - Afficher la sélection + Selection view + Afficher la sélection - Report view - Vue rapport + Report view + Vue rapport - Task View - Afficher les tâches + Task View + Afficher les tâches - Combo View - Vue combinée + Combo View + Vue combinée - Toolbox - Boîte à outils + Toolbox + Boîte à outils - Python console - Console Python + Python console + Console Python - Display properties - Propriétés d'affichage + Display properties + Propriétés d'affichage - - + + QObject - General - Général + General + Général - Display - Affichage + Display + Affichage - Unknown filetype - Type de fichier inconnu + Unknown filetype + Type de fichier inconnu - Cannot open unknown filetype: %1 - Impossible d'ouvrir un type de fichier inconnu : %1 + Cannot open unknown filetype: %1 + Impossible d'ouvrir un type de fichier inconnu : %1 - Cannot save to unknown filetype: %1 - Impossible de sauvegarder ce type de fichier inconnu : %1 + Cannot save to unknown filetype: %1 + Impossible de sauvegarder ce type de fichier inconnu : %1 - Workbench failure - Atelier défaillant + Workbench failure + Atelier défaillant - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Impossible de charger l'assistant Qt (%1) + Unable to launch Qt Assistant (%1) + Impossible de charger l'assistant Qt (%1) - Exception - Exception + Exception + Exception - Open document - Ouvrir un document + Open document + Ouvrir un document - Import file - Importer un fichier + Import file + Importer un fichier - Export file - Exporter un fichier + Export file + Exporter un fichier - Printing... - Impression... + Printing... + Impression... - Cannot load workbench - Impossible de charger l'atelier + Cannot load workbench + Impossible de charger l'atelier - A general error occurred while loading the workbench - Une erreur générale s'est produite lors du chargement de l'atelier + A general error occurred while loading the workbench + Une erreur générale s'est produite lors du chargement de l'atelier - File not found - Fichier introuvable + File not found + Fichier introuvable - Cannot open file %1 - Impossible d'ouvrir le fichier %1 + Cannot open file %1 + Impossible d'ouvrir le fichier %1 - Save views... - Enregistrer les vues... + Save views... + Enregistrer les vues... - Load views... - Charger les vues... + Load views... + Charger les vues... - Freeze view - Figer la vue + Freeze view + Figer la vue - Clear views - Effacer les vues + Clear views + Effacer les vues - Restore view &%1 - Restaurer la vue &%1 + Restore view &%1 + Restaurer la vue &%1 - Save frozen views - Enregistrer les vues figées + Save frozen views + Enregistrer les vues figées - Frozen views (*.cam) - Vues figées (*.cam) + Frozen views (*.cam) + Vues figées (*.cam) - Restore views - Restaurer les vues + Restore views + Restaurer les vues - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importer des vues enregistrées effacera les vues déjà stockées. Voulez-vous continuer? + Importer des vues enregistrées effacera les vues déjà stockées. Voulez-vous continuer? - Restore frozen views - Restaurer les vues figées + Restore frozen views + Restaurer les vues figées - Cannot open file '%1'. - Impossible d'ouvrir le fichier '%1'. + Cannot open file '%1'. + Impossible d'ouvrir le fichier '%1'. - Docked - Dockée + Docked + Dockée - Undocked - Non dockée + Undocked + Non dockée - Fullscreen - Plein écran + Fullscreen + Plein écran - files - fichiers + files + fichiers - Save picture - Enregistrer l'image + Save picture + Enregistrer l'image - New sub-group - Nouveau sous-groupe + New sub-group + Nouveau sous-groupe - Enter the name: - Entrer le nom : + Enter the name: + Entrer le nom : - New text item - Nouvel article texte + New text item + Nouvel article texte - Enter your text: - Saisir votre texte : + Enter your text: + Saisir votre texte : - New integer item - Nouvel article entier + New integer item + Nouvel article entier - Enter your number: - Saisir votre nombre : + Enter your number: + Saisir votre nombre : - New unsigned item - Nouvel article non signé + New unsigned item + Nouvel article non signé - New float item - Nouvel article flottant + New float item + Nouvel article flottant - New Boolean item - Nouvel article booléen + New Boolean item + Nouvel article booléen - Choose an item: - Choisir un article : + Choose an item: + Choisir un article : - Rename group - Renommer le groupe + Rename group + Renommer le groupe - The group '%1' cannot be renamed. - Le groupe '%1' ne peut pas être renommé. + The group '%1' cannot be renamed. + Le groupe '%1' ne peut pas être renommé. - Existing group - Groupe existant + Existing group + Groupe existant - The group '%1' already exists. - Le groupe '%1' existe déjà. + The group '%1' already exists. + Le groupe '%1' existe déjà. - Change value - Changer la valeur + Change value + Changer la valeur - Save document under new filename... - Enregistrer le document sous un nouveau nom… + Save document under new filename... + Enregistrer le document sous un nouveau nom… - Saving aborted - Sauvegarde abandonnée + Saving aborted + Sauvegarde abandonnée - Unsaved document - Document non sauvegardé + Unsaved document + Document non sauvegardé - Save document before close? - Enregistrer le document avant de fermer ? + Save document before close? + Enregistrer le document avant de fermer ? - Save Macro - Enregistrer la macro + Save Macro + Enregistrer la macro - Finish - Terminer + Finish + Terminer - Clear - Effacer + Clear + Effacer - Cancel - Annuler + Cancel + Annuler - Inner - Intérieur + Inner + Intérieur - Outer - Extérieur + Outer + Extérieur - No Browser - Pas de navigateur + No Browser + Pas de navigateur - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Impossible d'ouvrir votre navigateur. + Impossible d'ouvrir votre navigateur. Veuillez ouvrir une fenêtre de navigateur et saisir : http://localhost:%1. - No Server - Aucun serveur + No Server + Aucun serveur - Unable to start the server to port %1: %2. - Impossible de démarrer le serveur sur le port %1: %2. + Unable to start the server to port %1: %2. + Impossible de démarrer le serveur sur le port %1: %2. - Unable to open your system browser. - Impossible d'ouvrir le navigateur système. + Unable to open your system browser. + Impossible d'ouvrir le navigateur système. - Options... - Options... + Options... + Options... - Out of memory - Mémoire insuffisante + Out of memory + Mémoire insuffisante - Not enough memory available to display the data. - Mémoire insuffisante pour afficher les données. + Not enough memory available to display the data. + Mémoire insuffisante pour afficher les données. - Cannot find file %1 - Fichier %1 introuvable + Cannot find file %1 + Fichier %1 introuvable - Cannot find file %1 neither in %2 nor in %3 - Impossible de trouver le fichier %1 ni dans %2 ni dans %3 + Cannot find file %1 neither in %2 nor in %3 + Impossible de trouver le fichier %1 ni dans %2 ni dans %3 - Save %1 Document - Enregistrer le document %1 + Save %1 Document + Enregistrer le document %1 - %1 document (*.FCStd) - Document %1 (*.FCStd) + %1 document (*.FCStd) + Document %1 (*.FCStd) - Save As - Enregistrer sous + Save As + Enregistrer sous - %1 already exists. + %1 already exists. Do you want to replace it? - %1 existe déjà. + %1 existe déjà. Voulez-vous le remplacer ? - Document not closable - Impossible de fermer le document + Document not closable + Impossible de fermer le document - The document is not closable for the moment. - Impossible de fermer le document pour le moment. + The document is not closable for the moment. + Impossible de fermer le document pour le moment. - No OpenGL - Pas d'OpenGL + No OpenGL + Pas d'OpenGL - This system does not support OpenGL - Ce système ne prend pas en charge OpenGL + This system does not support OpenGL + Ce système ne prend pas en charge OpenGL - Help - Aide + Help + Aide - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Impossible de charger la documentation. Qt 4.4 ou supérieur est requis. + Impossible de charger la documentation. Qt 4.4 ou supérieur est requis. - %1 Help - % 1 Aide + %1 Help + % 1 Aide - Exporting PDF... - Exportation PDF ... + Exporting PDF... + Exportation PDF ... - Wrong selection - Sélection invalide + Wrong selection + Sélection invalide - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Un seul objet sélectionné. Veuillez sélectionner deux objets. Soyez attentif à l'endroit où vous cliquez. + Un seul objet sélectionné. Veuillez sélectionner deux objets. Soyez attentif à l'endroit où vous cliquez. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Veuillez sélectionner deux objets. Soyez attentif à l'endroit où vous cliquez. + Veuillez sélectionner deux objets. Soyez attentif à l'endroit où vous cliquez. - New boolean item - Nouvel élément booléen + New boolean item + Nouvel élément booléen - Navigation styles - Styles de navigation + Navigation styles + Styles de navigation - %1 navigation - %1 de navigation + %1 navigation + %1 de navigation - Move annotation - Déplacer l'annotation + Move annotation + Déplacer l'annotation - Transform - Transformer + Transform + Transformer - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - Le document est en mode édition et ne peut donc être fermé pour le moment. Vous devez soit terminer ou annuler l'édition dans le panneau des Tâches. + Le document est en mode édition et ne peut donc être fermé pour le moment. Vous devez soit terminer ou annuler l'édition dans le panneau des Tâches. - - + + + StdBoxSelection + + Standard-View + Vue standard + + + Box selection + + + + StdCmdAbout - Help - Aide + Help + Aide - &About %1 - &À propos de %1 + &About %1 + &À propos de %1 - About %1 - À propos de %1 + About %1 + À propos de %1 - - + + StdCmdAboutQt - Help - Aide + Help + Aide - About &Qt - À propos de &Qt + About &Qt + À propos de &Qt - About Qt - À propos de Qt + About Qt + À propos de Qt - - + + StdCmdActivateNextWindow - Window - Fenêtre + Window + Fenêtre - Ne&xt - Su&ivante + Ne&xt + Su&ivante - Activate next window - Activer la fenêtre suivante + Activate next window + Activer la fenêtre suivante - - + + StdCmdActivatePrevWindow - Window - Fenêtre + Window + Fenêtre - Pre&vious - Pré&cédente + Pre&vious + Pré&cédente - Activate previous window - Activer la fenêtre précédente + Activate previous window + Activer la fenêtre précédente - - + + + StdCmdAlignment + + Edit + Éditer + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Fenêtre + Window + Fenêtre - Arrange &Icons - Organiser les &Icônes + Arrange &Icons + Organiser les &Icônes - Arrange Icons - Organiser les icônes + Arrange Icons + Organiser les icônes - - + + StdCmdAxisCross - Standard-View - Vue standard + Standard-View + Vue standard - Toggle axis cross - Afficher les axes de coordonnées + Toggle axis cross + Afficher les axes de coordonnées - - + + StdCmdCascadeWindows - Window - Fenêtre + Window + Fenêtre - &Cascade - &Fenêtres en cascade + &Cascade + &Fenêtres en cascade - Tile pragmatic - Organisation pragmatique + Tile pragmatic + Organisation pragmatique - - + + StdCmdCloseActiveWindow - Window - Fenêtre + Window + Fenêtre - Cl&ose - Fe&rmer + Cl&ose + Fe&rmer - Close active window - Fermer la fenêtre active + Close active window + Fermer la fenêtre active - - + + StdCmdCloseAllWindows - Window - Fenêtre + Window + Fenêtre - Close Al&l - Fermer &tout + Close Al&l + Fermer &tout - Close all windows - Fermer toutes les fenêtres + Close all windows + Fermer toutes les fenêtres - - + + StdCmdCommandLine - Tools - Outils + Tools + Outils - Start command &line... - Démarrer la &ligne de commande... + Start command &line... + Démarrer la &ligne de commande... - Opens the command line in the console - Ouvre la ligne de commande dans la console + Opens the command line in the console + Ouvre la ligne de commande dans la console - - + + StdCmdCopy - Edit - Éditer + Edit + Éditer - C&opy - C&opier + C&opy + C&opier - Copy operation - Opération de copie + Copy operation + Opération de copie - - + + StdCmdCut - Edit - Éditer + Edit + Éditer - &Cut - &Couper + &Cut + &Couper - Cut out - Découpe + Cut out + Découpe - - + + StdCmdDDuplicateSelection - Edit - Éditer + Edit + Éditer - Duplicate selection - Dupliquer la sélection + Duplicate selection + Dupliquer la sélection - Put duplicates of the selected objects to the active document - Mettre la duplication des objets sélectionnés dans le document actif + Put duplicates of the selected objects to the active document + Mettre la duplication des objets sélectionnés dans le document actif - - + + StdCmdDelete - Edit - Éditer + Edit + Éditer - &Delete - &Effacer + &Delete + &Effacer - Deletes the selected objects - Efface les objets sélectionnés + Deletes the selected objects + Efface les objets sélectionnés - - + + StdCmdDemoMode - Standard-View - Vue standard + Standard-View + Vue standard - View turntable... - Vue en rotation... + View turntable... + Vue en rotation... - View turntable - Vue en rotation + View turntable + Vue en rotation - - + + StdCmdDlgCustomize - Tools - Outils + Tools + Outils - Cu&stomize... - Per&sonnaliser... + Cu&stomize... + Per&sonnaliser... - Customize toolbars and command bars - Personnaliser les barres d'outils et de commandes + Customize toolbars and command bars + Personnaliser les barres d'outils et de commandes - - + + StdCmdDlgMacroExecute - Macros ... - Macros ... + Macros ... + Macros ... - Opens a dialog to let you execute a recorded macro - Ouvre une boite de dialogue pour exécuter une macro enregistrée + Opens a dialog to let you execute a recorded macro + Ouvre une boite de dialogue pour exécuter une macro enregistrée - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Lancer la macro + Execute macro + Lancer la macro - Execute the macro in the editor - Exécutez la macro dans l'éditeur + Execute the macro in the editor + Exécutez la macro dans l'éditeur - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Enregistrement de macro ... + &Macro recording ... + &Enregistrement de macro ... - Opens a dialog to record a macro - Ouvre une boite de dialogue pour enregistrer une macro + Opens a dialog to record a macro + Ouvre une boite de dialogue pour enregistrer une macro - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Outils + Tools + Outils - E&dit parameters ... - É&diter paramètres ... + E&dit parameters ... + É&diter paramètres ... - Opens a Dialog to edit the parameters - Ouvre une boite de dialogue pour éditer les paramètres + Opens a Dialog to edit the parameters + Ouvre une boite de dialogue pour éditer les paramètres - - + + StdCmdDlgPreferences - Tools - Outils + Tools + Outils - &Preferences ... - &Préférences ... + &Preferences ... + &Préférences ... - Opens a Dialog to edit the preferences - Ouvre une boite de dialogue pour éditer les préférences + Opens a Dialog to edit the preferences + Ouvre une boite de dialogue pour éditer les préférences - - + + StdCmdDockViewMenu - View - Vue + View + Vue - Vie&ws - Vu&es + Vie&ws + Vu&es - Toggles this window - Bascule cette fenêtre + Toggles this window + Bascule cette fenêtre - - + + StdCmdDrawStyle - Standard-View - Vue standard + Standard-View + Vue standard - Draw style - Style de représentation + Draw style + Style de représentation - - + + + StdCmdDuplicateSelection + + Edit + Éditer + + + Duplicate selection + Dupliquer la sélection + + + Put duplicates of the selected objects to the active document + Mettre la duplication des objets sélectionnés dans le document actif + + + + StdCmdEdit + + Edit + Éditer + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Fichier + File + Fichier - &Export... - &Exporter... + &Export... + &Exporter... - Export an object in the active document - Exporter un fichier dans le document actif + Export an object in the active document + Exporter un fichier dans le document actif - Supported formats - Formats supportés + Supported formats + Formats supportés - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Outils + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Fichier + File + Fichier - &Recompute - &Recalculer + &Recompute + &Recalculer - Recompute feature or document - Recalculer la fonction ou le document + Recompute feature or document + Recalculer la fonction ou le document - - + + StdCmdFreeCADWebsite - Help - Aide + Help + Aide - FreeCAD Website - Site Web de FreeCAD + FreeCAD Website + Site Web de FreeCAD - The FreeCAD website - Le site web de FreeCAD + The FreeCAD website + Le site web de FreeCAD - - + + StdCmdFreezeViews - Standard-View - Vue standard + Standard-View + Vue standard - Freeze display - Figer l'affichage + Freeze display + Figer l'affichage - Freezes the current view position - Figer la position actuelle de la vue + Freezes the current view position + Figer la position actuelle de la vue - - + + StdCmdHideObjects - Standard-View - Vue standard + Standard-View + Vue standard - Hide all objects - Masquer tous les objets + Hide all objects + Masquer tous les objets - Hide all objects in the document - Masquer tous les objets dans le document + Hide all objects in the document + Masquer tous les objets dans le document - - + + StdCmdHideSelection - Standard-View - Vue standard + Standard-View + Vue standard - Hide selection - Masquer la sélection + Hide selection + Masquer la sélection - Hide all selected objects - Masquer tous les objets sélectionnés + Hide all selected objects + Masquer tous les objets sélectionnés - - + + StdCmdImport - File - Fichier + File + Fichier - &Import... - &Importer... + &Import... + &Importer... - Import a file in the active document - Importer un fichier dans le document actif + Import a file in the active document + Importer un fichier dans le document actif - Supported formats - Formats supportés + Supported formats + Formats supportés - All files (*.*) - Tous les fichiers (*.*) + All files (*.*) + Tous les fichiers (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Déboguer la macro + Debug macro + Déboguer la macro - Start debugging of macro - Démarrer le débogage de macro + Start debugging of macro + Démarrer le débogage de macro - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Passer outre + Step over + Passer outre - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Arrêter le débogage + Stop debugging + Arrêter le débogage - Stop debugging of macro - Arrêter le débogage de macro + Stop debugging of macro + Arrêter le débogage de macro - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - Arrê&ter l'enregistrement de la macro + S&top macro recording + Arrê&ter l'enregistrement de la macro - Stop the macro recording session - Arrêter le fonctionnement de la session d'enregistrement de macro + Stop the macro recording session + Arrêter le fonctionnement de la session d'enregistrement de macro - - + + StdCmdMeasureDistance - View - Vue + View + Vue - Measure distance - Mesurer une distance + Measure distance + Mesurer une distance - - + + StdCmdMeasurementSimple - Tools - Outils + Tools + Outils - Mesure distance - Mesurer la distance + Mesure distance + Mesurer la distance - Measures distance between two selected objects - Mesure la distance entre deux objets sélectionnés + Measures distance between two selected objects + Mesure la distance entre deux objets sélectionnés - - + + Measure distance + Mesurer une distance + + + StdCmdMergeProjects - File - Fichier + File + Fichier - Merge project... - Fusionner un projet... + Merge project... + Fusionner un projet... - Merge project - Fusionner un projet + Merge project + Fusionner un projet - %1 document (*.fcstd) - document %1 (*.fcstd) + %1 document (*.fcstd) + document %1 (*.fcstd) - Cannot merge project with itself. - Impossible de fusionner le projet avec lui-même. + Cannot merge project with itself. + Impossible de fusionner le projet avec lui-même. - - + + StdCmdNew - File - Fichier + File + Fichier - &New - &Nouveau + &New + &Nouveau - Create a new empty document - Créer un nouveau document vide + Create a new empty document + Créer un nouveau document vide - - + + StdCmdOnlineHelp - Help - Aide + Help + Aide - Show help to the application - Montrer l'aide dans l'application + Show help to the application + Montrer l'aide dans l'application - - + + StdCmdOnlineHelpPython - Help - Aide + Help + Aide - Python Manuals - Manuels Python + Python Manuals + Manuels Python - Show the Python documentation - Voir la documentation Python + Show the Python documentation + Voir la documentation Python - - + + StdCmdOnlineHelpWebsite - Help - Aide + Help + Aide - Help Website - Site Web d'aide + Help Website + Site Web d'aide - The website where the help is maintained - Le site web où l'aide est maintenue + The website where the help is maintained + Le site web où l'aide est maintenue - - + + StdCmdOpen - File - Fichier + File + Fichier - &Open... - &Ouvrir... + &Open... + &Ouvrir... - Open a document or import files - Ouvrir un document ou importer des fichiers + Open a document or import files + Ouvrir un document ou importer des fichiers - Supported formats - Formats supportés + Supported formats + Formats supportés - All files (*.*) - Tous les fichiers (*.*) + All files (*.*) + Tous les fichiers (*.*) - - + + StdCmdPaste - Edit - Éditer + Edit + Éditer - &Paste - &Coller + &Paste + &Coller - Paste operation - Opération de collage + Paste operation + Opération de collage - - + + StdCmdPlacement - Edit - Éditer + Edit + Éditer - Placement... - Positionnement... + Placement... + Positionnement... - Place the selected objects - Positionner les objets sélectionnés + Place the selected objects + Positionner les objets sélectionnés - - + + StdCmdPrint - File - Fichier + File + Fichier - &Print... - &Imprimer... + &Print... + &Imprimer... - Print the document - Imprimer le document + Print the document + Imprimer le document - - + + StdCmdPrintPdf - File - Fichier + File + Fichier - &Export PDF... - &Exporter au format PDF... + &Export PDF... + &Exporter au format PDF... - Export the document as PDF - Exporter le document au format PDF + Export the document as PDF + Exporter le document au format PDF - - + + StdCmdPrintPreview - File - Fichier + File + Fichier - &Print preview... - &Aperçu avant impression... + &Print preview... + &Aperçu avant impression... - Print the document - Imprimer le document + Print the document + Imprimer le document - Print preview - Aperçu avant impression + Print preview + Aperçu avant impression - - + + StdCmdProjectInfo - File - Fichier + File + Fichier - Project i&nformation... - I&nformations sur le projet ... + Project i&nformation... + I&nformations sur le projet ... - Show details of the currently active project - Afficher les détails du projet actif + Show details of the currently active project + Afficher les détails du projet actif - - + + StdCmdProjectUtil - Tools - Outils + Tools + Outils - Project utility... - Utilitaire de projet... + Project utility... + Utilitaire de projet... - Utility to extract or create project files - Utilitaire pour extraire ou créer des fichiers de projet + Utility to extract or create project files + Utilitaire pour extraire ou créer des fichiers de projet - - + + StdCmdPythonWebsite - Help - Aide + Help + Aide - Python Website - Site Web Python + Python Website + Site Web Python - The official Python website - Le site officiel de Python + The official Python website + Le site officiel de Python - - + + StdCmdQuit - File - Fichier + File + Fichier - E&xit - &Quitter + E&xit + &Quitter - Quits the application - Quitte l'application + Quits the application + Quitte l'application - - + + StdCmdRandomColor - File - Fichier + File + Fichier - Random color - Couleur aléatoire + Random color + Couleur aléatoire - - + + StdCmdRecentFiles - File - Fichier + File + Fichier - Recent files - Fichiers récents + Recent files + Fichiers récents - Recent file list - Liste des fichiers récents + Recent file list + Liste des fichiers récents - - + + StdCmdRedo - Edit - Éditer + Edit + Éditer - &Redo - &Rétablir + &Redo + &Rétablir - Redoes a previously undone action - Rétablit une action précédemment annulée + Redoes a previously undone action + Rétablit une action précédemment annulée - - + + StdCmdRefresh - Edit - Éditer + Edit + Éditer - &Refresh - &Rafraîchir + &Refresh + &Rafraîchir - Recomputes the current active document - Recalculer le document actif + Recomputes the current active document + Recalculer le document actif - - + + StdCmdSave - File - Fichier + File + Fichier - &Save - &Enregistrer + &Save + &Enregistrer - Save the active document - Enregistrer le document actif + Save the active document + Enregistrer le document actif - - + + StdCmdSaveAs - File - Fichier + File + Fichier - Save &As... - Enregistrer &sous… + Save &As... + Enregistrer &sous… - Save the active document under a new file name - Enregistrer le document actif sous un nouveau nom + Save the active document under a new file name + Enregistrer le document actif sous un nouveau nom - - + + StdCmdSceneInspector - Tools - Outils + Tools + Outils - Scene inspector... - Inspecteur de scène... + Scene inspector... + Inspecteur de scène... - Scene inspector - Inspecteur de scène + Scene inspector + Inspecteur de scène - - + + StdCmdSelectAll - Edit - Éditer + Edit + Éditer - Select &All - &Tout sélectionner + Select &All + &Tout sélectionner - Select all - Tout sélectionner + Select all + Tout sélectionner - - + + StdCmdSetAppearance - Standard-View - Vue standard + Standard-View + Vue standard - Appearance... - Apparence... + Appearance... + Apparence... - Sets the display properties of the selected object - Définit les propriétés d'affichage de l'objet sélectionné + Sets the display properties of the selected object + Définit les propriétés d'affichage de l'objet sélectionné - - + + StdCmdShowObjects - Standard-View - Vue standard + Standard-View + Vue standard - Show all objects - Afficher tous les objets + Show all objects + Afficher tous les objets - Show all objects in the document - Afficher tous les objets dans le document + Show all objects in the document + Afficher tous les objets dans le document - - + + StdCmdShowSelection - Standard-View - Vue standard + Standard-View + Vue standard - Show selection - Afficher la sélection + Show selection + Afficher la sélection - Show all selected objects - Afficher tous les objets sélectionnés + Show all selected objects + Afficher tous les objets sélectionnés - - + + StdCmdStatusBar - View - Vue + View + Vue - Status bar - Barre d'état + Status bar + Barre d'état - Toggles the status bar - Bascule l'affichage de la barre d'état + Toggles the status bar + Bascule l'affichage de la barre d'état - - + + StdCmdTextureMapping - Tools - Outils + Tools + Outils - Texture mapping... - Mappage de texture... + Texture mapping... + Mappage de texture... - Texture mapping - Mappage de texture + Texture mapping + Mappage de texture - - + + StdCmdTileWindows - Window - Fenêtre + Window + Fenêtre - &Tile - &Mosaïque + &Tile + &Mosaïque - Tile the windows - Disposer les fenêtres en mosaïque + Tile the windows + Disposer les fenêtres en mosaïque - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Basculer le point d'arrêt + Toggle breakpoint + Basculer le point d'arrêt - - + + StdCmdToggleClipPlane - Standard-View - Vue standard + Standard-View + Vue standard - Clipping plane - Plan de coupe + Clipping plane + Plan de coupe - Toggles clipping plane for active view - Bascule le plan de coupe pour la vue active + Toggles clipping plane for active view + Bascule le plan de coupe pour la vue active - - + + StdCmdToggleNavigation - Standard-View - Vue standard + Standard-View + Vue standard - Toggle navigation/Edit mode - Basculer en mode navigation/édition + Toggle navigation/Edit mode + Basculer en mode navigation/édition - Toggle between navigation and edit mode - Basculer entre le mode navigation et le mode d'édition + Toggle between navigation and edit mode + Basculer entre le mode navigation et le mode d'édition - - + + StdCmdToggleObjects - Standard-View - Vue standard + Standard-View + Vue standard - Toggle all objects - Basculer tous les objets + Toggle all objects + Basculer tous les objets - Toggles visibility of all objects in the active document - Bascule la visibilité de tous les objets dans le document actif + Toggles visibility of all objects in the active document + Bascule la visibilité de tous les objets dans le document actif - - + + StdCmdToggleSelectability - Standard-View - Vue standard + Standard-View + Vue standard - Toggle selectability - Basculer la sélectivité + Toggle selectability + Basculer la sélectivité - Toggles the property of the objects to get selected in the 3D-View - Basculer la propriété des objets à sélectionner dans la vue 3D + Toggles the property of the objects to get selected in the 3D-View + Basculer la propriété des objets à sélectionner dans la vue 3D - - + + StdCmdToggleVisibility - Standard-View - Vue standard + Standard-View + Vue standard - Toggle visibility - Basculer la visibilité + Toggle visibility + Basculer la visibilité - Toggles visibility - Bascule la visibilité + Toggles visibility + Bascule la visibilité - - + + StdCmdToolBarMenu - View - Vue + View + Vue - Tool&bars - Barres d'&outils + Tool&bars + Barres d'&outils - Toggles this window - Bascule cette fenêtre + Toggles this window + Bascule cette fenêtre - - + + StdCmdTransform - Edit - Éditer + Edit + Éditer - Transform... - Transformer... + Transform... + Transformer... - Transform the geometry of selected objects - Transformer la géométrie des objets sélectionnés + Transform the geometry of selected objects + Transformer la géométrie des objets sélectionnés - - + + StdCmdTreeSelection - View - Vue + View + Vue - Go to selection - Aller à la sélection + Go to selection + Aller à la sélection - Scroll to first selected item - Défiler jusqu'au premier élément sélectionné + Scroll to first selected item + Défiler jusqu'au premier élément sélectionné - - + + StdCmdUndo - Edit - Éditer + Edit + Éditer - &Undo - &Annuler + &Undo + &Annuler - Undo exactly one action - Annuler exactement une action + Undo exactly one action + Annuler exactement une action - - + + StdCmdUserInterface - View - Vue + View + Vue - Dock views - Ancrer les vues + Dock views + Ancrer les vues - Dock all top-level views - Ancrer toutes les vues de premier niveau + Dock all top-level views + Ancrer toutes les vues de premier niveau - - + + StdCmdViewAxo - Standard-View - Vue standard + Standard-View + Vue standard - Axometric - Axonométrique + Axometric + Axonométrique - Set to axometric view - Passer en vue axonométrique + Set to axometric view + Passer en vue axonométrique - - + + StdCmdViewBottom - Standard-View - Vue standard + Standard-View + Vue standard - Bottom - Dessous + Bottom + Dessous - Set to bottom view - Afficher la vue de dessous + Set to bottom view + Afficher la vue de dessous - - + + StdCmdViewCreate - Standard-View - Vue standard + Standard-View + Vue standard - Create new view - Créer une nouvelle vue + Create new view + Créer une nouvelle vue - Creates a new view window for the active document - Créez une nouvelle fenêtre de vue pour le document actif + Creates a new view window for the active document + Créez une nouvelle fenêtre de vue pour le document actif - - + + StdCmdViewExample1 - Standard-View - Vue standard + Standard-View + Vue standard - Inventor example #1 - Exemple Inventor #1 + Inventor example #1 + Exemple Inventor #1 - Shows a 3D texture with manipulator - Affiche une texture 3D avec manipulation + Shows a 3D texture with manipulator + Affiche une texture 3D avec manipulation - - + + StdCmdViewExample2 - Standard-View - Vue standard + Standard-View + Vue standard - Inventor example #2 - Exemple Inventor #2 + Inventor example #2 + Exemple Inventor #2 - Shows spheres and drag-lights - Affiche des sphères et des lumières déplaçables + Shows spheres and drag-lights + Affiche des sphères et des lumières déplaçables - - + + StdCmdViewExample3 - Standard-View - Vue standard + Standard-View + Vue standard - Inventor example #3 - Exemple Inventor #3 + Inventor example #3 + Exemple Inventor #3 - Shows a animated texture - Affiche une texture animée + Shows a animated texture + Affiche une texture animée - - + + StdCmdViewFitAll - Standard-View - Vue standard + Standard-View + Vue standard - Fit all - Tout afficher + Fit all + Tout afficher - Fits the whole content on the screen - Affiche l'ensemble du contenu à l'écran + Fits the whole content on the screen + Affiche l'ensemble du contenu à l'écran - - + + StdCmdViewFitSelection - Standard-View - Vue standard + Standard-View + Vue standard - Fit selection - Affiche la sélection + Fit selection + Affiche la sélection - Fits the selected content on the screen - Affiche le contenu sélectionné à l'écran + Fits the selected content on the screen + Affiche le contenu sélectionné à l'écran - - + + StdCmdViewFront - Standard-View - Vue standard + Standard-View + Vue standard - Front - Face + Front + Face - Set to front view - Afficher la vue de face + Set to front view + Afficher la vue de face - - + + StdCmdViewIvIssueCamPos - Standard-View - Vue standard + Standard-View + Vue standard - Issue camera position - Récupérer la position de la caméra + Issue camera position + Récupérer la position de la caméra - Issue the camera position to the console and to a macro, to easily recall this position - Récupérer la position de la caméra dans la console et dans une macro, pour réutiliser facilement cette position + Issue the camera position to the console and to a macro, to easily recall this position + Récupérer la position de la caméra dans la console et dans une macro, pour réutiliser facilement cette position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Vue standard + Standard-View + Vue standard - Stereo Interleaved Columns - Colonnes stéréo entrelacées + Stereo Interleaved Columns + Colonnes stéréo entrelacées - Switch stereo viewing to Interleaved Columns - Basculer la vision stéréo vers la technique des colonnes entrelacées + Switch stereo viewing to Interleaved Columns + Basculer la vision stéréo vers la technique des colonnes entrelacées - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Vue standard + Standard-View + Vue standard - Stereo Interleaved Rows - Lignes stéréo entrelacées + Stereo Interleaved Rows + Lignes stéréo entrelacées - Switch stereo viewing to Interleaved Rows - Basculer la vision stéréo vers la technique des ligne entrelacées + Switch stereo viewing to Interleaved Rows + Basculer la vision stéréo vers la technique des ligne entrelacées - - + + StdCmdViewIvStereoOff - Standard-View - Vue standard + Standard-View + Vue standard - Stereo Off - Désactiver la stéréo + Stereo Off + Désactiver la stéréo - Switch stereo viewing off - Désactiver la vision stéréo + Switch stereo viewing off + Désactiver la vision stéréo - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Vue standard + Standard-View + Vue standard - Stereo quad buffer - Tampon stéréo quadruple + Stereo quad buffer + Tampon stéréo quadruple - Switch stereo viewing to quad buffer - Basculer la vision stéreo vers la technique de tampon quadruple + Switch stereo viewing to quad buffer + Basculer la vision stéreo vers la technique de tampon quadruple - - + + StdCmdViewIvStereoRedGreen - Standard-View - Vue standard + Standard-View + Vue standard - Stereo red/green - Stéréo rouge/vert + Stereo red/green + Stéréo rouge/vert - Switch stereo viewing to red/green - Basculer la vue stéréo vers la technique anaglyphique rouge/vert + Switch stereo viewing to red/green + Basculer la vue stéréo vers la technique anaglyphique rouge/vert - - + + StdCmdViewLeft - Standard-View - Vue standard + Standard-View + Vue standard - Left - Gauche + Left + Gauche - Set to left view - Afficher la vue de gauche + Set to left view + Afficher la vue de gauche - - + + StdCmdViewRear - Standard-View - Vue standard + Standard-View + Vue standard - Rear - Arrière + Rear + Arrière - Set to rear view - Afficher la vue arrière + Set to rear view + Afficher la vue arrière - - + + StdCmdViewRight - Standard-View - Vue standard + Standard-View + Vue standard - Right - Droite + Right + Droite - Set to right view - Afficher la vue de droite + Set to right view + Afficher la vue de droite - - + + + StdCmdViewRotateLeft + + Standard-View + Vue standard + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Vue standard + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Vue standard + Standard-View + Vue standard - Top - Dessus + Top + Dessus - Set to top view - Afficher la vue de dessus + Set to top view + Afficher la vue de dessus - - + + StdCmdWhatsThis - Help - Aide + Help + Aide - &What's This? - &Qu'est-ce que c'est ? + &What's This? + &Qu'est-ce que c'est ? - What's This - Qu'est-ce que c'est + What's This + Qu'est-ce que c'est - - + + StdCmdWindows - Window - Fenêtre + Window + Fenêtre - &Windows... - &Fenêtres... + &Windows... + &Fenêtres... - Windows list - Liste des fenêtres + Windows list + Liste des fenêtres - - + + StdCmdWindowsMenu - Window - Fenêtre + Window + Fenêtre - Activates this window - Active cette fenêtre + Activates this window + Active cette fenêtre - - + + StdCmdWorkbench - View - Vue + View + Vue - Workbench - Atelier + Workbench + Atelier - Switch between workbenches - Basculer entre les ateliers + Switch between workbenches + Basculer entre les ateliers - - + + StdOrthographicCamera - Standard-View - Vue standard + Standard-View + Vue standard - Orthographic view - Vue orthographique + Orthographic view + Vue orthographique - Switches to orthographic view mode - Bascule vers le mode de vue orthographique + Switches to orthographic view mode + Bascule vers le mode de vue orthographique - - + + StdPerspectiveCamera - Standard-View - Vue standard + Standard-View + Vue standard - Perspective view - Vue en perspective + Perspective view + Vue en perspective - Switches to perspective view mode - Bascule en mode de vue perspective + Switches to perspective view mode + Bascule en mode de vue perspective - - + + StdViewBoxZoom - Standard-View - Vue standard + Standard-View + Vue standard - Box zoom - Zoom de sélection + Box zoom + Zoom de sélection - - + + StdViewDockUndockFullscreen - Standard-View - Vue standard + Standard-View + Vue standard - Document window - Fenêtre de document + Document window + Fenêtre de document - Display the active view either in fullscreen, in undocked or docked mode - Afficher la vue active soit en mode plein écran, non ancrée ou ancrée + Display the active view either in fullscreen, in undocked or docked mode + Afficher la vue active soit en mode plein écran, non ancrée ou ancrée - - + + StdViewScreenShot - Standard-View - Vue standard + Standard-View + Vue standard - Save picture... - Enregistrer l'image… + Save picture... + Enregistrer l'image… - Creates a screenshot of the active view - Crée une capture d'écran de la vue active + Creates a screenshot of the active view + Crée une capture d'écran de la vue active - - + + StdViewZoomIn - Standard-View - Vue standard + Standard-View + Vue standard - Zoom In - Zoom avant + Zoom In + Zoom avant - - + + StdViewZoomOut - Standard-View - Vue standard + Standard-View + Vue standard - Zoom Out - Zoom arrière + Zoom Out + Zoom arrière - - + + Std_DrawStyle - As is - Comme actuellement + As is + Comme actuellement - Normal mode - Mode normal + Normal mode + Mode normal - Wireframe - Filaire + Wireframe + Filaire - Wireframe mode - Mode filaire + Wireframe mode + Mode filaire - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Fichier + &File + &Fichier - &Edit - &Édition + &Edit + &Édition - Standard views - Vues standards + Standard views + Vues standards - &Stereo - &Stéréo + &Stereo + &Stéréo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Visibilité + Visibility + Visibilité - &View - &Affichage + &View + &Affichage - &Tools - &Outils + &Tools + &Outils - &Macro - &Macro + &Macro + &Macro - &Windows - &Fenêtre + &Windows + &Fenêtre - &On-line help - Aide en &ligne + &On-line help + Aide en &ligne - &Help - &Aide + &Help + &Aide - File - Fichier + File + Fichier - Macro - Macro + Macro + Macro - View - Vue + View + Vue - Special Ops - Opérations spéciales + Special Ops + Opérations spéciales - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">Panneau de tâches iis</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Créé pour Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">Panneau de tâches iis</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Créé pour Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Choisir le style du panneau de tâches + Choose the style of the Task Panel + Choisir le style du panneau de tâches - Default - Défaut + Default + Défaut - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_hr.ts b/src/Gui/Language/FreeCAD_hr.ts index 11e5c702b..9f48d1ef8 100644 --- a/src/Gui/Language/FreeCAD_hr.ts +++ b/src/Gui/Language/FreeCAD_hr.ts @@ -1,5477 +1,5895 @@ - - + + Angle - Form - Obrazac + Form + Obrazac - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Kut Snap + Angle Snap + Kut Snap - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - nijedan + none + nijedan - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Dodaj + + + Remove + Ukloniti + + + Move up + Pomakni gore + + + Move down + Pomakni dolje + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Pritisnite lijevu tipku miÅ¡a + Press left mouse button + Pritisnite lijevu tipku miÅ¡a - Press SHIFT and middle mouse button - Pritisnite tipku SHIFT i srednju tipku miÅ¡a + Press SHIFT and middle mouse button + Pritisnite tipku SHIFT i srednju tipku miÅ¡a - Press middle mouse button - Pritisnite srednju tipku miÅ¡a + Press middle mouse button + Pritisnite srednju tipku miÅ¡a - Scroll middle mouse button - Kotrljajte kotaÄić na miÅ¡u + Scroll middle mouse button + Kotrljajte kotaÄić na miÅ¡u - - + + Gui::CADNavigationStyle - Press left mouse button - Pritisnite lijevu tipku miÅ¡a + Press left mouse button + Pritisnite lijevu tipku miÅ¡a - Press middle mouse button - Pritisnite srednju tipku miÅ¡a + Press middle mouse button + Pritisnite srednju tipku miÅ¡a - Press left and middle mouse button - Pritisnite lijevu i srednju tipku miÅ¡a + Press left and middle mouse button + Pritisnite lijevu i srednju tipku miÅ¡a - Scroll middle mouse button - Kotrljajte kotaÄić na miÅ¡u + Scroll middle mouse button + Kotrljajte kotaÄić na miÅ¡u - - + + Gui::Command - Standard - Standard + Standard + Standard - - + + Gui::ContainerDialog - &OK - &U redu + &OK + &U redu - &Cancel - &Otkaži + &Cancel + &Otkaži - - + + Gui::ControlSingleton - Task panel - PloÄa zadataka + Task panel + PloÄa zadataka - - + + Gui::Dialog::AboutApplication - About - O + About + O - Revision number - Ispravljanje broja + Revision number + Ispravljanje broja - Version - Verzija + Version + Verzija - OK - U redu + OK + U redu - - + + - Release date - Datum isporuke + Release date + Datum isporuke - Platform - Platforma + Platform + Platforma - License... - Licenca ... + License... + Licenca ... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Tipka %1 + Button %1 + Tipka %1 - Out Of Range - Izvan dometa + Out Of Range + Izvan dometa - - + + Gui::Dialog::CommandModel - Commands - Naredbe + Commands + Naredbe - - + + Gui::Dialog::DemoMode - View Turntable - Prikaži Turntable + View Turntable + Prikaži Turntable - Speed - Brzina + Speed + Brzina - Maximum - Maksimum + Maximum + Maksimum - Minimum - Minimum + Minimum + Minimum - Fullscreen - Preko cijelog ekrana + Fullscreen + Preko cijelog ekrana - Enable timer - Omogući timer + Enable timer + Omogući timer - s - s + s + s - Angle - Kut + Angle + Kut + + + 90° + 90 ° + + + -90° + -90 ° - 90° - 90 ° + Play + Pokreni - -90° - -90 ° + Stop + Stop - Play - Pokreni + Close + Zatvori - - Stop - Stop - - - Close - Zatvori - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Odaberite Prozor + Choose Window + Odaberite Prozor - &Activate - &amp; Aktiviraj + &Activate + &amp; Aktiviraj - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Otkaži + &Cancel + &Otkaži - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Windows + Windows + Windows - - + + Gui::Dialog::DlgAuthorization - Authorization - Punomoć + Authorization + Punomoć - &OK - &U redu + &OK + &U redu - &Cancel - &Otkaži + &Cancel + &Otkaži - Password: - Lozinka: + Password: + Lozinka: - User name: - KorisniÄko ime: + User name: + KorisniÄko ime: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Odaberite Iconu + Choose Icon + Odaberite Iconu - OK - U redu + OK + U redu - Cancel - Otkazati + Cancel + Otkazati - Add icons... - Dodaj ikone ... + Add icons... + Dodaj ikone ... - - + + Gui::Dialog::DlgCustomActions - Macros - Makronaredbe + Macros + Makronaredbe - Setup Custom Macros - Postavljanje uobiÄajene makronaredbe + Setup Custom Macros + Postavljanje uobiÄajene makronaredbe - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Pixmap + Pixmap + Pixmap - Accelerator: - Ubrzanje. + Accelerator: + Ubrzanje. - What's this: - Å to je ovo: + What's this: + Å to je ovo: - Status text: - Status teksta: + Status text: + Status teksta: - Tool tip: - Alat za savjet: + Tool tip: + Alat za savjet: - Menu text: - Izbornik teksta: + Menu text: + Izbornik teksta: - Add - Dodaj + Add + Dodaj - Remove - Ukloniti + Remove + Ukloniti - Replace - Zamijeniti + Replace + Zamijeniti - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikone + Icons + Ikone - Macros - Makronaredbe + Macros + Makronaredbe - No macro - Nema makro + No macro + Nema makro - No macros found. - Nije pronaÄ‘ena makronaredba. + No macros found. + Nije pronaÄ‘ena makronaredba. - Macro not found - Makro nije pronaÄ‘en + Macro not found + Makro nije pronaÄ‘en - Sorry, couldn't find macro file '%1'. - Nažalost, ne mogu naći makro datoteku '%1;. + Sorry, couldn't find macro file '%1'. + Nažalost, ne mogu naći makro datoteku '%1;. - Empty macro - Prazan makro + Empty macro + Prazan makro - Please specify the macro first. - Navedite prvo macro. + Please specify the macro first. + Navedite prvo macro. - Empty text - Prazan tekst + Empty text + Prazan tekst - Please specify the menu text first. - Navedite tekst izbornika na prvom mjestu. + Please specify the menu text first. + Navedite tekst izbornika na prvom mjestu. - No item selected - Nije odabrana stavka + No item selected + Nije odabrana stavka - Please select a macro item first. - Molimo odaberite prvo predmet makronaredbe. + Please select a macro item first. + Molimo odaberite prvo predmet makronaredbe. - - + + Gui::Dialog::DlgCustomCommands - Commands - Naredbe + Commands + Naredbe - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategorija + Category + Kategorija - Icon - Ikona + Icon + Ikona - Command - Naredba + Command + Naredba - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Tipkovnica + Keyboard + Tipkovnica - Description: - Opis: + Description: + Opis: - &Category: - &Kategorija: + &Category: + &Kategorija: - C&ommands: - N&aredbe: + C&ommands: + N&aredbe: - Current shortcut: - Trenutni preÄac: + Current shortcut: + Trenutni preÄac: - Press &new shortcut: - Pritisnite &novi preÄac: + Press &new shortcut: + Pritisnite &novi preÄac: - Currently assigned to: - Trenutno dodijeljen: + Currently assigned to: + Trenutno dodijeljen: - &Assign - &Dodijeli + &Assign + &Dodijeli - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &PoniÅ¡ti + &Reset + &PoniÅ¡ti - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Po&niÅ¡ti sve + Re&set All + Po&niÅ¡ti sve - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikona + Icon + Ikona - Command - Naredba + Command + Naredba - none - nijedan + none + nijedan - Multiple defined shortcut - ViÅ¡estruki preÄaci definirani + Multiple defined shortcut + ViÅ¡estruki preÄaci definirani - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - PreÄac '%1' je definiran viÅ¡e od jednom. To bi moglo rezultirati neoÄekivanim ponaÅ¡anjem. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + PreÄac '%1' je definiran viÅ¡e od jednom. To bi moglo rezultirati neoÄekivanim ponaÅ¡anjem. - Already defined shortcut - Već definiran preÄac + Already defined shortcut + Već definiran preÄac - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - PreÄac '%1' je već dodijeljen u '%2'. Molimo definirati drugi preÄac. + PreÄac '%1' je već dodijeljen u '%2'. Molimo definirati drugi preÄac. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Toolbox barovi + Toolbox bars + Toolbox barovi - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Alatne trake + Toolbars + Alatne trake - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Napomena:</span> promjene postanu aktivni sljedeći put kada se uÄitati prikladni radni stol </p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Napomena:</span> promjene postanu aktivni sljedeći put kada se uÄitati prikladni radni stol </p></body></html> - Move right - Pomakni desno + Move right + Pomakni desno - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>PremjeÅ¡tanje odabrane stavke jednu razinu prema dolje.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>PremjeÅ¡tanje odabrane stavke jednu razinu prema dolje.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> - Move left - Pomakni lijevo + Move left + Pomakni lijevo - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>PremjeÅ¡tanje odabrane stavke jednu razinu gore.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>PremjeÅ¡tanje odabrane stavke jednu razinu gore.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> - Move down - Pomakni dolje + Move down + Pomakni dolje - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>PremjeÅ¡tanje odabrane stavke prema dolje.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>PremjeÅ¡tanje odabrane stavke prema dolje.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> - Move up - Pomakni gore + Move up + Pomakni gore - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>PremjeÅ¡tanje odabrane stavke gore.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>PremjeÅ¡tanje odabrane stavke gore.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> - New... - Novi ... + New... + Novi ... - Rename... - Preimenuj ... + Rename... + Preimenuj ... - Delete - IzbriÅ¡i + Delete + IzbriÅ¡i - Icon - Ikona + Icon + Ikona - Command - Naredba + Command + Naredba - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Nova alatna traka + New toolbar + Nova alatna traka - Toolbar name: - Ime alatne trake: + Toolbar name: + Ime alatne trake: - Duplicated name - Dvostruki naziv + Duplicated name + Dvostruki naziv - The toolbar name '%1' is already used - Ime alatne trake '%1' se već koristi + The toolbar name '%1' is already used + Ime alatne trake '%1' se već koristi - Rename toolbar - Preimenuj alatnu traku + Rename toolbar + Preimenuj alatnu traku - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Prilagodi + Customize + Prilagodi - &Help - &Pomoć + &Help + &Pomoć - &Close - &Zatvori + &Close + &Zatvori - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Spaceball nije pronaÄ‘en + No Spaceball Present + Spaceball nije pronaÄ‘en - Buttons - Tipke + Buttons + Tipke - Clear - Brisanje + Clear + Brisanje - Print Reference - Ispis Reference + Print Reference + Ispis Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Prikaz svojstava + Display properties + Prikaz svojstava - Display - Prikaz + Display + Prikaz - Transparency: - Prozirnost: + Transparency: + Prozirnost: - Line width: - Å irina linije: + Line width: + Å irina linije: - Point size: - VeliÄina toÄke: + Point size: + VeliÄina toÄke: - Material - Materijal + Material + Materijal - ... - ... + ... + ... - Close - Zatvori + Close + Zatvori - Viewing mode - Pregled + Viewing mode + Pregled - Display mode: - Prikaz: + Display mode: + Prikaz: - Plot mode: - nacrt: + Plot mode: + nacrt: - - + + - Line transparency: - Transparentnost linije: + Line transparency: + Transparentnost linije: - Line color: - Boja linije: + Line color: + Boja linije: - Shape color: - Boja oblika: + Shape color: + Boja oblika: - Color plot: - Boja grafa: + Color plot: + Boja grafa: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Urednik + Editor + Urednik - Options - Mogućnosti + Options + Mogućnosti - Enable line numbers - UkljuÄi brojeve redaka + Enable line numbers + UkljuÄi brojeve redaka - Enable folding - Omogući preklapanje + Enable folding + Omogući preklapanje - Indentation - UvlaÄenje + Indentation + UvlaÄenje - Insert spaces - Umetanje razmaka + Insert spaces + Umetanje razmaka - Tab size: - VeliÄina kartice: + Tab size: + VeliÄina kartice: - Indent size: - UvuÄena veliÄina: + Indent size: + UvuÄena veliÄina: - Keep tabs - Drži kartice + Keep tabs + Drži kartice - Display Items - Prikaz stavke + Display Items + Prikaz stavke - Family: - Obitelj: + Family: + Obitelj: - Size: - VeliÄina: + Size: + VeliÄina: - Preview: - Pregled: + Preview: + Pregled: - - + + - - + + Gui::Dialog::DlgGeneral - General - Općenito + General + Općenito - Start up - Pokrenuti + Start up + Pokrenuti - Enable splash screen at start up - Omogući Å¡trcanje zaslon na start up + Enable splash screen at start up + Omogući Å¡trcanje zaslon na start up - Switch to tab of report window: - Prebacite se na karticu prozora izvješća: + Switch to tab of report window: + Prebacite se na karticu prozora izvješća: - Auto load module after start up: - Automatski uÄitati modul nakon pokretanja: + Auto load module after start up: + Automatski uÄitati modul nakon pokretanja: - Language - Jezik + Language + Jezik - Change language: - Promijeni jezik: + Change language: + Promijeni jezik: - Main window - Glavni prozor + Main window + Glavni prozor - Size of recent file list - VeliÄina nedavnog popisa datoteka + Size of recent file list + VeliÄina nedavnog popisa datoteka - Window style: - Stil prozora: + Window style: + Stil prozora: - Size of toolbar icons: - VeliÄina ikona alatne trake: + Size of toolbar icons: + VeliÄina ikona alatne trake: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Zadane (%1 x %1) + Default (%1 x %1) + Zadane (%1 x %1) - Small (%1 x %1) - Male (%1 x %1) + Small (%1 x %1) + Male (%1 x %1) - Large (%1 x %1) - Velike (%1 x %1) + Large (%1 x %1) + Velike (%1 x %1) - Extra large (%1 x %1) - Jako velike (%1 x %1) + Extra large (%1 x %1) + Jako velike (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Ulazni + Input + Ulazni - OK - U redu + OK + U redu - Cancel - Otkazati + Cancel + Otkazati - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Pregled scene + Scene Inspector + Pregled scene - - + + Gui::Dialog::DlgMacroExecute - Execute macro - IzvrÅ¡i makro + Execute macro + IzvrÅ¡i makro - Macro name: - Makro ime: + Macro name: + Makro ime: - Macro destination: - Makro odrediÅ¡te: + Macro destination: + Makro odrediÅ¡te: - Execute - IzvrÅ¡iti + Execute + IzvrÅ¡iti - Close - Zatvori + Close + Zatvori - Create - Stvoriti + Create + Stvoriti - Delete - IzbriÅ¡i + Delete + IzbriÅ¡i - Edit - Uredi + Edit + Uredi - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makronaredbe + Macros + Makronaredbe - Macro file - Makro datoteke + Macro file + Makro datoteke - Enter a file name, please: - Unesite naziv datoteke, molimo Vas da: + Enter a file name, please: + Unesite naziv datoteke, molimo Vas da: - Existing file - Postojeće datoteke + Existing file + Postojeće datoteke - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Ova datoteka već postoji. - Delete macro - Brisanje makro + Delete macro + Brisanje makro - Do you really want to delete the macro '%1'? - Želite li zaista obrisati makro '%1'? + Do you really want to delete the macro '%1'? + Želite li zaista obrisati makro '%1'? - Cannot create file - Ne mogu stvoriti datoteku + Cannot create file + Ne mogu stvoriti datoteku - Creation of file '%1' failed. - Kreiranje datoteke '%1' nije uspjelo. + Creation of file '%1' failed. + Kreiranje datoteke '%1' nije uspjelo. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Makro snimanje + Macro recording + Makro snimanje - Macro name: - Makro ime: + Macro name: + Makro ime: - Stop - Stop + Stop + Stop - Cancel - Otkazati + Cancel + Otkazati - Macro path: - Makro put: + Macro path: + Makro put: - ... - ... + ... + ... - Record - Snimak + Record + Snimak - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Makro snimanje + Macro recorder + Makro snimanje - Specify first a place to save. - Odredite prvo mjesto za spremanje. + Specify first a place to save. + Odredite prvo mjesto za spremanje. - Existing macro - Postojeći makro + Existing macro + Postojeći makro - The macro '%1' already exists. Do you want to overwrite? - Makro '%1' već postoji. Želite li prebrisati? + The macro '%1' already exists. Do you want to overwrite? + Makro '%1' već postoji. Želite li prebrisati? - The macro directory doesn't exist. Please, choose another one. - Makro direktorij ne postoji. Molimo, odaberite drugi. + The macro directory doesn't exist. Please, choose another one. + Makro direktorij ne postoji. Molimo, odaberite drugi. - Choose macro directory - Odaberite makro direktorij + Choose macro directory + Odaberite makro direktorij - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Svojstva materijala + Material properties + Svojstva materijala - &Close - &Zatvori + &Close + &Zatvori - Alt+C - Alt + C + Alt+C + Alt + C - Material - Materijal + Material + Materijal - Diffuse color: - Difuzna boja: + Diffuse color: + Difuzna boja: - Specular color: - Specular boja: + Specular color: + Specular boja: - Shininess: - Sjaj: + Shininess: + Sjaj: - % - % + % + % - Ambient color: - Boja ambienta: + Ambient color: + Boja ambienta: - - + + - Emissive color: - Emitivna boja: + Emissive color: + Emitivna boja: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - On-line pomoć + On-line help + On-line pomoć - Help viewer - Pomoć preglednik + Help viewer + Pomoć preglednik - Location of start page - Lokacija poÄetne stranice + Location of start page + Lokacija poÄetne stranice - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML datoteke (*. html *. htm) + HTML files (*.html *.htm) + HTML datoteke (*. html *. htm) - Access denied - Pristup odbijen + Access denied + Pristup odbijen - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Pristup je odbijen u '%1' Odredite drugi direktorij, molim. + Pristup je odbijen u '%1' Odredite drugi direktorij, molim. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parametar Editor + Parameter Editor + Parametar Editor - Save to disk - Spremi na disk + Save to disk + Spremi na disk - Alt+C - Alt + C + Alt+C + Alt + C - &Close - &Zatvori + &Close + &Zatvori - - + + Gui::Dialog::DlgParameterImp - Group - Grupa + Group + Grupa - Name - Ime + Name + Ime - Type - Tip + Type + Tip - Value - Vrijednost + Value + Vrijednost - User parameter - KorisniÄki parametar + User parameter + KorisniÄki parametar - Invalid input - Neispravan unos + Invalid input + Neispravan unos - Invalid key name '%1' - Nevažeće ime '%1' + Invalid key name '%1' + Nevažeće ime '%1' - System parameter - Parametar sustava + System parameter + Parametar sustava - - + + Gui::Dialog::DlgPreferences - Preferences - Postavke + Preferences + Postavke - &Help - &Pomoć + &Help + &Pomoć - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &U redu + &OK + &U redu - &Apply - &Primijeni + &Apply + &Primijeni - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Otkaži + &Cancel + &Otkaži - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - PogreÅ¡an parametar + Wrong parameter + PogreÅ¡an parametar - - + + Gui::Dialog::DlgProjectInformation - Project information - Informacije o projektu + Project information + Informacije o projektu - Information - Informacije + Information + Informacije - &Name: - &Ime: + &Name: + &Ime: - Commen&t: - Komen&tar: + Commen&t: + Komen&tar: - Path: - Put: + Path: + Put: - &Last modified by: - &Zadnja izmjena od: + &Last modified by: + &Zadnja izmjena od: - Created &by: - Kreirano &od: + Created &by: + Kreirano &od: - Com&pany: - Kom&panija: + Com&pany: + Kom&panija: - Last &modification date: - Posljednja iz&mjena i datum: + Last &modification date: + Posljednja iz&mjena i datum: - Creation &date: - &Datum izrade: + Creation &date: + &Datum izrade: - &OK - &U redu + &OK + &U redu - &Cancel - &Otkaži + &Cancel + &Otkaži - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Korisne opcije projekta + Project utility + Korisne opcije projekta - Extract project - Dohvati projekt + Extract project + Dohvati projekt - Source - Izvor + Source + Izvor - Project file (*.fcstd) - Datoteka projekta (*. fcstd) + Project file (*.fcstd) + Datoteka projekta (*. fcstd) - Destination - OdrediÅ¡te + Destination + OdrediÅ¡te - Extract - Dohvati + Extract + Dohvati - Create project - Kreiraj projekt + Create project + Kreiraj projekt - Document.xml - Dokument.xml + Document.xml + Dokument.xml - Create - Stvoriti + Create + Stvoriti - Load project file after creation - UÄitaj datoteku projekta nakon stvaranja + Load project file after creation + UÄitaj datoteku projekta nakon stvaranja - Empty source - Prazan izvor + Empty source + Prazan izvor - No source is defined. - Izvor nije definiran. + No source is defined. + Izvor nije definiran. - Empty destination - Prazno odrediÅ¡te + Empty destination + Prazno odrediÅ¡te - No destination is defined. - OdrediÅ¡te nije definirano. + No destination is defined. + OdrediÅ¡te nije definirano. - - + + Gui::Dialog::DlgReportView - Output window - Izlazni prozor + Output window + Izlazni prozor - Output - Izlaz + Output + Izlaz - Record log messages - Snimanje log poruke + Record log messages + Snimanje log poruke - Record warnings - Snimanje upozorenja + Record warnings + Snimanje upozorenja - Record error messages - Snimanje poruka o pogreÅ¡ci + Record error messages + Snimanje poruka o pogreÅ¡ci - Colors - Boje + Colors + Boje - Normal messages: - Normalne poruke: + Normal messages: + Normalne poruke: - Log messages: - Log poruke: + Log messages: + Log poruke: - Warnings: - Upozorenja: + Warnings: + Upozorenja: - Errors: - PogreÅ¡ke: + Errors: + PogreÅ¡ke: - - + + - Redirect internal Python errors to report view - Preusmjeravanje unutarnjih Python greÅ¡aka u prikaz pogreÅ¡aka + Redirect internal Python errors to report view + Preusmjeravanje unutarnjih Python greÅ¡aka u prikaz pogreÅ¡aka - Redirect internal Python output to report view - Preusmjeri interni Python izlaz na prikaz izvješća + Redirect internal Python output to report view + Preusmjeri interni Python izlaz na prikaz izvješća - - + + Gui::Dialog::DlgRunExternal - Running external program - IzvoÄ‘enje vanjskog programa + Running external program + IzvoÄ‘enje vanjskog programa - TextLabel - Tekst oznaka + TextLabel + Tekst oznaka - Advanced >> - Napredno >> + Advanced >> + Napredno >> - ... - ... + ... + ... - Accept changes - Prihvati promjene + Accept changes + Prihvati promjene - Discard changes - Odbaci promjene + Discard changes + Odbaci promjene - Abort program - Prekini program + Abort program + Prekini program - Help - Pomoć + Help + Pomoć - Select a file - Odaberite datoteku + Select a file + Odaberite datoteku - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D Prikaz + 3D View + 3D Prikaz - 3D View settings - Postavke 3D prikaza + 3D View settings + Postavke 3D prikaza - Show coordinate system in the corner - Prikaži koordinatni sustav u kutu + Show coordinate system in the corner + Prikaži koordinatni sustav u kutu - Show counter of frames per second - Pokaži brojaÄ sliÄica u sekundi + Show counter of frames per second + Pokaži brojaÄ sliÄica u sekundi - Enable animation - Omogući animacije + Enable animation + Omogući animacije - Enable anti-aliasing (slower) - Omogući anti-aliasing (sporije) + Enable anti-aliasing (slower) + Omogući anti-aliasing (sporije) - Eye to eye distance for stereo modes: - OÄi u oÄi udaljenost, za stereo naÄin: + Eye to eye distance for stereo modes: + OÄi u oÄi udaljenost, za stereo naÄin: - Camera type - Tip kamere + Camera type + Tip kamere - Orthographic rendering - Renderiranje pravopisa + Orthographic rendering + Renderiranje pravopisa - Perspective rendering - Perspektivna projekcija + Perspective rendering + Perspektivna projekcija - - + + - 3D Navigation - 3D navigacija + 3D Navigation + 3D navigacija - Mouse... - MiÅ¡... + Mouse... + MiÅ¡... - Intensity of backlight - Intenzitet osvjetljenja + Intensity of backlight + Intenzitet osvjetljenja - Enable backlight color - Omogući pozadinskog osvjetljenje + Enable backlight color + Omogući pozadinskog osvjetljenje - Orbit style - NaÄin okretanja + Orbit style + NaÄin okretanja - Turntable - Okretano + Turntable + Okretano - Trackball - Prećeno + Trackball + Prećeno - Invert zoom - Invertiraj zumiranje + Invert zoom + Invertiraj zumiranje - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigacija + %1 navigation + %1 navigacija - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Model boja + Color model + Model boja - &Gradient: - &Gradient: + &Gradient: + &Gradient: - red-yellow-green-cyan-blue - crveno-žuto-zeleno-cijan-plavo + red-yellow-green-cyan-blue + crveno-žuto-zeleno-cijan-plavo - blue-cyan-green-yellow-red - plavo-cijan-zeleno-žuto-crveno + blue-cyan-green-yellow-red + plavo-cijan-zeleno-žuto-crveno - white-black - bijelo-crna + white-black + bijelo-crna - black-white - crno-bijela + black-white + crno-bijela - Visibility - Vidljivost + Visibility + Vidljivost - Out g&rayed - Od G & rayed + Out g&rayed + Od G & rayed - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - van & nevidljiv + Out &invisible + van & nevidljiv - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stil + Style + Stil - &Zero - &Nula + &Zero + &Nula - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Tok + &Flow + &Tok - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &U redu + &OK + &U redu - &Cancel - &Otkaži + &Cancel + &Otkaži - Parameter range - Raspon parametra + Parameter range + Raspon parametra - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Ma&ksimum: + Ma&ximum: + Ma&ksimum: - &Labels: - &Oznake: + &Labels: + &Oznake: - &Decimals: - &Decimale: + &Decimals: + &Decimale: - - + + - Color-gradient settings - Boja-gradijent postavke + Color-gradient settings + Boja-gradijent postavke - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - PogreÅ¡an parametar + Wrong parameter + PogreÅ¡an parametar - The maximum value must be higher than the minimum value. - Maksimalna vrijednost mora biti veći od minimalne vrijednosti. + The maximum value must be higher than the minimum value. + Maksimalna vrijednost mora biti veći od minimalne vrijednosti. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokument + Document + Dokument - General - Općenito + General + Općenito - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Razina kompresije spremanja dokumenta (0 = niÅ¡ta, 9 = najviÅ¡i, 3 = zadana vrijednost) + Razina kompresije spremanja dokumenta (0 = niÅ¡ta, 9 = najviÅ¡i, 3 = zadana vrijednost) - Create new document at start up - Stvaranje novog dokumenta prilikom pokretanja + Create new document at start up + Stvaranje novog dokumenta prilikom pokretanja - Storage - SkladiÅ¡tenje + Storage + SkladiÅ¡tenje - Saving transactions (Auto-save) - Spremanje transakcije (Auto-save) + Saving transactions (Auto-save) + Spremanje transakcije (Auto-save) - Discard saved transaction after saving document - Odbaci spremljene transakcije nakon spremanja dokumenta + Discard saved transaction after saving document + Odbaci spremljene transakcije nakon spremanja dokumenta - Save thumbnail into project file when saving document - Spremi thumbnail u projekt datoteku prilikom spremanja dokumenta + Save thumbnail into project file when saving document + Spremi thumbnail u projekt datoteku prilikom spremanja dokumenta - Create up to backup files when resaving document - Napravite sigurnosnih kopija datoteka prilikom spremanja + Create up to backup files when resaving document + Napravite sigurnosnih kopija datoteka prilikom spremanja - Document objects - Objekti dokumenta + Document objects + Objekti dokumenta - Allow duplicate object labels in one document - Dopusti dvostruke nazive objekata u jednom dokumentu + Allow duplicate object labels in one document + Dopusti dvostruke nazive objekata u jednom dokumentu - Maximum Undo/Redo steps - Maksimalan broj Undo/Redo koraka + Maximum Undo/Redo steps + Maksimalan broj Undo/Redo koraka - Using Undo/Redo on documents - Koristi Undo/Redo na dokumentima + Using Undo/Redo on documents + Koristi Undo/Redo na dokumentima - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Tekst + Text + Tekst - Bookmark - Bookmark + Bookmark + Bookmark - Breakpoint - Prijelomna toÄka + Breakpoint + Prijelomna toÄka - Keyword - KljuÅ¡na rijeÄ + Keyword + KljuÅ¡na rijeÄ - Comment - Komentar + Comment + Komentar - Block comment - Blok komentar + Block comment + Blok komentar - Number - Broj + Number + Broj - String - Tekst (string) + String + Tekst (string) - Character - Simbol + Character + Simbol - Class name - Ime klase + Class name + Ime klase - Define name - Odredite naziv + Define name + Odredite naziv - Operator - Operator + Operator + Operator - Python output - Python izlaz + Python output + Python izlaz - Python error - Python pogreÅ¡ka + Python error + Python pogreÅ¡ka - Items - Jedinice + Items + Jedinice - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Postavke slike + Image settings + Postavke slike - Image properties - Opcije slike + Image properties + Opcije slike - Back&ground: - Poza&dina: + Back&ground: + Poza&dina: - Current - Trenutna + Current + Trenutna - White - Bijela + White + Bijela - Black - Crna + Black + Crna - Transparent - Transparentan + Transparent + Transparentan - Image dimensions - Dimenzije slike + Image dimensions + Dimenzije slike - Pixel - Piksel + Pixel + Piksel - &Width: - &Å irina: + &Width: + &Å irina: - Current screen - Trenutni ekran + Current screen + Trenutni ekran - Icon 32 x 32 - Ikona 32 x 32 + Icon 32 x 32 + Ikona 32 x 32 - Icon 64 x 64 - Ikona 64 x 64 + Icon 64 x 64 + Ikona 64 x 64 - Icon 128 x 128 - Icon 128 x 128 + Icon 128 x 128 + Icon 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA + 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA + 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standardne veliÄine: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Visina: - Standard sizes: - Standardne veliÄine: + Aspect ratio: + Omjer: - &Height: - &Visina: + &Screen + &Ekran - Aspect ratio: - Omjer: + Alt+S + Alt+S - &Screen - &Ekran + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Komentar slike - Alt+1 - Alt+1 + Insert MIBA + Umetni MIBA - Image comment - Komentar slike + Insert comment + Umetni komentar - - Insert MIBA - Umetni MIBA - - - Insert comment - Umetni komentar - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makro + Macro + Makro - Macro recording settings - Postavke snimanja za makro + Macro recording settings + Postavke snimanja za makro - Logging Commands - Prijava Naredbi + Logging Commands + Prijava Naredbi - Show script commands in python console - Prikaži naredbe skripta u python konzoli + Show script commands in python console + Prikaži naredbe skripta u python konzoli - Log all commands issued by menus to file: - Prijavite se sve naredbe izdane od strane izbornika u datoteku: + Log all commands issued by menus to file: + Prijavite se sve naredbe izdane od strane izbornika u datoteku: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - GUI naredbe + Gui commands + GUI naredbe - Recording GUI commands - Snimanje GUI naredbi + Recording GUI commands + Snimanje GUI naredbi - Record as comment - Snimiti kao komentar + Record as comment + Snimiti kao komentar - Macro path - Makro put + Macro path + Makro put - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Mjerne jedinice + Units + Mjerne jedinice - Units settings - Postavke mjernih jedinica + Units settings + Postavke mjernih jedinica - Standard (mm/kg/s/degree) - Standardno (mm/kg/s/°) + Standard (mm/kg/s/degree) + Standardno (mm/kg/s/°) - MKS (m/kg/s/degree) - MKS (m/kg/s/°) + MKS (m/kg/s/degree) + MKS (m/kg/s/°) - Magnitude - PoveÄanje + Magnitude + PoveÄanje - Unit - Jedinica + Unit + Jedinica - User system: - Sustav korisnika: + User system: + Sustav korisnika: - Imperial (in/lb) - Imperial (u / lb) + Imperial (in/lb) + Imperial (u / lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Boje + Colors + Boje - Selection - Izbor + Selection + Izbor - Enable selection highlighting - Omogući odabir isticanja + Enable selection highlighting + Omogući odabir isticanja - Enable preselection highlighting - Omogući isticanje prelaskom miÅ¡a + Enable preselection highlighting + Omogući isticanje prelaskom miÅ¡a - Background color - Boja pozadine + Background color + Boja pozadine - Middle color - Srednja boja + Middle color + Srednja boja - Color gradient - Gradijent boje + Color gradient + Gradijent boje - Simple color - Jednostavna boja + Simple color + Jednostavna boja - Default colors - Zadane boje + Default colors + Zadane boje - Edited edge color - Boja izmjenjenog ruba + Edited edge color + Boja izmjenjenog ruba - Edited vertex color - Boja izmjenjenog vrha + Edited vertex color + Boja izmjenjenog vrha - Construction geometry - Geometrija za konstrukciju + Construction geometry + Geometrija za konstrukciju - Fully constrained geometry - Potpuno ograniÄena geometrija + Fully constrained geometry + Potpuno ograniÄena geometrija - The color of construction geometry in editmode - Boja geometrije za konstrukciju prilikom rada + The color of construction geometry in editmode + Boja geometrije za konstrukciju prilikom rada - The color of fully constrained geometry in editmode - Boja potpuno ograniÄene geometrije prilikom rada + The color of fully constrained geometry in editmode + Boja potpuno ograniÄene geometrije prilikom rada - The color of vertices being edited - Boja vrhova prilikom ureÄ‘ivanja + The color of vertices being edited + Boja vrhova prilikom ureÄ‘ivanja - The color of edges being edited - Boja rubova prilikom ureÄ‘ivanja + The color of edges being edited + Boja rubova prilikom ureÄ‘ivanja - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Savjet dana + Tip of the day + Savjet dana - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <font size="+3"><font face="Times New Roman"><b>Jeste li znali ...</b></font></font> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <font size="+3"><font face="Times New Roman"><b>Jeste li znali ...</b></font></font> - &Show tips at start up - &Pokaži savjete prilikom pokretanja + &Show tips at start up + &Pokaži savjete prilikom pokretanja - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Sljedeći savjet + &Next Tip + &Sljedeći savjet - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Zatvori + &Close + &Zatvori - Alt+C - Alt + C + Alt+C + Alt + C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Preuzimanje nije uspjelo: %1 + Preuzimanje nije uspjelo: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Ako želite saznati viÅ¡e o FreeCADu možete ići na %1 ili pritisnite Pomoć stavku u izborniku Pomoć. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Ako želite saznati viÅ¡e o FreeCADu možete ići na %1 ili pritisnite Pomoć stavku u izborniku Pomoć. - - + + Gui::Dialog::DockablePlacement - Placement - Položaj + Placement + Položaj - - + + Gui::Dialog::DownloadDialog - Canceled. - Otkazano. + Canceled. + Otkazano. - - + + Download + + + + Cancel + Otkazati + + + Close + Zatvori + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Preuzimanje nije uspjelo: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Dodaj ikonu + Add icon + Dodaj ikonu - - + + Gui::Dialog::InputVector - Input vector - Ulazni vektor + Input vector + Ulazni vektor - Vector - Vektor + Vector + Vektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - U redu + OK + U redu - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Tipke miÅ¡a + Mouse buttons + Tipke miÅ¡a - Configuration - Konfiguracija + Configuration + Konfiguracija - Selection: - Odabrano: + Selection: + Odabrano: - Panning - Pomicanje pogleda + Panning + Pomicanje pogleda - Rotation: - Rotacija: + Rotation: + Rotacija: - Zooming: - Zumiranje: + Zooming: + Zumiranje: - - + + Gui::Dialog::ParameterGroup - Expand - ProÅ¡iri + Expand + ProÅ¡iri - Add sub-group - Dodaj podgrupu + Add sub-group + Dodaj podgrupu - Remove group - Ukloni grupu + Remove group + Ukloni grupu - Rename group - Preimenuj grupu + Rename group + Preimenuj grupu - Export parameter - Izvoz parametra + Export parameter + Izvoz parametra - Import parameter - Uvoz parametra + Import parameter + Uvoz parametra - Collapse - Kolaps + Collapse + Kolaps - Do really want to remove this parameter group? - Da li stvarno želite ukloniti ovu grupu parametara? + Do really want to remove this parameter group? + Da li stvarno želite ukloniti ovu grupu parametara? - Existing sub-group - Postojeća podgrupa + Existing sub-group + Postojeća podgrupa - The sub-group '%1' already exists. - Pod-grupa '%1' već postoji. + The sub-group '%1' already exists. + Pod-grupa '%1' već postoji. - Export parameter to file - Izvoz parametra u datoteku + Export parameter to file + Izvoz parametra u datoteku - XML (*.FCParam) - XML (*. FCParam) + XML (*.FCParam) + XML (*. FCParam) - Import parameter from file - Uvoz parametara iz datoteke + Import parameter from file + Uvoz parametara iz datoteke - Import Error - GreÅ¡ka uvoza + Import Error + GreÅ¡ka uvoza - Reading from '%1' failed. - ÄŒitanje iz '%1' nije uspjelo. + Reading from '%1' failed. + ÄŒitanje iz '%1' nije uspjelo. - - + + Gui::Dialog::ParameterValue - Change value - Promjena vrijednosti + Change value + Promjena vrijednosti - Remove key - Odbaci tipka + Remove key + Odbaci tipka - Rename key - Preimenuj tipka + Rename key + Preimenuj tipka - New - Novi + New + Novi - New string item - Nova niz (string) jedinica + New string item + Nova niz (string) jedinica - New float item - Nova float jedinica + New float item + Nova float jedinica - New integer item - Nova integer jedinica + New integer item + Nova integer jedinica - New unsigned item - Nova unsigned jedinica + New unsigned item + Nova unsigned jedinica - New Boolean item - Nova Boolean jedinica + New Boolean item + Nova Boolean jedinica - Existing item - Postojeća jedinica + Existing item + Postojeća jedinica - The item '%1' already exists. - Jedinica '%1' već postoji. + The item '%1' already exists. + Jedinica '%1' već postoji. - - + + Gui::Dialog::Placement - Placement - Položaj + Placement + Položaj - OK - U redu + OK + U redu - Translation: - Translacija: + Translation: + Translacija: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotacija: + Rotation: + Rotacija: - Angle: - Kut: + Angle: + Kut: - Axis: - Os: + Axis: + Os: - Center: - Centar: + Center: + Centar: - Pitch: - Vrh: + Pitch: + Vrh: - Roll: - Svitak: + Roll: + Svitak: - Yaw: - Skretati sa pravca: + Yaw: + Skretati sa pravca: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Eulerovi kutevi + Euler angles + Eulerovi kutevi - Apply placement changes immediately - Primijeni promjene položaja odmah + Apply placement changes immediately + Primijeni promjene položaja odmah - Apply incremental changes to object placement - Primijeni inkrementalne promjene položaju objekta + Apply incremental changes to object placement + Primijeni inkrementalne promjene položaju objekta - Apply - Primijeni + Apply + Primijeni - Reset - Odbaci + Reset + Odbaci - Close - Zatvori + Close + Zatvori - - + + Gui::Dialog::PrintModel - Button - Gumb + Button + Gumb - Command - Naredba + Command + Naredba - - + + Gui::Dialog::SceneInspector - Dialog - Dijalog + Dialog + Dijalog - Close - Zatvori + Close + Zatvori - Refresh - Osvježi + Refresh + Osvježi - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor stablo + Inventor Tree + Inventor stablo - Nodes - ÄŒvorovi + Nodes + ÄŒvorovi - - + + Gui::Dialog::TextureMapping - Texture - Tekstura + Texture + Tekstura - Texture mapping - Mapiranje tekstura + Texture mapping + Mapiranje tekstura - Global - Globalna + Global + Globalna - Environment - Okolina + Environment + Okolina - Image files (%1) - Slikovne datoteke (%1) + Image files (%1) + Slikovne datoteke (%1) - No image - Nema slike + No image + Nema slike - The specified file is not a valid image file. - Navedena datoteka nije valjana datoteka slike. + The specified file is not a valid image file. + Navedena datoteka nije valjana datoteka slike. - No 3d view - Nema 3D prikaza + No 3d view + Nema 3D prikaza - No active 3d view found. - Nije pronaÄ‘en aktivni 3D prikaz. + No active 3d view found. + Nije pronaÄ‘en aktivni 3D prikaz. - - + + Gui::Dialog::Transform - Cancel - Otkazati + Cancel + Otkazati - Transform - Transformiraj + Transform + Transformiraj - - + + Gui::DlgTreeWidget - Dialog - Dijalog + Dialog + Dijalog - Items - Jedinice + Items + Jedinice - OK - U redu + OK + U redu - Cancel - Otkazati + Cancel + Otkazati - - + + - - + + Gui::DockWnd::CombiView - CombiView - MjeÅ¡ani pogled + CombiView + MjeÅ¡ani pogled - Project - Projekt + Project + Projekt - Tasks - Zadaci + Tasks + Zadaci - - + + Gui::DockWnd::HelpView - Previous - Prethodna + Previous + Prethodna - Next - Slijedeća + Next + Slijedeća - Home - PoÄetna stranica + Home + PoÄetna stranica - Open - Otvori + Open + Otvori - Open file - Otvori datoteku + Open file + Otvori datoteku - All HTML files (*.html *.htm) - Sve HTML datoteke (*. html *. htm) + All HTML files (*.html *.htm) + Sve HTML datoteke (*. html *. htm) - External browser - Vanjski preglednik + External browser + Vanjski preglednik - No external browser found. Specify in preferences, please - Nije pronaÄ‘en vanjski preglednik. Navedite u postavkama, molim + No external browser found. Specify in preferences, please + Nije pronaÄ‘en vanjski preglednik. Navedite u postavkama, molim - Starting of %1 failed - Pokretanje %1 nije uspjelo + Starting of %1 failed + Pokretanje %1 nije uspjelo - - + + Gui::DockWnd::PropertyDockView - Property View - Pregled vlasniÅ¡tva + Property View + Pregled vlasniÅ¡tva - - + + Gui::DockWnd::ReportOutput - Logging - Prijava + Logging + Prijava - Warning - Upozorenje + Warning + Upozorenje - Error - PogreÅ¡ka + Error + PogreÅ¡ka - Options - Mogućnosti + Options + Mogućnosti - Clear - Brisanje + Clear + Brisanje - Save As... - Spremi kao ... + Save As... + Spremi kao ... - Save Report Output - Spremi izvješće izlaza + Save Report Output + Spremi izvješće izlaza - Plain Text Files (*.txt *.log) - ObiÄne tekstualne datoteke (*. txt *. log) + Plain Text Files (*.txt *.log) + ObiÄne tekstualne datoteke (*. txt *. log) - Go to end - Idi na kraj + Go to end + Idi na kraj - Redirect Python output - Preusmjeravanje Python izlaza + Redirect Python output + Preusmjeravanje Python izlaza - Redirect Python errors - Preusmjeravanje Python pogreÅ¡ki + Redirect Python errors + Preusmjeravanje Python pogreÅ¡ki - - + + Gui::DockWnd::ReportView - Output - Izlaz + Output + Izlaz - Python console - Python konzola + Python console + Python konzola - - + + Gui::DockWnd::SelectionView - Property View - Pregled vlasniÅ¡tva + Property View + Pregled vlasniÅ¡tva - - + + Gui::DockWnd::TaskPanelView - Task View - Pregled zadataka + Task View + Pregled zadataka - - + + Gui::DockWnd::TextBrowser - Could not open file. - Ne mogu otvoriti datoteku. + Could not open file. + Ne mogu otvoriti datoteku. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - PokuÅ¡ali ste pristupiti adresi %1, koja je trenutno nedostupna. Molimo provjerite je li URL postoji i pokuÅ¡ajte ponovno uÄitati stranicu. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + PokuÅ¡ali ste pristupiti adresi %1, koja je trenutno nedostupna. Molimo provjerite je li URL postoji i pokuÅ¡ajte ponovno uÄitati stranicu. - Connecting to %1 - Spajanje na %1 + Connecting to %1 + Spajanje na %1 - Sending to %1 - Slanje na %1 + Sending to %1 + Slanje na %1 - Reading from %1 - ÄŒitanje iz %1 + Reading from %1 + ÄŒitanje iz %1 - Download failed: %1. - Preuzimanje nije uspjelo: %1. + Download failed: %1. + Preuzimanje nije uspjelo: %1. - Previous - Prethodna + Previous + Prethodna - Forward - Naprijed + Forward + Naprijed - Home - PoÄetna stranica + Home + PoÄetna stranica - Refresh - Osvježi + Refresh + Osvježi - Copy - Kopiraj + Copy + Kopiraj - Select all - OznaÄi sve + Select all + OznaÄi sve - No description for - Nema opisa za + No description for + Nema opisa za - - + + Gui::DocumentModel - Application - Aplikacija + Application + Aplikacija - Labels & Attributes - Etikete i atributi + Labels & Attributes + Etikete i atributi - - + + Gui::EditorView - Modified file - Promjena datoteke + Modified file + Promjena datoteke - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Ovo je modificirano izvan izvornog editora. Želite li ga ponovno uÄitati? - Unsaved document - Nespremljeni dokument + Unsaved document + Nespremljeni dokument - The document has been modified. + The document has been modified. Do you want to save your changes? - Dokument je promijenjen. Želite li spremiti promjene? + Dokument je promijenjen. Želite li spremiti promjene? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD makro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD makro (*.FCMacro);;Python (*.py) - Export PDF - Izvoz PDF + Export PDF + Izvoz PDF - PDF file (*.pdf) - PDF datoteka (*.pdf) + PDF file (*.pdf) + PDF datoteka (*.pdf) - untitled[*] - Bez imena[*] + untitled[*] + Bez imena[*] - - Editor - - Urednik + - Editor + - Urednik - %1 chars removed - %1 znakova uklonjeno + %1 chars removed + %1 znakova uklonjeno - %1 chars added - %1 znakova dodano + %1 chars added + %1 znakova dodano - Formatted - Oblikovano + Formatted + Oblikovano - - + + Gui::FileChooser - Select a file - Odaberite datoteku + Select a file + Odaberite datoteku - Select a directory - Odaberite direktorij + Select a directory + Odaberite direktorij - - + + Gui::FileDialog - Save as - Spremi kao + Save as + Spremi kao - Open - Otvori + Open + Otvori - - + + Gui::FileOptionsDialog - Extended - Produženo + Extended + Produženo - All files (*.*) - Sve datoteke (*.*) + All files (*.*) + Sve datoteke (*.*) - - + + Gui::Flag - Top left - Gore lijevo + Top left + Gore lijevo - Bottom left - Dolje lijevo + Bottom left + Dolje lijevo - Top right - Gore desno + Top right + Gore desno - Bottom right - Dolje desno + Bottom right + Dolje desno - Remove - Ukloniti + Remove + Ukloniti - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Pritisnite CTRL i lijevu tipku miÅ¡a + Press CTRL and left mouse button + Pritisnite CTRL i lijevu tipku miÅ¡a - Press middle mouse button - Pritisnite srednju tipku miÅ¡a + Press middle mouse button + Pritisnite srednju tipku miÅ¡a - Press left mouse button - Pritisnite lijevu tipku miÅ¡a + Press left mouse button + Pritisnite lijevu tipku miÅ¡a - Scroll middle mouse button - Kotrljajte kotaÄić na miÅ¡u + Scroll middle mouse button + Kotrljajte kotaÄić na miÅ¡u - - + + Gui::LocationDialog - Wrong direction - PogreÅ¡an smjer + Wrong direction + PogreÅ¡an smjer - Direction must not be the null vector - Smjer ne smije biti nula + Direction must not be the null vector + Smjer ne smije biti nula - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - KorisniÄki definirano... + User defined... + KorisniÄki definirano... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makronaredbe + Macros + Makronaredbe - - + + Gui::MainWindow - Dimension - Dimenzija + Dimension + Dimenzija - Ready - Spreman + Ready + Spreman - Toggles this toolbar - UkljuÄuje ove alatne trake + Toggles this toolbar + UkljuÄuje ove alatne trake - Toggles this dockable window - UkljuÄuje ovaj usidrivi prozor + Toggles this dockable window + UkljuÄuje ovaj usidrivi prozor - Close All - Zatvori sve + Close All + Zatvori sve - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Preuzimanje je zapoÄelo... + Preuzimanje je zapoÄelo... - - + + Gui::ProgressBar - Remaining: %1 - Preostalo: %1 + Remaining: %1 + Preostalo: %1 - Aborting - Odustani + Aborting + Odustani - Do you really want to abort the operation? - Želite li zaista prekinuti operaciju? + Do you really want to abort the operation? + Želite li zaista prekinuti operaciju? - - + + Gui::ProgressDialog - Remaining: %1 - Preostalo: %1 + Remaining: %1 + Preostalo: %1 - Aborting - Odustani + Aborting + Odustani - Do you really want to abort the operation? - Želite li zaista prekinuti operaciju? + Do you really want to abort the operation? + Želite li zaista prekinuti operaciju? - - + + Gui::PropertyEditor::PropertyModel - Property - Opcije + Property + Opcije - Value - Vrijednost + Value + Vrijednost - - + + Gui::PropertyView - View - Pregled + View + Pregled - Data - Podaci + Data + Podaci - - + + Gui::PythonConsole - System exit - Izlaz iz sustava + System exit + Izlaz iz sustava - The application is still running. + The application is still running. Do you want to exit without saving your data? - Primjena se joÅ¡ uvijek izvrÅ¡ava. Želite li izaći bez snimanja podataka? + Primjena se joÅ¡ uvijek izvrÅ¡ava. Želite li izaći bez snimanja podataka? - Python console - Python konzola + Python console + Python konzola - Unhandled PyCXX exception. - NeobraÄ‘ena PyCXX iznimka. + Unhandled PyCXX exception. + NeobraÄ‘ena PyCXX iznimka. - Unhandled FreeCAD exception. - NeobraÄ‘ena FreeCAD iznimka. + Unhandled FreeCAD exception. + NeobraÄ‘ena FreeCAD iznimka. - Unhandled unknown C++ exception. - NeobraÄ‘ena nepoznata C++ iznimka. + Unhandled unknown C++ exception. + NeobraÄ‘ena nepoznata C++ iznimka. - &Copy command - &Kopiraj naredba + &Copy command + &Kopiraj naredba - &Copy history - &Kopiraj povijest + &Copy history + &Kopiraj povijest - Save history as... - Spremi povijest kao ... + Save history as... + Spremi povijest kao ... - Insert file name... - Umetni ime datoteke ... + Insert file name... + Umetni ime datoteke ... - Save History - Spremi povijest + Save History + Spremi povijest - Macro Files (*.FCMacro *.py) - Makro datoteke (*. FCMacro *. py) + Macro Files (*.FCMacro *.py) + Makro datoteke (*. FCMacro *. py) - Insert file name - Umetni ime datoteke + Insert file name + Umetni ime datoteke - All Files (*.*) - Sve datoteke (*.*) + All Files (*.*) + Sve datoteke (*.*) - Python Input Dialog - Ulazbi Python dijalog + Python Input Dialog + Ulazbi Python dijalog - Unhandled std C++ exception. - NeobraÄ‘ena STD C++ iznimka. + Unhandled std C++ exception. + NeobraÄ‘ena STD C++ iznimka. - Word wrap - Automatsko dovrÅ¡avanje + Word wrap + Automatsko dovrÅ¡avanje - &Copy - &Kopiraj + &Copy + &Kopiraj - &Paste - &Zalijepi + &Paste + &Zalijepi - Select All - OznaÄi sve + Select All + OznaÄi sve - - + + Clear console + + + + Gui::PythonEditor - Comment - Komentar + Comment + Komentar - Uncomment - Bez komentara + Uncomment + Bez komentara - - + + Gui::PythonInputField - OK - U redu + OK + U redu - Clear - Brisanje + Clear + Brisanje - - + + Gui::RecentFilesAction - Open file %1 - Otvoriti datoteku %1 + Open file %1 + Otvoriti datoteku %1 - File not found - Datoteka nije pronaÄ‘ena + File not found + Datoteka nije pronaÄ‘ena - The file '%1' cannot be opened. - Datoteka '%1' ne može biti otvorena. + The file '%1' cannot be opened. + Datoteka '%1' ne može biti otvorena. - - + + Gui::SelectModule - Select module - Odaberite modul + Select module + Odaberite modul - Open %1 as - Otvori %1 kao + Open %1 as + Otvori %1 kao - Select - Odaberite + Select + Odaberite - - + + Gui::StdCmdDescription - Help - Pomoć + Help + Pomoć - Des&cription - Opi&s + Des&cription + Opi&s - Long description of commands - Dugi opis naredbi + Long description of commands + Dugi opis naredbi - - + + Gui::StdCmdDownloadOnlineHelp - Help - Pomoć + Help + Pomoć - Download online help - Preuzimanje on-line pomoći + Download online help + Preuzimanje on-line pomoći - Download %1's online help - Preuzimanje %1 on-line pomoći + Download %1's online help + Preuzimanje %1 on-line pomoći - Non-existing directory - Nepostojeći direktorij + Non-existing directory + Nepostojeći direktorij - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Direktorij '%1' ne postoji. + Direktorij '%1' ne postoji. Želite li navesti postojeći direktorij? - Missing permission - Nedostaju ovlasti + Missing permission + Nedostaju ovlasti - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Nemate dopuÅ¡tenje pisati u '%1' + Nemate dopuÅ¡tenje pisati u '%1' Želite li odrediti drugi direktorij? - Stop downloading - Zaustavi preuzimanje + Stop downloading + Zaustavi preuzimanje - - + + Gui::StdCmdPythonHelp - Tools - Alati + Tools + Alati - Python Modules - Python moduli + Python Modules + Python moduli - Opens a browser to show the Python modules - Otvara preglednik za prikaz Python modula + Opens a browser to show the Python modules + Otvara preglednik za prikaz Python modula - - + + Gui::TaskBoxAngle - Angle - Kut + Angle + Kut - - + + Gui::TaskBoxPosition - Position - Položaj + Position + Položaj - - + + Gui::TaskView::TaskAppearance - Display mode: - Prikaz: + Display mode: + Prikaz: - Plot mode: - nacrt: + Plot mode: + nacrt: - Point size: - VeliÄina toÄke: + Point size: + VeliÄina toÄke: - Line width: - Å irina linije: + Line width: + Å irina linije: - Transparency: - Prozirnost: + Transparency: + Prozirnost: - Appearance - Izgled + Appearance + Izgled - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Uredi + Edit + Uredi - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Izgled + Appearance + Izgled - ... - ... + ... + ... - edit selection - uredi odabir + edit selection + uredi odabir - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Pritisnite lijevu tipku miÅ¡a + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Engleski + English + Engleski - - + + Gui::TreeDockWidget - Tree view - Pogled hijerarhije + Tree view + Pogled hijerarhije - - + + Gui::TreeWidget - Create group... - Napravi grupu ... + Create group... + Napravi grupu ... - Create a group - Napravite grupu + Create a group + Napravite grupu - Group - Grupa + Group + Grupa - Rename - Preimenuj + Rename + Preimenuj - Rename object - Preimenovanje objekta + Rename object + Preimenovanje objekta - Labels & Attributes - Etikete i atributi + Labels & Attributes + Etikete i atributi - Application - Aplikacija + Application + Aplikacija - Finish editing - ZavrÅ¡i ureÄ‘ivanje + Finish editing + ZavrÅ¡i ureÄ‘ivanje - Finish editing object - ZavrÅ¡i ureÄ‘ivanje objekta + Finish editing object + ZavrÅ¡i ureÄ‘ivanje objekta - Activate document - Aktiviraj dokument + Activate document + Aktiviraj dokument - Activate document %1 - Aktiviraj dokument %1 + Activate document %1 + Aktiviraj dokument %1 - - + + Gui::View3DInventor - Export PDF - Izvoz PDF + Export PDF + Izvoz PDF - PDF file (*.pdf) - PDF datoteka (*.pdf) + PDF file (*.pdf) + PDF datoteka (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Odaberite '%1' radni stol + Select the '%1' workbench + Odaberite '%1' radni stol - - + + Position - Form - Obrazac + Form + Obrazac - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Uhvati ReÅ¡etku u + Grid Snap in + Uhvati ReÅ¡etku u - - + + QDockWidget - Tree view - Pogled hijerarhije + Tree view + Pogled hijerarhije - Property view - Pregled vlasniÅ¡tva + Property view + Pregled vlasniÅ¡tva - Selection view - Pregled selekcije + Selection view + Pregled selekcije - Report view - Pregled izvjeÅ¡taja + Report view + Pregled izvjeÅ¡taja - Task View - Pregled zadataka + Task View + Pregled zadataka - Combo View - Kombinirani pregled + Combo View + Kombinirani pregled - Toolbox - Traka s alatima + Toolbox + Traka s alatima - Python console - Python konzola + Python console + Python konzola - Display properties - Prikaz svojstava + Display properties + Prikaz svojstava - - + + QObject - General - Općenito + General + Općenito - Display - Prikaz + Display + Prikaz - Unknown filetype - Nepoznata vrsta datoteke + Unknown filetype + Nepoznata vrsta datoteke - Cannot open unknown filetype: %1 - Ne mogu otvoriti nepoznatu vrstu datoteke: %1 + Cannot open unknown filetype: %1 + Ne mogu otvoriti nepoznatu vrstu datoteke: %1 - Cannot save to unknown filetype: %1 - Ne mogu spremiti nepoznatu vrstu datoteke: %1 + Cannot save to unknown filetype: %1 + Ne mogu spremiti nepoznatu vrstu datoteke: %1 - Workbench failure - Workbench neuspjeh + Workbench failure + Workbench neuspjeh - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Nije moguće pokrenuti Qt Assistant (%1) + Unable to launch Qt Assistant (%1) + Nije moguće pokrenuti Qt Assistant (%1) - Exception - Iznimka + Exception + Iznimka - Open document - Otvori dokument + Open document + Otvori dokument - Import file - Uvoz datoteke + Import file + Uvoz datoteke - Export file - Izvoz datoteke + Export file + Izvoz datoteke - Printing... - Ispis ... + Printing... + Ispis ... - Cannot load workbench - Ne mogu uÄitati radni stol + Cannot load workbench + Ne mogu uÄitati radni stol - A general error occurred while loading the workbench - DoÅ¡lo je do pogreÅ¡ke tijekom uÄitavanja radnog stola + A general error occurred while loading the workbench + DoÅ¡lo je do pogreÅ¡ke tijekom uÄitavanja radnog stola - File not found - Datoteka nije pronaÄ‘ena + File not found + Datoteka nije pronaÄ‘ena - Cannot open file %1 - Ne mogu otvoriti datoteku %1 + Cannot open file %1 + Ne mogu otvoriti datoteku %1 - Save views... - Spremi poglede ... + Save views... + Spremi poglede ... - Load views... - UÄitavanje pregleda ... + Load views... + UÄitavanje pregleda ... - Freeze view - Zamrzni pogled + Freeze view + Zamrzni pogled - Clear views - ObriÅ¡i poglede + Clear views + ObriÅ¡i poglede - Restore view &%1 - Vrati pogled &%1 + Restore view &%1 + Vrati pogled &%1 - Save frozen views - Spremi smrznute poglede + Save frozen views + Spremi smrznute poglede - Frozen views (*.cam) - Smrznuti prikazi (*.cam) + Frozen views (*.cam) + Smrznuti prikazi (*.cam) - Restore views - Vraćanje pogleda + Restore views + Vraćanje pogleda - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Uvoz obnovljena pogleda bi obrisao već pohranjene poglede. Želite li nastaviti? + Uvoz obnovljena pogleda bi obrisao već pohranjene poglede. Želite li nastaviti? - Restore frozen views - Vraćanje smrznutih pogleda + Restore frozen views + Vraćanje smrznutih pogleda - Cannot open file '%1'. - Ne mogu otvoriti datoteku '%1'. + Cannot open file '%1'. + Ne mogu otvoriti datoteku '%1'. - Docked - Usidren + Docked + Usidren - Undocked - Odsidren + Undocked + Odsidren - Fullscreen - Preko cijelog ekrana + Fullscreen + Preko cijelog ekrana - files - datoteke + files + datoteke - Save picture - Spremi sliku + Save picture + Spremi sliku - New sub-group - Nova podgrupa + New sub-group + Nova podgrupa - Enter the name: - Unesite naziv: + Enter the name: + Unesite naziv: - New text item - Nova tekst jedinica + New text item + Nova tekst jedinica - Enter your text: - Unesite tekst: + Enter your text: + Unesite tekst: - New integer item - Nova integer jedinica + New integer item + Nova integer jedinica - Enter your number: - Unesite broj: + Enter your number: + Unesite broj: - New unsigned item - Nova unsigned jedinica + New unsigned item + Nova unsigned jedinica - New float item - Nova float jedinica + New float item + Nova float jedinica - New Boolean item - Nova Boolean jedinica + New Boolean item + Nova Boolean jedinica - Choose an item: - Izaberite jedinicu: + Choose an item: + Izaberite jedinicu: - Rename group - Preimenuj grupu + Rename group + Preimenuj grupu - The group '%1' cannot be renamed. - Grupa '%1' ne može biti preimenovana. + The group '%1' cannot be renamed. + Grupa '%1' ne može biti preimenovana. - Existing group - Postojeća grupa + Existing group + Postojeća grupa - The group '%1' already exists. - Grupa '%1' već postoji. + The group '%1' already exists. + Grupa '%1' već postoji. - Change value - Promjena vrijednosti + Change value + Promjena vrijednosti - Save document under new filename... - Spremi dokument pod novim imenom ... + Save document under new filename... + Spremi dokument pod novim imenom ... - Saving aborted - Spremanje prekinuto + Saving aborted + Spremanje prekinuto - Unsaved document - Nespremljeni dokument + Unsaved document + Nespremljeni dokument - Save document before close? - Spremi dokument prije zatvaranja? + Save document before close? + Spremi dokument prije zatvaranja? - Save Macro - Spremi Makro + Save Macro + Spremi Makro - Finish - ZavrÅ¡iti + Finish + ZavrÅ¡iti - Clear - Brisanje + Clear + Brisanje - Cancel - Otkazati + Cancel + Otkazati - Inner - UnutraÅ¡nji + Inner + UnutraÅ¡nji - Outer - Vanjski + Outer + Vanjski - No Browser - Nema preglednika + No Browser + Nema preglednika - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Nije moguće otvoriti pregledniku. Molimo vas da otvorite prozor preglednika i unesete: http://localhost:%1. + Nije moguće otvoriti pregledniku. Molimo vas da otvorite prozor preglednika i unesete: http://localhost:%1. - No Server - Nema Servera + No Server + Nema Servera - Unable to start the server to port %1: %2. - Nije moguće pokrenuti poslužitelja na portu %1: %2. + Unable to start the server to port %1: %2. + Nije moguće pokrenuti poslužitelja na portu %1: %2. - Unable to open your system browser. - Ne mogu otvoriti vaÅ¡ preglednik sustava. + Unable to open your system browser. + Ne mogu otvoriti vaÅ¡ preglednik sustava. - Options... - Opcije ... + Options... + Opcije ... - Out of memory - Bez memorije + Out of memory + Bez memorije - Not enough memory available to display the data. - Nema dovoljno dostupne memorije za prikaz podataka. + Not enough memory available to display the data. + Nema dovoljno dostupne memorije za prikaz podataka. - Cannot find file %1 - Ne mogu pronaći datoteku %1 + Cannot find file %1 + Ne mogu pronaći datoteku %1 - Cannot find file %1 neither in %2 nor in %3 - Ne mogu pronaći datoteku %1 niti u %2 niti u %3 + Cannot find file %1 neither in %2 nor in %3 + Ne mogu pronaći datoteku %1 niti u %2 niti u %3 - Save %1 Document - Spremi %1 dokument + Save %1 Document + Spremi %1 dokument - %1 document (*.FCStd) - %1 dokument (*.FCStd) + %1 document (*.FCStd) + %1 dokument (*.FCStd) - Save As - Spremi kao + Save As + Spremi kao - %1 already exists. + %1 already exists. Do you want to replace it? - %1 već postoji. Želite li ga zamijeniti? + %1 već postoji. Želite li ga zamijeniti? - Document not closable - Dokument nije moguće zatvoriti + Document not closable + Dokument nije moguće zatvoriti - The document is not closable for the moment. - Dokument trenutno nije moguće zatvoriti. + The document is not closable for the moment. + Dokument trenutno nije moguće zatvoriti. - No OpenGL - Nema OpenGL + No OpenGL + Nema OpenGL - This system does not support OpenGL - Ovaj sustav ne podržava OpenGL + This system does not support OpenGL + Ovaj sustav ne podržava OpenGL - Help - Pomoć + Help + Pomoć - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Nije moguće uÄitati dokument. + Nije moguće uÄitati dokument. Da bi se to omogućilo potreban je Qt verzije 4,4 ili viÅ¡e. - %1 Help - %1 Pomoć + %1 Help + %1 Pomoć - Exporting PDF... - Izvoz PDF ... + Exporting PDF... + Izvoz PDF ... - Wrong selection - PogreÅ¡an odabir + Wrong selection + PogreÅ¡an odabir - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Samo jedan objekt odabran. Odaberite dva objekta. + Samo jedan objekt odabran. Odaberite dva objekta. Pazite jer toÄke odabira utjeÄu. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Odaberite dva objekta. + Odaberite dva objekta. Pazite jer toÄke odabira utjeÄu. - New boolean item - Nova boolean jedinica + New boolean item + Nova boolean jedinica - Navigation styles - NaÄini navigacije + Navigation styles + NaÄini navigacije - %1 navigation - %1 navigacija + %1 navigation + %1 navigacija - Move annotation - Premjesti primjedbu + Move annotation + Premjesti primjedbu - Transform - Transformiraj + Transform + Transformiraj - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - Dokument je u naÄinu ureÄ‘ivanja pa se trenutno ne može zatvoriti. Trebate ili zavrÅ¡iti ureÄ‘ivanje ili ga otkazati u ploÄi zadataka. + Dokument je u naÄinu ureÄ‘ivanja pa se trenutno ne može zatvoriti. Trebate ili zavrÅ¡iti ureÄ‘ivanje ili ga otkazati u ploÄi zadataka. - - + + + StdBoxSelection + + Standard-View + Standardni pogled + + + Box selection + + + + StdCmdAbout - Help - Pomoć + Help + Pomoć - &About %1 - &O %1 + &About %1 + &O %1 - About %1 - O %1 + About %1 + O %1 - - + + StdCmdAboutQt - Help - Pomoć + Help + Pomoć - About &Qt - O &Qt + About &Qt + O &Qt - About Qt - O Qt + About Qt + O Qt - - + + StdCmdActivateNextWindow - Window - Prozor + Window + Prozor - Ne&xt - Slijede&ći + Ne&xt + Slijede&ći - Activate next window - Aktiviraj slijedeći prozor + Activate next window + Aktiviraj slijedeći prozor - - + + StdCmdActivatePrevWindow - Window - Prozor + Window + Prozor - Pre&vious - Pre&thodni + Pre&vious + Pre&thodni - Activate previous window - Aktiviraj prethodni prozor + Activate previous window + Aktiviraj prethodni prozor - - + + + StdCmdAlignment + + Edit + Uredi + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Prozor + Window + Prozor - Arrange &Icons - Rasporedi &ikone + Arrange &Icons + Rasporedi &ikone - Arrange Icons - Rasporedi ikone + Arrange Icons + Rasporedi ikone - - + + StdCmdAxisCross - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Toggle axis cross - Pokaži ishodiÅ¡te + Toggle axis cross + Pokaži ishodiÅ¡te - - + + StdCmdCascadeWindows - Window - Prozor + Window + Prozor - &Cascade - Na&slaži + &Cascade + Na&slaži - Tile pragmatic - Crijep pragmatiÄan + Tile pragmatic + Crijep pragmatiÄan - - + + StdCmdCloseActiveWindow - Window - Prozor + Window + Prozor - Cl&ose - Zatv&ori + Cl&ose + Zatv&ori - Close active window - Zatvori aktivni prozor + Close active window + Zatvori aktivni prozor - - + + StdCmdCloseAllWindows - Window - Prozor + Window + Prozor - Close Al&l - Zatvori Sv&e + Close Al&l + Zatvori Sv&e - Close all windows - Zatvori sve prozore + Close all windows + Zatvori sve prozore - - + + StdCmdCommandLine - Tools - Alati + Tools + Alati - Start command &line... - Pokreni komandnu &liniju ... + Start command &line... + Pokreni komandnu &liniju ... - Opens the command line in the console - Otvara komandnu liniju u konzoli + Opens the command line in the console + Otvara komandnu liniju u konzoli - - + + StdCmdCopy - Edit - Uredi + Edit + Uredi - C&opy - K&opiraj + C&opy + K&opiraj - Copy operation - Kopirati + Copy operation + Kopirati - - + + StdCmdCut - Edit - Uredi + Edit + Uredi - &Cut - &Izreži + &Cut + &Izreži - Cut out - Izrezati + Cut out + Izrezati - - + + StdCmdDDuplicateSelection - Edit - Uredi + Edit + Uredi - Duplicate selection - UdvostruÄi odabir + Duplicate selection + UdvostruÄi odabir - Put duplicates of the selected objects to the active document - Stavilja kopije odabranih objekata na aktivni dokument + Put duplicates of the selected objects to the active document + Stavilja kopije odabranih objekata na aktivni dokument - - + + StdCmdDelete - Edit - Uredi + Edit + Uredi - &Delete - &IzbriÅ¡i + &Delete + &IzbriÅ¡i - Deletes the selected objects - BriÅ¡e odabrane objekte + Deletes the selected objects + BriÅ¡e odabrane objekte - - + + StdCmdDemoMode - Standard-View - Standardni pogled + Standard-View + Standardni pogled - View turntable... - Prikaži okretnicu... + View turntable... + Prikaži okretnicu... - View turntable - Prikaži okretnicu + View turntable + Prikaži okretnicu - - + + StdCmdDlgCustomize - Tools - Alati + Tools + Alati - Cu&stomize... - Prilago&dba... + Cu&stomize... + Prilago&dba... - Customize toolbars and command bars - Prilagodba alatnih traka i traki s naredbama + Customize toolbars and command bars + Prilagodba alatnih traka i traki s naredbama - - + + StdCmdDlgMacroExecute - Macros ... - Makronaredbe ... + Macros ... + Makronaredbe ... - Opens a dialog to let you execute a recorded macro - Otvara dijalog kako bi Vam omogućio izvrÅ¡avanje snimljenih makro naredbi + Opens a dialog to let you execute a recorded macro + Otvara dijalog kako bi Vam omogućio izvrÅ¡avanje snimljenih makro naredbi - Macro - Makro + Macro + Makro - - + + StdCmdDlgMacroExecuteDirect - Macro - Makro + Macro + Makro - Execute macro - IzvrÅ¡i makro + Execute macro + IzvrÅ¡i makro - Execute the macro in the editor - IzvrÅ¡i makro u editoru + Execute the macro in the editor + IzvrÅ¡i makro u editoru - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makro snimanje ... + &Macro recording ... + &Makro snimanje ... - Opens a dialog to record a macro - Otvara dijalog za snimanje makro naredbe + Opens a dialog to record a macro + Otvara dijalog za snimanje makro naredbe - Macro - Makro + Macro + Makro - - + + StdCmdDlgParameter - Tools - Alati + Tools + Alati - E&dit parameters ... - Ure&Ä‘ivanje parametara ... + E&dit parameters ... + Ure&Ä‘ivanje parametara ... - Opens a Dialog to edit the parameters - Otvara Dialog za ureÄ‘ivanje parametara + Opens a Dialog to edit the parameters + Otvara Dialog za ureÄ‘ivanje parametara - - + + StdCmdDlgPreferences - Tools - Alati + Tools + Alati - &Preferences ... - &Postavke ... + &Preferences ... + &Postavke ... - Opens a Dialog to edit the preferences - Otvara Dialog kako biste uredili postavke + Opens a Dialog to edit the preferences + Otvara Dialog kako biste uredili postavke - - + + StdCmdDockViewMenu - View - Pregled + View + Pregled - Vie&ws - Pogl&edi + Vie&ws + Pogl&edi - Toggles this window - UkljuÄuje ovaj prozor + Toggles this window + UkljuÄuje ovaj prozor - - + + StdCmdDrawStyle - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Uredi + + + Duplicate selection + UdvostruÄi odabir + + + Put duplicates of the selected objects to the active document + Stavilja kopije odabranih objekata na aktivni dokument + + + + StdCmdEdit + + Edit + Uredi + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Datoteka + File + Datoteka - &Export... - Iz&voz... + &Export... + Iz&voz... - Export an object in the active document - Izvoz objekta u aktivni dokument + Export an object in the active document + Izvoz objekta u aktivni dokument - Supported formats - Podržani formati + Supported formats + Podržani formati - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Alati + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Datoteka + File + Datoteka - &Recompute - &Ponovno proraÄunavanje + &Recompute + &Ponovno proraÄunavanje - Recompute feature or document - Ponovno proraÄunaj znaÄajku ili dokument + Recompute feature or document + Ponovno proraÄunaj znaÄajku ili dokument - - + + StdCmdFreeCADWebsite - Help - Pomoć + Help + Pomoć - FreeCAD Website - FreeCAD Web stranica + FreeCAD Website + FreeCAD Web stranica - The FreeCAD website - FreeCAD web stranica + The FreeCAD website + FreeCAD web stranica - - + + StdCmdFreezeViews - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Freeze display - Zamrzni prikaz + Freeze display + Zamrzni prikaz - Freezes the current view position - Zamrznii trenutni prikaz položaja + Freezes the current view position + Zamrznii trenutni prikaz položaja - - + + StdCmdHideObjects - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Hide all objects - Sakrij sve objekte + Hide all objects + Sakrij sve objekte - Hide all objects in the document - Sakrij sve objekte u dokument + Hide all objects in the document + Sakrij sve objekte u dokument - - + + StdCmdHideSelection - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Hide selection - Sakrij odabir + Hide selection + Sakrij odabir - Hide all selected objects - Sakrij sve odabrane objekte + Hide all selected objects + Sakrij sve odabrane objekte - - + + StdCmdImport - File - Datoteka + File + Datoteka - &Import... - &Uvoz... + &Import... + &Uvoz... - Import a file in the active document - Uvoz datoteke u aktivnom dokumentu + Import a file in the active document + Uvoz datoteke u aktivnom dokumentu - Supported formats - Podržani formati + Supported formats + Podržani formati - All files (*.*) - Sve datoteke (*.*) + All files (*.*) + Sve datoteke (*.*) - - + + StdCmdMacroStartDebug - Macro - Makro + Macro + Makro - Debug macro - Ispravljanje pogreÅ¡aka na makro naredbi + Debug macro + Ispravljanje pogreÅ¡aka na makro naredbi - Start debugging of macro - Pokreni ispravljanje pogreÅ¡aka na makro naredbi + Start debugging of macro + Pokreni ispravljanje pogreÅ¡aka na makro naredbi - - + + StdCmdMacroStepOver - Macro - Makro + Macro + Makro - Step over - Korak preko + Step over + Korak preko - - + + StdCmdMacroStopDebug - Macro - Makro + Macro + Makro - Stop debugging - Zaustavi provjeru pogreÅ¡aka + Stop debugging + Zaustavi provjeru pogreÅ¡aka - Stop debugging of macro - Zaustavi provjeru pogreÅ¡aka na makro naredbi + Stop debugging of macro + Zaustavi provjeru pogreÅ¡aka na makro naredbi - - + + StdCmdMacroStopRecord - Macro - Makro + Macro + Makro - S&top macro recording - Zaus&tavljanje snimanja makro naredbe + S&top macro recording + Zaus&tavljanje snimanja makro naredbe - Stop the macro recording session - Zaustavljanje snimanja makro naredbe + Stop the macro recording session + Zaustavljanje snimanja makro naredbe - - + + StdCmdMeasureDistance - View - Pregled + View + Pregled - Measure distance - Mjerenje udaljenosti + Measure distance + Mjerenje udaljenosti - - + + StdCmdMeasurementSimple - Tools - Alati + Tools + Alati - Mesure distance - Izmjeri udaljenost + Mesure distance + Izmjeri udaljenost - Measures distance between two selected objects - Mjeri udaljenost izmeÄ‘u dvaju odabranih objekata + Measures distance between two selected objects + Mjeri udaljenost izmeÄ‘u dvaju odabranih objekata - - + + Measure distance + Mjerenje udaljenosti + + + StdCmdMergeProjects - File - Datoteka + File + Datoteka - Merge project... - Spoji projekt ... + Merge project... + Spoji projekt ... - Merge project - Spoji projekt + Merge project + Spoji projekt - %1 document (*.fcstd) - %1 dokument (*.fcstd) + %1 document (*.fcstd) + %1 dokument (*.fcstd) - Cannot merge project with itself. - Ne mogu spojiti projekt sa samim sobom. + Cannot merge project with itself. + Ne mogu spojiti projekt sa samim sobom. - - + + StdCmdNew - File - Datoteka + File + Datoteka - &New - &Novi + &New + &Novi - Create a new empty document - Kreira novi prazni dokument + Create a new empty document + Kreira novi prazni dokument - - + + StdCmdOnlineHelp - Help - Pomoć + Help + Pomoć - Show help to the application - Pokaži pomoć za primjenu + Show help to the application + Pokaži pomoć za primjenu - - + + StdCmdOnlineHelpPython - Help - Pomoć + Help + Pomoć - Python Manuals - Python priruÄnici + Python Manuals + Python priruÄnici - Show the Python documentation - Pokaži Python dokumentaciju + Show the Python documentation + Pokaži Python dokumentaciju - - + + StdCmdOnlineHelpWebsite - Help - Pomoć + Help + Pomoć - Help Website - Pomoć Web stranica + Help Website + Pomoć Web stranica - The website where the help is maintained - Web stranica gdje se održava pomoć + The website where the help is maintained + Web stranica gdje se održava pomoć - - + + StdCmdOpen - File - Datoteka + File + Datoteka - &Open... - &Otvori... + &Open... + &Otvori... - Open a document or import files - Otvorite dokument ili uvoz datoteke + Open a document or import files + Otvorite dokument ili uvoz datoteke - Supported formats - Podržani formati + Supported formats + Podržani formati - All files (*.*) - Sve datoteke (*.*) + All files (*.*) + Sve datoteke (*.*) - - + + StdCmdPaste - Edit - Uredi + Edit + Uredi - &Paste - &Zalijepi + &Paste + &Zalijepi - Paste operation - Zalijepi + Paste operation + Zalijepi - - + + StdCmdPlacement - Edit - Uredi + Edit + Uredi - Placement... - Postavljanje... + Placement... + Postavljanje... - Place the selected objects - Postavlja odabrane objekte + Place the selected objects + Postavlja odabrane objekte - - + + StdCmdPrint - File - Datoteka + File + Datoteka - &Print... - Is&pis ... + &Print... + Is&pis ... - Print the document - Ispis dokumenta + Print the document + Ispis dokumenta - - + + StdCmdPrintPdf - File - Datoteka + File + Datoteka - &Export PDF... - PDF I&zvoz... + &Export PDF... + PDF I&zvoz... - Export the document as PDF - Izvoz kao PDF dokument + Export the document as PDF + Izvoz kao PDF dokument - - + + StdCmdPrintPreview - File - Datoteka + File + Datoteka - &Print preview... - &Pregled ispisa ... + &Print preview... + &Pregled ispisa ... - Print the document - Ispis dokumenta + Print the document + Ispis dokumenta - Print preview - Pregled ispisa + Print preview + Pregled ispisa - - + + StdCmdProjectInfo - File - Datoteka + File + Datoteka - Project i&nformation... - I&nformacije o projektu ... + Project i&nformation... + I&nformacije o projektu ... - Show details of the currently active project - Pokaži detalje o trenutno aktivnom projektu + Show details of the currently active project + Pokaži detalje o trenutno aktivnom projektu - - + + StdCmdProjectUtil - Tools - Alati + Tools + Alati - Project utility... - Korisne opcije projekta... + Project utility... + Korisne opcije projekta... - Utility to extract or create project files - Pomoć prilikom dohvata ili stvaranja projektnih datoteka + Utility to extract or create project files + Pomoć prilikom dohvata ili stvaranja projektnih datoteka - - + + StdCmdPythonWebsite - Help - Pomoć + Help + Pomoć - Python Website - Python Web stranica + Python Website + Python Web stranica - The official Python website - Službena web stranica Python + The official Python website + Službena web stranica Python - - + + StdCmdQuit - File - Datoteka + File + Datoteka - E&xit - Iz&laz + E&xit + Iz&laz - Quits the application - Zatvara aplikaciju + Quits the application + Zatvara aplikaciju - - + + StdCmdRandomColor - File - Datoteka + File + Datoteka - Random color - Random boja + Random color + Random boja - - + + StdCmdRecentFiles - File - Datoteka + File + Datoteka - Recent files - Nedavne datoteke + Recent files + Nedavne datoteke - Recent file list - Popis nedavnih datoteka + Recent file list + Popis nedavnih datoteka - - + + StdCmdRedo - Edit - Uredi + Edit + Uredi - &Redo - &Ponovi + &Redo + &Ponovi - Redoes a previously undone action - Vraća prethodno poniÅ¡tenog akciju + Redoes a previously undone action + Vraća prethodno poniÅ¡tenog akciju - - + + StdCmdRefresh - Edit - Uredi + Edit + Uredi - &Refresh - &Osvježi + &Refresh + &Osvježi - Recomputes the current active document - Ponovno proraÄunava trenutni aktivni dokument + Recomputes the current active document + Ponovno proraÄunava trenutni aktivni dokument - - + + StdCmdSave - File - Datoteka + File + Datoteka - &Save - &Spremi + &Save + &Spremi - Save the active document - Spremi aktivni dokument + Save the active document + Spremi aktivni dokument - - + + StdCmdSaveAs - File - Datoteka + File + Datoteka - Save &As... - Spremi k&ao... + Save &As... + Spremi k&ao... - Save the active document under a new file name - Spremi aktivni dokument pod novim imenom + Save the active document under a new file name + Spremi aktivni dokument pod novim imenom - - + + StdCmdSceneInspector - Tools - Alati + Tools + Alati - Scene inspector... - Pregled scene... + Scene inspector... + Pregled scene... - Scene inspector - Pregled scene + Scene inspector + Pregled scene - - + + StdCmdSelectAll - Edit - Uredi + Edit + Uredi - Select &All - Ozn&aÄi sve + Select &All + Ozn&aÄi sve - Select all - OznaÄi sve + Select all + OznaÄi sve - - + + StdCmdSetAppearance - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Appearance... - Izgled... + Appearance... + Izgled... - Sets the display properties of the selected object - Postavlja prikaz svojstava odabranog objekta + Sets the display properties of the selected object + Postavlja prikaz svojstava odabranog objekta - - + + StdCmdShowObjects - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Show all objects - Prikaži sve objekte + Show all objects + Prikaži sve objekte - Show all objects in the document - Prikazuje sve objekte u dokument + Show all objects in the document + Prikazuje sve objekte u dokument - - + + StdCmdShowSelection - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Show selection - Prikaži izbor + Show selection + Prikaži izbor - Show all selected objects - Prikazuje sve odabrane objekte + Show all selected objects + Prikazuje sve odabrane objekte - - + + StdCmdStatusBar - View - Pregled + View + Pregled - Status bar - Statusna traka + Status bar + Statusna traka - Toggles the status bar - UkljuÄuje/iskljuÄuje statusnu traku + Toggles the status bar + UkljuÄuje/iskljuÄuje statusnu traku - - + + StdCmdTextureMapping - Tools - Alati + Tools + Alati - Texture mapping... - Mapiranje tekstura ... + Texture mapping... + Mapiranje tekstura ... - Texture mapping - Mapiranje tekstura + Texture mapping + Mapiranje tekstura - - + + StdCmdTileWindows - Window - Prozor + Window + Prozor - &Tile - &Naslov + &Tile + &Naslov - Tile the windows - Tile Windows + Tile the windows + Tile Windows - - + + StdCmdToggleBreakpoint - Macro - Makro + Macro + Makro - Toggle breakpoint - UkljuÄi/iskljuÄi prijelomnu toÄku + Toggle breakpoint + UkljuÄi/iskljuÄi prijelomnu toÄku - - + + StdCmdToggleClipPlane - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Clipping plane - ravni isjeÄak + Clipping plane + ravni isjeÄak - Toggles clipping plane for active view - UkljuÄuje ravni isjeÄak za aktivan prikaz + Toggles clipping plane for active view + UkljuÄuje ravni isjeÄak za aktivan prikaz - - + + StdCmdToggleNavigation - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Toggle navigation/Edit mode - Toggle navigacija / Edit modu + Toggle navigation/Edit mode + Toggle navigacija / Edit modu - Toggle between navigation and edit mode - Å etanje izmeÄ‘u navigacije i naÄin za ureÄ‘ivanje + Toggle between navigation and edit mode + Å etanje izmeÄ‘u navigacije i naÄin za ureÄ‘ivanje - - + + StdCmdToggleObjects - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Toggle all objects - UkljuÄi / iskljuÄi sve objekte + Toggle all objects + UkljuÄi / iskljuÄi sve objekte - Toggles visibility of all objects in the active document - UkljuÄuje/iskljuÄuje vidljivost svih objekata u aktivnom dokumentu + Toggles visibility of all objects in the active document + UkljuÄuje/iskljuÄuje vidljivost svih objekata u aktivnom dokumentu - - + + StdCmdToggleSelectability - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Toggle selectability - UkljuÄi/iskljuÄi mogućnost odabira + Toggle selectability + UkljuÄi/iskljuÄi mogućnost odabira - Toggles the property of the objects to get selected in the 3D-View - UkljuÄiuje/iskljuÄuje mogućnost odabira objekta u 3D prikazu + Toggles the property of the objects to get selected in the 3D-View + UkljuÄiuje/iskljuÄuje mogućnost odabira objekta u 3D prikazu - - + + StdCmdToggleVisibility - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Toggle visibility - Promjeni vidljivost + Toggle visibility + Promjeni vidljivost - Toggles visibility - UkljuÄuje/iskljuÄuje vidljivost + Toggles visibility + UkljuÄuje/iskljuÄuje vidljivost - - + + StdCmdToolBarMenu - View - Pregled + View + Pregled - Tool&bars - Alatne tra&ke + Tool&bars + Alatne tra&ke - Toggles this window - UkljuÄuje ovaj prozor + Toggles this window + UkljuÄuje ovaj prozor - - + + StdCmdTransform - Edit - Uredi + Edit + Uredi - Transform... - Transformacija ... + Transform... + Transformacija ... - Transform the geometry of selected objects - Preobraziti geometriju odabranih objekata + Transform the geometry of selected objects + Preobraziti geometriju odabranih objekata - - + + StdCmdTreeSelection - View - Pregled + View + Pregled - Go to selection - Idi na odabrane objekte + Go to selection + Idi na odabrane objekte - Scroll to first selected item - DoÄ‘ite na prvu odabranu stavku + Scroll to first selected item + DoÄ‘ite na prvu odabranu stavku - - + + StdCmdUndo - Edit - Uredi + Edit + Uredi - &Undo - Poni&Å¡ti + &Undo + Poni&Å¡ti - Undo exactly one action - PoniÅ¡ti toÄno jednu radnju + Undo exactly one action + PoniÅ¡ti toÄno jednu radnju - - + + StdCmdUserInterface - View - Pregled + View + Pregled - Dock views - Usidri poglede + Dock views + Usidri poglede - Dock all top-level views - Usidri sve poglede najviÅ¡e razine + Dock all top-level views + Usidri sve poglede najviÅ¡e razine - - + + StdCmdViewAxo - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Axometric - Axometric + Axometric + Axometric - Set to axometric view - Postavite axometric prikaz + Set to axometric view + Postavite axometric prikaz - - + + StdCmdViewBottom - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Bottom - Ispod + Bottom + Ispod - Set to bottom view - Postavite pogled od dolje + Set to bottom view + Postavite pogled od dolje - - + + StdCmdViewCreate - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Create new view - Napravi novi pogled + Create new view + Napravi novi pogled - Creates a new view window for the active document - Stvara novi prikaz prozora za aktivni dokument + Creates a new view window for the active document + Stvara novi prikaz prozora za aktivni dokument - - + + StdCmdViewExample1 - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Inventor example #1 - Inventor primjer #1 + Inventor example #1 + Inventor primjer #1 - Shows a 3D texture with manipulator - Pokazuje 3D teksturu sa manipulatorom + Shows a 3D texture with manipulator + Pokazuje 3D teksturu sa manipulatorom - - + + StdCmdViewExample2 - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Inventor example #2 - Inventor primjer #2 + Inventor example #2 + Inventor primjer #2 - Shows spheres and drag-lights - Pokazuje sferu i pomicanje svjetla + Shows spheres and drag-lights + Pokazuje sferu i pomicanje svjetla - - + + StdCmdViewExample3 - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Inventor example #3 - Inventor primjer #3 + Inventor example #3 + Inventor primjer #3 - Shows a animated texture - Pokazuje animirane teksture + Shows a animated texture + Pokazuje animirane teksture - - + + StdCmdViewFitAll - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Fit all - Prikaži sve + Fit all + Prikaži sve - Fits the whole content on the screen - Prikazuje sav sadržaj na zaslonu + Fits the whole content on the screen + Prikazuje sav sadržaj na zaslonu - - + + StdCmdViewFitSelection - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Fit selection - Prikaži odabir + Fit selection + Prikaži odabir - Fits the selected content on the screen - Prikazuje odabrani sadržaj na zaslonu + Fits the selected content on the screen + Prikazuje odabrani sadržaj na zaslonu - - + + StdCmdViewFront - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Front - Ispred + Front + Ispred - Set to front view - Postavlja pogled od gore + Set to front view + Postavlja pogled od gore - - + + StdCmdViewIvIssueCamPos - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Issue camera position - Upit za položaj kamere + Issue camera position + Upit za položaj kamere - Issue the camera position to the console and to a macro, to easily recall this position - Sprema poziciju kamere na konzolu i makro, radi lakÅ¡eg vraćanja na ovaj pogled + Issue the camera position to the console and to a macro, to easily recall this position + Sprema poziciju kamere na konzolu i makro, radi lakÅ¡eg vraćanja na ovaj pogled - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Stereo Interleaved Columns - Stereo Interleaved Kolumne + Stereo Interleaved Columns + Stereo Interleaved Kolumne - Switch stereo viewing to Interleaved Columns - Prebaci stereo gledanje na Interleaved stupce + Switch stereo viewing to Interleaved Columns + Prebaci stereo gledanje na Interleaved stupce - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Stereo Interleaved Rows - Stereo Interleaved redak + Stereo Interleaved Rows + Stereo Interleaved redak - Switch stereo viewing to Interleaved Rows - Prebaci stereo gledanje na retke Interleaved + Switch stereo viewing to Interleaved Rows + Prebaci stereo gledanje na retke Interleaved - - + + StdCmdViewIvStereoOff - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Stereo Off - Stereo Off + Stereo Off + Stereo Off - Switch stereo viewing off - Prebacite stereo gledanje off + Switch stereo viewing off + Prebacite stereo gledanje off - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Stereo quad buffer - Stereo quad tampon + Stereo quad buffer + Stereo quad tampon - Switch stereo viewing to quad buffer - Prebaci stereo gledanje na quad tampon + Switch stereo viewing to quad buffer + Prebaci stereo gledanje na quad tampon - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Stereo red/green - Stereo crveno / zeleno + Stereo red/green + Stereo crveno / zeleno - Switch stereo viewing to red/green - Prebaci stereo gledanje u crveno / zeleno + Switch stereo viewing to red/green + Prebaci stereo gledanje u crveno / zeleno - - + + StdCmdViewLeft - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Left - Lijevo + Left + Lijevo - Set to left view - Postavlja pogled s lijeve strane + Set to left view + Postavlja pogled s lijeve strane - - + + StdCmdViewRear - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Rear - Iza + Rear + Iza - Set to rear view - Postavlja pogled sa stražnje strane + Set to rear view + Postavlja pogled sa stražnje strane - - + + StdCmdViewRight - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Right - Desno + Right + Desno - Set to right view - Postavlja pogled sa desne strane + Set to right view + Postavlja pogled sa desne strane - - + + + StdCmdViewRotateLeft + + Standard-View + Standardni pogled + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standardni pogled + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Top - Gore + Top + Gore - Set to top view - Postavlja pogled sa gornje strane + Set to top view + Postavlja pogled sa gornje strane - - + + StdCmdWhatsThis - Help - Pomoć + Help + Pomoć - &What's This? - &Å to je ovo? + &What's This? + &Å to je ovo? - What's This - Å to je ovo + What's This + Å to je ovo - - + + StdCmdWindows - Window - Prozor + Window + Prozor - &Windows... - &Prozori ... + &Windows... + &Prozori ... - Windows list - Popis prozora + Windows list + Popis prozora - - + + StdCmdWindowsMenu - Window - Prozor + Window + Prozor - Activates this window - Aktivira ovaj prozor + Activates this window + Aktivira ovaj prozor - - + + StdCmdWorkbench - View - Pregled + View + Pregled - Workbench - Workbench + Workbench + Workbench - Switch between workbenches - Prebacivanje izmeÄ‘u workbenches + Switch between workbenches + Prebacivanje izmeÄ‘u workbenches - - + + StdOrthographicCamera - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Orthographic view - Ortografski pogled + Orthographic view + Ortografski pogled - Switches to orthographic view mode - Postavlja ortografski naÄin pregleda + Switches to orthographic view mode + Postavlja ortografski naÄin pregleda - - + + StdPerspectiveCamera - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Perspective view - Perspektivni pogled + Perspective view + Perspektivni pogled - Switches to perspective view mode - Prebacuje u perspektivan naÄin pregleda + Switches to perspective view mode + Prebacuje u perspektivan naÄin pregleda - - + + StdViewBoxZoom - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Box zoom - Zumiranje u okvir + Box zoom + Zumiranje u okvir - - + + StdViewDockUndockFullscreen - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Document window - Dokument prozor + Document window + Dokument prozor - Display the active view either in fullscreen, in undocked or docked mode - Prikaz aktivnog pogleda preko cijelog zaslona, u plutajućem ili usidrenom naÄinu + Display the active view either in fullscreen, in undocked or docked mode + Prikaz aktivnog pogleda preko cijelog zaslona, u plutajućem ili usidrenom naÄinu - - + + StdViewScreenShot - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Save picture... - Spremi sliku... + Save picture... + Spremi sliku... - Creates a screenshot of the active view - Stvara sliku aktivnog pogleda + Creates a screenshot of the active view + Stvara sliku aktivnog pogleda - - + + StdViewZoomIn - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Zoom In - Zumirati unutra + Zoom In + Zumirati unutra - - + + StdViewZoomOut - Standard-View - Standardni pogled + Standard-View + Standardni pogled - Zoom Out - Zumirati van + Zoom Out + Zumirati van - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Datoteka + &File + &Datoteka - &Edit - &Uredi + &Edit + &Uredi - Standard views - Standardni pogledi + Standard views + Standardni pogledi - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zumiraj + &Zoom + &Zumiraj - Visibility - Vidljivost + Visibility + Vidljivost - &View - &Pogled + &View + &Pogled - &Tools - &Alati + &Tools + &Alati - &Macro - &Makro + &Macro + &Makro - &Windows - &Prozori + &Windows + &Prozori - &On-line help - &On-line pomoć + &On-line help + &On-line pomoć - &Help - &Pomoć + &Help + &Pomoć - File - Datoteka + File + Datoteka - Macro - Makro + Macro + Makro - View - Pregled + View + Pregled - Special Ops - Specijalne radnje + Special Ops + Specijalne radnje - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"> <span style=" font-size:12pt;">Kreirano za Qt 4.3.x</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"> www.ii-system.com </p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"> <span style=" font-size:12pt;">Kreirano za Qt 4.3.x</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"> www.ii-system.com </p></body></html> - Choose the style of the Task Panel - Odaberite stil Radne ploÄe + Choose the style of the Task Panel + Odaberite stil Radne ploÄe - Default - Inicijalno + Default + Inicijalno - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_hu.ts b/src/Gui/Language/FreeCAD_hu.ts index 74d0db3b5..11a94b222 100644 --- a/src/Gui/Language/FreeCAD_hu.ts +++ b/src/Gui/Language/FreeCAD_hu.ts @@ -1,5489 +1,5907 @@ - - + + Angle - Form - Űrlap + Form + Űrlap - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Szögtartás + Angle Snap + Szögtartás - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - egyik sem + none + egyik sem - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Hozzáad + + + Remove + Törlés + + + Move up + Mozgatás felfelé + + + Move down + Mozgatás lefelé + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Nyomja meg a bal egérgombot + Press left mouse button + Nyomja meg a bal egérgombot - Press SHIFT and middle mouse button - Nyomja le a SHIFT BILLENTYŰT, és a középsÅ‘ egérgomb + Press SHIFT and middle mouse button + Nyomja le a SHIFT BILLENTYŰT, és a középsÅ‘ egérgomb - Press middle mouse button - Nyomja meg a középsÅ‘ egérgombot + Press middle mouse button + Nyomja meg a középsÅ‘ egérgombot - Scroll middle mouse button - Görgesse a középsÅ‘ egérgombot + Scroll middle mouse button + Görgesse a középsÅ‘ egérgombot - - + + Gui::CADNavigationStyle - Press left mouse button - Nyomja meg a bal egérgombot + Press left mouse button + Nyomja meg a bal egérgombot - Press middle mouse button - Nyomja meg a középsÅ‘ egérgombot + Press middle mouse button + Nyomja meg a középsÅ‘ egérgombot - Press left and middle mouse button - Nyomja meg a bal és a középsÅ‘ egérgombot + Press left and middle mouse button + Nyomja meg a bal és a középsÅ‘ egérgombot - Scroll middle mouse button - Görgesse a középsÅ‘ egérgombot + Scroll middle mouse button + Görgesse a középsÅ‘ egérgombot - - + + Gui::Command - Standard - Szabvány + Standard + Szabvány - - + + Gui::ContainerDialog - &OK - OK + &OK + OK - &Cancel - Mégse + &Cancel + Mégse - - + + Gui::ControlSingleton - Task panel - Feladat panel + Task panel + Feladat panel - - + + Gui::Dialog::AboutApplication - About - Névjegy + About + Névjegy - Revision number - Felülvizsgálati szám + Revision number + Felülvizsgálati szám - Version - Verzió + Version + Verzió - OK - OK + OK + OK - - Program infó + + Program infó - Release date - Megjelenés éve + Release date + Megjelenés éve - Platform - Platform + Platform + Platform - License... - Licenc... + License... + Licenc... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Gomb % 1 + Button %1 + Gomb % 1 - Out Of Range - Tartományon kívüli + Out Of Range + Tartományon kívüli - - + + Gui::Dialog::CommandModel - Commands - Parancsok + Commands + Parancsok - - + + Gui::Dialog::DemoMode - View Turntable - Forgó asztal nézet + View Turntable + Forgó asztal nézet - Speed - Sebesség + Speed + Sebesség - Maximum - Maximális + Maximum + Maximális - Minimum - Minimális + Minimum + Minimális - Fullscreen - Teljes képernyÅ‘s + Fullscreen + Teljes képernyÅ‘s - Enable timer - IdÅ‘zítÅ‘ engedélezése + Enable timer + IdÅ‘zítÅ‘ engedélezése - s - s + s + s - Angle - Szög + Angle + Szög + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Lejátszás - -90° - -90° + Stop + Megállít - Play - Lejátszás + Close + Bezárás - - Stop - Megállít - - - Close - Bezárás - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Válasszon ablakot + Choose Window + Válasszon ablakot - &Activate - &Aktiválás + &Activate + &Aktiválás - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - Mégse + &Cancel + Mégse - - Program infó + + Program infó - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Ablak + Windows + Ablak - - + + Gui::Dialog::DlgAuthorization - Authorization - Azonosítás + Authorization + Azonosítás - &OK - OK + &OK + OK - &Cancel - Mégse + &Cancel + Mégse - Password: - Jelszó: + Password: + Jelszó: - User name: - Felhasználói név: + User name: + Felhasználói név: - - Program infó + + Program infó - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Válassz ikont + Choose Icon + Válassz ikont - OK - OK + OK + OK - Cancel - Mégse + Cancel + Mégse - Add icons... - Ikon hozzáadása... + Add icons... + Ikon hozzáadása... - - + + Gui::Dialog::DlgCustomActions - Macros - Makrók + Macros + Makrók - Setup Custom Macros - Egyedi makrók beállítása + Setup Custom Macros + Egyedi makrók beállítása - Macro: - Makró: + Macro: + Makró: - ... - ... + ... + ... - Pixmap - Pixkép + Pixmap + Pixkép - Accelerator: - Gyorsító: + Accelerator: + Gyorsító: - What's this: - Mi ez: + What's this: + Mi ez: - Status text: - Ãllapot szöveg: + Status text: + Ãllapot szöveg: - Tool tip: - Eszközleírás: + Tool tip: + Eszközleírás: - Menu text: - Menü szöveg: + Menu text: + Menü szöveg: - Add - Hozzáad + Add + Hozzáad - Remove - Törlés + Remove + Törlés - Replace - Módosít + Replace + Módosít - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikonok + Icons + Ikonok - Macros - Makrók + Macros + Makrók - No macro - Nincs makró + No macro + Nincs makró - No macros found. - Nem találhatók makrók. + No macros found. + Nem találhatók makrók. - Macro not found - Makró nem található + Macro not found + Makró nem található - Sorry, couldn't find macro file '%1'. - Sajnáljuk, nem található makró file '%1'. + Sorry, couldn't find macro file '%1'. + Sajnáljuk, nem található makró file '%1'. - Empty macro - Üres makró + Empty macro + Üres makró - Please specify the macro first. - ElÅ‘ször adjon meg makrót. + Please specify the macro first. + ElÅ‘ször adjon meg makrót. - Empty text - Üres szöveg + Empty text + Üres szöveg - Please specify the menu text first. - ElÅ‘ször adjon meg menü szöveget. + Please specify the menu text first. + ElÅ‘ször adjon meg menü szöveget. - No item selected - Nincs elem kiválasztva + No item selected + Nincs elem kiválasztva - Please select a macro item first. - Kérem elÅ‘bb adjon meg makró elemet. + Please select a macro item first. + Kérem elÅ‘bb adjon meg makró elemet. - - + + Gui::Dialog::DlgCustomCommands - Commands - Parancsok + Commands + Parancsok - - Program infó + + Program infó - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategória + Category + Kategória - Icon - Ikon + Icon + Ikon - Command - Parancs + Command + Parancs - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Billentyűzet + Keyboard + Billentyűzet - Description: - Leírás: + Description: + Leírás: - &Category: - &Csoportosítás: + &Category: + &Csoportosítás: - C&ommands: - Parancs&ok: + C&ommands: + Parancs&ok: - Current shortcut: - MeglévÅ‘ útvonal: + Current shortcut: + MeglévÅ‘ útvonal: - Press &new shortcut: - Nyomja le új elérési úthoz: + Press &new shortcut: + Nyomja le új elérési úthoz: - Currently assigned to: - Aktuális hozzárendelés: + Currently assigned to: + Aktuális hozzárendelés: - &Assign - Hozzárendelés + &Assign + Hozzárendelés - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - Visszaállít + &Reset + Visszaállít - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Mind visszaállít + Re&set All + Mind visszaállít - Alt+S - Alt+S + Alt+S + Alt+S - - Program infó + + Program infó - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikon + Icon + Ikon - Command - Parancs + Command + Parancs - none - egyik sem + none + egyik sem - Multiple defined shortcut - Többszörösen definiált elérési út + Multiple defined shortcut + Többszörösen definiált elérési út - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Az '%1' elérési út többszÅ‘r lett definiálva. Ez nem megfelelÅ‘ működéshez vezethet. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Az '%1' elérési út többszÅ‘r lett definiálva. Ez nem megfelelÅ‘ működéshez vezethet. - Already defined shortcut - Már definiált elérési út + Already defined shortcut + Már definiált elérési út - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - A '%1' elérési út már a '%2' hoz rendelve. + A '%1' elérési út már a '%2' hoz rendelve. Kérem másik elérési utat definiálni. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Eszköztár ablakok + Toolbox bars + Eszköztár ablakok - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Eszköztárak + Toolbars + Eszköztárak - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> A változások következÅ‘ alkalommal válnak aktívvá, amikor betölti a megfelelÅ‘ munkafelületet </p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> A változások következÅ‘ alkalommal válnak aktívvá, amikor betölti a megfelelÅ‘ munkafelületet </p></body></html> - Move right - Mozgatás jobbra + Move right + Mozgatás jobbra - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> - Move left - Mozgatás balra + Move left + Mozgatás balra - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> - Move down - Mozgatás lefelé + Move down + Mozgatás lefelé - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> - Move up - Mozgatás felfelé + Move up + Mozgatás felfelé - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> - New... - Új... + New... + Új... - Rename... - Ãtnevezés... + Rename... + Ãtnevezés... - Delete - Törlés + Delete + Törlés - Icon - Ikon + Icon + Ikon - Command - Parancs + Command + Parancs - <Separator> - <Szóköz> + <Separator> + <Szóköz> - New toolbar - Új eszköztár + New toolbar + Új eszköztár - Toolbar name: - Eszköztár neve: + Toolbar name: + Eszköztár neve: - Duplicated name - Ismételt név + Duplicated name + Ismételt név - The toolbar name '%1' is already used - Az '%1' eszköztár név már használatban + The toolbar name '%1' is already used + Az '%1' eszköztár név már használatban - Rename toolbar - Eszköztár átnevezése + Rename toolbar + Eszköztár átnevezése - - Program infó + + Program infó - - + + Gui::Dialog::DlgCustomizeImp - Customize - Testreszabás + Customize + Testreszabás - &Help - &Súgó + &Help + &Súgó - &Close - Be&zárás + &Close + Be&zárás - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Gombok + Buttons + Gombok - Clear - Törlés + Clear + Törlés - Print Reference - Nyomtatási hivatkozás + Print Reference + Nyomtatási hivatkozás - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Tulajdonságok megjelenítése + Display properties + Tulajdonságok megjelenítése - Display - Megjelenítés + Display + Megjelenítés - Transparency: - Ãtlátszóság: + Transparency: + Ãtlátszóság: - Line width: - Vonalstílus: + Line width: + Vonalstílus: - Point size: - Méret: + Point size: + Méret: - Material - Anyag + Material + Anyag - ... - ... + ... + ... - Close - Bezárás + Close + Bezárás - Viewing mode - Nézet + Viewing mode + Nézet - Display mode: - Megjelenítési mód: + Display mode: + Megjelenítési mód: - Plot mode: - Nyomtatási mód: + Plot mode: + Nyomtatási mód: - - Program infó + + Program infó - Line transparency: - Vonal átláthatóság: + Line transparency: + Vonal átláthatóság: - Line color: - Vonal színe: + Line color: + Vonal színe: - Shape color: - Alakzat színe: + Shape color: + Alakzat színe: - Color plot: - Színes nyomtatás: + Color plot: + Színes nyomtatás: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - SzerkesztÅ‘ + Editor + SzerkesztÅ‘ - Options - Beállítások + Options + Beállítások - Enable line numbers - Sorszámozás bekapcsolása + Enable line numbers + Sorszámozás bekapcsolása - Enable folding - Hajlítás bekapcsolása + Enable folding + Hajlítás bekapcsolása - Indentation - Azonosítás + Indentation + Azonosítás - Insert spaces - Szóközök beszúrása + Insert spaces + Szóközök beszúrása - Tab size: - Tabulátorméret: + Tab size: + Tabulátorméret: - Indent size: - Azonosítási méret: + Indent size: + Azonosítási méret: - Keep tabs - Tabulátorok megtartása + Keep tabs + Tabulátorok megtartása - Display Items - Részletek megtekintése + Display Items + Részletek megtekintése - Family: - SzülÅ‘: + Family: + SzülÅ‘: - Size: - Méret: + Size: + Méret: - Preview: - ElÅ‘nézet: + Preview: + ElÅ‘nézet: - - Program infó + + Program infó - - + + Gui::Dialog::DlgGeneral - General - Ãltalános + General + Ãltalános - Start up - KezdÅ‘ oldal + Start up + KezdÅ‘ oldal - Enable splash screen at start up - Felugró ablak bekapcsolása a kezdÅ‘ oldalon + Enable splash screen at start up + Felugró ablak bekapcsolása a kezdÅ‘ oldalon - Switch to tab of report window: - Váltás a jelentés ablakra: + Switch to tab of report window: + Váltás a jelentés ablakra: - Auto load module after start up: - Modul automatikus betöltése indulás után: + Auto load module after start up: + Modul automatikus betöltése indulás után: - Language - Nyelv + Language + Nyelv - Change language: - Nyelvválasztás: + Change language: + Nyelvválasztás: - Main window - FÅ‘ablak + Main window + FÅ‘ablak - Size of recent file list - Utoljára megnyitott fájlok listájának mérete + Size of recent file list + Utoljára megnyitott fájlok listájának mérete - Window style: - Ablakstílus: + Window style: + Ablakstílus: - Size of toolbar icons: - Eszköztárikonok mérete: + Size of toolbar icons: + Eszköztárikonok mérete: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Alapértelmezett (% 1 x% 1) + Default (%1 x %1) + Alapértelmezett (% 1 x% 1) - Small (%1 x %1) - Kicsi (% 1 x% 1) + Small (%1 x %1) + Kicsi (% 1 x% 1) - Large (%1 x %1) - Nagy (% 1 x% 1) + Large (%1 x %1) + Nagy (% 1 x% 1) - Extra large (%1 x %1) - Extra nagy (%1 x%1) + Extra large (%1 x %1) + Extra nagy (%1 x%1) - - + + Gui::Dialog::DlgInputDialog - Input - Bevitel + Input + Bevitel - OK - OK + OK + OK - Cancel - Mégse + Cancel + Mégse - - Program infó + + Program infó - - + + Gui::Dialog::DlgInspector - Scene Inspector - Jelenet felügyelÅ‘ + Scene Inspector + Jelenet felügyelÅ‘ - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Makró végrehajtása + Execute macro + Makró végrehajtása - Macro name: - Makrónév: + Macro name: + Makrónév: - Macro destination: - Makró helye: + Macro destination: + Makró helye: - Execute - Végrehajtás + Execute + Végrehajtás - Close - Bezárás + Close + Bezárás - Create - Létrehozás + Create + Létrehozás - Delete - Törlés + Delete + Törlés - Edit - Módosítás + Edit + Módosítás - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makrók + Macros + Makrók - Macro file - Makró fájl + Macro file + Makró fájl - Enter a file name, please: - Kérem, adja meg a fájl nevét: + Enter a file name, please: + Kérem, adja meg a fájl nevét: - Existing file - LétezÅ‘ fájl + Existing file + LétezÅ‘ fájl - '%1'. + '%1'. This file already exists. - '%1'. Ez a fájl már létezik. + '%1'. Ez a fájl már létezik. - Delete macro - Makró törlése + Delete macro + Makró törlése - Do you really want to delete the macro '%1'? - Valóban törölni szeretné a "'%1'" nevű makrót? + Do you really want to delete the macro '%1'? + Valóban törölni szeretné a "'%1'" nevű makrót? - Cannot create file - Nem lehet létrehozni a fájlt + Cannot create file + Nem lehet létrehozni a fájlt - Creation of file '%1' failed. - Nem sikerült létrehozni a(z) '%1'. + Creation of file '%1' failed. + Nem sikerült létrehozni a(z) '%1'. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Makró rögzítése + Macro recording + Makró rögzítése - Macro name: - Makrónév: + Macro name: + Makrónév: - Stop - Megállít + Stop + Megállít - Cancel - Mégse + Cancel + Mégse - Macro path: - Makró elérési útja: + Macro path: + Makró elérési útja: - ... - ... + ... + ... - Record - Rögzítés + Record + Rögzítés - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - MakrórögzítÅ‘ + Macro recorder + MakrórögzítÅ‘ - Specify first a place to save. - ElÅ‘ször adjon meg egy helyet a mentésnek. + Specify first a place to save. + ElÅ‘ször adjon meg egy helyet a mentésnek. - Existing macro - LétezÅ‘ makró + Existing macro + LétezÅ‘ makró - The macro '%1' already exists. Do you want to overwrite? - A '%1' makró már létezik. Szeretné felülírni? + The macro '%1' already exists. Do you want to overwrite? + A '%1' makró már létezik. Szeretné felülírni? - The macro directory doesn't exist. Please, choose another one. - A makró könyvtár nem létezik. Kérjük, válasszon egy másikat. + The macro directory doesn't exist. Please, choose another one. + A makró könyvtár nem létezik. Kérjük, válasszon egy másikat. - Choose macro directory - Válassza ki a makró könyvtárat + Choose macro directory + Válassza ki a makró könyvtárat - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Alapanyag tulajdonságai + Material properties + Alapanyag tulajdonságai - &Close - Be&zárás + &Close + Be&zárás - Alt+C - Alt + C + Alt+C + Alt + C - Material - Anyag + Material + Anyag - Diffuse color: - Szórt szín: + Diffuse color: + Szórt szín: - Specular color: - TükrözÅ‘dési szín: + Specular color: + TükrözÅ‘dési szín: - Shininess: - Fényesség: + Shininess: + Fényesség: - % - % + % + % - Ambient color: - Környezeti szín: + Ambient color: + Környezeti szín: - - Program infó + + Program infó - Emissive color: - Sugárzó szín: + Emissive color: + Sugárzó szín: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - On-line segítség + On-line help + On-line segítség - Help viewer - Segítség nézegetÅ‘ + Help viewer + Segítség nézegetÅ‘ - Location of start page - A start oldal helye + Location of start page + A start oldal helye - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML file-k (*.html *.htm) + HTML files (*.html *.htm) + HTML file-k (*.html *.htm) - Access denied - Hozzáférés megtagadva + Access denied + Hozzáférés megtagadva - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Az '%1' -hez hozzáférés megtagadva + Az '%1' -hez hozzáférés megtagadva Kérem válasszon másik könyvtárat. - - + + Gui::Dialog::DlgParameter - Parameter Editor - ParaméterszerkesztÅ‘ + Parameter Editor + ParaméterszerkesztÅ‘ - Save to disk - Mentés lemezre + Save to disk + Mentés lemezre - Alt+C - Alt + C + Alt+C + Alt + C - &Close - Be&zárás + &Close + Be&zárás - - + + Gui::Dialog::DlgParameterImp - Group - Csoport + Group + Csoport - Name - Név + Name + Név - Type - Típus + Type + Típus - Value - Érték + Value + Érték - User parameter - Felhasználói paraméterek + User parameter + Felhasználói paraméterek - Invalid input - Érvénytelen adat + Invalid input + Érvénytelen adat - Invalid key name '%1' - Érvénytelen kulcs név '%1' + Invalid key name '%1' + Érvénytelen kulcs név '%1' - System parameter - Rendszer paraméter + System parameter + Rendszer paraméter - - + + Gui::Dialog::DlgPreferences - Preferences - Testreszabás + Preferences + Testreszabás - &Help - &Súgó + &Help + &Súgó - Alt+H - Alt+H + Alt+H + Alt+H - &OK - OK + &OK + OK - &Apply - Alkalmaz + &Apply + Alkalmaz - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - Mégse + &Cancel + Mégse - - Program infó + + Program infó - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Hibás paraméter + Wrong parameter + Hibás paraméter - - + + Gui::Dialog::DlgProjectInformation - Project information - Információ a feladatról + Project information + Információ a feladatról - Information - Információ + Information + Információ - &Name: - &Név: + &Name: + &Név: - Commen&t: - Megjegyzés: + Commen&t: + Megjegyzés: - Path: - Útvonalak: + Path: + Útvonalak: - &Last modified by: - &Utoljára módosította: + &Last modified by: + &Utoljára módosította: - Created &by: - Létrehozta: + Created &by: + Létrehozta: - Com&pany: - Szervezet: + Com&pany: + Szervezet: - Last &modification date: - Utolsó &módosítás dátuma: + Last &modification date: + Utolsó &módosítás dátuma: - Creation &date: - Létrehozás &dátuma: + Creation &date: + Létrehozás &dátuma: - &OK - OK + &OK + OK - &Cancel - Mégse + &Cancel + Mégse - - Program infó + + Program infó - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project segédprogram + Project utility + Project segédprogram - Extract project - Terv kivonat + Extract project + Terv kivonat - Source - Forrás + Source + Forrás - Project file (*.fcstd) - Project file (*. fcstd) + Project file (*.fcstd) + Project file (*. fcstd) - Destination - Célállomás + Destination + Célállomás - Extract - Kivonat + Extract + Kivonat - Create project - Projekt létrehozása + Create project + Projekt létrehozása - Document.xml - Document.xml + Document.xml + Document.xml - Create - Létrehozás + Create + Létrehozás - Load project file after creation - Betöltése után a projekt fájl létrehozása + Load project file after creation + Betöltése után a projekt fájl létrehozása - Empty source - Üres forrás. + Empty source + Üres forrás. - No source is defined. - Nincs forrás definiálva. + No source is defined. + Nincs forrás definiálva. - Empty destination - Üres célállomás. + Empty destination + Üres célállomás. - No destination is defined. - Nincs célállomás meghatározva. + No destination is defined. + Nincs célállomás meghatározva. - - + + Gui::Dialog::DlgReportView - Output window - Kimeneti ablak + Output window + Kimeneti ablak - Output - Kimenet + Output + Kimenet - Record log messages - Változások naplózása + Record log messages + Változások naplózása - Record warnings - Riasztások feljegyzése + Record warnings + Riasztások feljegyzése - Record error messages - Hibák feljegyzése + Record error messages + Hibák feljegyzése - Colors - Színek + Colors + Színek - Normal messages: - Normal üzenetek: + Normal messages: + Normal üzenetek: - Log messages: - Naplóüzenetek: + Log messages: + Naplóüzenetek: - Warnings: - Riasztások: + Warnings: + Riasztások: - Errors: - Hibaüzenetek: + Errors: + Hibaüzenetek: - - Program infó + + Program infó - Redirect internal Python errors to report view - BelsÅ‘ Python hibák átirányítása a jelentés nézetbe + Redirect internal Python errors to report view + BelsÅ‘ Python hibák átirányítása a jelentés nézetbe - Redirect internal Python output to report view - BelsÅ‘ Python kimenet átirányítása jelentés megtekintéséhez + Redirect internal Python output to report view + BelsÅ‘ Python kimenet átirányítása jelentés megtekintéséhez - - + + Gui::Dialog::DlgRunExternal - Running external program - KülsÅ‘ program futtatása + Running external program + KülsÅ‘ program futtatása - TextLabel - TextLabel + TextLabel + TextLabel - Advanced >> - Haladó >> + Advanced >> + Haladó >> - ... - ... + ... + ... - Accept changes - Módosítások elfogadása + Accept changes + Módosítások elfogadása - Discard changes - Módosítások elvetése + Discard changes + Módosítások elvetése - Abort program - Megszakítja a programot + Abort program + Megszakítja a programot - Help - Súgó + Help + Súgó - Select a file - Válasszon ki egy fájlt + Select a file + Válasszon ki egy fájlt - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D-s nézet + 3D View + 3D-s nézet - 3D View settings - 3D-s nézet beállítások + 3D View settings + 3D-s nézet beállítások - Show coordinate system in the corner - Koordináta rendszer mutatása a sarokban + Show coordinate system in the corner + Koordináta rendszer mutatása a sarokban - Show counter of frames per second - A keret / másodperc mutatása + Show counter of frames per second + A keret / másodperc mutatása - Enable animation - Animáció engedélyezése + Enable animation + Animáció engedélyezése - Enable anti-aliasing (slower) - Élsimítás engedélyezése (lassab megjelenítés) + Enable anti-aliasing (slower) + Élsimítás engedélyezése (lassab megjelenítés) - Eye to eye distance for stereo modes: - Szem távolságának a sztereó módhoz: + Eye to eye distance for stereo modes: + Szem távolságának a sztereó módhoz: - Camera type - Kamera típus + Camera type + Kamera típus - Orthographic rendering - FüggÅ‘leges vetület leképezés + Orthographic rendering + FüggÅ‘leges vetület leképezés - Perspective rendering - Perspektivikus leképezés + Perspective rendering + Perspektivikus leképezés - - Program infó + + Program infó - 3D Navigation - 3D-s navigáció + 3D Navigation + 3D-s navigáció - Mouse... - Egér ... + Mouse... + Egér ... - Intensity of backlight - Háttérvilágítás intenzitása + Intensity of backlight + Háttérvilágítás intenzitása - Enable backlight color - Háttérvilágítás színének engedélyezése + Enable backlight color + Háttérvilágítás színének engedélyezése - Orbit style - Orbit stílus + Orbit style + Orbit stílus - Turntable - Fordítótábla + Turntable + Fordítótábla - Trackball - Trackball + Trackball + Trackball - Invert zoom - Kicsinyítés + Invert zoom + Kicsinyítés - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigáció + %1 navigation + %1 navigáció - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Színmodell + Color model + Színmodell - &Gradient: - &Színátmenet + &Gradient: + &Színátmenet - red-yellow-green-cyan-blue - piros-sárga-zöld-cián-kék + red-yellow-green-cyan-blue + piros-sárga-zöld-cián-kék - blue-cyan-green-yellow-red - kék-cián-zöld-sárga-piros + blue-cyan-green-yellow-red + kék-cián-zöld-sárga-piros - white-black - fehér-fekete + white-black + fehér-fekete - black-white - fekete-fehér + black-white + fekete-fehér - Visibility - Láthatóság + Visibility + Láthatóság - Out g&rayed - Kiszűrkít + Out g&rayed + Kiszűrkít - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Kívül esik&láthatatlan: + Out &invisible + Kívül esik&láthatatlan: - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stílus + Style + Stílus - &Zero - $Zéró + &Zero + $Zéró - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Folyás + &Flow + &Folyás - Alt+F - Alt+F + Alt+F + Alt+F - &OK - OK + &OK + OK - &Cancel - Mégse + &Cancel + Mégse - Parameter range - Paraméter-tartomány + Parameter range + Paraméter-tartomány - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Ma&ximum: + Ma&ximum: + Ma&ximum: - &Labels: - &Cimke: + &Labels: + &Cimke: - &Decimals: - &Tizedesjegyek: + &Decimals: + &Tizedesjegyek: - - Program infó + + Program infó - Color-gradient settings - Színátmenet beállítások + Color-gradient settings + Színátmenet beállítások - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Hibás paraméter + Wrong parameter + Hibás paraméter - The maximum value must be higher than the minimum value. - A maximális értéknek magasabbnak kell lennie, mint a minimális érték. + The maximum value must be higher than the minimum value. + A maximális értéknek magasabbnak kell lennie, mint a minimális érték. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokumentum + Document + Dokumentum - General - Ãltalános + General + Ãltalános - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Dokumentum mentésének tömörítési szintje + Dokumentum mentésének tömörítési szintje (0=nincs, 9=legnagyobb, 3=alapértelmezett) - Create new document at start up - Indításkor egy új munkalap létrehozása + Create new document at start up + Indításkor egy új munkalap létrehozása - Storage - Tárolás + Storage + Tárolás - Saving transactions (Auto-save) - Mentési tranzakciók (Automatikus mentés) + Saving transactions (Auto-save) + Mentési tranzakciók (Automatikus mentés) - Discard saved transaction after saving document - Dobja el a mentett tranzakciókat a munkalap mentését követÅ‘en + Discard saved transaction after saving document + Dobja el a mentett tranzakciókat a munkalap mentését követÅ‘en - Save thumbnail into project file when saving document - Bélyegkép mentése a projektfájlba, munkalap mentésekor + Save thumbnail into project file when saving document + Bélyegkép mentése a projektfájlba, munkalap mentésekor - Create up to backup files when resaving document - Készítsen biztonsági másolatot a fájlról, ha a munkát újra szeretné menteni + Create up to backup files when resaving document + Készítsen biztonsági másolatot a fájlról, ha a munkát újra szeretné menteni - Document objects - Dokumentum objektumok + Document objects + Dokumentum objektumok - Allow duplicate object labels in one document - Engedélyezi, hogy egy dokumentumban duplikált objektumazonosítók legyenek + Allow duplicate object labels in one document + Engedélyezi, hogy egy dokumentumban duplikált objektumazonosítók legyenek - Maximum Undo/Redo steps - Maximális Visszalépés / Újra létrehozás lépések + Maximum Undo/Redo steps + Maximális Visszalépés / Újra létrehozás lépések - Using Undo/Redo on documents - Visszalépés / Újra létrehozás használata a dokumentumokhoz + Using Undo/Redo on documents + Visszalépés / Újra létrehozás használata a dokumentumokhoz - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Szöveg + Text + Szöveg - Bookmark - KönyvjelzÅ‘ + Bookmark + KönyvjelzÅ‘ - Breakpoint - Töréspont + Breakpoint + Töréspont - Keyword - Kulcsszó + Keyword + Kulcsszó - Comment - Megjegyzés + Comment + Megjegyzés - Block comment - Megjegyzés tömb + Block comment + Megjegyzés tömb - Number - Szám + Number + Szám - String - Karakterlánc + String + Karakterlánc - Character - Karakter + Character + Karakter - Class name - Osztálynév + Class name + Osztálynév - Define name - Definiált név + Define name + Definiált név - Operator - Irányító + Operator + Irányító - Python output - Python kimenet + Python output + Python kimenet - Python error - Python hiba + Python error + Python hiba - Items - Elemek + Items + Elemek - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Kép beállításai + Image settings + Kép beállításai - Image properties - Kép tulajdonságai + Image properties + Kép tulajdonságai - Back&ground: - Háttér: + Back&ground: + Háttér: - Current - Aktiális + Current + Aktiális - White - Fehér + White + Fehér - Black - Fekete + Black + Fekete - Transparent - Ãtlátszó + Transparent + Ãtlátszó - Image dimensions - Kép méretei + Image dimensions + Kép méretei - Pixel - Képpont + Pixel + Képpont - &Width: - Szélesség: + &Width: + Szélesség: - Current screen - Aktuális képernyÅ‘ + Current screen + Aktuális képernyÅ‘ - Icon 32 x 32 - Ikon 32 x 32 + Icon 32 x 32 + Ikon 32 x 32 - Icon 64 x 64 - Ikon 64 x 64 + Icon 64 x 64 + Ikon 64 x 64 - Icon 128 x 128 - Ikon 128 x 128 + Icon 128 x 128 + Ikon 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Alap méretek: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + Magasság: - Standard sizes: - Alap méretek: + Aspect ratio: + Méretarány: - &Height: - Magasság: + &Screen + KépernyÅ‘ - Aspect ratio: - Méretarány: + Alt+S + Alt+S - &Screen - KépernyÅ‘ + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Kép Megjegyzés - Alt+1 - Alt+1 + Insert MIBA + MIBA beszúrása - Image comment - Kép Megjegyzés + Insert comment + Megjegyzés beszúrása - - Insert MIBA - MIBA beszúrása - - - Insert comment - Megjegyzés beszúrása - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makró + Macro + Makró - Macro recording settings - Makró felvétel beállításai + Macro recording settings + Makró felvétel beállításai - Logging Commands - Naplózási parancsok + Logging Commands + Naplózási parancsok - Show script commands in python console - A parancsutasítások megjelenítése a python konzolon + Show script commands in python console + A parancsutasítások megjelenítése a python konzolon - Log all commands issued by menus to file: - Naplózza fájlba a menük által kiadott összes parancsot: + Log all commands issued by menus to file: + Naplózza fájlba a menük által kiadott összes parancsot: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - GUI parancsok + Gui commands + GUI parancsok - Recording GUI commands - GUI parancsok rögzítése + Recording GUI commands + GUI parancsok rögzítése - Record as comment - Rögzítés megjegyzésként + Record as comment + Rögzítés megjegyzésként - Macro path - Makró elérési út + Macro path + Makró elérési út - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Egységek + Units + Egységek - Units settings - Egységek beállítása + Units settings + Egységek beállítása - Standard (mm/kg/s/degree) - Standard (mm/kg/s/fok) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/fok) - MKS (m/kg/s/degree) - MKS (m/kg/s/fok) + MKS (m/kg/s/degree) + MKS (m/kg/s/fok) - Magnitude - Méret + Magnitude + Méret - Unit - Egység + Unit + Egység - User system: - Felhasználó rendszer: + User system: + Felhasználó rendszer: - Imperial (in/lb) - Angolszász(in/lb) + Imperial (in/lb) + Angolszász(in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Színek + Colors + Színek - Selection - Kijelölés + Selection + Kijelölés - Enable selection highlighting - Kijelölésnél kiemelés alkalmazása + Enable selection highlighting + Kijelölésnél kiemelés alkalmazása - Enable preselection highlighting - ElÅ‘választás kiemelést tesz lehetÅ‘vé + Enable preselection highlighting + ElÅ‘választás kiemelést tesz lehetÅ‘vé - Background color - Háttér szín + Background color + Háttér szín - Middle color - KözépsÅ‘ szín + Middle color + KözépsÅ‘ szín - Color gradient - Színátmenet + Color gradient + Színátmenet - Simple color - Egyszínű + Simple color + Egyszínű - Default colors - Alapértelmezett színek + Default colors + Alapértelmezett színek - Edited edge color - Szerkesztett él színek + Edited edge color + Szerkesztett él színek - Edited vertex color - Szerkesztett vertex színek + Edited vertex color + Szerkesztett vertex színek - Construction geometry - ÉpítÅ‘ipari geometria + Construction geometry + ÉpítÅ‘ipari geometria - Fully constrained geometry - Teljesen korlátozott geometria + Fully constrained geometry + Teljesen korlátozott geometria - The color of construction geometry in editmode - Az építési geometria színei szerkesztÅ‘ módban + The color of construction geometry in editmode + Az építési geometria színei szerkesztÅ‘ módban - The color of fully constrained geometry in editmode - A teljesen korlátozott geometriai színei szerkesztÅ‘ módban + The color of fully constrained geometry in editmode + A teljesen korlátozott geometriai színei szerkesztÅ‘ módban - The color of vertices being edited - A csúcsok színei szerkesztés alatt + The color of vertices being edited + A csúcsok színei szerkesztés alatt - The color of edges being edited - Az élek színe szerkesztés alatt + The color of edges being edited + Az élek színe szerkesztés alatt - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Napi jótanács + Tip of the day + Napi jótanács - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <font size="+3"><font face="Times New Roman"><b>Tudta, hogy ...</b></font></font> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <font size="+3"><font face="Times New Roman"><b>Tudta, hogy ...</b></font></font> - &Show tips at start up - &Tanácsok megjelenítése induláskor + &Show tips at start up + &Tanácsok megjelenítése induláskor - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &KövetkezÅ‘ tanács + &Next Tip + &KövetkezÅ‘ tanács - Alt+N - Alt+N + Alt+N + Alt+N - &Close - Be&zárás + &Close + Be&zárás - Alt+C - Alt + C + Alt+C + Alt + C - - Program infó + + Program infó - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Letöltés nem sikerült: %1 + Letöltés nem sikerült: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Ha szeretne többet megtudni FreeCAD-rÅ‘l, menjen a %1, vagy nyomja meg a Súgó gombot a Súgó menüben. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Ha szeretne többet megtudni FreeCAD-rÅ‘l, menjen a %1, vagy nyomja meg a Súgó gombot a Súgó menüben. - - + + Gui::Dialog::DockablePlacement - Placement - Elhelyezés + Placement + Elhelyezés - - + + Gui::Dialog::DownloadDialog - Canceled. - TörlÅ‘dik. + Canceled. + TörlÅ‘dik. - - + + Download + + + + Cancel + Mégse + + + Close + Bezárás + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Letöltés meghiusult: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Ikon hozzáadása + Add icon + Ikon hozzáadása - - + + Gui::Dialog::InputVector - Input vector - Bemeneti vektor + Input vector + Bemeneti vektor - Vector - Vektor + Vector + Vektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Egérgombok + Mouse buttons + Egérgombok - Configuration - Konfiguráció + Configuration + Konfiguráció - Selection: - Kiválasztás: + Selection: + Kiválasztás: - Panning - Mozgatás + Panning + Mozgatás - Rotation: - Elforgatás: + Rotation: + Elforgatás: - Zooming: - Nagyítás: + Zooming: + Nagyítás: - - + + Gui::Dialog::ParameterGroup - Expand - Kibontás + Expand + Kibontás - Add sub-group - Alcsoport hozzáadás + Add sub-group + Alcsoport hozzáadás - Remove group - Csoport eltávolítása + Remove group + Csoport eltávolítása - Rename group - Csoport átnevezése + Rename group + Csoport átnevezése - Export parameter - Paraméter export + Export parameter + Paraméter export - Import parameter - Paraméter import + Import parameter + Paraméter import - Collapse - Összevonás + Collapse + Összevonás - Do really want to remove this parameter group? - Valóban el szeretné távolítani ezt a paramétert csoportot? + Do really want to remove this parameter group? + Valóban el szeretné távolítani ezt a paramétert csoportot? - Existing sub-group - LétezÅ‘ alcsoport + Existing sub-group + LétezÅ‘ alcsoport - The sub-group '%1' already exists. - Az alcsoport '%1' már létezik. + The sub-group '%1' already exists. + Az alcsoport '%1' már létezik. - Export parameter to file - Paraméter exportálása fájlba + Export parameter to file + Paraméter exportálása fájlba - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Paraméter importálása fájlból + Import parameter from file + Paraméter importálása fájlból - Import Error - Importálási hiba + Import Error + Importálási hiba - Reading from '%1' failed. - Olvasási hiba: %1 + Reading from '%1' failed. + Olvasási hiba: %1 - - + + Gui::Dialog::ParameterValue - Change value - Érték módosítása + Change value + Érték módosítása - Remove key - Kulcs eltávolítása + Remove key + Kulcs eltávolítása - Rename key - Kulcs átnevezése + Rename key + Kulcs átnevezése - New - Új + New + Új - New string item - Új karakterlánc-elem + New string item + Új karakterlánc-elem - New float item - Új float-elem + New float item + Új float-elem - New integer item - Új egész elem + New integer item + Új egész elem - New unsigned item - Új meghatározatlan elem + New unsigned item + Új meghatározatlan elem - New Boolean item - Új logikai elem + New Boolean item + Új logikai elem - Existing item - MeglévÅ‘ elem + Existing item + MeglévÅ‘ elem - The item '%1' already exists. - Az '%1' tétel már létezik. + The item '%1' already exists. + Az '%1' tétel már létezik. - - + + Gui::Dialog::Placement - Placement - Elhelyezés + Placement + Elhelyezés - OK - OK + OK + OK - Translation: - Fordítás: + Translation: + Fordítás: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Elforgatás: + Rotation: + Elforgatás: - Angle: - DÅ‘lésszög: + Angle: + DÅ‘lésszög: - Axis: - Tengely: + Axis: + Tengely: - Center: - Középpont: + Center: + Középpont: - Pitch: - Döntés: + Pitch: + Döntés: - Roll: - Gördítés: + Roll: + Gördítés: - Yaw: - Tengely körüli fordulás: + Yaw: + Tengely körüli fordulás: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler-szögek + Euler angles + Euler-szögek - Apply placement changes immediately - Elhelyezés változtatásának alkalmazása azonnal + Apply placement changes immediately + Elhelyezés változtatásának alkalmazása azonnal - Apply incremental changes to object placement - A növekvÅ‘ változások tárgy helyzetre való alkalmazása + Apply incremental changes to object placement + A növekvÅ‘ változások tárgy helyzetre való alkalmazása - Apply - Alkalmaz + Apply + Alkalmaz - Reset - Alaphelyzetbe állítása + Reset + Alaphelyzetbe állítása - Close - Bezárás + Close + Bezárás - - + + Gui::Dialog::PrintModel - Button - Gomb + Button + Gomb - Command - Parancs + Command + Parancs - - + + Gui::Dialog::SceneInspector - Dialog - Párbeszédablak + Dialog + Párbeszédablak - Close - Bezárás + Close + Bezárás - Refresh - Frissítés + Refresh + Frissítés - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor struktúra + Inventor Tree + Inventor struktúra - Nodes - Csomópontok + Nodes + Csomópontok - - + + Gui::Dialog::TextureMapping - Texture - Anyagminta + Texture + Anyagminta - Texture mapping - Textúra leképezés + Texture mapping + Textúra leképezés - Global - Globális + Global + Globális - Environment - Környezet + Environment + Környezet - Image files (%1) - A kép fájl (%1) + Image files (%1) + A kép fájl (%1) - No image - Nincs kép + No image + Nincs kép - The specified file is not a valid image file. - A megadott fájl nem érvényes képfájl. + The specified file is not a valid image file. + A megadott fájl nem érvényes képfájl. - No 3d view - Nem 3D nézet + No 3d view + Nem 3D nézet - No active 3d view found. - Nem található aktív 3D-s nézet. + No active 3d view found. + Nem található aktív 3D-s nézet. - - + + Gui::Dialog::Transform - Cancel - Mégse + Cancel + Mégse - Transform - Ãtalakítás + Transform + Ãtalakítás - - + + Gui::DlgTreeWidget - Dialog - Párbeszédablak + Dialog + Párbeszédablak - Items - Elemek + Items + Elemek - OK - OK + OK + OK - Cancel - Mégse + Cancel + Mégse - - Program infó + + Program infó - - + + Gui::DockWnd::CombiView - CombiView - Össz nézet + CombiView + Össz nézet - Project - Terv + Project + Terv - Tasks - Feladatok + Tasks + Feladatok - - + + Gui::DockWnd::HelpView - Previous - Vissza + Previous + Vissza - Next - Tovább + Next + Tovább - Home - KezdÅ‘lap + Home + KezdÅ‘lap - Open - Megnyit + Open + Megnyit - Open file - Fájl megnyitás + Open file + Fájl megnyitás - All HTML files (*.html *.htm) - Minden HTML file (*.html *.htm) + All HTML files (*.html *.htm) + Minden HTML file (*.html *.htm) - External browser - KülsÅ‘ böngészÅ‘ + External browser + KülsÅ‘ böngészÅ‘ - No external browser found. Specify in preferences, please - Nem található külsÅ‘ böngészÅ‘. Kérem, adjon meg egyet a beállításoknál + No external browser found. Specify in preferences, please + Nem található külsÅ‘ böngészÅ‘. Kérem, adjon meg egyet a beállításoknál - Starting of %1 failed - Az %1 elindítása sikertelen + Starting of %1 failed + Az %1 elindítása sikertelen - - + + Gui::DockWnd::PropertyDockView - Property View - Tulajdonságok nézet + Property View + Tulajdonságok nézet - - + + Gui::DockWnd::ReportOutput - Logging - Naplózás + Logging + Naplózás - Warning - Riasztás + Warning + Riasztás - Error - Hiba + Error + Hiba - Options - Beállítások + Options + Beállítások - Clear - Törlés + Clear + Törlés - Save As... - Mentés másként... + Save As... + Mentés másként... - Save Report Output - Jelentés kimenet mentése + Save Report Output + Jelentés kimenet mentése - Plain Text Files (*.txt *.log) - Egyszerű Text File (*.txt *.log) + Plain Text Files (*.txt *.log) + Egyszerű Text File (*.txt *.log) - Go to end - Ugrás a végére + Go to end + Ugrás a végére - Redirect Python output - Python kimenet átirányítása + Redirect Python output + Python kimenet átirányítása - Redirect Python errors - Ãtirányított Python-hibák + Redirect Python errors + Ãtirányított Python-hibák - - + + Gui::DockWnd::ReportView - Output - Kimenet + Output + Kimenet - Python console - Python konzol + Python console + Python konzol - - + + Gui::DockWnd::SelectionView - Property View - Tulajdonságok nézet + Property View + Tulajdonságok nézet - - + + Gui::DockWnd::TaskPanelView - Task View - Feladat nézet + Task View + Feladat nézet - - + + Gui::DockWnd::TextBrowser - Could not open file. - A fájl megnyitása sikertelen. + Could not open file. + A fájl megnyitása sikertelen. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Megpróbálta a %1 címet elérni, ami jelenleg nem elérhetÅ‘. GyÅ‘zÅ‘djön meg róla, hogy az URL létezik és frissítse az oldalt. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Megpróbálta a %1 címet elérni, ami jelenleg nem elérhetÅ‘. GyÅ‘zÅ‘djön meg róla, hogy az URL létezik és frissítse az oldalt. - Connecting to %1 - Csatlakozás az %1-hez + Connecting to %1 + Csatlakozás az %1-hez - Sending to %1 - Küldés: %1 részére + Sending to %1 + Küldés: %1 részére - Reading from %1 - Olvasás az %1 -tÅ‘l + Reading from %1 + Olvasás az %1 -tÅ‘l - Download failed: %1. - Letöltés meghiusult: %1. + Download failed: %1. + Letöltés meghiusult: %1. - Previous - Vissza + Previous + Vissza - Forward - Ismétlés + Forward + Ismétlés - Home - KezdÅ‘lap + Home + KezdÅ‘lap - Refresh - Frissítés + Refresh + Frissítés - Copy - Másolás + Copy + Másolás - Select all - Összes kijelölése + Select all + Összes kijelölése - No description for - Új leírás a + No description for + Új leírás a - - + + Gui::DocumentModel - Application - Alkalmazás + Application + Alkalmazás - Labels & Attributes - Cimkék & Tulajdonságok + Labels & Attributes + Cimkék & Tulajdonságok - - + + Gui::EditorView - Modified file - Módosított file + Modified file + Módosított file - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Az eredeti szerkesztÅ‘n kívül lett módosítva. Újra akarja tölteni? - Unsaved document - Nem mentett dokumentum + Unsaved document + Nem mentett dokumentum - The document has been modified. + The document has been modified. Do you want to save your changes? - A dokumentum módosítva lett. + A dokumentum módosítva lett. El akarja menteni a változásokat? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD makro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD makro (*.FCMacro);;Python (*.py) - Export PDF - Exportálás PDF-be + Export PDF + Exportálás PDF-be - PDF file (*.pdf) - PDF file (*.pdf) + PDF file (*.pdf) + PDF file (*.pdf) - untitled[*] - névtelen[*] + untitled[*] + névtelen[*] - - Editor - - SzerkesztÅ‘ + - Editor + - SzerkesztÅ‘ - %1 chars removed - %1 karakter eltávolítása + %1 chars removed + %1 karakter eltávolítása - %1 chars added - %1 karakter hozzáadása + %1 chars added + %1 karakter hozzáadása - Formatted - Formázott + Formatted + Formázott - - + + Gui::FileChooser - Select a file - Válasszon ki egy fájlt + Select a file + Válasszon ki egy fájlt - Select a directory - Válasszon ki egy könyvtárat + Select a directory + Válasszon ki egy könyvtárat - - + + Gui::FileDialog - Save as - Mentés másként + Save as + Mentés másként - Open - Megnyit + Open + Megnyit - - + + Gui::FileOptionsDialog - Extended - Kiterjesztés + Extended + Kiterjesztés - All files (*.*) - Minden fájl (*.*) + All files (*.*) + Minden fájl (*.*) - - + + Gui::Flag - Top left - Bal felsÅ‘ + Top left + Bal felsÅ‘ - Bottom left - Bal alsó + Bottom left + Bal alsó - Top right - Jobb felsÅ‘ + Top right + Jobb felsÅ‘ - Bottom right - Jobb alsó + Bottom right + Jobb alsó - Remove - Törlés + Remove + Törlés - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Nyomja meg a CTRL és a bal egérgombot + Press CTRL and left mouse button + Nyomja meg a CTRL és a bal egérgombot - Press middle mouse button - Nyomja meg a középsÅ‘ egérgombot + Press middle mouse button + Nyomja meg a középsÅ‘ egérgombot - Press left mouse button - Nyomja meg a bal egérgombot + Press left mouse button + Nyomja meg a bal egérgombot - Scroll middle mouse button - Görgesse a középsÅ‘ egérgombot + Scroll middle mouse button + Görgesse a középsÅ‘ egérgombot - - + + Gui::LocationDialog - Wrong direction - Rossz irány + Wrong direction + Rossz irány - Direction must not be the null vector - Irány nem lehet nullvektor + Direction must not be the null vector + Irány nem lehet nullvektor - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Felhasználó által megadott... + User defined... + Felhasználó által megadott... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makrók + Macros + Makrók - - + + Gui::MainWindow - Dimension - Dimenzió + Dimension + Dimenzió - Ready - Kész + Ready + Kész - Toggles this toolbar - Eszköztár megjelenítése + Toggles this toolbar + Eszköztár megjelenítése - Toggles this dockable window - Dokkolható ablak megjelenítése + Toggles this dockable window + Dokkolható ablak megjelenítése - Close All - Minden bezárása + Close All + Minden bezárása - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Letöltés indítása... + Letöltés indítása... - - + + Gui::ProgressBar - Remaining: %1 - Maradt: %1 + Remaining: %1 + Maradt: %1 - Aborting - Megszakítása + Aborting + Megszakítása - Do you really want to abort the operation? - Biztosan megszakítja a műveletet? + Do you really want to abort the operation? + Biztosan megszakítja a műveletet? - - + + Gui::ProgressDialog - Remaining: %1 - Maradt: %1 + Remaining: %1 + Maradt: %1 - Aborting - Megszakítása + Aborting + Megszakítása - Do you really want to abort the operation? - Biztosan megszakítja a műveletet? + Do you really want to abort the operation? + Biztosan megszakítja a műveletet? - - + + Gui::PropertyEditor::PropertyModel - Property - Tulajdonság + Property + Tulajdonság - Value - Érték + Value + Érték - - + + Gui::PropertyView - View - Nézet + View + Nézet - Data - Adat + Data + Adat - - + + Gui::PythonConsole - System exit - Kilépés a rendszerbÅ‘l + System exit + Kilépés a rendszerbÅ‘l - The application is still running. + The application is still running. Do you want to exit without saving your data? - Az alkalmazás még mindig fut. + Az alkalmazás még mindig fut. Ki szeretne lépni az adatok mentése nélkül? - Python console - Python konzol + Python console + Python konzol - Unhandled PyCXX exception. - Nem kezelt PyCXX kivétel. + Unhandled PyCXX exception. + Nem kezelt PyCXX kivétel. - Unhandled FreeCAD exception. - Nem kezelt FreeCAD kivétel. + Unhandled FreeCAD exception. + Nem kezelt FreeCAD kivétel. - Unhandled unknown C++ exception. - Nem kezelt ismeretlen C++ kivétel. + Unhandled unknown C++ exception. + Nem kezelt ismeretlen C++ kivétel. - &Copy command - Parancs &másolás + &Copy command + Parancs &másolás - &Copy history - ElÅ‘zmények &másolás + &Copy history + ElÅ‘zmények &másolás - Save history as... - ElÅ‘zmények mentése mint ... + Save history as... + ElÅ‘zmények mentése mint ... - Insert file name... - Fájlnév beszúrása... + Insert file name... + Fájlnév beszúrása... - Save History - ElÅ‘zmények mentése + Save History + ElÅ‘zmények mentése - Macro Files (*.FCMacro *.py) - Makrófájlok (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Makrófájlok (*.FCMacro *.py) - Insert file name - Fájlnév beszúrása + Insert file name + Fájlnév beszúrása - All Files (*.*) - Minden fájl (*.*) + All Files (*.*) + Minden fájl (*.*) - Python Input Dialog - Python bemeneti párbeszédpanel + Python Input Dialog + Python bemeneti párbeszédpanel - Unhandled std C++ exception. - Kezeletlen C++ kivétel. + Unhandled std C++ exception. + Kezeletlen C++ kivétel. - Word wrap - Sortörés + Word wrap + Sortörés - &Copy - &Másolás + &Copy + &Másolás - &Paste - &Beillesztés + &Paste + &Beillesztés - Select All - Mindent kijelöl + Select All + Mindent kijelöl - - + + Clear console + + + + Gui::PythonEditor - Comment - Megjegyzés + Comment + Megjegyzés - Uncomment - Kijelölés törlés + Uncomment + Kijelölés törlés - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Törlés + Clear + Törlés - - + + Gui::RecentFilesAction - Open file %1 - Fájl megnyitása %1 + Open file %1 + Fájl megnyitása %1 - File not found - A fájl nem található + File not found + A fájl nem található - The file '%1' cannot be opened. - A fájl nem nyitható meg ('%1'). + The file '%1' cannot be opened. + A fájl nem nyitható meg ('%1'). - - + + Gui::SelectModule - Select module - Modul választás + Select module + Modul választás - Open %1 as - Megnyitás mint %1 + Open %1 as + Megnyitás mint %1 - Select - Kiválaszt + Select + Kiválaszt - - + + Gui::StdCmdDescription - Help - Súgó + Help + Súgó - Des&cription - Leírás + Des&cription + Leírás - Long description of commands - Parancsok hosszú leírása + Long description of commands + Parancsok hosszú leírása - - + + Gui::StdCmdDownloadOnlineHelp - Help - Súgó + Help + Súgó - Download online help - Online súgó letöltése + Download online help + Online súgó letöltése - Download %1's online help - Online súgó letöltése %1 + Download %1's online help + Online súgó letöltése %1 - Non-existing directory - Nem létezÅ‘ könyvtár + Non-existing directory + Nem létezÅ‘ könyvtár - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - A könyvtár '%1' nem létezik. + A könyvtár '%1' nem létezik. Szeretne megadni egy létezÅ‘ könyvtár? - Missing permission - Hiányzó engedély + Missing permission + Hiányzó engedély - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Nincs írási engedélye '%1' + Nincs írási engedélye '%1' Meg szeretne adni egy másik könyvtárat? - Stop downloading - Letöltés leállítása + Stop downloading + Letöltés leállítása - - + + Gui::StdCmdPythonHelp - Tools - Eszközök + Tools + Eszközök - Python Modules - Python Modulok + Python Modules + Python Modulok - Opens a browser to show the Python modules - Python modul böngészÅ‘ megnyitása + Opens a browser to show the Python modules + Python modul böngészÅ‘ megnyitása - - + + Gui::TaskBoxAngle - Angle - Szög + Angle + Szög - - + + Gui::TaskBoxPosition - Position - Pozíció + Position + Pozíció - - + + Gui::TaskView::TaskAppearance - Display mode: - Megjelenítési mód: + Display mode: + Megjelenítési mód: - Plot mode: - Nyomtatási mód: + Plot mode: + Nyomtatási mód: - Point size: - Méret: + Point size: + Méret: - Line width: - Vonalstílus: + Line width: + Vonalstílus: - Transparency: - Ãtlátszóság: + Transparency: + Ãtlátszóság: - Appearance - Megjelenés + Appearance + Megjelenés - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Módosítás + Edit + Módosítás - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Megjelenés + Appearance + Megjelenés - ... - ... + ... + ... - edit selection - kijelölés szerkesztése + edit selection + kijelölés szerkesztése - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Nyomja meg a bal egérgombot + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Angol + English + Angol - - + + Gui::TreeDockWidget - Tree view - Fanézet + Tree view + Fanézet - - + + Gui::TreeWidget - Create group... - Csoport létrehozása... + Create group... + Csoport létrehozása... - Create a group - Új csoport létrehozása + Create a group + Új csoport létrehozása - Group - Csoport + Group + Csoport - Rename - Ãtnevezés + Rename + Ãtnevezés - Rename object - Objektum átnevezése + Rename object + Objektum átnevezése - Labels & Attributes - Cimkék & Tulajdonságok + Labels & Attributes + Cimkék & Tulajdonságok - Application - Alkalmazás + Application + Alkalmazás - Finish editing - Szerkesztés befejezése + Finish editing + Szerkesztés befejezése - Finish editing object - Objektumszerkesztés befejezése + Finish editing object + Objektumszerkesztés befejezése - Activate document - Dokumentum aktiválása + Activate document + Dokumentum aktiválása - Activate document %1 - Dokumentum aktiválása (%1) + Activate document %1 + Dokumentum aktiválása (%1) - - + + Gui::View3DInventor - Export PDF - Exportálás PDF-be + Export PDF + Exportálás PDF-be - PDF file (*.pdf) - PDF file (*.pdf) + PDF file (*.pdf) + PDF file (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - '%1' munkafelület kiválasztása + Select the '%1' workbench + '%1' munkafelület kiválasztása - - + + Position - Form - Űrlap + Form + Űrlap - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Rácshoz illeszt + Grid Snap in + Rácshoz illeszt - - + + QDockWidget - Tree view - Fanézet + Tree view + Fanézet - Property view - Tulajdonságok nézet + Property view + Tulajdonságok nézet - Selection view - Részlet nézet + Selection view + Részlet nézet - Report view - Jelentés nézet + Report view + Jelentés nézet - Task View - Feladat nézet + Task View + Feladat nézet - Combo View - Összetett nézet + Combo View + Összetett nézet - Toolbox - Eszközkészlet + Toolbox + Eszközkészlet - Python console - Python konzol + Python console + Python konzol - Display properties - Tulajdonságok megjelenítése + Display properties + Tulajdonságok megjelenítése - - + + QObject - General - Ãltalános + General + Ãltalános - Display - Megjelenítés + Display + Megjelenítés - Unknown filetype - Ismeretlen filetípus + Unknown filetype + Ismeretlen filetípus - Cannot open unknown filetype: %1 - Nem megnyitható fájltípus: %1 + Cannot open unknown filetype: %1 + Nem megnyitható fájltípus: %1 - Cannot save to unknown filetype: %1 - Nem menthetÅ‘ fájltípus: %1 + Cannot save to unknown filetype: %1 + Nem menthetÅ‘ fájltípus: %1 - Workbench failure - Munkafelület hiba + Workbench failure + Munkafelület hiba - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Nem lehet elindítani a Qt támogatást(%1) + Unable to launch Qt Assistant (%1) + Nem lehet elindítani a Qt támogatást(%1) - Exception - Kivétel + Exception + Kivétel - Open document - Dokumentum megnyitása + Open document + Dokumentum megnyitása - Import file - Fájl importálása + Import file + Fájl importálása - Export file - Fájl exportálása + Export file + Fájl exportálása - Printing... - Nyomtatás... + Printing... + Nyomtatás... - Cannot load workbench - Munkamenet nem betölthetÅ‘ + Cannot load workbench + Munkamenet nem betölthetÅ‘ - A general error occurred while loading the workbench - A munkamenet betöltése közben hiba lépett fel + A general error occurred while loading the workbench + A munkamenet betöltése közben hiba lépett fel - File not found - A fájl nem található + File not found + A fájl nem található - Cannot open file %1 - Nem sikerült megnyitni a(z) %1 fájlt + Cannot open file %1 + Nem sikerült megnyitni a(z) %1 fájlt - Save views... - Nézet mentése... + Save views... + Nézet mentése... - Load views... - Nézet betöltése... + Load views... + Nézet betöltése... - Freeze view - Nézet megállítása + Freeze view + Nézet megállítása - Clear views - Tiszta nézet + Clear views + Tiszta nézet - Restore view &%1 - Nézet visszaállítás %1 + Restore view &%1 + Nézet visszaállítás %1 - Save frozen views - Fagyasztott nézetek mentése + Save frozen views + Fagyasztott nézetek mentése - Frozen views (*.cam) - Fagyasztott nézetek (*.cam) + Frozen views (*.cam) + Fagyasztott nézetek (*.cam) - Restore views - Nézetek visszaállítása + Restore views + Nézetek visszaállítása - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - A visszaállított nézetek importálása felülírja a már tárolt nézetet. + A visszaállított nézetek importálása felülírja a már tárolt nézetet. Folytatni kívánja? - Restore frozen views - Fagyasztott nézet visszaállítása + Restore frozen views + Fagyasztott nézet visszaállítása - Cannot open file '%1'. - Nem lehet megnyitni a fájlt (%1). + Cannot open file '%1'. + Nem lehet megnyitni a fájlt (%1). - Docked - Rögzített + Docked + Rögzített - Undocked - Nem rögzített + Undocked + Nem rögzített - Fullscreen - Teljes képernyÅ‘s + Fullscreen + Teljes képernyÅ‘s - files - fájlok + files + fájlok - Save picture - Kép mentése + Save picture + Kép mentése - New sub-group - Új alcsoport + New sub-group + Új alcsoport - Enter the name: - Adja meg a nevét: + Enter the name: + Adja meg a nevét: - New text item - Új szöveges elem + New text item + Új szöveges elem - Enter your text: - Ãrja be a szöveget: + Enter your text: + Ãrja be a szöveget: - New integer item - Új egész elem + New integer item + Új egész elem - Enter your number: - Ãrja be a számot: + Enter your number: + Ãrja be a számot: - New unsigned item - Új meghatározatlan elem + New unsigned item + Új meghatározatlan elem - New float item - Új float-elem + New float item + Új float-elem - New Boolean item - Új logikai elem + New Boolean item + Új logikai elem - Choose an item: - Válasszon egy elemet: + Choose an item: + Válasszon egy elemet: - Rename group - Csoport átnevezése + Rename group + Csoport átnevezése - The group '%1' cannot be renamed. - A csoport (%1) nem nevezhetÅ‘ át. + The group '%1' cannot be renamed. + A csoport (%1) nem nevezhetÅ‘ át. - Existing group - LétezÅ‘ csoport + Existing group + LétezÅ‘ csoport - The group '%1' already exists. - A csoport (%1) már létezik. + The group '%1' already exists. + A csoport (%1) már létezik. - Change value - Érték módosítása + Change value + Érték módosítása - Save document under new filename... - Dokumentum mentése új fájlnéven... + Save document under new filename... + Dokumentum mentése új fájlnéven... - Saving aborted - Mentése megszakítva + Saving aborted + Mentése megszakítva - Unsaved document - Nem mentett dokumentum + Unsaved document + Nem mentett dokumentum - Save document before close? - Mentse a dokumentumot a bezárás elÅ‘tt? + Save document before close? + Mentse a dokumentumot a bezárás elÅ‘tt? - Save Macro - Mentse a makrót + Save Macro + Mentse a makrót - Finish - Befejezés + Finish + Befejezés - Clear - Törlés + Clear + Törlés - Cancel - Mégse + Cancel + Mégse - Inner - BelsÅ‘ + Inner + BelsÅ‘ - Outer - KülsÅ‘ + Outer + KülsÅ‘ - No Browser - Nincs böngészÅ‘ + No Browser + Nincs böngészÅ‘ - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Nem lehet megnyitni a böngészÅ‘t. + Nem lehet megnyitni a böngészÅ‘t. Nyisson meg egy böngészÅ‘t, és írja be: http://localhost:%1. - No Server - Nincs szerver + No Server + Nincs szerver - Unable to start the server to port %1: %2. - Nem sikerült elindítani a szervert a %1:%2 porton + Unable to start the server to port %1: %2. + Nem sikerült elindítani a szervert a %1:%2 porton - Unable to open your system browser. - Nem lehet megnyitni a rendszer böngészÅ‘t. + Unable to open your system browser. + Nem lehet megnyitni a rendszer böngészÅ‘t. - Options... - Beállítások... + Options... + Beállítások... - Out of memory - Elfogyott a memória + Out of memory + Elfogyott a memória - Not enough memory available to display the data. - Nincs elég memória az adatok megjelenítéséhez. + Not enough memory available to display the data. + Nincs elég memória az adatok megjelenítéséhez. - Cannot find file %1 - A fájl nem található: %1 + Cannot find file %1 + A fájl nem található: %1 - Cannot find file %1 neither in %2 nor in %3 - Nem talál fájlt %1 -nek %2 -ben, sem %3 -ban. + Cannot find file %1 neither in %2 nor in %3 + Nem talál fájlt %1 -nek %2 -ben, sem %3 -ban. - Save %1 Document - A(z) %1 dokumentum mentése + Save %1 Document + A(z) %1 dokumentum mentése - %1 document (*.FCStd) - a(z) %1 dokumentum (*.FCStd) + %1 document (*.FCStd) + a(z) %1 dokumentum (*.FCStd) - Save As - Mentés másként + Save As + Mentés másként - %1 already exists. + %1 already exists. Do you want to replace it? - A(z) %1 már létezik. Valóban le szeretné cserélni? + A(z) %1 már létezik. Valóban le szeretné cserélni? - Document not closable - A dokumentum nem zárható be + Document not closable + A dokumentum nem zárható be - The document is not closable for the moment. - A dokumentum nem zárható be pillanatnyilag. + The document is not closable for the moment. + A dokumentum nem zárható be pillanatnyilag. - No OpenGL - Nincs OpenGL + No OpenGL + Nincs OpenGL - This system does not support OpenGL - Ez a rendszer nem támogatja az OpenGL-t + This system does not support OpenGL + Ez a rendszer nem támogatja az OpenGL-t - Help - Súgó + Help + Súgó - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Nem sikerült betölteni a dokumentációt. + Nem sikerült betölteni a dokumentációt. A betöltéshez Qt 4.4 vagy magasabb verzió szükséges. - %1 Help - %1 Súgó + %1 Help + %1 Súgó - Exporting PDF... - PDF exportálása... + Exporting PDF... + PDF exportálása... - Wrong selection - Rossz kijelölés + Wrong selection + Rossz kijelölés - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Csak egy objektum van kiválasztva.Kérjük válasszon ki két objektumot. + Csak egy objektum van kiválasztva.Kérjük válasszon ki két objektumot. Legyen körültekintÅ‘, számít melyik pontra kattint. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Kérjük, válasszon ki két objektumot. + Kérjük, válasszon ki két objektumot. Legyen körültekintÅ‘, fontos melyik pontra kattint. - New boolean item - Új logikai elem + New boolean item + Új logikai elem - Navigation styles - Navigációs stílusok + Navigation styles + Navigációs stílusok - %1 navigation - %1 navigáció + %1 navigation + %1 navigáció - Move annotation - Lépés jegyzék + Move annotation + Lépés jegyzék - Transform - Ãtalakítás + Transform + Ãtalakítás - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - A dokumentum szerkesztési módban, így nem zárható be ebben a pillanatban. Vagy be kell fejezni, vagy törölheti a szerkesztést a feladat panelen. + A dokumentum szerkesztési módban, így nem zárható be ebben a pillanatban. Vagy be kell fejezni, vagy törölheti a szerkesztést a feladat panelen. - - + + + StdBoxSelection + + Standard-View + Standard-nézet + + + Box selection + + + + StdCmdAbout - Help - Súgó + Help + Súgó - &About %1 - &Névjegy %1 + &About %1 + &Névjegy %1 - About %1 - Névjegy %1 + About %1 + Névjegy %1 - - + + StdCmdAboutQt - Help - Súgó + Help + Súgó - About &Qt - Qt névjegye + About &Qt + Qt névjegye - About Qt - Qt névjegye + About Qt + Qt névjegye - - + + StdCmdActivateNextWindow - Window - Ablak + Window + Ablak - Ne&xt - Ismét + Ne&xt + Ismét - Activate next window - KövetkezÅ‘ ablak aktiválása + Activate next window + KövetkezÅ‘ ablak aktiválása - - + + StdCmdActivatePrevWindow - Window - Ablak + Window + Ablak - Pre&vious - Visszavonás + Pre&vious + Visszavonás - Activate previous window - ElÅ‘zÅ‘ ablak aktiválása + Activate previous window + ElÅ‘zÅ‘ ablak aktiválása - - + + + StdCmdAlignment + + Edit + Módosítás + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Ablak + Window + Ablak - Arrange &Icons - &Ikonok rendezése + Arrange &Icons + &Ikonok rendezése - Arrange Icons - Ikonok rendezése + Arrange Icons + Ikonok rendezése - - + + StdCmdAxisCross - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Toggle axis cross - Tengely keresztezÅ‘dés váltása + Toggle axis cross + Tengely keresztezÅ‘dés váltása - - + + StdCmdCascadeWindows - Window - Ablak + Window + Ablak - &Cascade - &LépcsÅ‘zetes + &Cascade + &LépcsÅ‘zetes - Tile pragmatic - Részek gakorlása + Tile pragmatic + Részek gakorlása - - + + StdCmdCloseActiveWindow - Window - Ablak + Window + Ablak - Cl&ose - Be&zárás + Cl&ose + Be&zárás - Close active window - Aktív ablak bezárása + Close active window + Aktív ablak bezárása - - + + StdCmdCloseAllWindows - Window - Ablak + Window + Ablak - Close Al&l - Öss&zes bezárása + Close Al&l + Öss&zes bezárása - Close all windows - Összes ablak bezárása + Close all windows + Összes ablak bezárása - - + + StdCmdCommandLine - Tools - Eszközök + Tools + Eszközök - Start command &line... - Parancs &sor indítása... + Start command &line... + Parancs &sor indítása... - Opens the command line in the console - Parancs sor konzolban való futtatása + Opens the command line in the console + Parancs sor konzolban való futtatása - - + + StdCmdCopy - Edit - Módosítás + Edit + Módosítás - C&opy - &Másolás + C&opy + &Másolás - Copy operation - Másolási művelet + Copy operation + Másolási művelet - - + + StdCmdCut - Edit - Módosítás + Edit + Módosítás - &Cut - &Kivágás + &Cut + &Kivágás - Cut out - Kimetszés + Cut out + Kimetszés - - + + StdCmdDDuplicateSelection - Edit - Módosítás + Edit + Módosítás - Duplicate selection - Másolat létrehozása a kijelölésrÅ‘l + Duplicate selection + Másolat létrehozása a kijelölésrÅ‘l - Put duplicates of the selected objects to the active document - A kijelölt objektumokat másolja az aktuális dokumentumba + Put duplicates of the selected objects to the active document + A kijelölt objektumokat másolja az aktuális dokumentumba - - + + StdCmdDelete - Edit - Módosítás + Edit + Módosítás - &Delete - Törlés + &Delete + Törlés - Deletes the selected objects - Kiválasztott elem törlése + Deletes the selected objects + Kiválasztott elem törlése - - + + StdCmdDemoMode - Standard-View - Standard-nézet + Standard-View + Standard-nézet - View turntable... - Forgóasztal nézet... + View turntable... + Forgóasztal nézet... - View turntable - Forgóasztal nézet + View turntable + Forgóasztal nézet - - + + StdCmdDlgCustomize - Tools - Eszközök + Tools + Eszközök - Cu&stomize... - &Testreszabás... + Cu&stomize... + &Testreszabás... - Customize toolbars and command bars - Eszköztás és parancs oszlopok testreszabása + Customize toolbars and command bars + Eszköztás és parancs oszlopok testreszabása - - + + StdCmdDlgMacroExecute - Macros ... - Makrók ... + Macros ... + Makrók ... - Opens a dialog to let you execute a recorded macro - Párbeszédpanel megnyitása a rögzített makró végrehajtásához + Opens a dialog to let you execute a recorded macro + Párbeszédpanel megnyitása a rögzített makró végrehajtásához - Macro - Makró + Macro + Makró - - + + StdCmdDlgMacroExecuteDirect - Macro - Makró + Macro + Makró - Execute macro - Makró végrehajtása + Execute macro + Makró végrehajtása - Execute the macro in the editor - SzerkesztÅ‘ben futtatja a makrót + Execute the macro in the editor + SzerkesztÅ‘ben futtatja a makrót - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makró felvétel ... + &Macro recording ... + &Makró felvétel ... - Opens a dialog to record a macro - Párbeszédpanel megnyitása a makró rögzítéséhez + Opens a dialog to record a macro + Párbeszédpanel megnyitása a makró rögzítéséhez - Macro - Makró + Macro + Makró - - + + StdCmdDlgParameter - Tools - Eszközök + Tools + Eszközök - E&dit parameters ... - Paraméterek &szerkesztése + E&dit parameters ... + Paraméterek &szerkesztése - Opens a Dialog to edit the parameters - Párbeszédablak megnyitása a paraméterek szerkesztéséhez + Opens a Dialog to edit the parameters + Párbeszédablak megnyitása a paraméterek szerkesztéséhez - - + + StdCmdDlgPreferences - Tools - Eszközök + Tools + Eszközök - &Preferences ... - &Beállítások... + &Preferences ... + &Beállítások... - Opens a Dialog to edit the preferences - Párbeszédablak megnyitása a beállítások szerkesztéséhez + Opens a Dialog to edit the preferences + Párbeszédablak megnyitása a beállítások szerkesztéséhez - - + + StdCmdDockViewMenu - View - Nézet + View + Nézet - Vie&ws - Nézetek + Vie&ws + Nézetek - Toggles this window - Ablak váltás + Toggles this window + Ablak váltás - - + + StdCmdDrawStyle - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Módosítás + + + Duplicate selection + Másolat létrehozása a kijelölésrÅ‘l + + + Put duplicates of the selected objects to the active document + A kijelölt objektumokat másolja az aktuális dokumentumba + + + + StdCmdEdit + + Edit + Módosítás + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Fájl + File + Fájl - &Export... - &Exportálás + &Export... + &Exportálás - Export an object in the active document - Egy objektum exportálása az aktív munkalapból + Export an object in the active document + Egy objektum exportálása az aktív munkalapból - Supported formats - Támogatott formátumok + Supported formats + Támogatott formátumok - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Eszközök + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Fájl + File + Fájl - &Recompute - Új&raszámítás + &Recompute + Új&raszámítás - Recompute feature or document - JellemzÅ‘k vagy dokumentum újraszámítása + Recompute feature or document + JellemzÅ‘k vagy dokumentum újraszámítása - - + + StdCmdFreeCADWebsite - Help - Súgó + Help + Súgó - FreeCAD Website - FreeCAD honlapja + FreeCAD Website + FreeCAD honlapja - The FreeCAD website - A FreeCAD honlapja + The FreeCAD website + A FreeCAD honlapja - - + + StdCmdFreezeViews - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Freeze display - KépernyÅ‘ fagyasztása + Freeze display + KépernyÅ‘ fagyasztása - Freezes the current view position - Az aktuális nézet pozíció fagyasztása + Freezes the current view position + Az aktuális nézet pozíció fagyasztása - - + + StdCmdHideObjects - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Hide all objects - Az összes objektum elrejtése + Hide all objects + Az összes objektum elrejtése - Hide all objects in the document - A dokumentumban lévÅ‘ összes objektum elrejtéséhez + Hide all objects in the document + A dokumentumban lévÅ‘ összes objektum elrejtéséhez - - + + StdCmdHideSelection - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Hide selection - Kijelölt elrejtése + Hide selection + Kijelölt elrejtése - Hide all selected objects - Minden kijelölt objektum elrejtése + Hide all selected objects + Minden kijelölt objektum elrejtése - - + + StdCmdImport - File - Fájl + File + Fájl - &Import... - &Import... + &Import... + &Import... - Import a file in the active document - Fájl importálása az aktív dokumentumba + Import a file in the active document + Fájl importálása az aktív dokumentumba - Supported formats - Támogatott formátumok + Supported formats + Támogatott formátumok - All files (*.*) - Minden fájl (*.*) + All files (*.*) + Minden fájl (*.*) - - + + StdCmdMacroStartDebug - Macro - Makró + Macro + Makró - Debug macro - Makró hibakeresés + Debug macro + Makró hibakeresés - Start debugging of macro - Makró hibakeresés indítása + Start debugging of macro + Makró hibakeresés indítása - - + + StdCmdMacroStepOver - Macro - Makró + Macro + Makró - Step over - Ãtlép + Step over + Ãtlép - - + + StdCmdMacroStopDebug - Macro - Makró + Macro + Makró - Stop debugging - Hibakeresés leállítása + Stop debugging + Hibakeresés leállítása - Stop debugging of macro - Makró hibakeresÅ‘ leállítása + Stop debugging of macro + Makró hibakeresÅ‘ leállítása - - + + StdCmdMacroStopRecord - Macro - Makró + Macro + Makró - S&top macro recording - Makró rögzítés leállítása + S&top macro recording + Makró rögzítés leállítása - Stop the macro recording session - Leállítja a makrófelvételi folyamatot + Stop the macro recording session + Leállítja a makrófelvételi folyamatot - - + + StdCmdMeasureDistance - View - Nézet + View + Nézet - Measure distance - Távolság mérés + Measure distance + Távolság mérés - - + + StdCmdMeasurementSimple - Tools - Eszközök + Tools + Eszközök - Mesure distance - Távolságmérés + Mesure distance + Távolságmérés - Measures distance between two selected objects - Távolságmérés két kijelölt objektum között + Measures distance between two selected objects + Távolságmérés két kijelölt objektum között - - + + Measure distance + Távolság mérés + + + StdCmdMergeProjects - File - Fájl + File + Fájl - Merge project... - Projekt egyesítése... + Merge project... + Projekt egyesítése... - Merge project - Projekt egyesítése + Merge project + Projekt egyesítése - %1 document (*.fcstd) - %1 dokumentum (*.fcstd) + %1 document (*.fcstd) + %1 dokumentum (*.fcstd) - Cannot merge project with itself. - Nem tudja egyesíteni önmagával a projektet. + Cannot merge project with itself. + Nem tudja egyesíteni önmagával a projektet. - - + + StdCmdNew - File - Fájl + File + Fájl - &New - &Új + &New + &Új - Create a new empty document - Új üres munkalap létrehozása + Create a new empty document + Új üres munkalap létrehozása - - + + StdCmdOnlineHelp - Help - Súgó + Help + Súgó - Show help to the application - Program Súgó megjelenítése + Show help to the application + Program Súgó megjelenítése - - + + StdCmdOnlineHelpPython - Help - Súgó + Help + Súgó - Python Manuals - Python kézikönyvek + Python Manuals + Python kézikönyvek - Show the Python documentation - A Python-dokumentáció megjelenítése + Show the Python documentation + A Python-dokumentáció megjelenítése - - + + StdCmdOnlineHelpWebsite - Help - Súgó + Help + Súgó - Help Website - Súgó Honlap + Help Website + Súgó Honlap - The website where the help is maintained - A honlap, ahol a súgót tartják + The website where the help is maintained + A honlap, ahol a súgót tartják - - + + StdCmdOpen - File - Fájl + File + Fájl - &Open... - &Megnyitás ... + &Open... + &Megnyitás ... - Open a document or import files - Dokumentum megnyitása vagy fájl importálása + Open a document or import files + Dokumentum megnyitása vagy fájl importálása - Supported formats - Támogatott formátumok + Supported formats + Támogatott formátumok - All files (*.*) - Minden fájl (*.*) + All files (*.*) + Minden fájl (*.*) - - + + StdCmdPaste - Edit - Módosítás + Edit + Módosítás - &Paste - &Beillesztés + &Paste + &Beillesztés - Paste operation - Beillesztési művelet + Paste operation + Beillesztési művelet - - + + StdCmdPlacement - Edit - Módosítás + Edit + Módosítás - Placement... - Elhelyezés ... + Placement... + Elhelyezés ... - Place the selected objects - A kijelölt objektumok helye + Place the selected objects + A kijelölt objektumok helye - - + + StdCmdPrint - File - Fájl + File + Fájl - &Print... - &Nyomtatás ... + &Print... + &Nyomtatás ... - Print the document - A dokumentum nyomtatása + Print the document + A dokumentum nyomtatása - - + + StdCmdPrintPdf - File - Fájl + File + Fájl - &Export PDF... - PDF &exportálása... + &Export PDF... + PDF &exportálása... - Export the document as PDF - Dokumentum exportálása PDF fájlba + Export the document as PDF + Dokumentum exportálása PDF fájlba - - + + StdCmdPrintPreview - File - Fájl + File + Fájl - &Print preview... - Nyomtatási kép... + &Print preview... + Nyomtatási kép... - Print the document - A dokumentum nyomtatása + Print the document + A dokumentum nyomtatása - Print preview - Nyomtatási kép + Print preview + Nyomtatási kép - - + + StdCmdProjectInfo - File - Fájl + File + Fájl - Project i&nformation... - Projekt i&nformáció... + Project i&nformation... + Projekt i&nformáció... - Show details of the currently active project - Részletek megjelenítése az aktuális projektrÅ‘l + Show details of the currently active project + Részletek megjelenítése az aktuális projektrÅ‘l - - + + StdCmdProjectUtil - Tools - Eszközök + Tools + Eszközök - Project utility... - Project segédprogram... + Project utility... + Project segédprogram... - Utility to extract or create project files - Felhasználót kivon, vagy hozzon létre a projekt fájlokat + Utility to extract or create project files + Felhasználót kivon, vagy hozzon létre a projekt fájlokat - - + + StdCmdPythonWebsite - Help - Súgó + Help + Súgó - Python Website - Python honlapja + Python Website + Python honlapja - The official Python website - Python hivatalos honlapja + The official Python website + Python hivatalos honlapja - - + + StdCmdQuit - File - Fájl + File + Fájl - E&xit - &Kilépés + E&xit + &Kilépés - Quits the application - Kilépés az alkalmazásból + Quits the application + Kilépés az alkalmazásból - - + + StdCmdRandomColor - File - Fájl + File + Fájl - Random color - Véletlen szín + Random color + Véletlen szín - - + + StdCmdRecentFiles - File - Fájl + File + Fájl - Recent files - Legutóbbi fájlok + Recent files + Legutóbbi fájlok - Recent file list - Legutóbbi fájlok listája + Recent file list + Legutóbbi fájlok listája - - + + StdCmdRedo - Edit - Módosítás + Edit + Módosítás - &Redo - &Ismét: + &Redo + &Ismét: - Redoes a previously undone action - Egy elÅ‘zÅ‘leg visszavont művelet megismétlése + Redoes a previously undone action + Egy elÅ‘zÅ‘leg visszavont művelet megismétlése - - + + StdCmdRefresh - Edit - Módosítás + Edit + Módosítás - &Refresh - &Frissítés + &Refresh + &Frissítés - Recomputes the current active document - Újraszámítja a jelenlegi aktív dokumentumot + Recomputes the current active document + Újraszámítja a jelenlegi aktív dokumentumot - - + + StdCmdSave - File - Fájl + File + Fájl - &Save - &Mentés + &Save + &Mentés - Save the active document - Az aktív dokumentum mentése + Save the active document + Az aktív dokumentum mentése - - + + StdCmdSaveAs - File - Fájl + File + Fájl - Save &As... - Mentés másként ... + Save &As... + Mentés másként ... - Save the active document under a new file name - Az aktuális dokumentum mentése új néven + Save the active document under a new file name + Az aktuális dokumentum mentése új néven - - + + StdCmdSceneInspector - Tools - Eszközök + Tools + Eszközök - Scene inspector... - Jelenet ellenÅ‘r ... + Scene inspector... + Jelenet ellenÅ‘r ... - Scene inspector - Jelenet ellenÅ‘r + Scene inspector + Jelenet ellenÅ‘r - - + + StdCmdSelectAll - Edit - Módosítás + Edit + Módosítás - Select &All - Összes kijelölése + Select &All + Összes kijelölése - Select all - Összes kijelölése + Select all + Összes kijelölése - - + + StdCmdSetAppearance - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Appearance... - Megjelenés... + Appearance... + Megjelenés... - Sets the display properties of the selected object - A képernyÅ‘ tulajdonságok beállítása az objektumhoz + Sets the display properties of the selected object + A képernyÅ‘ tulajdonságok beállítása az objektumhoz - - + + StdCmdShowObjects - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Show all objects - Összes objektum megjelenítése + Show all objects + Összes objektum megjelenítése - Show all objects in the document - Összes objektum megjelenítése a dokumentumban + Show all objects in the document + Összes objektum megjelenítése a dokumentumban - - + + StdCmdShowSelection - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Show selection - Kijelölés megjelenítése + Show selection + Kijelölés megjelenítése - Show all selected objects - Összes kijelölt objektum megjelenítése + Show all selected objects + Összes kijelölt objektum megjelenítése - - + + StdCmdStatusBar - View - Nézet + View + Nézet - Status bar - Ãllapotsor + Status bar + Ãllapotsor - Toggles the status bar - Ãllapotsort kapcsoló. + Toggles the status bar + Ãllapotsort kapcsoló. - - + + StdCmdTextureMapping - Tools - Eszközök + Tools + Eszközök - Texture mapping... - Textúra leképezés ... + Texture mapping... + Textúra leképezés ... - Texture mapping - Textúra leképezés + Texture mapping + Textúra leképezés - - + + StdCmdTileWindows - Window - Ablak + Window + Ablak - &Tile - Mozaik elrendezés + &Tile + Mozaik elrendezés - Tile the windows - Mozaikszerű elrendezés + Tile the windows + Mozaikszerű elrendezés - - + + StdCmdToggleBreakpoint - Macro - Makró + Macro + Makró - Toggle breakpoint - Töréspont váltás + Toggle breakpoint + Töréspont váltás - - + + StdCmdToggleClipPlane - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Clipping plane - Vágás sík + Clipping plane + Vágás sík - Toggles clipping plane for active view - Aktív nézet váltása a vágási síkra + Toggles clipping plane for active view + Aktív nézet váltása a vágási síkra - - + + StdCmdToggleNavigation - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Toggle navigation/Edit mode - Váltás a navigációs/szerkesztési mód között + Toggle navigation/Edit mode + Váltás a navigációs/szerkesztési mód között - Toggle between navigation and edit mode - Váltás a navigációs és szerkesztési mód között + Toggle between navigation and edit mode + Váltás a navigációs és szerkesztési mód között - - + + StdCmdToggleObjects - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Toggle all objects - Az összes objektum ki-/ bekapcsolása + Toggle all objects + Az összes objektum ki-/ bekapcsolása - Toggles visibility of all objects in the active document - Megjeleníti, illetve eltünteti az aktív dokumentumban található összes objektumot + Toggles visibility of all objects in the active document + Megjeleníti, illetve eltünteti az aktív dokumentumban található összes objektumot - - + + StdCmdToggleSelectability - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Toggle selectability - Kiválaszthatóság ki-/bekapcsolása + Toggle selectability + Kiválaszthatóság ki-/bekapcsolása - Toggles the property of the objects to get selected in the 3D-View - A tárgy tulajdonságainak változtatása a 3D-nézet kiválasztásához + Toggles the property of the objects to get selected in the 3D-View + A tárgy tulajdonságainak változtatása a 3D-nézet kiválasztásához - - + + StdCmdToggleVisibility - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Toggle visibility - Láthatóság váltása + Toggle visibility + Láthatóság váltása - Toggles visibility - Be-és kikapcsolja a láthatóságot + Toggles visibility + Be-és kikapcsolja a láthatóságot - - + + StdCmdToolBarMenu - View - Nézet + View + Nézet - Tool&bars - Eszköztárak + Tool&bars + Eszköztárak - Toggles this window - Ablak váltás + Toggles this window + Ablak váltás - - + + StdCmdTransform - Edit - Módosítás + Edit + Módosítás - Transform... - Ãtalakítás... + Transform... + Ãtalakítás... - Transform the geometry of selected objects - A kijelölt objektum geometriájának átalakítása + Transform the geometry of selected objects + A kijelölt objektum geometriájának átalakítása - - + + StdCmdTreeSelection - View - Nézet + View + Nézet - Go to selection - Kijelöltre ugrás + Go to selection + Kijelöltre ugrás - Scroll to first selected item - Lapozzon az elsÅ‘ kijelölt elemre + Scroll to first selected item + Lapozzon az elsÅ‘ kijelölt elemre - - + + StdCmdUndo - Edit - Módosítás + Edit + Módosítás - &Undo - &Visszavonás + &Undo + &Visszavonás - Undo exactly one action - Egyetlen művelet visszavonása + Undo exactly one action + Egyetlen művelet visszavonása - - + + StdCmdUserInterface - View - Nézet + View + Nézet - Dock views - Dokkoló nézet + Dock views + Dokkoló nézet - Dock all top-level views - Összes felülnézet kapcslása + Dock all top-level views + Összes felülnézet kapcslása - - + + StdCmdViewAxo - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Axometric - Axonometria + Axometric + Axonometria - Set to axometric view - Axonometrikus nézet beállítása + Set to axometric view + Axonometrikus nézet beállítása - - + + StdCmdViewBottom - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Bottom - Alsó + Bottom + Alsó - Set to bottom view - Alsó nézet beállítása + Set to bottom view + Alsó nézet beállítása - - + + StdCmdViewCreate - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Create new view - Új nézet + Create new view + Új nézet - Creates a new view window for the active document - Új nézet ablakot hoz létre az aktív dokumentumban + Creates a new view window for the active document + Új nézet ablakot hoz létre az aktív dokumentumban - - + + StdCmdViewExample1 - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Inventor example #1 - Feltaláló példa #1 + Inventor example #1 + Feltaláló példa #1 - Shows a 3D texture with manipulator - A kezelÅ‘vel jeleníti meg a 3D textúrát + Shows a 3D texture with manipulator + A kezelÅ‘vel jeleníti meg a 3D textúrát - - + + StdCmdViewExample2 - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Inventor example #2 - Feltaláló példa #2 + Inventor example #2 + Feltaláló példa #2 - Shows spheres and drag-lights - Gömb felület és mozgó fényforrás mutatása + Shows spheres and drag-lights + Gömb felület és mozgó fényforrás mutatása - - + + StdCmdViewExample3 - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Inventor example #3 - Feltaláló példa #3 + Inventor example #3 + Feltaláló példa #3 - Shows a animated texture - Animált textúra megjelenítése + Shows a animated texture + Animált textúra megjelenítése - - + + StdCmdViewFitAll - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Fit all - Összes megjelenítése + Fit all + Összes megjelenítése - Fits the whole content on the screen - A teljes tartalom töltse ki a képernyÅ‘t + Fits the whole content on the screen + A teljes tartalom töltse ki a képernyÅ‘t - - + + StdCmdViewFitSelection - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Fit selection - Kijelöltek képernyÅ‘re + Fit selection + Kijelöltek képernyÅ‘re - Fits the selected content on the screen - A kiválasztott tartalom kitöltse a képernyÅ‘t + Fits the selected content on the screen + A kiválasztott tartalom kitöltse a képernyÅ‘t - - + + StdCmdViewFront - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Front - Elölnézet + Front + Elölnézet - Set to front view - Elölnézetre állítás + Set to front view + Elölnézetre állítás - - + + StdCmdViewIvIssueCamPos - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Issue camera position - Kamera pozicionálása + Issue camera position + Kamera pozicionálása - Issue the camera position to the console and to a macro, to easily recall this position - Ãrd be a kamera helyzetét, hogy a konzol és a makró könnyen felvegye ezt a pozíciót + Issue the camera position to the console and to a macro, to easily recall this position + Ãrd be a kamera helyzetét, hogy a konzol és a makró könnyen felvegye ezt a pozíciót - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Stereo Interleaved Columns - Váltott oszlopú sztereó + Stereo Interleaved Columns + Váltott oszlopú sztereó - Switch stereo viewing to Interleaved Columns - Sztereó nézet váltása: Váltott oszloposra + Switch stereo viewing to Interleaved Columns + Sztereó nézet váltása: Váltott oszloposra - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Stereo Interleaved Rows - Váltott soros sztereó + Stereo Interleaved Rows + Váltott soros sztereó - Switch stereo viewing to Interleaved Rows - Sztereó nézet váltása: Váltott sorosra + Switch stereo viewing to Interleaved Rows + Sztereó nézet váltása: Váltott sorosra - - + + StdCmdViewIvStereoOff - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Stereo Off - Sztereó kikapcsolása + Stereo Off + Sztereó kikapcsolása - Switch stereo viewing off - Sztereó nézet kikapcsolása + Switch stereo viewing off + Sztereó nézet kikapcsolása - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Sztereó nézet váltása: quad buffer + Switch stereo viewing to quad buffer + Sztereó nézet váltása: quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Stereo red/green - Sztereó piros/zöld + Stereo red/green + Sztereó piros/zöld - Switch stereo viewing to red/green - Sztereó nézet váltása: piros/zöld + Switch stereo viewing to red/green + Sztereó nézet váltása: piros/zöld - - + + StdCmdViewLeft - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Left - Bal nézet + Left + Bal nézet - Set to left view - Bal oldali nézet beállítása + Set to left view + Bal oldali nézet beállítása - - + + StdCmdViewRear - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Rear - Hátsó nézet + Rear + Hátsó nézet - Set to rear view - Hátulnézet beállítása + Set to rear view + Hátulnézet beállítása - - + + StdCmdViewRight - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Right - Jobb + Right + Jobb - Set to right view - Jobb oldali nézet beállítása + Set to right view + Jobb oldali nézet beállítása - - + + + StdCmdViewRotateLeft + + Standard-View + Standard-nézet + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standard-nézet + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Top - Felülnézet + Top + Felülnézet - Set to top view - Felülnézet beállítása + Set to top view + Felülnézet beállítása - - + + StdCmdWhatsThis - Help - Súgó + Help + Súgó - &What's This? - &Mi ez? + &What's This? + &Mi ez? - What's This - Mi ez + What's This + Mi ez - - + + StdCmdWindows - Window - Ablak + Window + Ablak - &Windows... - Ablakok + &Windows... + Ablakok - Windows list - Ablaklista + Windows list + Ablaklista - - + + StdCmdWindowsMenu - Window - Ablak + Window + Ablak - Activates this window - Ablak aktiválása + Activates this window + Ablak aktiválása - - + + StdCmdWorkbench - View - Nézet + View + Nézet - Workbench - Munkafelület + Workbench + Munkafelület - Switch between workbenches - Váltás munkafelületek között + Switch between workbenches + Váltás munkafelületek között - - + + StdOrthographicCamera - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Orthographic view - FüggÅ‘leges vetületi nézet + Orthographic view + FüggÅ‘leges vetületi nézet - Switches to orthographic view mode - Váltás függÅ‘leges vetületi nézetre + Switches to orthographic view mode + Váltás függÅ‘leges vetületi nézetre - - + + StdPerspectiveCamera - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Perspective view - Perspektivikus nézet + Perspective view + Perspektivikus nézet - Switches to perspective view mode - Váltás perspektivikus nézetre + Switches to perspective view mode + Váltás perspektivikus nézetre - - + + StdViewBoxZoom - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Box zoom - MezÅ‘ nagyítása + Box zoom + MezÅ‘ nagyítása - - + + StdViewDockUndockFullscreen - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Document window - Dokumentum ablak + Document window + Dokumentum ablak - Display the active view either in fullscreen, in undocked or docked mode - Az aktív nézet megjelenítése teljes képernyÅ‘ben, rögzített és nem rögzített módban is + Display the active view either in fullscreen, in undocked or docked mode + Az aktív nézet megjelenítése teljes képernyÅ‘ben, rögzített és nem rögzített módban is - - + + StdViewScreenShot - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Save picture... - Kép mentése ... + Save picture... + Kép mentése ... - Creates a screenshot of the active view - KépernyÅ‘kép készítése az aktuális nézetrÅ‘l + Creates a screenshot of the active view + KépernyÅ‘kép készítése az aktuális nézetrÅ‘l - - + + StdViewZoomIn - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Zoom In - Nagyítás + Zoom In + Nagyítás - - + + StdViewZoomOut - Standard-View - Standard-nézet + Standard-View + Standard-nézet - Zoom Out - Kicsinyítés + Zoom Out + Kicsinyítés - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &File + &File + &File - &Edit - S&zerkesztés + &Edit + S&zerkesztés - Standard views - Alap nézetek + Standard views + Alap nézetek - &Stereo - &Sztereo + &Stereo + &Sztereo - &Zoom - &Nagyítás + &Zoom + &Nagyítás - Visibility - Láthatóság + Visibility + Láthatóság - &View - &Nézet + &View + &Nézet - &Tools - &Eszköztárak + &Tools + &Eszköztárak - &Macro - &Makró + &Macro + &Makró - &Windows - &Ablakok + &Windows + &Ablakok - &On-line help - &On-line támogatás + &On-line help + &On-line támogatás - &Help - &Súgó + &Help + &Súgó - File - Fájl + File + Fájl - Macro - Makró + Macro + Makró - View - Nézet + View + Nézet - Special Ops - Speciális lehetÅ‘ségek + Special Ops + Speciális lehetÅ‘ségek - - + + testClass - test - teszt + test + teszt - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Válassza ki a feladat panel stílusát + Choose the style of the Task Panel + Válassza ki a feladat panel stílusát - Default - Alapértelmezett + Default + Alapértelmezett - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_it.ts b/src/Gui/Language/FreeCAD_it.ts index cb266b1d0..b54531909 100644 --- a/src/Gui/Language/FreeCAD_it.ts +++ b/src/Gui/Language/FreeCAD_it.ts @@ -1,5496 +1,5914 @@ - - + + Angle - Form - Modulo + Form + Modulo - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Snap angolare + Angle Snap + Snap angolare - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - nessuno + none + nessuno - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Aggiungi + + + Remove + Rimuovi + + + Move up + Spostare verso l'alto + + + Move down + Sposta verso il basso + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Premi il tasto sinistro del mouse + Press left mouse button + Premi il tasto sinistro del mouse - Press SHIFT and middle mouse button - Premi MAIUSC e il pulsante centrale del mouse + Press SHIFT and middle mouse button + Premi MAIUSC e il pulsante centrale del mouse - Press middle mouse button - Premi il tasto centrale del mouse + Press middle mouse button + Premi il tasto centrale del mouse - Scroll middle mouse button - Scorri il tasto centrale del mouse + Scroll middle mouse button + Scorri il tasto centrale del mouse - - + + Gui::CADNavigationStyle - Press left mouse button - Premi il tasto sinistro del mouse + Press left mouse button + Premi il tasto sinistro del mouse - Press middle mouse button - Premi il tasto centrale del mouse + Press middle mouse button + Premi il tasto centrale del mouse - Press left and middle mouse button - Premi il tasto sinistro e il tasto centrale del mouse + Press left and middle mouse button + Premi il tasto sinistro e il tasto centrale del mouse - Scroll middle mouse button - Scorri il tasto centrale del mouse + Scroll middle mouse button + Scorri il tasto centrale del mouse - - + + Gui::Command - Standard - Standard + Standard + Standard - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Annulla + &Cancel + &Annulla - - + + Gui::ControlSingleton - Task panel - Riquadro delle attività + Task panel + Riquadro delle attività - - + + Gui::Dialog::AboutApplication - About - Informazioni su + About + Informazioni su - Revision number - Numero revisione + Revision number + Numero revisione - Version - Versione + Version + Versione - OK - OK + OK + OK - - + + - Release date - Data di rilascio + Release date + Data di rilascio - Platform - Piattaforma + Platform + Piattaforma - License... - Licenza... + License... + Licenza... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Pulsante %1 + Button %1 + Pulsante %1 - Out Of Range - Fuori dalla portata + Out Of Range + Fuori dalla portata - - + + Gui::Dialog::CommandModel - Commands - Comandi + Commands + Comandi - - + + Gui::Dialog::DemoMode - View Turntable - Visualizza rotazione oggetti + View Turntable + Visualizza rotazione oggetti - Speed - Velocità + Speed + Velocità - Maximum - Massima + Maximum + Massima - Minimum - Minima + Minimum + Minima - Fullscreen - Schermo intero + Fullscreen + Schermo intero - Enable timer - Abilita timer + Enable timer + Abilita timer - s - s + s + s - Angle - Angolo + Angle + Angolo + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Avvia - -90° - -90° + Stop + Ferma - Play - Avvia + Close + Chiudi - - Stop - Ferma - - - Close - Chiudi - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Scegli Finestra + Choose Window + Scegli Finestra - &Activate - &Attiva + &Activate + &Attiva - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annulla + &Cancel + &Annulla - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Finestre + Windows + Finestre - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorizzazione + Authorization + Autorizzazione - &OK - &OK + &OK + &OK - &Cancel - &Annulla + &Cancel + &Annulla - Password: - Password: + Password: + Password: - User name: - Nome utente: + User name: + Nome utente: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Scegli Icona + Choose Icon + Scegli Icona - OK - OK + OK + OK - Cancel - Annulla + Cancel + Annulla - Add icons... - Aggiungi icone... + Add icons... + Aggiungi icone... - - + + Gui::Dialog::DlgCustomActions - Macros - Macro + Macros + Macro - Setup Custom Macros - Configurare le Macro personali + Setup Custom Macros + Configurare le Macro personali - Macro: - Macro: + Macro: + Macro: - ... - ... + ... + ... - Pixmap - Pixmap + Pixmap + Pixmap - Accelerator: - Acceleratore: + Accelerator: + Acceleratore: - What's this: - Che cos'è questo: + What's this: + Che cos'è questo: - Status text: - Testo di stato: + Status text: + Testo di stato: - Tool tip: - Suggerimento: + Tool tip: + Suggerimento: - Menu text: - Testo di menu: + Menu text: + Testo di menu: - Add - Aggiungi + Add + Aggiungi - Remove - Rimuovi + Remove + Rimuovi - Replace - Sostituisci + Replace + Sostituisci - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Icone + Icons + Icone - Macros - Macro + Macros + Macro - No macro - Nessuna macro + No macro + Nessuna macro - No macros found. - Nessuna macro trovata. + No macros found. + Nessuna macro trovata. - Macro not found - Macro non trovata + Macro not found + Macro non trovata - Sorry, couldn't find macro file '%1'. - Non è stato possibile trovare il file macro '%1'. + Sorry, couldn't find macro file '%1'. + Non è stato possibile trovare il file macro '%1'. - Empty macro - Macro vuota + Empty macro + Macro vuota - Please specify the macro first. - Specificare prima la macro. + Please specify the macro first. + Specificare prima la macro. - Empty text - Testo vuoto + Empty text + Testo vuoto - Please specify the menu text first. - Specificare prima il menu testo. + Please specify the menu text first. + Specificare prima il menu testo. - No item selected - Nessun elemento selezionato + No item selected + Nessun elemento selezionato - Please select a macro item first. - Selezionare prima un elemento macro. + Please select a macro item first. + Selezionare prima un elemento macro. - - + + Gui::Dialog::DlgCustomCommands - Commands - Comandi + Commands + Comandi - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Categoria + Category + Categoria - Icon - Icona + Icon + Icona - Command - Comando + Command + Comando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Tastiera + Keyboard + Tastiera - Description: - Descrizione: + Description: + Descrizione: - &Category: - &Categoria: + &Category: + &Categoria: - C&ommands: - C&omandi: + C&ommands: + C&omandi: - Current shortcut: - Scorciatoia corrente: + Current shortcut: + Scorciatoia corrente: - Press &new shortcut: - Digita la &nuova scorciatoia: + Press &new shortcut: + Digita la &nuova scorciatoia: - Currently assigned to: - Attualmente assegnata a: + Currently assigned to: + Attualmente assegnata a: - &Assign - &Assegna + &Assign + &Assegna - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Ripristina + &Reset + &Ripristina - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Ri&pristina tutto + Re&set All + Ri&pristina tutto - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Icona + Icon + Icona - Command - Comando + Command + Comando - none - nessuno + none + nessuno - Multiple defined shortcut - Scorciatoia definita più volte + Multiple defined shortcut + Scorciatoia definita più volte - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - La scorciatoia '%1' è definita più volte. Ciò potrebbe portare ad un comportamento inaspettato. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + La scorciatoia '%1' è definita più volte. Ciò potrebbe portare ad un comportamento inaspettato. - Already defined shortcut - Scorciatoia già definita + Already defined shortcut + Scorciatoia già definita - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - La scorciatoia '%1' è già stata assegnata a '%2'. + La scorciatoia '%1' è già stata assegnata a '%2'. -Definire un'altra scorciatoia. +Definire un'altra scorciatoia. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Barre degli strumenti + Toolbox bars + Barre degli strumenti - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Barre degli strumenti + Toolbars + Barre degli strumenti - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Nota:</span> Le modifiche diverranno attive al prossimo avvio dell'ambiente appropriato</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Nota:</span> Le modifiche diverranno attive al prossimo avvio dell'ambiente appropriato</p></body></html> - Move right - Sposta verso destra + Move right + Sposta verso destra - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Sposta l'elemento selezionato un livello in basso.</b><p>Questo cambierà anche il livello degli elementi padre.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Sposta l'elemento selezionato un livello in basso.</b><p>Questo cambierà anche il livello degli elementi padre.</p> - Move left - Sposta verso sinistra + Move left + Sposta verso sinistra - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Sposta l'elemento selezionato un livello in alto.</b><p>Questo cambierà anche il livello degli elementi padre.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Sposta l'elemento selezionato un livello in alto.</b><p>Questo cambierà anche il livello degli elementi padre.</p> - Move down - Sposta verso il basso + Move down + Sposta verso il basso - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> - Move up - Spostare verso l'alto + Move up + Spostare verso l'alto - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> - New... - Nuovo... + New... + Nuovo... - Rename... - Rinomina... + Rename... + Rinomina... - Delete - Elimina + Delete + Elimina - Icon - Icona + Icon + Icona - Command - Comando + Command + Comando - <Separator> - <Separatore> + <Separator> + <Separatore> - New toolbar - Nuova barra degli strumenti + New toolbar + Nuova barra degli strumenti - Toolbar name: - Nome della barra degli strumenti: + Toolbar name: + Nome della barra degli strumenti: - Duplicated name - Nome duplicato + Duplicated name + Nome duplicato - The toolbar name '%1' is already used - Il nome della barra degli strumenti '%1' è già usato + The toolbar name '%1' is already used + Il nome della barra degli strumenti '%1' è già usato - Rename toolbar - Rinomina la barra degli strumenti + Rename toolbar + Rinomina la barra degli strumenti - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Personalizza + Customize + Personalizza - &Help - &Aiuto + &Help + &Aiuto - &Close - &Chiudi + &Close + &Chiudi - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Nessun Spaceball Presente + No Spaceball Present + Nessun Spaceball Presente - Buttons - Pulsanti + Buttons + Pulsanti - Clear - Pulisci + Clear + Pulisci - Print Reference - Stampa riferimento + Print Reference + Stampa riferimento - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Visualizza le proprietà + Display properties + Visualizza le proprietà - Display - Visualizzazione + Display + Visualizzazione - Transparency: - Trasparenza: + Transparency: + Trasparenza: - Line width: - Spessore linea: + Line width: + Spessore linea: - Point size: - Dimensione punto: + Point size: + Dimensione punto: - Material - Materiale + Material + Materiale - ... - ... + ... + ... - Close - Chiudi + Close + Chiudi - Viewing mode - Modalità di visualizzazione + Viewing mode + Modalità di visualizzazione - Display mode: - Modo di visualizzazione: + Display mode: + Modo di visualizzazione: - Plot mode: - Modo di stampa: + Plot mode: + Modo di stampa: - - + + - Line transparency: - Trasparenza linea: + Line transparency: + Trasparenza linea: - Line color: - Colore linea: + Line color: + Colore linea: - Shape color: - Colore forma: + Shape color: + Colore forma: - Color plot: - Colore trama: + Color plot: + Colore trama: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Editor + Editor + Editor - Options - Opzioni + Options + Opzioni - Enable line numbers - Abilita la numerazione delle linee + Enable line numbers + Abilita la numerazione delle linee - Enable folding - Abilita il folding + Enable folding + Abilita il folding - Indentation - Indentazione + Indentation + Indentazione - Insert spaces - Inserisci spazi + Insert spaces + Inserisci spazi - Tab size: - Dimensione della tabulazione: + Tab size: + Dimensione della tabulazione: - Indent size: - Dimensione dell'indentazione: + Indent size: + Dimensione dell'indentazione: - Keep tabs - Mantieni le tabulazioni + Keep tabs + Mantieni le tabulazioni - Display Items - Visualizzazione elementi + Display Items + Visualizzazione elementi - Family: - Tipo di carattere: + Family: + Tipo di carattere: - Size: - Dimensione: + Size: + Dimensione: - Preview: - Anteprima: + Preview: + Anteprima: - - + + - - + + Gui::Dialog::DlgGeneral - General - Generale + General + Generale - Start up - Avvio + Start up + Avvio - Enable splash screen at start up - Abilita la schermata iniziale all'avvio + Enable splash screen at start up + Abilita la schermata iniziale all'avvio - Switch to tab of report window: - Passa alla finestra di report: + Switch to tab of report window: + Passa alla finestra di report: - Auto load module after start up: - Caricamento automatico del modulo dopo l'avvio: + Auto load module after start up: + Caricamento automatico del modulo dopo l'avvio: - Language - Lingua + Language + Lingua - Change language: - Cambia lingua: + Change language: + Cambia lingua: - Main window - Finestra principale + Main window + Finestra principale - Size of recent file list - Dimensione della lista dei file recenti + Size of recent file list + Dimensione della lista dei file recenti - Window style: - Stile della finestra: + Window style: + Stile della finestra: - Size of toolbar icons: - Dimensione delle icone della barra degli strumenti: + Size of toolbar icons: + Dimensione delle icone della barra degli strumenti: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Predefinita (%1 x %1) + Default (%1 x %1) + Predefinita (%1 x %1) - Small (%1 x %1) - Piccola (%1 x %1) + Small (%1 x %1) + Piccola (%1 x %1) - Large (%1 x %1) - Grande (%1 x %1) + Large (%1 x %1) + Grande (%1 x %1) - Extra large (%1 x %1) - Molto grande (%1 x %1) + Extra large (%1 x %1) + Molto grande (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Input + Input + Input - OK - OK + OK + OK - Cancel - Annulla + Cancel + Annulla - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Ispettore di scena + Scene Inspector + Ispettore di scena - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Esegui la macro + Execute macro + Esegui la macro - Macro name: - Nome macro: + Macro name: + Nome macro: - Macro destination: - Percorso Macro: + Macro destination: + Percorso Macro: - Execute - Esegui + Execute + Esegui - Close - Chiudi + Close + Chiudi - Create - Crea + Create + Crea - Delete - Elimina + Delete + Elimina - Edit - Modifica + Edit + Modifica - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Macro + Macros + Macro - Macro file - File macro + Macro file + File macro - Enter a file name, please: - Inserisci un nome file: + Enter a file name, please: + Inserisci un nome file: - Existing file - File esistente + Existing file + File esistente - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Il file esiste già. - Delete macro - Cancella macro + Delete macro + Cancella macro - Do you really want to delete the macro '%1'? - Vuoi veramente cancellare la macro '%1'? + Do you really want to delete the macro '%1'? + Vuoi veramente cancellare la macro '%1'? - Cannot create file - Impossibile creare il file + Cannot create file + Impossibile creare il file - Creation of file '%1' failed. - Creazione del file '%1' non riuscita. + Creation of file '%1' failed. + Creazione del file '%1' non riuscita. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Registrazione macro + Macro recording + Registrazione macro - Macro name: - Nome macro: + Macro name: + Nome macro: - Stop - Ferma + Stop + Ferma - Cancel - Annulla + Cancel + Annulla - Macro path: - Percorso macro: + Macro path: + Percorso macro: - ... - ... + ... + ... - Record - Registra + Record + Registra - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Registratore macro + Macro recorder + Registratore macro - Specify first a place to save. - Specificare prima dove salvare. + Specify first a place to save. + Specificare prima dove salvare. - Existing macro - Macro esistente + Existing macro + Macro esistente - The macro '%1' already exists. Do you want to overwrite? - La macro '%1' esiste già. Vuoi sovrasciverla? + The macro '%1' already exists. Do you want to overwrite? + La macro '%1' esiste già. Vuoi sovrasciverla? - The macro directory doesn't exist. Please, choose another one. - La cartella delle macro non esiste. Sceglierne un'altra. + The macro directory doesn't exist. Please, choose another one. + La cartella delle macro non esiste. Sceglierne un'altra. - Choose macro directory - Scegli la cartella delle macro + Choose macro directory + Scegli la cartella delle macro - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Proprietà del materiale + Material properties + Proprietà del materiale - &Close - &Chiudi + &Close + &Chiudi - Alt+C - Alt+C + Alt+C + Alt+C - Material - Materiale + Material + Materiale - Diffuse color: - Colore diffuso: + Diffuse color: + Colore diffuso: - Specular color: - Colore speculare: + Specular color: + Colore speculare: - Shininess: - Brillantezza: + Shininess: + Brillantezza: - % - % + % + % - Ambient color: - Colore ambiente: + Ambient color: + Colore ambiente: - - + + - Emissive color: - Colore di emissione: + Emissive color: + Colore di emissione: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Aiuto in linea + On-line help + Aiuto in linea - Help viewer - Visualizzatore Aiuto + Help viewer + Visualizzatore Aiuto - Location of start page - Posizione della pagina iniziale + Location of start page + Posizione della pagina iniziale - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - File HTML (*.html *.htm) + HTML files (*.html *.htm) + File HTML (*.html *.htm) - Access denied - Accesso negato + Access denied + Accesso negato - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Accesso negato a '%1' + Accesso negato a '%1' -Specificare un'altra cartella. +Specificare un'altra cartella. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Editor parametri + Parameter Editor + Editor parametri - Save to disk - Salva su disco + Save to disk + Salva su disco - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Chiudi + &Close + &Chiudi - - + + Gui::Dialog::DlgParameterImp - Group - Gruppo + Group + Gruppo - Name - Nome + Name + Nome - Type - Tipo + Type + Tipo - Value - Valore + Value + Valore - User parameter - Parametri utente + User parameter + Parametri utente - Invalid input - Input non valido + Invalid input + Input non valido - Invalid key name '%1' - Nome chiave '%1' non valido + Invalid key name '%1' + Nome chiave '%1' non valido - System parameter - Parametro di sistema + System parameter + Parametro di sistema - - + + Gui::Dialog::DlgPreferences - Preferences - Preferenze + Preferences + Preferenze - &Help - &Aiuto + &Help + &Aiuto - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &OK + &OK + &OK - &Apply - &Applica + &Apply + &Applica - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annulla + &Cancel + &Annulla - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Parametro errato + Wrong parameter + Parametro errato - - + + Gui::Dialog::DlgProjectInformation - Project information - Informazioni sul progetto + Project information + Informazioni sul progetto - Information - Informazioni + Information + Informazioni - &Name: - &Nome: + &Name: + &Nome: - Commen&t: - Commen&to: + Commen&t: + Commen&to: - Path: - Percorso: + Path: + Percorso: - &Last modified by: - &Ultima modifica effettuata da: + &Last modified by: + &Ultima modifica effettuata da: - Created &by: - Creato &da: + Created &by: + Creato &da: - Com&pany: - So&cietà: + Com&pany: + So&cietà: - Last &modification date: - Data &ultima modifica: + Last &modification date: + Data &ultima modifica: - Creation &date: - Data &di creazione: + Creation &date: + Data &di creazione: - &OK - &OK + &OK + &OK - &Cancel - &Annulla + &Cancel + &Annulla - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Utilità di progetto + Project utility + Utilità di progetto - Extract project - Estrai progetto + Extract project + Estrai progetto - Source - Fonte + Source + Fonte - Project file (*.fcstd) - File di progetto (*. fcstd) + Project file (*.fcstd) + File di progetto (*. fcstd) - Destination - Destinazione + Destination + Destinazione - Extract - Estrai + Extract + Estrai - Create project - Crea progetto + Create project + Crea progetto - Document.xml - Document.xml + Document.xml + Document.xml - Create - Crea + Create + Crea - Load project file after creation - Carica il file di progetto dopo la creazione + Load project file after creation + Carica il file di progetto dopo la creazione - Empty source - Fonte vuota + Empty source + Fonte vuota - No source is defined. - Nessuna fonte è definita. + No source is defined. + Nessuna fonte è definita. - Empty destination - Destinazione vuota + Empty destination + Destinazione vuota - No destination is defined. - Non è definita alcuna destinazione. + No destination is defined. + Non è definita alcuna destinazione. - - + + Gui::Dialog::DlgReportView - Output window - Finestra di Output + Output window + Finestra di Output - Output - Output + Output + Output - Record log messages - Registra messaggi di log + Record log messages + Registra messaggi di log - Record warnings - Registra avvisi + Record warnings + Registra avvisi - Record error messages - Registra messaggi di errore + Record error messages + Registra messaggi di errore - Colors - Colori + Colors + Colori - Normal messages: - Messaggi normali: + Normal messages: + Messaggi normali: - Log messages: - Messaggi di log: + Log messages: + Messaggi di log: - Warnings: - Avvisi: + Warnings: + Avvisi: - Errors: - Errori: + Errors: + Errori: - - + + - Redirect internal Python errors to report view - Reindirizzare gli errori interni di Python alla finestra di report + Redirect internal Python errors to report view + Reindirizzare gli errori interni di Python alla finestra di report - Redirect internal Python output to report view - Reindirizzare l'output interno di Python nella vista report + Redirect internal Python output to report view + Reindirizzare l'output interno di Python nella vista report - - + + Gui::Dialog::DlgRunExternal - Running external program - Esecuzione programma esterno + Running external program + Esecuzione programma esterno - TextLabel - Etichetta Testo + TextLabel + Etichetta Testo - Advanced >> - Avanzate >> + Advanced >> + Avanzate >> - ... - ... + ... + ... - Accept changes - Accetta le modifiche + Accept changes + Accetta le modifiche - Discard changes - Ignorare le modifiche + Discard changes + Ignorare le modifiche - Abort program - Interrompere il programma + Abort program + Interrompere il programma - Help - Aiuto + Help + Aiuto - Select a file - Seleziona un file + Select a file + Seleziona un file - - + + Gui::Dialog::DlgSettings3DView - 3D View - Vista 3D + 3D View + Vista 3D - 3D View settings - Impostazioni Vista 3D + 3D View settings + Impostazioni Vista 3D - Show coordinate system in the corner - Mostra le coordinate di sistema nell'angolo + Show coordinate system in the corner + Mostra le coordinate di sistema nell'angolo - Show counter of frames per second - Mostra contatore frame per secondo + Show counter of frames per second + Mostra contatore frame per secondo - Enable animation - Abilita animazione + Enable animation + Abilita animazione - Enable anti-aliasing (slower) - Attiva anti-aliasing + Enable anti-aliasing (slower) + Attiva anti-aliasing - Eye to eye distance for stereo modes: - Distanza tra gli occhi per le modalità stereo: + Eye to eye distance for stereo modes: + Distanza tra gli occhi per le modalità stereo: - Camera type - Tipo di camera + Camera type + Tipo di camera - Orthographic rendering - Render ortografico + Orthographic rendering + Render ortografico - Perspective rendering - Render prospettico + Perspective rendering + Render prospettico - - + + - 3D Navigation - Navigazione 3D + 3D Navigation + Navigazione 3D - Mouse... - Mouse... + Mouse... + Mouse... - Intensity of backlight - Intensità della retroilluminazione + Intensity of backlight + Intensità della retroilluminazione - Enable backlight color - Attiva il colore di retroilluminazione + Enable backlight color + Attiva il colore di retroilluminazione - Orbit style - Stile Orbita + Orbit style + Stile Orbita - Turntable - Piatto + Turntable + Piatto - Trackball - Trackball + Trackball + Trackball - Invert zoom - Inverti zoom + Invert zoom + Inverti zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - Navigazione %1 + %1 navigation + Navigazione %1 - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Modello di colore + Color model + Modello di colore - &Gradient: - &Gradiente: + &Gradient: + &Gradiente: - red-yellow-green-cyan-blue - rosso-giallo-verde-ciano-blu + red-yellow-green-cyan-blue + rosso-giallo-verde-ciano-blu - blue-cyan-green-yellow-red - blu-ciano-verde-giallo-rosso + blue-cyan-green-yellow-red + blu-ciano-verde-giallo-rosso - white-black - bianco-nero + white-black + bianco-nero - black-white - nero-bianco + black-white + nero-bianco - Visibility - Visibilità + Visibility + Visibilità - Out g&rayed - Uscita in scala di g&rigi + Out g&rayed + Uscita in scala di g&rigi - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Uscita &invisibile + Out &invisible + Uscita &invisibile - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stile + Style + Stile - &Zero - &Zero + &Zero + &Zero - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flusso + &Flow + &Flusso - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Annulla + &Cancel + &Annulla - Parameter range - Intervallo parametro + Parameter range + Intervallo parametro - Mi&nimum: - Mi&nimo: + Mi&nimum: + Mi&nimo: - Ma&ximum: - Ma&ssimo: + Ma&ximum: + Ma&ssimo: - &Labels: - &Etichette: + &Labels: + &Etichette: - &Decimals: - &Decimali: + &Decimals: + &Decimali: - - + + - Color-gradient settings - Impostazioni del gradiente di colore + Color-gradient settings + Impostazioni del gradiente di colore - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Parametro errato + Wrong parameter + Parametro errato - The maximum value must be higher than the minimum value. - Il valore massimo deve essere maggiore del valore minimo. + The maximum value must be higher than the minimum value. + Il valore massimo deve essere maggiore del valore minimo. - - + + Gui::Dialog::DlgSettingsDocument - Document - Documento + Document + Documento - General - Generale + General + Generale - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Livello di compressione di salvataggio del documento + Livello di compressione di salvataggio del documento (0 = nessuno, 9 = massimo, 3 = normale) - Create new document at start up - Crea un nuovo documento all'avvio + Create new document at start up + Crea un nuovo documento all'avvio - Storage - Archiviazione + Storage + Archiviazione - Saving transactions (Auto-save) - Salvataggio delle transazioni (Salvataggio automatico) + Saving transactions (Auto-save) + Salvataggio delle transazioni (Salvataggio automatico) - Discard saved transaction after saving document - Elimina le transazioni dopo il salvataggio del documento + Discard saved transaction after saving document + Elimina le transazioni dopo il salvataggio del documento - Save thumbnail into project file when saving document - Salva la miniatura nel file del progetto al salvataggio del documento + Save thumbnail into project file when saving document + Salva la miniatura nel file del progetto al salvataggio del documento - Create up to backup files when resaving document - Numero di file di backup quando si salva di nuovo il documento + Create up to backup files when resaving document + Numero di file di backup quando si salva di nuovo il documento - Document objects - Oggetti del documento + Document objects + Oggetti del documento - Allow duplicate object labels in one document - Consente la duplicazione delle etichette degli oggetti in uno stesso documento + Allow duplicate object labels in one document + Consente la duplicazione delle etichette degli oggetti in uno stesso documento - Maximum Undo/Redo steps - Massimo numero di passaggi di Annulla/Modifica + Maximum Undo/Redo steps + Massimo numero di passaggi di Annulla/Modifica - Using Undo/Redo on documents - Utilizzo di Annulla/Ripeti sui documenti + Using Undo/Redo on documents + Utilizzo di Annulla/Ripeti sui documenti - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Testo + Text + Testo - Bookmark - Segnalibro + Bookmark + Segnalibro - Breakpoint - Interruzione + Breakpoint + Interruzione - Keyword - Parola chiave + Keyword + Parola chiave - Comment - Commento + Comment + Commento - Block comment - Blocco di commento + Block comment + Blocco di commento - Number - Numero + Number + Numero - String - Stringa + String + Stringa - Character - Carattere + Character + Carattere - Class name - Nome della classe + Class name + Nome della classe - Define name - Nome definito + Define name + Nome definito - Operator - Operatore + Operator + Operatore - Python output - Output Python + Python output + Output Python - Python error - Errore Python + Python error + Errore Python - Items - Elementi + Items + Elementi - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Impostazioni immagine + Image settings + Impostazioni immagine - Image properties - Proprietà immagine + Image properties + Proprietà immagine - Back&ground: - Sfo&ndo + Back&ground: + Sfo&ndo - Current - Corrente + Current + Corrente - White - Bianco + White + Bianco - Black - Nero + Black + Nero - Transparent - Trasparente + Transparent + Trasparente - Image dimensions - Dimensioni immagine + Image dimensions + Dimensioni immagine - Pixel - pixel + Pixel + pixel - &Width: - &Larghezza: + &Width: + &Larghezza: - Current screen - Schermo corrente + Current screen + Schermo corrente - Icon 32 x 32 - Icona 32 x 32 + Icon 32 x 32 + Icona 32 x 32 - Icon 64 x 64 - Icona 64 x 64 + Icon 64 x 64 + Icona 64 x 64 - Icon 128 x 128 - Icona 128 x 128 + Icon 128 x 128 + Icona 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Dimensioni standard: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Altezza: - Standard sizes: - Dimensioni standard: + Aspect ratio: + Proporzioni: - &Height: - &Altezza: + &Screen + &Schermo - Aspect ratio: - Proporzioni: + Alt+S + Alt+S - &Screen - &Schermo + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Commento immagine - Alt+1 - Alt+1 + Insert MIBA + Inserisci MIBA - Image comment - Commento immagine + Insert comment + Inserisci commento - - Insert MIBA - Inserisci MIBA - - - Insert comment - Inserisci commento - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Impostazioni di registrazione macro + Macro recording settings + Impostazioni di registrazione macro - Logging Commands - Comandi di log + Logging Commands + Comandi di log - Show script commands in python console - Mostra i comandi di script nella console Python + Show script commands in python console + Mostra i comandi di script nella console Python - Log all commands issued by menus to file: - Registra tutti i comandi emessi dai menu al file: + Log all commands issued by menus to file: + Registra tutti i comandi emessi dai menu al file: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Comandi d'interfaccia utente + Gui commands + Comandi d'interfaccia utente - Recording GUI commands - Registrazione dei comandi d'interfaccia utente + Recording GUI commands + Registrazione dei comandi d'interfaccia utente - Record as comment - Registra come commento + Record as comment + Registra come commento - Macro path - Percorso macro + Macro path + Percorso macro - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Unità + Units + Unità - Units settings - Impostazioni unità + Units settings + Impostazioni unità - Standard (mm/kg/s/degree) - Standard (mm/kg/s/gradi) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/gradi) - MKS (m/kg/s/degree) - MKS (m/kg/s/gradi) + MKS (m/kg/s/degree) + MKS (m/kg/s/gradi) - Magnitude - Grandezza + Magnitude + Grandezza - Unit - Unità + Unit + Unità - User system: - Sistema utente: + User system: + Sistema utente: - Imperial (in/lb) - Imperiale (in/lb) + Imperial (in/lb) + Imperiale (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Colori + Colors + Colori - Selection - Selezione + Selection + Selezione - Enable selection highlighting - Attiva l'evidenziamento di selezione + Enable selection highlighting + Attiva l'evidenziamento di selezione - Enable preselection highlighting - Attiva l'evidenziamento di preselezione + Enable preselection highlighting + Attiva l'evidenziamento di preselezione - Background color - Colore dello sfondo + Background color + Colore dello sfondo - Middle color - Colore centrale + Middle color + Colore centrale - Color gradient - Gradiente di colore + Color gradient + Gradiente di colore - Simple color - Colore semplice + Simple color + Colore semplice - Default colors - Colori predefiniti + Default colors + Colori predefiniti - Edited edge color - Colore degli spigoli modificati + Edited edge color + Colore degli spigoli modificati - Edited vertex color - Colore dei vertici modificati + Edited vertex color + Colore dei vertici modificati - Construction geometry - Geometria di costruzione + Construction geometry + Geometria di costruzione - Fully constrained geometry - Geometria interamente vincolata + Fully constrained geometry + Geometria interamente vincolata - The color of construction geometry in editmode - Il colore della geometria di costruzione in modalità modifica + The color of construction geometry in editmode + Il colore della geometria di costruzione in modalità modifica - The color of fully constrained geometry in editmode - Il colore della geometria completamente vincolata in modalità modifica + The color of fully constrained geometry in editmode + Il colore della geometria completamente vincolata in modalità modifica - The color of vertices being edited - Il colore dei vertici in fase di modifica + The color of vertices being edited + Il colore dei vertici in fase di modifica - The color of edges being edited - Il colore degli spigoli in fase di modifica + The color of edges being edited + Il colore degli spigoli in fase di modifica - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Consiglio del giorno + Tip of the day + Consiglio del giorno - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Lo sapevi che...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Lo sapevi che...</font></font></b> - &Show tips at start up - &Mostra i consigli all'avvio + &Show tips at start up + &Mostra i consigli all'avvio - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Prossimo consiglio + &Next Tip + &Prossimo consiglio - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Chiudi + &Close + &Chiudi - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Download non riuscito: %1 + Download non riuscito: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Se vuoi saperne di più su FreeCAD vai a %1 o premi Aiuto nel menu Aiuto. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Se vuoi saperne di più su FreeCAD vai a %1 o premi Aiuto nel menu Aiuto. - - + + Gui::Dialog::DockablePlacement - Placement - Posizionamento + Placement + Posizionamento - - + + Gui::Dialog::DownloadDialog - Canceled. - Annullato + Canceled. + Annullato - - + + Download + + + + Cancel + Annulla + + + Close + Chiudi + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Download non riuscito: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Aggiungi icona + Add icon + Aggiungi icona - - + + Gui::Dialog::InputVector - Input vector - Immetti vettore + Input vector + Immetti vettore - Vector - Vettore + Vector + Vettore - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Tasti del mouse + Mouse buttons + Tasti del mouse - Configuration - Configurazione + Configuration + Configurazione - Selection: - Selezione: + Selection: + Selezione: - Panning - Panoramica + Panning + Panoramica - Rotation: - Rotazione: + Rotation: + Rotazione: - Zooming: - Zoom: + Zooming: + Zoom: - - + + Gui::Dialog::ParameterGroup - Expand - Espandi + Expand + Espandi - Add sub-group - Aggiungi sottogruppo + Add sub-group + Aggiungi sottogruppo - Remove group - Rimuovi gruppo + Remove group + Rimuovi gruppo - Rename group - Rinomina gruppo + Rename group + Rinomina gruppo - Export parameter - Esporta parametro + Export parameter + Esporta parametro - Import parameter - Importa parametro + Import parameter + Importa parametro - Collapse - Riduci + Collapse + Riduci - Do really want to remove this parameter group? - Vuoi veramente rimuonere questo gruppo di parametri? + Do really want to remove this parameter group? + Vuoi veramente rimuonere questo gruppo di parametri? - Existing sub-group - Sottogruppo esistente + Existing sub-group + Sottogruppo esistente - The sub-group '%1' already exists. - Il sottogruppo '%1' esiste già. + The sub-group '%1' already exists. + Il sottogruppo '%1' esiste già. - Export parameter to file - Esporta il parametro in un file + Export parameter to file + Esporta il parametro in un file - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Importa il parametro da un file + Import parameter from file + Importa il parametro da un file - Import Error - Errore durante l'importazione + Import Error + Errore durante l'importazione - Reading from '%1' failed. - Lettura da '%1' non riuscita. + Reading from '%1' failed. + Lettura da '%1' non riuscita. - - + + Gui::Dialog::ParameterValue - Change value - Cambia valore + Change value + Cambia valore - Remove key - Rimuovi la chiave + Remove key + Rimuovi la chiave - Rename key - Rinomina la chiave + Rename key + Rinomina la chiave - New - Nuovo + New + Nuovo - New string item - Nuovo elemento string + New string item + Nuovo elemento string - New float item - Nuovo elemento float + New float item + Nuovo elemento float - New integer item - Nuovo elemento integer + New integer item + Nuovo elemento integer - New unsigned item - Nuovo elemento unsigned + New unsigned item + Nuovo elemento unsigned - New Boolean item - Nuovo elemento boolean + New Boolean item + Nuovo elemento boolean - Existing item - Elemento esistente + Existing item + Elemento esistente - The item '%1' already exists. - L'elemento '%1' esiste già. + The item '%1' already exists. + L'elemento '%1' esiste già. - - + + Gui::Dialog::Placement - Placement - Posizionamento + Placement + Posizionamento - OK - OK + OK + OK - Translation: - Traslazione: + Translation: + Traslazione: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotazione: + Rotation: + Rotazione: - Angle: - Angolo: + Angle: + Angolo: - Axis: - Asse: + Axis: + Asse: - Center: - Centro: + Center: + Centro: - Pitch: - Beccheggio: + Pitch: + Beccheggio: - Roll: - Rollio: + Roll: + Rollio: - Yaw: - Imbardata: + Yaw: + Imbardata: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Angoli di Eulero + Euler angles + Angoli di Eulero - Apply placement changes immediately - Applica immediatamente le modifiche di posizionamento + Apply placement changes immediately + Applica immediatamente le modifiche di posizionamento - Apply incremental changes to object placement - Applica le modifiche incrementali al posizionamento dell'oggetto + Apply incremental changes to object placement + Applica le modifiche incrementali al posizionamento dell'oggetto - Apply - Applica + Apply + Applica - Reset - Ripristina + Reset + Ripristina - Close - Chiudi + Close + Chiudi - - + + Gui::Dialog::PrintModel - Button - Pulsante + Button + Pulsante - Command - Comando + Command + Comando - - + + Gui::Dialog::SceneInspector - Dialog - Finestra di dialogo + Dialog + Finestra di dialogo - Close - Chiudi + Close + Chiudi - Refresh - Aggiorna + Refresh + Aggiorna - - + + Gui::Dialog::SceneModel - Inventor Tree - Albero Inventor + Inventor Tree + Albero Inventor - Nodes - Nodi + Nodes + Nodi - - + + Gui::Dialog::TextureMapping - Texture - Texture + Texture + Texture - Texture mapping - Mappatura texture + Texture mapping + Mappatura texture - Global - Globale + Global + Globale - Environment - Ambiente + Environment + Ambiente - Image files (%1) - File immagine (%1) + Image files (%1) + File immagine (%1) - No image - Nessuna immagine + No image + Nessuna immagine - The specified file is not a valid image file. - Il file specificato non è un file immagine valido. + The specified file is not a valid image file. + Il file specificato non è un file immagine valido. - No 3d view - Nessuna vista 3D + No 3d view + Nessuna vista 3D - No active 3d view found. - Nessuna vista 3D attiva trovata. + No active 3d view found. + Nessuna vista 3D attiva trovata. - - + + Gui::Dialog::Transform - Cancel - Annulla + Cancel + Annulla - Transform - Trasforma + Transform + Trasforma - - + + Gui::DlgTreeWidget - Dialog - Finestra di dialogo + Dialog + Finestra di dialogo - Items - Elementi + Items + Elementi - OK - OK + OK + OK - Cancel - Annulla + Cancel + Annulla - - + + - - + + Gui::DockWnd::CombiView - CombiView - Vista combinata + CombiView + Vista combinata - Project - Progetto + Project + Progetto - Tasks - Azioni + Tasks + Azioni - - + + Gui::DockWnd::HelpView - Previous - Precedente + Previous + Precedente - Next - Successivo + Next + Successivo - Home - Home + Home + Home - Open - Apri + Open + Apri - Open file - Apri file + Open file + Apri file - All HTML files (*.html *.htm) - Tutti i file HTML (*.html *.htm) + All HTML files (*.html *.htm) + Tutti i file HTML (*.html *.htm) - External browser - Browser esterno + External browser + Browser esterno - No external browser found. Specify in preferences, please - Nessun browser esterno trovato. Specificarlo nelle preferenze + No external browser found. Specify in preferences, please + Nessun browser esterno trovato. Specificarlo nelle preferenze - Starting of %1 failed - Avvio di %1 non riuscita + Starting of %1 failed + Avvio di %1 non riuscita - - + + Gui::DockWnd::PropertyDockView - Property View - Proprietà + Property View + Proprietà - - + + Gui::DockWnd::ReportOutput - Logging - Registro + Logging + Registro - Warning - Avviso + Warning + Avviso - Error - Errore + Error + Errore - Options - Opzioni + Options + Opzioni - Clear - Pulisci + Clear + Pulisci - Save As... - Salva con nome... + Save As... + Salva con nome... - Save Report Output - Salva report di output + Save Report Output + Salva report di output - Plain Text Files (*.txt *.log) - File di testo (*.txt *.log) + Plain Text Files (*.txt *.log) + File di testo (*.txt *.log) - Go to end - Vai alla fine + Go to end + Vai alla fine - Redirect Python output - Reindirizza l'output Python + Redirect Python output + Reindirizza l'output Python - Redirect Python errors - Reindirizza gli errori di Python + Redirect Python errors + Reindirizza gli errori di Python - - + + Gui::DockWnd::ReportView - Output - Output + Output + Output - Python console - Console Python + Python console + Console Python - - + + Gui::DockWnd::SelectionView - Property View - Proprietà + Property View + Proprietà - - + + Gui::DockWnd::TaskPanelView - Task View - Attività + Task View + Attività - - + + Gui::DockWnd::TextBrowser - Could not open file. - Impossibile aprire il file. + Could not open file. + Impossibile aprire il file. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Si è provato ad accedere all'indirizzo %1 che non è disponibile. Assicurarsi che quell'URL esista e provare a ricaricare la pagina. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Si è provato ad accedere all'indirizzo %1 che non è disponibile. Assicurarsi che quell'URL esista e provare a ricaricare la pagina. - Connecting to %1 - Connessione a %1 + Connecting to %1 + Connessione a %1 - Sending to %1 - Invio a %1 + Sending to %1 + Invio a %1 - Reading from %1 - Lettura da %1 + Reading from %1 + Lettura da %1 - Download failed: %1. - Download non riuscito: %1. + Download failed: %1. + Download non riuscito: %1. - Previous - Precedente + Previous + Precedente - Forward - Avanti + Forward + Avanti - Home - Home + Home + Home - Refresh - Aggiorna + Refresh + Aggiorna - Copy - Copia + Copy + Copia - Select all - Seleziona tutto + Select all + Seleziona tutto - No description for - Nessuna descrizione per + No description for + Nessuna descrizione per - - + + Gui::DocumentModel - Application - Applicazione + Application + Applicazione - Labels & Attributes - Etichette & Attributi + Labels & Attributes + Etichette & Attributi - - + + Gui::EditorView - Modified file - File modificato + Modified file + File modificato - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. -Questo è stato modificato al di fuori dell'editor sorgente. Vuoi ricaricarlo? +Questo è stato modificato al di fuori dell'editor sorgente. Vuoi ricaricarlo? - Unsaved document - Documento non salvato + Unsaved document + Documento non salvato - The document has been modified. + The document has been modified. Do you want to save your changes? - Il documento è stato modificato. + Il documento è stato modificato. Si desidera salvare le modifiche? - FreeCAD macro (*.FCMacro);;Python (*.py) - Macro FreeCAD (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + Macro FreeCAD (*.FCMacro);;Python (*.py) - Export PDF - Esporta in formato PDF + Export PDF + Esporta in formato PDF - PDF file (*.pdf) - File PDF (*.pdf) + PDF file (*.pdf) + File PDF (*.pdf) - untitled[*] - Senza titolo[*] + untitled[*] + Senza titolo[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - %1 caratteri rimossi + %1 chars removed + %1 caratteri rimossi - %1 chars added - %1 caratteri aggiunti + %1 chars added + %1 caratteri aggiunti - Formatted - Formattato + Formatted + Formattato - - + + Gui::FileChooser - Select a file - Seleziona un file + Select a file + Seleziona un file - Select a directory - Seleziona una cartella + Select a directory + Seleziona una cartella - - + + Gui::FileDialog - Save as - Salva con nome + Save as + Salva con nome - Open - Apri + Open + Apri - - + + Gui::FileOptionsDialog - Extended - Esteso + Extended + Esteso - All files (*.*) - Tutti i file (*.*) + All files (*.*) + Tutti i file (*.*) - - + + Gui::Flag - Top left - In alto a sinistra + Top left + In alto a sinistra - Bottom left - In basso a sinistra + Bottom left + In basso a sinistra - Top right - In alto a destra + Top right + In alto a destra - Bottom right - In basso a destra + Bottom right + In basso a destra - Remove - Rimuovi + Remove + Rimuovi - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Premere CTRL e il tasto sinistro del mouse + Press CTRL and left mouse button + Premere CTRL e il tasto sinistro del mouse - Press middle mouse button - Premi il tasto centrale del mouse + Press middle mouse button + Premi il tasto centrale del mouse - Press left mouse button - Premi il tasto sinistro del mouse + Press left mouse button + Premi il tasto sinistro del mouse - Scroll middle mouse button - Scorri il tasto centrale del mouse + Scroll middle mouse button + Scorri il tasto centrale del mouse - - + + Gui::LocationDialog - Wrong direction - Direzione sbagliata + Wrong direction + Direzione sbagliata - Direction must not be the null vector - La direzione non può essere un vettore nullo + Direction must not be the null vector + La direzione non può essere un vettore nullo - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Definito dall'utente... + User defined... + Definito dall'utente... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Macro + Macros + Macro - - + + Gui::MainWindow - Dimension - Dimensione + Dimension + Dimensione - Ready - Pronto + Ready + Pronto - Toggles this toolbar - Nascondi questa barra degli strumenti + Toggles this toolbar + Nascondi questa barra degli strumenti - Toggles this dockable window - Nascondi questa finestra + Toggles this dockable window + Nascondi questa finestra - Close All - Chiudi tutto + Close All + Chiudi tutto - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Download iniziato... + Download iniziato... - - + + Gui::ProgressBar - Remaining: %1 - Rimanente: %1 + Remaining: %1 + Rimanente: %1 - Aborting - Interrompere + Aborting + Interrompere - Do you really want to abort the operation? - Vuoi veramente interrompere l'operazione? + Do you really want to abort the operation? + Vuoi veramente interrompere l'operazione? - - + + Gui::ProgressDialog - Remaining: %1 - Rimanente: %1 + Remaining: %1 + Rimanente: %1 - Aborting - Interrompere + Aborting + Interrompere - Do you really want to abort the operation? - Vuoi veramente interrompere l'operazione? + Do you really want to abort the operation? + Vuoi veramente interrompere l'operazione? - - + + Gui::PropertyEditor::PropertyModel - Property - Proprietà + Property + Proprietà - Value - Valore + Value + Valore - - + + Gui::PropertyView - View - Vista + View + Vista - Data - Dati + Data + Dati - - + + Gui::PythonConsole - System exit - Uscita dal sistema + System exit + Uscita dal sistema - The application is still running. + The application is still running. Do you want to exit without saving your data? - L'applicazione è ancora in esecuzione. + L'applicazione è ancora in esecuzione. Vuoi uscire senza salvare i tuoi dati? - Python console - Console Python + Python console + Console Python - Unhandled PyCXX exception. - Eccezione PyCXX non gestibile. + Unhandled PyCXX exception. + Eccezione PyCXX non gestibile. - Unhandled FreeCAD exception. - Eccezione FreeCad non gestibile. + Unhandled FreeCAD exception. + Eccezione FreeCad non gestibile. - Unhandled unknown C++ exception. - Eccezione sconosciuta C++ non gestibile. + Unhandled unknown C++ exception. + Eccezione sconosciuta C++ non gestibile. - &Copy command - &Copia il comando + &Copy command + &Copia il comando - &Copy history - &Copia la storia + &Copy history + &Copia la storia - Save history as... - Salva cronologia come... + Save history as... + Salva cronologia come... - Insert file name... - Inserisci il nome del file... + Insert file name... + Inserisci il nome del file... - Save History - Salva cronologia + Save History + Salva cronologia - Macro Files (*.FCMacro *.py) - File Macro (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + File Macro (*.FCMacro *.py) - Insert file name - Inserisci il nome del file + Insert file name + Inserisci il nome del file - All Files (*.*) - Tutti i file (*.*) + All Files (*.*) + Tutti i file (*.*) - Python Input Dialog - Finestra di input Python + Python Input Dialog + Finestra di input Python - Unhandled std C++ exception. - Eccezione std C++ non gestibile. + Unhandled std C++ exception. + Eccezione std C++ non gestibile. - Word wrap - A capo automatico + Word wrap + A capo automatico - &Copy - &Copia + &Copy + &Copia - &Paste - &Incolla + &Paste + &Incolla - Select All - Seleziona tutto + Select All + Seleziona tutto - - + + Clear console + + + + Gui::PythonEditor - Comment - Commento + Comment + Commento - Uncomment - Rimuovi commento + Uncomment + Rimuovi commento - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Pulisci + Clear + Pulisci - - + + Gui::RecentFilesAction - Open file %1 - Apri file %1 + Open file %1 + Apri file %1 - File not found - File non trovato + File not found + File non trovato - The file '%1' cannot be opened. - Il file '%1' non può essere aperto. + The file '%1' cannot be opened. + Il file '%1' non può essere aperto. - - + + Gui::SelectModule - Select module - Seleziona il modulo + Select module + Seleziona il modulo - Open %1 as - Apri %1 come + Open %1 as + Apri %1 come - Select - Seleziona + Select + Seleziona - - + + Gui::StdCmdDescription - Help - Aiuto + Help + Aiuto - Des&cription - Des&crizione + Des&cription + Des&crizione - Long description of commands - Descrizione lunga dei comandi + Long description of commands + Descrizione lunga dei comandi - - + + Gui::StdCmdDownloadOnlineHelp - Help - Aiuto + Help + Aiuto - Download online help - Scarica l'aiuto in linea + Download online help + Scarica l'aiuto in linea - Download %1's online help - Scarica l'aiuto in linea di %1 + Download %1's online help + Scarica l'aiuto in linea di %1 - Non-existing directory - Cartella inesistente + Non-existing directory + Cartella inesistente - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - La cartella '%1' non esiste. + La cartella '%1' non esiste. Vuoi specificare una cartella esistente? - Missing permission - Permesso mancante + Missing permission + Permesso mancante - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Non hai il permesso di scrittura in '%1' + Non hai il permesso di scrittura in '%1' -Vuoi specificare un'altra cartella? +Vuoi specificare un'altra cartella? - Stop downloading - Interrompi il download + Stop downloading + Interrompi il download - - + + Gui::StdCmdPythonHelp - Tools - Strumenti + Tools + Strumenti - Python Modules - Moduli Python + Python Modules + Moduli Python - Opens a browser to show the Python modules - Apre un browser per visualizzare i moduli Python + Opens a browser to show the Python modules + Apre un browser per visualizzare i moduli Python - - + + Gui::TaskBoxAngle - Angle - Angolo + Angle + Angolo - - + + Gui::TaskBoxPosition - Position - Posizione + Position + Posizione - - + + Gui::TaskView::TaskAppearance - Display mode: - Modo di visualizzazione: + Display mode: + Modo di visualizzazione: - Plot mode: - Modo di stampa: + Plot mode: + Modo di stampa: - Point size: - Dimensione punto: + Point size: + Dimensione punto: - Line width: - Spessore linea: + Line width: + Spessore linea: - Transparency: - Trasparenza: + Transparency: + Trasparenza: - Appearance - Aspetto + Appearance + Aspetto - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Modifica + Edit + Modifica - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Aspetto + Appearance + Aspetto - ... - ... + ... + ... - edit selection - Modifica selezione + edit selection + Modifica selezione - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Premi il tasto sinistro del mouse + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Inglese + English + Inglese - - + + Gui::TreeDockWidget - Tree view - Albero + Tree view + Albero - - + + Gui::TreeWidget - Create group... - Crea gruppo... + Create group... + Crea gruppo... - Create a group - Crea un gruppo + Create a group + Crea un gruppo - Group - Gruppo + Group + Gruppo - Rename - Rinomina + Rename + Rinomina - Rename object - Rinomina oggetto + Rename object + Rinomina oggetto - Labels & Attributes - Etichette & Attributi + Labels & Attributes + Etichette & Attributi - Application - Applicazione + Application + Applicazione - Finish editing - Completa la modifica + Finish editing + Completa la modifica - Finish editing object - Completa la modifica dell'oggetto + Finish editing object + Completa la modifica dell'oggetto - Activate document - Attiva documento + Activate document + Attiva documento - Activate document %1 - Attiva il documento %1 + Activate document %1 + Attiva il documento %1 - - + + Gui::View3DInventor - Export PDF - Esporta in formato PDF + Export PDF + Esporta in formato PDF - PDF file (*.pdf) - File PDF (*.pdf) + PDF file (*.pdf) + File PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Seleziona l'ambiente '%1' + Select the '%1' workbench + Seleziona l'ambiente '%1' - - + + Position - Form - Modulo + Form + Modulo - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Snap griglia + Grid Snap in + Snap griglia - - + + QDockWidget - Tree view - Albero + Tree view + Albero - Property view - Proprietà + Property view + Proprietà - Selection view - Selezione + Selection view + Selezione - Report view - Report + Report view + Report - Task View - Attività + Task View + Attività - Combo View - Vista combinata + Combo View + Vista combinata - Toolbox - Casella degli strumenti + Toolbox + Casella degli strumenti - Python console - Console Python + Python console + Console Python - Display properties - Visualizza le proprietà + Display properties + Visualizza le proprietà - - + + QObject - General - Generale + General + Generale - Display - Visualizzazione + Display + Visualizzazione - Unknown filetype - Tipo di file sconosciuto + Unknown filetype + Tipo di file sconosciuto - Cannot open unknown filetype: %1 - Non è possibile aprire il tipo di file sconosciuto: %1 + Cannot open unknown filetype: %1 + Non è possibile aprire il tipo di file sconosciuto: %1 - Cannot save to unknown filetype: %1 - Non è possibile salvare il tipo di file sconosciuto: %1 + Cannot save to unknown filetype: %1 + Non è possibile salvare il tipo di file sconosciuto: %1 - Workbench failure - Avaria ambiente + Workbench failure + Avaria ambiente - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Impossibile avviare l'assistente Qt (%1) + Unable to launch Qt Assistant (%1) + Impossibile avviare l'assistente Qt (%1) - Exception - Eccezione + Exception + Eccezione - Open document - Apri documento + Open document + Apri documento - Import file - Importa file + Import file + Importa file - Export file - Esporta file + Export file + Esporta file - Printing... - Stampa... + Printing... + Stampa... - Cannot load workbench - Impossibile caricare l'ambiente + Cannot load workbench + Impossibile caricare l'ambiente - A general error occurred while loading the workbench - Un errore generico è accaduto durante il caricamento dell'ambiente + A general error occurred while loading the workbench + Un errore generico è accaduto durante il caricamento dell'ambiente - File not found - File non trovato + File not found + File non trovato - Cannot open file %1 - Impossibile aprire il file %1 + Cannot open file %1 + Impossibile aprire il file %1 - Save views... - Salva le viste... + Save views... + Salva le viste... - Load views... - Carica le viste... + Load views... + Carica le viste... - Freeze view - Congela la vista + Freeze view + Congela la vista - Clear views - Pulisci le viste + Clear views + Pulisci le viste - Restore view &%1 - Ripristina la vista &%1 + Restore view &%1 + Ripristina la vista &%1 - Save frozen views - Salva le viste congelate + Save frozen views + Salva le viste congelate - Frozen views (*.cam) - Viste congelate (*.cam) + Frozen views (*.cam) + Viste congelate (*.cam) - Restore views - Ripristina le viste + Restore views + Ripristina le viste - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - L'importazione delle viste ripristinate cancellerà le viste salvate. + L'importazione delle viste ripristinate cancellerà le viste salvate. Vuoi continuare? - Restore frozen views - Ripristina le viste congelate + Restore frozen views + Ripristina le viste congelate - Cannot open file '%1'. - Non è possibile aprire il file '%1'. + Cannot open file '%1'. + Non è possibile aprire il file '%1'. - Docked - Agganciata + Docked + Agganciata - Undocked - Non agganciata + Undocked + Non agganciata - Fullscreen - Schermo intero + Fullscreen + Schermo intero - files - file + files + file - Save picture - Salva immagine + Save picture + Salva immagine - New sub-group - Nuovo sottogruppo + New sub-group + Nuovo sottogruppo - Enter the name: - Inserisci il nome: + Enter the name: + Inserisci il nome: - New text item - Nuovo elemento testo + New text item + Nuovo elemento testo - Enter your text: - Inserisci il testo: + Enter your text: + Inserisci il testo: - New integer item - Nuovo elemento integer + New integer item + Nuovo elemento integer - Enter your number: - Inserisci il numero: + Enter your number: + Inserisci il numero: - New unsigned item - Nuovo elemento unsigned + New unsigned item + Nuovo elemento unsigned - New float item - Nuovo elemento float + New float item + Nuovo elemento float - New Boolean item - Nuovo elemento boolean + New Boolean item + Nuovo elemento boolean - Choose an item: - scegli un elemento: + Choose an item: + scegli un elemento: - Rename group - Rinomina gruppo + Rename group + Rinomina gruppo - The group '%1' cannot be renamed. - Il gruppo '%1' non può essere rinominato + The group '%1' cannot be renamed. + Il gruppo '%1' non può essere rinominato - Existing group - Gruppo esistente + Existing group + Gruppo esistente - The group '%1' already exists. - Il gruppo '%1' esiste già. + The group '%1' already exists. + Il gruppo '%1' esiste già. - Change value - Cambia valore + Change value + Cambia valore - Save document under new filename... - Salva il documento con nome... + Save document under new filename... + Salva il documento con nome... - Saving aborted - Salvataggio annullato + Saving aborted + Salvataggio annullato - Unsaved document - Documento non salvato + Unsaved document + Documento non salvato - Save document before close? - Salvare il documento prima di chiudere? + Save document before close? + Salvare il documento prima di chiudere? - Save Macro - Salva macro + Save Macro + Salva macro - Finish - Termina + Finish + Termina - Clear - Pulisci + Clear + Pulisci - Cancel - Annulla + Cancel + Annulla - Inner - Interno + Inner + Interno - Outer - Esterno + Outer + Esterno - No Browser - Nessun Browser + No Browser + Nessun Browser - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Impossibile aprire il browser. + Impossibile aprire il browser. Aprire una finestra browser e scrivere http://localhost:%1. - No Server - Nessun server + No Server + Nessun server - Unable to start the server to port %1: %2. - Impossibile avviare il server alla porta %1: %2. + Unable to start the server to port %1: %2. + Impossibile avviare il server alla porta %1: %2. - Unable to open your system browser. - Impossibile aprire il browser di sistema. + Unable to open your system browser. + Impossibile aprire il browser di sistema. - Options... - Opzioni... + Options... + Opzioni... - Out of memory - Memoria insufficiente + Out of memory + Memoria insufficiente - Not enough memory available to display the data. - Memoria disponibile insufficiente per visualizzare i dati. + Not enough memory available to display the data. + Memoria disponibile insufficiente per visualizzare i dati. - Cannot find file %1 - Impossibile trovare il file %1 + Cannot find file %1 + Impossibile trovare il file %1 - Cannot find file %1 neither in %2 nor in %3 - Impossibile trovare il file %1 nè in %2 nè in %3 + Cannot find file %1 neither in %2 nor in %3 + Impossibile trovare il file %1 nè in %2 nè in %3 - Save %1 Document - Salva il documento %1 + Save %1 Document + Salva il documento %1 - %1 document (*.FCStd) - Documento %1 (*.FCStd) + %1 document (*.FCStd) + Documento %1 (*.FCStd) - Save As - Salva con nome + Save As + Salva con nome - %1 already exists. + %1 already exists. Do you want to replace it? - % esiste già. + % esiste già. Vuoi sostituirlo? - Document not closable - Impossibile chiudere il documento + Document not closable + Impossibile chiudere il documento - The document is not closable for the moment. - Impossibile chiudere il documento al momento. + The document is not closable for the moment. + Impossibile chiudere il documento al momento. - No OpenGL - No OpenGL + No OpenGL + No OpenGL - This system does not support OpenGL - Questo sistema non supporta OpenGL + This system does not support OpenGL + Questo sistema non supporta OpenGL - Help - Aiuto + Help + Aiuto - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Impossibile caricare la documentazione. + Impossibile caricare la documentazione. Per poterla caricare Qt 4.4 o superiore è necessario. - %1 Help - %1 Aiuto + %1 Help + %1 Aiuto - Exporting PDF... - Esportazione PDF... + Exporting PDF... + Esportazione PDF... - Wrong selection - Selezione errata + Wrong selection + Selezione errata - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - un solo oggetto selezionato. Si prega di selezionare due oggetti. + un solo oggetto selezionato. Si prega di selezionare due oggetti. Prestare attenzione al punto dove si fa clic. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Si prega di selezionare due oggetti. + Si prega di selezionare due oggetti. Prestare attenzione al punto dove si fa clic. - New boolean item - Nuovo elemento booleano + New boolean item + Nuovo elemento booleano - Navigation styles - Stili di navigazione + Navigation styles + Stili di navigazione - %1 navigation - Navigazione %1 + %1 navigation + Navigazione %1 - Move annotation - Sposta annotazione + Move annotation + Sposta annotazione - Transform - Trasforma + Transform + Trasforma - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - Il documento è in modalità modifica e quindi non può essere chiuso per il momento. E' necessario terminare o annullare la modifica nel pannello attività. + Il documento è in modalità modifica e quindi non può essere chiuso per il momento. E' necessario terminare o annullare la modifica nel pannello attività. - - + + + StdBoxSelection + + Standard-View + Vista standard + + + Box selection + + + + StdCmdAbout - Help - Aiuto + Help + Aiuto - &About %1 - &Informazioni su %1 + &About %1 + &Informazioni su %1 - About %1 - Informazioni su %1 + About %1 + Informazioni su %1 - - + + StdCmdAboutQt - Help - Aiuto + Help + Aiuto - About &Qt - Informazioni su &Qt + About &Qt + Informazioni su &Qt - About Qt - Informazioni su Qt + About Qt + Informazioni su Qt - - + + StdCmdActivateNextWindow - Window - Finestra + Window + Finestra - Ne&xt - Pr&ossima + Ne&xt + Pr&ossima - Activate next window - Attiva la prossima finestra + Activate next window + Attiva la prossima finestra - - + + StdCmdActivatePrevWindow - Window - Finestra + Window + Finestra - Pre&vious - Pre&cedente + Pre&vious + Pre&cedente - Activate previous window - Attiva la precedente finestra + Activate previous window + Attiva la precedente finestra - - + + + StdCmdAlignment + + Edit + Modifica + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Finestra + Window + Finestra - Arrange &Icons - Disponi &icone + Arrange &Icons + Disponi &icone - Arrange Icons - Disponi icone + Arrange Icons + Disponi icone - - + + StdCmdAxisCross - Standard-View - Vista standard + Standard-View + Vista standard - Toggle axis cross - Attiva/disattiva origine degli assi + Toggle axis cross + Attiva/disattiva origine degli assi - - + + StdCmdCascadeWindows - Window - Finestra + Window + Finestra - &Cascade - A &Cascata + &Cascade + A &Cascata - Tile pragmatic - Dividi pragmatico + Tile pragmatic + Dividi pragmatico - - + + StdCmdCloseActiveWindow - Window - Finestra + Window + Finestra - Cl&ose - Ch&iudi + Cl&ose + Ch&iudi - Close active window - Chiude la finestra attiva + Close active window + Chiude la finestra attiva - - + + StdCmdCloseAllWindows - Window - Finestra + Window + Finestra - Close Al&l - Chiudi tut&to + Close Al&l + Chiudi tut&to - Close all windows - Chiude tutte le finestre + Close all windows + Chiude tutte le finestre - - + + StdCmdCommandLine - Tools - Strumenti + Tools + Strumenti - Start command &line... - Inizia linea &di comando... + Start command &line... + Inizia linea &di comando... - Opens the command line in the console - Apre la linea di comando nella console + Opens the command line in the console + Apre la linea di comando nella console - - + + StdCmdCopy - Edit - Modifica + Edit + Modifica - C&opy - C&opia + C&opy + C&opia - Copy operation - Copia + Copy operation + Copia - - + + StdCmdCut - Edit - Modifica + Edit + Modifica - &Cut - &Taglia + &Cut + &Taglia - Cut out - Taglia + Cut out + Taglia - - + + StdCmdDDuplicateSelection - Edit - Modifica + Edit + Modifica - Duplicate selection - Duplica la selezione + Duplicate selection + Duplica la selezione - Put duplicates of the selected objects to the active document - Inserisce i duplicati degli oggetti selezionati nel documento attivo + Put duplicates of the selected objects to the active document + Inserisce i duplicati degli oggetti selezionati nel documento attivo - - + + StdCmdDelete - Edit - Modifica + Edit + Modifica - &Delete - &Elimina + &Delete + &Elimina - Deletes the selected objects - Elimina gli oggetti selezionati + Deletes the selected objects + Elimina gli oggetti selezionati - - + + StdCmdDemoMode - Standard-View - Vista standard + Standard-View + Vista standard - View turntable... - Visualizza rotazione oggetti... + View turntable... + Visualizza rotazione oggetti... - View turntable - Visualizza rotazione oggetti + View turntable + Visualizza rotazione oggetti - - + + StdCmdDlgCustomize - Tools - Strumenti + Tools + Strumenti - Cu&stomize... - Per&sonalizza... + Cu&stomize... + Per&sonalizza... - Customize toolbars and command bars - Personalizza le barre degli strumenti e di comando + Customize toolbars and command bars + Personalizza le barre degli strumenti e di comando - - + + StdCmdDlgMacroExecute - Macros ... - Macro... + Macros ... + Macro... - Opens a dialog to let you execute a recorded macro - Apre una finestra di dialogo per eseguire una macro registrata + Opens a dialog to let you execute a recorded macro + Apre una finestra di dialogo per eseguire una macro registrata - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Esegui la macro + Execute macro + Esegui la macro - Execute the macro in the editor - Esegue la macro nell'editor + Execute the macro in the editor + Esegue la macro nell'editor - - + + StdCmdDlgMacroRecord - &Macro recording ... - Registra &Macro... + &Macro recording ... + Registra &Macro... - Opens a dialog to record a macro - Apre una finestra di dialogo per registrare una macro + Opens a dialog to record a macro + Apre una finestra di dialogo per registrare una macro - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Strumenti + Tools + Strumenti - E&dit parameters ... - Mo&difica parametri... + E&dit parameters ... + Mo&difica parametri... - Opens a Dialog to edit the parameters - Apre una finestra di dialogo per modificare i parametri + Opens a Dialog to edit the parameters + Apre una finestra di dialogo per modificare i parametri - - + + StdCmdDlgPreferences - Tools - Strumenti + Tools + Strumenti - &Preferences ... - &Preferenze... + &Preferences ... + &Preferenze... - Opens a Dialog to edit the preferences - Apre una finestra per modificare le preferenze + Opens a Dialog to edit the preferences + Apre una finestra per modificare le preferenze - - + + StdCmdDockViewMenu - View - Vista + View + Vista - Vie&ws - Vis&te + Vie&ws + Vis&te - Toggles this window - Attiva/disattiva questa finestra + Toggles this window + Attiva/disattiva questa finestra - - + + StdCmdDrawStyle - Standard-View - Vista standard + Standard-View + Vista standard - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Modifica + + + Duplicate selection + Duplica la selezione + + + Put duplicates of the selected objects to the active document + Inserisce i duplicati degli oggetti selezionati nel documento attivo + + + + StdCmdEdit + + Edit + Modifica + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - File + File + File - &Export... - &Esporta... + &Export... + &Esporta... - Export an object in the active document - Esporta un oggetto nel documento attivo + Export an object in the active document + Esporta un oggetto nel documento attivo - Supported formats - Formati supportati + Supported formats + Formati supportati - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Strumenti + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - File + File + File - &Recompute - &Ricalcola + &Recompute + &Ricalcola - Recompute feature or document - Ricalcola la feature o il documento + Recompute feature or document + Ricalcola la feature o il documento - - + + StdCmdFreeCADWebsite - Help - Aiuto + Help + Aiuto - FreeCAD Website - Sito FreeCAD + FreeCAD Website + Sito FreeCAD - The FreeCAD website - Il sito FreeCAD + The FreeCAD website + Il sito FreeCAD - - + + StdCmdFreezeViews - Standard-View - Vista standard + Standard-View + Vista standard - Freeze display - Congela la visualizzazione + Freeze display + Congela la visualizzazione - Freezes the current view position - Congela la posizione corrente della vista + Freezes the current view position + Congela la posizione corrente della vista - - + + StdCmdHideObjects - Standard-View - Vista standard + Standard-View + Vista standard - Hide all objects - Nascondi tutti gli oggetti + Hide all objects + Nascondi tutti gli oggetti - Hide all objects in the document - Nascondi tutti gli oggetti nel documento + Hide all objects in the document + Nascondi tutti gli oggetti nel documento - - + + StdCmdHideSelection - Standard-View - Vista standard + Standard-View + Vista standard - Hide selection - Nascondi la selezione + Hide selection + Nascondi la selezione - Hide all selected objects - Nascondi tutti gli oggetti selezionati + Hide all selected objects + Nascondi tutti gli oggetti selezionati - - + + StdCmdImport - File - File + File + File - &Import... - &Importa... + &Import... + &Importa... - Import a file in the active document - Importa un file nel documento attivo + Import a file in the active document + Importa un file nel documento attivo - Supported formats - Formati supportati + Supported formats + Formati supportati - All files (*.*) - Tutti i file (*.*) + All files (*.*) + Tutti i file (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Debug macro + Debug macro + Debug macro - Start debugging of macro - Avvia il debug della macro + Start debugging of macro + Avvia il debug della macro - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Passo successivo + Step over + Passo successivo - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Interrompi il debug + Stop debugging + Interrompi il debug - Stop debugging of macro - Interrompe il debug della macro + Stop debugging of macro + Interrompe il debug della macro - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - In&terrompi la registrazione della macro + S&top macro recording + In&terrompi la registrazione della macro - Stop the macro recording session - Interrompe la sessione di registrazione macro in corso + Stop the macro recording session + Interrompe la sessione di registrazione macro in corso - - + + StdCmdMeasureDistance - View - Vista + View + Vista - Measure distance - Misura la distanza + Measure distance + Misura la distanza - - + + StdCmdMeasurementSimple - Tools - Strumenti + Tools + Strumenti - Mesure distance - Misura la distanza + Mesure distance + Misura la distanza - Measures distance between two selected objects - Misura la distanza tra due oggetti selezionati + Measures distance between two selected objects + Misura la distanza tra due oggetti selezionati - - + + Measure distance + Misura la distanza + + + StdCmdMergeProjects - File - File + File + File - Merge project... - Unisci progetto... + Merge project... + Unisci progetto... - Merge project - Unisce un progetto esistente + Merge project + Unisce un progetto esistente - %1 document (*.fcstd) - %1 documento (*.fcstd) + %1 document (*.fcstd) + %1 documento (*.fcstd) - Cannot merge project with itself. - Non è possibile unire il progetto con se stesso. + Cannot merge project with itself. + Non è possibile unire il progetto con se stesso. - - + + StdCmdNew - File - File + File + File - &New - &Nuovo + &New + &Nuovo - Create a new empty document - Crea un documento vuoto + Create a new empty document + Crea un documento vuoto - - + + StdCmdOnlineHelp - Help - Aiuto + Help + Aiuto - Show help to the application - Mostra l'aiuto dell'applicazione + Show help to the application + Mostra l'aiuto dell'applicazione - - + + StdCmdOnlineHelpPython - Help - Aiuto + Help + Aiuto - Python Manuals - Manuali Python + Python Manuals + Manuali Python - Show the Python documentation - Mostra la documentazione Python + Show the Python documentation + Mostra la documentazione Python - - + + StdCmdOnlineHelpWebsite - Help - Aiuto + Help + Aiuto - Help Website - Sito d'Aiuto + Help Website + Sito d'Aiuto - The website where the help is maintained - Il sito web in cui viene mantenuto l'aiuto + The website where the help is maintained + Il sito web in cui viene mantenuto l'aiuto - - + + StdCmdOpen - File - File + File + File - &Open... - &Apri... + &Open... + &Apri... - Open a document or import files - Apre un documento o importa un file + Open a document or import files + Apre un documento o importa un file - Supported formats - Formati supportati + Supported formats + Formati supportati - All files (*.*) - Tutti i file (*.*) + All files (*.*) + Tutti i file (*.*) - - + + StdCmdPaste - Edit - Modifica + Edit + Modifica - &Paste - &Incolla + &Paste + &Incolla - Paste operation - Incolla + Paste operation + Incolla - - + + StdCmdPlacement - Edit - Modifica + Edit + Modifica - Placement... - Posizionamento... + Placement... + Posizionamento... - Place the selected objects - Posiziona gli oggetti selezionati + Place the selected objects + Posiziona gli oggetti selezionati - - + + StdCmdPrint - File - File + File + File - &Print... - &Stampa... + &Print... + &Stampa... - Print the document - Stampa il documento + Print the document + Stampa il documento - - + + StdCmdPrintPdf - File - File + File + File - &Export PDF... - &Esporta PDF... + &Export PDF... + &Esporta PDF... - Export the document as PDF - Esporta il documento come PDF + Export the document as PDF + Esporta il documento come PDF - - + + StdCmdPrintPreview - File - File + File + File - &Print preview... - Anteprima &di stampa... + &Print preview... + Anteprima &di stampa... - Print the document - Stampa il documento + Print the document + Stampa il documento - Print preview - Anteprima di stampa + Print preview + Anteprima di stampa - - + + StdCmdProjectInfo - File - File + File + File - Project i&nformation... - I&nformazioni del progetto... + Project i&nformation... + I&nformazioni del progetto... - Show details of the currently active project - Mostra i dettagli del progetto attualmente attivo + Show details of the currently active project + Mostra i dettagli del progetto attualmente attivo - - + + StdCmdProjectUtil - Tools - Strumenti + Tools + Strumenti - Project utility... - Utilità di progetto... + Project utility... + Utilità di progetto... - Utility to extract or create project files - Utilità per estrarre o creare file di progetto + Utility to extract or create project files + Utilità per estrarre o creare file di progetto - - + + StdCmdPythonWebsite - Help - Aiuto + Help + Aiuto - Python Website - Sito Python + Python Website + Sito Python - The official Python website - Il sito ufficiale Python + The official Python website + Il sito ufficiale Python - - + + StdCmdQuit - File - File + File + File - E&xit - E&sci + E&xit + E&sci - Quits the application - Esce dal'applicazione + Quits the application + Esce dal'applicazione - - + + StdCmdRandomColor - File - File + File + File - Random color - Colore casuale + Random color + Colore casuale - - + + StdCmdRecentFiles - File - File + File + File - Recent files - File recenti + Recent files + File recenti - Recent file list - Lista dei file recenti + Recent file list + Lista dei file recenti - - + + StdCmdRedo - Edit - Modifica + Edit + Modifica - &Redo - &Ripeti + &Redo + &Ripeti - Redoes a previously undone action - Ripete un'operazione precedentemente annullata + Redoes a previously undone action + Ripete un'operazione precedentemente annullata - - + + StdCmdRefresh - Edit - Modifica + Edit + Modifica - &Refresh - &Aggiorna + &Refresh + &Aggiorna - Recomputes the current active document - Ricalcola il documento attivo + Recomputes the current active document + Ricalcola il documento attivo - - + + StdCmdSave - File - File + File + File - &Save - &Salva + &Save + &Salva - Save the active document - Salva il documento attivo + Save the active document + Salva il documento attivo - - + + StdCmdSaveAs - File - File + File + File - Save &As... - Sa&lva con nome... + Save &As... + Sa&lva con nome... - Save the active document under a new file name - Salva il documento attivo in un nuovo file + Save the active document under a new file name + Salva il documento attivo in un nuovo file - - + + StdCmdSceneInspector - Tools - Strumenti + Tools + Strumenti - Scene inspector... - Ispettore di scena... + Scene inspector... + Ispettore di scena... - Scene inspector - Ispettore di scena + Scene inspector + Ispettore di scena - - + + StdCmdSelectAll - Edit - Modifica + Edit + Modifica - Select &All - Seleziona &tutto + Select &All + Seleziona &tutto - Select all - Seleziona tutto + Select all + Seleziona tutto - - + + StdCmdSetAppearance - Standard-View - Vista standard + Standard-View + Vista standard - Appearance... - Aspetto... + Appearance... + Aspetto... - Sets the display properties of the selected object - Imposta le proprietà di visualizzazione dell'oggetto selezionato + Sets the display properties of the selected object + Imposta le proprietà di visualizzazione dell'oggetto selezionato - - + + StdCmdShowObjects - Standard-View - Vista standard + Standard-View + Vista standard - Show all objects - Mostra tutti gli oggetti + Show all objects + Mostra tutti gli oggetti - Show all objects in the document - Mostra tutti gli oggetti nel documento + Show all objects in the document + Mostra tutti gli oggetti nel documento - - + + StdCmdShowSelection - Standard-View - Vista standard + Standard-View + Vista standard - Show selection - Mostra la selezione + Show selection + Mostra la selezione - Show all selected objects - Mostra tutti gli oggetti selezionati + Show all selected objects + Mostra tutti gli oggetti selezionati - - + + StdCmdStatusBar - View - Vista + View + Vista - Status bar - Barra di stato + Status bar + Barra di stato - Toggles the status bar - Attiva/disattiva la barra di stato + Toggles the status bar + Attiva/disattiva la barra di stato - - + + StdCmdTextureMapping - Tools - Strumenti + Tools + Strumenti - Texture mapping... - Mappatura texture... + Texture mapping... + Mappatura texture... - Texture mapping - Mappatura texture + Texture mapping + Mappatura texture - - + + StdCmdTileWindows - Window - Finestra + Window + Finestra - &Tile - &Affianca + &Tile + &Affianca - Tile the windows - Affianca le finestre + Tile the windows + Affianca le finestre - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Attiva/disattiva punto di interruzione + Toggle breakpoint + Attiva/disattiva punto di interruzione - - + + StdCmdToggleClipPlane - Standard-View - Vista standard + Standard-View + Vista standard - Clipping plane - Piano di sezione + Clipping plane + Piano di sezione - Toggles clipping plane for active view - Attiva/disattiva il piano di taglio per la vista attiva + Toggles clipping plane for active view + Attiva/disattiva il piano di taglio per la vista attiva - - + + StdCmdToggleNavigation - Standard-View - Vista standard + Standard-View + Vista standard - Toggle navigation/Edit mode - Attiva/Disattiva modalità di spostamento o modifica + Toggle navigation/Edit mode + Attiva/Disattiva modalità di spostamento o modifica - Toggle between navigation and edit mode - Alterna tra la modalità di modifica e navigazione + Toggle between navigation and edit mode + Alterna tra la modalità di modifica e navigazione - - + + StdCmdToggleObjects - Standard-View - Vista standard + Standard-View + Vista standard - Toggle all objects - Attiva/disattiva tutti gli oggetti + Toggle all objects + Attiva/disattiva tutti gli oggetti - Toggles visibility of all objects in the active document - Nascondi tutti gli oggetti nel documento attivo + Toggles visibility of all objects in the active document + Nascondi tutti gli oggetti nel documento attivo - - + + StdCmdToggleSelectability - Standard-View - Vista standard + Standard-View + Vista standard - Toggle selectability - Attiva/disattiva selezionabilità + Toggle selectability + Attiva/disattiva selezionabilità - Toggles the property of the objects to get selected in the 3D-View - Attiva o disattiva la proprietà degli oggetti di essere selezionati nella vista 3D + Toggles the property of the objects to get selected in the 3D-View + Attiva o disattiva la proprietà degli oggetti di essere selezionati nella vista 3D - - + + StdCmdToggleVisibility - Standard-View - Vista standard + Standard-View + Vista standard - Toggle visibility - Nascondi + Toggle visibility + Nascondi - Toggles visibility - Attiva/disattiva la visibilità + Toggles visibility + Attiva/disattiva la visibilità - - + + StdCmdToolBarMenu - View - Vista + View + Vista - Tool&bars - &Barre degli strumenti + Tool&bars + &Barre degli strumenti - Toggles this window - Attiva/disattiva questa finestra + Toggles this window + Attiva/disattiva questa finestra - - + + StdCmdTransform - Edit - Modifica + Edit + Modifica - Transform... - Trasforma... + Transform... + Trasforma... - Transform the geometry of selected objects - Trasforma la geometria degli oggetti selezionati + Transform the geometry of selected objects + Trasforma la geometria degli oggetti selezionati - - + + StdCmdTreeSelection - View - Vista + View + Vista - Go to selection - Vai alla selezione + Go to selection + Vai alla selezione - Scroll to first selected item - Scorri fino al primo elemento selezionato + Scroll to first selected item + Scorri fino al primo elemento selezionato - - + + StdCmdUndo - Edit - Modifica + Edit + Modifica - &Undo - &Annulla + &Undo + &Annulla - Undo exactly one action - Annulla l'ultima azione eseguita + Undo exactly one action + Annulla l'ultima azione eseguita - - + + StdCmdUserInterface - View - Vista + View + Vista - Dock views - Aggancia le viste + Dock views + Aggancia le viste - Dock all top-level views - Aggancia tulle le viste di primo livello + Dock all top-level views + Aggancia tulle le viste di primo livello - - + + StdCmdViewAxo - Standard-View - Vista standard + Standard-View + Vista standard - Axometric - Assonometrica + Axometric + Assonometrica - Set to axometric view - Imposta la vista assonometrica + Set to axometric view + Imposta la vista assonometrica - - + + StdCmdViewBottom - Standard-View - Vista standard + Standard-View + Vista standard - Bottom - Dal basso + Bottom + Dal basso - Set to bottom view - Imposta la vista dal basso + Set to bottom view + Imposta la vista dal basso - - + + StdCmdViewCreate - Standard-View - Vista standard + Standard-View + Vista standard - Create new view - Crea una nuova vista + Create new view + Crea una nuova vista - Creates a new view window for the active document - Crea una vista in una nuova finestra per il documento attivo + Creates a new view window for the active document + Crea una vista in una nuova finestra per il documento attivo - - + + StdCmdViewExample1 - Standard-View - Vista standard + Standard-View + Vista standard - Inventor example #1 - Esempio Inventor #1 + Inventor example #1 + Esempio Inventor #1 - Shows a 3D texture with manipulator - Mostra una texture 3D con il manipolatore + Shows a 3D texture with manipulator + Mostra una texture 3D con il manipolatore - - + + StdCmdViewExample2 - Standard-View - Vista standard + Standard-View + Vista standard - Inventor example #2 - Esempio Inventor #2 + Inventor example #2 + Esempio Inventor #2 - Shows spheres and drag-lights - Mostra le sfere con scia di luce + Shows spheres and drag-lights + Mostra le sfere con scia di luce - - + + StdCmdViewExample3 - Standard-View - Vista standard + Standard-View + Vista standard - Inventor example #3 - Esempio Inventor #3 + Inventor example #3 + Esempio Inventor #3 - Shows a animated texture - Mostra una texture animata + Shows a animated texture + Mostra una texture animata - - + + StdCmdViewFitAll - Standard-View - Vista standard + Standard-View + Vista standard - Fit all - Visualizza tutto + Fit all + Visualizza tutto - Fits the whole content on the screen - Visualizza tutto il contenuto nello schermo + Fits the whole content on the screen + Visualizza tutto il contenuto nello schermo - - + + StdCmdViewFitSelection - Standard-View - Vista standard + Standard-View + Vista standard - Fit selection - Visualizza la selezione + Fit selection + Visualizza la selezione - Fits the selected content on the screen - Visualizza il contenuto selezionato sullo schermo + Fits the selected content on the screen + Visualizza il contenuto selezionato sullo schermo - - + + StdCmdViewFront - Standard-View - Vista standard + Standard-View + Vista standard - Front - Di fronte + Front + Di fronte - Set to front view - Imposta la vista di fronte + Set to front view + Imposta la vista di fronte - - + + StdCmdViewIvIssueCamPos - Standard-View - Vista standard + Standard-View + Vista standard - Issue camera position - Pubblica la posizione della camera + Issue camera position + Pubblica la posizione della camera - Issue the camera position to the console and to a macro, to easily recall this position - Pubblica la posizione della camera nella console e nella macro, per facilitare il richiamo di questa posizione + Issue the camera position to the console and to a macro, to easily recall this position + Pubblica la posizione della camera nella console e nella macro, per facilitare il richiamo di questa posizione - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Vista standard + Standard-View + Vista standard - Stereo Interleaved Columns - Stereo a colonne interlacciate + Stereo Interleaved Columns + Stereo a colonne interlacciate - Switch stereo viewing to Interleaved Columns - Passa alla visualizzazione stereo a colonne interlacciate + Switch stereo viewing to Interleaved Columns + Passa alla visualizzazione stereo a colonne interlacciate - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Vista standard + Standard-View + Vista standard - Stereo Interleaved Rows - Stereo a righe interlacciate + Stereo Interleaved Rows + Stereo a righe interlacciate - Switch stereo viewing to Interleaved Rows - Passa alla visualizzazione stereo a righe interlacciate + Switch stereo viewing to Interleaved Rows + Passa alla visualizzazione stereo a righe interlacciate - - + + StdCmdViewIvStereoOff - Standard-View - Vista standard + Standard-View + Vista standard - Stereo Off - Stereo Off + Stereo Off + Stereo Off - Switch stereo viewing off - Disattiva la visualizzazione stereo + Switch stereo viewing off + Disattiva la visualizzazione stereo - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Vista standard + Standard-View + Vista standard - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Passa alla visualizzazione stereo a quad buffer + Switch stereo viewing to quad buffer + Passa alla visualizzazione stereo a quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Vista standard + Standard-View + Vista standard - Stereo red/green - Stereo rosso/verde + Stereo red/green + Stereo rosso/verde - Switch stereo viewing to red/green - Passa alla visualizzazione stereo rosso/verde + Switch stereo viewing to red/green + Passa alla visualizzazione stereo rosso/verde - - + + StdCmdViewLeft - Standard-View - Vista standard + Standard-View + Vista standard - Left - Da sinistra + Left + Da sinistra - Set to left view - Imposta la vista da sinistra + Set to left view + Imposta la vista da sinistra - - + + StdCmdViewRear - Standard-View - Vista standard + Standard-View + Vista standard - Rear - Da dietro + Rear + Da dietro - Set to rear view - Imposta la vista da dietro + Set to rear view + Imposta la vista da dietro - - + + StdCmdViewRight - Standard-View - Vista standard + Standard-View + Vista standard - Right - Destra + Right + Destra - Set to right view - Imposta la vista da destra + Set to right view + Imposta la vista da destra - - + + + StdCmdViewRotateLeft + + Standard-View + Vista standard + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Vista standard + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Vista standard + Standard-View + Vista standard - Top - Dall'alto + Top + Dall'alto - Set to top view - Imposta la vista dall'alto + Set to top view + Imposta la vista dall'alto - - + + StdCmdWhatsThis - Help - Aiuto + Help + Aiuto - &What's This? - &Cos'è questo? + &What's This? + &Cos'è questo? - What's This - Cos'è questo + What's This + Cos'è questo - - + + StdCmdWindows - Window - Finestra + Window + Finestra - &Windows... - &Finestre... + &Windows... + &Finestre... - Windows list - Lista delle finestre + Windows list + Lista delle finestre - - + + StdCmdWindowsMenu - Window - Finestra + Window + Finestra - Activates this window - Attiva questa finestra + Activates this window + Attiva questa finestra - - + + StdCmdWorkbench - View - Vista + View + Vista - Workbench - Ambiente + Workbench + Ambiente - Switch between workbenches - Passa da un ambiente all'altro + Switch between workbenches + Passa da un ambiente all'altro - - + + StdOrthographicCamera - Standard-View - Vista standard + Standard-View + Vista standard - Orthographic view - Vista ortografica + Orthographic view + Vista ortografica - Switches to orthographic view mode - Passa al modo di vista ortografico + Switches to orthographic view mode + Passa al modo di vista ortografico - - + + StdPerspectiveCamera - Standard-View - Vista standard + Standard-View + Vista standard - Perspective view - Vista in prospettiva + Perspective view + Vista in prospettiva - Switches to perspective view mode - Passa al modo di vista in prospettiva + Switches to perspective view mode + Passa al modo di vista in prospettiva - - + + StdViewBoxZoom - Standard-View - Vista standard + Standard-View + Vista standard - Box zoom - Zoom finestra + Box zoom + Zoom finestra - - + + StdViewDockUndockFullscreen - Standard-View - Vista standard + Standard-View + Vista standard - Document window - Finestra del documento + Document window + Finestra del documento - Display the active view either in fullscreen, in undocked or docked mode - Visualizza la vista attiva a tutto schermo, in modalità agganciata o non agganciata + Display the active view either in fullscreen, in undocked or docked mode + Visualizza la vista attiva a tutto schermo, in modalità agganciata o non agganciata - - + + StdViewScreenShot - Standard-View - Vista standard + Standard-View + Vista standard - Save picture... - Salva immagine... + Save picture... + Salva immagine... - Creates a screenshot of the active view - Crea una istantanea della vista attiva + Creates a screenshot of the active view + Crea una istantanea della vista attiva - - + + StdViewZoomIn - Standard-View - Vista standard + Standard-View + Vista standard - Zoom In - Zoom in + Zoom In + Zoom in - - + + StdViewZoomOut - Standard-View - Vista standard + Standard-View + Vista standard - Zoom Out - Zoom out + Zoom Out + Zoom out - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &File + &File + &File - &Edit - &Modifica + &Edit + &Modifica - Standard views - Viste standard + Standard views + Viste standard - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Visibilità + Visibility + Visibilità - &View - &Visualizza + &View + &Visualizza - &Tools - &Strumenti + &Tools + &Strumenti - &Macro - &Macro + &Macro + &Macro - &Windows - &Finestre + &Windows + &Finestre - &On-line help - &Aiuto in linea + &On-line help + &Aiuto in linea - &Help - &Aiuto + &Help + &Aiuto - File - File + File + File - Macro - Macro + Macro + Macro - View - Vista + View + Vista - Special Ops - Operazioni speciali + Special Ops + Operazioni speciali - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Creato per Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Creato per Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Seleziona lo stile del riquadro attività + Choose the style of the Task Panel + Seleziona lo stile del riquadro attività - Default - Normale + Default + Normale - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_ja.ts b/src/Gui/Language/FreeCAD_ja.ts index 0406284a6..848a23cbf 100644 --- a/src/Gui/Language/FreeCAD_ja.ts +++ b/src/Gui/Language/FreeCAD_ja.ts @@ -1,5490 +1,5908 @@ - - + + Angle - Form - Form + Form + Form - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - 角度スナップ + Angle Snap + 角度スナップ - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - ãªã— + none + ãªã— - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + 追加 + + + Remove + 削除 + + + Move up + 上ã¸ç§»å‹• + + + Move down + 下ã¸ç§»å‹• + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠+ Press left mouse button + マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠- Press SHIFT and middle mouse button - SHIFTã¨ãƒžã‚¦ã‚¹ã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„ + Press SHIFT and middle mouse button + SHIFTã¨ãƒžã‚¦ã‚¹ã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„ - Press middle mouse button - マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠+ Press middle mouse button + マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠- Scroll middle mouse button - マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ + Scroll middle mouse button + マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ - - + + Gui::CADNavigationStyle - Press left mouse button - マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠+ Press left mouse button + マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠- Press middle mouse button - マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠+ Press middle mouse button + マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠- Press left and middle mouse button - マウスã®å·¦ã¨ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠+ Press left and middle mouse button + マウスã®å·¦ã¨ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠- Scroll middle mouse button - マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ + Scroll middle mouse button + マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ - - + + Gui::Command - Standard - 標準 + Standard + 標準 - - + + Gui::ContainerDialog - &OK - OK + &OK + OK - &Cancel - キャンセル + &Cancel + キャンセル - - + + Gui::ControlSingleton - Task panel - タスクパãƒãƒ« + Task panel + タスクパãƒãƒ« - - + + Gui::Dialog::AboutApplication - About - ã“ã®ãƒ—ログラムã«ã¤ã„㦠+ About + ã“ã®ãƒ—ログラムã«ã¤ã„㦠- Revision number - ãƒªãƒ“ã‚¸ãƒ§ãƒ³ç•ªå· + Revision number + ãƒªãƒ“ã‚¸ãƒ§ãƒ³ç•ªå· - Version - ãƒãƒ¼ã‚¸ãƒ§ãƒ³ + Version + ãƒãƒ¼ã‚¸ãƒ§ãƒ³ - OK - OK + OK + OK - - + + - Release date - 公開日 + Release date + 公開日 - Platform - プラットフォーム + Platform + プラットフォーム - License... - ライセンス... + License... + ライセンス... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - 範囲外 + Out Of Range + 範囲外 - - + + Gui::Dialog::CommandModel - Commands - コマンド + Commands + コマンド - - + + Gui::Dialog::DemoMode - View Turntable - View Turntable + View Turntable + View Turntable - Speed - スピード + Speed + スピード - Maximum - 最大値 + Maximum + 最大値 - Minimum - 最å°å€¤ + Minimum + 最å°å€¤ - Fullscreen - 全画é¢è¡¨ç¤º + Fullscreen + 全画é¢è¡¨ç¤º - Enable timer - タイマーを有効ã«ã—ã¾ã™ã€‚ + Enable timer + タイマーを有効ã«ã—ã¾ã™ã€‚ - s - s + s + s - Angle - Angle + Angle + Angle + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Play - -90° - -90° + Stop + åœæ­¢ - Play - Play + Close + é–‰ã˜ã‚‹ - - Stop - åœæ­¢ - - - Close - é–‰ã˜ã‚‹ - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é¸æŠžã—ã¾ã™ã€‚ + Choose Window + ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é¸æŠžã—ã¾ã™ã€‚ - &Activate - 有効ã«ã™ã‚‹ + &Activate + 有効ã«ã™ã‚‹ - Alt+A - [Alt] + A + Alt+A + [Alt] + A - &Cancel - キャンセル + &Cancel + キャンセル - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Windows + Windows + Windows - - + + Gui::Dialog::DlgAuthorization - Authorization - è¨±å¯ + Authorization + è¨±å¯ - &OK - OK + &OK + OK - &Cancel - キャンセル + &Cancel + キャンセル - Password: - パスワード: + Password: + パスワード: - User name: - ユーザーå: + User name: + ユーザーå: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - ã‚¢ã‚¤ã‚³ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„ + Choose Icon + ã‚¢ã‚¤ã‚³ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„ - OK - OK + OK + OK - Cancel - キャンセル + Cancel + キャンセル - Add icons... - アイコンを追加... + Add icons... + アイコンを追加... - - + + Gui::Dialog::DlgCustomActions - Macros - マクロ + Macros + マクロ - Setup Custom Macros - カスタムマクロã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ— + Setup Custom Macros + カスタムマクロã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ— - Macro: - マクロ: + Macro: + マクロ: - ... - ... + ... + ... - Pixmap - ピックスマップ + Pixmap + ピックスマップ - Accelerator: - アクセラレータ: + Accelerator: + アクセラレータ: - What's this: - ã“れã¯ã€ä½•ã§ã™ã‹ï¼š + What's this: + ã“れã¯ã€ä½•ã§ã™ã‹ï¼š - Status text: - ステータステキスト: + Status text: + ステータステキスト: - Tool tip: - ツールã®ãƒ’ント: + Tool tip: + ツールã®ãƒ’ント: - Menu text: - メニューテキスト: + Menu text: + メニューテキスト: - Add - 追加 + Add + 追加 - Remove - 削除 + Remove + 削除 - Replace - ç½®æ› + Replace + ç½®æ› - - + + Gui::Dialog::DlgCustomActionsImp - Icons - アイコン + Icons + アイコン - Macros - マクロ + Macros + マクロ - No macro - マクロä¸å¯ + No macro + マクロä¸å¯ - No macros found. - マクロãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 + No macros found. + マクロãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 - Macro not found - マクロãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ + Macro not found + マクロãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ - Sorry, couldn't find macro file '%1'. - 申ã—訳ã‚りã¾ã›ã‚“ãŒã€ãƒžã‚¯ãƒ­ ファイル '%1' を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ + Sorry, couldn't find macro file '%1'. + 申ã—訳ã‚りã¾ã›ã‚“ãŒã€ãƒžã‚¯ãƒ­ ファイル '%1' を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ - Empty macro - 空ã®ãƒžã‚¯ãƒ­ + Empty macro + 空ã®ãƒžã‚¯ãƒ­ - Please specify the macro first. - 最åˆã«ã€ãƒžã‚¯ãƒ­ã‚’指定ã—ã¦ãã ã•ã„。 + Please specify the macro first. + 最åˆã«ã€ãƒžã‚¯ãƒ­ã‚’指定ã—ã¦ãã ã•ã„。 - Empty text - 空ã®ãƒ†ã‚­ã‚¹ãƒˆ + Empty text + 空ã®ãƒ†ã‚­ã‚¹ãƒˆ - Please specify the menu text first. - 最åˆã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ†ã‚­ã‚¹ãƒˆã‚’指定ã—ã¦ãã ã•ã„。 + Please specify the menu text first. + 最åˆã«ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒ†ã‚­ã‚¹ãƒˆã‚’指定ã—ã¦ãã ã•ã„。 - No item selected - アイテムãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ + No item selected + アイテムãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ - Please select a macro item first. - 最åˆã«ã€ãƒžã‚¯ãƒ­ã®é …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„。 + Please select a macro item first. + 最åˆã«ã€ãƒžã‚¯ãƒ­ã®é …ç›®ã‚’é¸æŠžã—ã¦ãã ã•ã„。 - - + + Gui::Dialog::DlgCustomCommands - Commands - コマンド + Commands + コマンド - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - 分類 + Category + 分類 - Icon - アイコン + Icon + アイコン - Command - コマンド + Command + コマンド - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - キーボード + Keyboard + キーボード - Description: - 説明: + Description: + 説明: - &Category: - カテゴリ(&C): + &Category: + カテゴリ(&C): - C&ommands: - コマンド(&O): + C&ommands: + コマンド(&O): - Current shortcut: - ç¾åœ¨ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆï¼š + Current shortcut: + ç¾åœ¨ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆï¼š - Press &new shortcut: - æ–°ã—ã„ショートカットをプレス(&N): + Press &new shortcut: + æ–°ã—ã„ショートカットをプレス(&N): - Currently assigned to: - ç¾åœ¨ã®å‰²ã‚Šå½“ã¦: + Currently assigned to: + ç¾åœ¨ã®å‰²ã‚Šå½“ã¦: - &Assign - 割り当ã¦(&A) + &Assign + 割り当ã¦(&A) - Alt+A - [Alt] + A + Alt+A + [Alt] + A - &Reset - リセット(&R) + &Reset + リセット(&R) - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - ã™ã¹ã¦ãƒªã‚»ãƒƒãƒˆ(&S) + Re&set All + ã™ã¹ã¦ãƒªã‚»ãƒƒãƒˆ(&S) - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - アイコン + Icon + アイコン - Command - コマンド + Command + コマンド - none - ãªã— + none + ãªã— - Multiple defined shortcut - ショートカットã®è¤‡æ•°å›žå®šç¾© + Multiple defined shortcut + ショートカットã®è¤‡æ•°å›žå®šç¾© - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - ã“ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ'%1'ã¯ã™ã§ã«ä½¿ã‚れã¦ã„ã¾ã™ã€‚ã“れã¯äºˆæœŸã—ãªã„çµæžœã‚’引ãèµ·ã“ã™åŽŸå› ã«ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚ + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + ã“ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ'%1'ã¯ã™ã§ã«ä½¿ã‚れã¦ã„ã¾ã™ã€‚ã“れã¯äºˆæœŸã—ãªã„çµæžœã‚’引ãèµ·ã“ã™åŽŸå› ã«ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚ - Already defined shortcut - æ—¢ã«å®šç¾©ã•れãŸã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ + Already defined shortcut + æ—¢ã«å®šç¾©ã•れãŸã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - ã“ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ'%1'ã¯ã€'%2'ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚ + ã“ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ'%1'ã¯ã€'%2'ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚ 別ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã‚’割り当ã¦ã¦ãã ã•ã„。 - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - ツールボックスãƒãƒ¼ + Toolbox bars + ツールボックスãƒãƒ¼ - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - ツールãƒãƒ¼ + Toolbars + ツールãƒãƒ¼ - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - Move right - å³ã¸ç§»å‹• + Move right + å³ã¸ç§»å‹• - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>é¸æŠžã—ãŸé …ç›®1ã¤ä¸‹ã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>é¸æŠžã—ãŸé …ç›®1ã¤ä¸‹ã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> - Move left - å·¦ã¸ç§»å‹• + Move left + å·¦ã¸ç§»å‹• - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>é¸æŠžã—ãŸé …目を1ã¤ä¸Šã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>é¸æŠžã—ãŸé …目を1ã¤ä¸Šã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> - Move down - 下ã¸ç§»å‹• + Move down + 下ã¸ç§»å‹• - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>é¸æŠžã•れãŸé …目を下ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>é¸æŠžã•れãŸé …目を下ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> - Move up - 上ã¸ç§»å‹• + Move up + 上ã¸ç§»å‹• - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>é¸æŠžã•れãŸé …目を上ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>é¸æŠžã•れãŸé …目を上ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> - New... - æ–°è¦... + New... + æ–°è¦... - Rename... - åå‰ã®å¤‰æ›´... + Rename... + åå‰ã®å¤‰æ›´... - Delete - 削除 + Delete + 削除 - Icon - アイコン + Icon + アイコン - Command - コマンド + Command + コマンド - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - æ–°ã—ã„ツールãƒãƒ¼ + New toolbar + æ–°ã—ã„ツールãƒãƒ¼ - Toolbar name: - ツールãƒãƒ¼å: + Toolbar name: + ツールãƒãƒ¼å: - Duplicated name - é‡è¤‡å + Duplicated name + é‡è¤‡å - The toolbar name '%1' is already used - ツールãƒãƒ¼ã®åå‰'%1'ã¯æ—¢ã«ä½¿ã‚れã¦ã„ã¾ã™ã€‚ + The toolbar name '%1' is already used + ツールãƒãƒ¼ã®åå‰'%1'ã¯æ—¢ã«ä½¿ã‚れã¦ã„ã¾ã™ã€‚ - Rename toolbar - ツールãƒãƒ¼ã®åå‰ã‚’変更 + Rename toolbar + ツールãƒãƒ¼ã®åå‰ã‚’変更 - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - カスタマイズ + Customize + カスタマイズ - &Help - ヘルプ (&H) + &Help + ヘルプ (&H) - &Close - é–‰ã˜ã‚‹(&C) + &Close + é–‰ã˜ã‚‹(&C) - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - ボタン + Buttons + ボタン - Clear - クリア + Clear + クリア - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - プロパティã®è¡¨ç¤º + Display properties + プロパティã®è¡¨ç¤º - Display - 表示 + Display + 表示 - Transparency: - 逿˜Žåº¦: + Transparency: + 逿˜Žåº¦: - Line width: - ç·šå¹…: + Line width: + ç·šå¹…: - Point size: - 点ã®å¤§ãã•: + Point size: + 点ã®å¤§ãã•: - Material - ç´ æ + Material + ç´ æ - ... - ... + ... + ... - Close - é–‰ã˜ã‚‹ + Close + é–‰ã˜ã‚‹ - Viewing mode - 表示モード + Viewing mode + 表示モード - Display mode: - ディスプレイモード: + Display mode: + ディスプレイモード: - Plot mode: - プロットモード: + Plot mode: + プロットモード: - - + + - Line transparency: - Line transparency: + Line transparency: + Line transparency: - Line color: - ç·šã®è‰²: + Line color: + ç·šã®è‰²: - Shape color: - 図形ã®è‰²: + Shape color: + 図形ã®è‰²: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - エディタ + Editor + エディタ - Options - オプション + Options + オプション - Enable line numbers - 行番å·ã‚’有効ã«ã—ã¾ã™ã€‚ + Enable line numbers + 行番å·ã‚’有効ã«ã—ã¾ã™ã€‚ - Enable folding - 折りãŸãŸã¿ã‚’有効ã«ã—ã¾ã™ã€‚ + Enable folding + 折りãŸãŸã¿ã‚’有効ã«ã—ã¾ã™ã€‚ - Indentation - 字下㒠+ Indentation + 字下㒠- Insert spaces - ç©ºç™½ã®æŒ¿å…¥ + Insert spaces + ç©ºç™½ã®æŒ¿å…¥ - Tab size: - タブサイズ: + Tab size: + タブサイズ: - Indent size: - インデントã®ã‚µã‚¤ã‚ºï¼š + Indent size: + インデントã®ã‚µã‚¤ã‚ºï¼š - Keep tabs - ã‚¿ãƒ–ã‚’ç¶­æŒ + Keep tabs + ã‚¿ãƒ–ã‚’ç¶­æŒ - Display Items - 表示項目 + Display Items + 表示項目 - Family: - ファミリー: + Family: + ファミリー: - Size: - サイズ: + Size: + サイズ: - Preview: - プレビュー: + Preview: + プレビュー: - - + + - - + + Gui::Dialog::DlgGeneral - General - 標準 + General + 標準 - Start up - èµ·å‹• + Start up + èµ·å‹• - Enable splash screen at start up - 起動時ã«ã‚¹ãƒ—ラッシュ画é¢ã‚’表示 + Enable splash screen at start up + 起動時ã«ã‚¹ãƒ—ラッシュ画é¢ã‚’表示 - Switch to tab of report window: - レãƒãƒ¼ãƒˆã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚¿ãƒ–ã«åˆ‡ã‚Šæ›¿ãˆ: + Switch to tab of report window: + レãƒãƒ¼ãƒˆã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚¿ãƒ–ã«åˆ‡ã‚Šæ›¿ãˆ: - Auto load module after start up: - スタートアップã®å¾Œã®è‡ªå‹•ロード・モジュール: + Auto load module after start up: + スタートアップã®å¾Œã®è‡ªå‹•ロード・モジュール: - Language - 言語 + Language + 言語 - Change language: - 言語を変更: + Change language: + 言語を変更: - Main window - メインウィンドウ + Main window + メインウィンドウ - Size of recent file list - 最近使ã£ãŸãƒ•ァイルリストã®ã‚µã‚¤ã‚º + Size of recent file list + 最近使ã£ãŸãƒ•ァイルリストã®ã‚µã‚¤ã‚º - Window style: - ウィンドウスタイル: + Window style: + ウィンドウスタイル: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - ウィンドウスタイル: + Input + ウィンドウスタイル: - OK - OK + OK + OK - Cancel - キャンセル + Cancel + キャンセル - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - シーンインスペクタ + Scene Inspector + シーンインスペクタ - - + + Gui::Dialog::DlgMacroExecute - Execute macro - マクロã®å®Ÿè¡Œ + Execute macro + マクロã®å®Ÿè¡Œ - Macro name: - マクロå: + Macro name: + マクロå: - Macro destination: - マクロã®ã‚³ãƒ”ー先: + Macro destination: + マクロã®ã‚³ãƒ”ー先: - Execute - 実行 + Execute + 実行 - Close - é–‰ã˜ã‚‹ + Close + é–‰ã˜ã‚‹ - Create - ä½œæˆ + Create + ä½œæˆ - Delete - 削除 + Delete + 削除 - Edit - 編集 + Edit + 編集 - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - マクロ + Macros + マクロ - Macro file - マクロファイル + Macro file + マクロファイル - Enter a file name, please: - ファイルåを入力ã—ã¦ãã ã•ã„: + Enter a file name, please: + ファイルåを入力ã—ã¦ãã ã•ã„: - Existing file - 既存ファイル + Existing file + 既存ファイル - '%1'. + '%1'. This file already exists. - '%1'.ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ + '%1'.ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ - Delete macro - マクロã®å‰Šé™¤ + Delete macro + マクロã®å‰Šé™¤ - Do you really want to delete the macro '%1'? - マクロ '%1' を削除ã—ã¾ã™ã‹? + Do you really want to delete the macro '%1'? + マクロ '%1' を削除ã—ã¾ã™ã‹? - Cannot create file - ファイルを作æˆã§ãã¾ã›ã‚“。 + Cannot create file + ファイルを作æˆã§ãã¾ã›ã‚“。 - Creation of file '%1' failed. - ファイル '%1' ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + Creation of file '%1' failed. + ファイル '%1' ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚ - - + + Gui::Dialog::DlgMacroRecord - Macro recording - マクロã®è¨˜éŒ² + Macro recording + マクロã®è¨˜éŒ² - Macro name: - マクロå: + Macro name: + マクロå: - Stop - åœæ­¢ + Stop + åœæ­¢ - Cancel - キャンセル + Cancel + キャンセル - Macro path: - マクロã®ãƒ‘ス: + Macro path: + マクロã®ãƒ‘ス: - ... - ... + ... + ... - Record - 記録 + Record + 記録 - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - マクロã®è¨˜éŒ² + Macro recorder + マクロã®è¨˜éŒ² - Specify first a place to save. - 最åˆã«ä¿å­˜ã™ã‚‹å ´æ‰€ã‚’指定ã—ã¦ãã ã•ã„。 + Specify first a place to save. + 最åˆã«ä¿å­˜ã™ã‚‹å ´æ‰€ã‚’指定ã—ã¦ãã ã•ã„。 - Existing macro - 既存ã®ãƒžã‚¯ãƒ­ + Existing macro + 既存ã®ãƒžã‚¯ãƒ­ - The macro '%1' already exists. Do you want to overwrite? - マクロ'%1'ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹? + The macro '%1' already exists. Do you want to overwrite? + マクロ'%1'ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹? - The macro directory doesn't exist. Please, choose another one. - マクロã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå­˜åœ¨ã—ã¾ã›ã‚“。別ã®ã‚‚ã®ã‚’é¸æŠžã—ã¦ãã ã•ã„。 + The macro directory doesn't exist. Please, choose another one. + マクロã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå­˜åœ¨ã—ã¾ã›ã‚“。別ã®ã‚‚ã®ã‚’é¸æŠžã—ã¦ãã ã•ã„。 - Choose macro directory - マクロã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠžã—ã¾ã™ã€‚ + Choose macro directory + マクロã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠžã—ã¾ã™ã€‚ - - + + Gui::Dialog::DlgMaterialProperties - Material properties - ææ–™ç‰¹æ€§ + Material properties + ææ–™ç‰¹æ€§ - &Close - é–‰ã˜ã‚‹(&C) + &Close + é–‰ã˜ã‚‹(&C) - Alt+C - Alt+C + Alt+C + Alt+C - Material - ç´ æ + Material + ç´ æ - Diffuse color: - 散乱光ã®è‰²: + Diffuse color: + 散乱光ã®è‰²: - Specular color: - é¡é¢åå°„å…‰ã®è‰²: + Specular color: + é¡é¢åå°„å…‰ã®è‰²: - Shininess: - 光沢: + Shininess: + 光沢: - % - % + % + % - Ambient color: - 環境光ã®è‰²: + Ambient color: + 環境光ã®è‰²: - - + + - Emissive color: - Emissive color: + Emissive color: + Emissive color: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - オンライン ヘルプ + On-line help + オンライン ヘルプ - Help viewer - ヘルプ ・ ビューアー + Help viewer + ヘルプ ・ ビューアー - Location of start page - スタートページã®å ´æ‰€ + Location of start page + スタートページã®å ´æ‰€ - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML ファイル (*.htm *.html) + HTML files (*.html *.htm) + HTML ファイル (*.htm *.html) - Access denied - ã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•れã¾ã—㟠+ Access denied + ã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•れã¾ã—㟠- Access denied to '%1' + Access denied to '%1' Specify another directory, please. - '%1'ã«ã‚¢ã‚¯ã‚»ã‚¹æ‹’å¦ã•れã¾ã—㟠別ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã—ã¦ãã ã•ã„。 + '%1'ã«ã‚¢ã‚¯ã‚»ã‚¹æ‹’å¦ã•れã¾ã—㟠別ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’指定ã—ã¦ãã ã•ã„。 - - + + Gui::Dialog::DlgParameter - Parameter Editor - パラメータエディタ + Parameter Editor + パラメータエディタ - Save to disk - ディスクã«ä¿å­˜ + Save to disk + ディスクã«ä¿å­˜ - Alt+C - Alt+C + Alt+C + Alt+C - &Close - é–‰ã˜ã‚‹(&C) + &Close + é–‰ã˜ã‚‹(&C) - - + + Gui::Dialog::DlgParameterImp - Group - グループ + Group + グループ - Name - åå‰ + Name + åå‰ - Type - タイプ + Type + タイプ - Value - 値 + Value + 値 - User parameter - ユーザー パラメータ + User parameter + ユーザー パラメータ - Invalid input - 無効ãªå…¥åŠ› + Invalid input + 無効ãªå…¥åŠ› - Invalid key name '%1' - 無効ãªã‚­ãƒ¼å '%1' + Invalid key name '%1' + 無効ãªã‚­ãƒ¼å '%1' - System parameter - システム パラメータ + System parameter + システム パラメータ - - + + Gui::Dialog::DlgPreferences - Preferences - 設定 + Preferences + 設定 - &Help - ヘルプ (&H) + &Help + ヘルプ (&H) - Alt+H - Alt+H + Alt+H + Alt+H - &OK - OK + &OK + OK - &Apply - é©ç”¨(&A) + &Apply + é©ç”¨(&A) - Alt+A - [Alt] + A + Alt+A + [Alt] + A - &Cancel - キャンセル + &Cancel + キャンセル - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - é–“é•ã£ãŸãƒ‘ラメータ + Wrong parameter + é–“é•ã£ãŸãƒ‘ラメータ - - + + Gui::Dialog::DlgProjectInformation - Project information - プロジェクト情報 + Project information + プロジェクト情報 - Information - 情報 + Information + 情報 - &Name: - åå‰(&N): + &Name: + åå‰(&N): - Commen&t: - コメント(&T): + Commen&t: + コメント(&T): - Path: - パス: + Path: + パス: - &Last modified by: - 最終更新日時(&C): + &Last modified by: + 最終更新日時(&C): - Created &by: - Created &by: + Created &by: + Created &by: - Com&pany: - Com&pany: + Com&pany: + Com&pany: - Last &modification date: - 最終更新日(&M): + Last &modification date: + 最終更新日(&M): - Creation &date: - ä½œæˆæ—¥(&D): + Creation &date: + ä½œæˆæ—¥(&D): - &OK - OK + &OK + OK - &Cancel - キャンセル + &Cancel + キャンセル - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - プロジェクトユーティリティ + Project utility + プロジェクトユーティリティ - Extract project - プロジェクトを抽出 + Extract project + プロジェクトを抽出 - Source - Source + Source + Source - Project file (*.fcstd) - プロジェクトファイル (*.fcstd) + Project file (*.fcstd) + プロジェクトファイル (*.fcstd) - Destination - Destination + Destination + Destination - Extract - 抽出 + Extract + 抽出 - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - ä½œæˆ + Create + ä½œæˆ - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - 出力ウィンドウ + Output window + 出力ウィンドウ - Output - 出力 + Output + 出力 - Record log messages - ログメッセージを記録 + Record log messages + ログメッセージを記録 - Record warnings - 警告メッセージを記録 + Record warnings + 警告メッセージを記録 - Record error messages - エラーメッセージを記録 + Record error messages + エラーメッセージを記録 - Colors - 色 + Colors + 色 - Normal messages: - 通常ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸: + Normal messages: + 通常ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸: - Log messages: - ログ メッセージ: + Log messages: + ログ メッセージ: - Warnings: - 警告メッセージ: + Warnings: + 警告メッセージ: - Errors: - エラー: + Errors: + エラー: - - + + - Redirect internal Python errors to report view - Redirect internal Python errors to report view + Redirect internal Python errors to report view + Redirect internal Python errors to report view - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - 外部プログラムを実行ã™ã‚‹ + Running external program + 外部プログラムを実行ã™ã‚‹ - TextLabel - テキストラベル + TextLabel + テキストラベル - Advanced >> - 高度㪠>> + Advanced >> + 高度㪠>> - ... - ... + ... + ... - Accept changes - 変更を確定ã—ã¾ã™ã€‚ + Accept changes + 変更を確定ã—ã¾ã™ã€‚ - Discard changes - 変更を破棄 + Discard changes + 変更を破棄 - Abort program - プログラムを中止ã—ã¾ã™ã€‚ + Abort program + プログラムを中止ã—ã¾ã™ã€‚ - Help - ヘルプ + Help + ヘルプ - Select a file - ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„ + Select a file + ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„ - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D 表示 + 3D View + 3D 表示 - 3D View settings - 3D表示ã®è¨­å®š + 3D View settings + 3D表示ã®è¨­å®š - Show coordinate system in the corner - è§’ã§åº§æ¨™ç³»ã‚’表示ã™ã‚‹ + Show coordinate system in the corner + è§’ã§åº§æ¨™ç³»ã‚’表示ã™ã‚‹ - Show counter of frames per second - 1 ç§’ã‚ãŸã‚Šã®ãƒ•レーム数ã®ã‚«ã‚¦ãƒ³ã‚¿ãƒ¼ã‚’表示ã—ã¾ã™ã€‚ + Show counter of frames per second + 1 ç§’ã‚ãŸã‚Šã®ãƒ•レーム数ã®ã‚«ã‚¦ãƒ³ã‚¿ãƒ¼ã‚’表示ã—ã¾ã™ã€‚ - Enable animation - アニメーションを有効ã«ã—ã¾ã™ã€‚ + Enable animation + アニメーションを有効ã«ã—ã¾ã™ã€‚ - Enable anti-aliasing (slower) - アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹ (低速) を有効ã«ã—ã¾ã™ã€‚ + Enable anti-aliasing (slower) + アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹ (低速) を有効ã«ã—ã¾ã™ã€‚ - Eye to eye distance for stereo modes: - 眼çƒé–“ã®è·é›¢ã€€ã‚¹ãƒ†ãƒ¬ã‚ªãƒ¢ãƒ¼ãƒ‰æ™‚: + Eye to eye distance for stereo modes: + 眼çƒé–“ã®è·é›¢ã€€ã‚¹ãƒ†ãƒ¬ã‚ªãƒ¢ãƒ¼ãƒ‰æ™‚: - Camera type - カメラã®ç¨®é¡ž + Camera type + カメラã®ç¨®é¡ž - Orthographic rendering - 正投影図ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚° + Orthographic rendering + 正投影図ã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚° - Perspective rendering - 視点レンダリング + Perspective rendering + 視点レンダリング - - + + - 3D Navigation - 3Dナビゲーション + 3D Navigation + 3Dナビゲーション - Mouse... - マウス... + Mouse... + マウス... - Intensity of backlight - Intensity of backlight + Intensity of backlight + Intensity of backlight - Enable backlight color - ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã®è‰²ã‚’有効ã«ã™ã‚‹ + Enable backlight color + ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã®è‰²ã‚’有効ã«ã™ã‚‹ - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigation + %1 navigation + %1 navigation - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - カラーモデル + Color model + カラーモデル - &Gradient: - &グラデーション: + &Gradient: + &グラデーション: - red-yellow-green-cyan-blue - 赤ã€é»„ã€ç·‘-シアン-é’ + red-yellow-green-cyan-blue + 赤ã€é»„ã€ç·‘-シアン-é’ - blue-cyan-green-yellow-red - é’-シアン-ç·‘-黄-赤 + blue-cyan-green-yellow-red + é’-シアン-ç·‘-黄-赤 - white-black - 白黒 + white-black + 白黒 - black-white - 白黒 + black-white + 白黒 - Visibility - å¯è¦–性 + Visibility + å¯è¦–性 - Out g&rayed - Out g&rayed + Out g&rayed + Out g&rayed - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Out &invisible + Out &invisible + Out &invisible - Alt+I - Alt+I + Alt+I + Alt+I - Style - スタイル + Style + スタイル - &Zero - &Zero + &Zero + &Zero - Alt+Z - Alt + Zキー + Alt+Z + Alt + Zキー - &Flow - &Flow + &Flow + &Flow - Alt+F - Alt + Fキー + Alt+F + Alt + Fキー - &OK - OK + &OK + OK - &Cancel - キャンセル + &Cancel + キャンセル - Parameter range - パラメータã®ç¯„囲 + Parameter range + パラメータã®ç¯„囲 - Mi&nimum: - 最å°(&n): + Mi&nimum: + 最å°(&n): - Ma&ximum: - 最大 (&x): + Ma&ximum: + 最大 (&x): - &Labels: - &Labels: + &Labels: + &Labels: - &Decimals: - &Decimals: + &Decimals: + &Decimals: - - + + - Color-gradient settings - Color-gradient settings + Color-gradient settings + Color-gradient settings - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - é–“é•ã£ãŸãƒ‘ラメータ + Wrong parameter + é–“é•ã£ãŸãƒ‘ラメータ - The maximum value must be higher than the minimum value. - æœ€å¤§å€¤ã¯æœ€å°å€¤ã‚ˆã‚Šã‚‚大ããã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ + The maximum value must be higher than the minimum value. + æœ€å¤§å€¤ã¯æœ€å°å€¤ã‚ˆã‚Šã‚‚大ããã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ - - + + Gui::Dialog::DlgSettingsDocument - Document - ドキュメント + Document + ドキュメント - General - 標準 + General + 標準 - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Create new document at start up - é–‹å§‹æ™‚ã«æ–°ã—ã„ドキュメントを作æˆã—ã¾ã™ã€‚ + Create new document at start up + é–‹å§‹æ™‚ã«æ–°ã—ã„ドキュメントを作æˆã—ã¾ã™ã€‚ - Storage - ストレージ + Storage + ストレージ - Saving transactions (Auto-save) - 変更内容をä¿å­˜(自動ä¿å­˜) + Saving transactions (Auto-save) + 変更内容をä¿å­˜(自動ä¿å­˜) - Discard saved transaction after saving document - ドキュメントをä¿å­˜ã—ãŸå¾Œã€ä¿å­˜ã•れãŸå¤‰æ›´å†…容を破棄ã—ã¾ã™ã€‚ + Discard saved transaction after saving document + ドキュメントをä¿å­˜ã—ãŸå¾Œã€ä¿å­˜ã•れãŸå¤‰æ›´å†…容を破棄ã—ã¾ã™ã€‚ - Save thumbnail into project file when saving document - ドキュメントをä¿å­˜ã™ã‚‹ã¨ãã«ã‚µãƒ ãƒãƒ¼ãƒ«ã‚’プロジェクトファイルã«ä¿å­˜ã—ã¾ã™ã€‚ + Save thumbnail into project file when saving document + ドキュメントをä¿å­˜ã™ã‚‹ã¨ãã«ã‚µãƒ ãƒãƒ¼ãƒ«ã‚’プロジェクトファイルã«ä¿å­˜ã—ã¾ã™ã€‚ - Create up to backup files when resaving document - Create up to backup files when resaving document + Create up to backup files when resaving document + Create up to backup files when resaving document - Document objects - Document objects + Document objects + Document objects - Allow duplicate object labels in one document - Allow duplicate object labels in one document + Allow duplicate object labels in one document + Allow duplicate object labels in one document - Maximum Undo/Redo steps - ã€Œå…ƒã«æˆ»ã™/やり直ã—ã€ã®æœ€å¤§æ•° + Maximum Undo/Redo steps + ã€Œå…ƒã«æˆ»ã™/やり直ã—ã€ã®æœ€å¤§æ•° - Using Undo/Redo on documents - ドキュメントã§å…ƒã«æˆ»ã™/やり直ã—ã®ä½¿ç”¨ + Using Undo/Redo on documents + ドキュメントã§å…ƒã«æˆ»ã™/やり直ã—ã®ä½¿ç”¨ - - + + Gui::Dialog::DlgSettingsEditorImp - Text - テキスト + Text + テキスト - Bookmark - テキスト + Bookmark + テキスト - Breakpoint - ブレークãƒã‚¤ãƒ³ãƒˆ + Breakpoint + ブレークãƒã‚¤ãƒ³ãƒˆ - Keyword - キーワード + Keyword + キーワード - Comment - コメント + Comment + コメント - Block comment - Block comment + Block comment + Block comment - Number - 数値 + Number + 数値 - String - 文字列 + String + 文字列 - Character - 文字 + Character + 文字 - Class name - クラスå + Class name + クラスå - Define name - åå‰ã®å®šç¾© + Define name + åå‰ã®å®šç¾© - Operator - æ¼”ç®—å­ + Operator + æ¼”ç®—å­ - Python output - Python出力 + Python output + Python出力 - Python error - Pythonエラー + Python error + Pythonエラー - Items - é …ç›® + Items + é …ç›® - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - ç”»åƒè¨­å®š + Image settings + ç”»åƒè¨­å®š - Image properties - ç”»åƒã®ãƒ—ロパティ + Image properties + ç”»åƒã®ãƒ—ロパティ - Back&ground: - 背景色: + Back&ground: + 背景色: - Current - ç¾åœ¨ã® + Current + ç¾åœ¨ã® - White - 白 + White + 白 - Black - é»’ + Black + é»’ - Transparent - 逿˜Ž + Transparent + 逿˜Ž - Image dimensions - ç”»åƒã®å¯¸æ³•(E) + Image dimensions + ç”»åƒã®å¯¸æ³•(E) - Pixel - ピクセル + Pixel + ピクセル - &Width: - &幅: + &Width: + &幅: - Current screen - ç¾åœ¨ã®ç”»é¢ + Current screen + ç¾åœ¨ã®ç”»é¢ - Icon 32 x 32 - アイコン32 × 32 + Icon 32 x 32 + アイコン32 × 32 - Icon 64 x 64 - アイコン 64 × 64 + Icon 64 x 64 + アイコン 64 × 64 - Icon 128 x 128 - アイコン 128 × 128 + Icon 128 x 128 + アイコン 128 × 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 × 720 + HD720 1280 x 720 + HD720 1280 × 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA + 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA + 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 × 1080 + HD1080 1920 x 1080 + HD1080 1920 × 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1651 + QXGA 2048 x 1538 + QXGA 2048 x 1651 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!!10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + 標準サイズ: - !!! 10000 x 10000 - !!!10000 x 10000 + &Height: + &高ã•: - Standard sizes: - 標準サイズ: + Aspect ratio: + アスペクト比: - &Height: - &高ã•: + &Screen + & ç”»é¢ - Aspect ratio: - アスペクト比: + Alt+S + Alt+S - &Screen - & ç”»é¢ + &4:3 + & 4: 3 - Alt+S - Alt+S + Alt+4 + Alt + 4 - &4:3 - & 4: 3 + 1&6:9 + 1&6:9 - Alt+4 - Alt + 4 + Alt+6 + Alt + 6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt + 6 + Alt+1 + Alt + 1 - &1:1 - &1:1 + Image comment + ç”»åƒã®ã‚³ãƒ¡ãƒ³ãƒˆ - Alt+1 - Alt + 1 + Insert MIBA + MIBA ã®æŒ¿å…¥ - Image comment - ç”»åƒã®ã‚³ãƒ¡ãƒ³ãƒˆ + Insert comment + ã‚³ãƒ¡ãƒ³ãƒˆã®æŒ¿å…¥ - - Insert MIBA - MIBA ã®æŒ¿å…¥ - - - Insert comment - ã‚³ãƒ¡ãƒ³ãƒˆã®æŒ¿å…¥ - - - + + Gui::Dialog::DlgSettingsMacro - Macro - マクロ + Macro + マクロ - Macro recording settings - マクロã®è¨˜éŒ²ã®è¨­å®š + Macro recording settings + マクロã®è¨˜éŒ²ã®è¨­å®š - Logging Commands - 履歴コマンド + Logging Commands + 履歴コマンド - Show script commands in python console - Python コンソールã§ã‚¹ã‚¯ãƒªãƒ—ト コマンドを表示ã—ã¾ã™ã€‚ + Show script commands in python console + Python コンソールã§ã‚¹ã‚¯ãƒªãƒ—ト コマンドを表示ã—ã¾ã™ã€‚ - Log all commands issued by menus to file: - メニューã‹ã‚‰ç™ºè¡Œã•れãŸå…¨ã¦ã®å‘½ä»¤ã‚’ファイルã«è¨˜éŒ²ã—ã¾ã™: + Log all commands issued by menus to file: + メニューã‹ã‚‰ç™ºè¡Œã•れãŸå…¨ã¦ã®å‘½ä»¤ã‚’ファイルã«è¨˜éŒ²ã—ã¾ã™: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - GUIコマンド + Gui commands + GUIコマンド - Recording GUI commands - GUIコマンドã®è¨˜éŒ² + Recording GUI commands + GUIコマンドã®è¨˜éŒ² - Record as comment - コメントã¨ã—ã¦è¨˜éŒ² + Record as comment + コメントã¨ã—ã¦è¨˜éŒ² - Macro path - マクロã®ãƒ‘ス + Macro path + マクロã®ãƒ‘ス - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Units + Units + Units - Units settings - å˜ä½ã®è¨­å®š + Units settings + å˜ä½ã®è¨­å®š - Standard (mm/kg/s/degree) - Standard (mm/kg/s/degree) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/degree) - MKS (m/kg/s/degree) - MKS (m/kg/s/degree) + MKS (m/kg/s/degree) + MKS (m/kg/s/degree) - Magnitude - Magnitude + Magnitude + Magnitude - Unit - Unit + Unit + Unit - User system: - User system: + User system: + User system: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - 色 + Colors + 色 - Selection - é¸æŠžç¯„å›² + Selection + é¸æŠžç¯„å›² - Enable selection highlighting - é¸æŠžç¯„å›²ã®å¼·èª¿è¡¨ç¤ºã‚’有効ã«ã—ã¾ã™ã€‚ + Enable selection highlighting + é¸æŠžç¯„å›²ã®å¼·èª¿è¡¨ç¤ºã‚’有効ã«ã—ã¾ã™ã€‚ - Enable preselection highlighting - Enable preselection highlighting + Enable preselection highlighting + Enable preselection highlighting - Background color - 背景色 + Background color + 背景色 - Middle color - Middle color + Middle color + Middle color - Color gradient - カラーグラデーション + Color gradient + カラーグラデーション - Simple color - シンプルãªè‰² + Simple color + シンプルãªè‰² - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - ワンãƒã‚¤ãƒ³ãƒˆã‚¢ãƒ‰ãƒã‚¤ã‚¹ + Tip of the day + ワンãƒã‚¤ãƒ³ãƒˆã‚¢ãƒ‰ãƒã‚¤ã‚¹ - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"> <font size="+3"> 知ã£ã¦ã„ã¾ã™ã‹...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"> <font size="+3"> 知ã£ã¦ã„ã¾ã™ã‹...</font></font></b> - &Show tips at start up - &起動時ã«ãƒ’ントを表示 + &Show tips at start up + &起動時ã«ãƒ’ントを表示 - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &次ã®ãƒ’ント + &Next Tip + &次ã®ãƒ’ント - Alt+N - Alt + N + Alt+N + Alt + N - &Close - é–‰ã˜ã‚‹(&C) + &Close + é–‰ã˜ã‚‹(&C) - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - ダウンロードã«å¤±æ•—ã—ã¾ã—ãŸ: %1 + ダウンロードã«å¤±æ•—ã—ã¾ã—ãŸ: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - FreeCAD ã«ã¤ã„ã¦ã‚‚ã£ã¨è©³ã—ã知りãŸã„å ´åˆ %1 ã¸è¡Œãã€ã‚ã‚‹ã„ã¯ãƒ˜ãƒ«ãƒ—é …ç›® [ヘルプ] メニューã§ã‚­ãƒ¼ã‚’押ã™å¿…è¦ãŒã‚りã¾ã™. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + FreeCAD ã«ã¤ã„ã¦ã‚‚ã£ã¨è©³ã—ã知りãŸã„å ´åˆ %1 ã¸è¡Œãã€ã‚ã‚‹ã„ã¯ãƒ˜ãƒ«ãƒ—é …ç›® [ヘルプ] メニューã§ã‚­ãƒ¼ã‚’押ã™å¿…è¦ãŒã‚りã¾ã™. - - + + Gui::Dialog::DockablePlacement - Placement - Placement + Placement + Placement - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + キャンセル + + + Close + é–‰ã˜ã‚‹ + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + ダウンロードã«å¤±æ•—ã—ã¾ã—ãŸ: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - 入力ベクトル + Input vector + 入力ベクトル - Vector - ベクトル + Vector + ベクトル - Z: - z: + Z: + z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - マウスボタン + Mouse buttons + マウスボタン - Configuration - Configuration + Configuration + Configuration - Selection: - Selection: + Selection: + Selection: - Panning - Panning + Panning + Panning - Rotation: - 回転: + Rotation: + 回転: - Zooming: - Zooming: + Zooming: + Zooming: - - + + Gui::Dialog::ParameterGroup - Expand - é–‹ã + Expand + é–‹ã - Add sub-group - サブグループを追加 + Add sub-group + サブグループを追加 - Remove group - グループを削除 + Remove group + グループを削除 - Rename group - グループå変更 + Rename group + グループå変更 - Export parameter - エクスãƒãƒ¼ãƒˆãƒ‘ラメータ + Export parameter + エクスãƒãƒ¼ãƒˆãƒ‘ラメータ - Import parameter - インãƒãƒ¼ãƒˆãƒ‘ラメータ + Import parameter + インãƒãƒ¼ãƒˆãƒ‘ラメータ - Collapse - 折りãŸãŸã‚€ + Collapse + 折りãŸãŸã‚€ - Do really want to remove this parameter group? - 本当ã«ã“ã®ãƒ‘ラメーターã®ã‚°ãƒ«ãƒ¼ãƒ—を削除ã—ã¾ã™ã‹ã€‚ + Do really want to remove this parameter group? + 本当ã«ã“ã®ãƒ‘ラメーターã®ã‚°ãƒ«ãƒ¼ãƒ—を削除ã—ã¾ã™ã‹ã€‚ - Existing sub-group - 既存ã®ã‚µãƒ–グループ + Existing sub-group + 既存ã®ã‚µãƒ–グループ - The sub-group '%1' already exists. - サブグループ '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ï¼Ž + The sub-group '%1' already exists. + サブグループ '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ï¼Ž - Export parameter to file - パラメーターをファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ + Export parameter to file + パラメーターをファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - パラメーターをファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ + Import parameter from file + パラメーターをファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - Import Error - インãƒãƒ¼ãƒˆã‚¨ãƒ©ãƒ¼ + Import Error + インãƒãƒ¼ãƒˆã‚¨ãƒ©ãƒ¼ - Reading from '%1' failed. - '%1' ã‹ã‚‰ã®èª­ã¿å–りã«å¤±æ•—ã—ã¾ã—ãŸã€‚ + Reading from '%1' failed. + '%1' ã‹ã‚‰ã®èª­ã¿å–りã«å¤±æ•—ã—ã¾ã—ãŸã€‚ - - + + Gui::Dialog::ParameterValue - Change value - 値を変更 + Change value + 値を変更 - Remove key - キーを削除 + Remove key + キーを削除 - Rename key - åå‰å¤‰æ›´ã‚­ãƒ¼ + Rename key + åå‰å¤‰æ›´ã‚­ãƒ¼ - New - æ–°è¦ä½œæˆ + New + æ–°è¦ä½œæˆ - New string item - æ–°ã—ã„æ–‡å­—列項目 + New string item + æ–°ã—ã„æ–‡å­—列項目 - New float item - æ–°ã—ã„フロートアイテム + New float item + æ–°ã—ã„フロートアイテム - New integer item - æ–°ã—ã„æ•´æ•°é …ç›® + New integer item + æ–°ã—ã„æ•´æ•°é …ç›® - New unsigned item - æ–°ã—ã„符å·ãªã—é …ç›® + New unsigned item + æ–°ã—ã„符å·ãªã—é …ç›® - New Boolean item - æ–°ã—ã„ブール項目 + New Boolean item + æ–°ã—ã„ブール項目 - Existing item - 既存ã®é …ç›® + Existing item + 既存ã®é …ç›® - The item '%1' already exists. - é …ç›® '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ + The item '%1' already exists. + é …ç›® '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ - - + + Gui::Dialog::Placement - Placement - Placement + Placement + Placement - OK - OK + OK + OK - Translation: - Translation: + Translation: + Translation: - Z: - z: + Z: + z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - 回転: + Rotation: + 回転: - Angle: - 角度: + Angle: + 角度: - Axis: - 軸: + Axis: + 軸: - Center: - Center: + Center: + Center: - Pitch: - Pitch: + Pitch: + Pitch: - Roll: - Roll: + Roll: + Roll: - Yaw: - Yaw: + Yaw: + Yaw: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler angles + Euler angles + Euler angles - Apply placement changes immediately - Apply placement changes immediately + Apply placement changes immediately + Apply placement changes immediately - Apply incremental changes to object placement - Apply incremental changes to object placement + Apply incremental changes to object placement + Apply incremental changes to object placement - Apply - é©ç”¨ã™ã‚‹ + Apply + é©ç”¨ã™ã‚‹ - Reset - リセット + Reset + リセット - Close - é–‰ã˜ã‚‹ + Close + é–‰ã˜ã‚‹ - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - コマンド + Command + コマンド - - + + Gui::Dialog::SceneInspector - Dialog - ダイアログ + Dialog + ダイアログ - Close - é–‰ã˜ã‚‹ + Close + é–‰ã˜ã‚‹ - Refresh - æ›´æ–° + Refresh + æ›´æ–° - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor Tree + Inventor Tree + Inventor Tree - Nodes - ノード + Nodes + ノード - - + + Gui::Dialog::TextureMapping - Texture - テクスãƒãƒ£ + Texture + テクスãƒãƒ£ - Texture mapping - テクスãƒãƒ£ãƒ¼ãƒžãƒƒãƒ”ング + Texture mapping + テクスãƒãƒ£ãƒ¼ãƒžãƒƒãƒ”ング - Global - Global + Global + Global - Environment - Environment + Environment + Environment - Image files (%1) - Image files (%1) + Image files (%1) + Image files (%1) - No image - ç”»åƒãŒã‚りã¾ã›ã‚“ + No image + ç”»åƒãŒã‚りã¾ã›ã‚“ - The specified file is not a valid image file. - The specified file is not a valid image file. + The specified file is not a valid image file. + The specified file is not a valid image file. - No 3d view - 3DビューãŒã‚りã¾ã›ã‚“ + No 3d view + 3DビューãŒã‚りã¾ã›ã‚“ - No active 3d view found. - No active 3d view found. + No active 3d view found. + No active 3d view found. - - + + Gui::Dialog::Transform - Cancel - キャンセル + Cancel + キャンセル - Transform - å¤‰æ› + Transform + å¤‰æ› - - + + Gui::DlgTreeWidget - Dialog - ダイアログ + Dialog + ダイアログ - Items - é …ç›® + Items + é …ç›® - OK - OK + OK + OK - Cancel - キャンセル + Cancel + キャンセル - - + + - - + + Gui::DockWnd::CombiView - CombiView - コンビビュー + CombiView + コンビビュー - Project - プロジェクト + Project + プロジェクト - Tasks - 作業 + Tasks + 作業 - - + + Gui::DockWnd::HelpView - Previous - å‰ã¸ + Previous + å‰ã¸ - Next - 次㸠+ Next + 次㸠- Home - ホーム + Home + ホーム - Open - é–‹ã + Open + é–‹ã - Open file - ファイルを開ã + Open file + ファイルを開ã - All HTML files (*.html *.htm) - ã™ã¹ã¦ã® HTML ファイル (*.htm *.html) + All HTML files (*.html *.htm) + ã™ã¹ã¦ã® HTML ファイル (*.htm *.html) - External browser - 外部ブラウザ + External browser + 外部ブラウザ - No external browser found. Specify in preferences, please - 外部ブラウザーãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“ã€‚ç’°å¢ƒè¨­å®šã§æŒ‡å®šã—ã¦ãã ã•ã„。 + No external browser found. Specify in preferences, please + 外部ブラウザーãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“ã€‚ç’°å¢ƒè¨­å®šã§æŒ‡å®šã—ã¦ãã ã•ã„。 - Starting of %1 failed - Starting of %1 failed + Starting of %1 failed + Starting of %1 failed - - + + Gui::DockWnd::PropertyDockView - Property View - プロパティ表示 + Property View + プロパティ表示 - - + + Gui::DockWnd::ReportOutput - Logging - ログ記録 + Logging + ログ記録 - Warning - 警告 + Warning + 警告 - Error - エラー + Error + エラー - Options - オプション + Options + オプション - Clear - クリア + Clear + クリア - Save As... - åå‰ã‚’付ã‘ã¦ä¿å­˜... + Save As... + åå‰ã‚’付ã‘ã¦ä¿å­˜... - Save Report Output - レãƒãƒ¼ãƒˆå‡ºåŠ›ã‚’ä¿å­˜ã™ã‚‹ + Save Report Output + レãƒãƒ¼ãƒˆå‡ºåŠ›ã‚’ä¿å­˜ã™ã‚‹ - Plain Text Files (*.txt *.log) - テキスト ファイル (*.txt * .log) + Plain Text Files (*.txt *.log) + テキスト ファイル (*.txt * .log) - Go to end - Go to end + Go to end + Go to end - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Pythonã®ã‚¨ãƒ©ãƒ¼ã‚’リダイレクトã—ã¾ã™ã€‚ + Redirect Python errors + Pythonã®ã‚¨ãƒ©ãƒ¼ã‚’リダイレクトã—ã¾ã™ã€‚ - - + + Gui::DockWnd::ReportView - Output - 出力 + Output + 出力 - Python console - Python コンソール + Python console + Python コンソール - - + + Gui::DockWnd::SelectionView - Property View - プロパティ表示 + Property View + プロパティ表示 - - + + Gui::DockWnd::TaskPanelView - Task View - タスクビュー + Task View + タスクビュー - - + + Gui::DockWnd::TextBrowser - Could not open file. - ファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸã€‚ + Could not open file. + ファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸã€‚ - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - ç¾åœ¨åˆ©ç”¨ã§ããªã„アドレス%1ã«ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¾ã—ãŸã€‚ URLãŒå­˜åœ¨ã™ã‚‹ã“ã¨ã‚’確èªã—ã€ãƒšãƒ¼ã‚¸ã‚’å†èª­ã¿è¾¼ã¿ã—ã¦ãã ã•ã„。 + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + ç¾åœ¨åˆ©ç”¨ã§ããªã„アドレス%1ã«ã‚¢ã‚¯ã‚»ã‚¹ã—よã†ã¨ã—ã¾ã—ãŸã€‚ URLãŒå­˜åœ¨ã™ã‚‹ã“ã¨ã‚’確èªã—ã€ãƒšãƒ¼ã‚¸ã‚’å†èª­ã¿è¾¼ã¿ã—ã¦ãã ã•ã„。 - Connecting to %1 - %1 ã¸æŽ¥ç¶š + Connecting to %1 + %1 ã¸æŽ¥ç¶š - Sending to %1 - Sending to %1 + Sending to %1 + Sending to %1 - Reading from %1 - Reading from %1 + Reading from %1 + Reading from %1 - Download failed: %1. - ダウンロードã«å¤±æ•—ã—ã¾ã—ãŸ: %1. + Download failed: %1. + ダウンロードã«å¤±æ•—ã—ã¾ã—ãŸ: %1. - Previous - å‰ã¸ + Previous + å‰ã¸ - Forward - Forward + Forward + Forward - Home - ホーム + Home + ホーム - Refresh - æ›´æ–° + Refresh + æ›´æ–° - Copy - コピー + Copy + コピー - Select all - ã™ã¹ã¦ã‚’é¸æŠž + Select all + ã™ã¹ã¦ã‚’é¸æŠž - No description for - No description for + No description for + No description for - - + + Gui::DocumentModel - Application - アプリケーション + Application + アプリケーション - Labels & Attributes - ラベルã¨å±žæ€§ + Labels & Attributes + ラベルã¨å±žæ€§ - - + + Gui::EditorView - Modified file - 変更ã•れãŸãƒ•ァイル + Modified file + 変更ã•れãŸãƒ•ァイル - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - Unsaved document - 未ä¿å­˜ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ + Unsaved document + 未ä¿å­˜ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ - The document has been modified. + The document has been modified. Do you want to save your changes? - The document has been modified. + The document has been modified. Do you want to save your changes? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCADマクロ(*.FCMacro); Python(*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCADマクロ(*.FCMacro); Python(*.py) - Export PDF - PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + Export PDF + PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - PDF file (*.pdf) - PDFファイル(*.pdf) + PDF file (*.pdf) + PDFファイル(*.pdf) - untitled[*] - untitled[*] + untitled[*] + untitled[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - %1 chars removed + %1 chars removed + %1 chars removed - %1 chars added - %1 chars added + %1 chars added + %1 chars added - Formatted - Formatted + Formatted + Formatted - - + + Gui::FileChooser - Select a file - ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„ + Select a file + ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„ - Select a directory - ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠž + Select a directory + ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠž - - + + Gui::FileDialog - Save as - åå‰ã‚’付ã‘ã¦ä¿å­˜ + Save as + åå‰ã‚’付ã‘ã¦ä¿å­˜ - Open - é–‹ã + Open + é–‹ã - - + + Gui::FileOptionsDialog - Extended - æ‹¡å¼µ + Extended + æ‹¡å¼µ - All files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + All files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - - + + Gui::Flag - Top left - 左上 + Top left + 左上 - Bottom left - 左下 + Bottom left + 左下 - Top right - å³ä¸Š + Top right + å³ä¸Š - Bottom right - å³ä¸‹ + Bottom right + å³ä¸‹ - Remove - 削除 + Remove + 削除 - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Ctrlキーを押ã—ãªãŒã‚‰ãƒžã‚¦ã‚¹ã®å·¦ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„ + Press CTRL and left mouse button + Ctrlキーを押ã—ãªãŒã‚‰ãƒžã‚¦ã‚¹ã®å·¦ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„ - Press middle mouse button - マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠+ Press middle mouse button + マウスã®ä¸­å¤®ã®ãƒœã‚¿ãƒ³ã‚’押㙠- Press left mouse button - マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠+ Press left mouse button + マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠- Scroll middle mouse button - マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ + Scroll middle mouse button + マウスã®ä¸­å¤®ãƒœã‚¿ãƒ³ã‚’スクロールã™ã‚‹ - - + + Gui::LocationDialog - Wrong direction - é–“é•ã£ãŸæ–¹å‘ + Wrong direction + é–“é•ã£ãŸæ–¹å‘ - Direction must not be the null vector - æ–¹å‘ã¯nullã®ãƒ™ã‚¯ãƒˆãƒ«ã§ã‚ã£ã¦ã¯ãªã‚‰ãªã„ + Direction must not be the null vector + æ–¹å‘ã¯nullã®ãƒ™ã‚¯ãƒˆãƒ«ã§ã‚ã£ã¦ã¯ãªã‚‰ãªã„ - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - ユーザ定義... + User defined... + ユーザ定義... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + z: + + + Direction: + + + + Gui::MacroCommand - Macros - マクロ + Macros + マクロ - - + + Gui::MainWindow - Dimension - 寸法 + Dimension + 寸法 - Ready - 準備完了 + Ready + 準備完了 - Toggles this toolbar - ã“ã®ãƒ„ールãƒãƒ¼ã‚’切り替ãˆã¾ã™ + Toggles this toolbar + ã“ã®ãƒ„ールãƒãƒ¼ã‚’切り替ãˆã¾ã™ - Toggles this dockable window - ã“ã®ãƒ‰ãƒƒã‚­ãƒ³ã‚°å¯èƒ½ãªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’切り替ãˆã‚‹ + Toggles this dockable window + ã“ã®ãƒ‰ãƒƒã‚­ãƒ³ã‚°å¯èƒ½ãªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’切り替ãˆã‚‹ - Close All - ã™ã¹ã¦ã‚’é–‰ã˜ã‚‹ + Close All + ã™ã¹ã¦ã‚’é–‰ã˜ã‚‹ - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - ダウンロードを開始ã—ã¾ã—ãŸ... + ダウンロードを開始ã—ã¾ã—ãŸ... - - + + Gui::ProgressBar - Remaining: %1 - 残り:%1 + Remaining: %1 + 残り:%1 - Aborting - 中止ã—ã¾ã™ + Aborting + 中止ã—ã¾ã™ - Do you really want to abort the operation? - æ“作を中止ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ + Do you really want to abort the operation? + æ“作を中止ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ - - + + Gui::ProgressDialog - Remaining: %1 - 残り:%1 + Remaining: %1 + 残り:%1 - Aborting - 中止ã—ã¾ã™ + Aborting + 中止ã—ã¾ã™ - Do you really want to abort the operation? - æ“作を中止ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ + Do you really want to abort the operation? + æ“作を中止ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ - - + + Gui::PropertyEditor::PropertyModel - Property - プロパティ + Property + プロパティ - Value - 値 + Value + 値 - - + + Gui::PropertyView - View - ビュー + View + ビュー - Data - データ + Data + データ - - + + Gui::PythonConsole - System exit - システム終了 + System exit + システム終了 - The application is still running. + The application is still running. Do you want to exit without saving your data? - アプリケーションãŒã¾ã å®Ÿè¡Œã•れã¦ã„ã¾ã™ã€‚ã‚ãªãŸã®ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å­˜ã›ãšã«çµ‚了ã—ã¾ã™ã‹ã€‚ + アプリケーションãŒã¾ã å®Ÿè¡Œã•れã¦ã„ã¾ã™ã€‚ã‚ãªãŸã®ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å­˜ã›ãšã«çµ‚了ã—ã¾ã™ã‹ã€‚ - Python console - Python コンソール + Python console + Python コンソール - Unhandled PyCXX exception. - 未処ç†ã®PyCXX例外。 + Unhandled PyCXX exception. + 未処ç†ã®PyCXX例外。 - Unhandled FreeCAD exception. - 未処ç†ã®FreeCAD例外。 + Unhandled FreeCAD exception. + 未処ç†ã®FreeCAD例外。 - Unhandled unknown C++ exception. - 処ç†ã•れã¦ã„ãªã„䏿˜Žãª C++ 例外。 + Unhandled unknown C++ exception. + 処ç†ã•れã¦ã„ãªã„䏿˜Žãª C++ 例外。 - &Copy command - & コピー コマンド + &Copy command + & コピー コマンド - &Copy history - & コピー履歴 + &Copy history + & コピー履歴 - Save history as... - åå‰ã‚’付ã‘ã¦å±¥æ­´ã‚’ä¿å­˜(H)... + Save history as... + åå‰ã‚’付ã‘ã¦å±¥æ­´ã‚’ä¿å­˜(H)... - Insert file name... - ファイルåを挿入... + Insert file name... + ファイルåを挿入... - Save History - 履歴ã®ä¿å­˜ã€‚ + Save History + 履歴ã®ä¿å­˜ã€‚ - Macro Files (*.FCMacro *.py) - マクロ ファイル (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + マクロ ファイル (*.FCMacro *.py) - Insert file name - ファイルåを挿入ã—ã¾ã™ã€‚ + Insert file name + ファイルåを挿入ã—ã¾ã™ã€‚ - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - Python Input Dialog - Pythonã®å…¥åŠ›ãƒ€ã‚¤ã‚¢ãƒ­ã‚° + Python Input Dialog + Pythonã®å…¥åŠ›ãƒ€ã‚¤ã‚¢ãƒ­ã‚° - Unhandled std C++ exception. - Unhandled std C++ exception. + Unhandled std C++ exception. + Unhandled std C++ exception. - Word wrap - ワードラップ + Word wrap + ワードラップ - &Copy - &コピー + &Copy + &コピー - &Paste - &ペースト + &Paste + &ペースト - Select All - å…¨ã¦é¸æŠž + Select All + å…¨ã¦é¸æŠž - - + + Clear console + + + + Gui::PythonEditor - Comment - コメント + Comment + コメント - Uncomment - コメントを解除 + Uncomment + コメントを解除 - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - クリア + Clear + クリア - - + + Gui::RecentFilesAction - Open file %1 - ï¼…1ファイルを開ã + Open file %1 + ï¼…1ファイルを開ã - File not found - ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠+ File not found + ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠- The file '%1' cannot be opened. - ファイル '%1' ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ + The file '%1' cannot be opened. + ファイル '%1' ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ - - + + Gui::SelectModule - Select module - ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¾ã™ã€‚ + Select module + ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’é¸æŠžã—ã¾ã™ã€‚ - Open %1 as - %1 ã‚’é–‹ã + Open %1 as + %1 ã‚’é–‹ã - Select - é¸æŠž + Select + é¸æŠž - - + + Gui::StdCmdDescription - Help - ヘルプ + Help + ヘルプ - Des&cription - 説明(&C): + Des&cription + 説明(&C): - Long description of commands - コマンドã®èª¬æ˜Ž + Long description of commands + コマンドã®èª¬æ˜Ž - - + + Gui::StdCmdDownloadOnlineHelp - Help - ヘルプ + Help + ヘルプ - Download online help - Download online help + Download online help + Download online help - Download %1's online help - Download %1's online help + Download %1's online help + Download %1's online help - Non-existing directory - Non-existing directory + Non-existing directory + Non-existing directory - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Missing permission - Missing permission + Missing permission + Missing permission - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Stop downloading - Stop downloading + Stop downloading + Stop downloading - - + + Gui::StdCmdPythonHelp - Tools - ツール + Tools + ツール - Python Modules - Pythonモジュール + Python Modules + Pythonモジュール - Opens a browser to show the Python modules - Python モジュールを表示ã™ã‚‹ã«ã¯ã€ãƒ–ラウザーを開ãã¾ã™ã€‚ + Opens a browser to show the Python modules + Python モジュールを表示ã™ã‚‹ã«ã¯ã€ãƒ–ラウザーを開ãã¾ã™ã€‚ - - + + Gui::TaskBoxAngle - Angle - Angle + Angle + Angle - - + + Gui::TaskBoxPosition - Position - Position + Position + Position - - + + Gui::TaskView::TaskAppearance - Display mode: - ディスプレイモード: + Display mode: + ディスプレイモード: - Plot mode: - プロットモード: + Plot mode: + プロットモード: - Point size: - 点ã®å¤§ãã•: + Point size: + 点ã®å¤§ãã•: - Line width: - ç·šå¹…: + Line width: + ç·šå¹…: - Transparency: - 逿˜Žåº¦: + Transparency: + 逿˜Žåº¦: - Appearance - 外観 + Appearance + 外観 - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - 編集 + Edit + 編集 - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - 外観 + Appearance + 外観 - ... - ... + ... + ... - edit selection - edit selection + edit selection + edit selection - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + マウスã®å·¦ãƒœã‚¿ãƒ³ã‚’押㙠+ + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - 英語 + English + 英語 - - + + Gui::TreeDockWidget - Tree view - ツリービュー + Tree view + ツリービュー - - + + Gui::TreeWidget - Create group... - グループを作æˆ... + Create group... + グループを作æˆ... - Create a group - グループを作æˆã—ã¾ã™ã€‚ + Create a group + グループを作æˆã—ã¾ã™ã€‚ - Group - グループ + Group + グループ - Rename - åå‰ã®å¤‰æ›´ + Rename + åå‰ã®å¤‰æ›´ - Rename object - オブジェクトã®åå‰ã‚’変更ã—ã¾ã™ã€‚ + Rename object + オブジェクトã®åå‰ã‚’変更ã—ã¾ã™ã€‚ - Labels & Attributes - ラベルã¨å±žæ€§ + Labels & Attributes + ラベルã¨å±žæ€§ - Application - アプリケーション + Application + アプリケーション - Finish editing - 編集を終了 + Finish editing + 編集を終了 - Finish editing object - オブジェクトã®ç·¨é›†ã‚’終了ã—ã¾ã™ã€‚ + Finish editing object + オブジェクトã®ç·¨é›†ã‚’終了ã—ã¾ã™ã€‚ - Activate document - ドキュメントをアクティブã«ã™ã‚‹ + Activate document + ドキュメントをアクティブã«ã™ã‚‹ - Activate document %1 - 文書ã®ï¼…1をアクティブã«ã™ã‚‹ + Activate document %1 + 文書ã®ï¼…1をアクティブã«ã™ã‚‹ - - + + Gui::View3DInventor - Export PDF - PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + Export PDF + PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - PDF file (*.pdf) - PDFファイル(*.pdf) + PDF file (*.pdf) + PDFファイル(*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - ワークベンãƒ'%1'ã‚’é¸æŠž + Select the '%1' workbench + ワークベンãƒ'%1'ã‚’é¸æŠž - - + + Position - Form - Form + Form + Form - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - z: + Z: + z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Grid Snap in + Grid Snap in + Grid Snap in - - + + QDockWidget - Tree view - ツリービュー + Tree view + ツリービュー - Property view - プロパティã®è¡¨ç¤º + Property view + プロパティã®è¡¨ç¤º - Selection view - é¸æŠžãƒ“ãƒ¥ãƒ¼ + Selection view + é¸æŠžãƒ“ãƒ¥ãƒ¼ - Report view - レãƒãƒ¼ãƒˆãƒ“ュー + Report view + レãƒãƒ¼ãƒˆãƒ“ュー - Task View - タスクビュー + Task View + タスクビュー - Combo View - コンボビュー + Combo View + コンボビュー - Toolbox - ツールボックス + Toolbox + ツールボックス - Python console - Python コンソール + Python console + Python コンソール - Display properties - プロパティã®è¡¨ç¤º + Display properties + プロパティã®è¡¨ç¤º - - + + QObject - General - 標準 + General + 標準 - Display - 表示 + Display + 表示 - Unknown filetype - 䏿˜Žãªãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ + Unknown filetype + 䏿˜Žãªãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ - Cannot open unknown filetype: %1 - ï¼…1ï¼šä¸æ˜Žãªãƒ•ァイルタイプを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。 + Cannot open unknown filetype: %1 + ï¼…1ï¼šä¸æ˜Žãªãƒ•ァイルタイプを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。 - Cannot save to unknown filetype: %1 - 䏿˜Žãªãƒ•ァイル形å¼ã«ä¿å­˜ã§ãã¾ã›ã‚“: %1 + Cannot save to unknown filetype: %1 + 䏿˜Žãªãƒ•ァイル形å¼ã«ä¿å­˜ã§ãã¾ã›ã‚“: %1 - Workbench failure - ワークベンãƒã®ã‚¨ãƒ©ãƒ¼ + Workbench failure + ワークベンãƒã®ã‚¨ãƒ©ãƒ¼ - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Qt アシスタント (%1) ã‚’èµ·å‹•ã§ãã¾ã›ã‚“。 + Unable to launch Qt Assistant (%1) + Qt アシスタント (%1) ã‚’èµ·å‹•ã§ãã¾ã›ã‚“。 - Exception - 例外 + Exception + 例外 - Open document - ドキュメントを開ã + Open document + ドキュメントを開ã - Import file - ファイルをインãƒãƒ¼ãƒˆ + Import file + ファイルをインãƒãƒ¼ãƒˆ - Export file - ファイルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + Export file + ファイルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - Printing... - å°åˆ·... + Printing... + å°åˆ·... - Cannot load workbench - ワークベンãƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“ + Cannot load workbench + ワークベンãƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“ - A general error occurred while loading the workbench - ワークベンãƒã‚’読ã¿è¾¼ã¿ä¸­ã«ä¸€èˆ¬çš„ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠+ A general error occurred while loading the workbench + ワークベンãƒã‚’読ã¿è¾¼ã¿ä¸­ã«ä¸€èˆ¬çš„ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—㟠- File not found - ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠+ File not found + ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—㟠- Cannot open file %1 - ファイル %1 ã‚’é–‹ã‘ã¾ã›ã‚“ + Cannot open file %1 + ファイル %1 ã‚’é–‹ã‘ã¾ã›ã‚“ - Save views... - ビューをä¿å­˜... + Save views... + ビューをä¿å­˜... - Load views... - ビューを読ã¿è¾¼ã¿... + Load views... + ビューを読ã¿è¾¼ã¿... - Freeze view - ビューを固定 + Freeze view + ビューを固定 - Clear views - ビューをクリア + Clear views + ビューをクリア - Restore view &%1 - ビュー'%1'を復元 + Restore view &%1 + ビュー'%1'を復元 - Save frozen views - 固定ビューをä¿å­˜ + Save frozen views + 固定ビューをä¿å­˜ - Frozen views (*.cam) - 固定ビュー(*.cam) + Frozen views (*.cam) + 固定ビュー(*.cam) - Restore views - ビューを復元 + Restore views + ビューを復元 - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - ビューã®å¾©å…ƒã‚’行ã†ã¨ã€ç¾åœ¨ä¿å­˜ã•れã¦ã„るビューã¯ã‚¯ãƒªã‚¢ã•れã¾ã™ã€‚ + ビューã®å¾©å…ƒã‚’行ã†ã¨ã€ç¾åœ¨ä¿å­˜ã•れã¦ã„るビューã¯ã‚¯ãƒªã‚¢ã•れã¾ã™ã€‚ 処ç†ã‚’続行ã—ã¾ã™ã‹ï¼Ÿ - Restore frozen views - 固定ビューã®å¾©å…ƒ + Restore frozen views + 固定ビューã®å¾©å…ƒ - Cannot open file '%1'. - ファイル %1 ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“. + Cannot open file '%1'. + ファイル %1 ã‚’é–‹ãã“ã¨ãŒã§ãã¾ã›ã‚“. - Docked - ドッキングã•れã¦ã„ã‚‹ + Docked + ドッキングã•れã¦ã„ã‚‹ - Undocked - ドッキングã•れã¦ã„ãªã„ + Undocked + ドッキングã•れã¦ã„ãªã„ - Fullscreen - 全画é¢è¡¨ç¤º + Fullscreen + 全画é¢è¡¨ç¤º - files - ファイル + files + ファイル - Save picture - ç”»åƒã‚’ä¿å­˜ã€‚ + Save picture + ç”»åƒã‚’ä¿å­˜ã€‚ - New sub-group - æ–°ã—ã„サブグループ + New sub-group + æ–°ã—ã„サブグループ - Enter the name: - åå‰ã‚’入力: + Enter the name: + åå‰ã‚’入力: - New text item - æ–°ã—ã„テキスト項目 + New text item + æ–°ã—ã„テキスト項目 - Enter your text: - テキストを入力ã—ã¦ãã ã•ã„: + Enter your text: + テキストを入力ã—ã¦ãã ã•ã„: - New integer item - æ–°ã—ã„æ•´æ•°é …ç›® + New integer item + æ–°ã—ã„æ•´æ•°é …ç›® - Enter your number: - ã‚ãªãŸã®ç•ªå·ã‚’入力ã—ã¾ã™ã€‚ + Enter your number: + ã‚ãªãŸã®ç•ªå·ã‚’入力ã—ã¾ã™ã€‚ - New unsigned item - æ–°ã—ã„符å·ãªã—é …ç›® + New unsigned item + æ–°ã—ã„符å·ãªã—é …ç›® - New float item - æ–°ã—ã„フロートアイテム + New float item + æ–°ã—ã„フロートアイテム - New Boolean item - æ–°ã—ã„ブール項目 + New Boolean item + æ–°ã—ã„ブール項目 - Choose an item: - é …ç›®ã‚’é¸æŠžã—ã¾ã™ï¼š + Choose an item: + é …ç›®ã‚’é¸æŠžã—ã¾ã™ï¼š - Rename group - グループå変更 + Rename group + グループå変更 - The group '%1' cannot be renamed. - グループ '%1' ã®åå‰ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。 + The group '%1' cannot be renamed. + グループ '%1' ã®åå‰ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。 - Existing group - 既存ã®ã‚°ãƒ«ãƒ¼ãƒ— + Existing group + 既存ã®ã‚°ãƒ«ãƒ¼ãƒ— - The group '%1' already exists. - グループ '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ + The group '%1' already exists. + グループ '%1' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚ - Change value - 値を変更 + Change value + 値を変更 - Save document under new filename... - ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«æ–°ã—ã„ファイルåを付ã‘ã¦ä¿å­˜ + Save document under new filename... + ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«æ–°ã—ã„ファイルåを付ã‘ã¦ä¿å­˜ - Saving aborted - ä¿å­˜ã¯ä¸­æ–­ã•れã¾ã—㟠+ Saving aborted + ä¿å­˜ã¯ä¸­æ–­ã•れã¾ã—㟠- Unsaved document - 未ä¿å­˜ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ + Unsaved document + 未ä¿å­˜ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ - Save document before close? - é–‰ã˜ã‚‹å‰ã«ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ + Save document before close? + é–‰ã˜ã‚‹å‰ã«ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ - Save Macro - マクロをä¿å­˜ã—ã¾ã™ã€‚ + Save Macro + マクロをä¿å­˜ã—ã¾ã™ã€‚ - Finish - 完了 + Finish + 完了 - Clear - クリア + Clear + クリア - Cancel - キャンセル + Cancel + キャンセル - Inner - å†…å´ + Inner + å†…å´ - Outer - å¤–å´ + Outer + å¤–å´ - No Browser - ブラウザーãŒç„¡ã„ + No Browser + ブラウザーãŒç„¡ã„ - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - ãŠä½¿ã„ã®ãƒ–ラウザーを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。ブラウザーウィンドウを開ã„㦠+ ãŠä½¿ã„ã®ãƒ–ラウザーを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。ブラウザーウィンドウを開ã„㦠次ã®URLを表示ã—ã¦ãã ã•ã„: http://localhost:%1 - No Server - サーãƒãƒ¼ãŒç„¡ã„ + No Server + サーãƒãƒ¼ãŒç„¡ã„ - Unable to start the server to port %1: %2. - %1: %2 ã®ãƒãƒ¼ãƒˆã«ã‚µãƒ¼ãƒãƒ¼ã‚’é–‹å§‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ + Unable to start the server to port %1: %2. + %1: %2 ã®ãƒãƒ¼ãƒˆã«ã‚µãƒ¼ãƒãƒ¼ã‚’é–‹å§‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ - Unable to open your system browser. - ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ–ラウザーを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。 + Unable to open your system browser. + ãŠä½¿ã„ã®ã‚·ã‚¹ãƒ†ãƒ ã®ãƒ–ラウザーを開ãã“ã¨ãŒã§ãã¾ã›ã‚“。 - Options... - オプション... + Options... + オプション... - Out of memory - メモリä¸è¶³ + Out of memory + メモリä¸è¶³ - Not enough memory available to display the data. - データを表示ã™ã‚‹ã®ã«å分ãªãƒ¡ãƒ¢ãƒªãŒã‚りã¾ã›ã‚“。 + Not enough memory available to display the data. + データを表示ã™ã‚‹ã®ã«å分ãªãƒ¡ãƒ¢ãƒªãŒã‚りã¾ã›ã‚“。 - Cannot find file %1 - ファイル %1 ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 + Cannot find file %1 + ファイル %1 ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 - Cannot find file %1 neither in %2 nor in %3 - %2 ã«ã‚‚ %3 ã«ã‚‚ファイル %1 ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 + Cannot find file %1 neither in %2 nor in %3 + %2 ã«ã‚‚ %3 ã«ã‚‚ファイル %1 ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。 - Save %1 Document - %1 ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã€‚ + Save %1 Document + %1 ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã€‚ - %1 document (*.FCStd) - %1 ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ (*.FCStd) + %1 document (*.FCStd) + %1 ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ (*.FCStd) - Save As - åå‰ã‚’付ã‘ã¦ä¿å­˜ + Save As + åå‰ã‚’付ã‘ã¦ä¿å­˜ - %1 already exists. + %1 already exists. Do you want to replace it? - %1 ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ã€‚ + %1 ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ã€‚ - Document not closable - é–‰ã˜ã‚‰ã‚Œãªã„ドキュメント + Document not closable + é–‰ã˜ã‚‰ã‚Œãªã„ドキュメント - The document is not closable for the moment. - 今閉ã˜ã‚‹ã“ã¨ãŒã§ããªã„ドキュメント + The document is not closable for the moment. + 今閉ã˜ã‚‹ã“ã¨ãŒã§ããªã„ドキュメント - No OpenGL - OpenGLãŒã‚りã¾ã›ã‚“ + No OpenGL + OpenGLãŒã‚りã¾ã›ã‚“ - This system does not support OpenGL - ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ OpenGL をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“ + This system does not support OpenGL + ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã¯ OpenGL をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“ - Help - ヘルプ + Help + ヘルプ - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - ドキュメントを読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。ãれをロードã™ã‚‹ãŸã‚ã« Qt 4.4 以é™ãŒå¿…è¦ã§ã™ã€‚ + ドキュメントを読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。ãれをロードã™ã‚‹ãŸã‚ã« Qt 4.4 以é™ãŒå¿…è¦ã§ã™ã€‚ - %1 Help - %1 Help + %1 Help + %1 Help - Exporting PDF... - PDF ファイルをエクスãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ + Exporting PDF... + PDF ファイルをエクスãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ - Wrong selection - 誤ã£ãŸé¸æŠž + Wrong selection + 誤ã£ãŸé¸æŠž - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - New boolean item - æ–°ã—ã„ブール値項目 + New boolean item + æ–°ã—ã„ブール値項目 - Navigation styles - Navigation styles + Navigation styles + Navigation styles - %1 navigation - %1 navigation + %1 navigation + %1 navigation - Move annotation - Move annotation + Move annotation + Move annotation - Transform - å¤‰æ› + Transform + å¤‰æ› - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + 標準ビュー + + + Box selection + + + + StdCmdAbout - Help - ヘルプ + Help + ヘルプ - &About %1 - %1ã«ã¤ã„ã¦(&A) + &About %1 + %1ã«ã¤ã„ã¦(&A) - About %1 - %1 ã«ã¤ã„㦠+ About %1 + %1 ã«ã¤ã„㦠- - + + StdCmdAboutQt - Help - ヘルプ + Help + ヘルプ - About &Qt - Qtã«ã¤ã„ã¦(&Q) + About &Qt + Qtã«ã¤ã„ã¦(&Q) - About Qt - Qtã«ã¤ã„㦠+ About Qt + Qtã«ã¤ã„㦠- - + + StdCmdActivateNextWindow - Window - ウィンドウ + Window + ウィンドウ - Ne&xt - 次ã¸(&X) + Ne&xt + 次ã¸(&X) - Activate next window - 次ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’アクティブã«ã™ã‚‹ + Activate next window + 次ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’アクティブã«ã™ã‚‹ - - + + StdCmdActivatePrevWindow - Window - ウィンドウ + Window + ウィンドウ - Pre&vious - å‰ã¸(&V) + Pre&vious + å‰ã¸(&V) - Activate previous window - å‰ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’アクティブã«ã™ã‚‹ + Activate previous window + å‰ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’アクティブã«ã™ã‚‹ - - + + + StdCmdAlignment + + Edit + 編集 + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - ウィンドウ + Window + ウィンドウ - Arrange &Icons - ã‚¢ã‚¤ã‚³ãƒ³ã®æ•´åˆ—(&I) + Arrange &Icons + ã‚¢ã‚¤ã‚³ãƒ³ã®æ•´åˆ—(&I) - Arrange Icons - ã‚¢ã‚¤ã‚³ãƒ³ã®æ•´åˆ— + Arrange Icons + ã‚¢ã‚¤ã‚³ãƒ³ã®æ•´åˆ— - - + + StdCmdAxisCross - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - ウィンドウ + Window + ウィンドウ - &Cascade - カスケード(&C) + &Cascade + カスケード(&C) - Tile pragmatic - タイル + Tile pragmatic + タイル - - + + StdCmdCloseActiveWindow - Window - ウィンドウ + Window + ウィンドウ - Cl&ose - é–‰ã˜ã‚‹(&O) + Cl&ose + é–‰ã˜ã‚‹(&O) - Close active window - アクティブãªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹ + Close active window + アクティブãªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹ - - + + StdCmdCloseAllWindows - Window - ウィンドウ + Window + ウィンドウ - Close Al&l - ã™ã¹ã¦é–‰ã˜ã‚‹(&L) + Close Al&l + ã™ã¹ã¦é–‰ã˜ã‚‹(&L) - Close all windows - ã™ã¹ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹ + Close all windows + ã™ã¹ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹ - - + + StdCmdCommandLine - Tools - ツール + Tools + ツール - Start command &line... - Start command &line... + Start command &line... + Start command &line... - Opens the command line in the console - Opens the command line in the console + Opens the command line in the console + Opens the command line in the console - - + + StdCmdCopy - Edit - 編集 + Edit + 編集 - C&opy - コピー(&O) + C&opy + コピー(&O) - Copy operation - Copy operation + Copy operation + Copy operation - - + + StdCmdCut - Edit - 編集 + Edit + 編集 - &Cut - 切りå–り(&C) + &Cut + 切りå–り(&C) - Cut out - Cut out + Cut out + Cut out - - + + StdCmdDDuplicateSelection - Edit - 編集 + Edit + 編集 - Duplicate selection - Duplicate selection + Duplicate selection + Duplicate selection - Put duplicates of the selected objects to the active document - Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document - - + + StdCmdDelete - Edit - 編集 + Edit + 編集 - &Delete - 削除(&D) + &Delete + 削除(&D) - Deletes the selected objects - é¸æŠžã—ãŸã‚ªãƒ–ジェクトを削除 + Deletes the selected objects + é¸æŠžã—ãŸã‚ªãƒ–ジェクトを削除 - - + + StdCmdDemoMode - Standard-View - 標準ビュー + Standard-View + 標準ビュー - View turntable... - View turntable... + View turntable... + View turntable... - View turntable - View turntable + View turntable + View turntable - - + + StdCmdDlgCustomize - Tools - ツール + Tools + ツール - Cu&stomize... - カスタマイズ(&S) + Cu&stomize... + カスタマイズ(&S) - Customize toolbars and command bars - カスタマイズツールãƒãƒ¼ã¨ã‚³ãƒžãƒ³ãƒ‰ãƒãƒ¼ + Customize toolbars and command bars + カスタマイズツールãƒãƒ¼ã¨ã‚³ãƒžãƒ³ãƒ‰ãƒãƒ¼ - - + + StdCmdDlgMacroExecute - Macros ... - マクロ... + Macros ... + マクロ... - Opens a dialog to let you execute a recorded macro - 記録ã•れãŸãƒžã‚¯ãƒ­ã‚’実行ã§ãるよã†ã«ã€ãƒ€ã‚¤ã‚¢ãƒ­ã‚° ボックスを開ãã¾ã™ + Opens a dialog to let you execute a recorded macro + 記録ã•れãŸãƒžã‚¯ãƒ­ã‚’実行ã§ãるよã†ã«ã€ãƒ€ã‚¤ã‚¢ãƒ­ã‚° ボックスを開ãã¾ã™ - Macro - マクロ + Macro + マクロ - - + + StdCmdDlgMacroExecuteDirect - Macro - マクロ + Macro + マクロ - Execute macro - マクロã®å®Ÿè¡Œ + Execute macro + マクロã®å®Ÿè¡Œ - Execute the macro in the editor - エディタã§ãƒžã‚¯ãƒ­ã‚’実行ã—ã¾ã™ã€‚ + Execute the macro in the editor + エディタã§ãƒžã‚¯ãƒ­ã‚’実行ã—ã¾ã™ã€‚ - - + + StdCmdDlgMacroRecord - &Macro recording ... - マクロã®è¨˜éŒ² (&M). + &Macro recording ... + マクロã®è¨˜éŒ² (&M). - Opens a dialog to record a macro - Opens a dialog to record a macro + Opens a dialog to record a macro + Opens a dialog to record a macro - Macro - マクロ + Macro + マクロ - - + + StdCmdDlgParameter - Tools - ツール + Tools + ツール - E&dit parameters ... - E&dit parameters ... + E&dit parameters ... + E&dit parameters ... - Opens a Dialog to edit the parameters - パラメーターを編集ã™ã‚‹ãŸã‚ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’é–‹ãã¾ã™ + Opens a Dialog to edit the parameters + パラメーターを編集ã™ã‚‹ãŸã‚ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’é–‹ãã¾ã™ - - + + StdCmdDlgPreferences - Tools - ツール + Tools + ツール - &Preferences ... - 設定 (&P)... + &Preferences ... + 設定 (&P)... - Opens a Dialog to edit the preferences - 設定を編集ã™ã‚‹ãŸã‚ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’é–‹ãã¾ã™ + Opens a Dialog to edit the preferences + 設定を編集ã™ã‚‹ãŸã‚ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’é–‹ãã¾ã™ - - + + StdCmdDockViewMenu - View - ビュー + View + ビュー - Vie&ws - Vie&ws + Vie&ws + Vie&ws - Toggles this window - Toggles this window + Toggles this window + Toggles this window - - + + StdCmdDrawStyle - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + 編集 + + + Duplicate selection + Duplicate selection + + + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + + + + StdCmdEdit + + Edit + 編集 + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - ファイル + File + ファイル - &Export... - &Export... + &Export... + &Export... - Export an object in the active document - Export an object in the active document + Export an object in the active document + Export an object in the active document - Supported formats - Supported formats + Supported formats + Supported formats - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + ツール + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - ファイル + File + ファイル - &Recompute - &Recompute + &Recompute + &Recompute - Recompute feature or document - Recompute feature or document + Recompute feature or document + Recompute feature or document - - + + StdCmdFreeCADWebsite - Help - ヘルプ + Help + ヘルプ - FreeCAD Website - FreeCAD Website + FreeCAD Website + FreeCAD Website - The FreeCAD website - FreeCADウェブサイト + The FreeCAD website + FreeCADウェブサイト - - + + StdCmdFreezeViews - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Freeze display - Freeze display + Freeze display + Freeze display - Freezes the current view position - ç¾åœ¨ã®ãƒ“ューを固定 + Freezes the current view position + ç¾åœ¨ã®ãƒ“ューを固定 - - + + StdCmdHideObjects - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Hide all objects - ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをéžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ + Hide all objects + ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをéžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ - Hide all objects in the document - ドキュメント内ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをéžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ + Hide all objects in the document + ドキュメント内ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトをéžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ - - + + StdCmdHideSelection - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Hide selection - Hide selection + Hide selection + Hide selection - Hide all selected objects - é¸æŠžã—ãŸã‚ªãƒ–ジェクトをã™ã¹ã¦éžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ + Hide all selected objects + é¸æŠžã—ãŸã‚ªãƒ–ジェクトをã™ã¹ã¦éžè¡¨ç¤ºã«ã—ã¾ã™ã€‚ - - + + StdCmdImport - File - ファイル + File + ファイル - &Import... - インãƒãƒ¼ãƒˆï¼ˆ&I)... + &Import... + インãƒãƒ¼ãƒˆï¼ˆ&I)... - Import a file in the active document - アクティブãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆå†…ã®ãƒ•ァイルをインãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ + Import a file in the active document + アクティブãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆå†…ã®ãƒ•ァイルをインãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - Supported formats - Supported formats + Supported formats + Supported formats - All files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + All files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - - + + StdCmdMacroStartDebug - Macro - マクロ + Macro + マクロ - Debug macro - マクロをデãƒãƒƒã‚°ã™ã‚‹ + Debug macro + マクロをデãƒãƒƒã‚°ã™ã‚‹ - Start debugging of macro - マクロã®ãƒ‡ãƒãƒƒã‚°ã‚’é–‹å§‹ã—ã¾ã™ã€‚ + Start debugging of macro + マクロã®ãƒ‡ãƒãƒƒã‚°ã‚’é–‹å§‹ã—ã¾ã™ã€‚ - - + + StdCmdMacroStepOver - Macro - マクロ + Macro + マクロ - Step over - ステップ オーãƒãƒ¼ + Step over + ステップ オーãƒãƒ¼ - - + + StdCmdMacroStopDebug - Macro - マクロ + Macro + マクロ - Stop debugging - デãƒãƒƒã‚°ã‚’åœæ­¢ã—ã¾ã™ + Stop debugging + デãƒãƒƒã‚°ã‚’åœæ­¢ã—ã¾ã™ - Stop debugging of macro - Stop debugging of macro + Stop debugging of macro + Stop debugging of macro - - + + StdCmdMacroStopRecord - Macro - マクロ + Macro + マクロ - S&top macro recording - マクロã®è¨˜éŒ²ã‚’åœæ­¢(&S) + S&top macro recording + マクロã®è¨˜éŒ²ã‚’åœæ­¢(&S) - Stop the macro recording session - マクロã®è¨˜éŒ²ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’åœæ­¢ã—ã¾ã™ã€‚ + Stop the macro recording session + マクロã®è¨˜éŒ²ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’åœæ­¢ã—ã¾ã™ã€‚ - - + + StdCmdMeasureDistance - View - ビュー + View + ビュー - Measure distance - è·é›¢ã‚’測定 + Measure distance + è·é›¢ã‚’測定 - - + + StdCmdMeasurementSimple - Tools - ツール + Tools + ツール - Mesure distance - Mesure distance + Mesure distance + Mesure distance - Measures distance between two selected objects - Measures distance between two selected objects + Measures distance between two selected objects + Measures distance between two selected objects - - + + Measure distance + è·é›¢ã‚’測定 + + + StdCmdMergeProjects - File - ファイル + File + ファイル - Merge project... - Merge project... + Merge project... + Merge project... - Merge project - Merge project + Merge project + Merge project - %1 document (*.fcstd) - %1 document (*.fcstd) + %1 document (*.fcstd) + %1 document (*.fcstd) - Cannot merge project with itself. - Cannot merge project with itself. + Cannot merge project with itself. + Cannot merge project with itself. - - + + StdCmdNew - File - ファイル + File + ファイル - &New - æ–°è¦(&N) + &New + æ–°è¦(&N) - Create a new empty document - æ–°ã—ã„空ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚ + Create a new empty document + æ–°ã—ã„空ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚ - - + + StdCmdOnlineHelp - Help - ヘルプ + Help + ヘルプ - Show help to the application - アプリケーションã«ãƒ˜ãƒ«ãƒ—を表示ã™ã‚‹ + Show help to the application + アプリケーションã«ãƒ˜ãƒ«ãƒ—を表示ã™ã‚‹ - - + + StdCmdOnlineHelpPython - Help - ヘルプ + Help + ヘルプ - Python Manuals - Python ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ« + Python Manuals + Python ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ« - Show the Python documentation - Python ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’表示ã—ã¾ã™ã€‚ + Show the Python documentation + Python ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’表示ã—ã¾ã™ã€‚ - - + + StdCmdOnlineHelpWebsite - Help - ヘルプ + Help + ヘルプ - Help Website - サイトã®ãƒ˜ãƒ«ãƒ— + Help Website + サイトã®ãƒ˜ãƒ«ãƒ— - The website where the help is maintained - ヘルプãŒç¶­æŒã•れã¦ã„るウェブサイト + The website where the help is maintained + ヘルプãŒç¶­æŒã•れã¦ã„るウェブサイト - - + + StdCmdOpen - File - ファイル + File + ファイル - &Open... - é–‹ã (&o). + &Open... + é–‹ã (&o). - Open a document or import files - ドキュメントを開ãã‹ã€ãƒ•ァイルをインãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ + Open a document or import files + ドキュメントを開ãã‹ã€ãƒ•ァイルをインãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - Supported formats - Supported formats + Supported formats + Supported formats - All files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + All files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - - + + StdCmdPaste - Edit - 編集 + Edit + 編集 - &Paste - &ペースト + &Paste + &ペースト - Paste operation - è²¼ã‚Šä»˜ã‘æ“作 + Paste operation + è²¼ã‚Šä»˜ã‘æ“作 - - + + StdCmdPlacement - Edit - 編集 + Edit + 編集 - Placement... - Placement... + Placement... + Placement... - Place the selected objects - Place the selected objects + Place the selected objects + Place the selected objects - - + + StdCmdPrint - File - ファイル + File + ファイル - &Print... - &プリント... + &Print... + &プリント... - Print the document - ドキュメントをå°åˆ·ã—ã¾ã™ã€‚ + Print the document + ドキュメントをå°åˆ·ã—ã¾ã™ã€‚ - - + + StdCmdPrintPdf - File - ファイル + File + ファイル - &Export PDF... - PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ(&E)... + &Export PDF... + PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ(&E)... - Export the document as PDF - ドキュメントを PDF ファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ + Export the document as PDF + ドキュメントを PDF ファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ - - + + StdCmdPrintPreview - File - ファイル + File + ファイル - &Print preview... - å°åˆ·ãƒ—レビュー (&P). + &Print preview... + å°åˆ·ãƒ—レビュー (&P). - Print the document - ドキュメントをå°åˆ·ã—ã¾ã™ã€‚ + Print the document + ドキュメントをå°åˆ·ã—ã¾ã™ã€‚ - Print preview - å°åˆ·ãƒ—レビュー + Print preview + å°åˆ·ãƒ—レビュー - - + + StdCmdProjectInfo - File - ファイル + File + ファイル - Project i&nformation... - プロジェクトインフォメーション(&I) + Project i&nformation... + プロジェクトインフォメーション(&I) - Show details of the currently active project - ç¾åœ¨ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ—ロジェクトã®è©³ç´°ã‚’表示ã—ã¾ã™ã€‚ + Show details of the currently active project + ç¾åœ¨ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ—ロジェクトã®è©³ç´°ã‚’表示ã—ã¾ã™ã€‚ - - + + StdCmdProjectUtil - Tools - ツール + Tools + ツール - Project utility... - プロジェクトユーティリティ... + Project utility... + プロジェクトユーティリティ... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - ヘルプ + Help + ヘルプ - Python Website - Python ã®ã‚¦ã‚§ãƒ–サイト + Python Website + Python ã®ã‚¦ã‚§ãƒ–サイト - The official Python website - Python ã®å…¬å¼ã‚µã‚¤ãƒˆ + The official Python website + Python ã®å…¬å¼ã‚µã‚¤ãƒˆ - - + + StdCmdQuit - File - ファイル + File + ファイル - E&xit - 終了(&X) + E&xit + 終了(&X) - Quits the application - アプリケーションを終了ã—ã¾ã™ã€‚ + Quits the application + アプリケーションを終了ã—ã¾ã™ã€‚ - - + + StdCmdRandomColor - File - ファイル + File + ファイル - Random color - ランダムãªè‰² + Random color + ランダムãªè‰² - - + + StdCmdRecentFiles - File - ファイル + File + ファイル - Recent files - 最近開ã„ãŸãƒ•ァイル + Recent files + 最近開ã„ãŸãƒ•ァイル - Recent file list - 最近使ã£ãŸãƒ•ァイルã®ä¸€è¦§ + Recent file list + 最近使ã£ãŸãƒ•ァイルã®ä¸€è¦§ - - + + StdCmdRedo - Edit - 編集 + Edit + 編集 - &Redo - やり直ã—(&R) + &Redo + やり直ã—(&R) - Redoes a previously undone action - å–り消ã—ãŸæ“作をやり直ã—ã¾ã™ã€‚ + Redoes a previously undone action + å–り消ã—ãŸæ“作をやり直ã—ã¾ã™ã€‚ - - + + StdCmdRefresh - Edit - 編集 + Edit + 編集 - &Refresh - æ›´æ–°(&R) + &Refresh + æ›´æ–°(&R) - Recomputes the current active document - ç¾åœ¨ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å†è¨ˆç®—ã—ã¾ã™ã€‚ + Recomputes the current active document + ç¾åœ¨ã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å†è¨ˆç®—ã—ã¾ã™ã€‚ - - + + StdCmdSave - File - ファイル + File + ファイル - &Save - ä¿å­˜ (&s) + &Save + ä¿å­˜ (&s) - Save the active document - 作業中ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã€‚ + Save the active document + 作業中ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã—ã¾ã™ã€‚ - - + + StdCmdSaveAs - File - ファイル + File + ファイル - Save &As... - åå‰ã‚’付ã‘ã¦ä¿å­˜(&A) + Save &As... + åå‰ã‚’付ã‘ã¦ä¿å­˜(&A) - Save the active document under a new file name - æ–°ã—ã„ファイルåã§ã€ä½œæ¥­ä¸­ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã™ã‚‹ + Save the active document under a new file name + æ–°ã—ã„ファイルåã§ã€ä½œæ¥­ä¸­ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ä¿å­˜ã™ã‚‹ - - + + StdCmdSceneInspector - Tools - ツール + Tools + ツール - Scene inspector... - Scene inspector... + Scene inspector... + Scene inspector... - Scene inspector - Scene inspector + Scene inspector + Scene inspector - - + + StdCmdSelectAll - Edit - 編集 + Edit + 編集 - Select &All - ã™ã¹ã¦é¸æŠžï¼ˆ&A) + Select &All + ã™ã¹ã¦é¸æŠžï¼ˆ&A) - Select all - ã™ã¹ã¦ã‚’é¸æŠž + Select all + ã™ã¹ã¦ã‚’é¸æŠž - - + + StdCmdSetAppearance - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Appearance... - Appearance... + Appearance... + Appearance... - Sets the display properties of the selected object - é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®è¡¨ç¤ºãƒ—ロパティを設定ã—ã¾ã™ + Sets the display properties of the selected object + é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®è¡¨ç¤ºãƒ—ロパティを設定ã—ã¾ã™ - - + + StdCmdShowObjects - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Show all objects - ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã—ã¾ã™ã€‚ + Show all objects + ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã—ã¾ã™ã€‚ - Show all objects in the document - ドキュメント内ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã—ã¾ã™ã€‚ + Show all objects in the document + ドキュメント内ã®ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã—ã¾ã™ã€‚ - - + + StdCmdShowSelection - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Show selection - 表示ã®é¸æŠž + Show selection + 表示ã®é¸æŠž - Show all selected objects - é¸æŠžã—ãŸã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã™ã‚‹ + Show all selected objects + é¸æŠžã—ãŸã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを表示ã™ã‚‹ - - + + StdCmdStatusBar - View - ビュー + View + ビュー - Status bar - ステータスãƒãƒ¼ + Status bar + ステータスãƒãƒ¼ - Toggles the status bar - ステータス ãƒãƒ¼ã‚’切り替ãˆã¾ã™ + Toggles the status bar + ステータス ãƒãƒ¼ã‚’切り替ãˆã¾ã™ - - + + StdCmdTextureMapping - Tools - ツール + Tools + ツール - Texture mapping... - テクスãƒãƒ£ãƒžãƒƒãƒ”ング... + Texture mapping... + テクスãƒãƒ£ãƒžãƒƒãƒ”ング... - Texture mapping - テクスãƒãƒ£ãƒ¼ãƒžãƒƒãƒ”ング + Texture mapping + テクスãƒãƒ£ãƒ¼ãƒžãƒƒãƒ”ング - - + + StdCmdTileWindows - Window - ウィンドウ + Window + ウィンドウ - &Tile - タイル (&T) + &Tile + タイル (&T) - Tile the windows - ウィンドウを並ã¹ã¦è¡¨ç¤º + Tile the windows + ウィンドウを並ã¹ã¦è¡¨ç¤º - - + + StdCmdToggleBreakpoint - Macro - マクロ + Macro + マクロ - Toggle breakpoint - ブレークãƒã‚¤ãƒ³ãƒˆã®åˆ‡ã‚Šæ›¿ãˆ + Toggle breakpoint + ブレークãƒã‚¤ãƒ³ãƒˆã®åˆ‡ã‚Šæ›¿ãˆ - - + + StdCmdToggleClipPlane - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Clipping plane - Clipping plane + Clipping plane + Clipping plane - Toggles clipping plane for active view - Toggles clipping plane for active view + Toggles clipping plane for active view + Toggles clipping plane for active view - - + + StdCmdToggleNavigation - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Toggle navigation/Edit mode - Toggle navigation/Edit mode + Toggle navigation/Edit mode + Toggle navigation/Edit mode - Toggle between navigation and edit mode - Toggle between navigation and edit mode + Toggle between navigation and edit mode + Toggle between navigation and edit mode - - + + StdCmdToggleObjects - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Toggle all objects - ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを切り替ãˆã‚‹ + Toggle all objects + ã™ã¹ã¦ã®ã‚ªãƒ–ジェクトを切り替ãˆã‚‹ - Toggles visibility of all objects in the active document - Toggles visibility of all objects in the active document + Toggles visibility of all objects in the active document + Toggles visibility of all objects in the active document - - + + StdCmdToggleSelectability - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Toggle selectability - Toggle selectability + Toggle selectability + Toggle selectability - Toggles the property of the objects to get selected in the 3D-View - Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View - - + + StdCmdToggleVisibility - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Toggle visibility - 表示切り替㈠+ Toggle visibility + 表示切り替㈠- Toggles visibility - 表示切り替㈠+ Toggles visibility + 表示切り替㈠- - + + StdCmdToolBarMenu - View - ビュー + View + ビュー - Tool&bars - ツールãƒãƒ¼(&B) + Tool&bars + ツールãƒãƒ¼(&B) - Toggles this window - Toggles this window + Toggles this window + Toggles this window - - + + StdCmdTransform - Edit - 編集 + Edit + 編集 - Transform... - Transform... + Transform... + Transform... - Transform the geometry of selected objects - Transform the geometry of selected objects + Transform the geometry of selected objects + Transform the geometry of selected objects - - + + StdCmdTreeSelection - View - ビュー + View + ビュー - Go to selection - Go to selection + Go to selection + Go to selection - Scroll to first selected item - 最åˆã«é¸æŠžã—ãŸé …ç›®ã¾ã§ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ« + Scroll to first selected item + 最åˆã«é¸æŠžã—ãŸé …ç›®ã¾ã§ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ« - - + + StdCmdUndo - Edit - 編集 + Edit + 編集 - &Undo - å…ƒã«æˆ»ã™ï¼ˆ&U) + &Undo + å…ƒã«æˆ»ã™ï¼ˆ&U) - Undo exactly one action - 1ã¤ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’å…ƒã«æˆ»ã™ + Undo exactly one action + 1ã¤ã®ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’å…ƒã«æˆ»ã™ - - + + StdCmdUserInterface - View - ビュー + View + ビュー - Dock views - Dock views + Dock views + Dock views - Dock all top-level views - Dock all top-level views + Dock all top-level views + Dock all top-level views - - + + StdCmdViewAxo - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Axometric - Axometric + Axometric + Axometric - Set to axometric view - Set to axometric view + Set to axometric view + Set to axometric view - - + + StdCmdViewBottom - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Bottom - Bottom + Bottom + Bottom - Set to bottom view - 底é¢ãƒ“ューã«è¨­å®š + Set to bottom view + 底é¢ãƒ“ューã«è¨­å®š - - + + StdCmdViewCreate - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Create new view - ãƒ“ãƒ¥ãƒ¼ã‚’ä½œæˆ + Create new view + ãƒ“ãƒ¥ãƒ¼ã‚’ä½œæˆ - Creates a new view window for the active document - Creates a new view window for the active document + Creates a new view window for the active document + Creates a new view window for the active document - - + + StdCmdViewExample1 - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Inventor example #1 - Inventor example #1 + Inventor example #1 + Inventor example #1 - Shows a 3D texture with manipulator - Shows a 3D texture with manipulator + Shows a 3D texture with manipulator + Shows a 3D texture with manipulator - - + + StdCmdViewExample2 - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Inventor example #2 - Inventor example #2 + Inventor example #2 + Inventor example #2 - Shows spheres and drag-lights - Shows spheres and drag-lights + Shows spheres and drag-lights + Shows spheres and drag-lights - - + + StdCmdViewExample3 - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Inventor example #3 - Inventor example #3 + Inventor example #3 + Inventor example #3 - Shows a animated texture - Shows a animated texture + Shows a animated texture + Shows a animated texture - - + + StdCmdViewFitAll - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Fit all - Fit all + Fit all + Fit all - Fits the whole content on the screen - Fits the whole content on the screen + Fits the whole content on the screen + Fits the whole content on the screen - - + + StdCmdViewFitSelection - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Fit selection - Fit selection + Fit selection + Fit selection - Fits the selected content on the screen - Fits the selected content on the screen + Fits the selected content on the screen + Fits the selected content on the screen - - + + StdCmdViewFront - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Front - Front + Front + Front - Set to front view - Set to front view + Set to front view + Set to front view - - + + StdCmdViewIvIssueCamPos - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Issue camera position - Issue camera position + Issue camera position + Issue camera position - Issue the camera position to the console and to a macro, to easily recall this position - Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Stereo Interleaved Columns - Stereo Interleaved Columns + Stereo Interleaved Columns + Stereo Interleaved Columns - Switch stereo viewing to Interleaved Columns - Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Stereo Interleaved Rows - Stereo Interleaved Rows + Stereo Interleaved Rows + Stereo Interleaved Rows - Switch stereo viewing to Interleaved Rows - Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows - - + + StdCmdViewIvStereoOff - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Stereo Off - Stereo Off + Stereo Off + Stereo Off - Switch stereo viewing off - Switch stereo viewing off + Switch stereo viewing off + Switch stereo viewing off - - + + StdCmdViewIvStereoQuadBuff - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Stereo red/green - Stereo red/green + Stereo red/green + Stereo red/green - Switch stereo viewing to red/green - Switch stereo viewing to red/green + Switch stereo viewing to red/green + Switch stereo viewing to red/green - - + + StdCmdViewLeft - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Left - Left + Left + Left - Set to left view - Set to left view + Set to left view + Set to left view - - + + StdCmdViewRear - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Rear - Rear + Rear + Rear - Set to rear view - Set to rear view + Set to rear view + Set to rear view - - + + StdCmdViewRight - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Right - Right + Right + Right - Set to right view - Set to right view + Set to right view + Set to right view - - + + + StdCmdViewRotateLeft + + Standard-View + 標準ビュー + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + 標準ビュー + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Top - Top + Top + Top - Set to top view - Set to top view + Set to top view + Set to top view - - + + StdCmdWhatsThis - Help - ヘルプ + Help + ヘルプ - &What's This? - &What's This? + &What's This? + &What's This? - What's This - What's This + What's This + What's This - - + + StdCmdWindows - Window - ウィンドウ + Window + ウィンドウ - &Windows... - &Windows... + &Windows... + &Windows... - Windows list - Windows list + Windows list + Windows list - - + + StdCmdWindowsMenu - Window - ウィンドウ + Window + ウィンドウ - Activates this window - Activates this window + Activates this window + Activates this window - - + + StdCmdWorkbench - View - ビュー + View + ビュー - Workbench - Workbench + Workbench + Workbench - Switch between workbenches - Switch between workbenches + Switch between workbenches + Switch between workbenches - - + + StdOrthographicCamera - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Orthographic view - Orthographic view + Orthographic view + Orthographic view - Switches to orthographic view mode - Switches to orthographic view mode + Switches to orthographic view mode + Switches to orthographic view mode - - + + StdPerspectiveCamera - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Perspective view - Perspective view + Perspective view + Perspective view - Switches to perspective view mode - Switches to perspective view mode + Switches to perspective view mode + Switches to perspective view mode - - + + StdViewBoxZoom - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Box zoom - Box zoom + Box zoom + Box zoom - - + + StdViewDockUndockFullscreen - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Document window - ドキュメントウィンドウ + Document window + ドキュメントウィンドウ - Display the active view either in fullscreen, in undocked or docked mode - Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode - - + + StdViewScreenShot - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Save picture... - ç”»åƒã‚’ä¿å­˜... + Save picture... + ç”»åƒã‚’ä¿å­˜... - Creates a screenshot of the active view - Creates a screenshot of the active view + Creates a screenshot of the active view + Creates a screenshot of the active view - - + + StdViewZoomIn - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Zoom In - Zoom In + Zoom In + Zoom In - - + + StdViewZoomOut - Standard-View - 標準ビュー + Standard-View + 標準ビュー - Zoom Out - Zoom Out + Zoom Out + Zoom Out - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - ファイル(&F) + &File + ファイル(&F) - &Edit - 編集(&E) + &Edit + 編集(&E) - Standard views - 標準ã®ãƒ“ュー + Standard views + 標準ã®ãƒ“ュー - &Stereo - ステレオ(&S) + &Stereo + ステレオ(&S) - &Zoom - ズーム(&Z) + &Zoom + ズーム(&Z) - Visibility - å¯è¦–性 + Visibility + å¯è¦–性 - &View - 表示(&V) + &View + 表示(&V) - &Tools - ツール(&T) + &Tools + ツール(&T) - &Macro - &Macro + &Macro + &Macro - &Windows - ウインドウ(&W) + &Windows + ウインドウ(&W) - &On-line help - オンライン ヘルプ(&O) + &On-line help + オンライン ヘルプ(&O) - &Help - ヘルプ (&H) + &Help + ヘルプ (&H) - File - ファイル + File + ファイル - Macro - マクロ + Macro + マクロ - View - ビュー + View + ビュー - Special Ops - 特殊設定 + Special Ops + 特殊設定 - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - タスクパãƒãƒ«ã®ã‚¹ã‚¿ã‚¤ãƒ«ã‚’é¸æŠžã—ã¾ã™ã€‚ + Choose the style of the Task Panel + タスクパãƒãƒ«ã®ã‚¹ã‚¿ã‚¤ãƒ«ã‚’é¸æŠžã—ã¾ã™ã€‚ - Default - デフォルト + Default + デフォルト - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_nl.ts b/src/Gui/Language/FreeCAD_nl.ts index ea7ae833c..efebdd05a 100644 --- a/src/Gui/Language/FreeCAD_nl.ts +++ b/src/Gui/Language/FreeCAD_nl.ts @@ -1,5480 +1,5898 @@ - - + + Angle - Form - Form + Form + Form - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Hoek-kleven + Angle Snap + Hoek-kleven - - 1 ° - 1° + + 1 ° + 1° - - 2 ° - 2° + + 2 ° + 2° - - 5 ° - 5° + + 5 ° + 5° - - 10 ° - 10° + + 10 ° + 10° - - 20 ° - 20° + + 20 ° + 20° - - 45 ° - 45° + + 45 ° + 45° - - 90 ° - 90° + + 90 ° + 90° - - 180 ° - 180° + + 180 ° + 180° - - + + Gui::AccelLineEdit - none - geen + none + geen - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Toevoegen + + + Remove + Verwijderen + + + Move up + Naar boven verplaatsen + + + Move down + Naar beneden verplaatsen + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Druk op de linker muisknop + Press left mouse button + Druk op de linker muisknop - Press SHIFT and middle mouse button - Druk op SHIFT en middelste muisknop + Press SHIFT and middle mouse button + Druk op SHIFT en middelste muisknop - Press middle mouse button - Druk op de middelste muisknop + Press middle mouse button + Druk op de middelste muisknop - Scroll middle mouse button - Scroll middelste muisknop + Scroll middle mouse button + Scroll middelste muisknop - - + + Gui::CADNavigationStyle - Press left mouse button - Druk op de linker muisknop + Press left mouse button + Druk op de linker muisknop - Press middle mouse button - Druk op de middelste muisknop + Press middle mouse button + Druk op de middelste muisknop - Press left and middle mouse button - Druk op de linker- en middelste muisknop + Press left and middle mouse button + Druk op de linker- en middelste muisknop - Scroll middle mouse button - Scroll middelste muisknop + Scroll middle mouse button + Scroll middelste muisknop - - + + Gui::Command - Standard - Standaard + Standard + Standaard - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Annuleren + &Cancel + &Annuleren - - + + Gui::ControlSingleton - Task panel - Taken-deelvenster + Task panel + Taken-deelvenster - - + + Gui::Dialog::AboutApplication - About - Info over + About + Info over - Revision number - Revisienummer + Revision number + Revisienummer - Version - Versie + Version + Versie - OK - OK + OK + OK - - '' + + '' - Release date - Uitgifte datum + Release date + Uitgifte datum - Platform - Platform + Platform + Platform - License... - Licentie ... + License... + Licentie ... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Knop %1 + Button %1 + Knop %1 - Out Of Range - Buiten het bereik + Out Of Range + Buiten het bereik - - + + Gui::Dialog::CommandModel - Commands - Commando's + Commands + Commando's - - + + Gui::Dialog::DemoMode - View Turntable - Bekijk draaitafel + View Turntable + Bekijk draaitafel - Speed - Snelheid + Speed + Snelheid - Maximum - Maximale + Maximum + Maximale - Minimum - Minimum + Minimum + Minimum - Fullscreen - Schermvullend + Fullscreen + Schermvullend - Enable timer - Inschakelen van de timer + Enable timer + Inschakelen van de timer - s - s + s + s - Angle - Hoek + Angle + Hoek + + + 90° + 90 ° + + + -90° + -90 ° - 90° - 90 ° + Play + Afspelen - -90° - -90 ° + Stop + Stop - Play - Afspelen + Close + Sluiten - - Stop - Stop - - - Close - Sluiten - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Kies Venster + Choose Window + Kies Venster - &Activate - &Activeren + &Activate + &Activeren - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annuleren + &Cancel + &Annuleren - - '' + + '' - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Vensters + Windows + Vensters - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorisatie + Authorization + Autorisatie - &OK - &OK + &OK + &OK - &Cancel - &Annuleren + &Cancel + &Annuleren - Password: - Wachtwoord: + Password: + Wachtwoord: - User name: - Gebruikersnaam: + User name: + Gebruikersnaam: - - '' + + '' - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Pictogram kiezen + Choose Icon + Pictogram kiezen - OK - OK + OK + OK - Cancel - Annuleren + Cancel + Annuleren - Add icons... - Pictogrammen toevoegen ... + Add icons... + Pictogrammen toevoegen ... - - + + Gui::Dialog::DlgCustomActions - Macros - Macro's + Macros + Macro's - Setup Custom Macros - Instellen van eigen Macro's + Setup Custom Macros + Instellen van eigen Macro's - Macro: - Macro: + Macro: + Macro: - ... - ... + ... + ... - Pixmap - Symbool + Pixmap + Symbool - Accelerator: - Sneltoets: + Accelerator: + Sneltoets: - What's this: - Wat is dit: + What's this: + Wat is dit: - Status text: - Status tekst: + Status text: + Status tekst: - Tool tip: - Tooltip: + Tool tip: + Tooltip: - Menu text: - Menutekst: + Menu text: + Menutekst: - Add - Toevoegen + Add + Toevoegen - Remove - Verwijderen + Remove + Verwijderen - Replace - Vervangen + Replace + Vervangen - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Pictogrammen + Icons + Pictogrammen - Macros - Macro's + Macros + Macro's - No macro - Geen macro + No macro + Geen macro - No macros found. - Geen macro's gevonden. + No macros found. + Geen macro's gevonden. - Macro not found - macro niet gevonden + Macro not found + macro niet gevonden - Sorry, couldn't find macro file '%1'. - Sorry, kon macro-bestand '%1' niet vinden. + Sorry, couldn't find macro file '%1'. + Sorry, kon macro-bestand '%1' niet vinden. - Empty macro - Lege macro + Empty macro + Lege macro - Please specify the macro first. - Gelieve eerst de macro te specificeren. + Please specify the macro first. + Gelieve eerst de macro te specificeren. - Empty text - Lege tekst + Empty text + Lege tekst - Please specify the menu text first. - Gelieve de menu tekst eerst te specificeren. + Please specify the menu text first. + Gelieve de menu tekst eerst te specificeren. - No item selected - Geen item geselecteerd + No item selected + Geen item geselecteerd - Please select a macro item first. - Selecteer eerst een macro-item. + Please select a macro item first. + Selecteer eerst een macro-item. - - + + Gui::Dialog::DlgCustomCommands - Commands - Commando's + Commands + Commando's - - '' + + '' - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Categorie + Category + Categorie - Icon - Pictogram + Icon + Pictogram - Command - Commando + Command + Commando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Toetsenbord + Keyboard + Toetsenbord - Description: - Omschrijving: + Description: + Omschrijving: - &Category: - &Categorie: + &Category: + &Categorie: - C&ommands: - Commando's: + C&ommands: + Commando's: - Current shortcut: - Huidige snelkoppeling: + Current shortcut: + Huidige snelkoppeling: - Press &new shortcut: - Druk op @nieuwe snelkoppeling: + Press &new shortcut: + Druk op @nieuwe snelkoppeling: - Currently assigned to: - Momenteel toegewezen aan: + Currently assigned to: + Momenteel toegewezen aan: - &Assign - Toewijzen + &Assign + Toewijzen - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Herstellen + &Reset + &Herstellen - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Alles her&stellen + Re&set All + Alles her&stellen - Alt+S - Alt+S + Alt+S + Alt+S - - '' + + '' - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Pictogram + Icon + Pictogram - Command - Commando + Command + Commando - none - geen + none + geen - Multiple defined shortcut - Meervoudig gedefinieerde snelkoppeling + Multiple defined shortcut + Meervoudig gedefinieerde snelkoppeling - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - De snel koppeling '%1' is meer dan één keer gedefinieerd. Dit kan resulteren in onverwacht gedrag. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + De snel koppeling '%1' is meer dan één keer gedefinieerd. Dit kan resulteren in onverwacht gedrag. - Already defined shortcut - Reeds gedefinieerde sneltoets + Already defined shortcut + Reeds gedefinieerde sneltoets - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - De sneltoets '%1' is reeds toegewezen aan '%2'. + De sneltoets '%1' is reeds toegewezen aan '%2'. Gelieve een andere snelkoppeling te kiezen. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Gereedschaplijsten + Toolbox bars + Gereedschaplijsten - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Werkbalken + Toolbars + Werkbalken - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - Move right - Naar rechts verplaatsen + Move right + Naar rechts verplaatsen - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Verplaats het geselecteerde item één niveau naar beneden.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Verplaats het geselecteerde item één niveau naar beneden.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> - Move left - Naar links verplaatsen + Move left + Naar links verplaatsen - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Verplaats het geselecteerde item één niveau omhoog.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Verplaats het geselecteerde item één niveau omhoog.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> - Move down - Naar beneden verplaatsen + Move down + Naar beneden verplaatsen - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Verplaats het geselecteerde item omlaag.</b> <p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Verplaats het geselecteerde item omlaag.</b> <p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> - Move up - Naar boven verplaatsen + Move up + Naar boven verplaatsen - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Verplaats het geselecteerde item omlaag.</b><p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Verplaats het geselecteerde item omlaag.</b><p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> - New... - Nieuw... + New... + Nieuw... - Rename... - Hernoemen... + Rename... + Hernoemen... - Delete - Verwijderen + Delete + Verwijderen - Icon - Pictogram + Icon + Pictogram - Command - Commando + Command + Commando - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Nieuwe werkbalk + New toolbar + Nieuwe werkbalk - Toolbar name: - Werkbalknaam: + Toolbar name: + Werkbalknaam: - Duplicated name - Dubbele naam + Duplicated name + Dubbele naam - The toolbar name '%1' is already used - De werkbalk naam '%1' is al in gebruik + The toolbar name '%1' is already used + De werkbalk naam '%1' is al in gebruik - Rename toolbar - Werkbalk hernoemen + Rename toolbar + Werkbalk hernoemen - - '' + + '' - - + + Gui::Dialog::DlgCustomizeImp - Customize - Aanpassen + Customize + Aanpassen - &Help - &Help + &Help + &Help - &Close - &Sluiten + &Close + &Sluiten - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Geen Spaceball aanwezig + No Spaceball Present + Geen Spaceball aanwezig - Buttons - Knoppen + Buttons + Knoppen - Clear - Wissen + Clear + Wissen - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Weergave eigenschappen + Display properties + Weergave eigenschappen - Display - Weergave + Display + Weergave - Transparency: - Transparantie: + Transparency: + Transparantie: - Line width: - Lijndikte: + Line width: + Lijndikte: - Point size: - Puntgrootte: + Point size: + Puntgrootte: - Material - Materiaal + Material + Materiaal - ... - ... + ... + ... - Close - Sluiten + Close + Sluiten - Viewing mode - Weergavemodus + Viewing mode + Weergavemodus - Display mode: - Weergavemodus: + Display mode: + Weergavemodus: - Plot mode: - Plot modus: + Plot mode: + Plot modus: - - '' + + '' - Line transparency: - Lijn transparantie: + Line transparency: + Lijn transparantie: - Line color: - Lijnkleur: + Line color: + Lijnkleur: - Shape color: - Kleur van de vorm: + Shape color: + Kleur van de vorm: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Editor + Editor + Editor - Options - Opties + Options + Opties - Enable line numbers - Activeer regelnummers + Enable line numbers + Activeer regelnummers - Enable folding - Activeer vouwen + Enable folding + Activeer vouwen - Indentation - Inspringen + Indentation + Inspringen - Insert spaces - Spaties invoegen + Insert spaces + Spaties invoegen - Tab size: - Tabgrootte: + Tab size: + Tabgrootte: - Indent size: - Inspring grootte: + Indent size: + Inspring grootte: - Keep tabs - Behoud tabs + Keep tabs + Behoud tabs - Display Items - Geef items weer + Display Items + Geef items weer - Family: - Familie: + Family: + Familie: - Size: - Grootte: + Size: + Grootte: - Preview: - Voorbeeldweergave: + Preview: + Voorbeeldweergave: - - '' + + '' - - + + Gui::Dialog::DlgGeneral - General - Algemeen + General + Algemeen - Start up - Opstarten + Start up + Opstarten - Enable splash screen at start up - Activeer splash-scherm tijdens het opstarten + Enable splash screen at start up + Activeer splash-scherm tijdens het opstarten - Switch to tab of report window: - Schakel over naar het tabblad van het verslag-venster: + Switch to tab of report window: + Schakel over naar het tabblad van het verslag-venster: - Auto load module after start up: - Automatisch laden module na het opstarten: + Auto load module after start up: + Automatisch laden module na het opstarten: - Language - Taal + Language + Taal - Change language: - Taal wijzigen: + Change language: + Taal wijzigen: - Main window - Hoofdvenster + Main window + Hoofdvenster - Size of recent file list - Grootte van de recente-bestanden lijst + Size of recent file list + Grootte van de recente-bestanden lijst - Window style: - Venster stijl: + Window style: + Venster stijl: - Size of toolbar icons: - Grootte van de werkbalk-pictogrammen: + Size of toolbar icons: + Grootte van de werkbalk-pictogrammen: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Standaard (%1 x %1) + Default (%1 x %1) + Standaard (%1 x %1) - Small (%1 x %1) - Klein (1% x %1) + Small (%1 x %1) + Klein (1% x %1) - Large (%1 x %1) - Groot (1% x %1) + Large (%1 x %1) + Groot (1% x %1) - Extra large (%1 x %1) - Extra groot (1% x %1) + Extra large (%1 x %1) + Extra groot (1% x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Invoer + Input + Invoer - OK - OK + OK + OK - Cancel - Annuleren + Cancel + Annuleren - - '' + + '' - - + + Gui::Dialog::DlgInspector - Scene Inspector - Scene Inspecteur + Scene Inspector + Scene Inspecteur - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Macro uitvoeren + Execute macro + Macro uitvoeren - Macro name: - Macro-naam: + Macro name: + Macro-naam: - Macro destination: - Macro-bestemming: + Macro destination: + Macro-bestemming: - Execute - Uitvoeren + Execute + Uitvoeren - Close - Sluiten + Close + Sluiten - Create - Aanmaken + Create + Aanmaken - Delete - Verwijderen + Delete + Verwijderen - Edit - Bewerken + Edit + Bewerken - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Macro's + Macros + Macro's - Macro file - Macro-bestand + Macro file + Macro-bestand - Enter a file name, please: - Gelieve een bestandsnaam in te voeren: + Enter a file name, please: + Gelieve een bestandsnaam in te voeren: - Existing file - Bestaand bestand + Existing file + Bestaand bestand - '%1'. + '%1'. This file already exists. - '%1'. Dit bestand bestaat reeds. + '%1'. Dit bestand bestaat reeds. - Delete macro - Verwijder macro + Delete macro + Verwijder macro - Do you really want to delete the macro '%1'? - Weet u zeker dat u macro '%1' wilt verwijderen? + Do you really want to delete the macro '%1'? + Weet u zeker dat u macro '%1' wilt verwijderen? - Cannot create file - Kan bestand niet aanmaken + Cannot create file + Kan bestand niet aanmaken - Creation of file '%1' failed. - Creëren van bestand '%1' mislukt. + Creation of file '%1' failed. + Creëren van bestand '%1' mislukt. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Macro-opname + Macro recording + Macro-opname - Macro name: - Macro-naam: + Macro name: + Macro-naam: - Stop - Stop + Stop + Stop - Cancel - Annuleren + Cancel + Annuleren - Macro path: - Macro-pad: + Macro path: + Macro-pad: - ... - ... + ... + ... - Record - Opnemen + Record + Opnemen - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Macro-recorder + Macro recorder + Macro-recorder - Specify first a place to save. - Geef eerst de locatie om op te slaan. + Specify first a place to save. + Geef eerst de locatie om op te slaan. - Existing macro - Bestaande macro + Existing macro + Bestaande macro - The macro '%1' already exists. Do you want to overwrite? - De macro '%1' bestaat reeds. Wilt u het overschrijven? + The macro '%1' already exists. Do you want to overwrite? + De macro '%1' bestaat reeds. Wilt u het overschrijven? - The macro directory doesn't exist. Please, choose another one. - De macro-map bestaat niet. Gelieve een andere te kiezen. + The macro directory doesn't exist. Please, choose another one. + De macro-map bestaat niet. Gelieve een andere te kiezen. - Choose macro directory - Kies macro-map + Choose macro directory + Kies macro-map - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Materiaaleigenschappen + Material properties + Materiaaleigenschappen - &Close - &Sluiten + &Close + &Sluiten - Alt+C - Alt+C + Alt+C + Alt+C - Material - Materiaal + Material + Materiaal - Diffuse color: - Diffuse kleur: + Diffuse color: + Diffuse kleur: - Specular color: - Spiegelende kleur: + Specular color: + Spiegelende kleur: - Shininess: - Glans: + Shininess: + Glans: - % - % + % + % - Ambient color: - Omgevingskleur: + Ambient color: + Omgevingskleur: - - '' + + '' - Emissive color: - Emissieve kleur: + Emissive color: + Emissieve kleur: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - On-line help + On-line help + On-line help - Help viewer - Help-Viewer + Help viewer + Help-Viewer - Location of start page - Locatie van startpagina + Location of start page + Locatie van startpagina - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML-bestanden (*. html *. htm) + HTML files (*.html *.htm) + HTML-bestanden (*. html *. htm) - Access denied - Toegang geweigerd + Access denied + Toegang geweigerd - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Toegang geweigerd '%1' + Toegang geweigerd '%1' Kies een andere map, alstublieft. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parameter-editor + Parameter Editor + Parameter-editor - Save to disk - Opslaan op schijf + Save to disk + Opslaan op schijf - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Sluiten + &Close + &Sluiten - - + + Gui::Dialog::DlgParameterImp - Group - Groep + Group + Groep - Name - Naam + Name + Naam - Type - Type + Type + Type - Value - Waarde + Value + Waarde - User parameter - Gebruikersparameter + User parameter + Gebruikersparameter - Invalid input - Ongeldige invoer + Invalid input + Ongeldige invoer - Invalid key name '%1' - Ongeldige sleutelnaam '%1' + Invalid key name '%1' + Ongeldige sleutelnaam '%1' - System parameter - Systeem-parameter + System parameter + Systeem-parameter - - + + Gui::Dialog::DlgPreferences - Preferences - Voorkeuren + Preferences + Voorkeuren - &Help - &Help + &Help + &Help - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &OK + &OK + &OK - &Apply - &Toepassen + &Apply + &Toepassen - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Annuleren + &Cancel + &Annuleren - - '' + + '' - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Verkeerde parameter + Wrong parameter + Verkeerde parameter - - + + Gui::Dialog::DlgProjectInformation - Project information - Projectinformatie + Project information + Projectinformatie - Information - Informatie + Information + Informatie - &Name: - &Naam: + &Name: + &Naam: - Commen&t: - Commen&taar: + Commen&t: + Commen&taar: - Path: - PAD: + Path: + PAD: - &Last modified by: - &Laatst gewijzigd door: + &Last modified by: + &Laatst gewijzigd door: - Created &by: - Gemaakt &door: + Created &by: + Gemaakt &door: - Com&pany: - &Firma: + Com&pany: + &Firma: - Last &modification date: - Laatste &wijzigingsdatum: + Last &modification date: + Laatste &wijzigingsdatum: - Creation &date: - Aanmaak&datum: + Creation &date: + Aanmaak&datum: - &OK - &OK + &OK + &OK - &Cancel - &Annuleren + &Cancel + &Annuleren - - '' + + '' - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project hulpprogramma + Project utility + Project hulpprogramma - Extract project - Extraheer project + Extract project + Extraheer project - Source - Bron + Source + Bron - Project file (*.fcstd) - Project-bestand (*.fcstd) + Project file (*.fcstd) + Project-bestand (*.fcstd) - Destination - Bestemming + Destination + Bestemming - Extract - Extract + Extract + Extract - Create project - Project aanmaken + Create project + Project aanmaken - Document.xml - Document.xml + Document.xml + Document.xml - Create - Aanmaken + Create + Aanmaken - Load project file after creation - Laad projectbestand na het creëren + Load project file after creation + Laad projectbestand na het creëren - Empty source - Lege bron + Empty source + Lege bron - No source is defined. - Geen bron is gedefinieerd. + No source is defined. + Geen bron is gedefinieerd. - Empty destination - Lege bestemming + Empty destination + Lege bestemming - No destination is defined. - Geen bestemming is gedefinieerd. + No destination is defined. + Geen bestemming is gedefinieerd. - - + + Gui::Dialog::DlgReportView - Output window - Uitvoer-venster + Output window + Uitvoer-venster - Output - Uitvoer + Output + Uitvoer - Record log messages - logboek-berichten bewaren + Record log messages + logboek-berichten bewaren - Record warnings - Waarschuwingen bewaren + Record warnings + Waarschuwingen bewaren - Record error messages - Foutmeldingen bewaren + Record error messages + Foutmeldingen bewaren - Colors - Kleuren + Colors + Kleuren - Normal messages: - Normale berichten: + Normal messages: + Normale berichten: - Log messages: - Logboekberichten: + Log messages: + Logboekberichten: - Warnings: - Waarschuwingen: + Warnings: + Waarschuwingen: - Errors: - Fouten: + Errors: + Fouten: - - '' + + '' - Redirect internal Python errors to report view - Interne Python fouten omleiden naar rapportweergave + Redirect internal Python errors to report view + Interne Python fouten omleiden naar rapportweergave - Redirect internal Python output to report view - Interne Python uitvoer omleiden naar de rapportweergave + Redirect internal Python output to report view + Interne Python uitvoer omleiden naar de rapportweergave - - + + Gui::Dialog::DlgRunExternal - Running external program - Draaien van extern programma + Running external program + Draaien van extern programma - TextLabel - Tekstlabel + TextLabel + Tekstlabel - Advanced >> - Geavanceerde >> + Advanced >> + Geavanceerde >> - ... - ... + ... + ... - Accept changes - Accepteer wijzigingen + Accept changes + Accepteer wijzigingen - Discard changes - Wijzigingen verwerpen + Discard changes + Wijzigingen verwerpen - Abort program - Programma afbreken + Abort program + Programma afbreken - Help - Help + Help + Help - Select a file - Selecteer een bestand + Select a file + Selecteer een bestand - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D-Aanzicht + 3D View + 3D-Aanzicht - 3D View settings - 3D-Aanzicht instellingen + 3D View settings + 3D-Aanzicht instellingen - Show coordinate system in the corner - Toon coördinatenstelsel in de hoek + Show coordinate system in the corner + Toon coördinatenstelsel in de hoek - Show counter of frames per second - Toon teller van frames per seconde + Show counter of frames per second + Toon teller van frames per seconde - Enable animation - Animatie inschakelen + Enable animation + Animatie inschakelen - Enable anti-aliasing (slower) - Anti-aliasing (langzamer) inschakelen + Enable anti-aliasing (slower) + Anti-aliasing (langzamer) inschakelen - Eye to eye distance for stereo modes: - Oogafstand voor stereo-modus: + Eye to eye distance for stereo modes: + Oogafstand voor stereo-modus: - Camera type - Cameratype + Camera type + Cameratype - Orthographic rendering - Orthogonale projectie + Orthographic rendering + Orthogonale projectie - Perspective rendering - Perspectivische projectie + Perspective rendering + Perspectivische projectie - - '' + + '' - 3D Navigation - 3D-navigatie + 3D Navigation + 3D-navigatie - Mouse... - Muis... + Mouse... + Muis... - Intensity of backlight - Intensiteit van de achtergrondverlichting + Intensity of backlight + Intensiteit van de achtergrondverlichting - Enable backlight color - Inschakelen achtergrondverlichtingskleur + Enable backlight color + Inschakelen achtergrondverlichtingskleur - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Zoom omkeren + Invert zoom + Zoom omkeren - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigatie + %1 navigation + %1 navigatie - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Kleurenmodel + Color model + Kleurenmodel - &Gradient: - Verloop: + &Gradient: + Verloop: - red-yellow-green-cyan-blue - rood-geel-groen-cyaan-blauw + red-yellow-green-cyan-blue + rood-geel-groen-cyaan-blauw - blue-cyan-green-yellow-red - blauw-cyaan-groen-geel-rood + blue-cyan-green-yellow-red + blauw-cyaan-groen-geel-rood - white-black - wit-zwart + white-black + wit-zwart - black-white - zwart-wit + black-white + zwart-wit - Visibility - Zichtbaarheid + Visibility + Zichtbaarheid - Out g&rayed - Uit geg&rijsd + Out g&rayed + Uit geg&rijsd - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Uit onzichtbaar + Out &invisible + Uit onzichtbaar - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stijl + Style + Stijl - &Zero - &Nul + &Zero + &Nul - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - Stroming + &Flow + Stroming - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Annuleren + &Cancel + &Annuleren - Parameter range - Parameterbereik + Parameter range + Parameterbereik - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Ma&ximum: + Ma&ximum: + Ma&ximum: - &Labels: - &Labels: + &Labels: + &Labels: - &Decimals: - Aantal &decimalen: + &Decimals: + Aantal &decimalen: - - '' + + '' - Color-gradient settings - Kleurverloop instellingen + Color-gradient settings + Kleurverloop instellingen - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Verkeerde parameter + Wrong parameter + Verkeerde parameter - The maximum value must be higher than the minimum value. - De maximale waarde moet hoger zijn dan de minimale waarde. + The maximum value must be higher than the minimum value. + De maximale waarde moet hoger zijn dan de minimale waarde. - - + + Gui::Dialog::DlgSettingsDocument - Document - Document + Document + Document - General - Algemeen + General + Algemeen - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Document op te slaan compressie-niveau (0=geen, 9=hoogste, 3=standaard) + Document op te slaan compressie-niveau (0=geen, 9=hoogste, 3=standaard) - Create new document at start up - Maak een nieuw document aan bij het opstarten + Create new document at start up + Maak een nieuw document aan bij het opstarten - Storage - Opslag + Storage + Opslag - Saving transactions (Auto-save) - Opslaan van transacties (automatisch opslaan) + Saving transactions (Auto-save) + Opslaan van transacties (automatisch opslaan) - Discard saved transaction after saving document - Opgeslagen transactie na het opslaan van het document negeren + Discard saved transaction after saving document + Opgeslagen transactie na het opslaan van het document negeren - Save thumbnail into project file when saving document - Miniatuur opslaat in projectbestand bij het opslaan van document + Save thumbnail into project file when saving document + Miniatuur opslaat in projectbestand bij het opslaan van document - Create up to backup files when resaving document - Create up to backup files when resaving document + Create up to backup files when resaving document + Create up to backup files when resaving document - Document objects - Document objecten + Document objects + Document objecten - Allow duplicate object labels in one document - Sta dubbele objectlabels toe in een document + Allow duplicate object labels in one document + Sta dubbele objectlabels toe in een document - Maximum Undo/Redo steps - Maximale 'ongedaan maken' / 'Opnieuw' stappen + Maximum Undo/Redo steps + Maximale 'ongedaan maken' / 'Opnieuw' stappen - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Tekst + Text + Tekst - Bookmark - Bladwijzer + Bookmark + Bladwijzer - Breakpoint - Pauze-punt + Breakpoint + Pauze-punt - Keyword - Sleutelwoord + Keyword + Sleutelwoord - Comment - Commentaar + Comment + Commentaar - Block comment - Commentaarblok + Block comment + Commentaarblok - Number - Getal + Number + Getal - String - Tekenreeks + String + Tekenreeks - Character - Teken + Character + Teken - Class name - Klassenaam + Class name + Klassenaam - Define name - Definieer Naam + Define name + Definieer Naam - Operator - Operand + Operator + Operand - Python output - Python-uitvoer + Python output + Python-uitvoer - Python error - Python-fout + Python error + Python-fout - Items - Items + Items + Items - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Afbeeldingsinstellingen + Image settings + Afbeeldingsinstellingen - Image properties - Afbeeldingeigenschappen + Image properties + Afbeeldingeigenschappen - Back&ground: - achter&grond: + Back&ground: + achter&grond: - Current - Huidige + Current + Huidige - White - Wit + White + Wit - Black - Zwart + Black + Zwart - Transparent - Transparant + Transparent + Transparant - Image dimensions - Afbeeldings-afmetingen + Image dimensions + Afbeeldings-afmetingen - Pixel - beeldpunt + Pixel + beeldpunt - &Width: - &Breedte: + &Width: + &Breedte: - Current screen - Huidige beeldscherm + Current screen + Huidige beeldscherm - Icon 32 x 32 - Pictogram 32 x 32 + Icon 32 x 32 + Pictogram 32 x 32 - Icon 64 x 64 - Pictogram 64 x 64 + Icon 64 x 64 + Pictogram 64 x 64 - Icon 128 x 128 - Pictogram 128 x 128 + Icon 128 x 128 + Pictogram 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA + 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA + 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standaard formaten: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + Hoogte: - Standard sizes: - Standaard formaten: + Aspect ratio: + Beeldverhouding: - &Height: - Hoogte: + &Screen + &Scherm - Aspect ratio: - Beeldverhouding: + Alt+S + Alt+S - &Screen - &Scherm + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Bijschrift - Alt+1 - Alt+1 + Insert MIBA + MIBA-informatie toevoegen - Image comment - Bijschrift + Insert comment + Opmerking invoegen - - Insert MIBA - MIBA-informatie toevoegen - - - Insert comment - Opmerking invoegen - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Macro-opname-instellingen + Macro recording settings + Macro-opname-instellingen - Logging Commands - Loggen van commando's + Logging Commands + Loggen van commando's - Show script commands in python console - Toon scriptopdrachten in python console + Show script commands in python console + Toon scriptopdrachten in python console - Log all commands issued by menus to file: - Log alle commando's veroorzaakt door menu's naar bestand: + Log all commands issued by menus to file: + Log alle commando's veroorzaakt door menu's naar bestand: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Gui commando's + Gui commands + Gui commando's - Recording GUI commands - GUI-commando's opnemen + Recording GUI commands + GUI-commando's opnemen - Record as comment - Opnemen als commentaar + Record as comment + Opnemen als commentaar - Macro path - Macro-pad + Macro path + Macro-pad - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Eenheden + Units + Eenheden - Units settings - Instellingen van de eenheden + Units settings + Instellingen van de eenheden - Standard (mm/kg/s/degree) - Standaard (mm/kg/s/graad) + Standard (mm/kg/s/degree) + Standaard (mm/kg/s/graad) - MKS (m/kg/s/degree) - MKS (m/kg/s/graad) + MKS (m/kg/s/degree) + MKS (m/kg/s/graad) - Magnitude - Omvang + Magnitude + Omvang - Unit - Eenheid + Unit + Eenheid - User system: - User system: + User system: + User system: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Kleuren + Colors + Kleuren - Selection - Selectie + Selection + Selectie - Enable selection highlighting - Activeer selectie markeren + Enable selection highlighting + Activeer selectie markeren - Enable preselection highlighting - Activeer voorselectie markeren + Enable preselection highlighting + Activeer voorselectie markeren - Background color - Achtergrond + Background color + Achtergrond - Middle color - Middelste kleur + Middle color + Middelste kleur - Color gradient - Kleurverloop + Color gradient + Kleurverloop - Simple color - Eenvoudige kleur + Simple color + Eenvoudige kleur - Default colors - Standaardkleuren + Default colors + Standaardkleuren - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - De kleur van de bewerkte randen + The color of edges being edited + De kleur van de bewerkte randen - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Tip van de dag + Tip of the day + Tip van de dag - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Wist u dat...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Wist u dat...</font></font></b> - &Show tips at start up - &Toon tips bij opstarten + &Show tips at start up + &Toon tips bij opstarten - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Volgende Tip + &Next Tip + &Volgende Tip - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Sluiten + &Close + &Sluiten - Alt+C - Alt+C + Alt+C + Alt+C - - '' + + '' - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Downloaden is mislukt:%1 + Downloaden is mislukt:%1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Als u meer wilt weten over FreeCAD moet je naar %1 gaan of het help-item drukken in het helpmenu. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Als u meer wilt weten over FreeCAD moet je naar %1 gaan of het help-item drukken in het helpmenu. - - + + Gui::Dialog::DockablePlacement - Placement - Plaatsing + Placement + Plaatsing - - + + Gui::Dialog::DownloadDialog - Canceled. - Geannuleerd. + Canceled. + Geannuleerd. - - + + Download + + + + Cancel + Annuleren + + + Close + Sluiten + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Downloaden is mislukt:%1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Pictogram toevoegen + Add icon + Pictogram toevoegen - - + + Gui::Dialog::InputVector - Input vector - Input vector + Input vector + Input vector - Vector - Vector + Vector + Vector - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Muisknoppen + Mouse buttons + Muisknoppen - Configuration - Configuratie + Configuration + Configuratie - Selection: - Selectie: + Selection: + Selectie: - Panning - Verplaatsen + Panning + Verplaatsen - Rotation: - Rotatie: + Rotation: + Rotatie: - Zooming: - Zoomen: + Zooming: + Zoomen: - - + + Gui::Dialog::ParameterGroup - Expand - Uitklappen + Expand + Uitklappen - Add sub-group - Subgroep toevoegen + Add sub-group + Subgroep toevoegen - Remove group - Groep verwijderen + Remove group + Groep verwijderen - Rename group - Groep hernoemen + Rename group + Groep hernoemen - Export parameter - Export parameter + Export parameter + Export parameter - Import parameter - Import parameter + Import parameter + Import parameter - Collapse - Samenvouwen + Collapse + Samenvouwen - Do really want to remove this parameter group? - Wilt u deze parameter-groep echt verwijderen? + Do really want to remove this parameter group? + Wilt u deze parameter-groep echt verwijderen? - Existing sub-group - Bestaande subgroep + Existing sub-group + Bestaande subgroep - The sub-group '%1' already exists. - De subgroep '%1' bestaat reeds. + The sub-group '%1' already exists. + De subgroep '%1' bestaat reeds. - Export parameter to file - Exporteer parameters naar bestand + Export parameter to file + Exporteer parameters naar bestand - XML (*.FCParam) - XML(*.FCParam) + XML (*.FCParam) + XML(*.FCParam) - Import parameter from file - Importeer parameters uit bestand + Import parameter from file + Importeer parameters uit bestand - Import Error - Import fout + Import Error + Import fout - Reading from '%1' failed. - Het lezen van '%1' is mislukt. + Reading from '%1' failed. + Het lezen van '%1' is mislukt. - - + + Gui::Dialog::ParameterValue - Change value - Waarde wijzigen + Change value + Waarde wijzigen - Remove key - Verwijder de sleutel + Remove key + Verwijder de sleutel - Rename key - Wijzig de naam van de sleutel + Rename key + Wijzig de naam van de sleutel - New - Nieuw + New + Nieuw - New string item - Nieuwe tekenreeks + New string item + Nieuwe tekenreeks - New float item - Nieuwe decimale waarde + New float item + Nieuwe decimale waarde - New integer item - Nieuw geheel getal + New integer item + Nieuw geheel getal - New unsigned item - Nieuw positief geheel getal + New unsigned item + Nieuw positief geheel getal - New Boolean item - Nieuwe booleaanse waarde + New Boolean item + Nieuwe booleaanse waarde - Existing item - Bestaand item + Existing item + Bestaand item - The item '%1' already exists. - Item '%1' bestaat reeds. + The item '%1' already exists. + Item '%1' bestaat reeds. - - + + Gui::Dialog::Placement - Placement - Plaatsing + Placement + Plaatsing - OK - OK + OK + OK - Translation: - Verplaatsing: + Translation: + Verplaatsing: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotatie: + Rotation: + Rotatie: - Angle: - Hoek: + Angle: + Hoek: - Axis: - Assen: + Axis: + Assen: - Center: - Middelpunt: + Center: + Middelpunt: - Pitch: - Steiging: + Pitch: + Steiging: - Roll: - Rol: + Roll: + Rol: - Yaw: - Yaw: + Yaw: + Yaw: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler angles + Euler angles + Euler angles - Apply placement changes immediately - Verplaatsingen onmiddellijk doorvoeren + Apply placement changes immediately + Verplaatsingen onmiddellijk doorvoeren - Apply incremental changes to object placement - Incrementele verplaatsingen toepassen op object + Apply incremental changes to object placement + Incrementele verplaatsingen toepassen op object - Apply - Toepassen + Apply + Toepassen - Reset - Herstel + Reset + Herstel - Close - Sluiten + Close + Sluiten - - + + Gui::Dialog::PrintModel - Button - Knop + Button + Knop - Command - Commando + Command + Commando - - + + Gui::Dialog::SceneInspector - Dialog - Dialoog + Dialog + Dialoog - Close - Sluiten + Close + Sluiten - Refresh - Vernieuwen + Refresh + Vernieuwen - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor Tree + Inventor Tree + Inventor Tree - Nodes - Knopen + Nodes + Knopen - - + + Gui::Dialog::TextureMapping - Texture - Textuur + Texture + Textuur - Texture mapping - Textuurafbeelden + Texture mapping + Textuurafbeelden - Global - Overal + Global + Overal - Environment - Omgeving + Environment + Omgeving - Image files (%1) - Afbeeldingsbestanden (%1) + Image files (%1) + Afbeeldingsbestanden (%1) - No image - Geen afbeelding + No image + Geen afbeelding - The specified file is not a valid image file. - Het opgegeven bestand is niet een geldig afbeeldingsbestand. + The specified file is not a valid image file. + Het opgegeven bestand is niet een geldig afbeeldingsbestand. - No 3d view - Geen 3D-weergave + No 3d view + Geen 3D-weergave - No active 3d view found. - Geen actieve 3D-weergave gevonden. + No active 3d view found. + Geen actieve 3D-weergave gevonden. - - + + Gui::Dialog::Transform - Cancel - Annuleren + Cancel + Annuleren - Transform - Transformeren + Transform + Transformeren - - + + Gui::DlgTreeWidget - Dialog - Dialoog + Dialog + Dialoog - Items - Items + Items + Items - OK - OK + OK + OK - Cancel - Annuleren + Cancel + Annuleren - - '' + + '' - - + + Gui::DockWnd::CombiView - CombiView - Combi-aanzicht + CombiView + Combi-aanzicht - Project - Project + Project + Project - Tasks - Taken + Tasks + Taken - - + + Gui::DockWnd::HelpView - Previous - Vorige + Previous + Vorige - Next - Volgende + Next + Volgende - Home - Startpagina + Home + Startpagina - Open - Openen + Open + Openen - Open file - Bestand openen + Open file + Bestand openen - All HTML files (*.html *.htm) - Alle HTML-bestanden (*. html *. htm) + All HTML files (*.html *.htm) + Alle HTML-bestanden (*. html *. htm) - External browser - Externe browser + External browser + Externe browser - No external browser found. Specify in preferences, please - Geen externe browser gevonden. Bij opties instellen, + No external browser found. Specify in preferences, please + Geen externe browser gevonden. Bij opties instellen, - Starting of %1 failed - Starten van '%1' is mislukt + Starting of %1 failed + Starten van '%1' is mislukt - - + + Gui::DockWnd::PropertyDockView - Property View - Eigenschappen-aanzicht + Property View + Eigenschappen-aanzicht - - + + Gui::DockWnd::ReportOutput - Logging - Loggen + Logging + Loggen - Warning - Waarschuwing + Warning + Waarschuwing - Error - Fout + Error + Fout - Options - Opties + Options + Opties - Clear - Wissen + Clear + Wissen - Save As... - Opslaan als... + Save As... + Opslaan als... - Save Report Output - Rapport-uitvoer opslaan + Save Report Output + Rapport-uitvoer opslaan - Plain Text Files (*.txt *.log) - Eenvoudige tekstbestanden (*.txt *.log) + Plain Text Files (*.txt *.log) + Eenvoudige tekstbestanden (*.txt *.log) - Go to end - Ga naar het einde + Go to end + Ga naar het einde - Redirect Python output - Python-uitvoer omleiden + Redirect Python output + Python-uitvoer omleiden - Redirect Python errors - Omleiden van Python fouten + Redirect Python errors + Omleiden van Python fouten - - + + Gui::DockWnd::ReportView - Output - Uitvoer + Output + Uitvoer - Python console - Python Console + Python console + Python Console - - + + Gui::DockWnd::SelectionView - Property View - Eigenschappen-aanzicht + Property View + Eigenschappen-aanzicht - - + + Gui::DockWnd::TaskPanelView - Task View - Taakaanzicht + Task View + Taakaanzicht - - + + Gui::DockWnd::TextBrowser - Could not open file. - Kon bestand niet openen. + Could not open file. + Kon bestand niet openen. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - U hebt geprobeerd om het adres %1 te benaderen welke op dit moment niet beschikbaar is. Zorg ervoor dat de URL bestaat en probeer de pagina te herladen. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + U hebt geprobeerd om het adres %1 te benaderen welke op dit moment niet beschikbaar is. Zorg ervoor dat de URL bestaat en probeer de pagina te herladen. - Connecting to %1 - Verbinden met %1 + Connecting to %1 + Verbinden met %1 - Sending to %1 - Verzenden naar %1 + Sending to %1 + Verzenden naar %1 - Reading from %1 - Lezen van %1 + Reading from %1 + Lezen van %1 - Download failed: %1. - Downloaden is mislukt:%1. + Download failed: %1. + Downloaden is mislukt:%1. - Previous - Vorige + Previous + Vorige - Forward - Vooruit + Forward + Vooruit - Home - Startpagina + Home + Startpagina - Refresh - Vernieuwen + Refresh + Vernieuwen - Copy - Kopiëren + Copy + Kopiëren - Select all - Alles selecteren + Select all + Alles selecteren - No description for - Geen omschrijving voor + No description for + Geen omschrijving voor - - + + Gui::DocumentModel - Application - Applicatie + Application + Applicatie - Labels & Attributes - Labels & Kenmerken + Labels & Attributes + Labels & Kenmerken - - + + Gui::EditorView - Modified file - Gewijzigd bestand + Modified file + Gewijzigd bestand - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. Dit is gewijzigd buiten de source-editor om. Wilt u het herladen? + %1. Dit is gewijzigd buiten de source-editor om. Wilt u het herladen? - Unsaved document - Niet-opgeslagen document + Unsaved document + Niet-opgeslagen document - The document has been modified. + The document has been modified. Do you want to save your changes? - Het document is gewijzigd. + Het document is gewijzigd. Wilt u uw wijzigingen opslaan? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD macro(*.FCMacro);;Python(*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD macro(*.FCMacro);;Python(*.py) - Export PDF - Exporteren als PDF + Export PDF + Exporteren als PDF - PDF file (*.pdf) - PDF-bestand (*. pdf) + PDF file (*.pdf) + PDF-bestand (*. pdf) - untitled[*] - naamloos[*] + untitled[*] + naamloos[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - %1 karakters verwijderd + %1 chars removed + %1 karakters verwijderd - %1 chars added - %1 karakters toegevoegd + %1 chars added + %1 karakters toegevoegd - Formatted - Geformatteerd + Formatted + Geformatteerd - - + + Gui::FileChooser - Select a file - Selecteer een bestand + Select a file + Selecteer een bestand - Select a directory - Kies een map + Select a directory + Kies een map - - + + Gui::FileDialog - Save as - Opslaan als + Save as + Opslaan als - Open - Openen + Open + Openen - - + + Gui::FileOptionsDialog - Extended - Uitgebreid + Extended + Uitgebreid - All files (*.*) - Alle bestanden (*.*) + All files (*.*) + Alle bestanden (*.*) - - + + Gui::Flag - Top left - Linksboven + Top left + Linksboven - Bottom left - Linksonder + Bottom left + Linksonder - Top right - Rechtsboven + Top right + Rechtsboven - Bottom right - Rechts Onder + Bottom right + Rechts Onder - Remove - Verwijderen + Remove + Verwijderen - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Druk op CTRL en de linker muisknop + Press CTRL and left mouse button + Druk op CTRL en de linker muisknop - Press middle mouse button - Druk op de middelste muisknop + Press middle mouse button + Druk op de middelste muisknop - Press left mouse button - Druk op de linker muisknop + Press left mouse button + Druk op de linker muisknop - Scroll middle mouse button - Scroll middelste muisknop + Scroll middle mouse button + Scroll middelste muisknop - - + + Gui::LocationDialog - Wrong direction - Verkeerde richting + Wrong direction + Verkeerde richting - Direction must not be the null vector - Richting mag niet de nul-vector zijn + Direction must not be the null vector + Richting mag niet de nul-vector zijn - X - x + X + x - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Door gebruiker gedefinieerd... + User defined... + Door gebruiker gedefinieerd... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Macro's + Macros + Macro's - - + + Gui::MainWindow - Dimension - Afmeting + Dimension + Afmeting - Ready - Gereed + Ready + Gereed - Toggles this toolbar - Schakelt deze werkbalk in/uit + Toggles this toolbar + Schakelt deze werkbalk in/uit - Toggles this dockable window - Schakelt dit dokbare venster in/uit + Toggles this dockable window + Schakelt dit dokbare venster in/uit - Close All - Alles sluiten + Close All + Alles sluiten - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Download gestart... + Download gestart... - - + + Gui::ProgressBar - Remaining: %1 - Resterend: %1 + Remaining: %1 + Resterend: %1 - Aborting - Bezig met afbreken + Aborting + Bezig met afbreken - Do you really want to abort the operation? - Wilt u echt de bewerking afbreken? + Do you really want to abort the operation? + Wilt u echt de bewerking afbreken? - - + + Gui::ProgressDialog - Remaining: %1 - Resterend: %1 + Remaining: %1 + Resterend: %1 - Aborting - Bezig met afbreken + Aborting + Bezig met afbreken - Do you really want to abort the operation? - Wilt u echt de bewerking afbreken? + Do you really want to abort the operation? + Wilt u echt de bewerking afbreken? - - + + Gui::PropertyEditor::PropertyModel - Property - Eigenschap + Property + Eigenschap - Value - Waarde + Value + Waarde - - + + Gui::PropertyView - View - Aanzicht + View + Aanzicht - Data - Data + Data + Data - - + + Gui::PythonConsole - System exit - Systeem afsluiten + System exit + Systeem afsluiten - The application is still running. + The application is still running. Do you want to exit without saving your data? - De toepassing is nog steeds actief. Wilt u afsluiten zonder het opslaan van uw gegevens? + De toepassing is nog steeds actief. Wilt u afsluiten zonder het opslaan van uw gegevens? - Python console - Python Console + Python console + Python Console - Unhandled PyCXX exception. - Niet-verwerkte uitzondering voor PyCXX. + Unhandled PyCXX exception. + Niet-verwerkte uitzondering voor PyCXX. - Unhandled FreeCAD exception. - Niet-verwerkte uitzondering voor FreeCAD. + Unhandled FreeCAD exception. + Niet-verwerkte uitzondering voor FreeCAD. - Unhandled unknown C++ exception. - Niet-verwerkte uitzondering voor onbekende C++. + Unhandled unknown C++ exception. + Niet-verwerkte uitzondering voor onbekende C++. - &Copy command - Kopieer commando + &Copy command + Kopieer commando - &Copy history - Kopieer geschiedenis + &Copy history + Kopieer geschiedenis - Save history as... - Geschiedenis opslaan als... + Save history as... + Geschiedenis opslaan als... - Insert file name... - Bestandsnaam invoeren... + Insert file name... + Bestandsnaam invoeren... - Save History - Geschiedenis opslaan + Save History + Geschiedenis opslaan - Macro Files (*.FCMacro *.py) - Macro-bestanden (*. FCMacro *. py) + Macro Files (*.FCMacro *.py) + Macro-bestanden (*. FCMacro *. py) - Insert file name - Bestandsnaam invoeren + Insert file name + Bestandsnaam invoeren - All Files (*.*) - Alle bestanden (*.*) + All Files (*.*) + Alle bestanden (*.*) - Python Input Dialog - Pythoninvoer-dialoog + Python Input Dialog + Pythoninvoer-dialoog - Unhandled std C++ exception. - Onverwerkte std C++ uitzondering. + Unhandled std C++ exception. + Onverwerkte std C++ uitzondering. - Word wrap - Word wrap + Word wrap + Word wrap - &Copy - &Kopiëren + &Copy + &Kopiëren - &Paste - &Plakken + &Paste + &Plakken - Select All - Alles selecteren + Select All + Alles selecteren - - + + Clear console + + + + Gui::PythonEditor - Comment - Commentaar + Comment + Commentaar - Uncomment - Verwijder commentaar + Uncomment + Verwijder commentaar - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Wissen + Clear + Wissen - - + + Gui::RecentFilesAction - Open file %1 - Open bestand %1 + Open file %1 + Open bestand %1 - File not found - Bestand niet gevonden + File not found + Bestand niet gevonden - The file '%1' cannot be opened. - Het bestand '%1' kan niet worden geopend. + The file '%1' cannot be opened. + Het bestand '%1' kan niet worden geopend. - - + + Gui::SelectModule - Select module - Module selecteren + Select module + Module selecteren - Open %1 as - Open %1 als + Open %1 as + Open %1 als - Select - Selecteer + Select + Selecteer - - + + Gui::StdCmdDescription - Help - Help + Help + Help - Des&cription - Oms&chrijving + Des&cription + Oms&chrijving - Long description of commands - Lange beschrijving van de commando's + Long description of commands + Lange beschrijving van de commando's - - + + Gui::StdCmdDownloadOnlineHelp - Help - Help + Help + Help - Download online help - Download online-help + Download online help + Download online-help - Download %1's online help - Download %1's online hulp + Download %1's online help + Download %1's online hulp - Non-existing directory - Niet-bestaande map + Non-existing directory + Niet-bestaande map - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - De map '%1' bestaat niet. + De map '%1' bestaat niet. Wilt u een bestaande map opgeven? - Missing permission - Ontbrekende toestemming + Missing permission + Ontbrekende toestemming - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - U hebt geen toestemming om te schrijven naar '%1' + U hebt geen toestemming om te schrijven naar '%1' Wilt u een andere map opgeven? - Stop downloading - Stop met downloaden + Stop downloading + Stop met downloaden - - + + Gui::StdCmdPythonHelp - Tools - Gereedschap + Tools + Gereedschap - Python Modules - Python modules + Python Modules + Python modules - Opens a browser to show the Python modules - Opent een browser om de Python-modules te tonen + Opens a browser to show the Python modules + Opent een browser om de Python-modules te tonen - - + + Gui::TaskBoxAngle - Angle - Hoek + Angle + Hoek - - + + Gui::TaskBoxPosition - Position - Positie + Position + Positie - - + + Gui::TaskView::TaskAppearance - Display mode: - Weergavemodus: + Display mode: + Weergavemodus: - Plot mode: - Plot modus: + Plot mode: + Plot modus: - Point size: - Puntgrootte: + Point size: + Puntgrootte: - Line width: - Lijndikte: + Line width: + Lijndikte: - Transparency: - Transparantie: + Transparency: + Transparantie: - Appearance - Uiterlijk + Appearance + Uiterlijk - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Bewerken + Edit + Bewerken - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Uiterlijk + Appearance + Uiterlijk - ... - ... + ... + ... - edit selection - selectie bewerken + edit selection + selectie bewerken - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Druk op de linker muisknop + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Engels + English + Engels - - + + Gui::TreeDockWidget - Tree view - Boomstructuurweergave + Tree view + Boomstructuurweergave - - + + Gui::TreeWidget - Create group... - Groep maken... + Create group... + Groep maken... - Create a group - Maak een groep + Create a group + Maak een groep - Group - Groep + Group + Groep - Rename - Hernoemen + Rename + Hernoemen - Rename object - Object hernoemen + Rename object + Object hernoemen - Labels & Attributes - Labels & Kenmerken + Labels & Attributes + Labels & Kenmerken - Application - Applicatie + Application + Applicatie - Finish editing - Bewerken gereed + Finish editing + Bewerken gereed - Finish editing object - Beëindig bewerken object + Finish editing object + Beëindig bewerken object - Activate document - Activeer document + Activate document + Activeer document - Activate document %1 - Activeer document %1 + Activate document %1 + Activeer document %1 - - + + Gui::View3DInventor - Export PDF - Exporteren als PDF + Export PDF + Exporteren als PDF - PDF file (*.pdf) - PDF-bestand (*. pdf) + PDF file (*.pdf) + PDF-bestand (*. pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Selecteer de '%1' werkbank + Select the '%1' workbench + Selecteer de '%1' werkbank - - + + Position - Form - Form + Form + Form - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Raster kleven in + Grid Snap in + Raster kleven in - - + + QDockWidget - Tree view - Boomstructuurweergave + Tree view + Boomstructuurweergave - Property view - Eigenschappen-aanzicht + Property view + Eigenschappen-aanzicht - Selection view - Selectieaanzicht + Selection view + Selectieaanzicht - Report view - Rapportaanzicht + Report view + Rapportaanzicht - Task View - Taakaanzicht + Task View + Taakaanzicht - Combo View - Combi aanzicht + Combo View + Combi aanzicht - Toolbox - Toolbox + Toolbox + Toolbox - Python console - Python Console + Python console + Python Console - Display properties - Weergave eigenschappen + Display properties + Weergave eigenschappen - - + + QObject - General - Algemeen + General + Algemeen - Display - Weergave + Display + Weergave - Unknown filetype - Onbekend bestandstype + Unknown filetype + Onbekend bestandstype - Cannot open unknown filetype: %1 - Kan onbekende bestandstype niet openen: %1 + Cannot open unknown filetype: %1 + Kan onbekende bestandstype niet openen: %1 - Cannot save to unknown filetype: %1 - Kan onbekende bestandstype niet opslaan: %1 + Cannot save to unknown filetype: %1 + Kan onbekende bestandstype niet opslaan: %1 - Workbench failure - Werkbank falen + Workbench failure + Werkbank falen - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Onmogelijk om Qt Assistant (%1) te start + Unable to launch Qt Assistant (%1) + Onmogelijk om Qt Assistant (%1) te start - Exception - Uitzondering + Exception + Uitzondering - Open document - Document openen + Open document + Document openen - Import file - Bestand importeren + Import file + Bestand importeren - Export file - Bestand exporteren + Export file + Bestand exporteren - Printing... - Afdrukken... + Printing... + Afdrukken... - Cannot load workbench - Kan werkbank niet laden + Cannot load workbench + Kan werkbank niet laden - A general error occurred while loading the workbench - Een algemene fout is opgetreden tijdens het laden van de werkbank + A general error occurred while loading the workbench + Een algemene fout is opgetreden tijdens het laden van de werkbank - File not found - Bestand niet gevonden + File not found + Bestand niet gevonden - Cannot open file %1 - Kan bestand %1 niet openen + Cannot open file %1 + Kan bestand %1 niet openen - Save views... - Aanzichten opslaan... + Save views... + Aanzichten opslaan... - Load views... - Laad aanzichten... + Load views... + Laad aanzichten... - Freeze view - Bevries aanzicht + Freeze view + Bevries aanzicht - Clear views - Aanzichten wissen + Clear views + Aanzichten wissen - Restore view &%1 - Herstel weergave &%1 + Restore view &%1 + Herstel weergave &%1 - Save frozen views - Save frozen views + Save frozen views + Save frozen views - Frozen views (*.cam) - Bevroren aanzichten (*.cam) + Frozen views (*.cam) + Bevroren aanzichten (*.cam) - Restore views - Herstel aanzichten + Restore views + Herstel aanzichten - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Restore frozen views - Restore frozen views + Restore frozen views + Restore frozen views - Cannot open file '%1'. - Kan bestand '%1' niet openen. + Cannot open file '%1'. + Kan bestand '%1' niet openen. - Docked - Docked + Docked + Docked - Undocked - Undocked + Undocked + Undocked - Fullscreen - Schermvullend + Fullscreen + Schermvullend - files - Bestanden + files + Bestanden - Save picture - Afbeelding opslaan + Save picture + Afbeelding opslaan - New sub-group - Nieuwe subgroep + New sub-group + Nieuwe subgroep - Enter the name: - Voer de naam in: + Enter the name: + Voer de naam in: - New text item - Nieuw tekstitem + New text item + Nieuw tekstitem - Enter your text: - Voer uw tekst in: + Enter your text: + Voer uw tekst in: - New integer item - Nieuw geheel getal + New integer item + Nieuw geheel getal - Enter your number: - Geef uw nummer: + Enter your number: + Geef uw nummer: - New unsigned item - Nieuw positief geheel getal + New unsigned item + Nieuw positief geheel getal - New float item - Nieuwe decimale waarde + New float item + Nieuwe decimale waarde - New Boolean item - Nieuwe booleaanse waarde + New Boolean item + Nieuwe booleaanse waarde - Choose an item: - Kies een item: + Choose an item: + Kies een item: - Rename group - Groep hernoemen + Rename group + Groep hernoemen - The group '%1' cannot be renamed. - De groep '%1' kan niet worden hernoemd. + The group '%1' cannot be renamed. + De groep '%1' kan niet worden hernoemd. - Existing group - Bestaande groep + Existing group + Bestaande groep - The group '%1' already exists. - De groep '%1' bestaat al. + The group '%1' already exists. + De groep '%1' bestaat al. - Change value - Waarde wijzigen + Change value + Waarde wijzigen - Save document under new filename... - Document opslaan onder een nieuwe bestandsnaam... + Save document under new filename... + Document opslaan onder een nieuwe bestandsnaam... - Saving aborted - Opslaan afgebroken + Saving aborted + Opslaan afgebroken - Unsaved document - Niet-opgeslagen document + Unsaved document + Niet-opgeslagen document - Save document before close? - Document opslaan voor het sluiten? + Save document before close? + Document opslaan voor het sluiten? - Save Macro - Macro opslaan + Save Macro + Macro opslaan - Finish - Voltooien + Finish + Voltooien - Clear - Wissen + Clear + Wissen - Cancel - Annuleren + Cancel + Annuleren - Inner - binnenste + Inner + binnenste - Outer - buitenste + Outer + buitenste - No Browser - Geen browser + No Browser + Geen browser - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Kan uw browser niet openen. + Kan uw browser niet openen. Open een browservenster en typ: http://localhost:%1. - No Server - Geen Server + No Server + Geen Server - Unable to start the server to port %1: %2. - Kan de server met poort %1 niet starten: %2. + Unable to start the server to port %1: %2. + Kan de server met poort %1 niet starten: %2. - Unable to open your system browser. - Kan uw standaard browser niet starten. + Unable to open your system browser. + Kan uw standaard browser niet starten. - Options... - Opties... + Options... + Opties... - Out of memory - Onvoldoende geheugen + Out of memory + Onvoldoende geheugen - Not enough memory available to display the data. - Niet genoeg geheugen beschikbaar om de gegevens weer te geven. + Not enough memory available to display the data. + Niet genoeg geheugen beschikbaar om de gegevens weer te geven. - Cannot find file %1 - Kan bestand %1 niet vinden + Cannot find file %1 + Kan bestand %1 niet vinden - Cannot find file %1 neither in %2 nor in %3 - Kan bestand %1 niet vinden noch in %2, noch in %3 + Cannot find file %1 neither in %2 nor in %3 + Kan bestand %1 niet vinden noch in %2, noch in %3 - Save %1 Document - Document %1 opslaan + Save %1 Document + Document %1 opslaan - %1 document (*.FCStd) - %1 document (*.FCStd) + %1 document (*.FCStd) + %1 document (*.FCStd) - Save As - Opslaan als + Save As + Opslaan als - %1 already exists. + %1 already exists. Do you want to replace it? - %1 bestaat al. Wilt u het vervangen? + %1 bestaat al. Wilt u het vervangen? - Document not closable - Document niet te sluiten + Document not closable + Document niet te sluiten - The document is not closable for the moment. - Het document is op dit moment niet te sluiten. + The document is not closable for the moment. + Het document is op dit moment niet te sluiten. - No OpenGL - Geen OpenGL + No OpenGL + Geen OpenGL - This system does not support OpenGL - Dit systeem biedt geen ondersteuning voor OpenGL + This system does not support OpenGL + Dit systeem biedt geen ondersteuning voor OpenGL - Help - Help + Help + Help - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Niet in staat om documenten te laden. + Niet in staat om documenten te laden. Om het te kunnen laden is Qt 4.4 of hoger nodig. - %1 Help - %1 Help + %1 Help + %1 Help - Exporting PDF... - Exporteren van PDF ... + Exporting PDF... + Exporteren van PDF ... - Wrong selection - Verkeerde selectie + Wrong selection + Verkeerde selectie - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Slechts één object geselecteerd. Selecteer twee objecten. + Slechts één object geselecteerd. Selecteer twee objecten. Let op, het maakt uit waar je klikt. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Selecteer twee objecten. + Selecteer twee objecten. Let op, het maakt uit waar je klikt. - New boolean item - New boolean item + New boolean item + New boolean item - Navigation styles - Navigatie stijlen + Navigation styles + Navigatie stijlen - %1 navigation - %1 navigatie + %1 navigation + %1 navigatie - Move annotation - Move annotation + Move annotation + Move annotation - Transform - Transformeren + Transform + Transformeren - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Standaard-aanzicht + + + Box selection + + + + StdCmdAbout - Help - Help + Help + Help - &About %1 - &Info over %1 + &About %1 + &Info over %1 - About %1 - Info over %1 + About %1 + Info over %1 - - + + StdCmdAboutQt - Help - Help + Help + Help - About &Qt - Info over Qt + About &Qt + Info over Qt - About Qt - Info over Qt + About Qt + Info over Qt - - + + StdCmdActivateNextWindow - Window - Venster + Window + Venster - Ne&xt - Volge&nde + Ne&xt + Volge&nde - Activate next window - Activeer volgende venster + Activate next window + Activeer volgende venster - - + + StdCmdActivatePrevWindow - Window - Venster + Window + Venster - Pre&vious - &Vorige + Pre&vious + &Vorige - Activate previous window - Activeer vorige venster + Activate previous window + Activeer vorige venster - - + + + StdCmdAlignment + + Edit + Bewerken + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Venster + Window + Venster - Arrange &Icons - Schikken p&ictogrammen + Arrange &Icons + Schikken p&ictogrammen - Arrange Icons - Schikken pictogrammen + Arrange Icons + Schikken pictogrammen - - + + StdCmdAxisCross - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Venster + Window + Venster - &Cascade - &Trapsgewijs + &Cascade + &Trapsgewijs - Tile pragmatic - Tile pragmatic + Tile pragmatic + Tile pragmatic - - + + StdCmdCloseActiveWindow - Window - Venster + Window + Venster - Cl&ose - &Sluiten + Cl&ose + &Sluiten - Close active window - Actieve venster sluiten + Close active window + Actieve venster sluiten - - + + StdCmdCloseAllWindows - Window - Venster + Window + Venster - Close Al&l - A&lles sluiten + Close Al&l + A&lles sluiten - Close all windows - Alle vensters sluiten + Close all windows + Alle vensters sluiten - - + + StdCmdCommandLine - Tools - Gereedschap + Tools + Gereedschap - Start command &line... - Start command &line... + Start command &line... + Start command &line... - Opens the command line in the console - Opens the command line in the console + Opens the command line in the console + Opens the command line in the console - - + + StdCmdCopy - Edit - Bewerken + Edit + Bewerken - C&opy - K&opiëren + C&opy + K&opiëren - Copy operation - Kopieer bewerking + Copy operation + Kopieer bewerking - - + + StdCmdCut - Edit - Bewerken + Edit + Bewerken - &Cut - &Knippen + &Cut + &Knippen - Cut out - Uitsnijden + Cut out + Uitsnijden - - + + StdCmdDDuplicateSelection - Edit - Bewerken + Edit + Bewerken - Duplicate selection - Dupliceer selectie + Duplicate selection + Dupliceer selectie - Put duplicates of the selected objects to the active document - Duplicaten van de geselecteerde objecten aan het actieve document toevoegen + Put duplicates of the selected objects to the active document + Duplicaten van de geselecteerde objecten aan het actieve document toevoegen - - + + StdCmdDelete - Edit - Bewerken + Edit + Bewerken - &Delete - &Verwijderen + &Delete + &Verwijderen - Deletes the selected objects - Wist de geselecteerde objecten + Deletes the selected objects + Wist de geselecteerde objecten - - + + StdCmdDemoMode - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - View turntable... - View turntable... + View turntable... + View turntable... - View turntable - View turntable + View turntable + View turntable - - + + StdCmdDlgCustomize - Tools - Gereedschap + Tools + Gereedschap - Cu&stomize... - Cu&stomize... + Cu&stomize... + Cu&stomize... - Customize toolbars and command bars - Werkbalken en opdrachtbalken aanpassen + Customize toolbars and command bars + Werkbalken en opdrachtbalken aanpassen - - + + StdCmdDlgMacroExecute - Macros ... - Macro's ... + Macros ... + Macro's ... - Opens a dialog to let you execute a recorded macro - Opent een dialoogvenster om u een opgenomen macro te laten uitvoeren + Opens a dialog to let you execute a recorded macro + Opent een dialoogvenster om u een opgenomen macro te laten uitvoeren - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Macro uitvoeren + Execute macro + Macro uitvoeren - Execute the macro in the editor - De macro uitvoeren in de editor + Execute the macro in the editor + De macro uitvoeren in de editor - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Macro opnemen... + &Macro recording ... + &Macro opnemen... - Opens a dialog to record a macro - Opent een dialoogvenster om een macro op te nemen + Opens a dialog to record a macro + Opent een dialoogvenster om een macro op te nemen - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Gereedschap + Tools + Gereedschap - E&dit parameters ... - E&dit parameters... + E&dit parameters ... + E&dit parameters... - Opens a Dialog to edit the parameters - Opent een dialoogvenster om de parameters te bewerken + Opens a Dialog to edit the parameters + Opent een dialoogvenster om de parameters te bewerken - - + + StdCmdDlgPreferences - Tools - Gereedschap + Tools + Gereedschap - &Preferences ... - &Opties... + &Preferences ... + &Opties... - Opens a Dialog to edit the preferences - Opent een dialoogvenster om de voorkeuren bewerken + Opens a Dialog to edit the preferences + Opent een dialoogvenster om de voorkeuren bewerken - - + + StdCmdDockViewMenu - View - Aanzicht + View + Aanzicht - Vie&ws - Aanzichten + Vie&ws + Aanzichten - Toggles this window - Schakelt dit venster + Toggles this window + Schakelt dit venster - - + + StdCmdDrawStyle - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Bewerken + + + Duplicate selection + Dupliceer selectie + + + Put duplicates of the selected objects to the active document + Duplicaten van de geselecteerde objecten aan het actieve document toevoegen + + + + StdCmdEdit + + Edit + Bewerken + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Bestand + File + Bestand - &Export... - &Exporteren... + &Export... + &Exporteren... - Export an object in the active document - Export een object uit het actieve document + Export an object in the active document + Export een object uit het actieve document - Supported formats - Ondersteunde formaten + Supported formats + Ondersteunde formaten - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Gereedschap + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Bestand + File + Bestand - &Recompute - &Herberekenen + &Recompute + &Herberekenen - Recompute feature or document - Herberekenen kenmerk of document + Recompute feature or document + Herberekenen kenmerk of document - - + + StdCmdFreeCADWebsite - Help - Help + Help + Help - FreeCAD Website - FreeCAD Webpagina + FreeCAD Website + FreeCAD Webpagina - The FreeCAD website - De FreeCAD webpagina + The FreeCAD website + De FreeCAD webpagina - - + + StdCmdFreezeViews - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Freeze display - Bevries aanzicht + Freeze display + Bevries aanzicht - Freezes the current view position - Bevriest het huidige aanzicht + Freezes the current view position + Bevriest het huidige aanzicht - - + + StdCmdHideObjects - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Hide all objects - Verberg alle objecten + Hide all objects + Verberg alle objecten - Hide all objects in the document - Verberg alle objecten in het document + Hide all objects in the document + Verberg alle objecten in het document - - + + StdCmdHideSelection - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Hide selection - Selectie verbergen + Hide selection + Selectie verbergen - Hide all selected objects - Verberg alle geselecteerde objecten + Hide all selected objects + Verberg alle geselecteerde objecten - - + + StdCmdImport - File - Bestand + File + Bestand - &Import... - &Importeren... + &Import... + &Importeren... - Import a file in the active document - Importeer een bestand in het actieve document + Import a file in the active document + Importeer een bestand in het actieve document - Supported formats - Ondersteunde formaten + Supported formats + Ondersteunde formaten - All files (*.*) - Alle bestanden (*.*) + All files (*.*) + Alle bestanden (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Debug macro + Debug macro + Debug macro - Start debugging of macro - Start debuggen van macro + Start debugging of macro + Start debuggen van macro - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Stap over + Step over + Stap over - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Stop debugging + Stop debugging + Stop debugging - Stop debugging of macro - Stop debuggen van macro + Stop debugging of macro + Stop debuggen van macro - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - S&top macro-opname + S&top macro recording + S&top macro-opname - Stop the macro recording session - Stop de macro-opname sessie + Stop the macro recording session + Stop de macro-opname sessie - - + + StdCmdMeasureDistance - View - Aanzicht + View + Aanzicht - Measure distance - Afstand meten + Measure distance + Afstand meten - - + + StdCmdMeasurementSimple - Tools - Gereedschap + Tools + Gereedschap - Mesure distance - Meet afstand + Mesure distance + Meet afstand - Measures distance between two selected objects - Meet afstand tussen twee geselecteerde objecten + Measures distance between two selected objects + Meet afstand tussen twee geselecteerde objecten - - + + Measure distance + Afstand meten + + + StdCmdMergeProjects - File - Bestand + File + Bestand - Merge project... - Voeg project samen... + Merge project... + Voeg project samen... - Merge project - Voeg project samen + Merge project + Voeg project samen - %1 document (*.fcstd) - %1 document(*.fcstd) + %1 document (*.fcstd) + %1 document(*.fcstd) - Cannot merge project with itself. - Kan project niet met zichzelf samenvoegen. + Cannot merge project with itself. + Kan project niet met zichzelf samenvoegen. - - + + StdCmdNew - File - Bestand + File + Bestand - &New - &Nieuw + &New + &Nieuw - Create a new empty document - Maak een nieuw leeg document + Create a new empty document + Maak een nieuw leeg document - - + + StdCmdOnlineHelp - Help - Help + Help + Help - Show help to the application - Toon help voor de applicatie + Show help to the application + Toon help voor de applicatie - - + + StdCmdOnlineHelpPython - Help - Help + Help + Help - Python Manuals - Python Handleidingen + Python Manuals + Python Handleidingen - Show the Python documentation - Toon de Python documentatie + Show the Python documentation + Toon de Python documentatie - - + + StdCmdOnlineHelpWebsite - Help - Help + Help + Help - Help Website - Help Webpagina + Help Website + Help Webpagina - The website where the help is maintained - De webpagina waar de help wordt onderhouden + The website where the help is maintained + De webpagina waar de help wordt onderhouden - - + + StdCmdOpen - File - Bestand + File + Bestand - &Open... - &Openen... + &Open... + &Openen... - Open a document or import files - Open een document of importeer bestanden + Open a document or import files + Open een document of importeer bestanden - Supported formats - Ondersteunde formaten + Supported formats + Ondersteunde formaten - All files (*.*) - Alle bestanden (*.*) + All files (*.*) + Alle bestanden (*.*) - - + + StdCmdPaste - Edit - Bewerken + Edit + Bewerken - &Paste - &Plakken + &Paste + &Plakken - Paste operation - Plakbewerking + Paste operation + Plakbewerking - - + + StdCmdPlacement - Edit - Bewerken + Edit + Bewerken - Placement... - Plaatsing... + Placement... + Plaatsing... - Place the selected objects - Plaats de geselecteerde objecten + Place the selected objects + Plaats de geselecteerde objecten - - + + StdCmdPrint - File - Bestand + File + Bestand - &Print... - Afdru&kken... + &Print... + Afdru&kken... - Print the document - Het document afdrukken + Print the document + Het document afdrukken - - + + StdCmdPrintPdf - File - Bestand + File + Bestand - &Export PDF... - &Exporteren als PDF... + &Export PDF... + &Exporteren als PDF... - Export the document as PDF - Exporteer het document als PDF + Export the document as PDF + Exporteer het document als PDF - - + + StdCmdPrintPreview - File - Bestand + File + Bestand - &Print preview... - &Afdrukvoorbeeld... + &Print preview... + &Afdrukvoorbeeld... - Print the document - Het document afdrukken + Print the document + Het document afdrukken - Print preview - Afdrukvoorbeeld + Print preview + Afdrukvoorbeeld - - + + StdCmdProjectInfo - File - Bestand + File + Bestand - Project i&nformation... - Project&informatie... + Project i&nformation... + Project&informatie... - Show details of the currently active project - Toon details van het huidige actieve project + Show details of the currently active project + Toon details van het huidige actieve project - - + + StdCmdProjectUtil - Tools - Gereedschap + Tools + Gereedschap - Project utility... - Project hulpprogramma... + Project utility... + Project hulpprogramma... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Help + Help + Help - Python Website - Python-webpagina + Python Website + Python-webpagina - The official Python website - De officiële Python webpagina + The official Python website + De officiële Python webpagina - - + + StdCmdQuit - File - Bestand + File + Bestand - E&xit - Afsl&uiten + E&xit + Afsl&uiten - Quits the application - Sluit de applicatie + Quits the application + Sluit de applicatie - - + + StdCmdRandomColor - File - Bestand + File + Bestand - Random color - Willekeurige kleur + Random color + Willekeurige kleur - - + + StdCmdRecentFiles - File - Bestand + File + Bestand - Recent files - Recente Bestanden + Recent files + Recente Bestanden - Recent file list - Lijst met recente bestanden + Recent file list + Lijst met recente bestanden - - + + StdCmdRedo - Edit - Bewerken + Edit + Bewerken - &Redo - &Opnieuw + &Redo + &Opnieuw - Redoes a previously undone action - Opnieuw uitvoeren van een eerder ongedane actie + Redoes a previously undone action + Opnieuw uitvoeren van een eerder ongedane actie - - + + StdCmdRefresh - Edit - Bewerken + Edit + Bewerken - &Refresh - &Verversen + &Refresh + &Verversen - Recomputes the current active document - Herberekend het huidige actieve document + Recomputes the current active document + Herberekend het huidige actieve document - - + + StdCmdSave - File - Bestand + File + Bestand - &Save - O&pslaan + &Save + O&pslaan - Save the active document - Sla het actieve document op + Save the active document + Sla het actieve document op - - + + StdCmdSaveAs - File - Bestand + File + Bestand - Save &As... - Opslaan &als... + Save &As... + Opslaan &als... - Save the active document under a new file name - Sla het actieve document onder een nieuwe bestandsnaam op + Save the active document under a new file name + Sla het actieve document onder een nieuwe bestandsnaam op - - + + StdCmdSceneInspector - Tools - Gereedschap + Tools + Gereedschap - Scene inspector... - Scène inspecteur ... + Scene inspector... + Scène inspecteur ... - Scene inspector - Scène inspecteur + Scene inspector + Scène inspecteur - - + + StdCmdSelectAll - Edit - Bewerken + Edit + Bewerken - Select &All - &Alles selecteren + Select &All + &Alles selecteren - Select all - Alles selecteren + Select all + Alles selecteren - - + + StdCmdSetAppearance - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Appearance... - Uiterlijk... + Appearance... + Uiterlijk... - Sets the display properties of the selected object - Stelt de weergave-eigenschappen in van het geselecteerde object + Sets the display properties of the selected object + Stelt de weergave-eigenschappen in van het geselecteerde object - - + + StdCmdShowObjects - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Show all objects - Toon alle objecten + Show all objects + Toon alle objecten - Show all objects in the document - Toon alle objecten in het document + Show all objects in the document + Toon alle objecten in het document - - + + StdCmdShowSelection - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Show selection - Toon selectie + Show selection + Toon selectie - Show all selected objects - Toon alle geselecteerde objecten + Show all selected objects + Toon alle geselecteerde objecten - - + + StdCmdStatusBar - View - Aanzicht + View + Aanzicht - Status bar - statusregel + Status bar + statusregel - Toggles the status bar - Schakelt de statusregel aan/uit + Toggles the status bar + Schakelt de statusregel aan/uit - - + + StdCmdTextureMapping - Tools - Gereedschap + Tools + Gereedschap - Texture mapping... - Texture mapping... + Texture mapping... + Texture mapping... - Texture mapping - Textuurafbeelden + Texture mapping + Textuurafbeelden - - + + StdCmdTileWindows - Window - Venster + Window + Venster - &Tile - &Naast elkaar + &Tile + &Naast elkaar - Tile the windows - Vensters naast elkaar schikken + Tile the windows + Vensters naast elkaar schikken - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Toggle breakpoint + Toggle breakpoint + Toggle breakpoint - - + + StdCmdToggleClipPlane - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Clipping plane - Snijvlak + Clipping plane + Snijvlak - Toggles clipping plane for active view - Snijvlak voor actieve aanzicht in/uitschakelen + Toggles clipping plane for active view + Snijvlak voor actieve aanzicht in/uitschakelen - - + + StdCmdToggleNavigation - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Toggle navigation/Edit mode - Toggle navigation/Edit mode + Toggle navigation/Edit mode + Toggle navigation/Edit mode - Toggle between navigation and edit mode - Wisselen tussen navigatie- en editmode + Toggle between navigation and edit mode + Wisselen tussen navigatie- en editmode - - + + StdCmdToggleObjects - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Toggle all objects - Alle objecten [de]selecteren + Toggle all objects + Alle objecten [de]selecteren - Toggles visibility of all objects in the active document - Wisselt zichtbaarheid van alle objecten in het actieve document + Toggles visibility of all objects in the active document + Wisselt zichtbaarheid van alle objecten in het actieve document - - + + StdCmdToggleSelectability - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Toggle selectability - Toggle selectability + Toggle selectability + Toggle selectability - Toggles the property of the objects to get selected in the 3D-View - Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View - - + + StdCmdToggleVisibility - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Toggle visibility - Wissel zichtbaarheid + Toggle visibility + Wissel zichtbaarheid - Toggles visibility - Wisselt zichtbaarheid + Toggles visibility + Wisselt zichtbaarheid - - + + StdCmdToolBarMenu - View - Aanzicht + View + Aanzicht - Tool&bars - Werk&balk + Tool&bars + Werk&balk - Toggles this window - Schakelt dit venster + Toggles this window + Schakelt dit venster - - + + StdCmdTransform - Edit - Bewerken + Edit + Bewerken - Transform... - Transform... + Transform... + Transform... - Transform the geometry of selected objects - Transform the geometry of selected objects + Transform the geometry of selected objects + Transform the geometry of selected objects - - + + StdCmdTreeSelection - View - Aanzicht + View + Aanzicht - Go to selection - Ga naar selectie + Go to selection + Ga naar selectie - Scroll to first selected item - Scroll naar het eerste geselecteerde item + Scroll to first selected item + Scroll naar het eerste geselecteerde item - - + + StdCmdUndo - Edit - Bewerken + Edit + Bewerken - &Undo - &Ongedaan maken + &Undo + &Ongedaan maken - Undo exactly one action - Precies één actie ongedaan maken + Undo exactly one action + Precies één actie ongedaan maken - - + + StdCmdUserInterface - View - Aanzicht + View + Aanzicht - Dock views - Dok aanzichten + Dock views + Dok aanzichten - Dock all top-level views - Dok alle hoogste niveau aanzichten + Dock all top-level views + Dok alle hoogste niveau aanzichten - - + + StdCmdViewAxo - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Axometric - Axometric + Axometric + Axometric - Set to axometric view - Set to axometric view + Set to axometric view + Set to axometric view - - + + StdCmdViewBottom - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Bottom - Onderkant + Bottom + Onderkant - Set to bottom view - Ingesteld op onderaanzicht + Set to bottom view + Ingesteld op onderaanzicht - - + + StdCmdViewCreate - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Create new view - Nieuw aanzicht aanmaken + Create new view + Nieuw aanzicht aanmaken - Creates a new view window for the active document - Creëert een nieuw aanzichtvenster voor het actieve document + Creates a new view window for the active document + Creëert een nieuw aanzichtvenster voor het actieve document - - + + StdCmdViewExample1 - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Inventor example #1 - Inventor voorbeeld #1 + Inventor example #1 + Inventor voorbeeld #1 - Shows a 3D texture with manipulator - Shows a 3D texture with manipulator + Shows a 3D texture with manipulator + Shows a 3D texture with manipulator - - + + StdCmdViewExample2 - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Inventor example #2 - Inventor bijvoorbeeld #2 + Inventor example #2 + Inventor bijvoorbeeld #2 - Shows spheres and drag-lights - Shows spheres and drag-lights + Shows spheres and drag-lights + Shows spheres and drag-lights - - + + StdCmdViewExample3 - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Inventor example #3 - Inventor bijvoorbeeld #3 + Inventor example #3 + Inventor bijvoorbeeld #3 - Shows a animated texture - Shows a animated texture + Shows a animated texture + Shows a animated texture - - + + StdCmdViewFitAll - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Fit all - Passend + Fit all + Passend - Fits the whole content on the screen - Zorgt dat de volledige inhoud op het scherm past + Fits the whole content on the screen + Zorgt dat de volledige inhoud op het scherm past - - + + StdCmdViewFitSelection - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Fit selection - Selectie passend + Fit selection + Selectie passend - Fits the selected content on the screen - Zorgt dat de geselecteerde inhoud op het scherm past + Fits the selected content on the screen + Zorgt dat de geselecteerde inhoud op het scherm past - - + + StdCmdViewFront - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Front - Voorkant + Front + Voorkant - Set to front view - Ingesteld op vooraanzicht + Set to front view + Ingesteld op vooraanzicht - - + + StdCmdViewIvIssueCamPos - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Issue camera position - Issue camera position + Issue camera position + Issue camera position - Issue the camera position to the console and to a macro, to easily recall this position - Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Stereo Interleaved Columns - Stereo Interleaved Columns + Stereo Interleaved Columns + Stereo Interleaved Columns - Switch stereo viewing to Interleaved Columns - Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Stereo Interleaved Rows - Stereo Interleaved Rows + Stereo Interleaved Rows + Stereo Interleaved Rows - Switch stereo viewing to Interleaved Rows - Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows - - + + StdCmdViewIvStereoOff - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Stereo Off - Stereo Uit + Stereo Off + Stereo Uit - Switch stereo viewing off - Schakel stereo-weergave uit + Switch stereo viewing off + Schakel stereo-weergave uit - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Stereo red/green - Stereo rood/groen + Stereo red/green + Stereo rood/groen - Switch stereo viewing to red/green - Stereo weergave overschakelen naar rood/groen + Switch stereo viewing to red/green + Stereo weergave overschakelen naar rood/groen - - + + StdCmdViewLeft - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Left - Links + Left + Links - Set to left view - Linker-aanzicht instellen + Set to left view + Linker-aanzicht instellen - - + + StdCmdViewRear - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Rear - Achter + Rear + Achter - Set to rear view - Achter-aanzicht instellen + Set to rear view + Achter-aanzicht instellen - - + + StdCmdViewRight - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Right - Rechts + Right + Rechts - Set to right view - Rechter-aanzicht instellen + Set to right view + Rechter-aanzicht instellen - - + + + StdCmdViewRotateLeft + + Standard-View + Standaard-aanzicht + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standaard-aanzicht + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Top - Boven + Top + Boven - Set to top view - Boven-aanzicht instellen + Set to top view + Boven-aanzicht instellen - - + + StdCmdWhatsThis - Help - Help + Help + Help - &What's This? - &Wat is dit? + &What's This? + &Wat is dit? - What's This - Wat is dit + What's This + Wat is dit - - + + StdCmdWindows - Window - Venster + Window + Venster - &Windows... - &Vensters... + &Windows... + &Vensters... - Windows list - Windows list + Windows list + Windows list - - + + StdCmdWindowsMenu - Window - Venster + Window + Venster - Activates this window - Activeert dit venster + Activates this window + Activeert dit venster - - + + StdCmdWorkbench - View - Aanzicht + View + Aanzicht - Workbench - Werkbank + Workbench + Werkbank - Switch between workbenches - Switch between workbenches + Switch between workbenches + Switch between workbenches - - + + StdOrthographicCamera - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Orthographic view - Orthogonale projectie + Orthographic view + Orthogonale projectie - Switches to orthographic view mode - Schakelt naar orthogonale projectie + Switches to orthographic view mode + Schakelt naar orthogonale projectie - - + + StdPerspectiveCamera - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Perspective view - Perspectivische projectie + Perspective view + Perspectivische projectie - Switches to perspective view mode - Schakelt naar perspectivische projectie + Switches to perspective view mode + Schakelt naar perspectivische projectie - - + + StdViewBoxZoom - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Box zoom - Vensterzoom + Box zoom + Vensterzoom - - + + StdViewDockUndockFullscreen - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Document window - Documentvenster + Document window + Documentvenster - Display the active view either in fullscreen, in undocked or docked mode - Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode - - + + StdViewScreenShot - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Save picture... - Afbeelding opslaan... + Save picture... + Afbeelding opslaan... - Creates a screenshot of the active view - Hiermee maakt u een screenshot van het actieve aanzicht + Creates a screenshot of the active view + Hiermee maakt u een screenshot van het actieve aanzicht - - + + StdViewZoomIn - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Zoom In - Inzoomen + Zoom In + Inzoomen - - + + StdViewZoomOut - Standard-View - Standaard-aanzicht + Standard-View + Standaard-aanzicht - Zoom Out - Uitzoomen + Zoom Out + Uitzoomen - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Bestand + &File + &Bestand - &Edit - &Bewerken + &Edit + &Bewerken - Standard views - Standaard aanzichten + Standard views + Standaard aanzichten - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Zichtbaarheid + Visibility + Zichtbaarheid - &View - &Aanzicht + &View + &Aanzicht - &Tools - &Gereedschap + &Tools + &Gereedschap - &Macro - &Macro + &Macro + &Macro - &Windows - &Vensters + &Windows + &Vensters - &On-line help - &Online-help + &On-line help + &Online-help - &Help - &Help + &Help + &Help - File - Bestand + File + Bestand - Macro - Macro + Macro + Macro - View - Aanzicht + View + Aanzicht - Special Ops - Speciale functies + Special Ops + Speciale functies - - + + testClass - test - Test + test + Test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"> <span style=" font-size:12pt;">Gemaakt voor Qt 4.3.x</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"> www.ii-system.com </p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"> <span style=" font-size:12pt;">Gemaakt voor Qt 4.3.x</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"> www.ii-system.com </p></body></html> - Choose the style of the Task Panel - Kies de stijl van het taken-panel + Choose the style of the Task Panel + Kies de stijl van het taken-panel - Default - Standaard + Default + Standaard - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_no.ts b/src/Gui/Language/FreeCAD_no.ts index 56087e8fa..9d42c2a4e 100644 --- a/src/Gui/Language/FreeCAD_no.ts +++ b/src/Gui/Language/FreeCAD_no.ts @@ -1,5486 +1,5904 @@ - - + + Angle - Form - Skjema + Form + Skjema - A: - A: + A: + A: - B: - B: + B: + B: - C: - B: + C: + B: - Angle Snap - Vinkelmagnet + Angle Snap + Vinkelmagnet - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - ingen + none + ingen - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Legg til + + + Remove + Fjern + + + Move up + Flytt opp + + + Move down + Flytt ned + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Trykk venstre museknapp + Press left mouse button + Trykk venstre museknapp - Press SHIFT and middle mouse button - Press SHIFT and middle mouse button + Press SHIFT and middle mouse button + Press SHIFT and middle mouse button - Press middle mouse button - Trykk pÃ¥ midtre museknapp + Press middle mouse button + Trykk pÃ¥ midtre museknapp - Scroll middle mouse button - Rull musehjul + Scroll middle mouse button + Rull musehjul - - + + Gui::CADNavigationStyle - Press left mouse button - Trykk venstre museknapp + Press left mouse button + Trykk venstre museknapp - Press middle mouse button - Trykk pÃ¥ midtre museknapp + Press middle mouse button + Trykk pÃ¥ midtre museknapp - Press left and middle mouse button - Trykk pÃ¥ venstre og midtre museknapp + Press left and middle mouse button + Trykk pÃ¥ venstre og midtre museknapp - Scroll middle mouse button - Rull musehjul + Scroll middle mouse button + Rull musehjul - - + + Gui::Command - Standard - Standard + Standard + Standard - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + Gui::ControlSingleton - Task panel - Oppgavepanel + Task panel + Oppgavepanel - - + + Gui::Dialog::AboutApplication - About - Om + About + Om - Revision number - Revisjonsnummer + Revision number + Revisjonsnummer - Version - Versjon + Version + Versjon - OK - OK + OK + OK - - + + - Release date - Utgivelsesdato + Release date + Utgivelsesdato - Platform - Platform + Platform + Platform - License... - License... + License... + License... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Kommandoer + Commands + Kommandoer - - + + Gui::Dialog::DemoMode - View Turntable - Vis dreieskive + View Turntable + Vis dreieskive - Speed - Hastighet + Speed + Hastighet - Maximum - Maksimum + Maximum + Maksimum - Minimum - Minimum + Minimum + Minimum - Fullscreen - Fullskjerm + Fullscreen + Fullskjerm - Enable timer - Aktiver tidtaker + Enable timer + Aktiver tidtaker - s - s + s + s - Angle - Vinkel + Angle + Vinkel + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Spill av - -90° - -90° + Stop + Stopp - Play - Spill av + Close + Lukk - - Stop - Stopp - - - Close - Lukk - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Velg vindu + Choose Window + Velg vindu - &Activate - &Aktiver + &Activate + &Aktiver - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Vinduer + Windows + Vinduer - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorisasjon + Authorization + Autorisasjon - &OK - &OK + &OK + &OK - &Cancel - &Avbryt + &Cancel + &Avbryt - Password: - Passord: + Password: + Passord: - User name: - Brukernavn: + User name: + Brukernavn: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Velg ikon + Choose Icon + Velg ikon - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - Makroer + Macros + Makroer - Setup Custom Macros - Sett opp egendefinerte makroer + Setup Custom Macros + Sett opp egendefinerte makroer - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Pikseltilordning + Pixmap + Pikseltilordning - Accelerator: - Akselerator: + Accelerator: + Akselerator: - What's this: - Hva er dette: + What's this: + Hva er dette: - Status text: - Statustekst: + Status text: + Statustekst: - Tool tip: - Verktøytips: + Tool tip: + Verktøytips: - Menu text: - Menytekst: + Menu text: + Menytekst: - Add - Legg til + Add + Legg til - Remove - Fjern + Remove + Fjern - Replace - Erstatt + Replace + Erstatt - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikoner + Icons + Ikoner - Macros - Makroer + Macros + Makroer - No macro - Ingen makro + No macro + Ingen makro - No macros found. - Ingen makroer funnet. + No macros found. + Ingen makroer funnet. - Macro not found - Makro ikke funnet + Macro not found + Makro ikke funnet - Sorry, couldn't find macro file '%1'. - Beklager, kunne ikke finne makrofil '%1'. + Sorry, couldn't find macro file '%1'. + Beklager, kunne ikke finne makrofil '%1'. - Empty macro - Tom makro + Empty macro + Tom makro - Please specify the macro first. - Spesifiser makro først. + Please specify the macro first. + Spesifiser makro først. - Empty text - Tom tekst + Empty text + Tom tekst - Please specify the menu text first. - Vennligst oppgi menytekst først. + Please specify the menu text first. + Vennligst oppgi menytekst først. - No item selected - Ingen element er valgt + No item selected + Ingen element er valgt - Please select a macro item first. - Vennligst velg et makroelement først. + Please select a macro item first. + Vennligst velg et makroelement først. - - + + Gui::Dialog::DlgCustomCommands - Commands - Kommandoer + Commands + Kommandoer - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategori + Category + Kategori - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Tastatur + Keyboard + Tastatur - Description: - Beskrivelse: + Description: + Beskrivelse: - &Category: - &Kategori: + &Category: + &Kategori: - C&ommands: - K&ommandoer: + C&ommands: + K&ommandoer: - Current shortcut: - Gjeldende snarvei: + Current shortcut: + Gjeldende snarvei: - Press &new shortcut: - Trykk &ny snarvei: + Press &new shortcut: + Trykk &ny snarvei: - Currently assigned to: - For øyeblikket tilordnet: + Currently assigned to: + For øyeblikket tilordnet: - &Assign - &Tilordne + &Assign + &Tilordne - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Tilbakestille + &Reset + &Tilbakestille - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Tilbake&still alle + Re&set All + Tilbake&still alle - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - none - ingen + none + ingen - Multiple defined shortcut - Flerdefinert snarvei + Multiple defined shortcut + Flerdefinert snarvei - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Snarvei '%1' er definert mer enn én gang. Dette kan føre til uventet oppførsel. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Snarvei '%1' er definert mer enn én gang. Dette kan føre til uventet oppførsel. - Already defined shortcut - Allerede definert snarvei + Already defined shortcut + Allerede definert snarvei - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Snarveien '%1' er allerede tilordnet '%2'. Definer en annen snarvei. + Snarveien '%1' er allerede tilordnet '%2'. Definer en annen snarvei. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Verktøykasselinjer + Toolbox bars + Verktøykasselinjer - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Verktøylinjer + Toolbars + Verktøylinjer - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Merk:</span> Forandringene blir aktive neste gang du laster riktig arbeidsbenk</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Merk:</span> Forandringene blir aktive neste gang du laster riktig arbeidsbenk</p></body></html> - Move right - Flytt til høyre + Move right + Flytt til høyre - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Flytt det valgte elementet ett nivÃ¥ ned.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Flytt det valgte elementet ett nivÃ¥ ned.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> - Move left - Flytt til venstre + Move left + Flytt til venstre - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Flytt det valgte elementet ett nivÃ¥ opp.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Flytt det valgte elementet ett nivÃ¥ opp.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> - Move down - Flytt ned + Move down + Flytt ned - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytt det valgte elementet ned.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytt det valgte elementet ned.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> - Move up - Flytt opp + Move up + Flytt opp - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytt det valgte elementet opp.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytt det valgte elementet opp.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> - New... - Ny... + New... + Ny... - Rename... - Omdøp... + Rename... + Omdøp... - Delete - Slett + Delete + Slett - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Ny verktøylinje + New toolbar + Ny verktøylinje - Toolbar name: - Verktøylinjenavn: + Toolbar name: + Verktøylinjenavn: - Duplicated name - Duplisert navn + Duplicated name + Duplisert navn - The toolbar name '%1' is already used - Verktøylinjenavn '%1' er allerede i bruk + The toolbar name '%1' is already used + Verktøylinjenavn '%1' er allerede i bruk - Rename toolbar - Omdøp verktøylinje + Rename toolbar + Omdøp verktøylinje - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Tilpass + Customize + Tilpass - &Help - &Hjelp + &Help + &Hjelp - &Close - &Lukk + &Close + &Lukk - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Buttons + Buttons + Buttons - Clear - Tøm + Clear + Tøm - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Skjermegenskaper + Display properties + Skjermegenskaper - Display - Skjerm + Display + Skjerm - Transparency: - Gjennomsiktighet: + Transparency: + Gjennomsiktighet: - Line width: - Linjebredde: + Line width: + Linjebredde: - Point size: - Punktstørrelse: + Point size: + Punktstørrelse: - Material - Materiale + Material + Materiale - ... - ... + ... + ... - Close - Lukk + Close + Lukk - Viewing mode - Visningsmodus + Viewing mode + Visningsmodus - Display mode: - Visningsmodus: + Display mode: + Visningsmodus: - Plot mode: - Plottmodus: + Plot mode: + Plottmodus: - - + + - Line transparency: - Gjennomsiktighet for linje: + Line transparency: + Gjennomsiktighet for linje: - Line color: - Linjefarge: + Line color: + Linjefarge: - Shape color: - Figurfarge: + Shape color: + Figurfarge: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Redigeringsprogram + Editor + Redigeringsprogram - Options - Alternativer + Options + Alternativer - Enable line numbers - Aktiver linjenumre + Enable line numbers + Aktiver linjenumre - Enable folding - Aktiver folding + Enable folding + Aktiver folding - Indentation - Innrykk + Indentation + Innrykk - Insert spaces - Sett inn mellomrom + Insert spaces + Sett inn mellomrom - Tab size: - Tabulatorstørrelse: + Tab size: + Tabulatorstørrelse: - Indent size: - Innrykkstørrelse: + Indent size: + Innrykkstørrelse: - Keep tabs - Behold tabulatorer + Keep tabs + Behold tabulatorer - Display Items - Vis elementer + Display Items + Vis elementer - Family: - Familie: + Family: + Familie: - Size: - Størrelse: + Size: + Størrelse: - Preview: - ForhÃ¥ndsvisning: + Preview: + ForhÃ¥ndsvisning: - - + + - - + + Gui::Dialog::DlgGeneral - General - Generelle + General + Generelle - Start up - Oppstart + Start up + Oppstart - Enable splash screen at start up - Aktiver velkomstbilde ved oppstart + Enable splash screen at start up + Aktiver velkomstbilde ved oppstart - Switch to tab of report window: - Bytt til fane for rapportvindu: + Switch to tab of report window: + Bytt til fane for rapportvindu: - Auto load module after start up: - Autostart modul etter oppstart: + Auto load module after start up: + Autostart modul etter oppstart: - Language - SprÃ¥k + Language + SprÃ¥k - Change language: - Endre sprÃ¥k: + Change language: + Endre sprÃ¥k: - Main window - Hovedvindu + Main window + Hovedvindu - Size of recent file list - Størrelse pÃ¥ liste for nylig brukte filer + Size of recent file list + Størrelse pÃ¥ liste for nylig brukte filer - Window style: - Vindustil: + Window style: + Vindustil: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Inndata + Input + Inndata - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Sceneinspektør + Scene Inspector + Sceneinspektør - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Kjør makro + Execute macro + Kjør makro - Macro name: - Makronavn: + Macro name: + Makronavn: - Macro destination: - Makrodestinasjon: + Macro destination: + Makrodestinasjon: - Execute - Kjør + Execute + Kjør - Close - Lukk + Close + Lukk - Create - Lag + Create + Lag - Delete - Slett + Delete + Slett - Edit - Rediger + Edit + Rediger - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makroer + Macros + Makroer - Macro file - Makrofil + Macro file + Makrofil - Enter a file name, please: - Vennligst skriv inn et filnavn: + Enter a file name, please: + Vennligst skriv inn et filnavn: - Existing file - Eksisterende fil + Existing file + Eksisterende fil - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Denne filen finnes allerede. - Delete macro - Slett makro + Delete macro + Slett makro - Do you really want to delete the macro '%1'? - Ønsker du virkelig Ã¥ slette makroen '%1'? + Do you really want to delete the macro '%1'? + Ønsker du virkelig Ã¥ slette makroen '%1'? - Cannot create file - Kan ikke lage fil + Cannot create file + Kan ikke lage fil - Creation of file '%1' failed. - Oppretting av filen '%1' mislyktes. + Creation of file '%1' failed. + Oppretting av filen '%1' mislyktes. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Macroopptak + Macro recording + Macroopptak - Macro name: - Makronavn: + Macro name: + Makronavn: - Stop - Stopp + Stop + Stopp - Cancel - Avbryt + Cancel + Avbryt - Macro path: - Makrobane: + Macro path: + Makrobane: - ... - ... + ... + ... - Record - Spill inn + Record + Spill inn - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Makroopptaker + Macro recorder + Makroopptaker - Specify first a place to save. - Angi først et sted Ã¥ lagre. + Specify first a place to save. + Angi først et sted Ã¥ lagre. - Existing macro - Eksisterende makro + Existing macro + Eksisterende makro - The macro '%1' already exists. Do you want to overwrite? - Makroen '%1' finnes allerede. Vil du overskrive? + The macro '%1' already exists. Do you want to overwrite? + Makroen '%1' finnes allerede. Vil du overskrive? - The macro directory doesn't exist. Please, choose another one. - Makromappen finnes ikke. Vennligst, velg en annen. + The macro directory doesn't exist. Please, choose another one. + Makromappen finnes ikke. Vennligst, velg en annen. - Choose macro directory - Velg makromappe + Choose macro directory + Velg makromappe - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Materialegenskaper + Material properties + Materialegenskaper - &Close - &Lukk + &Close + &Lukk - Alt+C - Alt+C + Alt+C + Alt+C - Material - Materiale + Material + Materiale - Diffuse color: - Diffusér fargen: + Diffuse color: + Diffusér fargen: - Specular color: - Gjenskinnfarge: + Specular color: + Gjenskinnfarge: - Shininess: - Blankhet: + Shininess: + Blankhet: - % - % + % + % - Ambient color: - Omgivelsesfarge: + Ambient color: + Omgivelsesfarge: - - + + - Emissive color: - Emissiv farge: + Emissive color: + Emissiv farge: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Internetthjelp + On-line help + Internetthjelp - Help viewer - Hjelp visning + Help viewer + Hjelp visning - Location of start page - Plassering av startsiden + Location of start page + Plassering av startsiden - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML filer (*.html *.htm) + HTML files (*.html *.htm) + HTML filer (*.html *.htm) - Access denied - Ingen tilgang + Access denied + Ingen tilgang - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Ingen tilgang til '%1' + Ingen tilgang til '%1' Vennligst angi en annen mappe. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parameterredigering + Parameter Editor + Parameterredigering - Save to disk - Lagre til disk + Save to disk + Lagre til disk - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Lukk + &Close + &Lukk - - + + Gui::Dialog::DlgParameterImp - Group - Gruppe + Group + Gruppe - Name - Navn + Name + Navn - Type - Type + Type + Type - Value - Verdi + Value + Verdi - User parameter - Brukerparameter + User parameter + Brukerparameter - Invalid input - Ugyldig inndata + Invalid input + Ugyldig inndata - Invalid key name '%1' - Ugyldig nøkkelnavn '%1' + Invalid key name '%1' + Ugyldig nøkkelnavn '%1' - System parameter - Systemparameter + System parameter + Systemparameter - - + + Gui::Dialog::DlgPreferences - Preferences - Preferanser + Preferences + Preferanser - &Help - &Hjelp + &Help + &Hjelp - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &OK + &OK + &OK - &Apply - &Bruk + &Apply + &Bruk - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Feil parameter + Wrong parameter + Feil parameter - - + + Gui::Dialog::DlgProjectInformation - Project information - Prosjektinformasjon + Project information + Prosjektinformasjon - Information - Informasjon + Information + Informasjon - &Name: - &Navn: + &Name: + &Navn: - Commen&t: - Kommen&tar: + Commen&t: + Kommen&tar: - Path: - Bane: + Path: + Bane: - &Last modified by: - &Sist endret av: + &Last modified by: + &Sist endret av: - Created &by: - Laget &av: + Created &by: + Laget &av: - Com&pany: - Fir&ma: + Com&pany: + Fir&ma: - Last &modification date: - Siste &modifikasjonsdato: + Last &modification date: + Siste &modifikasjonsdato: - Creation &date: - Opprettelse&sdato: + Creation &date: + Opprettelse&sdato: - &OK - &OK + &OK + &OK - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Source + Source + Source - Project file (*.fcstd) - Project file (*.fcstd) + Project file (*.fcstd) + Project file (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extract + Extract + Extract - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - Lag + Create + Lag - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Utdatavindu + Output window + Utdatavindu - Output - Utdata + Output + Utdata - Record log messages - Registrer loggmeldinger + Record log messages + Registrer loggmeldinger - Record warnings - Registrer advarsler + Record warnings + Registrer advarsler - Record error messages - Registrer feilmeldinger + Record error messages + Registrer feilmeldinger - Colors - Farger + Colors + Farger - Normal messages: - Vanlige meldinger: + Normal messages: + Vanlige meldinger: - Log messages: - Loggmeldinger: + Log messages: + Loggmeldinger: - Warnings: - Advarsler: + Warnings: + Advarsler: - Errors: - Feil: + Errors: + Feil: - - + + - Redirect internal Python errors to report view - Omadressere interne Python-feil til rapportvisning + Redirect internal Python errors to report view + Omadressere interne Python-feil til rapportvisning - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - Kjører eksternt program + Running external program + Kjører eksternt program - TextLabel - Merkelapp + TextLabel + Merkelapp - Advanced >> - Avansert >> + Advanced >> + Avansert >> - ... - ... + ... + ... - Accept changes - Godta endringer + Accept changes + Godta endringer - Discard changes - Forkast endringer + Discard changes + Forkast endringer - Abort program - Avbryt program + Abort program + Avbryt program - Help - Hjelp + Help + Hjelp - Select a file - Velg en fil + Select a file + Velg en fil - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D-visning + 3D View + 3D-visning - 3D View settings - Innstillinger for 3D-visning + 3D View settings + Innstillinger for 3D-visning - Show coordinate system in the corner - Vis koordinatsystem i hjørnet + Show coordinate system in the corner + Vis koordinatsystem i hjørnet - Show counter of frames per second - Vis teller for bilder per sekund + Show counter of frames per second + Vis teller for bilder per sekund - Enable animation - Aktiver animasjon + Enable animation + Aktiver animasjon - Enable anti-aliasing (slower) - Aktiver kantutjevning (tregere) + Enable anti-aliasing (slower) + Aktiver kantutjevning (tregere) - Eye to eye distance for stereo modes: - Øyeavstand for stereomoduser: + Eye to eye distance for stereo modes: + Øyeavstand for stereomoduser: - Camera type - Kameratype + Camera type + Kameratype - Orthographic rendering - Ortografisk presentasjonsgjengivelse + Orthographic rendering + Ortografisk presentasjonsgjengivelse - Perspective rendering - Perspektiv presentasjonsgjengivelse + Perspective rendering + Perspektiv presentasjonsgjengivelse - - + + - 3D Navigation - 3D-navigasjon + 3D Navigation + 3D-navigasjon - Mouse... - Mus... + Mouse... + Mus... - Intensity of backlight - Intensitet pÃ¥ bakgrunnsbelysning + Intensity of backlight + Intensitet pÃ¥ bakgrunnsbelysning - Enable backlight color - Aktiver bakgrunnsbelysningsfarge + Enable backlight color + Aktiver bakgrunnsbelysningsfarge - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1navigasjon + %1 navigation + %1navigasjon - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Fargemodell + Color model + Fargemodell - &Gradient: - &Overgang: + &Gradient: + &Overgang: - red-yellow-green-cyan-blue - rød-gul-grønn-cyan-blÃ¥ + red-yellow-green-cyan-blue + rød-gul-grønn-cyan-blÃ¥ - blue-cyan-green-yellow-red - blÃ¥-cyan-grønn-gul-rød + blue-cyan-green-yellow-red + blÃ¥-cyan-grønn-gul-rød - white-black - hvit-svart + white-black + hvit-svart - black-white - svart-hvit + black-white + svart-hvit - Visibility - Synlighet + Visibility + Synlighet - Out g&rayed - Ut g&rÃ¥net + Out g&rayed + Ut g&rÃ¥net - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Ut &usynlig + Out &invisible + Ut &usynlig - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stil + Style + Stil - &Zero - &Null + &Zero + &Null - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flyt + &Flow + &Flyt - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Avbryt + &Cancel + &Avbryt - Parameter range - Parameterrekkevidde + Parameter range + Parameterrekkevidde - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Ma&ksimum: + Ma&ximum: + Ma&ksimum: - &Labels: - &Etiketter: + &Labels: + &Etiketter: - &Decimals: - &Desimaler: + &Decimals: + &Desimaler: - - + + - Color-gradient settings - Fargeovergangsinnstillinger + Color-gradient settings + Fargeovergangsinnstillinger - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Feil parameter + Wrong parameter + Feil parameter - The maximum value must be higher than the minimum value. - Maksimumsverdien mÃ¥ være høyere enn minimumsverdien. + The maximum value must be higher than the minimum value. + Maksimumsverdien mÃ¥ være høyere enn minimumsverdien. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokument + Document + Dokument - General - Generelle + General + Generelle - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Dokumentetlagring komprimeringsnivÃ¥ + Dokumentetlagring komprimeringsnivÃ¥ (0=ingen, 9=høyest, 3=standard) - Create new document at start up - Lag nytt dokument ved oppstart + Create new document at start up + Lag nytt dokument ved oppstart - Storage - Lagring + Storage + Lagring - Saving transactions (Auto-save) - Autolagrer forandringer underveis + Saving transactions (Auto-save) + Autolagrer forandringer underveis - Discard saved transaction after saving document - Forkast lagrede forandringer etter du har lagret dokumentet manuelt + Discard saved transaction after saving document + Forkast lagrede forandringer etter du har lagret dokumentet manuelt - Save thumbnail into project file when saving document - Lagre miniatyrbilde til prosjektfil nÃ¥r du lagrer dokument + Save thumbnail into project file when saving document + Lagre miniatyrbilde til prosjektfil nÃ¥r du lagrer dokument - Create up to backup files when resaving document - Lag opp til sikkerhetskopifiler nÃ¥r dokumentet lagres pÃ¥ nytt + Create up to backup files when resaving document + Lag opp til sikkerhetskopifiler nÃ¥r dokumentet lagres pÃ¥ nytt - Document objects - Dokumentobjekter + Document objects + Dokumentobjekter - Allow duplicate object labels in one document - Tillat dupliserte objektetiketter i ett dokument + Allow duplicate object labels in one document + Tillat dupliserte objektetiketter i ett dokument - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Tekst + Text + Tekst - Bookmark - Bokmerke + Bookmark + Bokmerke - Breakpoint - Brytingspunkt + Breakpoint + Brytingspunkt - Keyword - Nøkkelord + Keyword + Nøkkelord - Comment - Kommentar + Comment + Kommentar - Block comment - Blokkkommentar + Block comment + Blokkkommentar - Number - Nummer + Number + Nummer - String - Streng + String + Streng - Character - Tegn + Character + Tegn - Class name - Klassenavn + Class name + Klassenavn - Define name - Definer navn + Define name + Definer navn - Operator - Operatør + Operator + Operatør - Python output - Python-utdata + Python output + Python-utdata - Python error - Python-feil + Python error + Python-feil - Items - Elementer + Items + Elementer - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Bildeinnstillinger + Image settings + Bildeinnstillinger - Image properties - Bildeegenskaper + Image properties + Bildeegenskaper - Back&ground: - Bak&grunn: + Back&ground: + Bak&grunn: - Current - Gjeldende + Current + Gjeldende - White - Hvit + White + Hvit - Black - Svart + Black + Svart - Transparent - Gjennomsiktig + Transparent + Gjennomsiktig - Image dimensions - Bildedimensjoner + Image dimensions + Bildedimensjoner - Pixel - Piksel + Pixel + Piksel - &Width: - &Bredde: + &Width: + &Bredde: - Current screen - Gjeldende skjermbilde + Current screen + Gjeldende skjermbilde - Icon 32 x 32 - Ikon 32 x 32 + Icon 32 x 32 + Ikon 32 x 32 - Icon 64 x 64 - Ikon 64 x 64 + Icon 64 x 64 + Ikon 64 x 64 - Icon 128 x 128 - Ikon 128 x 128 + Icon 128 x 128 + Ikon 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standard størrelser: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Høyde: - Standard sizes: - Standard størrelser: + Aspect ratio: + Bildeformat: - &Height: - &Høyde: + &Screen + &Skjermbilde - Aspect ratio: - Bildeformat: + Alt+S + Alt+S - &Screen - &Skjermbilde + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Bildekommentar - Alt+1 - Alt+1 + Insert MIBA + Sett inn MIBA - Image comment - Bildekommentar + Insert comment + Sett inn kommentar - - Insert MIBA - Sett inn MIBA - - - Insert comment - Sett inn kommentar - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makro + Macro + Makro - Macro recording settings - Innstillinger for makroopptak + Macro recording settings + Innstillinger for makroopptak - Logging Commands - Logging kommandoer + Logging Commands + Logging kommandoer - Show script commands in python console - Vis skriptkommandoer i python konsoll + Show script commands in python console + Vis skriptkommandoer i python konsoll - Log all commands issued by menus to file: - Logg alle kommandoer utstedt av menyer til fil: + Log all commands issued by menus to file: + Logg alle kommandoer utstedt av menyer til fil: - FullScript.FCScript - FullSkript.FCSkript + FullScript.FCScript + FullSkript.FCSkript - Gui commands - Guikommandoer + Gui commands + Guikommandoer - Recording GUI commands - Spiller inn GUI kommandoer + Recording GUI commands + Spiller inn GUI kommandoer - Record as comment - Spill inn som kommentar + Record as comment + Spill inn som kommentar - Macro path - Makrobane + Macro path + Makrobane - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Enheter + Units + Enheter - Units settings - Enhetsinnstillinger + Units settings + Enhetsinnstillinger - Standard (mm/kg/s/degree) - Standard (mm/kg/s/grad) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/grad) - MKS (m/kg/s/degree) - MKS (m/kg/s/grad) + MKS (m/kg/s/degree) + MKS (m/kg/s/grad) - Magnitude - Magnitude + Magnitude + Magnitude - Unit - Enhet + Unit + Enhet - User system: - Brukersystem: + User system: + Brukersystem: - Imperial (in/lb) - Imperialt (in/lb) + Imperial (in/lb) + Imperialt (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Farger + Colors + Farger - Selection - Utvalg + Selection + Utvalg - Enable selection highlighting - Aktiver utheving av valg + Enable selection highlighting + Aktiver utheving av valg - Enable preselection highlighting - Aktiver utheving av forvalg + Enable preselection highlighting + Aktiver utheving av forvalg - Background color - Bakgrunnsfarge + Background color + Bakgrunnsfarge - Middle color - Midtfarge + Middle color + Midtfarge - Color gradient - Fargeovergang + Color gradient + Fargeovergang - Simple color - Enkel farge + Simple color + Enkel farge - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Dagens tips + Tip of the day + Dagens tips - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Visste du at...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Visste du at...</font></font></b> - &Show tips at start up - &Vis tips ved oppstart + &Show tips at start up + &Vis tips ved oppstart - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Neste tips + &Next Tip + &Neste tips - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Lukk + &Close + &Lukk - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Nedlasting mislyktes: %1 + Nedlasting mislyktes: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Hvis du ønsker Ã¥ lære mer om FreeCAD mÃ¥ du gÃ¥ til %1 eller bruk Hjelp i menyen. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Hvis du ønsker Ã¥ lære mer om FreeCAD mÃ¥ du gÃ¥ til %1 eller bruk Hjelp i menyen. - - + + Gui::Dialog::DockablePlacement - Placement - Plassering + Placement + Plassering - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + Avbryt + + + Close + Lukk + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Nedlasting mislyktes: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - Inndata vektor + Input vector + Inndata vektor - Vector - Vektor + Vector + Vektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Museknapper + Mouse buttons + Museknapper - Configuration - Konfigurasjon + Configuration + Konfigurasjon - Selection: - Utvalg: + Selection: + Utvalg: - Panning - Panorering + Panning + Panorering - Rotation: - Rotasjon: + Rotation: + Rotasjon: - Zooming: - Zoome: + Zooming: + Zoome: - - + + Gui::Dialog::ParameterGroup - Expand - Utvid + Expand + Utvid - Add sub-group - Legg til undergruppe + Add sub-group + Legg til undergruppe - Remove group - Fjern gruppe + Remove group + Fjern gruppe - Rename group - Omdøp gruppe + Rename group + Omdøp gruppe - Export parameter - Eksporter parameter + Export parameter + Eksporter parameter - Import parameter - Importer parameter + Import parameter + Importer parameter - Collapse - Skjul + Collapse + Skjul - Do really want to remove this parameter group? - Ønsker du virkelig Ã¥ fjerne denne parametergruppen? + Do really want to remove this parameter group? + Ønsker du virkelig Ã¥ fjerne denne parametergruppen? - Existing sub-group - Eksisterende undergruppe + Existing sub-group + Eksisterende undergruppe - The sub-group '%1' already exists. - Undergruppe '%1' finnes allerede. + The sub-group '%1' already exists. + Undergruppe '%1' finnes allerede. - Export parameter to file - Eksporter parameter til fil + Export parameter to file + Eksporter parameter til fil - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Importer parameter fra fil + Import parameter from file + Importer parameter fra fil - Import Error - Importfeil + Import Error + Importfeil - Reading from '%1' failed. - Lesing fra '%1' mislyktes. + Reading from '%1' failed. + Lesing fra '%1' mislyktes. - - + + Gui::Dialog::ParameterValue - Change value - Endre verdi + Change value + Endre verdi - Remove key - Fjern nøkkelen + Remove key + Fjern nøkkelen - Rename key - Omdøp nøkkel + Rename key + Omdøp nøkkel - New - Ny + New + Ny - New string item - Nytt streng-element + New string item + Nytt streng-element - New float item - Nytt float-element + New float item + Nytt float-element - New integer item - Nytt heltall-element + New integer item + Nytt heltall-element - New unsigned item - Nytt usignert element + New unsigned item + Nytt usignert element - New Boolean item - Nytt boolsk element + New Boolean item + Nytt boolsk element - Existing item - Eksisterende element + Existing item + Eksisterende element - The item '%1' already exists. - Elementet '%1' finnes allerede. + The item '%1' already exists. + Elementet '%1' finnes allerede. - - + + Gui::Dialog::Placement - Placement - Plassering + Placement + Plassering - OK - OK + OK + OK - Translation: - Oversettelse: + Translation: + Oversettelse: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotasjon: + Rotation: + Rotasjon: - Angle: - Vinkel: + Angle: + Vinkel: - Axis: - Akse: + Axis: + Akse: - Center: - Senter: + Center: + Senter: - Pitch: - Tipp: + Pitch: + Tipp: - Roll: - Rull: + Roll: + Rull: - Yaw: - Snu: + Yaw: + Snu: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler vinkler + Euler angles + Euler vinkler - Apply placement changes immediately - Bruk plasseringsendringer umiddelbart + Apply placement changes immediately + Bruk plasseringsendringer umiddelbart - Apply incremental changes to object placement - Bruk trinnvise endringer pÃ¥ objektplassering + Apply incremental changes to object placement + Bruk trinnvise endringer pÃ¥ objektplassering - Apply - Bruk + Apply + Bruk - Reset - Tilbakestill + Reset + Tilbakestill - Close - Lukk + Close + Lukk - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - Kommando + Command + Kommando - - + + Gui::Dialog::SceneInspector - Dialog - Dialog + Dialog + Dialog - Close - Lukk + Close + Lukk - Refresh - Oppdater + Refresh + Oppdater - - + + Gui::Dialog::SceneModel - Inventor Tree - Oppfinnertre + Inventor Tree + Oppfinnertre - Nodes - Noder + Nodes + Noder - - + + Gui::Dialog::TextureMapping - Texture - Tekstur + Texture + Tekstur - Texture mapping - Teksturtilordning + Texture mapping + Teksturtilordning - Global - Global + Global + Global - Environment - Miljø + Environment + Miljø - Image files (%1) - Bildefiler (%1) + Image files (%1) + Bildefiler (%1) - No image - Ingen bilder + No image + Ingen bilder - The specified file is not a valid image file. - Den angitte filen er ikke en gyldig bildefil. + The specified file is not a valid image file. + Den angitte filen er ikke en gyldig bildefil. - No 3d view - Ingen 3d-visning + No 3d view + Ingen 3d-visning - No active 3d view found. - Ingen aktiv 3d-visning funnet. + No active 3d view found. + Ingen aktiv 3d-visning funnet. - - + + Gui::Dialog::Transform - Cancel - Avbryt + Cancel + Avbryt - Transform - Transformer + Transform + Transformer - - + + Gui::DlgTreeWidget - Dialog - Dialog + Dialog + Dialog - Items - Elementer + Items + Elementer - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - - + + - - + + Gui::DockWnd::CombiView - CombiView - Kombivisning + CombiView + Kombivisning - Project - Prosjekt + Project + Prosjekt - Tasks - Oppgaver + Tasks + Oppgaver - - + + Gui::DockWnd::HelpView - Previous - Forrige + Previous + Forrige - Next - Neste + Next + Neste - Home - Hjem + Home + Hjem - Open - Ã…pne + Open + Ã…pne - Open file - Ã…pne fil + Open file + Ã…pne fil - All HTML files (*.html *.htm) - Alle HTML filer (*.html *.htm) + All HTML files (*.html *.htm) + Alle HTML filer (*.html *.htm) - External browser - Ekstern nettleser + External browser + Ekstern nettleser - No external browser found. Specify in preferences, please - Ingen ekstern nettleser funnet. Vennligst angi i preferanser + No external browser found. Specify in preferences, please + Ingen ekstern nettleser funnet. Vennligst angi i preferanser - Starting of %1 failed - Start av %1 mislyktes + Starting of %1 failed + Start av %1 mislyktes - - + + Gui::DockWnd::PropertyDockView - Property View - Egenskapsvisning + Property View + Egenskapsvisning - - + + Gui::DockWnd::ReportOutput - Logging - Logging + Logging + Logging - Warning - Advarsel + Warning + Advarsel - Error - Feil + Error + Feil - Options - Alternativer + Options + Alternativer - Clear - Tøm + Clear + Tøm - Save As... - Lagre som... + Save As... + Lagre som... - Save Report Output - Lagre rapport utdata + Save Report Output + Lagre rapport utdata - Plain Text Files (*.txt *.log) - Rene tekstfiler (*.txt *.log) + Plain Text Files (*.txt *.log) + Rene tekstfiler (*.txt *.log) - Go to end - GÃ¥ til slutten + Go to end + GÃ¥ til slutten - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Omadressere Python-feil + Redirect Python errors + Omadressere Python-feil - - + + Gui::DockWnd::ReportView - Output - Utdata + Output + Utdata - Python console - Pythonkonsoll + Python console + Pythonkonsoll - - + + Gui::DockWnd::SelectionView - Property View - Egenskapsvisning + Property View + Egenskapsvisning - - + + Gui::DockWnd::TaskPanelView - Task View - Oppgavevisning + Task View + Oppgavevisning - - + + Gui::DockWnd::TextBrowser - Could not open file. - Kunne ikke Ã¥pne fil. + Could not open file. + Kunne ikke Ã¥pne fil. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Du prøvde Ã¥ fÃ¥ tilgang til adressen %1 som for øyeblikket er utilgjengelig. Kontroller at nettadressen eksisterer og prøv Ã¥ oppdatere siden. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Du prøvde Ã¥ fÃ¥ tilgang til adressen %1 som for øyeblikket er utilgjengelig. Kontroller at nettadressen eksisterer og prøv Ã¥ oppdatere siden. - Connecting to %1 - Kobler til %1 + Connecting to %1 + Kobler til %1 - Sending to %1 - Sender til %1 + Sending to %1 + Sender til %1 - Reading from %1 - Leser fra %1 + Reading from %1 + Leser fra %1 - Download failed: %1. - Nedlasting mislyktes: %1. + Download failed: %1. + Nedlasting mislyktes: %1. - Previous - Forrige + Previous + Forrige - Forward - Fremover + Forward + Fremover - Home - Hjem + Home + Hjem - Refresh - Oppdater + Refresh + Oppdater - Copy - Kopier + Copy + Kopier - Select all - Velg alle + Select all + Velg alle - No description for - Ingen beskrivelse for + No description for + Ingen beskrivelse for - - + + Gui::DocumentModel - Application - Program + Application + Program - Labels & Attributes - Etiketter og attributter + Labels & Attributes + Etiketter og attributter - - + + Gui::EditorView - Modified file - Modifisert fil + Modified file + Modifisert fil - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Dette har blitt endret utenfor kilderedigereren. Vil du laste den pÃ¥ nytt? - Unsaved document - Ulagret dokument + Unsaved document + Ulagret dokument - The document has been modified. + The document has been modified. Do you want to save your changes? - Dokumentet har blitt endret. + Dokumentet har blitt endret. Vil du lagre endringene? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD-makro (*.FCMacro);;Python (*. py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD-makro (*.FCMacro);;Python (*. py) - Export PDF - Eksporter PDF + Export PDF + Eksporter PDF - PDF file (*.pdf) - PDF-fil (*.pdf) + PDF file (*.pdf) + PDF-fil (*.pdf) - untitled[*] - uten navn[*] + untitled[*] + uten navn[*] - - Editor - -Redigerer + - Editor + -Redigerer - %1 chars removed - %1 tegn fjernet + %1 chars removed + %1 tegn fjernet - %1 chars added - %1 tegn lagt til + %1 chars added + %1 tegn lagt til - Formatted - Formatert + Formatted + Formatert - - + + Gui::FileChooser - Select a file - Velg en fil + Select a file + Velg en fil - Select a directory - Velg en mappe + Select a directory + Velg en mappe - - + + Gui::FileDialog - Save as - Lagre som + Save as + Lagre som - Open - Ã…pne + Open + Ã…pne - - + + Gui::FileOptionsDialog - Extended - Utvidet + Extended + Utvidet - All files (*.*) - Alle filer (*.*) + All files (*.*) + Alle filer (*.*) - - + + Gui::Flag - Top left - Øverst til venstre + Top left + Øverst til venstre - Bottom left - Nederst til venstre + Bottom left + Nederst til venstre - Top right - Øverst til høyre + Top right + Øverst til høyre - Bottom right - Nederst til høyre + Bottom right + Nederst til høyre - Remove - Fjern + Remove + Fjern - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Trykk CTRL og venstre museknapp + Press CTRL and left mouse button + Trykk CTRL og venstre museknapp - Press middle mouse button - Trykk pÃ¥ midtre museknapp + Press middle mouse button + Trykk pÃ¥ midtre museknapp - Press left mouse button - Trykk venstre museknapp + Press left mouse button + Trykk venstre museknapp - Scroll middle mouse button - Rull musehjul + Scroll middle mouse button + Rull musehjul - - + + Gui::LocationDialog - Wrong direction - Feil retning + Wrong direction + Feil retning - Direction must not be the null vector - Retningen kan ikke være nullvektoren + Direction must not be the null vector + Retningen kan ikke være nullvektoren - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Brukerdefinert... + User defined... + Brukerdefinert... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makroer + Macros + Makroer - - + + Gui::MainWindow - Dimension - Dimensjon + Dimension + Dimensjon - Ready - Klar + Ready + Klar - Toggles this toolbar - Veksler denne verktøylinjen + Toggles this toolbar + Veksler denne verktøylinjen - Toggles this dockable window - Veksler dette dokkbare vinduet + Toggles this dockable window + Veksler dette dokkbare vinduet - Close All - Lukk alle + Close All + Lukk alle - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Nedlasting har startet... + Nedlasting har startet... - - + + Gui::ProgressBar - Remaining: %1 - GjenstÃ¥ende: %1 + Remaining: %1 + GjenstÃ¥ende: %1 - Aborting - Avbryter + Aborting + Avbryter - Do you really want to abort the operation? - Vil du virkelig avbryte operasjonen? + Do you really want to abort the operation? + Vil du virkelig avbryte operasjonen? - - + + Gui::ProgressDialog - Remaining: %1 - GjenstÃ¥ende: %1 + Remaining: %1 + GjenstÃ¥ende: %1 - Aborting - Avbryter + Aborting + Avbryter - Do you really want to abort the operation? - Vil du virkelig avbryte operasjonen? + Do you really want to abort the operation? + Vil du virkelig avbryte operasjonen? - - + + Gui::PropertyEditor::PropertyModel - Property - Egenskap + Property + Egenskap - Value - Verdi + Value + Verdi - - + + Gui::PropertyView - View - Vis + View + Vis - Data - Data + Data + Data - - + + Gui::PythonConsole - System exit - Systemavsluttning + System exit + Systemavsluttning - The application is still running. + The application is still running. Do you want to exit without saving your data? - Programmet er fremdeles i gang. + Programmet er fremdeles i gang. Ønsker du Ã¥ avslutte uten Ã¥ lagre dine data? - Python console - Pythonkonsoll + Python console + Pythonkonsoll - Unhandled PyCXX exception. - Ubehandlet PyCXX unntak. + Unhandled PyCXX exception. + Ubehandlet PyCXX unntak. - Unhandled FreeCAD exception. - Ubehandlet FreeCAD unntak. + Unhandled FreeCAD exception. + Ubehandlet FreeCAD unntak. - Unhandled unknown C++ exception. - Ubehandlet ukjent C++ unntak. + Unhandled unknown C++ exception. + Ubehandlet ukjent C++ unntak. - &Copy command - &Kopierkommando + &Copy command + &Kopierkommando - &Copy history - &Kopieringshistorie + &Copy history + &Kopieringshistorie - Save history as... - Lagre historie som... + Save history as... + Lagre historie som... - Insert file name... - Sett inn filnavn... + Insert file name... + Sett inn filnavn... - Save History - Lagre Historie + Save History + Lagre Historie - Macro Files (*.FCMacro *.py) - Makrofiler (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Makrofiler (*.FCMacro *.py) - Insert file name - Sett inn filnavn + Insert file name + Sett inn filnavn - All Files (*.*) - Alle filer (*.*) + All Files (*.*) + Alle filer (*.*) - Python Input Dialog - Python inndata dialog + Python Input Dialog + Python inndata dialog - Unhandled std C++ exception. - Ubehandlet std C++ unntak. + Unhandled std C++ exception. + Ubehandlet std C++ unntak. - Word wrap - Tekstbryting + Word wrap + Tekstbryting - &Copy - &Kopier + &Copy + &Kopier - &Paste - &Lim inn + &Paste + &Lim inn - Select All - Merk alle + Select All + Merk alle - - + + Clear console + + + + Gui::PythonEditor - Comment - Kommentar + Comment + Kommentar - Uncomment - Avkommentér + Uncomment + Avkommentér - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Tøm + Clear + Tøm - - + + Gui::RecentFilesAction - Open file %1 - Ã…pne fil %1 + Open file %1 + Ã…pne fil %1 - File not found - Fant ikke filen + File not found + Fant ikke filen - The file '%1' cannot be opened. - Filen '%1' kan ikke Ã¥pnes. + The file '%1' cannot be opened. + Filen '%1' kan ikke Ã¥pnes. - - + + Gui::SelectModule - Select module - Velg modul + Select module + Velg modul - Open %1 as - Ã…pne %1 som + Open %1 as + Ã…pne %1 som - Select - Velg + Select + Velg - - + + Gui::StdCmdDescription - Help - Hjelp + Help + Hjelp - Des&cription - Be&skrivelse + Des&cription + Be&skrivelse - Long description of commands - Lang beskrivelse av kommandoer + Long description of commands + Lang beskrivelse av kommandoer - - + + Gui::StdCmdDownloadOnlineHelp - Help - Hjelp + Help + Hjelp - Download online help - Last ned hjelp fra internett + Download online help + Last ned hjelp fra internett - Download %1's online help - Last ned %1's hjelp fra internett + Download %1's online help + Last ned %1's hjelp fra internett - Non-existing directory - Ikkeeksisterende mappe + Non-existing directory + Ikkeeksisterende mappe - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Mappen '%1' eksisterer ikke. + Mappen '%1' eksisterer ikke. Vil du angi en eksisterende mappe? - Missing permission - Mangler tillatelse + Missing permission + Mangler tillatelse - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Du har ikke skrivetilgang til '%1' + Du har ikke skrivetilgang til '%1' Vil du angi en annen mappe? - Stop downloading - Stopp nedlasting + Stop downloading + Stopp nedlasting - - + + Gui::StdCmdPythonHelp - Tools - Verktøy + Tools + Verktøy - Python Modules - Pythonmoduler + Python Modules + Pythonmoduler - Opens a browser to show the Python modules - Ã…pner en nettleser for Ã¥ vise Pythonmoduler + Opens a browser to show the Python modules + Ã…pner en nettleser for Ã¥ vise Pythonmoduler - - + + Gui::TaskBoxAngle - Angle - Vinkel + Angle + Vinkel - - + + Gui::TaskBoxPosition - Position - Posisjon + Position + Posisjon - - + + Gui::TaskView::TaskAppearance - Display mode: - Visningsmodus: + Display mode: + Visningsmodus: - Plot mode: - Plottmodus: + Plot mode: + Plottmodus: - Point size: - Punktstørrelse: + Point size: + Punktstørrelse: - Line width: - Linjebredde: + Line width: + Linjebredde: - Transparency: - Gjennomsiktighet: + Transparency: + Gjennomsiktighet: - Appearance - Utseende + Appearance + Utseende - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Rediger + Edit + Rediger - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Utseende + Appearance + Utseende - ... - ... + ... + ... - edit selection - redigere utvalg + edit selection + redigere utvalg - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Trykk venstre museknapp + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Engelsk + English + Engelsk - - + + Gui::TreeDockWidget - Tree view - Trevisning + Tree view + Trevisning - - + + Gui::TreeWidget - Create group... - Lag gruppe... + Create group... + Lag gruppe... - Create a group - Lag en gruppe + Create a group + Lag en gruppe - Group - Gruppe + Group + Gruppe - Rename - Omdøp + Rename + Omdøp - Rename object - Omdøp objekt + Rename object + Omdøp objekt - Labels & Attributes - Etiketter og attributter + Labels & Attributes + Etiketter og attributter - Application - Program + Application + Program - Finish editing - Fullfør redigering + Finish editing + Fullfør redigering - Finish editing object - Fullfør Ã¥ redigere objektet + Finish editing object + Fullfør Ã¥ redigere objektet - Activate document - Aktiver dokument + Activate document + Aktiver dokument - Activate document %1 - Aktiver dokument %1 + Activate document %1 + Aktiver dokument %1 - - + + Gui::View3DInventor - Export PDF - Eksporter PDF + Export PDF + Eksporter PDF - PDF file (*.pdf) - PDF-fil (*.pdf) + PDF file (*.pdf) + PDF-fil (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Velg '%1' arbeidsbenk + Select the '%1' workbench + Velg '%1' arbeidsbenk - - + + Position - Form - Skjema + Form + Skjema - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Rutenett magnet i + Grid Snap in + Rutenett magnet i - - + + QDockWidget - Tree view - Trevisning + Tree view + Trevisning - Property view - Egenskapsvisning + Property view + Egenskapsvisning - Selection view - Visning av valg + Selection view + Visning av valg - Report view - Rapportvisning + Report view + Rapportvisning - Task View - Oppgavevisning + Task View + Oppgavevisning - Combo View - Kombinert visning + Combo View + Kombinert visning - Toolbox - Verktøykasse + Toolbox + Verktøykasse - Python console - Pythonkonsoll + Python console + Pythonkonsoll - Display properties - Skjermegenskaper + Display properties + Skjermegenskaper - - + + QObject - General - Generelle + General + Generelle - Display - Skjerm + Display + Skjerm - Unknown filetype - Ukjent filetype + Unknown filetype + Ukjent filetype - Cannot open unknown filetype: %1 - Kan ikke Ã¥pne ukjent filetype: %1 + Cannot open unknown filetype: %1 + Kan ikke Ã¥pne ukjent filetype: %1 - Cannot save to unknown filetype: %1 - Kan ikke lagre til ukjent filetype: %1 + Cannot save to unknown filetype: %1 + Kan ikke lagre til ukjent filetype: %1 - Workbench failure - Arbeidsbenkfeil + Workbench failure + Arbeidsbenkfeil - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Kan ikke starte Qt assistent (%1) + Unable to launch Qt Assistant (%1) + Kan ikke starte Qt assistent (%1) - Exception - Unntak + Exception + Unntak - Open document - Ã…pne dokument + Open document + Ã…pne dokument - Import file - Importer fil + Import file + Importer fil - Export file - Eksporter fil + Export file + Eksporter fil - Printing... - Skriver ut ... + Printing... + Skriver ut ... - Cannot load workbench - Kan ikke laste arbeidsbenk + Cannot load workbench + Kan ikke laste arbeidsbenk - A general error occurred while loading the workbench - En generell feil oppstod under lasting arbeidsbordet + A general error occurred while loading the workbench + En generell feil oppstod under lasting arbeidsbordet - File not found - Fant ikke filen + File not found + Fant ikke filen - Cannot open file %1 - Kan ikke Ã¥pne filen %1 + Cannot open file %1 + Kan ikke Ã¥pne filen %1 - Save views... - Lagre visninger... + Save views... + Lagre visninger... - Load views... - Last visninger... + Load views... + Last visninger... - Freeze view - Frys visning + Freeze view + Frys visning - Clear views - Tøm visninger + Clear views + Tøm visninger - Restore view &%1 - Gjenopprette visning &%1 + Restore view &%1 + Gjenopprette visning &%1 - Save frozen views - Lagre frosne visninger + Save frozen views + Lagre frosne visninger - Frozen views (*.cam) - Frosne visninger (*.cam) + Frozen views (*.cam) + Frosne visninger (*.cam) - Restore views - Gjenopprett visninger + Restore views + Gjenopprett visninger - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importering av gjenopprettede visninger fjerner allerede lagrede visninger. Vil du fortsette? + Importering av gjenopprettede visninger fjerner allerede lagrede visninger. Vil du fortsette? - Restore frozen views - Gjenopprett frosne visninger + Restore frozen views + Gjenopprett frosne visninger - Cannot open file '%1'. - Kan ikke Ã¥pne filen '%1'. + Cannot open file '%1'. + Kan ikke Ã¥pne filen '%1'. - Docked - Forankret + Docked + Forankret - Undocked - Uforankret + Undocked + Uforankret - Fullscreen - Fullskjerm + Fullscreen + Fullskjerm - files - filer + files + filer - Save picture - Lagre bilde + Save picture + Lagre bilde - New sub-group - Nye undergruppe + New sub-group + Nye undergruppe - Enter the name: - Skriv inn navnet: + Enter the name: + Skriv inn navnet: - New text item - Nytt tekstelement + New text item + Nytt tekstelement - Enter your text: - Skriv inn din tekst: + Enter your text: + Skriv inn din tekst: - New integer item - Nytt heltall-element + New integer item + Nytt heltall-element - Enter your number: - Skriv inn nummeret ditt: + Enter your number: + Skriv inn nummeret ditt: - New unsigned item - Nytt usignert element + New unsigned item + Nytt usignert element - New float item - Nytt float-element + New float item + Nytt float-element - New Boolean item - Nytt boolsk element + New Boolean item + Nytt boolsk element - Choose an item: - Velg et element: + Choose an item: + Velg et element: - Rename group - Omdøp gruppe + Rename group + Omdøp gruppe - The group '%1' cannot be renamed. - Gruppen '%1' kan ikke omdøpes. + The group '%1' cannot be renamed. + Gruppen '%1' kan ikke omdøpes. - Existing group - Eksisterende gruppe + Existing group + Eksisterende gruppe - The group '%1' already exists. - Gruppen '%1' finnes allerede. + The group '%1' already exists. + Gruppen '%1' finnes allerede. - Change value - Endre verdi + Change value + Endre verdi - Save document under new filename... - Lagre dokumentet under nytt filnavn... + Save document under new filename... + Lagre dokumentet under nytt filnavn... - Saving aborted - Lagring avbrutt + Saving aborted + Lagring avbrutt - Unsaved document - Ulagret dokument + Unsaved document + Ulagret dokument - Save document before close? - Lagre dokument før det lukkes? + Save document before close? + Lagre dokument før det lukkes? - Save Macro - Lagre makro + Save Macro + Lagre makro - Finish - Fullfør + Finish + Fullfør - Clear - Tøm + Clear + Tøm - Cancel - Avbryt + Cancel + Avbryt - Inner - Indre + Inner + Indre - Outer - Ytre + Outer + Ytre - No Browser - Ingen nettleser + No Browser + Ingen nettleser - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Kan ikke Ã¥pne nettleseren. Vennligst Ã¥pne et nettleservindu og skriv: http://localhost:%1. + Kan ikke Ã¥pne nettleseren. Vennligst Ã¥pne et nettleservindu og skriv: http://localhost:%1. - No Server - Ingen Server + No Server + Ingen Server - Unable to start the server to port %1: %2. - Kan ikke starte serveren til port %1: %2. + Unable to start the server to port %1: %2. + Kan ikke starte serveren til port %1: %2. - Unable to open your system browser. - Kan ikke Ã¥pne systemets nettleser. + Unable to open your system browser. + Kan ikke Ã¥pne systemets nettleser. - Options... - Alternativer... + Options... + Alternativer... - Out of memory - For lite minne + Out of memory + For lite minne - Not enough memory available to display the data. - Ikke nok minne til Ã¥ vise dataene. + Not enough memory available to display the data. + Ikke nok minne til Ã¥ vise dataene. - Cannot find file %1 - Finner ikke filen %1 + Cannot find file %1 + Finner ikke filen %1 - Cannot find file %1 neither in %2 nor in %3 - Finner ikke filen %1 verken i %2 eller i %3 + Cannot find file %1 neither in %2 nor in %3 + Finner ikke filen %1 verken i %2 eller i %3 - Save %1 Document - Lagre %1 dokument + Save %1 Document + Lagre %1 dokument - %1 document (*.FCStd) - %1 dokument (*.FCStd) + %1 document (*.FCStd) + %1 dokument (*.FCStd) - Save As - Lagre som + Save As + Lagre som - %1 already exists. + %1 already exists. Do you want to replace it? - %1 finnes allerede. Vil du erstatte den? + %1 finnes allerede. Vil du erstatte den? - Document not closable - Dokumentet ikke kan lukkes + Document not closable + Dokumentet ikke kan lukkes - The document is not closable for the moment. - Dokumentet kan ikke lukkes for øyeblikket. + The document is not closable for the moment. + Dokumentet kan ikke lukkes for øyeblikket. - No OpenGL - Ingen OpenGL + No OpenGL + Ingen OpenGL - This system does not support OpenGL - Dette systemet støtter ikke OpenGL + This system does not support OpenGL + Dette systemet støtter ikke OpenGL - Help - Hjelp + Help + Hjelp - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Kan ikke laste dokumentasjon. For Ã¥ laste er Qt 4.4 eller høyere er nødvendig. + Kan ikke laste dokumentasjon. For Ã¥ laste er Qt 4.4 eller høyere er nødvendig. - %1 Help - %1 Hjelp + %1 Help + %1 Hjelp - Exporting PDF... - Eksporterer PDF... + Exporting PDF... + Eksporterer PDF... - Wrong selection - Feil valg + Wrong selection + Feil valg - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Bare ett objekt valgt. Velg to objekter. + Bare ett objekt valgt. Velg to objekter. Vær oppmerksom pÃ¥ at punktet hvor du klikker betyr noe. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Velg to objekter. + Velg to objekter. Vær oppmerksom pÃ¥ at punktet hvor du klikker betyr noe. - New boolean item - Nytt boolsk element + New boolean item + Nytt boolsk element - Navigation styles - Navigeringsstiler + Navigation styles + Navigeringsstiler - %1 navigation - %1navigasjon + %1 navigation + %1navigasjon - Move annotation - Flytt merknad + Move annotation + Flytt merknad - Transform - Transformer + Transform + Transformer - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Standardvisning + + + Box selection + + + + StdCmdAbout - Help - Hjelp + Help + Hjelp - &About %1 - &Om %1 + &About %1 + &Om %1 - About %1 - Om %1 + About %1 + Om %1 - - + + StdCmdAboutQt - Help - Hjelp + Help + Hjelp - About &Qt - Om &Qt + About &Qt + Om &Qt - About Qt - Om Qt + About Qt + Om Qt - - + + StdCmdActivateNextWindow - Window - Vindu + Window + Vindu - Ne&xt - Ne&ste + Ne&xt + Ne&ste - Activate next window - Aktiver neste vindu + Activate next window + Aktiver neste vindu - - + + StdCmdActivatePrevWindow - Window - Vindu + Window + Vindu - Pre&vious - For&rige + Pre&vious + For&rige - Activate previous window - Aktiver forrige vindu + Activate previous window + Aktiver forrige vindu - - + + + StdCmdAlignment + + Edit + Rediger + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Vindu + Window + Vindu - Arrange &Icons - Ordne &ikoner + Arrange &Icons + Ordne &ikoner - Arrange Icons - Ordne ikoner + Arrange Icons + Ordne ikoner - - + + StdCmdAxisCross - Standard-View - Standardvisning + Standard-View + Standardvisning - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Vindu + Window + Vindu - &Cascade - &Kaskade + &Cascade + &Kaskade - Tile pragmatic - Still opp praktisk + Tile pragmatic + Still opp praktisk - - + + StdCmdCloseActiveWindow - Window - Vindu + Window + Vindu - Cl&ose - Lu&kk + Cl&ose + Lu&kk - Close active window - Lukk aktivt vindu + Close active window + Lukk aktivt vindu - - + + StdCmdCloseAllWindows - Window - Vindu + Window + Vindu - Close Al&l - Lukk al&le + Close Al&l + Lukk al&le - Close all windows - Lukk alle vinduer + Close all windows + Lukk alle vinduer - - + + StdCmdCommandLine - Tools - Verktøy + Tools + Verktøy - Start command &line... - Ã…pne kommand&olinje... + Start command &line... + Ã…pne kommand&olinje... - Opens the command line in the console - Ã…pner kommandolinje i konsoll + Opens the command line in the console + Ã…pner kommandolinje i konsoll - - + + StdCmdCopy - Edit - Rediger + Edit + Rediger - C&opy - K&opier + C&opy + K&opier - Copy operation - Kopioperasjon + Copy operation + Kopioperasjon - - + + StdCmdCut - Edit - Rediger + Edit + Rediger - &Cut - &Klipp ut + &Cut + &Klipp ut - Cut out - Klipp ut + Cut out + Klipp ut - - + + StdCmdDDuplicateSelection - Edit - Rediger + Edit + Rediger - Duplicate selection - Dupliser valg + Duplicate selection + Dupliser valg - Put duplicates of the selected objects to the active document - Flytt duplikater av de valgte objektene til aktivt dokument + Put duplicates of the selected objects to the active document + Flytt duplikater av de valgte objektene til aktivt dokument - - + + StdCmdDelete - Edit - Rediger + Edit + Rediger - &Delete - &Slett + &Delete + &Slett - Deletes the selected objects - Sletter valgte objekter + Deletes the selected objects + Sletter valgte objekter - - + + StdCmdDemoMode - Standard-View - Standardvisning + Standard-View + Standardvisning - View turntable... - Vis dreieskive... + View turntable... + Vis dreieskive... - View turntable - Vis dreieskive + View turntable + Vis dreieskive - - + + StdCmdDlgCustomize - Tools - Verktøy + Tools + Verktøy - Cu&stomize... - Til&pass... + Cu&stomize... + Til&pass... - Customize toolbars and command bars - Tilpass verktøylinjer og kommandolinjer + Customize toolbars and command bars + Tilpass verktøylinjer og kommandolinjer - - + + StdCmdDlgMacroExecute - Macros ... - Makroer... + Macros ... + Makroer... - Opens a dialog to let you execute a recorded macro - Ã…pner en dialog som lar deg utføre en innspilt makro + Opens a dialog to let you execute a recorded macro + Ã…pner en dialog som lar deg utføre en innspilt makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgMacroExecuteDirect - Macro - Makro + Macro + Makro - Execute macro - Kjør makro + Execute macro + Kjør makro - Execute the macro in the editor - Utføre makroen i redigeringsprogrammet + Execute the macro in the editor + Utføre makroen i redigeringsprogrammet - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makroinnspilling... + &Macro recording ... + &Makroinnspilling... - Opens a dialog to record a macro - Ã…pner en dialog for Ã¥ spille inn makro + Opens a dialog to record a macro + Ã…pner en dialog for Ã¥ spille inn makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgParameter - Tools - Verktøy + Tools + Verktøy - E&dit parameters ... - Re&diger parametere... + E&dit parameters ... + Re&diger parametere... - Opens a Dialog to edit the parameters - Ã…pner en dialog for Ã¥ redigere parametere + Opens a Dialog to edit the parameters + Ã…pner en dialog for Ã¥ redigere parametere - - + + StdCmdDlgPreferences - Tools - Verktøy + Tools + Verktøy - &Preferences ... - &Preferanser ... + &Preferences ... + &Preferanser ... - Opens a Dialog to edit the preferences - Ã…pner en dialog for Ã¥ redigere preferanser + Opens a Dialog to edit the preferences + Ã…pner en dialog for Ã¥ redigere preferanser - - + + StdCmdDockViewMenu - View - Vis + View + Vis - Vie&ws - Vi&sninger + Vie&ws + Vi&sninger - Toggles this window - Veksler dette vinduet + Toggles this window + Veksler dette vinduet - - + + StdCmdDrawStyle - Standard-View - Standardvisning + Standard-View + Standardvisning - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Rediger + + + Duplicate selection + Dupliser valg + + + Put duplicates of the selected objects to the active document + Flytt duplikater av de valgte objektene til aktivt dokument + + + + StdCmdEdit + + Edit + Rediger + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - File + File + File - &Export... - &Eksporter... + &Export... + &Eksporter... - Export an object in the active document - Eksporter et objekt i aktivt dokumentet + Export an object in the active document + Eksporter et objekt i aktivt dokumentet - Supported formats - Støttede formater + Supported formats + Støttede formater - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Verktøy + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - File + File + File - &Recompute - &Oppdater + &Recompute + &Oppdater - Recompute feature or document - Oppdater funksjon eller dokument + Recompute feature or document + Oppdater funksjon eller dokument - - + + StdCmdFreeCADWebsite - Help - Hjelp + Help + Hjelp - FreeCAD Website - FreeCAD nettsted + FreeCAD Website + FreeCAD nettsted - The FreeCAD website - FreeCAD-nettsiden + The FreeCAD website + FreeCAD-nettsiden - - + + StdCmdFreezeViews - Standard-View - Standardvisning + Standard-View + Standardvisning - Freeze display - Frys visning + Freeze display + Frys visning - Freezes the current view position - Fryser gjeldende visningsposisjon + Freezes the current view position + Fryser gjeldende visningsposisjon - - + + StdCmdHideObjects - Standard-View - Standardvisning + Standard-View + Standardvisning - Hide all objects - Skjul alle objekter + Hide all objects + Skjul alle objekter - Hide all objects in the document - Skjul alle objekter i dokumentet + Hide all objects in the document + Skjul alle objekter i dokumentet - - + + StdCmdHideSelection - Standard-View - Standardvisning + Standard-View + Standardvisning - Hide selection - Skjul valgt + Hide selection + Skjul valgt - Hide all selected objects - Skjul alle valgte objekter + Hide all selected objects + Skjul alle valgte objekter - - + + StdCmdImport - File - File + File + File - &Import... - &Importer... + &Import... + &Importer... - Import a file in the active document - Importer en fil inn i det aktive dokumentet + Import a file in the active document + Importer en fil inn i det aktive dokumentet - Supported formats - Støttede formater + Supported formats + Støttede formater - All files (*.*) - Alle filer (*.*) + All files (*.*) + Alle filer (*.*) - - + + StdCmdMacroStartDebug - Macro - Makro + Macro + Makro - Debug macro - Feilsøke makro + Debug macro + Feilsøke makro - Start debugging of macro - Start feilsøking i makro + Start debugging of macro + Start feilsøking i makro - - + + StdCmdMacroStepOver - Macro - Makro + Macro + Makro - Step over - GÃ¥ over + Step over + GÃ¥ over - - + + StdCmdMacroStopDebug - Macro - Makro + Macro + Makro - Stop debugging - Stopp feilsøking + Stop debugging + Stopp feilsøking - Stop debugging of macro - Stopp feilsking av makro + Stop debugging of macro + Stopp feilsking av makro - - + + StdCmdMacroStopRecord - Macro - Makro + Macro + Makro - S&top macro recording - S&top makroinnspilling + S&top macro recording + S&top makroinnspilling - Stop the macro recording session - Stopp makroinnspillingen + Stop the macro recording session + Stopp makroinnspillingen - - + + StdCmdMeasureDistance - View - Vis + View + Vis - Measure distance - MÃ¥l avstand + Measure distance + MÃ¥l avstand - - + + StdCmdMeasurementSimple - Tools - Verktøy + Tools + Verktøy - Mesure distance - MÃ¥l avstand + Mesure distance + MÃ¥l avstand - Measures distance between two selected objects - MÃ¥ler avstanden mellom to merkede objekter + Measures distance between two selected objects + MÃ¥ler avstanden mellom to merkede objekter - - + + Measure distance + MÃ¥l avstand + + + StdCmdMergeProjects - File - File + File + File - Merge project... - Flett prosjekt... + Merge project... + Flett prosjekt... - Merge project - Flett prosjekt + Merge project + Flett prosjekt - %1 document (*.fcstd) - %1 dokument (*.fcstd) + %1 document (*.fcstd) + %1 dokument (*.fcstd) - Cannot merge project with itself. - Kan ikke flette prosjekt med seg selv. + Cannot merge project with itself. + Kan ikke flette prosjekt med seg selv. - - + + StdCmdNew - File - File + File + File - &New - &Ny + &New + &Ny - Create a new empty document - Lag et nytt dokument + Create a new empty document + Lag et nytt dokument - - + + StdCmdOnlineHelp - Help - Hjelp + Help + Hjelp - Show help to the application - Vis hjelp for programmet + Show help to the application + Vis hjelp for programmet - - + + StdCmdOnlineHelpPython - Help - Hjelp + Help + Hjelp - Python Manuals - Python-manualer + Python Manuals + Python-manualer - Show the Python documentation - Vis Python-dokumentasjon + Show the Python documentation + Vis Python-dokumentasjon - - + + StdCmdOnlineHelpWebsite - Help - Hjelp + Help + Hjelp - Help Website - Hjelp-nettsted + Help Website + Hjelp-nettsted - The website where the help is maintained - Nettstedet der hjelp er opprettholdt + The website where the help is maintained + Nettstedet der hjelp er opprettholdt - - + + StdCmdOpen - File - File + File + File - &Open... - &Ã…pne... + &Open... + &Ã…pne... - Open a document or import files - Ã…pne et dokument eller importer filer + Open a document or import files + Ã…pne et dokument eller importer filer - Supported formats - Støttede formater + Supported formats + Støttede formater - All files (*.*) - Alle filer (*.*) + All files (*.*) + Alle filer (*.*) - - + + StdCmdPaste - Edit - Rediger + Edit + Rediger - &Paste - &Lim inn + &Paste + &Lim inn - Paste operation - Lim inn operasjon + Paste operation + Lim inn operasjon - - + + StdCmdPlacement - Edit - Rediger + Edit + Rediger - Placement... - Plassering... + Placement... + Plassering... - Place the selected objects - Plasser de valgte objektene + Place the selected objects + Plasser de valgte objektene - - + + StdCmdPrint - File - File + File + File - &Print... - &Skriv ut... + &Print... + &Skriv ut... - Print the document - Skriv ut dokument + Print the document + Skriv ut dokument - - + + StdCmdPrintPdf - File - File + File + File - &Export PDF... - &Eksporter PDF... + &Export PDF... + &Eksporter PDF... - Export the document as PDF - Eksporter dokumentet som PDF + Export the document as PDF + Eksporter dokumentet som PDF - - + + StdCmdPrintPreview - File - File + File + File - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Skriv ut dokument + Print the document + Skriv ut dokument - Print preview - Print preview + Print preview + Print preview - - + + StdCmdProjectInfo - File - File + File + File - Project i&nformation... - Prosjekti&nformasjon... + Project i&nformation... + Prosjekti&nformasjon... - Show details of the currently active project - Vis detaljer om det aktive prosjektet + Show details of the currently active project + Vis detaljer om det aktive prosjektet - - + + StdCmdProjectUtil - Tools - Verktøy + Tools + Verktøy - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Hjelp + Help + Hjelp - Python Website - Python-nettsted + Python Website + Python-nettsted - The official Python website - Den offisielle nettsiden for Python + The official Python website + Den offisielle nettsiden for Python - - + + StdCmdQuit - File - File + File + File - E&xit - A&vslutt + E&xit + A&vslutt - Quits the application - Avslutter programmet + Quits the application + Avslutter programmet - - + + StdCmdRandomColor - File - File + File + File - Random color - Tilfeldig farge + Random color + Tilfeldig farge - - + + StdCmdRecentFiles - File - File + File + File - Recent files - Nylig brukte filer + Recent files + Nylig brukte filer - Recent file list - Listen over nylig brukte filer + Recent file list + Listen over nylig brukte filer - - + + StdCmdRedo - Edit - Rediger + Edit + Rediger - &Redo - &Gjør om + &Redo + &Gjør om - Redoes a previously undone action - Gjør om en tidligere angret handling + Redoes a previously undone action + Gjør om en tidligere angret handling - - + + StdCmdRefresh - Edit - Rediger + Edit + Rediger - &Refresh - &Oppdater + &Refresh + &Oppdater - Recomputes the current active document - Oppdaterer det gjeldende aktive dokumentet + Recomputes the current active document + Oppdaterer det gjeldende aktive dokumentet - - + + StdCmdSave - File - File + File + File - &Save - &Lagre + &Save + &Lagre - Save the active document - Lagrer det aktive dokumentet + Save the active document + Lagrer det aktive dokumentet - - + + StdCmdSaveAs - File - File + File + File - Save &As... - Lagre &som... + Save &As... + Lagre &som... - Save the active document under a new file name - Lagre aktivt dokument under et nytt filnavn + Save the active document under a new file name + Lagre aktivt dokument under et nytt filnavn - - + + StdCmdSceneInspector - Tools - Verktøy + Tools + Verktøy - Scene inspector... - Sceneinspektør... + Scene inspector... + Sceneinspektør... - Scene inspector - Sceneinspektør + Scene inspector + Sceneinspektør - - + + StdCmdSelectAll - Edit - Rediger + Edit + Rediger - Select &All - Velg &alle + Select &All + Velg &alle - Select all - Velg alle + Select all + Velg alle - - + + StdCmdSetAppearance - Standard-View - Standardvisning + Standard-View + Standardvisning - Appearance... - Utseende... + Appearance... + Utseende... - Sets the display properties of the selected object - Angir visningsegenskaper for valgte objekt + Sets the display properties of the selected object + Angir visningsegenskaper for valgte objekt - - + + StdCmdShowObjects - Standard-View - Standardvisning + Standard-View + Standardvisning - Show all objects - Vis alle objekter + Show all objects + Vis alle objekter - Show all objects in the document - Vis alle objekter i dokument + Show all objects in the document + Vis alle objekter i dokument - - + + StdCmdShowSelection - Standard-View - Standardvisning + Standard-View + Standardvisning - Show selection - Vis valgte + Show selection + Vis valgte - Show all selected objects - Vis alle valgte objekter + Show all selected objects + Vis alle valgte objekter - - + + StdCmdStatusBar - View - Vis + View + Vis - Status bar - Statuslinjen + Status bar + Statuslinjen - Toggles the status bar - Veksler statuslinjen + Toggles the status bar + Veksler statuslinjen - - + + StdCmdTextureMapping - Tools - Verktøy + Tools + Verktøy - Texture mapping... - Teksturtilordning... + Texture mapping... + Teksturtilordning... - Texture mapping - Teksturtilordning + Texture mapping + Teksturtilordning - - + + StdCmdTileWindows - Window - Vindu + Window + Vindu - &Tile - &Still opp + &Tile + &Still opp - Tile the windows - Still opp vinduene + Tile the windows + Still opp vinduene - - + + StdCmdToggleBreakpoint - Macro - Makro + Macro + Makro - Toggle breakpoint - Veksle stopppunkt + Toggle breakpoint + Veksle stopppunkt - - + + StdCmdToggleClipPlane - Standard-View - Standardvisning + Standard-View + Standardvisning - Clipping plane - Beskjæringsplan + Clipping plane + Beskjæringsplan - Toggles clipping plane for active view - Veksler beskjæringsplan for aktiv visning + Toggles clipping plane for active view + Veksler beskjæringsplan for aktiv visning - - + + StdCmdToggleNavigation - Standard-View - Standardvisning + Standard-View + Standardvisning - Toggle navigation/Edit mode - Veksle navigasjon/ redigeringsmodus + Toggle navigation/Edit mode + Veksle navigasjon/ redigeringsmodus - Toggle between navigation and edit mode - Veksle mellom navigasjons- og redigeringsmodus + Toggle between navigation and edit mode + Veksle mellom navigasjons- og redigeringsmodus - - + + StdCmdToggleObjects - Standard-View - Standardvisning + Standard-View + Standardvisning - Toggle all objects - Veksler mellom alle objekter + Toggle all objects + Veksler mellom alle objekter - Toggles visibility of all objects in the active document - Veksler synligheten av alle objekter i det aktive dokumentet + Toggles visibility of all objects in the active document + Veksler synligheten av alle objekter i det aktive dokumentet - - + + StdCmdToggleSelectability - Standard-View - Standardvisning + Standard-View + Standardvisning - Toggle selectability - Veksle valgmulighet + Toggle selectability + Veksle valgmulighet - Toggles the property of the objects to get selected in the 3D-View - Veksler egenskap pÃ¥ objektene for Ã¥ bli merket i 3D-visningen + Toggles the property of the objects to get selected in the 3D-View + Veksler egenskap pÃ¥ objektene for Ã¥ bli merket i 3D-visningen - - + + StdCmdToggleVisibility - Standard-View - Standardvisning + Standard-View + Standardvisning - Toggle visibility - Veksle synlighet + Toggle visibility + Veksle synlighet - Toggles visibility - Veksle synlighet + Toggles visibility + Veksle synlighet - - + + StdCmdToolBarMenu - View - Vis + View + Vis - Tool&bars - Verktøy&linjer + Tool&bars + Verktøy&linjer - Toggles this window - Veksler dette vinduet + Toggles this window + Veksler dette vinduet - - + + StdCmdTransform - Edit - Rediger + Edit + Rediger - Transform... - Transformer... + Transform... + Transformer... - Transform the geometry of selected objects - Transformer geometrien av utvalgte objekter + Transform the geometry of selected objects + Transformer geometrien av utvalgte objekter - - + + StdCmdTreeSelection - View - Vis + View + Vis - Go to selection - GÃ¥ til valg + Go to selection + GÃ¥ til valg - Scroll to first selected item - Bla til første valgte element + Scroll to first selected item + Bla til første valgte element - - + + StdCmdUndo - Edit - Rediger + Edit + Rediger - &Undo - &Angre + &Undo + &Angre - Undo exactly one action - Angre nøyaktig én handling + Undo exactly one action + Angre nøyaktig én handling - - + + StdCmdUserInterface - View - Vis + View + Vis - Dock views - Forankre visninger + Dock views + Forankre visninger - Dock all top-level views - Forankre alle toppnivÃ¥ visninger + Dock all top-level views + Forankre alle toppnivÃ¥ visninger - - + + StdCmdViewAxo - Standard-View - Standardvisning + Standard-View + Standardvisning - Axometric - Axometrisk + Axometric + Axometrisk - Set to axometric view - Sett til axometrisk visning + Set to axometric view + Sett til axometrisk visning - - + + StdCmdViewBottom - Standard-View - Standardvisning + Standard-View + Standardvisning - Bottom - Bunn + Bottom + Bunn - Set to bottom view - Sett til bunnvisning + Set to bottom view + Sett til bunnvisning - - + + StdCmdViewCreate - Standard-View - Standardvisning + Standard-View + Standardvisning - Create new view - Lag ny visning + Create new view + Lag ny visning - Creates a new view window for the active document - Lager et nytt visningsvindu for det aktive dokumentet + Creates a new view window for the active document + Lager et nytt visningsvindu for det aktive dokumentet - - + + StdCmdViewExample1 - Standard-View - Standardvisning + Standard-View + Standardvisning - Inventor example #1 - Oppfinnereksempel #1 + Inventor example #1 + Oppfinnereksempel #1 - Shows a 3D texture with manipulator - Viser en 3D-struktur med manipulator + Shows a 3D texture with manipulator + Viser en 3D-struktur med manipulator - - + + StdCmdViewExample2 - Standard-View - Standardvisning + Standard-View + Standardvisning - Inventor example #2 - Oppfinnereksempel #2 + Inventor example #2 + Oppfinnereksempel #2 - Shows spheres and drag-lights - Viser sfærer og dralys + Shows spheres and drag-lights + Viser sfærer og dralys - - + + StdCmdViewExample3 - Standard-View - Standardvisning + Standard-View + Standardvisning - Inventor example #3 - Oppfinnereksempel #3 + Inventor example #3 + Oppfinnereksempel #3 - Shows a animated texture - Viser en animert tekstur + Shows a animated texture + Viser en animert tekstur - - + + StdCmdViewFitAll - Standard-View - Standardvisning + Standard-View + Standardvisning - Fit all - Pass til alle + Fit all + Pass til alle - Fits the whole content on the screen - Tilpasser hele innholdet til skjerm + Fits the whole content on the screen + Tilpasser hele innholdet til skjerm - - + + StdCmdViewFitSelection - Standard-View - Standardvisning + Standard-View + Standardvisning - Fit selection - Pass til valgte + Fit selection + Pass til valgte - Fits the selected content on the screen - Tilpasser det valgte innhold til skjerm + Fits the selected content on the screen + Tilpasser det valgte innhold til skjerm - - + + StdCmdViewFront - Standard-View - Standardvisning + Standard-View + Standardvisning - Front - Front + Front + Front - Set to front view - Sett til frontvisning + Set to front view + Sett til frontvisning - - + + StdCmdViewIvIssueCamPos - Standard-View - Standardvisning + Standard-View + Standardvisning - Issue camera position - Utsted kameraposisjon + Issue camera position + Utsted kameraposisjon - Issue the camera position to the console and to a macro, to easily recall this position - Utsted kameraposisjon til konsoll og en makro for enkelt Ã¥ hente den fram igjen + Issue the camera position to the console and to a macro, to easily recall this position + Utsted kameraposisjon til konsoll og en makro for enkelt Ã¥ hente den fram igjen - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standardvisning + Standard-View + Standardvisning - Stereo Interleaved Columns - Stereo oppdelte kolonner + Stereo Interleaved Columns + Stereo oppdelte kolonner - Switch stereo viewing to Interleaved Columns - Bytt stereovisning til oppdelte kolonner + Switch stereo viewing to Interleaved Columns + Bytt stereovisning til oppdelte kolonner - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standardvisning + Standard-View + Standardvisning - Stereo Interleaved Rows - Stereo oppdelte rader + Stereo Interleaved Rows + Stereo oppdelte rader - Switch stereo viewing to Interleaved Rows - Bytt stereovisning til oppdelte rader + Switch stereo viewing to Interleaved Rows + Bytt stereovisning til oppdelte rader - - + + StdCmdViewIvStereoOff - Standard-View - Standardvisning + Standard-View + Standardvisning - Stereo Off - Stereo av + Stereo Off + Stereo av - Switch stereo viewing off - SlÃ¥ stereo visning av + Switch stereo viewing off + SlÃ¥ stereo visning av - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standardvisning + Standard-View + Standardvisning - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Bytt stereovisning til quad buffer + Switch stereo viewing to quad buffer + Bytt stereovisning til quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standardvisning + Standard-View + Standardvisning - Stereo red/green - Stereo rød/ grønn + Stereo red/green + Stereo rød/ grønn - Switch stereo viewing to red/green - Bytt stereovisning til rød/ grønn + Switch stereo viewing to red/green + Bytt stereovisning til rød/ grønn - - + + StdCmdViewLeft - Standard-View - Standardvisning + Standard-View + Standardvisning - Left - Venstre + Left + Venstre - Set to left view - Sett til venstrevisning + Set to left view + Sett til venstrevisning - - + + StdCmdViewRear - Standard-View - Standardvisning + Standard-View + Standardvisning - Rear - Bak + Rear + Bak - Set to rear view - Sett til bakvisning + Set to rear view + Sett til bakvisning - - + + StdCmdViewRight - Standard-View - Standardvisning + Standard-View + Standardvisning - Right - Høyre + Right + Høyre - Set to right view - Sett til høyrevisning + Set to right view + Sett til høyrevisning - - + + + StdCmdViewRotateLeft + + Standard-View + Standardvisning + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standardvisning + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standardvisning + Standard-View + Standardvisning - Top - Topp + Top + Topp - Set to top view - Sett til toppvisning + Set to top view + Sett til toppvisning - - + + StdCmdWhatsThis - Help - Hjelp + Help + Hjelp - &What's This? - &Hva er dette? + &What's This? + &Hva er dette? - What's This - Hva er dette + What's This + Hva er dette - - + + StdCmdWindows - Window - Vindu + Window + Vindu - &Windows... - &Vinduer... + &Windows... + &Vinduer... - Windows list - Vindusliste + Windows list + Vindusliste - - + + StdCmdWindowsMenu - Window - Vindu + Window + Vindu - Activates this window - Aktiverer dette vinduet + Activates this window + Aktiverer dette vinduet - - + + StdCmdWorkbench - View - Vis + View + Vis - Workbench - Arbeidsbenk + Workbench + Arbeidsbenk - Switch between workbenches - Bytt mellom arbeidsbenker + Switch between workbenches + Bytt mellom arbeidsbenker - - + + StdOrthographicCamera - Standard-View - Standardvisning + Standard-View + Standardvisning - Orthographic view - Ortografisk visning + Orthographic view + Ortografisk visning - Switches to orthographic view mode - Bytter til ortografisk visningsmodus + Switches to orthographic view mode + Bytter til ortografisk visningsmodus - - + + StdPerspectiveCamera - Standard-View - Standardvisning + Standard-View + Standardvisning - Perspective view - Perspektivvisning + Perspective view + Perspektivvisning - Switches to perspective view mode - Bytter til perspektiv visningsmodus + Switches to perspective view mode + Bytter til perspektiv visningsmodus - - + + StdViewBoxZoom - Standard-View - Standardvisning + Standard-View + Standardvisning - Box zoom - Boks zoom + Box zoom + Boks zoom - - + + StdViewDockUndockFullscreen - Standard-View - Standardvisning + Standard-View + Standardvisning - Document window - Dokument-vinduet + Document window + Dokument-vinduet - Display the active view either in fullscreen, in undocked or docked mode - Vis den aktive visningen enten i fullskjerm, uforankret eller forankret modus + Display the active view either in fullscreen, in undocked or docked mode + Vis den aktive visningen enten i fullskjerm, uforankret eller forankret modus - - + + StdViewScreenShot - Standard-View - Standardvisning + Standard-View + Standardvisning - Save picture... - Lagre bilde... + Save picture... + Lagre bilde... - Creates a screenshot of the active view - Lager en skjermdump av den aktive visningen + Creates a screenshot of the active view + Lager en skjermdump av den aktive visningen - - + + StdViewZoomIn - Standard-View - Standardvisning + Standard-View + Standardvisning - Zoom In - Zoom inn + Zoom In + Zoom inn - - + + StdViewZoomOut - Standard-View - Standardvisning + Standard-View + Standardvisning - Zoom Out - Zoom ut + Zoom Out + Zoom ut - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Fil + &File + &Fil - &Edit - &Rediger + &Edit + &Rediger - Standard views - Standardvisninger + Standard views + Standardvisninger - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Synlighet + Visibility + Synlighet - &View - &Vis + &View + &Vis - &Tools - &Verktøy + &Tools + &Verktøy - &Macro - &Makro + &Macro + &Makro - &Windows - &Vinduer + &Windows + &Vinduer - &On-line help - &Internetthjelp + &On-line help + &Internetthjelp - &Help - &Hjelp + &Help + &Hjelp - File - File + File + File - Macro - Makro + Macro + Makro - View - Vis + View + Vis - Special Ops - Spesielle operasjoner + Special Ops + Spesielle operasjoner - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisOppgavePanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Laget for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisOppgavePanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Laget for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Velg stil for oppgavepanelet + Choose the style of the Task Panel + Velg stil for oppgavepanelet - Default - Standard + Default + Standard - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_pl.ts b/src/Gui/Language/FreeCAD_pl.ts index 0a428556b..21d9889de 100644 --- a/src/Gui/Language/FreeCAD_pl.ts +++ b/src/Gui/Language/FreeCAD_pl.ts @@ -1,5476 +1,5894 @@ - - + + Angle - Form - Form + Form + Form - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - PrzyciÄ…ganie do kÄ…ta + Angle Snap + PrzyciÄ…ganie do kÄ…ta - - 1 ° - 1° + + 1 ° + 1° - - 2 ° - 2° + + 2 ° + 2° - - 5 ° - 5° + + 5 ° + 5° - - 10 ° - 10° + + 10 ° + 10° - - 20 ° - 20° + + 20 ° + 20° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - żaden + none + żaden - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Dodaj + + + Remove + UsuÅ„ + + + Move up + PrzesuÅ„ w górÄ™ + + + Move down + PrzenieÅ› w dół + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - NaciÅ›nij lewy przycisk myszy + Press left mouse button + NaciÅ›nij lewy przycisk myszy - Press SHIFT and middle mouse button - Press SHIFT and middle mouse button + Press SHIFT and middle mouse button + Press SHIFT and middle mouse button - Press middle mouse button - NaciÅ›nij Å›rodkowy przycisk myszy + Press middle mouse button + NaciÅ›nij Å›rodkowy przycisk myszy - Scroll middle mouse button - Scroll middle mouse button + Scroll middle mouse button + Scroll middle mouse button - - + + Gui::CADNavigationStyle - Press left mouse button - NaciÅ›nij lewy przycisk myszy + Press left mouse button + NaciÅ›nij lewy przycisk myszy - Press middle mouse button - NaciÅ›nij Å›rodkowy przycisk myszy + Press middle mouse button + NaciÅ›nij Å›rodkowy przycisk myszy - Press left and middle mouse button - NaciÅ›nij lewy i Å›rodkowy przycisk myszy + Press left and middle mouse button + NaciÅ›nij lewy i Å›rodkowy przycisk myszy - Scroll middle mouse button - Scroll middle mouse button + Scroll middle mouse button + Scroll middle mouse button - - + + Gui::Command - Standard - Standardowy + Standard + Standardowy - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Anuluj + &Cancel + &Anuluj - - + + Gui::ControlSingleton - Task panel - Panel zadaÅ„ + Task panel + Panel zadaÅ„ - - + + Gui::Dialog::AboutApplication - About - O programie + About + O programie - Revision number - Numer wersji + Revision number + Numer wersji - Version - Wersja + Version + Wersja - OK - OK + OK + OK - - + + - Release date - Data wydania + Release date + Data wydania - Platform - Platform + Platform + Platform - License... - License... + License... + License... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Polecenia + Commands + Polecenia - - + + Gui::Dialog::DemoMode - View Turntable - View Turntable + View Turntable + View Turntable - Speed - Szybkość + Speed + Szybkość - Maximum - Maksymalny + Maximum + Maksymalny - Minimum - Minimalny + Minimum + Minimalny - Fullscreen - PeÅ‚ny ekran + Fullscreen + PeÅ‚ny ekran - Enable timer - Włącz czasomierz + Enable timer + Włącz czasomierz - s - s + s + s - Angle - KÄ…t + Angle + KÄ…t + + + 90° + 90 ° + + + -90° + -90 ° - 90° - 90 ° + Play + Odtwórz - -90° - -90 ° + Stop + Zatrzymaj - Play - Odtwórz + Close + Zamknij - - Stop - Zatrzymaj - - - Close - Zamknij - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Wybierz Okno + Choose Window + Wybierz Okno - &Activate - &Aktywuj + &Activate + &Aktywuj - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Anuluj + &Cancel + &Anuluj - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Okna + Windows + Okna - - + + Gui::Dialog::DlgAuthorization - Authorization - Autoryzacja + Authorization + Autoryzacja - &OK - &OK + &OK + &OK - &Cancel - &Anuluj + &Cancel + &Anuluj - Password: - HasÅ‚o: + Password: + HasÅ‚o: - User name: - Nazwa użytkownika: + User name: + Nazwa użytkownika: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Wybierz ikonÄ™ + Choose Icon + Wybierz ikonÄ™ - OK - OK + OK + OK - Cancel - Anuluj + Cancel + Anuluj - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - Makra + Macros + Makra - Setup Custom Macros - Ustawienia niestandardowe makra + Setup Custom Macros + Ustawienia niestandardowe makra - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Obrazek rastrowy + Pixmap + Obrazek rastrowy - Accelerator: - Skrót klawiszowy: + Accelerator: + Skrót klawiszowy: - What's this: - Co to jest: + What's this: + Co to jest: - Status text: - Tekst stanu: + Status text: + Tekst stanu: - Tool tip: - Podpowiedź narzÄ™dzia: + Tool tip: + Podpowiedź narzÄ™dzia: - Menu text: - Tekst menu: + Menu text: + Tekst menu: - Add - Dodaj + Add + Dodaj - Remove - UsuÅ„ + Remove + UsuÅ„ - Replace - ZamieÅ„ + Replace + ZamieÅ„ - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikony + Icons + Ikony - Macros - Makra + Macros + Makra - No macro - Brak makra + No macro + Brak makra - No macros found. - Makra nie znalezione. + No macros found. + Makra nie znalezione. - Macro not found - Nie znaleziono makra + Macro not found + Nie znaleziono makra - Sorry, couldn't find macro file '%1'. - Przepraszam, ale nie odnaleziono pliku makra '%1'. + Sorry, couldn't find macro file '%1'. + Przepraszam, ale nie odnaleziono pliku makra '%1'. - Empty macro - Puste makro + Empty macro + Puste makro - Please specify the macro first. - Najpierw okreÅ›l makro. + Please specify the macro first. + Najpierw okreÅ›l makro. - Empty text - Pusty tekst + Empty text + Pusty tekst - Please specify the menu text first. - Podaj najpierw tekst menu. + Please specify the menu text first. + Podaj najpierw tekst menu. - No item selected - Nie zaznaczono obiektu + No item selected + Nie zaznaczono obiektu - Please select a macro item first. - Wybierz najpierw element makro. + Please select a macro item first. + Wybierz najpierw element makro. - - + + Gui::Dialog::DlgCustomCommands - Commands - Polecenia + Commands + Polecenia - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategoria + Category + Kategoria - Icon - Ikona + Icon + Ikona - Command - Polecenie + Command + Polecenie - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Klawiatura + Keyboard + Klawiatura - Description: - Opis: + Description: + Opis: - &Category: - &Kategoria: + &Category: + &Kategoria: - C&ommands: - &Polecenia: + C&ommands: + &Polecenia: - Current shortcut: - Bieżący skrót: + Current shortcut: + Bieżący skrót: - Press &new shortcut: - NaciÅ›nij &nowy klawisz skrótu: + Press &new shortcut: + NaciÅ›nij &nowy klawisz skrótu: - Currently assigned to: - Aktualnie przypisany do: + Currently assigned to: + Aktualnie przypisany do: - &Assign - &Przypisz + &Assign + &Przypisz - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Resetuj + &Reset + &Resetuj - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Przywróć wszy&stko + Re&set All + Przywróć wszy&stko - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikona + Icon + Ikona - Command - Polecenie + Command + Polecenie - none - żaden + none + żaden - Multiple defined shortcut - Skrót zdefiniowany wielokrotnie + Multiple defined shortcut + Skrót zdefiniowany wielokrotnie - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Skrót '%1' jest zdefiniowany wiÄ™cej niż raz. Może to prowadzić do nieoczekiwanego zachowania. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Skrót '%1' jest zdefiniowany wiÄ™cej niż raz. Może to prowadzić do nieoczekiwanego zachowania. - Already defined shortcut - Skrót już jest zdefiniowany + Already defined shortcut + Skrót już jest zdefiniowany - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Skrót '%1' jest już przypisany do '%2'. ProszÄ™ okreÅ›lić inny skrót. + Skrót '%1' jest już przypisany do '%2'. ProszÄ™ okreÅ›lić inny skrót. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Paski przybornika + Toolbox bars + Paski przybornika - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Paski narzÄ™dzi + Toolbars + Paski narzÄ™dzi - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Uwaga:</span> Zmiany stajÄ… siÄ™ aktywne po nastÄ™pnym zaÅ‚adowanie odpowiedniego warsztatu </p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Uwaga:</span> Zmiany stajÄ… siÄ™ aktywne po nastÄ™pnym zaÅ‚adowanie odpowiedniego warsztatu </p></body></html> - Move right - PrzesuÅ„ w prawo + Move right + PrzesuÅ„ w prawo - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> - Move left - PrzesuÅ„ w lewo + Move left + PrzesuÅ„ w lewo - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> - Move down - PrzenieÅ› w dół + Move down + PrzenieÅ› w dół - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> - Move up - PrzesuÅ„ w górÄ™ + Move up + PrzesuÅ„ w górÄ™ - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> - New... - Nowy... + New... + Nowy... - Rename... - ZmieÅ„ nazwÄ™... + Rename... + ZmieÅ„ nazwÄ™... - Delete - UsuÅ„ + Delete + UsuÅ„ - Icon - Ikona + Icon + Ikona - Command - Polecenie + Command + Polecenie - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Nowy pasek narzÄ™dzi + New toolbar + Nowy pasek narzÄ™dzi - Toolbar name: - Nazwa paska narzÄ™dzi: + Toolbar name: + Nazwa paska narzÄ™dzi: - Duplicated name - Powielona nazwa + Duplicated name + Powielona nazwa - The toolbar name '%1' is already used - Nazwa paska narzÄ™dzi '%1' jest już używana + The toolbar name '%1' is already used + Nazwa paska narzÄ™dzi '%1' jest już używana - Rename toolbar - ZmieÅ„ nazwÄ™ paska narzÄ™dzi + Rename toolbar + ZmieÅ„ nazwÄ™ paska narzÄ™dzi - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Dostosuj + Customize + Dostosuj - &Help - &Pomoc + &Help + &Pomoc - &Close - &Zamknij + &Close + &Zamknij - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Buttons + Buttons + Buttons - Clear - Wyczyść + Clear + Wyczyść - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - WÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania + Display properties + WÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania - Display - WyÅ›wietlanie + Display + WyÅ›wietlanie - Transparency: - Przezroczystość: + Transparency: + Przezroczystość: - Line width: - Szerokość linii: + Line width: + Szerokość linii: - Point size: - Wielkość punktu: + Point size: + Wielkość punktu: - Material - MateriaÅ‚ + Material + MateriaÅ‚ - ... - ... + ... + ... - Close - Zamknij + Close + Zamknij - Viewing mode - Tryb widoku + Viewing mode + Tryb widoku - Display mode: - Tryb wyÅ›wietlania: + Display mode: + Tryb wyÅ›wietlania: - Plot mode: - Tryb kreÅ›lenia: + Plot mode: + Tryb kreÅ›lenia: - - + + - Line transparency: - Line transparency: + Line transparency: + Line transparency: - Line color: - Kolor linii: + Line color: + Kolor linii: - Shape color: - Kolor ksztaÅ‚tu: + Shape color: + Kolor ksztaÅ‚tu: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Edytor + Editor + Edytor - Options - Opcje + Options + Opcje - Enable line numbers - Włącz numery linii + Enable line numbers + Włącz numery linii - Enable folding - Włącz skÅ‚adanie + Enable folding + Włącz skÅ‚adanie - Indentation - WciÄ™cie + Indentation + WciÄ™cie - Insert spaces - Wstaw spacje + Insert spaces + Wstaw spacje - Tab size: - Rozmiar karty: + Tab size: + Rozmiar karty: - Indent size: - Rozmiar wciÄ™cia: + Indent size: + Rozmiar wciÄ™cia: - Keep tabs - Zachowaj karty + Keep tabs + Zachowaj karty - Display Items - Pokaż elementy + Display Items + Pokaż elementy - Family: - Rodzina: + Family: + Rodzina: - Size: - Rozmiar: + Size: + Rozmiar: - Preview: - PodglÄ…d: + Preview: + PodglÄ…d: - - + + - - + + Gui::Dialog::DlgGeneral - General - Ogólne + General + Ogólne - Start up - Uruchamianie + Start up + Uruchamianie - Enable splash screen at start up - Włącz ekran powitalny przy uruchamianiu + Enable splash screen at start up + Włącz ekran powitalny przy uruchamianiu - Switch to tab of report window: - Przełącz na kartÄ™ okna raportu: + Switch to tab of report window: + Przełącz na kartÄ™ okna raportu: - Auto load module after start up: - Po uruchomieniu,Å‚aduj moduÅ‚ automatycznie: + Auto load module after start up: + Po uruchomieniu,Å‚aduj moduÅ‚ automatycznie: - Language - JÄ™zyk + Language + JÄ™zyk - Change language: - ZmieÅ„ jÄ™zyk: + Change language: + ZmieÅ„ jÄ™zyk: - Main window - Okno główne + Main window + Okno główne - Size of recent file list - Rozmiar listy ostatnich plików + Size of recent file list + Rozmiar listy ostatnich plików - Window style: - Styl okna: + Window style: + Styl okna: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - WejÅ›cie + Input + WejÅ›cie - OK - OK + OK + OK - Cancel - Anuluj + Cancel + Anuluj - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Inspektor sceny + Scene Inspector + Inspektor sceny - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Wykonaj makro + Execute macro + Wykonaj makro - Macro name: - Nazwa Makra: + Macro name: + Nazwa Makra: - Macro destination: - Przeznaczenia makra: + Macro destination: + Przeznaczenia makra: - Execute - Wykonaj + Execute + Wykonaj - Close - Zamknij + Close + Zamknij - Create - Utwórz + Create + Utwórz - Delete - UsuÅ„ + Delete + UsuÅ„ - Edit - Edytuj + Edit + Edytuj - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makra + Macros + Makra - Macro file - Plik makra + Macro file + Plik makra - Enter a file name, please: - ProszÄ™ wprowadzić nazwÄ™ pliku: + Enter a file name, please: + ProszÄ™ wprowadzić nazwÄ™ pliku: - Existing file - IstniejÄ…cy plik + Existing file + IstniejÄ…cy plik - '%1'. + '%1'. This file already exists. - '%1'. Ten plik już istnieje. + '%1'. Ten plik już istnieje. - Delete macro - UsuÅ„ makro + Delete macro + UsuÅ„ makro - Do you really want to delete the macro '%1'? - Czy na pewno chcesz usunąć makro '%1'? + Do you really want to delete the macro '%1'? + Czy na pewno chcesz usunąć makro '%1'? - Cannot create file - Nie można utworzyć pliku + Cannot create file + Nie można utworzyć pliku - Creation of file '%1' failed. - Tworzenie pliku %1 nie powiodÅ‚o siÄ™. + Creation of file '%1' failed. + Tworzenie pliku %1 nie powiodÅ‚o siÄ™. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Rejestrowanie makra + Macro recording + Rejestrowanie makra - Macro name: - Nazwa Makra: + Macro name: + Nazwa Makra: - Stop - Zatrzymaj + Stop + Zatrzymaj - Cancel - Anuluj + Cancel + Anuluj - Macro path: - Åšcieżka do makro: + Macro path: + Åšcieżka do makro: - ... - ... + ... + ... - Record - Nagranie + Record + Nagranie - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Rejestrator makr + Macro recorder + Rejestrator makr - Specify first a place to save. - Najpierw okreÅ›l miejsce zapisu. + Specify first a place to save. + Najpierw okreÅ›l miejsce zapisu. - Existing macro - IstniejÄ…ce makro + Existing macro + IstniejÄ…ce makro - The macro '%1' already exists. Do you want to overwrite? - Makro '%1' już istnieje. Czy chcesz zastÄ…pić? + The macro '%1' already exists. Do you want to overwrite? + Makro '%1' już istnieje. Czy chcesz zastÄ…pić? - The macro directory doesn't exist. Please, choose another one. - The macro directory doesn't exist. Please, choose another one. + The macro directory doesn't exist. Please, choose another one. + The macro directory doesn't exist. Please, choose another one. - Choose macro directory - Wybierz folder dla makro + Choose macro directory + Wybierz folder dla makro - - + + Gui::Dialog::DlgMaterialProperties - Material properties - WÅ‚aÅ›ciwoÅ›ci materiaÅ‚u + Material properties + WÅ‚aÅ›ciwoÅ›ci materiaÅ‚u - &Close - &Zamknij + &Close + &Zamknij - Alt+C - Alt+C + Alt+C + Alt+C - Material - MateriaÅ‚ + Material + MateriaÅ‚ - Diffuse color: - Diffuse color: + Diffuse color: + Diffuse color: - Specular color: - Specular color: + Specular color: + Specular color: - Shininess: - PoÅ‚ysk: + Shininess: + PoÅ‚ysk: - % - % + % + % - Ambient color: - Kolor otoczenia: + Ambient color: + Kolor otoczenia: - - + + - Emissive color: - Emissive color: + Emissive color: + Emissive color: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Pomoc on-line + On-line help + Pomoc on-line - Help viewer - PrzeglÄ…darka pomocy + Help viewer + PrzeglÄ…darka pomocy - Location of start page - Lokalizacja strony poczÄ…tkowej + Location of start page + Lokalizacja strony poczÄ…tkowej - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - Pliki HTML (*. html *. htm) + HTML files (*.html *.htm) + Pliki HTML (*. html *. htm) - Access denied - Brak dostÄ™pu + Access denied + Brak dostÄ™pu - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Brak dostÄ™pu do "%1" Podaj inny katalog, proszÄ™. + Brak dostÄ™pu do "%1" Podaj inny katalog, proszÄ™. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Edytor parametrów + Parameter Editor + Edytor parametrów - Save to disk - Zapisz na dysk + Save to disk + Zapisz na dysk - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Zamknij + &Close + &Zamknij - - + + Gui::Dialog::DlgParameterImp - Group - Grupa + Group + Grupa - Name - Nazwa + Name + Nazwa - Type - Typ + Type + Typ - Value - Wartość + Value + Wartość - User parameter - Parametr użytkownika + User parameter + Parametr użytkownika - Invalid input - Niepoprawne dane wejÅ›ciowe + Invalid input + Niepoprawne dane wejÅ›ciowe - Invalid key name '%1' - NieprawidÅ‚owa nazwa klucza '%1' + Invalid key name '%1' + NieprawidÅ‚owa nazwa klucza '%1' - System parameter - Parametr systemu + System parameter + Parametr systemu - - + + Gui::Dialog::DlgPreferences - Preferences - Preferencje + Preferences + Preferencje - &Help - &Pomoc + &Help + &Pomoc - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &OK + &OK + &OK - &Apply - &Zastosuj + &Apply + &Zastosuj - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Anuluj + &Cancel + &Anuluj - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - NieprawidÅ‚owy parametr + Wrong parameter + NieprawidÅ‚owy parametr - - + + Gui::Dialog::DlgProjectInformation - Project information - Informacje o projekcie + Project information + Informacje o projekcie - Information - Informacje + Information + Informacje - &Name: - &Nazwa: + &Name: + &Nazwa: - Commen&t: - Komen&tarz: + Commen&t: + Komen&tarz: - Path: - Åšcieżka: + Path: + Åšcieżka: - &Last modified by: - &Ostatnio zmodyfikowan6 przez: + &Last modified by: + &Ostatnio zmodyfikowan6 przez: - Created &by: - Utworzony przez: + Created &by: + Utworzony przez: - Com&pany: - &Firma: + Com&pany: + &Firma: - Last &modification date: - Data ostatniej &modyfikacji: + Last &modification date: + Data ostatniej &modyfikacji: - Creation &date: - &Data utworzenia: + Creation &date: + &Data utworzenia: - &OK - &OK + &OK + &OK - &Cancel - &Anuluj + &Cancel + &Anuluj - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Source + Source + Source - Project file (*.fcstd) - Project file (*.fcstd) + Project file (*.fcstd) + Project file (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extract + Extract + Extract - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - Utwórz + Create + Utwórz - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Okno wyjÅ›ciowe + Output window + Okno wyjÅ›ciowe - Output - WyjÅ›cie + Output + WyjÅ›cie - Record log messages - Rejestruj wiadomoÅ›ci dziennika + Record log messages + Rejestruj wiadomoÅ›ci dziennika - Record warnings - Rejestruj ostrzeżenia + Record warnings + Rejestruj ostrzeżenia - Record error messages - Rejestruj komunikaty błędów + Record error messages + Rejestruj komunikaty błędów - Colors - Kolory + Colors + Kolory - Normal messages: - ZwykÅ‚e wiadomoÅ›ci: + Normal messages: + ZwykÅ‚e wiadomoÅ›ci: - Log messages: - WiadomoÅ›ci dziennika: + Log messages: + WiadomoÅ›ci dziennika: - Warnings: - Ostrzeżenia: + Warnings: + Ostrzeżenia: - Errors: - Błędy: + Errors: + Błędy: - - + + - Redirect internal Python errors to report view - Redirect internal Python errors to report view + Redirect internal Python errors to report view + Redirect internal Python errors to report view - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - Uruchamianie zewnÄ™trznego programu + Running external program + Uruchamianie zewnÄ™trznego programu - TextLabel - TextLabel + TextLabel + TextLabel - Advanced >> - Zaawansowane>> + Advanced >> + Zaawansowane>> - ... - ... + ... + ... - Accept changes - Potwierdź zmiany + Accept changes + Potwierdź zmiany - Discard changes - Porzuć zmiany + Discard changes + Porzuć zmiany - Abort program - Wyjdź z programu + Abort program + Wyjdź z programu - Help - Pomoc + Help + Pomoc - Select a file - Wybierz plik + Select a file + Wybierz plik - - + + Gui::Dialog::DlgSettings3DView - 3D View - Widok 3D + 3D View + Widok 3D - 3D View settings - Ustawienia widoku 3D + 3D View settings + Ustawienia widoku 3D - Show coordinate system in the corner - Pokaż w rogu ukÅ‚adu współrzÄ™dnych + Show coordinate system in the corner + Pokaż w rogu ukÅ‚adu współrzÄ™dnych - Show counter of frames per second - Pokaż licznik klatek na sekundÄ™ + Show counter of frames per second + Pokaż licznik klatek na sekundÄ™ - Enable animation - Włącz animacjÄ™ + Enable animation + Włącz animacjÄ™ - Enable anti-aliasing (slower) - Włącz wygÅ‚adzanie (wolniejsze) + Enable anti-aliasing (slower) + Włącz wygÅ‚adzanie (wolniejsze) - Eye to eye distance for stereo modes: - OdlegÅ‚ość pomiÄ™dzy oczami dla trybów stereo: + Eye to eye distance for stereo modes: + OdlegÅ‚ość pomiÄ™dzy oczami dla trybów stereo: - Camera type - Typ projekcji + Camera type + Typ projekcji - Orthographic rendering - Rzutowanie równolegÅ‚e + Orthographic rendering + Rzutowanie równolegÅ‚e - Perspective rendering - Rzutowanie perspektywiczne + Perspective rendering + Rzutowanie perspektywiczne - - + + - 3D Navigation - Nawigacja 3D + 3D Navigation + Nawigacja 3D - Mouse... - Mysz... + Mouse... + Mysz... - Intensity of backlight - Intensywność podÅ›wietlenia + Intensity of backlight + Intensywność podÅ›wietlenia - Enable backlight color - Włącz podÅ›wietlenie + Enable backlight color + Włącz podÅ›wietlenie - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigation + %1 navigation + %1 navigation - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Kolor modelu + Color model + Kolor modelu - &Gradient: - &Gradient: + &Gradient: + &Gradient: - red-yellow-green-cyan-blue - czerwono-żółto-zielono-błękitny-niebieski + red-yellow-green-cyan-blue + czerwono-żółto-zielono-błękitny-niebieski - blue-cyan-green-yellow-red - niebiesko-błękitny-zielono-żółto-czerwony + blue-cyan-green-yellow-red + niebiesko-błękitny-zielono-żółto-czerwony - white-black - biaÅ‚o-czarne + white-black + biaÅ‚o-czarne - black-white - czarno-biaÅ‚y + black-white + czarno-biaÅ‚y - Visibility - Widoczność + Visibility + Widoczność - Out g&rayed - Out g&rayed + Out g&rayed + Out g&rayed - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Out &invisible + Out &invisible + Out &invisible - Alt+I - Alt+l + Alt+I + Alt+l - Style - Styl + Style + Styl - &Zero - &Zero + &Zero + &Zero - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flow + &Flow + &Flow - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Anuluj + &Cancel + &Anuluj - Parameter range - zakres parametru + Parameter range + zakres parametru - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Mak&simum: + Ma&ximum: + Mak&simum: - &Labels: - &Etykiety: + &Labels: + &Etykiety: - &Decimals: - &Miejsca dziesiÄ™tne: + &Decimals: + &Miejsca dziesiÄ™tne: - - + + - Color-gradient settings - Ustawienia kolorów gradientu + Color-gradient settings + Ustawienia kolorów gradientu - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - NieprawidÅ‚owy parametr + Wrong parameter + NieprawidÅ‚owy parametr - The maximum value must be higher than the minimum value. - Wartość maksymalna musi być wyższa niż wartość minimalna. + The maximum value must be higher than the minimum value. + Wartość maksymalna musi być wyższa niż wartość minimalna. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokument + Document + Dokument - General - Ogólne + General + Ogólne - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Poziom kompresji zapisu dokumentu (0 = brak, 9 = najwyższy, 3 = domyÅ›lny) + Poziom kompresji zapisu dokumentu (0 = brak, 9 = najwyższy, 3 = domyÅ›lny) - Create new document at start up - Utwórz nowy dokument w trakcie uruchamiania + Create new document at start up + Utwórz nowy dokument w trakcie uruchamiania - Storage - Storage + Storage + Storage - Saving transactions (Auto-save) - Zapisywania transakcji (Autozapis) + Saving transactions (Auto-save) + Zapisywania transakcji (Autozapis) - Discard saved transaction after saving document - Discard saved transaction after saving document + Discard saved transaction after saving document + Discard saved transaction after saving document - Save thumbnail into project file when saving document - Podczas zapisywania dokumentu zapisz miniaturÄ™ do pliku projektu + Save thumbnail into project file when saving document + Podczas zapisywania dokumentu zapisz miniaturÄ™ do pliku projektu - Create up to backup files when resaving document - Create up to backup files when resaving document + Create up to backup files when resaving document + Create up to backup files when resaving document - Document objects - Obiekty dokumentu + Document objects + Obiekty dokumentu - Allow duplicate object labels in one document - Allow duplicate object labels in one document + Allow duplicate object labels in one document + Allow duplicate object labels in one document - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Tekst + Text + Tekst - Bookmark - ZakÅ‚adka + Bookmark + ZakÅ‚adka - Breakpoint - PuÅ‚apka/Breakpoint + Breakpoint + PuÅ‚apka/Breakpoint - Keyword - SÅ‚owo kluczowe + Keyword + SÅ‚owo kluczowe - Comment - Komentarz + Comment + Komentarz - Block comment - Komentarz blokowy + Block comment + Komentarz blokowy - Number - Liczba + Number + Liczba - String - CiÄ…g + String + CiÄ…g - Character - Znak + Character + Znak - Class name - Nazwa klasy + Class name + Nazwa klasy - Define name - OkreÅ›l nazwÄ™ + Define name + OkreÅ›l nazwÄ™ - Operator - Operator + Operator + Operator - Python output - WyjÅ›cie Pythona + Python output + WyjÅ›cie Pythona - Python error - Błąd Pythona + Python error + Błąd Pythona - Items - Elementy + Items + Elementy - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Ustawienia obrazka + Image settings + Ustawienia obrazka - Image properties - WÅ‚aÅ›ciwoÅ›ci obrazka + Image properties + WÅ‚aÅ›ciwoÅ›ci obrazka - Back&ground: - &TÅ‚o: + Back&ground: + &TÅ‚o: - Current - Bieżący + Current + Bieżący - White - BiaÅ‚y + White + BiaÅ‚y - Black - Czarny + Black + Czarny - Transparent - Przezroczysty + Transparent + Przezroczysty - Image dimensions - Wymiary obrazu + Image dimensions + Wymiary obrazu - Pixel - Piksel + Pixel + Piksel - &Width: - &Szerokość: + &Width: + &Szerokość: - Current screen - Bieżący ekran + Current screen + Bieżący ekran - Icon 32 x 32 - Ikona 32 x 32 + Icon 32 x 32 + Ikona 32 x 32 - Icon 64 x 64 - Ikona 64 x 64 + Icon 64 x 64 + Ikona 64 x 64 - Icon 128 x 128 - Ikona 128 x 128 + Icon 128 x 128 + Ikona 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standardowe wymiary: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Wysokość: - Standard sizes: - Standardowe wymiary: + Aspect ratio: + Proporcje obrazu: - &Height: - &Wysokość: + &Screen + &Ekran - Aspect ratio: - Proporcje obrazu: + Alt+S + Alt+S - &Screen - &Ekran + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Komentarz do obrazka - Alt+1 - Alt+1 + Insert MIBA + Wstaw MIBA - Image comment - Komentarz do obrazka + Insert comment + Wstaw komentarz - - Insert MIBA - Wstaw MIBA - - - Insert comment - Wstaw komentarz - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makro + Macro + Makro - Macro recording settings - Ustawienia nagrywania makra + Macro recording settings + Ustawienia nagrywania makra - Logging Commands - Rejestrowanie poleceÅ„ + Logging Commands + Rejestrowanie poleceÅ„ - Show script commands in python console - Pokaż polecenia skryptu w konsoli Pythona + Show script commands in python console + Pokaż polecenia skryptu w konsoli Pythona - Log all commands issued by menus to file: - Log all commands issued by menus to file: + Log all commands issued by menus to file: + Log all commands issued by menus to file: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Polecenia Gui + Gui commands + Polecenia Gui - Recording GUI commands - Nagrywanie poleceÅ„ GUI + Recording GUI commands + Nagrywanie poleceÅ„ GUI - Record as comment - Zarejestruj jako komentarz + Record as comment + Zarejestruj jako komentarz - Macro path - Åšcieżka makra + Macro path + Åšcieżka makra - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Jednostki + Units + Jednostki - Units settings - Jednostki-Ustawienia + Units settings + Jednostki-Ustawienia - Standard (mm/kg/s/degree) - Standardowe (mm/kg/s/stopieÅ„) + Standard (mm/kg/s/degree) + Standardowe (mm/kg/s/stopieÅ„) - MKS (m/kg/s/degree) - MKS (m/kg/s/degree) + MKS (m/kg/s/degree) + MKS (m/kg/s/degree) - Magnitude - Magnitude + Magnitude + Magnitude - Unit - Jednostka + Unit + Jednostka - User system: - User system: + User system: + User system: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Kolory + Colors + Kolory - Selection - Zaznaczanie + Selection + Zaznaczanie - Enable selection highlighting - Włącz podÅ›wietlanie zaznaczenia + Enable selection highlighting + Włącz podÅ›wietlanie zaznaczenia - Enable preselection highlighting - Enable preselection highlighting + Enable preselection highlighting + Enable preselection highlighting - Background color - Kolor tÅ‚a + Background color + Kolor tÅ‚a - Middle color - Kolor poÅ›redni + Middle color + Kolor poÅ›redni - Color gradient - Gradient kolorów + Color gradient + Gradient kolorów - Simple color - Pojedynczy kolor + Simple color + Pojedynczy kolor - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Podpowiedź dnia + Tip of the day + Podpowiedź dnia - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - &Show tips at start up - Pokaż porady przy uruchamianiu + &Show tips at start up + Pokaż porady przy uruchamianiu - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &NastÄ™pna porada + &Next Tip + &NastÄ™pna porada - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Zamknij + &Close + &Zamknij - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Pobieranie zakoÅ„czone niepowodzeniem: %1 + Pobieranie zakoÅ„czone niepowodzeniem: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - JeÅ›li chcesz dowiedzieć siÄ™ wiÄ™cej o FreeCAD musisz udać siÄ™ do %1 lub nacisnąć Pomoc w menu Pomoc. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + JeÅ›li chcesz dowiedzieć siÄ™ wiÄ™cej o FreeCAD musisz udać siÄ™ do %1 lub nacisnąć Pomoc w menu Pomoc. - - + + Gui::Dialog::DockablePlacement - Placement - Umiejscowienie + Placement + Umiejscowienie - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + Anuluj + + + Close + Zamknij + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Pobieranie nie powiodÅ‚o siÄ™:%1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - Input vector + Input vector + Input vector - Vector - Wektor + Vector + Wektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Przyciski myszy + Mouse buttons + Przyciski myszy - Configuration - Configuration + Configuration + Configuration - Selection: - Selection: + Selection: + Selection: - Panning - Panning + Panning + Panning - Rotation: - Obrót: + Rotation: + Obrót: - Zooming: - PowiÄ™kszanie: + Zooming: + PowiÄ™kszanie: - - + + Gui::Dialog::ParameterGroup - Expand - RozwiÅ„ + Expand + RozwiÅ„ - Add sub-group - Dodaj podgrupÄ™ + Add sub-group + Dodaj podgrupÄ™ - Remove group - UsuÅ„ grupÄ™ + Remove group + UsuÅ„ grupÄ™ - Rename group - ZmieÅ„ nazwÄ™ grupy + Rename group + ZmieÅ„ nazwÄ™ grupy - Export parameter - Eksportuj parametr + Export parameter + Eksportuj parametr - Import parameter - Importuj parametr + Import parameter + Importuj parametr - Collapse - ZwiÅ„ + Collapse + ZwiÅ„ - Do really want to remove this parameter group? - Czy na pewno chcesz usunąć ten parametr grupy? + Do really want to remove this parameter group? + Czy na pewno chcesz usunąć ten parametr grupy? - Existing sub-group - IstniejÄ…ca podgrupa + Existing sub-group + IstniejÄ…ca podgrupa - The sub-group '%1' already exists. - Podgrupa '%1' już istnieje. + The sub-group '%1' already exists. + Podgrupa '%1' już istnieje. - Export parameter to file - Eksportowanie parametru do pliku + Export parameter to file + Eksportowanie parametru do pliku - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Importuj parametr z pliku + Import parameter from file + Importuj parametr z pliku - Import Error - Błąd importu + Import Error + Błąd importu - Reading from '%1' failed. - Odczyt z '%1' nie powiódÅ‚ siÄ™. + Reading from '%1' failed. + Odczyt z '%1' nie powiódÅ‚ siÄ™. - - + + Gui::Dialog::ParameterValue - Change value - ZmieÅ„ wartość + Change value + ZmieÅ„ wartość - Remove key - UsuÅ„ klucz + Remove key + UsuÅ„ klucz - Rename key - ZmieÅ„ nazwÄ™ klucza + Rename key + ZmieÅ„ nazwÄ™ klucza - New - Nowy + New + Nowy - New string item - Nowy obiekt ciÄ…gu znaków + New string item + Nowy obiekt ciÄ…gu znaków - New float item - Nowy obiekt liczby zmiennoprzecinkowej + New float item + Nowy obiekt liczby zmiennoprzecinkowej - New integer item - Nowy obiekt liczby caÅ‚kowitej + New integer item + Nowy obiekt liczby caÅ‚kowitej - New unsigned item - New unsigned item + New unsigned item + New unsigned item - New Boolean item - Nowy obiekt Boolean + New Boolean item + Nowy obiekt Boolean - Existing item - IstniejÄ…cy element + Existing item + IstniejÄ…cy element - The item '%1' already exists. - Element '%1' już istnieje. + The item '%1' already exists. + Element '%1' już istnieje. - - + + Gui::Dialog::Placement - Placement - Umiejscowienie + Placement + Umiejscowienie - OK - OK + OK + OK - Translation: - PrzesuniÄ™cie: + Translation: + PrzesuniÄ™cie: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Obrót: + Rotation: + Obrót: - Angle: - KÄ…t: + Angle: + KÄ…t: - Axis: - OÅ›: + Axis: + OÅ›: - Center: - Center: + Center: + Center: - Pitch: - Pitch: + Pitch: + Pitch: - Roll: - Roll: + Roll: + Roll: - Yaw: - Yaw: + Yaw: + Yaw: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Euler angles + Euler angles + Euler angles - Apply placement changes immediately - Apply placement changes immediately + Apply placement changes immediately + Apply placement changes immediately - Apply incremental changes to object placement - Apply incremental changes to object placement + Apply incremental changes to object placement + Apply incremental changes to object placement - Apply - Zastosuj + Apply + Zastosuj - Reset - Reset + Reset + Reset - Close - Zamknij + Close + Zamknij - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - Polecenie + Command + Polecenie - - + + Gui::Dialog::SceneInspector - Dialog - Okno dialogowe + Dialog + Okno dialogowe - Close - Zamknij + Close + Zamknij - Refresh - OdÅ›wież + Refresh + OdÅ›wież - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor Tree + Inventor Tree + Inventor Tree - Nodes - WÄ™zÅ‚y + Nodes + WÄ™zÅ‚y - - + + Gui::Dialog::TextureMapping - Texture - Tekstura + Texture + Tekstura - Texture mapping - Texture mapping + Texture mapping + Texture mapping - Global - Global + Global + Global - Environment - Environment + Environment + Environment - Image files (%1) - Image files (%1) + Image files (%1) + Image files (%1) - No image - No image + No image + No image - The specified file is not a valid image file. - OkreÅ›lony plik nie jest prawidÅ‚owym plikiem obrazu. + The specified file is not a valid image file. + OkreÅ›lony plik nie jest prawidÅ‚owym plikiem obrazu. - No 3d view - Brak widoku 3D + No 3d view + Brak widoku 3D - No active 3d view found. - No active 3d view found. + No active 3d view found. + No active 3d view found. - - + + Gui::Dialog::Transform - Cancel - Anuluj + Cancel + Anuluj - Transform - Przekształć + Transform + Przekształć - - + + Gui::DlgTreeWidget - Dialog - Okno dialogowe + Dialog + Okno dialogowe - Items - Elementy + Items + Elementy - OK - OK + OK + OK - Cancel - Anuluj + Cancel + Anuluj - - + + - - + + Gui::DockWnd::CombiView - CombiView - MultiWidok + CombiView + MultiWidok - Project - Projekt + Project + Projekt - Tasks - Zadania + Tasks + Zadania - - + + Gui::DockWnd::HelpView - Previous - Poprzedni + Previous + Poprzedni - Next - NastÄ™pny + Next + NastÄ™pny - Home - Domowy + Home + Domowy - Open - Otwórz + Open + Otwórz - Open file - Otwórz plik + Open file + Otwórz plik - All HTML files (*.html *.htm) - Wszystkie pliki HTML (*. html *. htm) + All HTML files (*.html *.htm) + Wszystkie pliki HTML (*. html *. htm) - External browser - ZewnÄ™trzna przeglÄ…darka + External browser + ZewnÄ™trzna przeglÄ…darka - No external browser found. Specify in preferences, please - Nie znaleziono zewnÄ™trznej przeglÄ…darki. OkreÅ›l jÄ… w preferencjach, + No external browser found. Specify in preferences, please + Nie znaleziono zewnÄ™trznej przeglÄ…darki. OkreÅ›l jÄ… w preferencjach, - Starting of %1 failed - Uruchomienie %1 nie powiodÅ‚o siÄ™ + Starting of %1 failed + Uruchomienie %1 nie powiodÅ‚o siÄ™ - - + + Gui::DockWnd::PropertyDockView - Property View - Drzewo wÅ‚aÅ›ciwoÅ›ci + Property View + Drzewo wÅ‚aÅ›ciwoÅ›ci - - + + Gui::DockWnd::ReportOutput - Logging - Rejestrowanie + Logging + Rejestrowanie - Warning - Ostrzeżenie + Warning + Ostrzeżenie - Error - Błąd + Error + Błąd - Options - Opcje + Options + Opcje - Clear - Wyczyść + Clear + Wyczyść - Save As... - Zapisz jako... + Save As... + Zapisz jako... - Save Report Output - Zapisz wyjÅ›cie raportu + Save Report Output + Zapisz wyjÅ›cie raportu - Plain Text Files (*.txt *.log) - Pliki tekstowe (*. txt *. log) + Plain Text Files (*.txt *.log) + Pliki tekstowe (*. txt *. log) - Go to end - Go to end + Go to end + Go to end - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - Przekieruj błędy Pythona + Redirect Python errors + Przekieruj błędy Pythona - - + + Gui::DockWnd::ReportView - Output - WyjÅ›cie + Output + WyjÅ›cie - Python console - Konsola Pythona + Python console + Konsola Pythona - - + + Gui::DockWnd::SelectionView - Property View - Drzewo wÅ‚aÅ›ciwoÅ›ci + Property View + Drzewo wÅ‚aÅ›ciwoÅ›ci - - + + Gui::DockWnd::TaskPanelView - Task View - Widok zadaÅ„ + Task View + Widok zadaÅ„ - - + + Gui::DockWnd::TextBrowser - Could not open file. - Nie można otworzyć pliku. + Could not open file. + Nie można otworzyć pliku. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Próbowano uzyskać dostÄ™p do adresu%1, który jest obecnie niedostÄ™pny. Upewnij siÄ™, że adres URL istnieje i spróbuj ponownie wczytać stronÄ™. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Próbowano uzyskać dostÄ™p do adresu%1, który jest obecnie niedostÄ™pny. Upewnij siÄ™, że adres URL istnieje i spróbuj ponownie wczytać stronÄ™. - Connecting to %1 - ÅÄ…czenie z %1 + Connecting to %1 + ÅÄ…czenie z %1 - Sending to %1 - WysyÅ‚anie do %1 + Sending to %1 + WysyÅ‚anie do %1 - Reading from %1 - Odczyt z %1 + Reading from %1 + Odczyt z %1 - Download failed: %1. - Pobieranie nie powiodÅ‚o siÄ™:%1. + Download failed: %1. + Pobieranie nie powiodÅ‚o siÄ™:%1. - Previous - Poprzedni + Previous + Poprzedni - Forward - Do przodu + Forward + Do przodu - Home - Domowy + Home + Domowy - Refresh - OdÅ›wież + Refresh + OdÅ›wież - Copy - Kopiuj + Copy + Kopiuj - Select all - Zaznacz wszystko + Select all + Zaznacz wszystko - No description for - Brak opisu dla + No description for + Brak opisu dla - - + + Gui::DocumentModel - Application - Program + Application + Program - Labels & Attributes - Etykiety i atrybuty + Labels & Attributes + Etykiety i atrybuty - - + + Gui::EditorView - Modified file - Zmodyfikowany plik + Modified file + Zmodyfikowany plik - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. ZostaÅ‚ zmodyfikowany spoza edytora. Czy chcesz go przeÅ‚adować? + %1. ZostaÅ‚ zmodyfikowany spoza edytora. Czy chcesz go przeÅ‚adować? - Unsaved document - Niezapisany dokument + Unsaved document + Niezapisany dokument - The document has been modified. + The document has been modified. Do you want to save your changes? - Dokument zostaÅ‚ zmieniony. Czy chcesz zapisać zmiany? + Dokument zostaÅ‚ zmieniony. Czy chcesz zapisać zmiany? - FreeCAD macro (*.FCMacro);;Python (*.py) - makro FreeCAD (*. FCMacro), Python (*. py) + FreeCAD macro (*.FCMacro);;Python (*.py) + makro FreeCAD (*. FCMacro), Python (*. py) - Export PDF - Eksportuj do PDF + Export PDF + Eksportuj do PDF - PDF file (*.pdf) - plik PDF (*. pdf) + PDF file (*.pdf) + plik PDF (*. pdf) - untitled[*] - bez nazwy [*] + untitled[*] + bez nazwy [*] - - Editor - - Edytor + - Editor + - Edytor - %1 chars removed - UsuniÄ™te %1 znaków + %1 chars removed + UsuniÄ™te %1 znaków - %1 chars added - Dodane %1 znaków + %1 chars added + Dodane %1 znaków - Formatted - Sformatowany + Formatted + Sformatowany - - + + Gui::FileChooser - Select a file - Wybierz plik + Select a file + Wybierz plik - Select a directory - Wybierz Katalog + Select a directory + Wybierz Katalog - - + + Gui::FileDialog - Save as - Zapisz jako + Save as + Zapisz jako - Open - Otwórz + Open + Otwórz - - + + Gui::FileOptionsDialog - Extended - Rozszerzony + Extended + Rozszerzony - All files (*.*) - Wszystkie pliki (*.*) + All files (*.*) + Wszystkie pliki (*.*) - - + + Gui::Flag - Top left - Lewy górny + Top left + Lewy górny - Bottom left - Lewy dolny + Bottom left + Lewy dolny - Top right - Prawy górny + Top right + Prawy górny - Bottom right - Prawy dolny + Bottom right + Prawy dolny - Remove - UsuÅ„ + Remove + UsuÅ„ - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - NaciÅ›nij klawisz CTRL i lewy przycisk myszy + Press CTRL and left mouse button + NaciÅ›nij klawisz CTRL i lewy przycisk myszy - Press middle mouse button - NaciÅ›nij Å›rodkowy przycisk myszy + Press middle mouse button + NaciÅ›nij Å›rodkowy przycisk myszy - Press left mouse button - NaciÅ›nij lewy przycisk myszy + Press left mouse button + NaciÅ›nij lewy przycisk myszy - Scroll middle mouse button - Scroll middle mouse button + Scroll middle mouse button + Scroll middle mouse button - - + + Gui::LocationDialog - Wrong direction - ZÅ‚y kierunek + Wrong direction + ZÅ‚y kierunek - Direction must not be the null vector - Kierunek nie może być wektorem zerowym + Direction must not be the null vector + Kierunek nie może być wektorem zerowym - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Zdefiniowane przez użytkownika... + User defined... + Zdefiniowane przez użytkownika... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makra + Macros + Makra - - + + Gui::MainWindow - Dimension - Wymiar + Dimension + Wymiar - Ready - Gotowe + Ready + Gotowe - Toggles this toolbar - Włącza/wyłącza ten pasek narzÄ™dzi + Toggles this toolbar + Włącza/wyłącza ten pasek narzÄ™dzi - Toggles this dockable window - Włącza/wyłącza to okno dokujÄ…ce + Toggles this dockable window + Włącza/wyłącza to okno dokujÄ…ce - Close All - Close All + Close All + Close All - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - RozpoczÄ™to pobieranie... + RozpoczÄ™to pobieranie... - - + + Gui::ProgressBar - Remaining: %1 - PozostaÅ‚o: %1 + Remaining: %1 + PozostaÅ‚o: %1 - Aborting - Przerywanie + Aborting + Przerywanie - Do you really want to abort the operation? - Czy na pewno chcesz przerwać tÄ™ operacjÄ™? + Do you really want to abort the operation? + Czy na pewno chcesz przerwać tÄ™ operacjÄ™? - - + + Gui::ProgressDialog - Remaining: %1 - PozostaÅ‚o: %1 + Remaining: %1 + PozostaÅ‚o: %1 - Aborting - Przerywanie + Aborting + Przerywanie - Do you really want to abort the operation? - Czy na pewno chcesz przerwać tÄ™ operacjÄ™? + Do you really want to abort the operation? + Czy na pewno chcesz przerwać tÄ™ operacjÄ™? - - + + Gui::PropertyEditor::PropertyModel - Property - WÅ‚aÅ›ciwoÅ›ci + Property + WÅ‚aÅ›ciwoÅ›ci - Value - Wartość + Value + Wartość - - + + Gui::PropertyView - View - Widok + View + Widok - Data - Dane + Data + Dane - - + + Gui::PythonConsole - System exit - WyjÅ›cie z systemu + System exit + WyjÅ›cie z systemu - The application is still running. + The application is still running. Do you want to exit without saving your data? - Aplikacja jest wciąż dziaÅ‚a. Czy chcesz wyjść bez zapisywania danych? + Aplikacja jest wciąż dziaÅ‚a. Czy chcesz wyjść bez zapisywania danych? - Python console - Konsola Pythona + Python console + Konsola Pythona - Unhandled PyCXX exception. - NieobsÅ‚ugiwany wyjÄ…tek PyCXX. + Unhandled PyCXX exception. + NieobsÅ‚ugiwany wyjÄ…tek PyCXX. - Unhandled FreeCAD exception. - NieobsÅ‚ugiwany wyjÄ…tek FreeCAD. + Unhandled FreeCAD exception. + NieobsÅ‚ugiwany wyjÄ…tek FreeCAD. - Unhandled unknown C++ exception. - NieobsÅ‚ugiwany nieznany wyjÄ…tek C++. + Unhandled unknown C++ exception. + NieobsÅ‚ugiwany nieznany wyjÄ…tek C++. - &Copy command - &Kopiuj polecenie + &Copy command + &Kopiuj polecenie - &Copy history - &Kopiuj historiÄ™ + &Copy history + &Kopiuj historiÄ™ - Save history as... - Zapisz historiÄ™ jako... + Save history as... + Zapisz historiÄ™ jako... - Insert file name... - Wstaw nazwÄ™ pliku... + Insert file name... + Wstaw nazwÄ™ pliku... - Save History - Zapisz historiÄ™ + Save History + Zapisz historiÄ™ - Macro Files (*.FCMacro *.py) - Pliki makra (FCMacro *. *. py) + Macro Files (*.FCMacro *.py) + Pliki makra (FCMacro *. *. py) - Insert file name - Wstaw nazwÄ™ pliku + Insert file name + Wstaw nazwÄ™ pliku - All Files (*.*) - Wszystkie pliki (*.*) + All Files (*.*) + Wszystkie pliki (*.*) - Python Input Dialog - Okno dialogowe wejÅ›cia Pythona + Python Input Dialog + Okno dialogowe wejÅ›cia Pythona - Unhandled std C++ exception. - Unhandled std C++ exception. + Unhandled std C++ exception. + Unhandled std C++ exception. - Word wrap - Word wrap + Word wrap + Word wrap - &Copy - Kopiuj + &Copy + Kopiuj - &Paste - Wklej + &Paste + Wklej - Select All - Zaznacz wszystko + Select All + Zaznacz wszystko - - + + Clear console + + + + Gui::PythonEditor - Comment - Komentarz + Comment + Komentarz - Uncomment - Odkomentuj + Uncomment + Odkomentuj - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Wyczyść + Clear + Wyczyść - - + + Gui::RecentFilesAction - Open file %1 - Otwórz plik %1 + Open file %1 + Otwórz plik %1 - File not found - Nie znaleziono pliku + File not found + Nie znaleziono pliku - The file '%1' cannot be opened. - Plik '%1' nie może być otwarty. + The file '%1' cannot be opened. + Plik '%1' nie może być otwarty. - - + + Gui::SelectModule - Select module - Wybierz moduÅ‚ + Select module + Wybierz moduÅ‚ - Open %1 as - Otwórz %1 jako + Open %1 as + Otwórz %1 jako - Select - Wybierz + Select + Wybierz - - + + Gui::StdCmdDescription - Help - Pomoc + Help + Pomoc - Des&cription - &Opis + Des&cription + &Opis - Long description of commands - DÅ‚ugi opis poleceÅ„ + Long description of commands + DÅ‚ugi opis poleceÅ„ - - + + Gui::StdCmdDownloadOnlineHelp - Help - Pomoc + Help + Pomoc - Download online help - Pobierz pomoc online + Download online help + Pobierz pomoc online - Download %1's online help - Pobierz %1 z pomocy online + Download %1's online help + Pobierz %1 z pomocy online - Non-existing directory - Katalog nie istnieje + Non-existing directory + Katalog nie istnieje - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Katalog '% 1' nie istnieje.Chcesz wybrać istniejÄ…cy katalog? + Katalog '% 1' nie istnieje.Chcesz wybrać istniejÄ…cy katalog? - Missing permission - Brak uprawnieÅ„ + Missing permission + Brak uprawnieÅ„ - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Nie masz uprawnienie do zapisu do '% 1' Czy chcesz okreÅ›lić inny katalog? + Nie masz uprawnienie do zapisu do '% 1' Czy chcesz okreÅ›lić inny katalog? - Stop downloading - Zatrzymanie pobierania + Stop downloading + Zatrzymanie pobierania - - + + Gui::StdCmdPythonHelp - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Python Modules - ModuÅ‚y Pythona + Python Modules + ModuÅ‚y Pythona - Opens a browser to show the Python modules - Otwiera przeglÄ…darkÄ™, aby pokazać moduÅ‚y Pythona + Opens a browser to show the Python modules + Otwiera przeglÄ…darkÄ™, aby pokazać moduÅ‚y Pythona - - + + Gui::TaskBoxAngle - Angle - KÄ…t + Angle + KÄ…t - - + + Gui::TaskBoxPosition - Position - Position + Position + Position - - + + Gui::TaskView::TaskAppearance - Display mode: - Tryb wyÅ›wietlania: + Display mode: + Tryb wyÅ›wietlania: - Plot mode: - Tryb kreÅ›lenia: + Plot mode: + Tryb kreÅ›lenia: - Point size: - Wielkość punktu: + Point size: + Wielkość punktu: - Line width: - Szerokość linii: + Line width: + Szerokość linii: - Transparency: - Przezroczystość: + Transparency: + Przezroczystość: - Appearance - WyglÄ…d + Appearance + WyglÄ…d - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Edytuj + Edit + Edytuj - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - WyglÄ…d + Appearance + WyglÄ…d - ... - ... + ... + ... - edit selection - edit selection + edit selection + edit selection - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + NaciÅ›nij lewy przycisk myszy + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Angielski + English + Angielski - - + + Gui::TreeDockWidget - Tree view - Widok drzewa + Tree view + Widok drzewa - - + + Gui::TreeWidget - Create group... - Tworzenie grup... + Create group... + Tworzenie grup... - Create a group - Utwórz grupÄ™ + Create a group + Utwórz grupÄ™ - Group - Grupa + Group + Grupa - Rename - ZmieÅ„ nazwÄ™ + Rename + ZmieÅ„ nazwÄ™ - Rename object - Zmiana nazwy obiektu + Rename object + Zmiana nazwy obiektu - Labels & Attributes - Etykiety i atrybuty + Labels & Attributes + Etykiety i atrybuty - Application - Program + Application + Program - Finish editing - Finish editing + Finish editing + Finish editing - Finish editing object - Finish editing object + Finish editing object + Finish editing object - Activate document - Activate document + Activate document + Activate document - Activate document %1 - Activate document %1 + Activate document %1 + Activate document %1 - - + + Gui::View3DInventor - Export PDF - Eksportuj do PDF + Export PDF + Eksportuj do PDF - PDF file (*.pdf) - plik PDF (*. pdf) + PDF file (*.pdf) + plik PDF (*. pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Wybierz warsztat '%1' + Select the '%1' workbench + Wybierz warsztat '%1' - - + + Position - Form - Form + Form + Form - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Grid Snap in + Grid Snap in + Grid Snap in - - + + QDockWidget - Tree view - Widok drzewa + Tree view + Widok drzewa - Property view - WÅ‚aÅ›ciwoÅ›ci widoku + Property view + WÅ‚aÅ›ciwoÅ›ci widoku - Selection view - Wybór widoku + Selection view + Wybór widoku - Report view - Widok raportu + Report view + Widok raportu - Task View - Widok zadaÅ„ + Task View + Widok zadaÅ„ - Combo View - Widok połączony + Combo View + Widok połączony - Toolbox - Przybornik + Toolbox + Przybornik - Python console - Konsola Pythona + Python console + Konsola Pythona - Display properties - WÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania + Display properties + WÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania - - + + QObject - General - Ogólne + General + Ogólne - Display - WyÅ›wietlanie + Display + WyÅ›wietlanie - Unknown filetype - Nieznany typ pliku + Unknown filetype + Nieznany typ pliku - Cannot open unknown filetype: %1 - Nie można otworzyć pliku nieznanego typu: %1 + Cannot open unknown filetype: %1 + Nie można otworzyć pliku nieznanego typu: %1 - Cannot save to unknown filetype: %1 - Nie można zapisać do pliku nieznanego typu: %1 + Cannot save to unknown filetype: %1 + Nie można zapisać do pliku nieznanego typu: %1 - Workbench failure - Awaria Warsztatu + Workbench failure + Awaria Warsztatu - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Nie można uruchomić Qt Assistant (%1) + Unable to launch Qt Assistant (%1) + Nie można uruchomić Qt Assistant (%1) - Exception - WyjÄ…tek + Exception + WyjÄ…tek - Open document - Otwórz dokument + Open document + Otwórz dokument - Import file - Importuj plik + Import file + Importuj plik - Export file - Eksportuj plik + Export file + Eksportuj plik - Printing... - Drukowanie... + Printing... + Drukowanie... - Cannot load workbench - Nie można zaÅ‚adować warsztatu + Cannot load workbench + Nie można zaÅ‚adować warsztatu - A general error occurred while loading the workbench - WystÄ…piÅ‚ błąd ogólny podczas Å‚adowania warsztatu + A general error occurred while loading the workbench + WystÄ…piÅ‚ błąd ogólny podczas Å‚adowania warsztatu - File not found - Nie znaleziono pliku + File not found + Nie znaleziono pliku - Cannot open file %1 - Nie można otworzyć pliku %1 + Cannot open file %1 + Nie można otworzyć pliku %1 - Save views... - Zapisz widoki... + Save views... + Zapisz widoki... - Load views... - ZaÅ‚aduj widoki... + Load views... + ZaÅ‚aduj widoki... - Freeze view - Zamróź widok + Freeze view + Zamróź widok - Clear views - Wyczyść widoki + Clear views + Wyczyść widoki - Restore view &%1 - Przywróć widok &%1 + Restore view &%1 + Przywróć widok &%1 - Save frozen views - Zapisz zamrożone widoki + Save frozen views + Zapisz zamrożone widoki - Frozen views (*.cam) - Zamrożone widoki (*.cam) + Frozen views (*.cam) + Zamrożone widoki (*.cam) - Restore views - Przywróć widoki + Restore views + Przywróć widoki - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importowanie przywróconych widoków wyczyÅ›ci już przechowywane widoki. Czy chcesz kontynuować? + Importowanie przywróconych widoków wyczyÅ›ci już przechowywane widoki. Czy chcesz kontynuować? - Restore frozen views - Przywracanie zamrożonego Widoku + Restore frozen views + Przywracanie zamrożonego Widoku - Cannot open file '%1'. - Nie można otworzyć pliku '%1'. + Cannot open file '%1'. + Nie można otworzyć pliku '%1'. - Docked - Zadokowany + Docked + Zadokowany - Undocked - Niezadokowany + Undocked + Niezadokowany - Fullscreen - PeÅ‚ny ekran + Fullscreen + PeÅ‚ny ekran - files - pliki + files + pliki - Save picture - Zapisz obrazek + Save picture + Zapisz obrazek - New sub-group - Nowe podgrupy + New sub-group + Nowe podgrupy - Enter the name: - Wprowadź nazwÄ™: + Enter the name: + Wprowadź nazwÄ™: - New text item - Nowy obiekt tekstowy + New text item + Nowy obiekt tekstowy - Enter your text: - Wprowadź tekst: + Enter your text: + Wprowadź tekst: - New integer item - Nowy obiekt liczby caÅ‚kowitej + New integer item + Nowy obiekt liczby caÅ‚kowitej - Enter your number: - Wpisz liczbÄ™: + Enter your number: + Wpisz liczbÄ™: - New unsigned item - New unsigned item + New unsigned item + New unsigned item - New float item - Nowy obiekt liczby zmiennoprzecinkowej + New float item + Nowy obiekt liczby zmiennoprzecinkowej - New Boolean item - Nowy obiekt Boolean + New Boolean item + Nowy obiekt Boolean - Choose an item: - Wybierz obiekt: + Choose an item: + Wybierz obiekt: - Rename group - ZmieÅ„ nazwÄ™ grupy + Rename group + ZmieÅ„ nazwÄ™ grupy - The group '%1' cannot be renamed. - Nie można zmienić nazwy Grupy %1. + The group '%1' cannot be renamed. + Nie można zmienić nazwy Grupy %1. - Existing group - Grupa istniejÄ…ca + Existing group + Grupa istniejÄ…ca - The group '%1' already exists. - Już istnieje Grupa %1. + The group '%1' already exists. + Już istnieje Grupa %1. - Change value - ZmieÅ„ wartość + Change value + ZmieÅ„ wartość - Save document under new filename... - Zapisz dokument pod nowÄ… nazwÄ™ pliku ... + Save document under new filename... + Zapisz dokument pod nowÄ… nazwÄ™ pliku ... - Saving aborted - Zapisywanie przerwane + Saving aborted + Zapisywanie przerwane - Unsaved document - Niezapisany dokument + Unsaved document + Niezapisany dokument - Save document before close? - Zapisać dokument przed zamkniÄ™ciem? + Save document before close? + Zapisać dokument przed zamkniÄ™ciem? - Save Macro - Zapisz makro + Save Macro + Zapisz makro - Finish - ZakoÅ„cz + Finish + ZakoÅ„cz - Clear - Wyczyść + Clear + Wyczyść - Cancel - Anuluj + Cancel + Anuluj - Inner - WewnÄ™trzny + Inner + WewnÄ™trzny - Outer - ZewnÄ™trzny + Outer + ZewnÄ™trzny - No Browser - Brak przeglÄ…darki + No Browser + Brak przeglÄ…darki - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Nie można otworzyć przeglÄ…darki. ProszÄ™ otworzyć okno przeglÄ…darki i wpisać: http://localhost:% 1. + Nie można otworzyć przeglÄ…darki. ProszÄ™ otworzyć okno przeglÄ…darki i wpisać: http://localhost:% 1. - No Server - Brak serwera + No Server + Brak serwera - Unable to start the server to port %1: %2. - Nie można uruchomić serwera na porcie %1: %2. + Unable to start the server to port %1: %2. + Nie można uruchomić serwera na porcie %1: %2. - Unable to open your system browser. - Nie można otworzyć przeglÄ…darki systemowej. + Unable to open your system browser. + Nie można otworzyć przeglÄ…darki systemowej. - Options... - Opcje... + Options... + Opcje... - Out of memory - Brak pamiÄ™ci + Out of memory + Brak pamiÄ™ci - Not enough memory available to display the data. - Za maÅ‚o pamiÄ™ci, aby wyÅ›wietlić dane. + Not enough memory available to display the data. + Za maÅ‚o pamiÄ™ci, aby wyÅ›wietlić dane. - Cannot find file %1 - Pliku %1 nie znaleziono + Cannot find file %1 + Pliku %1 nie znaleziono - Cannot find file %1 neither in %2 nor in %3 - Nie znaleziono pliku %1 w %2, ani w %3 + Cannot find file %1 neither in %2 nor in %3 + Nie znaleziono pliku %1 w %2, ani w %3 - Save %1 Document - Zapis Dokumentu %1. + Save %1 Document + Zapis Dokumentu %1. - %1 document (*.FCStd) - Dokument %1 (*.FCStd) + %1 document (*.FCStd) + Dokument %1 (*.FCStd) - Save As - Zapisz jako + Save As + Zapisz jako - %1 already exists. + %1 already exists. Do you want to replace it? - %1 już istnieje. Czy chcesz go zastÄ…pić? + %1 już istnieje. Czy chcesz go zastÄ…pić? - Document not closable - Nie można zamknąć Dokumentu + Document not closable + Nie można zamknąć Dokumentu - The document is not closable for the moment. - Nie można zamknąć dokumentu w tym momencie. + The document is not closable for the moment. + Nie można zamknąć dokumentu w tym momencie. - No OpenGL - No OpenGL + No OpenGL + No OpenGL - This system does not support OpenGL - Ten system nie obsÅ‚uguje OpenGL + This system does not support OpenGL + Ten system nie obsÅ‚uguje OpenGL - Help - Pomoc + Help + Pomoc - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Nie można zaÅ‚adować dokumentacji. Wymagany Qt 4.4 lub nowszy. + Nie można zaÅ‚adować dokumentacji. Wymagany Qt 4.4 lub nowszy. - %1 Help - %1 - Pomoc + %1 Help + %1 - Pomoc - Exporting PDF... - Exporting PDF... + Exporting PDF... + Exporting PDF... - Wrong selection - NiewÅ‚aÅ›ciwy wybór + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Tylko jeden przedmiot wybrany. ProszÄ™ wybrać dwa obiekty. PamiÄ™taj, miejsce w którym klikasz ma znaczenie. + Tylko jeden przedmiot wybrany. ProszÄ™ wybrać dwa obiekty. PamiÄ™taj, miejsce w którym klikasz ma znaczenie. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - ProszÄ™ wybrać dwa obiekty. PamiÄ™taj, miejsce w którym klikasz ma znaczenie. + ProszÄ™ wybrać dwa obiekty. PamiÄ™taj, miejsce w którym klikasz ma znaczenie. - New boolean item - New boolean item + New boolean item + New boolean item - Navigation styles - Style nawigacji + Navigation styles + Style nawigacji - %1 navigation - %1 navigation + %1 navigation + %1 navigation - Move annotation - Przenieść adnotacjÄ™ + Move annotation + Przenieść adnotacjÄ™ - Transform - Przekształć + Transform + Przekształć - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Normalny widok + + + Box selection + + + + StdCmdAbout - Help - Pomoc + Help + Pomoc - &About %1 - &Informacje o %1 + &About %1 + &Informacje o %1 - About %1 - O %1 + About %1 + O %1 - - + + StdCmdAboutQt - Help - Pomoc + Help + Pomoc - About &Qt - Informacje o &Qt + About &Qt + Informacje o &Qt - About Qt - O Qt + About Qt + O Qt - - + + StdCmdActivateNextWindow - Window - Okno + Window + Okno - Ne&xt - Dalej + Ne&xt + Dalej - Activate next window - Uaktywnij nastÄ™pne okno + Activate next window + Uaktywnij nastÄ™pne okno - - + + StdCmdActivatePrevWindow - Window - Okno + Window + Okno - Pre&vious - Wstecz + Pre&vious + Wstecz - Activate previous window - Uaktywnij poprzednie okno + Activate previous window + Uaktywnij poprzednie okno - - + + + StdCmdAlignment + + Edit + Edytuj + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Okno + Window + Okno - Arrange &Icons - Arrange &Icons + Arrange &Icons + Arrange &Icons - Arrange Icons - Rozmieść ikony + Arrange Icons + Rozmieść ikony - - + + StdCmdAxisCross - Standard-View - Normalny widok + Standard-View + Normalny widok - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Okno + Window + Okno - &Cascade - &Cascade + &Cascade + &Cascade - Tile pragmatic - Tile pragmatic + Tile pragmatic + Tile pragmatic - - + + StdCmdCloseActiveWindow - Window - Okno + Window + Okno - Cl&ose - ZAMKNIJ + Cl&ose + ZAMKNIJ - Close active window - Zamknij aktywne okno + Close active window + Zamknij aktywne okno - - + + StdCmdCloseAllWindows - Window - Okno + Window + Okno - Close Al&l - Close Al&l + Close Al&l + Close Al&l - Close all windows - Zamknij wszystkie okna + Close all windows + Zamknij wszystkie okna - - + + StdCmdCommandLine - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Start command &line... - &Linia poleceÅ„... + Start command &line... + &Linia poleceÅ„... - Opens the command line in the console - Otwiera wiersz poleceÅ„ w konsoli + Opens the command line in the console + Otwiera wiersz poleceÅ„ w konsoli - - + + StdCmdCopy - Edit - Edytuj + Edit + Edytuj - C&opy - C&opy + C&opy + C&opy - Copy operation - Skopiuj operacjÄ™ + Copy operation + Skopiuj operacjÄ™ - - + + StdCmdCut - Edit - Edytuj + Edit + Edytuj - &Cut - Wytnij + &Cut + Wytnij - Cut out - Wytnij + Cut out + Wytnij - - + + StdCmdDDuplicateSelection - Edit - Edytuj + Edit + Edytuj - Duplicate selection - Powiel zaznaczone + Duplicate selection + Powiel zaznaczone - Put duplicates of the selected objects to the active document - Umieść kopie wybranych obiektów do aktywnego dokumentu + Put duplicates of the selected objects to the active document + Umieść kopie wybranych obiektów do aktywnego dokumentu - - + + StdCmdDelete - Edit - Edytuj + Edit + Edytuj - &Delete - UsuÅ„ + &Delete + UsuÅ„ - Deletes the selected objects - Usuwa zaznaczone obiekty + Deletes the selected objects + Usuwa zaznaczone obiekty - - + + StdCmdDemoMode - Standard-View - Normalny widok + Standard-View + Normalny widok - View turntable... - View turntable... + View turntable... + View turntable... - View turntable - View turntable + View turntable + View turntable - - + + StdCmdDlgCustomize - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Cu&stomize... - Dostosuj... + Cu&stomize... + Dostosuj... - Customize toolbars and command bars - Dostosuj paski narzÄ™dzi i paski poleceÅ„ + Customize toolbars and command bars + Dostosuj paski narzÄ™dzi i paski poleceÅ„ - - + + StdCmdDlgMacroExecute - Macros ... - Makra ... + Macros ... + Makra ... - Opens a dialog to let you execute a recorded macro - Pozwala wykonać zarejestrowane makro + Opens a dialog to let you execute a recorded macro + Pozwala wykonać zarejestrowane makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgMacroExecuteDirect - Macro - Makro + Macro + Makro - Execute macro - Wykonaj makro + Execute macro + Wykonaj makro - Execute the macro in the editor - Wykonaj makro w edytorze + Execute the macro in the editor + Wykonaj makro w edytorze - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Macro recording ... + &Macro recording ... + &Macro recording ... - Opens a dialog to record a macro - Rejestruje makro + Opens a dialog to record a macro + Rejestruje makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgParameter - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - E&dit parameters ... - E&dycja parametrów + E&dit parameters ... + E&dycja parametrów - Opens a Dialog to edit the parameters - Edytuje parametry + Opens a Dialog to edit the parameters + Edytuje parametry - - + + StdCmdDlgPreferences - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - &Preferences ... - &Preferencje + &Preferences ... + &Preferencje - Opens a Dialog to edit the preferences - Zmienia preferencje + Opens a Dialog to edit the preferences + Zmienia preferencje - - + + StdCmdDockViewMenu - View - Widok + View + Widok - Vie&ws - W&idoki + Vie&ws + W&idoki - Toggles this window - Toggles this window + Toggles this window + Toggles this window - - + + StdCmdDrawStyle - Standard-View - Normalny widok + Standard-View + Normalny widok - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Edytuj + + + Duplicate selection + Powiel zaznaczone + + + Put duplicates of the selected objects to the active document + Umieść kopie wybranych obiektów do aktywnego dokumentu + + + + StdCmdEdit + + Edit + Edytuj + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Plik + File + Plik - &Export... - Eksportuj... + &Export... + Eksportuj... - Export an object in the active document - Eksport obiektu w aktywnym dokumencie + Export an object in the active document + Eksport obiektu w aktywnym dokumencie - Supported formats - ObsÅ‚ugiwane formaty + Supported formats + ObsÅ‚ugiwane formaty - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + NarzÄ™dzia + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Plik + File + Plik - &Recompute - & Przelicz + &Recompute + & Przelicz - Recompute feature or document - Recompute feature or document + Recompute feature or document + Recompute feature or document - - + + StdCmdFreeCADWebsite - Help - Pomoc + Help + Pomoc - FreeCAD Website - Strona FreeCAD + FreeCAD Website + Strona FreeCAD - The FreeCAD website - Na stronie FreeCAD + The FreeCAD website + Na stronie FreeCAD - - + + StdCmdFreezeViews - Standard-View - Normalny widok + Standard-View + Normalny widok - Freeze display - Freeze display + Freeze display + Freeze display - Freezes the current view position - Zamraża bieżący Widok + Freezes the current view position + Zamraża bieżący Widok - - + + StdCmdHideObjects - Standard-View - Normalny widok + Standard-View + Normalny widok - Hide all objects - Ukryj wszystkie obiekty + Hide all objects + Ukryj wszystkie obiekty - Hide all objects in the document - Hide all objects in the document + Hide all objects in the document + Hide all objects in the document - - + + StdCmdHideSelection - Standard-View - Normalny widok + Standard-View + Normalny widok - Hide selection - Ukryj zaznaczone + Hide selection + Ukryj zaznaczone - Hide all selected objects - Ukryj wszystkie zaznaczone obiekty + Hide all selected objects + Ukryj wszystkie zaznaczone obiekty - - + + StdCmdImport - File - Plik + File + Plik - &Import... - &Import... + &Import... + &Import... - Import a file in the active document - Import pliku do aktywnego dokumentu + Import a file in the active document + Import pliku do aktywnego dokumentu - Supported formats - ObsÅ‚ugiwane formaty + Supported formats + ObsÅ‚ugiwane formaty - All files (*.*) - Wszystkie pliki (*.*) + All files (*.*) + Wszystkie pliki (*.*) - - + + StdCmdMacroStartDebug - Macro - Makro + Macro + Makro - Debug macro - Debug macro + Debug macro + Debug macro - Start debugging of macro - Start debugging of macro + Start debugging of macro + Start debugging of macro - - + + StdCmdMacroStepOver - Macro - Makro + Macro + Makro - Step over - Step over + Step over + Step over - - + + StdCmdMacroStopDebug - Macro - Makro + Macro + Makro - Stop debugging - Stop debugging + Stop debugging + Stop debugging - Stop debugging of macro - Stop debugging of macro + Stop debugging of macro + Stop debugging of macro - - + + StdCmdMacroStopRecord - Macro - Makro + Macro + Makro - S&top macro recording - Z&atrzymaj nagrywanie makra + S&top macro recording + Z&atrzymaj nagrywanie makra - Stop the macro recording session - Stop the macro recording session + Stop the macro recording session + Stop the macro recording session - - + + StdCmdMeasureDistance - View - Widok + View + Widok - Measure distance - Pomiar odlegÅ‚oÅ›ci + Measure distance + Pomiar odlegÅ‚oÅ›ci - - + + StdCmdMeasurementSimple - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Mesure distance - Zmierz odlegÅ‚ość + Mesure distance + Zmierz odlegÅ‚ość - Measures distance between two selected objects - Zmierz odlegÅ‚ość miÄ™dzy dwoma wybranymi obiektami + Measures distance between two selected objects + Zmierz odlegÅ‚ość miÄ™dzy dwoma wybranymi obiektami - - + + Measure distance + Pomiar odlegÅ‚oÅ›ci + + + StdCmdMergeProjects - File - Plik + File + Plik - Merge project... - Merge project... + Merge project... + Merge project... - Merge project - Merge project + Merge project + Merge project - %1 document (*.fcstd) - %1 document (*.fcstd) + %1 document (*.fcstd) + %1 document (*.fcstd) - Cannot merge project with itself. - Cannot merge project with itself. + Cannot merge project with itself. + Cannot merge project with itself. - - + + StdCmdNew - File - Plik + File + Plik - &New - &Nowy + &New + &Nowy - Create a new empty document - Utwórz nowy pusty dokument + Create a new empty document + Utwórz nowy pusty dokument - - + + StdCmdOnlineHelp - Help - Pomoc + Help + Pomoc - Show help to the application - Pomoc + Show help to the application + Pomoc - - + + StdCmdOnlineHelpPython - Help - Pomoc + Help + Pomoc - Python Manuals - PodrÄ™czniki Python + Python Manuals + PodrÄ™czniki Python - Show the Python documentation - Pokaż dokumentacjÄ™ Pythona + Show the Python documentation + Pokaż dokumentacjÄ™ Pythona - - + + StdCmdOnlineHelpWebsite - Help - Pomoc + Help + Pomoc - Help Website - Strona www pomocy + Help Website + Strona www pomocy - The website where the help is maintained - Strona, gdzie pomoc jest utrzymywana + The website where the help is maintained + Strona, gdzie pomoc jest utrzymywana - - + + StdCmdOpen - File - Plik + File + Plik - &Open... - &Otwórz + &Open... + &Otwórz - Open a document or import files - Otwórz dokument lub importuj pliki + Open a document or import files + Otwórz dokument lub importuj pliki - Supported formats - ObsÅ‚ugiwane formaty + Supported formats + ObsÅ‚ugiwane formaty - All files (*.*) - Wszystkie pliki (*.*) + All files (*.*) + Wszystkie pliki (*.*) - - + + StdCmdPaste - Edit - Edytuj + Edit + Edytuj - &Paste - Wklej + &Paste + Wklej - Paste operation - Wklej operacjÄ™ + Paste operation + Wklej operacjÄ™ - - + + StdCmdPlacement - Edit - Edytuj + Edit + Edytuj - Placement... - Placement... + Placement... + Placement... - Place the selected objects - Umieść wybrany obiekt + Place the selected objects + Umieść wybrany obiekt - - + + StdCmdPrint - File - Plik + File + Plik - &Print... - &Drukuj + &Print... + &Drukuj - Print the document - Wydrukuj dokument + Print the document + Wydrukuj dokument - - + + StdCmdPrintPdf - File - Plik + File + Plik - &Export PDF... - &Eksport PDF + &Export PDF... + &Eksport PDF - Export the document as PDF - Wyeksportuj dokument jako PDF + Export the document as PDF + Wyeksportuj dokument jako PDF - - + + StdCmdPrintPreview - File - Plik + File + Plik - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Wydrukuj dokument + Print the document + Wydrukuj dokument - Print preview - Print preview + Print preview + Print preview - - + + StdCmdProjectInfo - File - Plik + File + Plik - Project i&nformation... - Informacja o projekcie + Project i&nformation... + Informacja o projekcie - Show details of the currently active project - Pokaż szczegóły aktualnie aktywnego projektu + Show details of the currently active project + Pokaż szczegóły aktualnie aktywnego projektu - - + + StdCmdProjectUtil - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Pomoc + Help + Pomoc - Python Website - Witryna Pythona + Python Website + Witryna Pythona - The official Python website - Oficjalna witryna Pythona + The official Python website + Oficjalna witryna Pythona - - + + StdCmdQuit - File - Plik + File + Plik - E&xit - W&yjÅ›cie + E&xit + W&yjÅ›cie - Quits the application - Zamyka program + Quits the application + Zamyka program - - + + StdCmdRandomColor - File - Plik + File + Plik - Random color - Kolor losowy + Random color + Kolor losowy - - + + StdCmdRecentFiles - File - Plik + File + Plik - Recent files - Ostatnie pliki + Recent files + Ostatnie pliki - Recent file list - Ostatnio otwierane + Recent file list + Ostatnio otwierane - - + + StdCmdRedo - Edit - Edytuj + Edit + Edytuj - &Redo - &Cofnij + &Redo + &Cofnij - Redoes a previously undone action - Wykonuje ponownie poprzednio cofniÄ™tÄ… czynność + Redoes a previously undone action + Wykonuje ponownie poprzednio cofniÄ™tÄ… czynność - - + + StdCmdRefresh - Edit - Edytuj + Edit + Edytuj - &Refresh - &Refresh + &Refresh + &Refresh - Recomputes the current active document - Recomputes the current active document + Recomputes the current active document + Recomputes the current active document - - + + StdCmdSave - File - Plik + File + Plik - &Save - &Zapisz + &Save + &Zapisz - Save the active document - Zapisz aktywny dokument + Save the active document + Zapisz aktywny dokument - - + + StdCmdSaveAs - File - Plik + File + Plik - Save &As... - Zapisz &jako + Save &As... + Zapisz &jako - Save the active document under a new file name - Zapisuje aktywny dokument pod nowÄ… nazwÄ… + Save the active document under a new file name + Zapisuje aktywny dokument pod nowÄ… nazwÄ… - - + + StdCmdSceneInspector - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Scene inspector... - Inspektor sceny... + Scene inspector... + Inspektor sceny... - Scene inspector - Scene inspector + Scene inspector + Scene inspector - - + + StdCmdSelectAll - Edit - Edytuj + Edit + Edytuj - Select &All - Zaznacz &Wszystko + Select &All + Zaznacz &Wszystko - Select all - Zaznacz wszystko + Select all + Zaznacz wszystko - - + + StdCmdSetAppearance - Standard-View - Normalny widok + Standard-View + Normalny widok - Appearance... - WyglÄ…d... + Appearance... + WyglÄ…d... - Sets the display properties of the selected object - Ustawia wÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania wybranego obiektu + Sets the display properties of the selected object + Ustawia wÅ‚aÅ›ciwoÅ›ci wyÅ›wietlania wybranego obiektu - - + + StdCmdShowObjects - Standard-View - Normalny widok + Standard-View + Normalny widok - Show all objects - Pokaż wszystkie obiekty + Show all objects + Pokaż wszystkie obiekty - Show all objects in the document - Pokaż wszystkie obiekty w dokumencie + Show all objects in the document + Pokaż wszystkie obiekty w dokumencie - - + + StdCmdShowSelection - Standard-View - Normalny widok + Standard-View + Normalny widok - Show selection - Pokaż zaznaczone + Show selection + Pokaż zaznaczone - Show all selected objects - Pokaż wszystkie zaznaczone obiekty + Show all selected objects + Pokaż wszystkie zaznaczone obiekty - - + + StdCmdStatusBar - View - Widok + View + Widok - Status bar - Pasek stanu + Status bar + Pasek stanu - Toggles the status bar - Toggles the status bar + Toggles the status bar + Toggles the status bar - - + + StdCmdTextureMapping - Tools - NarzÄ™dzia + Tools + NarzÄ™dzia - Texture mapping... - Texture mapping... + Texture mapping... + Texture mapping... - Texture mapping - Texture mapping + Texture mapping + Texture mapping - - + + StdCmdTileWindows - Window - Okno + Window + Okno - &Tile - &Tile + &Tile + &Tile - Tile the windows - Okna sÄ…siadujÄ…co + Tile the windows + Okna sÄ…siadujÄ…co - - + + StdCmdToggleBreakpoint - Macro - Makro + Macro + Makro - Toggle breakpoint - Toggle breakpoint + Toggle breakpoint + Toggle breakpoint - - + + StdCmdToggleClipPlane - Standard-View - Normalny widok + Standard-View + Normalny widok - Clipping plane - PÅ‚aszczyzna tnÄ…ca + Clipping plane + PÅ‚aszczyzna tnÄ…ca - Toggles clipping plane for active view - Toggles clipping plane for active view + Toggles clipping plane for active view + Toggles clipping plane for active view - - + + StdCmdToggleNavigation - Standard-View - Normalny widok + Standard-View + Normalny widok - Toggle navigation/Edit mode - Toggle navigation/Edit mode + Toggle navigation/Edit mode + Toggle navigation/Edit mode - Toggle between navigation and edit mode - Toggle between navigation and edit mode + Toggle between navigation and edit mode + Toggle between navigation and edit mode - - + + StdCmdToggleObjects - Standard-View - Normalny widok + Standard-View + Normalny widok - Toggle all objects - Toggle all objects + Toggle all objects + Toggle all objects - Toggles visibility of all objects in the active document - Włącza widoczność wszystkich obiektów w aktywnym dokumencie + Toggles visibility of all objects in the active document + Włącza widoczność wszystkich obiektów w aktywnym dokumencie - - + + StdCmdToggleSelectability - Standard-View - Normalny widok + Standard-View + Normalny widok - Toggle selectability - Toggle selectability + Toggle selectability + Toggle selectability - Toggles the property of the objects to get selected in the 3D-View - Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View - - + + StdCmdToggleVisibility - Standard-View - Normalny widok + Standard-View + Normalny widok - Toggle visibility - Toggle visibility + Toggle visibility + Toggle visibility - Toggles visibility - Toggles visibility + Toggles visibility + Toggles visibility - - + + StdCmdToolBarMenu - View - Widok + View + Widok - Tool&bars - Paski narzÄ™dzi + Tool&bars + Paski narzÄ™dzi - Toggles this window - Toggles this window + Toggles this window + Toggles this window - - + + StdCmdTransform - Edit - Edytuj + Edit + Edytuj - Transform... - Transform... + Transform... + Transform... - Transform the geometry of selected objects - Przekształć geometriÄ™ wybranych obiektów + Transform the geometry of selected objects + Przekształć geometriÄ™ wybranych obiektów - - + + StdCmdTreeSelection - View - Widok + View + Widok - Go to selection - Go to selection + Go to selection + Go to selection - Scroll to first selected item - Przejdź do pierwszego zaznaczonego elementu + Scroll to first selected item + Przejdź do pierwszego zaznaczonego elementu - - + + StdCmdUndo - Edit - Edytuj + Edit + Edytuj - &Undo - Cofnij + &Undo + Cofnij - Undo exactly one action - Undo exactly one action + Undo exactly one action + Undo exactly one action - - + + StdCmdUserInterface - View - Widok + View + Widok - Dock views - Dock views + Dock views + Dock views - Dock all top-level views - Dock all top-level views + Dock all top-level views + Dock all top-level views - - + + StdCmdViewAxo - Standard-View - Normalny widok + Standard-View + Normalny widok - Axometric - Aksonometria + Axometric + Aksonometria - Set to axometric view - Set to axometric view + Set to axometric view + Set to axometric view - - + + StdCmdViewBottom - Standard-View - Normalny widok + Standard-View + Normalny widok - Bottom - Bottom + Bottom + Bottom - Set to bottom view - Set to bottom view + Set to bottom view + Set to bottom view - - + + StdCmdViewCreate - Standard-View - Normalny widok + Standard-View + Normalny widok - Create new view - Utwórz nowy widok + Create new view + Utwórz nowy widok - Creates a new view window for the active document - Creates a new view window for the active document + Creates a new view window for the active document + Creates a new view window for the active document - - + + StdCmdViewExample1 - Standard-View - Normalny widok + Standard-View + Normalny widok - Inventor example #1 - Inventor example #1 + Inventor example #1 + Inventor example #1 - Shows a 3D texture with manipulator - Shows a 3D texture with manipulator + Shows a 3D texture with manipulator + Shows a 3D texture with manipulator - - + + StdCmdViewExample2 - Standard-View - Normalny widok + Standard-View + Normalny widok - Inventor example #2 - Inventor example #2 + Inventor example #2 + Inventor example #2 - Shows spheres and drag-lights - Shows spheres and drag-lights + Shows spheres and drag-lights + Shows spheres and drag-lights - - + + StdCmdViewExample3 - Standard-View - Normalny widok + Standard-View + Normalny widok - Inventor example #3 - Inventor example #3 + Inventor example #3 + Inventor example #3 - Shows a animated texture - Pokaż animowanÄ… teksturÄ™ + Shows a animated texture + Pokaż animowanÄ… teksturÄ™ - - + + StdCmdViewFitAll - Standard-View - Normalny widok + Standard-View + Normalny widok - Fit all - Dopasuj wszystko + Fit all + Dopasuj wszystko - Fits the whole content on the screen - Dopasuj zawartość ekranu do Widoku + Fits the whole content on the screen + Dopasuj zawartość ekranu do Widoku - - + + StdCmdViewFitSelection - Standard-View - Normalny widok + Standard-View + Normalny widok - Fit selection - Dopasuj Widok + Fit selection + Dopasuj Widok - Fits the selected content on the screen - Dopasuj widok do zaznaczenia + Fits the selected content on the screen + Dopasuj widok do zaznaczenia - - + + StdCmdViewFront - Standard-View - Normalny widok + Standard-View + Normalny widok - Front - Przód + Front + Przód - Set to front view - Ustaw Widok z przodu + Set to front view + Ustaw Widok z przodu - - + + StdCmdViewIvIssueCamPos - Standard-View - Normalny widok + Standard-View + Normalny widok - Issue camera position - Issue camera position + Issue camera position + Issue camera position - Issue the camera position to the console and to a macro, to easily recall this position - Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position + Issue the camera position to the console and to a macro, to easily recall this position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Normalny widok + Standard-View + Normalny widok - Stereo Interleaved Columns - Stereo Interleaved Columns + Stereo Interleaved Columns + Stereo Interleaved Columns - Switch stereo viewing to Interleaved Columns - Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Normalny widok + Standard-View + Normalny widok - Stereo Interleaved Rows - Stereo Interleaved Rows + Stereo Interleaved Rows + Stereo Interleaved Rows - Switch stereo viewing to Interleaved Rows - Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows - - + + StdCmdViewIvStereoOff - Standard-View - Normalny widok + Standard-View + Normalny widok - Stereo Off - Wyłącz Stereo + Stereo Off + Wyłącz Stereo - Switch stereo viewing off - Switch stereo viewing off + Switch stereo viewing off + Switch stereo viewing off - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Normalny widok + Standard-View + Normalny widok - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Normalny widok + Standard-View + Normalny widok - Stereo red/green - Stereo czerwono-zielone + Stereo red/green + Stereo czerwono-zielone - Switch stereo viewing to red/green - Switch stereo viewing to red/green + Switch stereo viewing to red/green + Switch stereo viewing to red/green - - + + StdCmdViewLeft - Standard-View - Normalny widok + Standard-View + Normalny widok - Left - Lewa + Left + Lewa - Set to left view - Ustaw widok z lewej + Set to left view + Ustaw widok z lewej - - + + StdCmdViewRear - Standard-View - Normalny widok + Standard-View + Normalny widok - Rear - TyÅ‚ + Rear + TyÅ‚ - Set to rear view - Ustaw widok z tyÅ‚u + Set to rear view + Ustaw widok z tyÅ‚u - - + + StdCmdViewRight - Standard-View - Normalny widok + Standard-View + Normalny widok - Right - Prawa + Right + Prawa - Set to right view - Ustaw widok z prawej + Set to right view + Ustaw widok z prawej - - + + + StdCmdViewRotateLeft + + Standard-View + Normalny widok + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Normalny widok + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Normalny widok + Standard-View + Normalny widok - Top - Góra + Top + Góra - Set to top view - Ustaw widok z góry + Set to top view + Ustaw widok z góry - - + + StdCmdWhatsThis - Help - Pomoc + Help + Pomoc - &What's This? - &Co to jest? + &What's This? + &Co to jest? - What's This - Co to jest + What's This + Co to jest - - + + StdCmdWindows - Window - Okno + Window + Okno - &Windows... - &Windows... + &Windows... + &Windows... - Windows list - Lista okien + Windows list + Lista okien - - + + StdCmdWindowsMenu - Window - Okno + Window + Okno - Activates this window - Uaktywnia okno + Activates this window + Uaktywnia okno - - + + StdCmdWorkbench - View - Widok + View + Widok - Workbench - Åšrodowisko + Workbench + Åšrodowisko - Switch between workbenches - Przełącz Åšrodowisko + Switch between workbenches + Przełącz Åšrodowisko - - + + StdOrthographicCamera - Standard-View - Normalny widok + Standard-View + Normalny widok - Orthographic view - Widok ortogonalny + Orthographic view + Widok ortogonalny - Switches to orthographic view mode - Przełącza do Widoku ortogonalnego + Switches to orthographic view mode + Przełącza do Widoku ortogonalnego - - + + StdPerspectiveCamera - Standard-View - Normalny widok + Standard-View + Normalny widok - Perspective view - Widok perspektywy + Perspective view + Widok perspektywy - Switches to perspective view mode - Przełącza na tryb widoku perspektywy + Switches to perspective view mode + Przełącza na tryb widoku perspektywy - - + + StdViewBoxZoom - Standard-View - Normalny widok + Standard-View + Normalny widok - Box zoom - Box zoom + Box zoom + Box zoom - - + + StdViewDockUndockFullscreen - Standard-View - Normalny widok + Standard-View + Normalny widok - Document window - Okno dokumentu + Document window + Okno dokumentu - Display the active view either in fullscreen, in undocked or docked mode - Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode + Display the active view either in fullscreen, in undocked or docked mode - - + + StdViewScreenShot - Standard-View - Normalny widok + Standard-View + Normalny widok - Save picture... - Zapisz obrazek... + Save picture... + Zapisz obrazek... - Creates a screenshot of the active view - Tworzy zrzut ekranu aktywnego widoku + Creates a screenshot of the active view + Tworzy zrzut ekranu aktywnego widoku - - + + StdViewZoomIn - Standard-View - Normalny widok + Standard-View + Normalny widok - Zoom In - PowiÄ™ksz + Zoom In + PowiÄ™ksz - - + + StdViewZoomOut - Standard-View - Normalny widok + Standard-View + Normalny widok - Zoom Out - Pomniejsz + Zoom Out + Pomniejsz - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Plik + &File + &Plik - &Edit - &Edycja + &Edit + &Edycja - Standard views - Widoki standardowe + Standard views + Widoki standardowe - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &PowiÄ™kszenie + &Zoom + &PowiÄ™kszenie - Visibility - Widoczność + Visibility + Widoczność - &View - &Widok + &View + &Widok - &Tools - &NarzÄ™dzia + &Tools + &NarzÄ™dzia - &Macro - &Macro + &Macro + &Macro - &Windows - &Okna + &Windows + &Okna - &On-line help - &Pomoc on-line + &On-line help + &Pomoc on-line - &Help - &Pomoc + &Help + &Pomoc - File - Plik + File + Plik - Macro - Makro + Macro + Makro - View - Widok + View + Widok - Special Ops - Specjalne opcje + Special Ops + Specjalne opcje - - + + testClass - test - test + test + test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Wybierz styl Panelu zadaÅ„ + Choose the style of the Task Panel + Wybierz styl Panelu zadaÅ„ - Default - DomyÅ›lne + Default + DomyÅ›lne - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_pt.ts b/src/Gui/Language/FreeCAD_pt.ts index fd0cde922..7f76a4e8e 100644 --- a/src/Gui/Language/FreeCAD_pt.ts +++ b/src/Gui/Language/FreeCAD_pt.ts @@ -1,5478 +1,5896 @@ - - + + Angle - Form - Formulário + Form + Formulário - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Snap de ângulo + Angle Snap + Snap de ângulo - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - nenhum + none + nenhum - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Adicionar + + + Remove + Remover + + + Move up + Mover para cima + + + Move down + Move para baixo + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Pressione o botão esquerdo do mouse + Press left mouse button + Pressione o botão esquerdo do mouse - Press SHIFT and middle mouse button - Pressione SHIFT e o botão do meio do mouse + Press SHIFT and middle mouse button + Pressione SHIFT e o botão do meio do mouse - Press middle mouse button - Pressione o botão do meio do mouse + Press middle mouse button + Pressione o botão do meio do mouse - Scroll middle mouse button - Role a roda do mouse + Scroll middle mouse button + Role a roda do mouse - - + + Gui::CADNavigationStyle - Press left mouse button - Pressione o botão esquerdo do mouse + Press left mouse button + Pressione o botão esquerdo do mouse - Press middle mouse button - Pressione o botão do meio do mouse + Press middle mouse button + Pressione o botão do meio do mouse - Press left and middle mouse button - Pressione o botão esquerdo e do meio do mouse + Press left and middle mouse button + Pressione o botão esquerdo e do meio do mouse - Scroll middle mouse button - Role a roda do mouse + Scroll middle mouse button + Role a roda do mouse - - + + Gui::Command - Standard - Padrão + Standard + Padrão - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Cancelar + &Cancel + &Cancelar - - + + Gui::ControlSingleton - Task panel - Painel de tarefas + Task panel + Painel de tarefas - - + + Gui::Dialog::AboutApplication - About - Sobre + About + Sobre - Revision number - Número de revisão + Revision number + Número de revisão - Version - Versão + Version + Versão - OK - OK + OK + OK - - + + - Release date - Data de lançamento + Release date + Data de lançamento - Platform - Plataforma + Platform + Plataforma - License... - Licença... + License... + Licença... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Botão %1 + Button %1 + Botão %1 - Out Of Range - Fora do intervalo + Out Of Range + Fora do intervalo - - + + Gui::Dialog::CommandModel - Commands - Comandos + Commands + Comandos - - + + Gui::Dialog::DemoMode - View Turntable - Vista Turntable + View Turntable + Vista Turntable - Speed - Velocidade + Speed + Velocidade - Maximum - Máximo + Maximum + Máximo - Minimum - Mínimo + Minimum + Mínimo - Fullscreen - Tela cheia + Fullscreen + Tela cheia - Enable timer - Habilitar o timer + Enable timer + Habilitar o timer - s - s + s + s - Angle - Ângulo + Angle + Ângulo + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Reproduzir - -90° - -90° + Stop + Parar - Play - Reproduzir + Close + Fechar - - Stop - Parar - - - Close - Fechar - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Escolhe uma Janela + Choose Window + Escolhe uma Janela - &Activate - &Ativar + &Activate + &Ativar - Alt+A - Alt + A + Alt+A + Alt + A - &Cancel - &Cancelar + &Cancel + &Cancelar - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Janelas + Windows + Janelas - - + + Gui::Dialog::DlgAuthorization - Authorization - Autorização + Authorization + Autorização - &OK - &OK + &OK + &OK - &Cancel - &Cancelar + &Cancel + &Cancelar - Password: - Senha: + Password: + Senha: - User name: - Nome de usuário: + User name: + Nome de usuário: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Escolher ícone + Choose Icon + Escolher ícone - OK - OK + OK + OK - Cancel - Cancelar + Cancel + Cancelar - Add icons... - Adicionar ícones ... + Add icons... + Adicionar ícones ... - - + + Gui::Dialog::DlgCustomActions - Macros - Macros + Macros + Macros - Setup Custom Macros - Configurar macros personalizadas + Setup Custom Macros + Configurar macros personalizadas - Macro: - Macro: + Macro: + Macro: - ... - ... + ... + ... - Pixmap - Imagem + Pixmap + Imagem - Accelerator: - Atalho: + Accelerator: + Atalho: - What's this: - O Que é Isto: + What's this: + O Que é Isto: - Status text: - Texto de status: + Status text: + Texto de status: - Tool tip: - Dica: + Tool tip: + Dica: - Menu text: - Texto do menu: + Menu text: + Texto do menu: - Add - Adicionar + Add + Adicionar - Remove - Remover + Remove + Remover - Replace - Substituir + Replace + Substituir - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ãcones + Icons + Ãcones - Macros - Macros + Macros + Macros - No macro - Nenhuma macro + No macro + Nenhuma macro - No macros found. - Nenhuma macro encontrada. + No macros found. + Nenhuma macro encontrada. - Macro not found - Macro não encontrada + Macro not found + Macro não encontrada - Sorry, couldn't find macro file '%1'. - Desculpe, não foi possível encontrar o arquivo de macro '%1'. + Sorry, couldn't find macro file '%1'. + Desculpe, não foi possível encontrar o arquivo de macro '%1'. - Empty macro - Macro vazia + Empty macro + Macro vazia - Please specify the macro first. - Por favor especifique a macro primeiro. + Please specify the macro first. + Por favor especifique a macro primeiro. - Empty text - Texto vazio + Empty text + Texto vazio - Please specify the menu text first. - Por favor especifique o texto do menu primeiro. + Please specify the menu text first. + Por favor especifique o texto do menu primeiro. - No item selected - Nenhum item selecionado + No item selected + Nenhum item selecionado - Please select a macro item first. - Primeiro, selecione uma macro. + Please select a macro item first. + Primeiro, selecione uma macro. - - + + Gui::Dialog::DlgCustomCommands - Commands - Comandos + Commands + Comandos - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Categoria + Category + Categoria - Icon - Ãcone + Icon + Ãcone - Command - Comando + Command + Comando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Teclado + Keyboard + Teclado - Description: - Descrição: + Description: + Descrição: - &Category: - &Categoria: + &Category: + &Categoria: - C&ommands: - C&omandos: + C&ommands: + C&omandos: - Current shortcut: - Atalho atual: + Current shortcut: + Atalho atual: - Press &new shortcut: - Indique o &novo atalho: + Press &new shortcut: + Indique o &novo atalho: - Currently assigned to: - Atualmente atribuído a: + Currently assigned to: + Atualmente atribuído a: - &Assign - &Atribuir + &Assign + &Atribuir - Alt+A - Alt + A + Alt+A + Alt + A - &Reset - &Restaurar + &Reset + &Restaurar - Alt+R - Alt + R + Alt+R + Alt + R - Re&set All - Re&definir Tudo + Re&set All + Re&definir Tudo - Alt+S - Alt + D + Alt+S + Alt + D - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ãcone + Icon + Ãcone - Command - Comando + Command + Comando - none - nenhum + none + nenhum - Multiple defined shortcut - Atalho definido várias vezes + Multiple defined shortcut + Atalho definido várias vezes - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - O atalho '%1' é definido mais de uma vez. Isso pode provocar um comportamento inesperado. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + O atalho '%1' é definido mais de uma vez. Isso pode provocar um comportamento inesperado. - Already defined shortcut - Atalho já definido + Already defined shortcut + Atalho já definido - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - O atalho '%1' já está atribuído a '%2'. + O atalho '%1' já está atribuído a '%2'. Defina outro atalho. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Barras de ferramentas + Toolbox bars + Barras de ferramentas - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Barras de ferramentas + Toolbars + Barras de ferramentas - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> As mudanças terão efeito quando carregar novamente o Workbench apropriado</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> As mudanças terão efeito quando carregar novamente o Workbench apropriado</p></body></html> - Move right - Mover para a direita + Move right + Mover para a direita - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Move o item selecionado um nível abaixo.</b> <p> Isso também irá alterar o nível do item pai. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move o item selecionado um nível abaixo.</b> <p> Isso também irá alterar o nível do item pai. </p> - Move left - Mover para a esquerda + Move left + Mover para a esquerda - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mover o item selecionado um nível acima.</b> <p> Isso também irá alterar o nível do item pai. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mover o item selecionado um nível acima.</b> <p> Isso também irá alterar o nível do item pai. </p> - Move down - Move para baixo + Move down + Move para baixo - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move o item selecionado para baixo.</b> <p> O item será movido dentro do nível de hierarquia. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move o item selecionado para baixo.</b> <p> O item será movido dentro do nível de hierarquia. </p> - Move up - Mover para cima + Move up + Mover para cima - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move o item selecionado para cima.</b> <p> O item será movido dentro do nível de hierarquia. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move o item selecionado para cima.</b> <p> O item será movido dentro do nível de hierarquia. </p> - New... - Novo... + New... + Novo... - Rename... - Renomear... + Rename... + Renomear... - Delete - Excluir + Delete + Excluir - Icon - Ãcone + Icon + Ãcone - Command - Comando + Command + Comando - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Nova barra de ferramentas + New toolbar + Nova barra de ferramentas - Toolbar name: - Nome da barra de ferramentas: + Toolbar name: + Nome da barra de ferramentas: - Duplicated name - Nome duplicado + Duplicated name + Nome duplicado - The toolbar name '%1' is already used - O nome de barra de ferramentas '%1' já está sendo usado + The toolbar name '%1' is already used + O nome de barra de ferramentas '%1' já está sendo usado - Rename toolbar - Renomear barra de ferramentas + Rename toolbar + Renomear barra de ferramentas - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Personalizar + Customize + Personalizar - &Help - A&juda + &Help + A&juda - &Close - &Fechar + &Close + &Fechar - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Nenhum Spaceball encontrado + No Spaceball Present + Nenhum Spaceball encontrado - Buttons - Botões + Buttons + Botões - Clear - Limpar + Clear + Limpar - Print Reference - Imprimir referência + Print Reference + Imprimir referência - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Exibir propriedades + Display properties + Exibir propriedades - Display - Tela + Display + Tela - Transparency: - Transparência: + Transparency: + Transparência: - Line width: - Largura da linha: + Line width: + Largura da linha: - Point size: - Tamanho de ponto: + Point size: + Tamanho de ponto: - Material - Material + Material + Material - ... - ... + ... + ... - Close - Fechar + Close + Fechar - Viewing mode - Modo de visualização + Viewing mode + Modo de visualização - Display mode: - Modo de exibição: + Display mode: + Modo de exibição: - Plot mode: - Modo de impressão: + Plot mode: + Modo de impressão: - - + + - Line transparency: - Transparência das linhas: + Line transparency: + Transparência das linhas: - Line color: - Cor das linhas: + Line color: + Cor das linhas: - Shape color: - Cor das formas: + Shape color: + Cor das formas: - Color plot: - Cor de plotagem: + Color plot: + Cor de plotagem: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Editor + Editor + Editor - Options - Opções + Options + Opções - Enable line numbers - Ativar números de linha + Enable line numbers + Ativar números de linha - Enable folding - Habilitar dobra + Enable folding + Habilitar dobra - Indentation - Indentação + Indentation + Indentação - Insert spaces - Inserir espaços + Insert spaces + Inserir espaços - Tab size: - Tamanho da tabulação: + Tab size: + Tamanho da tabulação: - Indent size: - Tamanho da indentação: + Indent size: + Tamanho da indentação: - Keep tabs - Manter abas + Keep tabs + Manter abas - Display Items - Exibir itens + Display Items + Exibir itens - Family: - Família: + Family: + Família: - Size: - Tamanho: + Size: + Tamanho: - Preview: - Pré-visualização: + Preview: + Pré-visualização: - - + + - - + + Gui::Dialog::DlgGeneral - General - Geral + General + Geral - Start up - Início + Start up + Início - Enable splash screen at start up - Mostrar a tela de splash ao iniciar + Enable splash screen at start up + Mostrar a tela de splash ao iniciar - Switch to tab of report window: - Alternar para a guia da janela de relatório: + Switch to tab of report window: + Alternar para a guia da janela de relatório: - Auto load module after start up: - Auto-carregar módulo ao iniciar: + Auto load module after start up: + Auto-carregar módulo ao iniciar: - Language - Idioma + Language + Idioma - Change language: - Alterar idioma: + Change language: + Alterar idioma: - Main window - Janela principal + Main window + Janela principal - Size of recent file list - Tamanho da lista de arquivos recentes + Size of recent file list + Tamanho da lista de arquivos recentes - Window style: - Estilo de janela: + Window style: + Estilo de janela: - Size of toolbar icons: - Tamanho dos ícones da barra de ferramentas: + Size of toolbar icons: + Tamanho dos ícones da barra de ferramentas: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Padrão (%1 x %1) + Default (%1 x %1) + Padrão (%1 x %1) - Small (%1 x %1) - Pequeno (%1 x %1) + Small (%1 x %1) + Pequeno (%1 x %1) - Large (%1 x %1) - Grande (%1 x %1) + Large (%1 x %1) + Grande (%1 x %1) - Extra large (%1 x %1) - Muito grande (%1 x %1) + Extra large (%1 x %1) + Muito grande (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Entrada + Input + Entrada - OK - OK + OK + OK - Cancel - Cancelar + Cancel + Cancelar - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Inspetor de cena + Scene Inspector + Inspetor de cena - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Executar macro + Execute macro + Executar macro - Macro name: - Nome da macro: + Macro name: + Nome da macro: - Macro destination: - Destino da macro: + Macro destination: + Destino da macro: - Execute - Executar + Execute + Executar - Close - Fechar + Close + Fechar - Create - Criar + Create + Criar - Delete - Excluir + Delete + Excluir - Edit - Editar + Edit + Editar - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Macros + Macros + Macros - Macro file - Arquivo de macro + Macro file + Arquivo de macro - Enter a file name, please: - Digite um nome de arquivo, por favor: + Enter a file name, please: + Digite um nome de arquivo, por favor: - Existing file - Arquivo existente + Existing file + Arquivo existente - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Este arquivo já existe. - Delete macro - Excluir macro + Delete macro + Excluir macro - Do you really want to delete the macro '%1'? - Você realmente deseja excluir a macro '%1'? + Do you really want to delete the macro '%1'? + Você realmente deseja excluir a macro '%1'? - Cannot create file - Não é possível criar o arquivo + Cannot create file + Não é possível criar o arquivo - Creation of file '%1' failed. - Falha na criação do arquivo '%1'. + Creation of file '%1' failed. + Falha na criação do arquivo '%1'. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Gravação de macros + Macro recording + Gravação de macros - Macro name: - Nome da macro: + Macro name: + Nome da macro: - Stop - Parar + Stop + Parar - Cancel - Cancelar + Cancel + Cancelar - Macro path: - Caminho de macro: + Macro path: + Caminho de macro: - ... - ... + ... + ... - Record - Gravar + Record + Gravar - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Gravador de macro + Macro recorder + Gravador de macro - Specify first a place to save. - Especifique um local para salvar. + Specify first a place to save. + Especifique um local para salvar. - Existing macro - Macro existente + Existing macro + Macro existente - The macro '%1' already exists. Do you want to overwrite? - A macro '%1' já existe. Deseja substituir? + The macro '%1' already exists. Do you want to overwrite? + A macro '%1' já existe. Deseja substituir? - The macro directory doesn't exist. Please, choose another one. - O diretório de macro não existe. Por favor, escolha um outro. + The macro directory doesn't exist. Please, choose another one. + O diretório de macro não existe. Por favor, escolha um outro. - Choose macro directory - Escolha o diretório de macros + Choose macro directory + Escolha o diretório de macros - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Propriedades do material + Material properties + Propriedades do material - &Close - &Fechar + &Close + &Fechar - Alt+C - Alt + C + Alt+C + Alt + C - Material - Material + Material + Material - Diffuse color: - Cor Diffuse: + Diffuse color: + Cor Diffuse: - Specular color: - Cor Specular: + Specular color: + Cor Specular: - Shininess: - Brilho: + Shininess: + Brilho: - % - % + % + % - Ambient color: - Cor ambiente: + Ambient color: + Cor ambiente: - - + + - Emissive color: - Cor de emissão: + Emissive color: + Cor de emissão: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Ajuda on-line + On-line help + Ajuda on-line - Help viewer - Visualizador da ajuda + Help viewer + Visualizador da ajuda - Location of start page - Localização da página inicial + Location of start page + Localização da página inicial - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - Arquivos HTML (*.html *.htm) + HTML files (*.html *.htm) + Arquivos HTML (*.html *.htm) - Access denied - Acesso negado + Access denied + Acesso negado - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Acesso negado a '%1' + Acesso negado a '%1' Por favor especifique outro diretório. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Editor de parâmetros + Parameter Editor + Editor de parâmetros - Save to disk - Salvar no disco + Save to disk + Salvar no disco - Alt+C - Alt + C + Alt+C + Alt + C - &Close - &Fechar + &Close + &Fechar - - + + Gui::Dialog::DlgParameterImp - Group - Grupo + Group + Grupo - Name - Nome + Name + Nome - Type - Tipo + Type + Tipo - Value - Valor + Value + Valor - User parameter - Parâmetros de usuário + User parameter + Parâmetros de usuário - Invalid input - Entrada inválida + Invalid input + Entrada inválida - Invalid key name '%1' - Nome da chave inválido '%1' + Invalid key name '%1' + Nome da chave inválido '%1' - System parameter - Parâmetro de sistema + System parameter + Parâmetro de sistema - - + + Gui::Dialog::DlgPreferences - Preferences - Preferências + Preferences + Preferências - &Help - A&juda + &Help + A&juda - Alt+H - Alt+J + Alt+H + Alt+J - &OK - &OK + &OK + &OK - &Apply - &Aplicar + &Apply + &Aplicar - Alt+A - Alt + A + Alt+A + Alt + A - &Cancel - &Cancelar + &Cancel + &Cancelar - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Parâmetro incorreto + Wrong parameter + Parâmetro incorreto - - + + Gui::Dialog::DlgProjectInformation - Project information - Informações do projeto + Project information + Informações do projeto - Information - Informação + Information + Informação - &Name: - &Nome: + &Name: + &Nome: - Commen&t: - Comen&tário: + Commen&t: + Comen&tário: - Path: - Caminho: + Path: + Caminho: - &Last modified by: - &Modificado por último por: + &Last modified by: + &Modificado por último por: - Created &by: - Criado &por: + Created &by: + Criado &por: - Com&pany: - &Empresa: + Com&pany: + &Empresa: - Last &modification date: - Data da última &modificação: + Last &modification date: + Data da última &modificação: - Creation &date: - &Data de criação: + Creation &date: + &Data de criação: - &OK - &OK + &OK + &OK - &Cancel - &Cancelar + &Cancel + &Cancelar - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Utilitário de projeto + Project utility + Utilitário de projeto - Extract project - Extrair um projeto + Extract project + Extrair um projeto - Source - Fonte + Source + Fonte - Project file (*.fcstd) - Arquivo de projeto (*.fcstd) + Project file (*.fcstd) + Arquivo de projeto (*.fcstd) - Destination - Destino + Destination + Destino - Extract - Extrair + Extract + Extrair - Create project - Criar projeto + Create project + Criar projeto - Document.xml - Document.xml + Document.xml + Document.xml - Create - Criar + Create + Criar - Load project file after creation - Carregar o arquivo de projeto após a criação + Load project file after creation + Carregar o arquivo de projeto após a criação - Empty source - Fonte vazia + Empty source + Fonte vazia - No source is defined. - Nenhuma fonte foi definida. + No source is defined. + Nenhuma fonte foi definida. - Empty destination - Destino vazio + Empty destination + Destino vazio - No destination is defined. - Nenhum destino foi definido. + No destination is defined. + Nenhum destino foi definido. - - + + Gui::Dialog::DlgReportView - Output window - janela de saída + Output window + janela de saída - Output - Saída + Output + Saída - Record log messages - Gravar mensagens de log + Record log messages + Gravar mensagens de log - Record warnings - Gravar advertências + Record warnings + Gravar advertências - Record error messages - Gravar mensagens de erro + Record error messages + Gravar mensagens de erro - Colors - Cores + Colors + Cores - Normal messages: - Mensagens normais: + Normal messages: + Mensagens normais: - Log messages: - Mensagens de log: + Log messages: + Mensagens de log: - Warnings: - Advertências: + Warnings: + Advertências: - Errors: - Erros: + Errors: + Erros: - - + + - Redirect internal Python errors to report view - Redirecionar erros internos do Python para a janela de relatório + Redirect internal Python errors to report view + Redirecionar erros internos do Python para a janela de relatório - Redirect internal Python output to report view - Redirecionar a saída interna de Python para a janela de relatório + Redirect internal Python output to report view + Redirecionar a saída interna de Python para a janela de relatório - - + + Gui::Dialog::DlgRunExternal - Running external program - Executando programa externo + Running external program + Executando programa externo - TextLabel - Rótulo de texto + TextLabel + Rótulo de texto - Advanced >> - Avançado >> + Advanced >> + Avançado >> - ... - ... + ... + ... - Accept changes - Aceitar mudanças + Accept changes + Aceitar mudanças - Discard changes - Descartar alterações + Discard changes + Descartar alterações - Abort program - Abortar o programa + Abort program + Abortar o programa - Help - Ajuda + Help + Ajuda - Select a file - Selecione um arquivo + Select a file + Selecione um arquivo - - + + Gui::Dialog::DlgSettings3DView - 3D View - Vista 3D + 3D View + Vista 3D - 3D View settings - Configurações de visualização 3D + 3D View settings + Configurações de visualização 3D - Show coordinate system in the corner - Mostrar sistema de coordenadas no canto + Show coordinate system in the corner + Mostrar sistema de coordenadas no canto - Show counter of frames per second - Mostrar contador de frames por segundo + Show counter of frames per second + Mostrar contador de frames por segundo - Enable animation - Habilitar animação + Enable animation + Habilitar animação - Enable anti-aliasing (slower) - Habilitar anti-aliasing (mais lento) + Enable anti-aliasing (slower) + Habilitar anti-aliasing (mais lento) - Eye to eye distance for stereo modes: - Distância entre olhos para modos estéreo: + Eye to eye distance for stereo modes: + Distância entre olhos para modos estéreo: - Camera type - Tipo de câmera + Camera type + Tipo de câmera - Orthographic rendering - Renderização ortográfica + Orthographic rendering + Renderização ortográfica - Perspective rendering - Renderização perspectiva + Perspective rendering + Renderização perspectiva - - + + - 3D Navigation - Navegação 3D + 3D Navigation + Navegação 3D - Mouse... - Mouse... + Mouse... + Mouse... - Intensity of backlight - Intensidade da luz de fundo + Intensity of backlight + Intensidade da luz de fundo - Enable backlight color - Habilitar a cor da luz de fundo + Enable backlight color + Habilitar a cor da luz de fundo - Orbit style - Estilo de orbita + Orbit style + Estilo de orbita - Turntable - Plataforma + Turntable + Plataforma - Trackball - Trackball + Trackball + Trackball - Invert zoom - Inverter o zoom + Invert zoom + Inverter o zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - navegação de %1 + %1 navigation + navegação de %1 - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Modelo de cores + Color model + Modelo de cores - &Gradient: - &Gradiente: + &Gradient: + &Gradiente: - red-yellow-green-cyan-blue - vermelho-amarelo-verde-ciano-azul + red-yellow-green-cyan-blue + vermelho-amarelo-verde-ciano-azul - blue-cyan-green-yellow-red - azul-turquesa-verde-amarelo-vermelho + blue-cyan-green-yellow-red + azul-turquesa-verde-amarelo-vermelho - white-black - branco-preto + white-black + branco-preto - black-white - preto-branco + black-white + preto-branco - Visibility - Visibilidade + Visibility + Visibilidade - Out g&rayed - Saída &inativa + Out g&rayed + Saída &inativa - Alt+R - Alt + R + Alt+R + Alt + R - Out &invisible - Saída in&visível + Out &invisible + Saída in&visível - Alt+I - Alt+v + Alt+I + Alt+v - Style - Estilo + Style + Estilo - &Zero - Zero + &Zero + Zero - Alt+Z - Alt + Z + Alt+Z + Alt + Z - &Flow - &Fluxo + &Flow + &Fluxo - Alt+F - Alt + F + Alt+F + Alt + F - &OK - &OK + &OK + &OK - &Cancel - &Cancelar + &Cancel + &Cancelar - Parameter range - Intervalo de parâmetros + Parameter range + Intervalo de parâmetros - Mi&nimum: - Mí&nimo: + Mi&nimum: + Mí&nimo: - Ma&ximum: - Má&ximo: + Ma&ximum: + Má&ximo: - &Labels: - Rótu&los: + &Labels: + Rótu&los: - &Decimals: - &Decimais: + &Decimals: + &Decimais: - - + + - Color-gradient settings - Configurações de gradiente de cores + Color-gradient settings + Configurações de gradiente de cores - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Parâmetro incorreto + Wrong parameter + Parâmetro incorreto - The maximum value must be higher than the minimum value. - O valor máximo deve ser superior ao valor mínimo. + The maximum value must be higher than the minimum value. + O valor máximo deve ser superior ao valor mínimo. - - + + Gui::Dialog::DlgSettingsDocument - Document - Documento + Document + Documento - General - Geral + General + Geral - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Nível de compactação ao salvar documentos (0 = nenhum, 9 = mais alto, 3 = padrão) + Nível de compactação ao salvar documentos (0 = nenhum, 9 = mais alto, 3 = padrão) - Create new document at start up - Criar um novo documento ao iniciar + Create new document at start up + Criar um novo documento ao iniciar - Storage - Armazenamento + Storage + Armazenamento - Saving transactions (Auto-save) - Salvar as transações (auto-save) + Saving transactions (Auto-save) + Salvar as transações (auto-save) - Discard saved transaction after saving document - Descartar transações salvas depois de salvar o documento + Discard saved transaction after saving document + Descartar transações salvas depois de salvar o documento - Save thumbnail into project file when saving document - Salvar miniatura no arquivo quando salvar um documento + Save thumbnail into project file when saving document + Salvar miniatura no arquivo quando salvar um documento - Create up to backup files when resaving document - Criar arquivos de backup ao salvar o documento + Create up to backup files when resaving document + Criar arquivos de backup ao salvar o documento - Document objects - Objetos do documento + Document objects + Objetos do documento - Allow duplicate object labels in one document - Permitir rótulos de objetos duplicados em um documento + Allow duplicate object labels in one document + Permitir rótulos de objetos duplicados em um documento - Maximum Undo/Redo steps - Número máximo de operações Desfazer/Refazer + Maximum Undo/Redo steps + Número máximo de operações Desfazer/Refazer - Using Undo/Redo on documents - Usar Desfazer/Refazer em documentos + Using Undo/Redo on documents + Usar Desfazer/Refazer em documentos - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Texto + Text + Texto - Bookmark - Favorito + Bookmark + Favorito - Breakpoint - Ponto de Interrupção + Breakpoint + Ponto de Interrupção - Keyword - Palavra-chave + Keyword + Palavra-chave - Comment - Comentário + Comment + Comentário - Block comment - Comentário de bloco + Block comment + Comentário de bloco - Number - Número + Number + Número - String - Texto + String + Texto - Character - Caráter + Character + Caráter - Class name - Nome de classe + Class name + Nome de classe - Define name - Definir nome + Define name + Definir nome - Operator - Operador + Operator + Operador - Python output - Saída de Python + Python output + Saída de Python - Python error - Erro de python + Python error + Erro de python - Items - Itens + Items + Itens - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Configurações de imagem + Image settings + Configurações de imagem - Image properties - Propriedades de imagem + Image properties + Propriedades de imagem - Back&ground: - P&lano de Fundo: + Back&ground: + P&lano de Fundo: - Current - Atual + Current + Atual - White - Branco + White + Branco - Black - Preto + Black + Preto - Transparent - Transparente + Transparent + Transparente - Image dimensions - Dimensões da imagem + Image dimensions + Dimensões da imagem - Pixel - Pixel + Pixel + Pixel - &Width: - &Largura: + &Width: + &Largura: - Current screen - Tela atual + Current screen + Tela atual - Icon 32 x 32 - Ãcone de 32 x 32 + Icon 32 x 32 + Ãcone de 32 x 32 - Icon 64 x 64 - Ãcone de 64 x 64 + Icon 64 x 64 + Ãcone de 64 x 64 - Icon 128 x 128 - Ãcone de 128 x 128 + Icon 128 x 128 + Ãcone de 128 x 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Tamanhos padrão: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Altura: - Standard sizes: - Tamanhos padrão: + Aspect ratio: + Proporção: - &Height: - &Altura: + &Screen + &Tela - Aspect ratio: - Proporção: + Alt+S + Alt + D - &Screen - &Tela + &4:3 + &4:3 - Alt+S - Alt + D + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt +1 - &1:1 - &1:1 + Image comment + Comentário da imagem - Alt+1 - Alt +1 + Insert MIBA + Inserir MIBA - Image comment - Comentário da imagem + Insert comment + Inserir comentário - - Insert MIBA - Inserir MIBA - - - Insert comment - Inserir comentário - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Macro + Macro + Macro - Macro recording settings - Configurações de gravação de macros + Macro recording settings + Configurações de gravação de macros - Logging Commands - Comandos de log + Logging Commands + Comandos de log - Show script commands in python console - Mostrar os comandos de script no console python + Show script commands in python console + Mostrar os comandos de script no console python - Log all commands issued by menus to file: - Salvar todos os comandos emitidos por menus em arquivo de log: + Log all commands issued by menus to file: + Salvar todos os comandos emitidos por menus em arquivo de log: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Comandos da interface gráfica + Gui commands + Comandos da interface gráfica - Recording GUI commands - Gravar os comandos da interface gráfica + Recording GUI commands + Gravar os comandos da interface gráfica - Record as comment - Gravar como comentário + Record as comment + Gravar como comentário - Macro path - Caminho de macro + Macro path + Caminho de macro - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Unidades + Units + Unidades - Units settings - Configurações de unidades + Units settings + Configurações de unidades - Standard (mm/kg/s/degree) - Padrão (mm,kg,s,grau) + Standard (mm/kg/s/degree) + Padrão (mm,kg,s,grau) - MKS (m/kg/s/degree) - MKS (m/kg/s/graus) + MKS (m/kg/s/degree) + MKS (m/kg/s/graus) - Magnitude - Magnitude + Magnitude + Magnitude - Unit - Unidade + Unit + Unidade - User system: - sistema do usuário: + User system: + sistema do usuário: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Cores + Colors + Cores - Selection - Seleção + Selection + Seleção - Enable selection highlighting - Habilitar o enfoque da seleção + Enable selection highlighting + Habilitar o enfoque da seleção - Enable preselection highlighting - Habilitar o enfoque de preseleção + Enable preselection highlighting + Habilitar o enfoque de preseleção - Background color - Cor de fundo + Background color + Cor de fundo - Middle color - Cor intermediária + Middle color + Cor intermediária - Color gradient - Gradiente de cor + Color gradient + Gradiente de cor - Simple color - Cor simples + Simple color + Cor simples - Default colors - Cores padrão + Default colors + Cores padrão - Edited edge color - Cor de linha em modo de edição + Edited edge color + Cor de linha em modo de edição - Edited vertex color - Cor dos vértices editados + Edited vertex color + Cor dos vértices editados - Construction geometry - Geometria de construção + Construction geometry + Geometria de construção - Fully constrained geometry - Geometria totalmente restrita + Fully constrained geometry + Geometria totalmente restrita - The color of construction geometry in editmode - A cor da geometria de construção em modo de edição + The color of construction geometry in editmode + A cor da geometria de construção em modo de edição - The color of fully constrained geometry in editmode - A cor da geometria totalmente restrita em modo de edição + The color of fully constrained geometry in editmode + A cor da geometria totalmente restrita em modo de edição - The color of vertices being edited - A cor dos vértices em modo de edição + The color of vertices being edited + A cor dos vértices em modo de edição - The color of edges being edited - A cor das linhas em modo de edição + The color of edges being edited + A cor das linhas em modo de edição - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Dica do dia + Tip of the day + Dica do dia - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"> <font size="+3"> você sabia...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"> <font size="+3"> você sabia...</font></font></b> - &Show tips at start up - &Mostrar dicas ao iniciar + &Show tips at start up + &Mostrar dicas ao iniciar - Alt+S - Alt + D + Alt+S + Alt + D - &Next Tip - &Próxima dica + &Next Tip + &Próxima dica - Alt+N - Alt + P + Alt+N + Alt + P - &Close - &Fechar + &Close + &Fechar - Alt+C - Alt + C + Alt+C + Alt + C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - O Download falhou: %1 + O Download falhou: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Se você quiser saber mais sobre FreeCAD você deve ir para %1 ou pressione o item ajuda no menu Ajuda. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Se você quiser saber mais sobre FreeCAD você deve ir para %1 ou pressione o item ajuda no menu Ajuda. - - + + Gui::Dialog::DockablePlacement - Placement - Posicionamento + Placement + Posicionamento - - + + Gui::Dialog::DownloadDialog - Canceled. - Cancelado. + Canceled. + Cancelado. - - + + Download + + + + Cancel + Cancelar + + + Close + Fechar + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + O download falhou: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Adicionar um ícone + Add icon + Adicionar um ícone - - + + Gui::Dialog::InputVector - Input vector - Vetor de entrada + Input vector + Vetor de entrada - Vector - Vetor + Vector + Vetor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Botões do mouse + Mouse buttons + Botões do mouse - Configuration - Configuração + Configuration + Configuração - Selection: - Seleção: + Selection: + Seleção: - Panning - Pan + Panning + Pan - Rotation: - Rotação: + Rotation: + Rotação: - Zooming: - Zoom: + Zooming: + Zoom: - - + + Gui::Dialog::ParameterGroup - Expand - Expandir + Expand + Expandir - Add sub-group - Adicionar sub-grupo + Add sub-group + Adicionar sub-grupo - Remove group - Remover grupo + Remove group + Remover grupo - Rename group - Renomear grupo + Rename group + Renomear grupo - Export parameter - Parâmetros de exportação + Export parameter + Parâmetros de exportação - Import parameter - Parâmetros de importação + Import parameter + Parâmetros de importação - Collapse - Recolher + Collapse + Recolher - Do really want to remove this parameter group? - Você realmente deseja remover este grupo de parâmetros? + Do really want to remove this parameter group? + Você realmente deseja remover este grupo de parâmetros? - Existing sub-group - Subgrupo existente + Existing sub-group + Subgrupo existente - The sub-group '%1' already exists. - O subgrupo '%1' já existe. + The sub-group '%1' already exists. + O subgrupo '%1' já existe. - Export parameter to file - Exportar parâmetros para arquivo + Export parameter to file + Exportar parâmetros para arquivo - XML (*.FCParam) - XML (*. FCParam) + XML (*.FCParam) + XML (*. FCParam) - Import parameter from file - Importar parâmetros de arquivo + Import parameter from file + Importar parâmetros de arquivo - Import Error - Erro de importação + Import Error + Erro de importação - Reading from '%1' failed. - Leitura de '1%' falhou. + Reading from '%1' failed. + Leitura de '1%' falhou. - - + + Gui::Dialog::ParameterValue - Change value - Mudar o valor + Change value + Mudar o valor - Remove key - Remover a chave + Remove key + Remover a chave - Rename key - Renomear a chave + Rename key + Renomear a chave - New - Novo + New + Novo - New string item - Novo item string + New string item + Novo item string - New float item - Novo item float + New float item + Novo item float - New integer item - Novo item inteiro + New integer item + Novo item inteiro - New unsigned item - Novo item unsigned + New unsigned item + Novo item unsigned - New Boolean item - Novo item Boolean + New Boolean item + Novo item Boolean - Existing item - Item existente + Existing item + Item existente - The item '%1' already exists. - O item '%1' já existe. + The item '%1' already exists. + O item '%1' já existe. - - + + Gui::Dialog::Placement - Placement - Posicionamento + Placement + Posicionamento - OK - OK + OK + OK - Translation: - Translação: + Translation: + Translação: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotação: + Rotation: + Rotação: - Angle: - Ângulo: + Angle: + Ângulo: - Axis: - Eixo: + Axis: + Eixo: - Center: - Centro: + Center: + Centro: - Pitch: - Altura: + Pitch: + Altura: - Roll: - Roll: + Roll: + Roll: - Yaw: - Guinada: + Yaw: + Guinada: - Rotation axis with angle - Eixo de rotação com ângulo + Rotation axis with angle + Eixo de rotação com ângulo - Euler angles - Ângulos de Euler + Euler angles + Ângulos de Euler - Apply placement changes immediately - Aplicar alterações de posicionamento imediatamente + Apply placement changes immediately + Aplicar alterações de posicionamento imediatamente - Apply incremental changes to object placement - Aplicar as alterações incrementais ao posicionamento do objeto + Apply incremental changes to object placement + Aplicar as alterações incrementais ao posicionamento do objeto - Apply - Aplicar + Apply + Aplicar - Reset - Restaurar + Reset + Restaurar - Close - Fechar + Close + Fechar - - + + Gui::Dialog::PrintModel - Button - Botão + Button + Botão - Command - Comando + Command + Comando - - + + Gui::Dialog::SceneInspector - Dialog - Diálogo + Dialog + Diálogo - Close - Fechar + Close + Fechar - Refresh - Atualizar + Refresh + Atualizar - - + + Gui::Dialog::SceneModel - Inventor Tree - Ãrvore do Inventor + Inventor Tree + Ãrvore do Inventor - Nodes - Nós + Nodes + Nós - - + + Gui::Dialog::TextureMapping - Texture - Textura + Texture + Textura - Texture mapping - Mapeamento de textura + Texture mapping + Mapeamento de textura - Global - Global + Global + Global - Environment - Ambiente + Environment + Ambiente - Image files (%1) - Arquivos de imagem (%1) + Image files (%1) + Arquivos de imagem (%1) - No image - Nenhuma imagem + No image + Nenhuma imagem - The specified file is not a valid image file. - O arquivo especificado não é um arquivo de imagem válido. + The specified file is not a valid image file. + O arquivo especificado não é um arquivo de imagem válido. - No 3d view - Nenhuma vista 3d + No 3d view + Nenhuma vista 3d - No active 3d view found. - Nenhuma vista 3d ativa encontrado. + No active 3d view found. + Nenhuma vista 3d ativa encontrado. - - + + Gui::Dialog::Transform - Cancel - Cancelar + Cancel + Cancelar - Transform - Transformar + Transform + Transformar - - + + Gui::DlgTreeWidget - Dialog - Diálogo + Dialog + Diálogo - Items - Itens + Items + Itens - OK - OK + OK + OK - Cancel - Cancelar + Cancel + Cancelar - - + + - - + + Gui::DockWnd::CombiView - CombiView - CombiVista + CombiView + CombiVista - Project - Projeto + Project + Projeto - Tasks - Tarefas + Tasks + Tarefas - - + + Gui::DockWnd::HelpView - Previous - Anterior + Previous + Anterior - Next - Próximo + Next + Próximo - Home - Início + Home + Início - Open - Abrir + Open + Abrir - Open file - Abrir arquivo + Open file + Abrir arquivo - All HTML files (*.html *.htm) - Todos os arquivos HTML (*.html *.htm) + All HTML files (*.html *.htm) + Todos os arquivos HTML (*.html *.htm) - External browser - Navegador externo + External browser + Navegador externo - No external browser found. Specify in preferences, please - Nenhum navegador externo encontrado. Especifique nas preferências, por favor + No external browser found. Specify in preferences, please + Nenhum navegador externo encontrado. Especifique nas preferências, por favor - Starting of %1 failed - Início de %1 falhou + Starting of %1 failed + Início de %1 falhou - - + + Gui::DockWnd::PropertyDockView - Property View - Tela de propriedades + Property View + Tela de propriedades - - + + Gui::DockWnd::ReportOutput - Logging - Log + Logging + Log - Warning - Aviso + Warning + Aviso - Error - Erro + Error + Erro - Options - Opções + Options + Opções - Clear - Limpar + Clear + Limpar - Save As... - Salvar como... + Save As... + Salvar como... - Save Report Output - Salvar o relatório + Save Report Output + Salvar o relatório - Plain Text Files (*.txt *.log) - Arquivos de texto sem formatação (*.txt *.log) + Plain Text Files (*.txt *.log) + Arquivos de texto sem formatação (*.txt *.log) - Go to end - Ir para o fim + Go to end + Ir para o fim - Redirect Python output - Redirecionar a saída de Python + Redirect Python output + Redirecionar a saída de Python - Redirect Python errors - Redirecionar erros de Python + Redirect Python errors + Redirecionar erros de Python - - + + Gui::DockWnd::ReportView - Output - Saída + Output + Saída - Python console - Console Python + Python console + Console Python - - + + Gui::DockWnd::SelectionView - Property View - Tela de propriedades + Property View + Tela de propriedades - - + + Gui::DockWnd::TaskPanelView - Task View - Tarefas + Task View + Tarefas - - + + Gui::DockWnd::TextBrowser - Could not open file. - Não foi possível abrir o arquivo. + Could not open file. + Não foi possível abrir o arquivo. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Você tentou acessar o endereço %1 que não está disponível no momento. Por favor, certifique-se de que a URL existe e tente recarregar a página. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Você tentou acessar o endereço %1 que não está disponível no momento. Por favor, certifique-se de que a URL existe e tente recarregar a página. - Connecting to %1 - Conectando-se a %1 + Connecting to %1 + Conectando-se a %1 - Sending to %1 - Enviando para %1 + Sending to %1 + Enviando para %1 - Reading from %1 - Lendo %1 + Reading from %1 + Lendo %1 - Download failed: %1. - O download falhou: %1. + Download failed: %1. + O download falhou: %1. - Previous - Anterior + Previous + Anterior - Forward - Para a frente + Forward + Para a frente - Home - Início + Home + Início - Refresh - Atualizar + Refresh + Atualizar - Copy - Cópia + Copy + Cópia - Select all - Selecionar tudo + Select all + Selecionar tudo - No description for - Nenhuma descrição para + No description for + Nenhuma descrição para - - + + Gui::DocumentModel - Application - Programa + Application + Programa - Labels & Attributes - Rótulos & atributos + Labels & Attributes + Rótulos & atributos - - + + Gui::EditorView - Modified file - Arquivo modificado + Modified file + Arquivo modificado - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Este arquivo foi modificado fora do editor. Deseja recarregá-lo? - Unsaved document - Documento não salvo + Unsaved document + Documento não salvo - The document has been modified. + The document has been modified. Do you want to save your changes? - O documento foi modificado. + O documento foi modificado. Deseja salvar as alterações? - FreeCAD macro (*.FCMacro);;Python (*.py) - Macro do FreeCAD (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + Macro do FreeCAD (*.FCMacro);;Python (*.py) - Export PDF - Exportar PDF + Export PDF + Exportar PDF - PDF file (*.pdf) - Arquivo PDF (*.pdf) + PDF file (*.pdf) + Arquivo PDF (*.pdf) - untitled[*] - sem título[*] + untitled[*] + sem título[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - %1 caracteres removidos + %1 chars removed + %1 caracteres removidos - %1 chars added - %1 caracteres adicionados + %1 chars added + %1 caracteres adicionados - Formatted - Formatado + Formatted + Formatado - - + + Gui::FileChooser - Select a file - Selecione um arquivo + Select a file + Selecione um arquivo - Select a directory - Selecione um diretório + Select a directory + Selecione um diretório - - + + Gui::FileDialog - Save as - Salvar como + Save as + Salvar como - Open - Abrir + Open + Abrir - - + + Gui::FileOptionsDialog - Extended - Extendido + Extended + Extendido - All files (*.*) - Todos os arquivos (*.*) + All files (*.*) + Todos os arquivos (*.*) - - + + Gui::Flag - Top left - Superior esquerdo + Top left + Superior esquerdo - Bottom left - Inferior esquerdo + Bottom left + Inferior esquerdo - Top right - Superior direito + Top right + Superior direito - Bottom right - Inferior direito + Bottom right + Inferior direito - Remove - Remover + Remove + Remover - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Pressione CTRL e o botão esquerdo do mouse + Press CTRL and left mouse button + Pressione CTRL e o botão esquerdo do mouse - Press middle mouse button - Pressione o botão do meio do mouse + Press middle mouse button + Pressione o botão do meio do mouse - Press left mouse button - Pressione o botão esquerdo do mouse + Press left mouse button + Pressione o botão esquerdo do mouse - Scroll middle mouse button - Role a roda do mouse + Scroll middle mouse button + Role a roda do mouse - - + + Gui::LocationDialog - Wrong direction - Direção errada + Wrong direction + Direção errada - Direction must not be the null vector - Direção não pode ser um vector nulo + Direction must not be the null vector + Direção não pode ser um vector nulo - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Definido pelo usuário... + User defined... + Definido pelo usuário... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Macros + Macros + Macros - - + + Gui::MainWindow - Dimension - Dimensão + Dimension + Dimensão - Ready - Pronto + Ready + Pronto - Toggles this toolbar - Alterna esta barra de ferramentas + Toggles this toolbar + Alterna esta barra de ferramentas - Toggles this dockable window - Alterna esta janela acoplável + Toggles this dockable window + Alterna esta janela acoplável - Close All - Fechar tudo + Close All + Fechar tudo - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Download iniciado... + Download iniciado... - - + + Gui::ProgressBar - Remaining: %1 - Restante: %1 + Remaining: %1 + Restante: %1 - Aborting - Interrompendo + Aborting + Interrompendo - Do you really want to abort the operation? - Você realmente deseja abortar a operação? + Do you really want to abort the operation? + Você realmente deseja abortar a operação? - - + + Gui::ProgressDialog - Remaining: %1 - Restante: %1 + Remaining: %1 + Restante: %1 - Aborting - Interrompendo + Aborting + Interrompendo - Do you really want to abort the operation? - Você realmente deseja abortar a operação? + Do you really want to abort the operation? + Você realmente deseja abortar a operação? - - + + Gui::PropertyEditor::PropertyModel - Property - Propriedade + Property + Propriedade - Value - Valor + Value + Valor - - + + Gui::PropertyView - View - Vista + View + Vista - Data - Dados + Data + Dados - - + + Gui::PythonConsole - System exit - Saída do sistema + System exit + Saída do sistema - The application is still running. + The application is still running. Do you want to exit without saving your data? - O aplicativo ainda está em execução. Deseja sair sem salvar os seus dados? + O aplicativo ainda está em execução. Deseja sair sem salvar os seus dados? - Python console - Console Python + Python console + Console Python - Unhandled PyCXX exception. - Exceção PyCXX não tratada. + Unhandled PyCXX exception. + Exceção PyCXX não tratada. - Unhandled FreeCAD exception. - Exceção FreeCAD não tratada. + Unhandled FreeCAD exception. + Exceção FreeCAD não tratada. - Unhandled unknown C++ exception. - Exceção desconhecida C++ não tratada. + Unhandled unknown C++ exception. + Exceção desconhecida C++ não tratada. - &Copy command - &Copiar comando + &Copy command + &Copiar comando - &Copy history - &Copiar histórico + &Copy history + &Copiar histórico - Save history as... - Salvar histórico como... + Save history as... + Salvar histórico como... - Insert file name... - Insira o nome do arquivo... + Insert file name... + Insira o nome do arquivo... - Save History - Salvar histórico + Save History + Salvar histórico - Macro Files (*.FCMacro *.py) - Arquivos de macro (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Arquivos de macro (*.FCMacro *.py) - Insert file name - Insira o nome do arquivo + Insert file name + Insira o nome do arquivo - All Files (*.*) - Todos os arquivos (*.*) + All Files (*.*) + Todos os arquivos (*.*) - Python Input Dialog - Diálogo de entrada de Python + Python Input Dialog + Diálogo de entrada de Python - Unhandled std C++ exception. - Exceção std C++ não tratada. + Unhandled std C++ exception. + Exceção std C++ não tratada. - Word wrap - Quebra de linha + Word wrap + Quebra de linha - &Copy - &Copiar + &Copy + &Copiar - &Paste - Co&lar + &Paste + Co&lar - Select All - Selecionar tudo + Select All + Selecionar tudo - - + + Clear console + + + + Gui::PythonEditor - Comment - Comentário + Comment + Comentário - Uncomment - Descomentar + Uncomment + Descomentar - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Limpar + Clear + Limpar - - + + Gui::RecentFilesAction - Open file %1 - Abrir o arquivo %1 + Open file %1 + Abrir o arquivo %1 - File not found - Arquivo não encontrado + File not found + Arquivo não encontrado - The file '%1' cannot be opened. - Não é possível abrir o arquivo '%1'. + The file '%1' cannot be opened. + Não é possível abrir o arquivo '%1'. - - + + Gui::SelectModule - Select module - Selecione o módulo + Select module + Selecione o módulo - Open %1 as - Abrir %1 como + Open %1 as + Abrir %1 como - Select - Selecionar + Select + Selecionar - - + + Gui::StdCmdDescription - Help - Ajuda + Help + Ajuda - Des&cription - Des&crição + Des&cription + Des&crição - Long description of commands - Descrição detalhada dos comandos + Long description of commands + Descrição detalhada dos comandos - - + + Gui::StdCmdDownloadOnlineHelp - Help - Ajuda + Help + Ajuda - Download online help - Baixar a ajuda online + Download online help + Baixar a ajuda online - Download %1's online help - Baixar ajuda online de %1 + Download %1's online help + Baixar ajuda online de %1 - Non-existing directory - Diretório não existente + Non-existing directory + Diretório não existente - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - O diretório '%1' não existe. Você deseja especificar um diretório existente? + O diretório '%1' não existe. Você deseja especificar um diretório existente? - Missing permission - Falta de permissão + Missing permission + Falta de permissão - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Você não tem permissão de escrita para '%1' Deseja especificar outro diretório? + Você não tem permissão de escrita para '%1' Deseja especificar outro diretório? - Stop downloading - Parar a transferência + Stop downloading + Parar a transferência - - + + Gui::StdCmdPythonHelp - Tools - Ferramentas + Tools + Ferramentas - Python Modules - Módulos Python + Python Modules + Módulos Python - Opens a browser to show the Python modules - Abre um navegador para mostrar os módulos Python + Opens a browser to show the Python modules + Abre um navegador para mostrar os módulos Python - - + + Gui::TaskBoxAngle - Angle - Ângulo + Angle + Ângulo - - + + Gui::TaskBoxPosition - Position - Posição + Position + Posição - - + + Gui::TaskView::TaskAppearance - Display mode: - Modo de exibição: + Display mode: + Modo de exibição: - Plot mode: - Modo de impressão: + Plot mode: + Modo de impressão: - Point size: - Tamanho de ponto: + Point size: + Tamanho de ponto: - Line width: - Largura da linha: + Line width: + Largura da linha: - Transparency: - Transparência: + Transparency: + Transparência: - Appearance - Aparência + Appearance + Aparência - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Editar + Edit + Editar - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Aparência + Appearance + Aparência - ... - ... + ... + ... - edit selection - editar seleção + edit selection + editar seleção - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Pressione o botão esquerdo do mouse + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Inglês + English + Inglês - - + + Gui::TreeDockWidget - Tree view - Ãrvore + Tree view + Ãrvore - - + + Gui::TreeWidget - Create group... - Criar grupo... + Create group... + Criar grupo... - Create a group - Criar um grupo + Create a group + Criar um grupo - Group - Grupo + Group + Grupo - Rename - Renomear + Rename + Renomear - Rename object - Renomear objeto + Rename object + Renomear objeto - Labels & Attributes - Rótulos & atributos + Labels & Attributes + Rótulos & atributos - Application - Programa + Application + Programa - Finish editing - Concluir a edição + Finish editing + Concluir a edição - Finish editing object - Terminar de editar o objeto + Finish editing object + Terminar de editar o objeto - Activate document - Ativar o documento + Activate document + Ativar o documento - Activate document %1 - Ativar o documento %1 + Activate document %1 + Ativar o documento %1 - - + + Gui::View3DInventor - Export PDF - Exportar PDF + Export PDF + Exportar PDF - PDF file (*.pdf) - Arquivo PDF (*.pdf) + PDF file (*.pdf) + Arquivo PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Selecione a bancada '%1' + Select the '%1' workbench + Selecione a bancada '%1' - - + + Position - Form - Formulário + Form + Formulário - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 1 mm + 2 mm + 1 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Snap de grade em + Grid Snap in + Snap de grade em - - + + QDockWidget - Tree view - Ãrvore + Tree view + Ãrvore - Property view - Tela de propriedades + Property view + Tela de propriedades - Selection view - Tela de seleção + Selection view + Tela de seleção - Report view - Tela de relatório relatório + Report view + Tela de relatório relatório - Task View - Tarefas + Task View + Tarefas - Combo View - Tela combinada + Combo View + Tela combinada - Toolbox - Caixa de ferramentas + Toolbox + Caixa de ferramentas - Python console - Console Python + Python console + Console Python - Display properties - Exibir propriedades + Display properties + Exibir propriedades - - + + QObject - General - Geral + General + Geral - Display - Tela + Display + Tela - Unknown filetype - Tipo de arquivo desconhecido + Unknown filetype + Tipo de arquivo desconhecido - Cannot open unknown filetype: %1 - Não é possível abrir o tipo de arquivo desconhecido: %1 + Cannot open unknown filetype: %1 + Não é possível abrir o tipo de arquivo desconhecido: %1 - Cannot save to unknown filetype: %1 - Não é possível salvar em tipo de arquivo desconhecido: %1 + Cannot save to unknown filetype: %1 + Não é possível salvar em tipo de arquivo desconhecido: %1 - Workbench failure - Falha de bancada + Workbench failure + Falha de bancada - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Não foi possível iniciar o Assistente do Qt (%1) + Unable to launch Qt Assistant (%1) + Não foi possível iniciar o Assistente do Qt (%1) - Exception - Exceção + Exception + Exceção - Open document - Abrir um documento + Open document + Abrir um documento - Import file - Importar um arquivo + Import file + Importar um arquivo - Export file - Exportar um arquivo + Export file + Exportar um arquivo - Printing... - Imprimindo... + Printing... + Imprimindo... - Cannot load workbench - Não foi possível carregar a bancada + Cannot load workbench + Não foi possível carregar a bancada - A general error occurred while loading the workbench - Um erro geral ocorreu ao carregar a bancada + A general error occurred while loading the workbench + Um erro geral ocorreu ao carregar a bancada - File not found - Arquivo não encontrado + File not found + Arquivo não encontrado - Cannot open file %1 - Não é possível abrir o arquivo %1 + Cannot open file %1 + Não é possível abrir o arquivo %1 - Save views... - Salvar vistas... + Save views... + Salvar vistas... - Load views... - Carregar vistas... + Load views... + Carregar vistas... - Freeze view - Congelar a vista + Freeze view + Congelar a vista - Clear views - Limpar vistas + Clear views + Limpar vistas - Restore view &%1 - Restaurar a vista &%1 + Restore view &%1 + Restaurar a vista &%1 - Save frozen views - Salvar vistas congeladas + Save frozen views + Salvar vistas congeladas - Frozen views (*.cam) - Vistas congeladas (*.cam) + Frozen views (*.cam) + Vistas congeladas (*.cam) - Restore views - Restaurar vistas + Restore views + Restaurar vistas - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Importar vistas restauradas irá descartar vistas já armazenadas. Deseja continuar? + Importar vistas restauradas irá descartar vistas já armazenadas. Deseja continuar? - Restore frozen views - Restaurar vistas congeladas + Restore frozen views + Restaurar vistas congeladas - Cannot open file '%1'. - Não é possível abrir o arquivo '%1'. + Cannot open file '%1'. + Não é possível abrir o arquivo '%1'. - Docked - Ancorado + Docked + Ancorado - Undocked - Desancorado + Undocked + Desancorado - Fullscreen - Tela cheia + Fullscreen + Tela cheia - files - arquivos + files + arquivos - Save picture - Salvar imagem + Save picture + Salvar imagem - New sub-group - Novo subgrupo + New sub-group + Novo subgrupo - Enter the name: - Digite o nome: + Enter the name: + Digite o nome: - New text item - Novo item de texto + New text item + Novo item de texto - Enter your text: - Digite o texto: + Enter your text: + Digite o texto: - New integer item - Novo item inteiro + New integer item + Novo item inteiro - Enter your number: - Digite seu número: + Enter your number: + Digite seu número: - New unsigned item - Novo item unsigned + New unsigned item + Novo item unsigned - New float item - Novo item float + New float item + Novo item float - New Boolean item - Novo item Boolean + New Boolean item + Novo item Boolean - Choose an item: - Escolha um item: + Choose an item: + Escolha um item: - Rename group - Renomear grupo + Rename group + Renomear grupo - The group '%1' cannot be renamed. - O grupo '%1' não pode ser renomeado. + The group '%1' cannot be renamed. + O grupo '%1' não pode ser renomeado. - Existing group - Grupo existente + Existing group + Grupo existente - The group '%1' already exists. - O grupo '%1' já existe. + The group '%1' already exists. + O grupo '%1' já existe. - Change value - Mudar o valor + Change value + Mudar o valor - Save document under new filename... - Salvar documento sob novo nome ... + Save document under new filename... + Salvar documento sob novo nome ... - Saving aborted - Salvamento abortado + Saving aborted + Salvamento abortado - Unsaved document - Documento não salvo + Unsaved document + Documento não salvo - Save document before close? - Salvar o documento antes de fechar? + Save document before close? + Salvar o documento antes de fechar? - Save Macro - Salvar macro + Save Macro + Salvar macro - Finish - Concluir + Finish + Concluir - Clear - Limpar + Clear + Limpar - Cancel - Cancelar + Cancel + Cancelar - Inner - Interno + Inner + Interno - Outer - Externo + Outer + Externo - No Browser - Nenhum navegador + No Browser + Nenhum navegador - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Não é possível abrir o navegador. Por favor, abra uma janela do navegador e digite: http://localhost:%1. + Não é possível abrir o navegador. Por favor, abra uma janela do navegador e digite: http://localhost:%1. - No Server - Nenhum servidor + No Server + Nenhum servidor - Unable to start the server to port %1: %2. - Não é possível iniciar o servidor na porta %1: %2. + Unable to start the server to port %1: %2. + Não é possível iniciar o servidor na porta %1: %2. - Unable to open your system browser. - Não é possível abrir o navegador do sistema. + Unable to open your system browser. + Não é possível abrir o navegador do sistema. - Options... - Opções... + Options... + Opções... - Out of memory - Memória insuficiente + Out of memory + Memória insuficiente - Not enough memory available to display the data. - Não há memória suficiente para exibir os dados. + Not enough memory available to display the data. + Não há memória suficiente para exibir os dados. - Cannot find file %1 - Não foi possível encontrar o arquivo '%1' + Cannot find file %1 + Não foi possível encontrar o arquivo '%1' - Cannot find file %1 neither in %2 nor in %3 - Não é possível encontrar o arquivo %1 nem em %2, nem em %3 + Cannot find file %1 neither in %2 nor in %3 + Não é possível encontrar o arquivo %1 nem em %2, nem em %3 - Save %1 Document - Salvar documento %1 + Save %1 Document + Salvar documento %1 - %1 document (*.FCStd) - documento %1 (*.FCStd) + %1 document (*.FCStd) + documento %1 (*.FCStd) - Save As - Salvar como + Save As + Salvar como - %1 already exists. + %1 already exists. Do you want to replace it? - %1 já existe. Deseja substituí-lo? + %1 já existe. Deseja substituí-lo? - Document not closable - O documento não pode ser fechado + Document not closable + O documento não pode ser fechado - The document is not closable for the moment. - O documento não pode ser fechado neste momento. + The document is not closable for the moment. + O documento não pode ser fechado neste momento. - No OpenGL - Nenhum OpenGL + No OpenGL + Nenhum OpenGL - This system does not support OpenGL - Este sistema não tem suporte a OpenGL + This system does not support OpenGL + Este sistema não tem suporte a OpenGL - Help - Ajuda + Help + Ajuda - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Não é possível carregar a documentação. Para carregá-la Qt 4. 4 ou superior é necessário. + Não é possível carregar a documentação. Para carregá-la Qt 4. 4 ou superior é necessário. - %1 Help - Ajuda de %1 + %1 Help + Ajuda de %1 - Exporting PDF... - Exportar PDF... + Exporting PDF... + Exportar PDF... - Wrong selection - Seleção errada + Wrong selection + Seleção errada - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Apenas um objeto selecionado. Por favor selecione dois objetos. Lembre-se que o ponto onde você clicar tem importância. + Apenas um objeto selecionado. Por favor selecione dois objetos. Lembre-se que o ponto onde você clicar tem importância. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Por favor selecione dois objetos. Lembre-se o que ponto onde você clicar tem importância. + Por favor selecione dois objetos. Lembre-se o que ponto onde você clicar tem importância. - New boolean item - Novo item booleano + New boolean item + Novo item booleano - Navigation styles - Estilos de navegação + Navigation styles + Estilos de navegação - %1 navigation - navegação de %1 + %1 navigation + navegação de %1 - Move annotation - Mover a anotação + Move annotation + Mover a anotação - Transform - Transformar + Transform + Transformar - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - O documento está no modo de edição, portanto, não pode ser fechado no momento. Você deve concluir ou cancelar a edição no painel de tarefas. + O documento está no modo de edição, portanto, não pode ser fechado no momento. Você deve concluir ou cancelar a edição no painel de tarefas. - - + + + StdBoxSelection + + Standard-View + Vista padrão + + + Box selection + + + + StdCmdAbout - Help - Ajuda + Help + Ajuda - &About %1 - &Sobre %1 + &About %1 + &Sobre %1 - About %1 - Sobre %1 + About %1 + Sobre %1 - - + + StdCmdAboutQt - Help - Ajuda + Help + Ajuda - About &Qt - Sobre Qt + About &Qt + Sobre Qt - About Qt - Sobre o Qt + About Qt + Sobre o Qt - - + + StdCmdActivateNextWindow - Window - Janela + Window + Janela - Ne&xt - Pró&ximo + Ne&xt + Pró&ximo - Activate next window - Ativar a janela seguinte + Activate next window + Ativar a janela seguinte - - + + StdCmdActivatePrevWindow - Window - Janela + Window + Janela - Pre&vious - An&terior + Pre&vious + An&terior - Activate previous window - Ativar a janela anterior + Activate previous window + Ativar a janela anterior - - + + + StdCmdAlignment + + Edit + Editar + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Janela + Window + Janela - Arrange &Icons - Organizar &icones + Arrange &Icons + Organizar &icones - Arrange Icons - Organizar ícones + Arrange Icons + Organizar ícones - - + + StdCmdAxisCross - Standard-View - Vista padrão + Standard-View + Vista padrão - Toggle axis cross - Ligar/desligar símbolo de eixos + Toggle axis cross + Ligar/desligar símbolo de eixos - - + + StdCmdCascadeWindows - Window - Janela + Window + Janela - &Cascade - Em &cascata + &Cascade + Em &cascata - Tile pragmatic - Lado a lado pragmático + Tile pragmatic + Lado a lado pragmático - - + + StdCmdCloseActiveWindow - Window - Janela + Window + Janela - Cl&ose - &Fechar + Cl&ose + &Fechar - Close active window - Fechar a janela ativa + Close active window + Fechar a janela ativa - - + + StdCmdCloseAllWindows - Window - Janela + Window + Janela - Close Al&l - Fechar &tudo + Close Al&l + Fechar &tudo - Close all windows - Fecha todas as janelas + Close all windows + Fecha todas as janelas - - + + StdCmdCommandLine - Tools - Ferramentas + Tools + Ferramentas - Start command &line... - Iniciar linha de comando... + Start command &line... + Iniciar linha de comando... - Opens the command line in the console - Abre a linha de comando na consola + Opens the command line in the console + Abre a linha de comando na consola - - + + StdCmdCopy - Edit - Editar + Edit + Editar - C&opy - C&opiar + C&opy + C&opiar - Copy operation - Operação de cópia + Copy operation + Operação de cópia - - + + StdCmdCut - Edit - Editar + Edit + Editar - &Cut - Co&rtar + &Cut + Co&rtar - Cut out - Cortar + Cut out + Cortar - - + + StdCmdDDuplicateSelection - Edit - Editar + Edit + Editar - Duplicate selection - Duplicar seleção + Duplicate selection + Duplicar seleção - Put duplicates of the selected objects to the active document - Coloca duplicatas dos objetos selecionados no documento ativo + Put duplicates of the selected objects to the active document + Coloca duplicatas dos objetos selecionados no documento ativo - - + + StdCmdDelete - Edit - Editar + Edit + Editar - &Delete - &Excluir + &Delete + &Excluir - Deletes the selected objects - Exclui os objetos selecionados + Deletes the selected objects + Exclui os objetos selecionados - - + + StdCmdDemoMode - Standard-View - Vista padrão + Standard-View + Vista padrão - View turntable... - Vista turntable... + View turntable... + Vista turntable... - View turntable - Vista turntable + View turntable + Vista turntable - - + + StdCmdDlgCustomize - Tools - Ferramentas + Tools + Ferramentas - Cu&stomize... - Per&sonalizar... + Cu&stomize... + Per&sonalizar... - Customize toolbars and command bars - Personalizar barras de ferramentas e barras de comando + Customize toolbars and command bars + Personalizar barras de ferramentas e barras de comando - - + + StdCmdDlgMacroExecute - Macros ... - Macros ... + Macros ... + Macros ... - Opens a dialog to let you execute a recorded macro - Abre um diálogo para que você executa uma macro gravada + Opens a dialog to let you execute a recorded macro + Abre um diálogo para que você executa uma macro gravada - Macro - Macro + Macro + Macro - - + + StdCmdDlgMacroExecuteDirect - Macro - Macro + Macro + Macro - Execute macro - Executar macro + Execute macro + Executar macro - Execute the macro in the editor - Executar a macro no editor + Execute the macro in the editor + Executar a macro no editor - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Gravação de macros ... + &Macro recording ... + &Gravação de macros ... - Opens a dialog to record a macro - Abre uma janela para gravar uma macro + Opens a dialog to record a macro + Abre uma janela para gravar uma macro - Macro - Macro + Macro + Macro - - + + StdCmdDlgParameter - Tools - Ferramentas + Tools + Ferramentas - E&dit parameters ... - &Editar parâmetros... + E&dit parameters ... + &Editar parâmetros... - Opens a Dialog to edit the parameters - Abre uma janela para editar os parâmetros + Opens a Dialog to edit the parameters + Abre uma janela para editar os parâmetros - - + + StdCmdDlgPreferences - Tools - Ferramentas + Tools + Ferramentas - &Preferences ... - &Preferências ... + &Preferences ... + &Preferências ... - Opens a Dialog to edit the preferences - Abre uma janela para editar as preferências + Opens a Dialog to edit the preferences + Abre uma janela para editar as preferências - - + + StdCmdDockViewMenu - View - Vista + View + Vista - Vie&ws - &Vistas + Vie&ws + &Vistas - Toggles this window - Troca esta janela + Toggles this window + Troca esta janela - - + + StdCmdDrawStyle - Standard-View - Vista padrão + Standard-View + Vista padrão - Draw style - Estilo de desenho + Draw style + Estilo de desenho - - + + + StdCmdDuplicateSelection + + Edit + Editar + + + Duplicate selection + Duplicar seleção + + + Put duplicates of the selected objects to the active document + Coloca duplicatas dos objetos selecionados no documento ativo + + + + StdCmdEdit + + Edit + Editar + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Arquivo + File + Arquivo - &Export... - &Exportar... + &Export... + &Exportar... - Export an object in the active document - Exportar um objeto do documento ativo + Export an object in the active document + Exportar um objeto do documento ativo - Supported formats - Formatos suportados + Supported formats + Formatos suportados - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Ferramentas + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Arquivo + File + Arquivo - &Recompute - &Recalcular + &Recompute + &Recalcular - Recompute feature or document - Recalcular um objeto ou documento + Recompute feature or document + Recalcular um objeto ou documento - - + + StdCmdFreeCADWebsite - Help - Ajuda + Help + Ajuda - FreeCAD Website - Website do FreeCAD + FreeCAD Website + Website do FreeCAD - The FreeCAD website - O site do FreeCAD + The FreeCAD website + O site do FreeCAD - - + + StdCmdFreezeViews - Standard-View - Vista padrão + Standard-View + Vista padrão - Freeze display - Congelar exibição + Freeze display + Congelar exibição - Freezes the current view position - Congela o ponto de vista atual + Freezes the current view position + Congela o ponto de vista atual - - + + StdCmdHideObjects - Standard-View - Vista padrão + Standard-View + Vista padrão - Hide all objects - Ocultar todos os objetos + Hide all objects + Ocultar todos os objetos - Hide all objects in the document - Ocultar todos os objetos do documento + Hide all objects in the document + Ocultar todos os objetos do documento - - + + StdCmdHideSelection - Standard-View - Vista padrão + Standard-View + Vista padrão - Hide selection - Ocultar seleção + Hide selection + Ocultar seleção - Hide all selected objects - Ocultar todos os objetos selecionados + Hide all selected objects + Ocultar todos os objetos selecionados - - + + StdCmdImport - File - Arquivo + File + Arquivo - &Import... - &Importar... + &Import... + &Importar... - Import a file in the active document - Importar um arquivo no documento ativo + Import a file in the active document + Importar um arquivo no documento ativo - Supported formats - Formatos suportados + Supported formats + Formatos suportados - All files (*.*) - Todos os arquivos (*.*) + All files (*.*) + Todos os arquivos (*.*) - - + + StdCmdMacroStartDebug - Macro - Macro + Macro + Macro - Debug macro - Depurar macro + Debug macro + Depurar macro - Start debugging of macro - Iniciar a depuração da macro + Start debugging of macro + Iniciar a depuração da macro - - + + StdCmdMacroStepOver - Macro - Macro + Macro + Macro - Step over - Avançar + Step over + Avançar - - + + StdCmdMacroStopDebug - Macro - Macro + Macro + Macro - Stop debugging - Parar a depuração + Stop debugging + Parar a depuração - Stop debugging of macro - Parar a depuração de macro + Stop debugging of macro + Parar a depuração de macro - - + + StdCmdMacroStopRecord - Macro - Macro + Macro + Macro - S&top macro recording - Parar a gravação de macro + S&top macro recording + Parar a gravação de macro - Stop the macro recording session - Pare a sessão de gravação de macros + Stop the macro recording session + Pare a sessão de gravação de macros - - + + StdCmdMeasureDistance - View - Vista + View + Vista - Measure distance - Medir distância + Measure distance + Medir distância - - + + StdCmdMeasurementSimple - Tools - Ferramentas + Tools + Ferramentas - Mesure distance - Medir distância + Mesure distance + Medir distância - Measures distance between two selected objects - Mede a distância entre dois objetos selecionados + Measures distance between two selected objects + Mede a distância entre dois objetos selecionados - - + + Measure distance + Medir distância + + + StdCmdMergeProjects - File - Arquivo + File + Arquivo - Merge project... - Mesclar projeto... + Merge project... + Mesclar projeto... - Merge project - Mesclar projeto + Merge project + Mesclar projeto - %1 document (*.fcstd) - documento %1 (*.fcstd) + %1 document (*.fcstd) + documento %1 (*.fcstd) - Cannot merge project with itself. - Não é possível mesclar esse projeto com ele mesmo. + Cannot merge project with itself. + Não é possível mesclar esse projeto com ele mesmo. - - + + StdCmdNew - File - Arquivo + File + Arquivo - &New - &Novo + &New + &Novo - Create a new empty document - Criar um novo documento vazio + Create a new empty document + Criar um novo documento vazio - - + + StdCmdOnlineHelp - Help - Ajuda + Help + Ajuda - Show help to the application - Mostra a ajuda para a aplicação + Show help to the application + Mostra a ajuda para a aplicação - - + + StdCmdOnlineHelpPython - Help - Ajuda + Help + Ajuda - Python Manuals - Manuais de Python + Python Manuals + Manuais de Python - Show the Python documentation - Mostrar a documentação do Python + Show the Python documentation + Mostrar a documentação do Python - - + + StdCmdOnlineHelpWebsite - Help - Ajuda + Help + Ajuda - Help Website - Site de ajuda + Help Website + Site de ajuda - The website where the help is maintained - O site onde a ajuda é mantida + The website where the help is maintained + O site onde a ajuda é mantida - - + + StdCmdOpen - File - Arquivo + File + Arquivo - &Open... - &Abrir... + &Open... + &Abrir... - Open a document or import files - Abrir um documento ou importar arquivos + Open a document or import files + Abrir um documento ou importar arquivos - Supported formats - Formatos suportados + Supported formats + Formatos suportados - All files (*.*) - Todos os arquivos (*.*) + All files (*.*) + Todos os arquivos (*.*) - - + + StdCmdPaste - Edit - Editar + Edit + Editar - &Paste - Co&lar + &Paste + Co&lar - Paste operation - Colar operação + Paste operation + Colar operação - - + + StdCmdPlacement - Edit - Editar + Edit + Editar - Placement... - Posicionamento... + Placement... + Posicionamento... - Place the selected objects - Colocar os objetos selecionados + Place the selected objects + Colocar os objetos selecionados - - + + StdCmdPrint - File - Arquivo + File + Arquivo - &Print... - &Imprimir... + &Print... + &Imprimir... - Print the document - Imprime o documento + Print the document + Imprime o documento - - + + StdCmdPrintPdf - File - Arquivo + File + Arquivo - &Export PDF... - &Exportar PDF... + &Export PDF... + &Exportar PDF... - Export the document as PDF - Exportar o documento como PDF + Export the document as PDF + Exportar o documento como PDF - - + + StdCmdPrintPreview - File - Arquivo + File + Arquivo - &Print preview... - &Visualização de impressão... + &Print preview... + &Visualização de impressão... - Print the document - Imprime o documento + Print the document + Imprime o documento - Print preview - Visualização de impressão + Print preview + Visualização de impressão - - + + StdCmdProjectInfo - File - Arquivo + File + Arquivo - Project i&nformation... - I&nformação do projeto... + Project i&nformation... + I&nformação do projeto... - Show details of the currently active project - Mostrar os detalhes do projeto ativo + Show details of the currently active project + Mostrar os detalhes do projeto ativo - - + + StdCmdProjectUtil - Tools - Ferramentas + Tools + Ferramentas - Project utility... - Utilitário de projeto... + Project utility... + Utilitário de projeto... - Utility to extract or create project files - Utilitário para extrair ou criar arquivos de projeto + Utility to extract or create project files + Utilitário para extrair ou criar arquivos de projeto - - + + StdCmdPythonWebsite - Help - Ajuda + Help + Ajuda - Python Website - Website do Python + Python Website + Website do Python - The official Python website - O site oficial do Python + The official Python website + O site oficial do Python - - + + StdCmdQuit - File - Arquivo + File + Arquivo - E&xit - &Sair + E&xit + &Sair - Quits the application - Finaliza o aplicativo + Quits the application + Finaliza o aplicativo - - + + StdCmdRandomColor - File - Arquivo + File + Arquivo - Random color - Cor aleatória + Random color + Cor aleatória - - + + StdCmdRecentFiles - File - Arquivo + File + Arquivo - Recent files - Arquivos recentes + Recent files + Arquivos recentes - Recent file list - Lista de arquivos recentes + Recent file list + Lista de arquivos recentes - - + + StdCmdRedo - Edit - Editar + Edit + Editar - &Redo - &Refazer + &Redo + &Refazer - Redoes a previously undone action - Refaz uma ação desfeita anteriormente + Redoes a previously undone action + Refaz uma ação desfeita anteriormente - - + + StdCmdRefresh - Edit - Editar + Edit + Editar - &Refresh - &Atualizar + &Refresh + &Atualizar - Recomputes the current active document - Recalcula o documento ativo atual + Recomputes the current active document + Recalcula o documento ativo atual - - + + StdCmdSave - File - Arquivo + File + Arquivo - &Save - &Salvar + &Save + &Salvar - Save the active document - Salva o documento ativo + Save the active document + Salva o documento ativo - - + + StdCmdSaveAs - File - Arquivo + File + Arquivo - Save &As... - Salvar como... + Save &As... + Salvar como... - Save the active document under a new file name - Salvar o documento ativo com um novo nome de arquivo + Save the active document under a new file name + Salvar o documento ativo com um novo nome de arquivo - - + + StdCmdSceneInspector - Tools - Ferramentas + Tools + Ferramentas - Scene inspector... - Inspetor de cena... + Scene inspector... + Inspetor de cena... - Scene inspector - Inspetor de cena + Scene inspector + Inspetor de cena - - + + StdCmdSelectAll - Edit - Editar + Edit + Editar - Select &All - Selecionar &tudo + Select &All + Selecionar &tudo - Select all - Selecionar tudo + Select all + Selecionar tudo - - + + StdCmdSetAppearance - Standard-View - Vista padrão + Standard-View + Vista padrão - Appearance... - Aparência... + Appearance... + Aparência... - Sets the display properties of the selected object - Define as propriedades de exibição do objeto selecionado + Sets the display properties of the selected object + Define as propriedades de exibição do objeto selecionado - - + + StdCmdShowObjects - Standard-View - Vista padrão + Standard-View + Vista padrão - Show all objects - Mostrar todos os objectos + Show all objects + Mostrar todos os objectos - Show all objects in the document - Mostrar todos os objetos do documento + Show all objects in the document + Mostrar todos os objetos do documento - - + + StdCmdShowSelection - Standard-View - Vista padrão + Standard-View + Vista padrão - Show selection - Exibir seleção + Show selection + Exibir seleção - Show all selected objects - Mostrar todos os objetos selecionados + Show all selected objects + Mostrar todos os objetos selecionados - - + + StdCmdStatusBar - View - Vista + View + Vista - Status bar - Barra de status + Status bar + Barra de status - Toggles the status bar - Alterna a barra de status + Toggles the status bar + Alterna a barra de status - - + + StdCmdTextureMapping - Tools - Ferramentas + Tools + Ferramentas - Texture mapping... - Mapeamento de textura... + Texture mapping... + Mapeamento de textura... - Texture mapping - Mapeamento de textura + Texture mapping + Mapeamento de textura - - + + StdCmdTileWindows - Window - Janela + Window + Janela - &Tile - Lado a lado + &Tile + Lado a lado - Tile the windows - Organiza as janelas lado a lado + Tile the windows + Organiza as janelas lado a lado - - + + StdCmdToggleBreakpoint - Macro - Macro + Macro + Macro - Toggle breakpoint - Alternar ponto de interrupção + Toggle breakpoint + Alternar ponto de interrupção - - + + StdCmdToggleClipPlane - Standard-View - Vista padrão + Standard-View + Vista padrão - Clipping plane - Plano de clipping + Clipping plane + Plano de clipping - Toggles clipping plane for active view - Alterna plano de clipping da vista ativa + Toggles clipping plane for active view + Alterna plano de clipping da vista ativa - - + + StdCmdToggleNavigation - Standard-View - Vista padrão + Standard-View + Vista padrão - Toggle navigation/Edit mode - Alternar o modo de navegação/modo de edição + Toggle navigation/Edit mode + Alternar o modo de navegação/modo de edição - Toggle between navigation and edit mode - Alternar entre o modo de edição e navegação + Toggle between navigation and edit mode + Alternar entre o modo de edição e navegação - - + + StdCmdToggleObjects - Standard-View - Vista padrão + Standard-View + Vista padrão - Toggle all objects - Alternar todos os objetos + Toggle all objects + Alternar todos os objetos - Toggles visibility of all objects in the active document - Alterna a visibilidade de todos os objetos do documento ativo + Toggles visibility of all objects in the active document + Alterna a visibilidade de todos os objetos do documento ativo - - + + StdCmdToggleSelectability - Standard-View - Vista padrão + Standard-View + Vista padrão - Toggle selectability - Alternar seletibilidade + Toggle selectability + Alternar seletibilidade - Toggles the property of the objects to get selected in the 3D-View - Alterna a possibilidade dos objetos serem selecionados na vista 3D + Toggles the property of the objects to get selected in the 3D-View + Alterna a possibilidade dos objetos serem selecionados na vista 3D - - + + StdCmdToggleVisibility - Standard-View - Vista padrão + Standard-View + Vista padrão - Toggle visibility - Mudar visibilidade + Toggle visibility + Mudar visibilidade - Toggles visibility - Troca a visibilidade + Toggles visibility + Troca a visibilidade - - + + StdCmdToolBarMenu - View - Vista + View + Vista - Tool&bars - &Barras de ferramentas + Tool&bars + &Barras de ferramentas - Toggles this window - Troca esta janela + Toggles this window + Troca esta janela - - + + StdCmdTransform - Edit - Editar + Edit + Editar - Transform... - Transformar... + Transform... + Transformar... - Transform the geometry of selected objects - Transformar a geometria dos objetos selecionados + Transform the geometry of selected objects + Transformar a geometria dos objetos selecionados - - + + StdCmdTreeSelection - View - Vista + View + Vista - Go to selection - Ir para a seleção + Go to selection + Ir para a seleção - Scroll to first selected item - Vai para o primeiro item selecionado + Scroll to first selected item + Vai para o primeiro item selecionado - - + + StdCmdUndo - Edit - Editar + Edit + Editar - &Undo - &Desfazer + &Undo + &Desfazer - Undo exactly one action - Desfazer só uma ação + Undo exactly one action + Desfazer só uma ação - - + + StdCmdUserInterface - View - Vista + View + Vista - Dock views - Ancorar vistas + Dock views + Ancorar vistas - Dock all top-level views - Ancorar todas as vistas de nível superior + Dock all top-level views + Ancorar todas as vistas de nível superior - - + + StdCmdViewAxo - Standard-View - Vista padrão + Standard-View + Vista padrão - Axometric - Axonométrico + Axometric + Axonométrico - Set to axometric view - Definir como vista axonométrica + Set to axometric view + Definir como vista axonométrica - - + + StdCmdViewBottom - Standard-View - Vista padrão + Standard-View + Vista padrão - Bottom - De baixo + Bottom + De baixo - Set to bottom view - Ver de baixo + Set to bottom view + Ver de baixo - - + + StdCmdViewCreate - Standard-View - Vista padrão + Standard-View + Vista padrão - Create new view - Criar uma nova vista + Create new view + Criar uma nova vista - Creates a new view window for the active document - Cria uma nova janela de exibição para o documento ativo + Creates a new view window for the active document + Cria uma nova janela de exibição para o documento ativo - - + + StdCmdViewExample1 - Standard-View - Vista padrão + Standard-View + Vista padrão - Inventor example #1 - Exemplo Inventor #1 + Inventor example #1 + Exemplo Inventor #1 - Shows a 3D texture with manipulator - Mostra uma textura 3D com manipulador + Shows a 3D texture with manipulator + Mostra uma textura 3D com manipulador - - + + StdCmdViewExample2 - Standard-View - Vista padrão + Standard-View + Vista padrão - Inventor example #2 - Exemplo Inventor #2 + Inventor example #2 + Exemplo Inventor #2 - Shows spheres and drag-lights - Mostra esferas e luzes de arrasto + Shows spheres and drag-lights + Mostra esferas e luzes de arrasto - - + + StdCmdViewExample3 - Standard-View - Vista padrão + Standard-View + Vista padrão - Inventor example #3 - Exemplo Inventor #3 + Inventor example #3 + Exemplo Inventor #3 - Shows a animated texture - Mostra uma textura animada + Shows a animated texture + Mostra uma textura animada - - + + StdCmdViewFitAll - Standard-View - Vista padrão + Standard-View + Vista padrão - Fit all - Enquadrar tudo + Fit all + Enquadrar tudo - Fits the whole content on the screen - Adapta todo o conteúdo na tela + Fits the whole content on the screen + Adapta todo o conteúdo na tela - - + + StdCmdViewFitSelection - Standard-View - Vista padrão + Standard-View + Vista padrão - Fit selection - Enquadrar seleção + Fit selection + Enquadrar seleção - Fits the selected content on the screen - Adapta o conteúdo selecionado na tela + Fits the selected content on the screen + Adapta o conteúdo selecionado na tela - - + + StdCmdViewFront - Standard-View - Vista padrão + Standard-View + Vista padrão - Front - Frente + Front + Frente - Set to front view - Ajusta para a vista frontal + Set to front view + Ajusta para a vista frontal - - + + StdCmdViewIvIssueCamPos - Standard-View - Vista padrão + Standard-View + Vista padrão - Issue camera position - Mostrar a posição da câmera + Issue camera position + Mostrar a posição da câmera - Issue the camera position to the console and to a macro, to easily recall this position - Mostrar a posição da câmera no console e numa macro, para recuperar facilmente essa posição + Issue the camera position to the console and to a macro, to easily recall this position + Mostrar a posição da câmera no console e numa macro, para recuperar facilmente essa posição - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Vista padrão + Standard-View + Vista padrão - Stereo Interleaved Columns - Colunas estéreo intercaladas + Stereo Interleaved Columns + Colunas estéreo intercaladas - Switch stereo viewing to Interleaved Columns - Mudar de visualização stereo para Colunas Intercaladas + Switch stereo viewing to Interleaved Columns + Mudar de visualização stereo para Colunas Intercaladas - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Vista padrão + Standard-View + Vista padrão - Stereo Interleaved Rows - Linhas estéreo intercaladas + Stereo Interleaved Rows + Linhas estéreo intercaladas - Switch stereo viewing to Interleaved Rows - Alternar visualização estéreo para linhas intercaladas + Switch stereo viewing to Interleaved Rows + Alternar visualização estéreo para linhas intercaladas - - + + StdCmdViewIvStereoOff - Standard-View - Vista padrão + Standard-View + Vista padrão - Stereo Off - Desligar estéreo + Stereo Off + Desligar estéreo - Switch stereo viewing off - Desligar o modo de visualização estéreo + Switch stereo viewing off + Desligar o modo de visualização estéreo - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Vista padrão + Standard-View + Vista padrão - Stereo quad buffer - Quad buffer estéreo + Stereo quad buffer + Quad buffer estéreo - Switch stereo viewing to quad buffer - Alternar visualização estéreo para quad buffer + Switch stereo viewing to quad buffer + Alternar visualização estéreo para quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Vista padrão + Standard-View + Vista padrão - Stereo red/green - Estéreo vermelho/verde + Stereo red/green + Estéreo vermelho/verde - Switch stereo viewing to red/green - Alternar visualização estéreo para vermelho/verde + Switch stereo viewing to red/green + Alternar visualização estéreo para vermelho/verde - - + + StdCmdViewLeft - Standard-View - Vista padrão + Standard-View + Vista padrão - Left - Esquerda + Left + Esquerda - Set to left view - Ajusta para a vista esquerda + Set to left view + Ajusta para a vista esquerda - - + + StdCmdViewRear - Standard-View - Vista padrão + Standard-View + Vista padrão - Rear - Traseira + Rear + Traseira - Set to rear view - Vista de trás + Set to rear view + Vista de trás - - + + StdCmdViewRight - Standard-View - Vista padrão + Standard-View + Vista padrão - Right - Direito + Right + Direito - Set to right view - Vista direita + Set to right view + Vista direita - - + + + StdCmdViewRotateLeft + + Standard-View + Vista padrão + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Vista padrão + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Vista padrão + Standard-View + Vista padrão - Top - Topo + Top + Topo - Set to top view - Vista de topo + Set to top view + Vista de topo - - + + StdCmdWhatsThis - Help - Ajuda + Help + Ajuda - &What's This? - O &Que é Isso? + &What's This? + O &Que é Isso? - What's This - O Que é Isso + What's This + O Que é Isso - - + + StdCmdWindows - Window - Janela + Window + Janela - &Windows... - &Janelas... + &Windows... + &Janelas... - Windows list - Lista de janelas + Windows list + Lista de janelas - - + + StdCmdWindowsMenu - Window - Janela + Window + Janela - Activates this window - Ativar esta janela + Activates this window + Ativar esta janela - - + + StdCmdWorkbench - View - Vista + View + Vista - Workbench - Bancada + Workbench + Bancada - Switch between workbenches - Alternar entre bancadas + Switch between workbenches + Alternar entre bancadas - - + + StdOrthographicCamera - Standard-View - Vista padrão + Standard-View + Vista padrão - Orthographic view - Vista ortográfica + Orthographic view + Vista ortográfica - Switches to orthographic view mode - Alterna para o modo de exibição ortográfica + Switches to orthographic view mode + Alterna para o modo de exibição ortográfica - - + + StdPerspectiveCamera - Standard-View - Vista padrão + Standard-View + Vista padrão - Perspective view - Vista em perspectiva + Perspective view + Vista em perspectiva - Switches to perspective view mode - Alterna para o modo de visualização em perspectiva + Switches to perspective view mode + Alterna para o modo de visualização em perspectiva - - + + StdViewBoxZoom - Standard-View - Vista padrão + Standard-View + Vista padrão - Box zoom - Zoom por caixa + Box zoom + Zoom por caixa - - + + StdViewDockUndockFullscreen - Standard-View - Vista padrão + Standard-View + Vista padrão - Document window - Janela do documento + Document window + Janela do documento - Display the active view either in fullscreen, in undocked or docked mode - Mostrar a vista activa em tela cheia, em modo desencaixado ou encaixado + Display the active view either in fullscreen, in undocked or docked mode + Mostrar a vista activa em tela cheia, em modo desencaixado ou encaixado - - + + StdViewScreenShot - Standard-View - Vista padrão + Standard-View + Vista padrão - Save picture... - Salvar imagem... + Save picture... + Salvar imagem... - Creates a screenshot of the active view - Cria uma captura de tela da vista activa + Creates a screenshot of the active view + Cria uma captura de tela da vista activa - - + + StdViewZoomIn - Standard-View - Vista padrão + Standard-View + Vista padrão - Zoom In - Ampliar + Zoom In + Ampliar - - + + StdViewZoomOut - Standard-View - Vista padrão + Standard-View + Vista padrão - Zoom Out - Reduzir + Zoom Out + Reduzir - - + + Std_DrawStyle - As is - Como é + As is + Como é - Normal mode - Modo normal + Normal mode + Modo normal - Wireframe - Arame + Wireframe + Arame - Wireframe mode - Modo de arame + Wireframe mode + Modo de arame - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Arquivo + &File + &Arquivo - &Edit - &Editar + &Edit + &Editar - Standard views - Vistas padrão + Standard views + Vistas padrão - &Stereo - E&stéreo + &Stereo + E&stéreo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Visibilidade + Visibility + Visibilidade - &View - &Vista + &View + &Vista - &Tools - &Ferramentas + &Tools + &Ferramentas - &Macro - &Macro + &Macro + &Macro - &Windows - &Janelas + &Windows + &Janelas - &On-line help - A&juda on-line + &On-line help + A&juda on-line - &Help - A&juda + &Help + A&juda - File - Arquivo + File + Arquivo - Macro - Macro + Macro + Macro - View - Vista + View + Vista - Special Ops - Operações especiais + Special Ops + Operações especiais - - + + testClass - test - teste + test + teste - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Escolha o estilo do painel de tarefas + Choose the style of the Task Panel + Escolha o estilo do painel de tarefas - Default - Padrão + Default + Padrão - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_ru.ts b/src/Gui/Language/FreeCAD_ru.ts index b1e39e830..a8e56df61 100644 --- a/src/Gui/Language/FreeCAD_ru.ts +++ b/src/Gui/Language/FreeCAD_ru.ts @@ -1,5481 +1,5899 @@ - - + + Angle - Form - Форма + Form + Форма - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Угол оÑнаÑтки + Angle Snap + Угол оÑнаÑтки - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - false + + 2 ° + false - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - ОтÑутÑтвует + none + ОтÑутÑтвует - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Добавить + + + Remove + Удалить + + + Move up + ПеремеÑтить вверх + + + Move down + ПеремеÑтить вниз + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Ðажмите левую кнопку мыши + Press left mouse button + Ðажмите левую кнопку мыши - Press SHIFT and middle mouse button - Ðажмите клавишу SHIFT и Ñреднюю кнопку мыши + Press SHIFT and middle mouse button + Ðажмите клавишу SHIFT и Ñреднюю кнопку мыши - Press middle mouse button - Ðажмите Ñреднюю кнопку мыши + Press middle mouse button + Ðажмите Ñреднюю кнопку мыши - Scroll middle mouse button - Прокрутите Ñреднюю кнопку мыши + Scroll middle mouse button + Прокрутите Ñреднюю кнопку мыши - - + + Gui::CADNavigationStyle - Press left mouse button - Ðажмите левую кнопку мыши + Press left mouse button + Ðажмите левую кнопку мыши - Press middle mouse button - Ðажмите Ñреднюю кнопку мыши + Press middle mouse button + Ðажмите Ñреднюю кнопку мыши - Press left and middle mouse button - Ðажмите левую и Ñреднюю кнопку мыши + Press left and middle mouse button + Ðажмите левую и Ñреднюю кнопку мыши - Scroll middle mouse button - Прокрутите Ñреднюю кнопку мыши + Scroll middle mouse button + Прокрутите Ñреднюю кнопку мыши - - + + Gui::Command - Standard - По умолчанию + Standard + По умолчанию - - + + Gui::ContainerDialog - &OK - &OK + &OK + &OK - &Cancel - &Cancel + &Cancel + &Cancel - - + + Gui::ControlSingleton - Task panel - Панель задач + Task panel + Панель задач - - + + Gui::Dialog::AboutApplication - About - О программе + About + О программе - Revision number - ВерÑÐ¸Ñ + Revision number + ВерÑÐ¸Ñ - Version - ВерÑÐ¸Ñ + Version + ВерÑÐ¸Ñ - OK - OK + OK + OK - - О программе + + О программе - Release date - Дата выпуÑка + Release date + Дата выпуÑка - Platform - Платформа + Platform + Платформа - License... - Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ ... + License... + Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ ... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Кнопка %1 + Button %1 + Кнопка %1 - Out Of Range - За пределами допуÑтимого диапазона + Out Of Range + За пределами допуÑтимого диапазона - - + + Gui::Dialog::CommandModel - Commands - Команды + Commands + Команды - - + + Gui::Dialog::DemoMode - View Turntable - Поворотный проÑмотр + View Turntable + Поворотный проÑмотр - Speed - СкороÑть + Speed + СкороÑть - Maximum - МакÑимум + Maximum + МакÑимум - Minimum - Минимум + Minimum + Минимум - Fullscreen - Ðа веÑÑŒ Ñкран + Fullscreen + Ðа веÑÑŒ Ñкран - Enable timer - Включить таймер + Enable timer + Включить таймер - s - s + s + s - Angle - Угол + Angle + Угол + + + 90° + 90 ° + + + -90° + -90 ° - 90° - 90 ° + Play + ВоÑпроизвеÑти - -90° - -90 ° + Stop + ОÑтановить - Play - ВоÑпроизвеÑти + Close + Закрыть - - Stop - ОÑтановить - - - Close - Закрыть - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Выберите окно + Choose Window + Выберите окно - &Activate - &Aктивировать + &Activate + &Aктивировать - Alt+A - Alt + A + Alt+A + Alt + A - &Cancel - &Cancel + &Cancel + &Cancel - - О программе + + О программе - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Windows + Windows + Windows - - + + Gui::Dialog::DlgAuthorization - Authorization - ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ + Authorization + ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ - &OK - &OK + &OK + &OK - &Cancel - &Cancel + &Cancel + &Cancel - Password: - Пароль: + Password: + Пароль: - User name: - Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: + User name: + Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: - - О программе + + О программе - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Выберите иконку + Choose Icon + Выберите иконку - OK - OK + OK + OK - Cancel - Отменить + Cancel + Отменить - Add icons... - Добавить иконки... + Add icons... + Добавить иконки... - - + + Gui::Dialog::DlgCustomActions - Macros - ÐœÐ°ÐºÑ€Ð¾Ñ + Macros + ÐœÐ°ÐºÑ€Ð¾Ñ - Setup Custom Macros - ÐаÑтройка пользовательÑких макроÑов + Setup Custom Macros + ÐаÑтройка пользовательÑких макроÑов - Macro: - МакроÑ: + Macro: + МакроÑ: - ... - ... + ... + ... - Pixmap - Изображение + Pixmap + Изображение - Accelerator: - УÑкоритель: + Accelerator: + УÑкоритель: - What's this: - Что Ñто: + What's this: + Что Ñто: - Status text: - ТекÑÑ‚ ÑоÑтоÑниÑ: + Status text: + ТекÑÑ‚ ÑоÑтоÑниÑ: - Tool tip: - ПодÑказка: + Tool tip: + ПодÑказка: - Menu text: - ТекÑÑ‚ меню: + Menu text: + ТекÑÑ‚ меню: - Add - Добавить + Add + Добавить - Remove - Удалить + Remove + Удалить - Replace - Заменить + Replace + Заменить - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Иконки + Icons + Иконки - Macros - ÐœÐ°ÐºÑ€Ð¾Ñ + Macros + ÐœÐ°ÐºÑ€Ð¾Ñ - No macro - Ðет макроÑа + No macro + Ðет макроÑа - No macros found. - МакроÑÑ‹ не найдены. + No macros found. + МакроÑÑ‹ не найдены. - Macro not found - ÐœÐ°ÐºÑ€Ð¾Ñ Ð½Ðµ найден + Macro not found + ÐœÐ°ÐºÑ€Ð¾Ñ Ð½Ðµ найден - Sorry, couldn't find macro file '%1'. - К Ñожалению не удалоÑÑŒ найти файл '% 1' макроÑа. + Sorry, couldn't find macro file '%1'. + К Ñожалению не удалоÑÑŒ найти файл '% 1' макроÑа. - Empty macro - ПуÑтой Ð¼Ð°ÐºÑ€Ð¾Ñ + Empty macro + ПуÑтой Ð¼Ð°ÐºÑ€Ð¾Ñ - Please specify the macro first. - Сначала укажите макроÑ. + Please specify the macro first. + Сначала укажите макроÑ. - Empty text - ПуÑтой текÑÑ‚ + Empty text + ПуÑтой текÑÑ‚ - Please specify the menu text first. - ПожалуйÑта, укажите Ñначала текÑÑ‚ в меню. + Please specify the menu text first. + ПожалуйÑта, укажите Ñначала текÑÑ‚ в меню. - No item selected - Ðи один пункт выбран + No item selected + Ðи один пункт выбран - Please select a macro item first. - ПожалуйÑта, выберите Ñначала макроÑ. + Please select a macro item first. + ПожалуйÑта, выберите Ñначала макроÑ. - - + + Gui::Dialog::DlgCustomCommands - Commands - Команды + Commands + Команды - - О программе + + О программе - - + + Gui::Dialog::DlgCustomCommandsImp - Category - ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ + Category + ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ - Icon - Иконка + Icon + Иконка - Command - Команда + Command + Команда - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Клавиатура + Keyboard + Клавиатура - Description: - ОпиÑание: + Description: + ОпиÑание: - &Category: - &КатегориÑ: + &Category: + &КатегориÑ: - C&ommands: - К&оманды: + C&ommands: + К&оманды: - Current shortcut: - Ð¢ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ: + Current shortcut: + Ð¢ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñˆ: - Press &new shortcut: - Ðажмите &новую комбинацию клавиш: + Press &new shortcut: + Ðажмите &новую комбинацию клавиш: - Currently assigned to: - Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ длÑ: + Currently assigned to: + Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ длÑ: - &Assign - &Ðазначить + &Assign + &Ðазначить - Alt+A - Alt + A + Alt+A + Alt + A - &Reset - &СброÑить + &Reset + &СброÑить - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Сб&роÑить вÑе + Re&set All + Сб&роÑить вÑе - Alt+S - Alt+S + Alt+S + Alt+S - - О программе + + О программе - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Иконка + Icon + Иконка - Command - Команда + Command + Команда - none - ОтÑутÑтвует + none + ОтÑутÑтвует - Multiple defined shortcut - ÐеÑколько ÑÑылок + Multiple defined shortcut + ÐеÑколько ÑÑылок - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - '%1' клавиша быÑтрого доÑтупа определена более одного раза. Это может привеÑти к неожиданному поведению. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + '%1' клавиша быÑтрого доÑтупа определена более одного раза. Это может привеÑти к неожиданному поведению. - Already defined shortcut - Ярлык уже определен + Already defined shortcut + Ярлык уже определен - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Клавиша быÑтрого доÑтупа '%1' уже назначена Ð´Ð»Ñ '%2'. + Клавиша быÑтрого доÑтупа '%1' уже назначена Ð´Ð»Ñ '%2'. ПожалуйÑта, определите другое значение клавиши быÑтрого доÑтупа. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Панели инÑтрументов + Toolbox bars + Панели инÑтрументов - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Панели инÑтрументов + Toolbars + Панели инÑтрументов - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - Move right - Перейти вправо + Move right + Перейти вправо - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> - Move left - Перейти влево + Move left + Перейти влево - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> - Move down - ПеремеÑтить вниз + Move down + ПеремеÑтить вниз - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - Move up - ПеремеÑтить вверх + Move up + ПеремеÑтить вверх - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - New... - Ðовый... + New... + Ðовый... - Rename... - Переименовать... + Rename... + Переименовать... - Delete - Удалить + Delete + Удалить - Icon - Иконка + Icon + Иконка - Command - Команда + Command + Команда - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ инÑтрументов + New toolbar + ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ инÑтрументов - Toolbar name: - Ð˜Ð¼Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ инÑтрументов: + Toolbar name: + Ð˜Ð¼Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ инÑтрументов: - Duplicated name - ПовторÑющееÑÑ Ð¸Ð¼Ñ + Duplicated name + ПовторÑющееÑÑ Ð¸Ð¼Ñ - The toolbar name '%1' is already used - Ð˜Ð¼Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ инÑтрументов '%1' уже иÑпользуетÑÑ + The toolbar name '%1' is already used + Ð˜Ð¼Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸ инÑтрументов '%1' уже иÑпользуетÑÑ - Rename toolbar - Переименовать панель + Rename toolbar + Переименовать панель - - О программе + + О программе - - + + Gui::Dialog::DlgCustomizeImp - Customize - ÐаÑтроить + Customize + ÐаÑтроить - &Help - &Справка + &Help + &Справка - &Close - &Закрыть + &Close + &Закрыть - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Spaceball не приÑутÑтвует + No Spaceball Present + Spaceball не приÑутÑтвует - Buttons - Кнопки + Buttons + Кнопки - Clear - ОчиÑтить + Clear + ОчиÑтить - Print Reference - РуководÑтво по печати + Print Reference + РуководÑтво по печати - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Отобразить ÑвойÑтва + Display properties + Отобразить ÑвойÑтва - Display - Отобразить + Display + Отобразить - Transparency: - ПрозрачноÑть: + Transparency: + ПрозрачноÑть: - Line width: - Толщина линии: + Line width: + Толщина линии: - Point size: - Размер точки: + Point size: + Размер точки: - Material - Материал + Material + Материал - ... - ... + ... + ... - Close - Закрыть + Close + Закрыть - Viewing mode - Режим проÑмотра + Viewing mode + Режим проÑмотра - Display mode: - Режим отображениÑ: + Display mode: + Режим отображениÑ: - Plot mode: - Режим вывода на печать: + Plot mode: + Режим вывода на печать: - - О программе + + О программе - Line transparency: - ПрозрачноÑть линии: + Line transparency: + ПрозрачноÑть линии: - Line color: - Цвет линии: + Line color: + Цвет линии: - Shape color: - Цвет фигуры: + Shape color: + Цвет фигуры: - Color plot: - Цветной риÑунок: + Color plot: + Цветной риÑунок: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Редактор + Editor + Редактор - Options - Параметры + Options + Параметры - Enable line numbers - Включить номера Ñтрок + Enable line numbers + Включить номера Ñтрок - Enable folding - Включить Ñворачивание + Enable folding + Включить Ñворачивание - Indentation - ОтÑтуп + Indentation + ОтÑтуп - Insert spaces - Ð’Ñтавить пробелы + Insert spaces + Ð’Ñтавить пробелы - Tab size: - Размер табулÑции: + Tab size: + Размер табулÑции: - Indent size: - Размер отÑтупа: + Indent size: + Размер отÑтупа: - Keep tabs - Сохранить вкладки + Keep tabs + Сохранить вкладки - Display Items - Отобразить Ñлементы + Display Items + Отобразить Ñлементы - Family: - СемейÑтво: + Family: + СемейÑтво: - Size: - Размер: + Size: + Размер: - Preview: - ПредпроÑмотр: + Preview: + ПредпроÑмотр: - - О программе + + О программе - - + + Gui::Dialog::DlgGeneral - General - ОÑновные + General + ОÑновные - Start up - ЗапуÑк + Start up + ЗапуÑк - Enable splash screen at start up - Включить заÑтавку при запуÑке + Enable splash screen at start up + Включить заÑтавку при запуÑке - Switch to tab of report window: - ПереключитеÑÑŒ на вкладку окна отчета: + Switch to tab of report window: + ПереключитеÑÑŒ на вкладку окна отчета: - Auto load module after start up: - ÐвтоматичеÑÐºÐ°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾Ñле запуÑка: + Auto load module after start up: + ÐвтоматичеÑÐºÐ°Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ° Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ð¾Ñле запуÑка: - Language - Язык + Language + Язык - Change language: - Изменить Ñзык: + Change language: + Изменить Ñзык: - Main window - Главное окно + Main window + Главное окно - Size of recent file list - Размер ÑпиÑка поÑледних файлов + Size of recent file list + Размер ÑпиÑка поÑледних файлов - Window style: - Стиль окна: + Window style: + Стиль окна: - Size of toolbar icons: - Размер значков на панели инÑтрументов: + Size of toolbar icons: + Размер значков на панели инÑтрументов: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - По умолчанию (%1Ñ…%1) + Default (%1 x %1) + По умолчанию (%1Ñ…%1) - Small (%1 x %1) - Маленький (%1%Ñ…%1) + Small (%1 x %1) + Маленький (%1%Ñ…%1) - Large (%1 x %1) - Большой (%1x%1) + Large (%1 x %1) + Большой (%1x%1) - Extra large (%1 x %1) - Очень большой (%1Ñ…%1) + Extra large (%1 x %1) + Очень большой (%1Ñ…%1) - - + + Gui::Dialog::DlgInputDialog - Input - Ввод + Input + Ввод - OK - OK + OK + OK - Cancel - Отменить + Cancel + Отменить - - О программе + + О программе - - + + Gui::Dialog::DlgInspector - Scene Inspector - ИнÑпектор Ñцены + Scene Inspector + ИнÑпектор Ñцены - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ + Execute macro + Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ - Macro name: - Ð˜Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа: + Macro name: + Ð˜Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа: - Macro destination: - Ðазначение макроÑа: + Macro destination: + Ðазначение макроÑа: - Execute - Выполнить + Execute + Выполнить - Close - Закрыть + Close + Закрыть - Create - Создать + Create + Создать - Delete - Удалить + Delete + Удалить - Edit - Редактировать + Edit + Редактировать - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - ÐœÐ°ÐºÑ€Ð¾Ñ + Macros + ÐœÐ°ÐºÑ€Ð¾Ñ - Macro file - Файл макроÑа + Macro file + Файл макроÑа - Enter a file name, please: - Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, пожалуйÑта: + Enter a file name, please: + Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, пожалуйÑта: - Existing file - СущеÑтвующий файл + Existing file + СущеÑтвующий файл - '%1'. + '%1'. This file already exists. - '%1'. Этот файл уже ÑущеÑтвует. + '%1'. Этот файл уже ÑущеÑтвует. - Delete macro - Удалить Ð¼Ð°ÐºÑ€Ð¾Ñ + Delete macro + Удалить Ð¼Ð°ÐºÑ€Ð¾Ñ - Do you really want to delete the macro '%1'? - Ð’Ñ‹ дейÑтвительно хотите удалить Ð¼Ð°ÐºÑ€Ð¾Ñ '%1' ? + Do you really want to delete the macro '%1'? + Ð’Ñ‹ дейÑтвительно хотите удалить Ð¼Ð°ÐºÑ€Ð¾Ñ '%1' ? - Cannot create file - Ðе удаетÑÑ Ñоздать файл + Cannot create file + Ðе удаетÑÑ Ñоздать файл - Creation of file '%1' failed. - Ðе удалоÑÑŒ Ñоздать файл '%1'. + Creation of file '%1' failed. + Ðе удалоÑÑŒ Ñоздать файл '%1'. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - ЗапиÑÑŒ макроÑа + Macro recording + ЗапиÑÑŒ макроÑа - Macro name: - Ð˜Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа: + Macro name: + Ð˜Ð¼Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа: - Stop - ОÑтановить + Stop + ОÑтановить - Cancel - Отменить + Cancel + Отменить - Macro path: - Путь к МакроÑу: + Macro path: + Путь к МакроÑу: - ... - ... + ... + ... - Record - ЗапиÑÑŒ + Record + ЗапиÑÑŒ - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - СредÑтво запиÑи макроÑов + Macro recorder + СредÑтво запиÑи макроÑов - Specify first a place to save. - Сначала укажите меÑто Ð´Ð»Ñ ÑохранениÑ. + Specify first a place to save. + Сначала укажите меÑто Ð´Ð»Ñ ÑохранениÑ. - Existing macro - СущеÑтвующие макроÑÑ‹ + Existing macro + СущеÑтвующие макроÑÑ‹ - The macro '%1' already exists. Do you want to overwrite? - ÐœÐ°ÐºÑ€Ð¾Ñ '% 1' уже ÑущеÑтвует. Ð’Ñ‹ хотите перепиÑать? + The macro '%1' already exists. Do you want to overwrite? + ÐœÐ°ÐºÑ€Ð¾Ñ '% 1' уже ÑущеÑтвует. Ð’Ñ‹ хотите перепиÑать? - The macro directory doesn't exist. Please, choose another one. - ÐœÐ°ÐºÑ€Ð¾Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ не ÑущеÑтвует. ПожалуйÑта выберите другой. + The macro directory doesn't exist. Please, choose another one. + ÐœÐ°ÐºÑ€Ð¾Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³ не ÑущеÑтвует. ПожалуйÑта выберите другой. - Choose macro directory - Выберите каталог макроÑов + Choose macro directory + Выберите каталог макроÑов - - + + Gui::Dialog::DlgMaterialProperties - Material properties - СвoйÑтва материала + Material properties + СвoйÑтва материала - &Close - &Закрыть + &Close + &Закрыть - Alt+C - ALT + C + Alt+C + ALT + C - Material - Материал + Material + Материал - Diffuse color: - РаÑÑеÑнный цвет: + Diffuse color: + РаÑÑеÑнный цвет: - Specular color: - Отраженный цвет: + Specular color: + Отраженный цвет: - Shininess: - ЯркоÑть: + Shininess: + ЯркоÑть: - % - % + % + % - Ambient color: - Окружающий цвет: + Ambient color: + Окружающий цвет: - - О программе + + О программе - Emissive color: - ВоздейÑтвующий цвет: + Emissive color: + ВоздейÑтвующий цвет: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Он-лайн помощь + On-line help + Он-лайн помощь - Help viewer - программа проÑмотра Ñправки + Help viewer + программа проÑмотра Ñправки - Location of start page - РаÑположение Ñтартовой Ñтраницы + Location of start page + РаÑположение Ñтартовой Ñтраницы - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML-файлы (*.html *.htm) + HTML files (*.html *.htm) + HTML-файлы (*.html *.htm) - Access denied - ДоÑтуп запрещен + Access denied + ДоÑтуп запрещен - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Отказано в доÑтупе к '% 1' + Отказано в доÑтупе к '% 1' Укажите другой каталог, пожалуйÑта. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Параметры редактора + Parameter Editor + Параметры редактора - Save to disk - Сохранить на диÑк + Save to disk + Сохранить на диÑк - Alt+C - ALT + C + Alt+C + ALT + C - &Close - &Закрыть + &Close + &Закрыть - - + + Gui::Dialog::DlgParameterImp - Group - Группа + Group + Группа - Name - Ðазвание + Name + Ðазвание - Type - Тип + Type + Тип - Value - Значение + Value + Значение - User parameter - ПользовательÑкие параметры + User parameter + ПользовательÑкие параметры - Invalid input - Ðеправильный ввод + Invalid input + Ðеправильный ввод - Invalid key name '%1' - ÐедопуÑтимое Ð¸Ð¼Ñ ÐºÐ»ÑŽÑ‡Ð° '% 1' + Invalid key name '%1' + ÐедопуÑтимое Ð¸Ð¼Ñ ÐºÐ»ÑŽÑ‡Ð° '% 1' - System parameter - Параметры ÑиÑтемы + System parameter + Параметры ÑиÑтемы - - + + Gui::Dialog::DlgPreferences - Preferences - ÐаÑтройка + Preferences + ÐаÑтройка - &Help - &Справка + &Help + &Справка - Alt+H - Alt + H + Alt+H + Alt + H - &OK - &OK + &OK + &OK - &Apply - & Применить + &Apply + & Применить - Alt+A - Alt + A + Alt+A + Alt + A - &Cancel - &Cancel + &Cancel + &Cancel - - О программе + + О программе - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Ðеверный параметр + Wrong parameter + Ðеверный параметр - - + + Gui::Dialog::DlgProjectInformation - Project information - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ проекте + Project information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ проекте - Information - Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ + Information + Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ - &Name: - &ИмÑ: + &Name: + &ИмÑ: - Commen&t: - Коммен&тарий: + Commen&t: + Коммен&тарий: - Path: - Путь: + Path: + Путь: - &Last modified by: - &ПоÑледние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑены: + &Last modified by: + &ПоÑледние Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑены: - Created &by: - Создатели: + Created &by: + Создатели: - Com&pany: - ОрганизациÑ: + Com&pany: + ОрганизациÑ: - Last &modification date: - Дата поÑледнего изменениÑ: + Last &modification date: + Дата поÑледнего изменениÑ: - Creation &date: - &Дата ÑозданиÑ: + Creation &date: + &Дата ÑозданиÑ: - &OK - &OK + &OK + &OK - &Cancel - &Cancel + &Cancel + &Cancel - - О программе + + О программе - - + + Gui::Dialog::DlgProjectUtility - Project utility - Утилита проекта + Project utility + Утилита проекта - Extract project - извлечь проект + Extract project + извлечь проект - Source - ИÑточник + Source + ИÑточник - Project file (*.fcstd) - Файл проекта (*.fcstd) + Project file (*.fcstd) + Файл проекта (*.fcstd) - Destination - Ðазначение + Destination + Ðазначение - Extract - Извлечь + Extract + Извлечь - Create project - Создать проект + Create project + Создать проект - Document.xml - Document.xml + Document.xml + Document.xml - Create - Создать + Create + Создать - Load project file after creation - Загрузить файл проекта поÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ + Load project file after creation + Загрузить файл проекта поÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ - Empty source - ПуÑтой иÑточник + Empty source + ПуÑтой иÑточник - No source is defined. - ИÑточник не определён. + No source is defined. + ИÑточник не определён. - Empty destination - Ðазначение пуÑто + Empty destination + Ðазначение пуÑто - No destination is defined. - Ðазначение не определено. + No destination is defined. + Ðазначение не определено. - - + + Gui::Dialog::DlgReportView - Output window - Окно вывода + Output window + Окно вывода - Output - Вывод + Output + Вывод - Record log messages - ЗапиÑÑŒ журнала + Record log messages + ЗапиÑÑŒ журнала - Record warnings - ЗапиÑÑŒ предупреждений + Record warnings + ЗапиÑÑŒ предупреждений - Record error messages - ЗапиÑÑŒ Ñообщений об ошибках + Record error messages + ЗапиÑÑŒ Ñообщений об ошибках - Colors - Цвета + Colors + Цвета - Normal messages: - Обычные ÑообщениÑ: + Normal messages: + Обычные ÑообщениÑ: - Log messages: - Журнал Ñообщений: + Log messages: + Журнал Ñообщений: - Warnings: - ПредупреждениÑ: + Warnings: + ПредупреждениÑ: - Errors: - Ошибки: + Errors: + Ошибки: - - О программе + + О программе - Redirect internal Python errors to report view - Перенаправить внутренние ошибки Python Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð° + Redirect internal Python errors to report view + Перенаправить внутренние ошибки Python Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð° - Redirect internal Python output to report view - Перенаправить внутренний выход Python в информационное окно + Redirect internal Python output to report view + Перенаправить внутренний выход Python в информационное окно - - + + Gui::Dialog::DlgRunExternal - Running external program - ЗапуÑк внешней программы + Running external program + ЗапуÑк внешней программы - TextLabel - ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° + TextLabel + ТекÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° - Advanced >> - Дополнительно >> + Advanced >> + Дополнительно >> - ... - ... + ... + ... - Accept changes - ПринÑть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + Accept changes + ПринÑть Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ - Discard changes - Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ + Discard changes + Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ - Abort program - Прервать программу + Abort program + Прервать программу - Help - Справка + Help + Справка - Select a file - Выберите файл + Select a file + Выберите файл - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D Вид + 3D View + 3D Вид - 3D View settings - ÐаÑтройки 3D проÑмотра + 3D View settings + ÐаÑтройки 3D проÑмотра - Show coordinate system in the corner - Показать ÑиÑтему координат в углу + Show coordinate system in the corner + Показать ÑиÑтему координат в углу - Show counter of frames per second - Показать Ñчетчик кадров в Ñекунду + Show counter of frames per second + Показать Ñчетчик кадров в Ñекунду - Enable animation - Включить анимацию + Enable animation + Включить анимацию - Enable anti-aliasing (slower) - Включить Ñглаживание (медленный ÑпоÑоб) + Enable anti-aliasing (slower) + Включить Ñглаживание (медленный ÑпоÑоб) - Eye to eye distance for stereo modes: - РаÑÑтоÑние между глаз Ð´Ð»Ñ Ñтерео режима: + Eye to eye distance for stereo modes: + РаÑÑтоÑние между глаз Ð´Ð»Ñ Ñтерео режима: - Camera type - Тип камеры + Camera type + Тип камеры - Orthographic rendering - Ортогональный рендеринг + Orthographic rendering + Ортогональный рендеринг - Perspective rendering - Рендер в перÑпективе + Perspective rendering + Рендер в перÑпективе - - О программе + + О программе - 3D Navigation - 3D ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ + 3D Navigation + 3D ÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ - Mouse... - Мышь... + Mouse... + Мышь... - Intensity of backlight - ИнтенÑивноÑть подÑветки + Intensity of backlight + ИнтенÑивноÑть подÑветки - Enable backlight color - Включить цвет подÑветки + Enable backlight color + Включить цвет подÑветки - Orbit style - Стиль орбиты + Orbit style + Стиль орбиты - Turntable - Поворотный круг + Turntable + Поворотный круг - Trackball - Trackball + Trackball + Trackball - Invert zoom - Инвертировать зум + Invert zoom + Инвертировать зум - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ + %1 navigation + %1 Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Ð¦Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ + Color model + Ð¦Ð²ÐµÑ‚Ð¾Ð²Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ - &Gradient: - & Градиент: + &Gradient: + & Градиент: - red-yellow-green-cyan-blue - краÑный-желтый-зеленый-голубой-Ñиний + red-yellow-green-cyan-blue + краÑный-желтый-зеленый-голубой-Ñиний - blue-cyan-green-yellow-red - Ñиний-голубой-зеленый-желтый-краÑный + blue-cyan-green-yellow-red + Ñиний-голубой-зеленый-желтый-краÑный - white-black - бело-черный + white-black + бело-черный - black-white - черно-белый + black-white + черно-белый - Visibility - ВидимоÑть + Visibility + ВидимоÑть - Out g&rayed - Из Ñерого + Out g&rayed + Из Ñерого - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Из &невидимого + Out &invisible + Из &невидимого - Alt+I - Alt+I + Alt+I + Alt+I - Style - Стиль + Style + Стиль - &Zero - & Ðоль + &Zero + & Ðоль - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - & Поток + &Flow + & Поток - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &OK + &OK + &OK - &Cancel - &Cancel + &Cancel + &Cancel - Parameter range - Диапазон значений параметра + Parameter range + Диапазон значений параметра - Mi&nimum: - Ми&нимум: + Mi&nimum: + Ми&нимум: - Ma&ximum: - Ма&кÑимум: + Ma&ximum: + Ма&кÑимум: - &Labels: - Ярлыки: + &Labels: + Ярлыки: - &Decimals: - & ДеÑÑтичные: + &Decimals: + & ДеÑÑтичные: - - О программе + + О программе - Color-gradient settings - ÐаÑтройки цветового градиента + Color-gradient settings + ÐаÑтройки цветового градиента - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Ðеверный параметр + Wrong parameter + Ðеверный параметр - The maximum value must be higher than the minimum value. - МакÑимальное значение должно быть больше минимального значениÑ. + The maximum value must be higher than the minimum value. + МакÑимальное значение должно быть больше минимального значениÑ. - - + + Gui::Dialog::DlgSettingsDocument - Document - Документ + Document + Документ - General - ОÑновные + General + ОÑновные - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ÑохранÑемого документа + Уровень ÑÐ¶Ð°Ñ‚Ð¸Ñ ÑохранÑемого документа (0 = нет, 9 = выÑокий, 3 = по умолчанию) - Create new document at start up - Создание нового документа при запуÑке + Create new document at start up + Создание нового документа при запуÑке - Storage - Хранилище + Storage + Хранилище - Saving transactions (Auto-save) - Сохранение операций (ÐвтоÑохранение) + Saving transactions (Auto-save) + Сохранение операций (ÐвтоÑохранение) - Discard saved transaction after saving document - УдалÑть Ñохраненные операции поÑле ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° + Discard saved transaction after saving document + УдалÑть Ñохраненные операции поÑле ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° - Save thumbnail into project file when saving document - Сохранить миниатюру в файл проекта при Ñохранении документа + Save thumbnail into project file when saving document + Сохранить миниатюру в файл проекта при Ñохранении документа - Create up to backup files when resaving document - Создать резервную копию файлов, когда ÑохранÑетÑÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ + Create up to backup files when resaving document + Создать резервную копию файлов, когда ÑохранÑетÑÑ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ - Document objects - Объекты документа + Document objects + Объекты документа - Allow duplicate object labels in one document - Разрешить Ñоздавать дубликат Ñтикетки в одном документе + Allow duplicate object labels in one document + Разрешить Ñоздавать дубликат Ñтикетки в одном документе - Maximum Undo/Redo steps - МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÐžÑ‚Ð¼ÐµÐ½Ð°/Повтор шагов + Maximum Undo/Redo steps + МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÐžÑ‚Ð¼ÐµÐ½Ð°/Повтор шагов - Using Undo/Redo on documents - ИÑпользование Undo/Redo на документах + Using Undo/Redo on documents + ИÑпользование Undo/Redo на документах - - + + Gui::Dialog::DlgSettingsEditorImp - Text - ТекÑÑ‚ + Text + ТекÑÑ‚ - Bookmark - Закладки + Bookmark + Закладки - Breakpoint - Точка оÑтанова + Breakpoint + Точка оÑтанова - Keyword - Ключевое Ñлово + Keyword + Ключевое Ñлово - Comment - Комментарий + Comment + Комментарий - Block comment - Блок комментариев + Block comment + Блок комментариев - Number - ЧиÑло + Number + ЧиÑло - String - Строка + String + Строка - Character - Символ + Character + Символ - Class name - Ð˜Ð¼Ñ ÐºÐ»Ð°ÑÑа + Class name + Ð˜Ð¼Ñ ÐºÐ»Ð°ÑÑа - Define name - Задать Ð¸Ð¼Ñ + Define name + Задать Ð¸Ð¼Ñ - Operator - Оператор + Operator + Оператор - Python output - Вывод Python + Python output + Вывод Python - Python error - Ошибка Python + Python error + Ошибка Python - Items - Элементы + Items + Элементы - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - ÐаÑтройки Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + Image settings + ÐаÑтройки Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Image properties - СвойÑтва Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + Image properties + СвойÑтва Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Back&ground: - Фон: + Back&ground: + Фон: - Current - Текущий + Current + Текущий - White - Белый + White + Белый - Black - Чёрный + Black + Чёрный - Transparent - Прозрачный + Transparent + Прозрачный - Image dimensions - Размеры Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + Image dimensions + Размеры Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Pixel - ПикÑель + Pixel + ПикÑель - &Width: - &Ширина: + &Width: + &Ширина: - Current screen - Текущий Ñкран + Current screen + Текущий Ñкран - Icon 32 x 32 - Иконка 32Ñ…32 + Icon 32 x 32 + Иконка 32Ñ…32 - Icon 64 x 64 - Иконка 64Ñ…64 + Icon 64 x 64 + Иконка 64Ñ…64 - Icon 128 x 128 - Иконка 128Ñ…128 + Icon 128 x 128 + Иконка 128Ñ…128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 x 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 x 4800 - QUXGA 3200 × 2400 - QUXGA 3200 x 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 x 4800 + Standard sizes: + Стандартные размеры: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + & Ð’Ñ‹Ñота: - Standard sizes: - Стандартные размеры: + Aspect ratio: + Соотношение Ñторон: - &Height: - & Ð’Ñ‹Ñота: + &Screen + &Экрана - Aspect ratio: - Соотношение Ñторон: + Alt+S + Alt+S - &Screen - &Экрана + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Комментарий к изображению - Alt+1 - Alt+1 + Insert MIBA + Ð’Ñтавка MIBA - Image comment - Комментарий к изображению + Insert comment + Ð’Ñтавить комментарий - - Insert MIBA - Ð’Ñтавка MIBA - - - Insert comment - Ð’Ñтавить комментарий - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Макро + Macro + Макро - Macro recording settings - ÐаÑтройки запиÑи макроÑов + Macro recording settings + ÐаÑтройки запиÑи макроÑов - Logging Commands - Ведение журнала команд + Logging Commands + Ведение журнала команд - Show script commands in python console - Показывать команды Ñкриптов в конÑоли Python + Show script commands in python console + Показывать команды Ñкриптов в конÑоли Python - Log all commands issued by menus to file: - РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð²Ñех команд, вызванных при помощи меню, в файле: + Log all commands issued by menus to file: + РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð²Ñех команд, вызванных при помощи меню, в файле: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Gui команды + Gui commands + Gui команды - Recording GUI commands - ЗапиÑÑŒ GUI команды + Recording GUI commands + ЗапиÑÑŒ GUI команды - Record as comment - РегиÑтрировать в качеÑтве ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ + Record as comment + РегиÑтрировать в качеÑтве ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ - Macro path - Путь к МакроÑу + Macro path + Путь к МакроÑу - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Единицы + Units + Единицы - Units settings - ÐаÑтройка единиц Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ + Units settings + ÐаÑтройка единиц Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ - Standard (mm/kg/s/degree) - Стандарт (мм/кг/Ñ/град) + Standard (mm/kg/s/degree) + Стандарт (мм/кг/Ñ/град) - MKS (m/kg/s/degree) - МКС (м/кг/Ñ/Ñтепень) + MKS (m/kg/s/degree) + МКС (м/кг/Ñ/Ñтепень) - Magnitude - Величина + Magnitude + Величина - Unit - Юнит + Unit + Юнит - User system: - ПользовательÑÐºÐ°Ñ ÑиÑтема: + User system: + ПользовательÑÐºÐ°Ñ ÑиÑтема: - Imperial (in/lb) - Imperial (in/lb) + Imperial (in/lb) + Imperial (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Цвета + Colors + Цвета - Selection - Выделение + Selection + Выделение - Enable selection highlighting - Включить подÑвечивание выделенного + Enable selection highlighting + Включить подÑвечивание выделенного - Enable preselection highlighting - Включить подÑвечивание предварительного Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ + Enable preselection highlighting + Включить подÑвечивание предварительного Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ - Background color - Цвет фона + Background color + Цвет фона - Middle color - Средний цвет + Middle color + Средний цвет - Color gradient - Цветовой градиент + Color gradient + Цветовой градиент - Simple color - ПроÑтые цвета + Simple color + ПроÑтые цвета - Default colors - Цвета по умолчанию + Default colors + Цвета по умолчанию - Edited edge color - цвет отредактированной грани + Edited edge color + цвет отредактированной грани - Edited vertex color - Цвет отредактированный вершины + Edited vertex color + Цвет отредактированный вершины - Construction geometry - вÑÐ¿Ð¾Ð¼Ð¾Ð³Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ + Construction geometry + вÑÐ¿Ð¾Ð¼Ð¾Ð³Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ - Fully constrained geometry - ПолноÑтью ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ + Fully constrained geometry + ПолноÑтью ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ - The color of construction geometry in editmode - Цвет вÑпомогательной геометрии в режиме Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + The color of construction geometry in editmode + Цвет вÑпомогательной геометрии в режиме Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - The color of fully constrained geometry in editmode - Цвет полноÑтью ÑвÑзанной геометрии в режиме Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + The color of fully constrained geometry in editmode + Цвет полноÑтью ÑвÑзанной геометрии в режиме Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - The color of vertices being edited - Цвет редактируемых вершин + The color of vertices being edited + Цвет редактируемых вершин - The color of edges being edited - цвет редактируемых граней + The color of edges being edited + цвет редактируемых граней - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Полезный Ñовет + Tip of the day + Полезный Ñовет - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Знаете ли вы...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Знаете ли вы...</font></font></b> - &Show tips at start up - &Показывать Ñоветы при запуÑке + &Show tips at start up + &Показывать Ñоветы при запуÑке - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Следующий Ñовет + &Next Tip + &Следующий Ñовет - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Закрыть + &Close + &Закрыть - Alt+C - ALT + C + Alt+C + ALT + C - - О программе + + О программе - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Ошибка загрузки: %1 + Ошибка загрузки: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - ЕÑли вы хотите узнать больше о FreeCAD вам необходимо обратитьÑÑ Ð² %1 или нажмите пункт Справка в меню Справка. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + ЕÑли вы хотите узнать больше о FreeCAD вам необходимо обратитьÑÑ Ð² %1 или нажмите пункт Справка в меню Справка. - - + + Gui::Dialog::DockablePlacement - Placement - РаÑположение + Placement + РаÑположение - - + + Gui::Dialog::DownloadDialog - Canceled. - Отменен. + Canceled. + Отменен. - - + + Download + + + + Cancel + Отменить + + + Close + Закрыть + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Ошибка загрузки: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Добавить иконку + Add icon + Добавить иконку - - + + Gui::Dialog::InputVector - Input vector - Входной вектор + Input vector + Входной вектор - Vector - Вектор + Vector + Вектор - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Кнопки мыши + Mouse buttons + Кнопки мыши - Configuration - ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ + Configuration + ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ - Selection: - Выделение: + Selection: + Выделение: - Panning - Панорамирование + Panning + Панорамирование - Rotation: - Вращение: + Rotation: + Вращение: - Zooming: - МаÑштабирование: + Zooming: + МаÑштабирование: - - + + Gui::Dialog::ParameterGroup - Expand - Развернуть + Expand + Развернуть - Add sub-group - Добавить подгруппу + Add sub-group + Добавить подгруппу - Remove group - Удалить группу + Remove group + Удалить группу - Rename group - Переименовать группу + Rename group + Переименовать группу - Export parameter - ЭкÑпортировать параметр + Export parameter + ЭкÑпортировать параметр - Import parameter - Параметры импорта + Import parameter + Параметры импорта - Collapse - Свернуть + Collapse + Свернуть - Do really want to remove this parameter group? - ДейÑтвительно хотите удалить Ñту группу параметров? + Do really want to remove this parameter group? + ДейÑтвительно хотите удалить Ñту группу параметров? - Existing sub-group - СущеÑтвующие подгруппы + Existing sub-group + СущеÑтвующие подгруппы - The sub-group '%1' already exists. - Подгруппа '%1' уже ÑущеÑтвует. + The sub-group '%1' already exists. + Подгруппа '%1' уже ÑущеÑтвует. - Export parameter to file - ЭкÑпорт параметров в файл + Export parameter to file + ЭкÑпорт параметров в файл - XML (*.FCParam) - XML(*.FCParam) + XML (*.FCParam) + XML(*.FCParam) - Import parameter from file - Импорт параметров из файла + Import parameter from file + Импорт параметров из файла - Import Error - Ошибка импорта + Import Error + Ошибка импорта - Reading from '%1' failed. - Ðе удалоÑÑŒ выполнить чтение из '%1'. + Reading from '%1' failed. + Ðе удалоÑÑŒ выполнить чтение из '%1'. - - + + Gui::Dialog::ParameterValue - Change value - Изменить значение + Change value + Изменить значение - Remove key - Удалить ключ + Remove key + Удалить ключ - Rename key - Переименовать ключ + Rename key + Переименовать ключ - New - Ðовый + New + Ðовый - New string item - Ðовый Ñлемент Ñтроки + New string item + Ðовый Ñлемент Ñтроки - New float item - Ðовый вещеÑтвенный Ñлемент + New float item + Ðовый вещеÑтвенный Ñлемент - New integer item - Ðовый целочиÑленный Ñлемент + New integer item + Ðовый целочиÑленный Ñлемент - New unsigned item - Ðовый беззнаковый Ñлемент + New unsigned item + Ðовый беззнаковый Ñлемент - New Boolean item - Ðовый логичеÑкий Ñлемент + New Boolean item + Ðовый логичеÑкий Ñлемент - Existing item - СущеÑтвующий Ñлемент + Existing item + СущеÑтвующий Ñлемент - The item '%1' already exists. - Элемент '%1' уже ÑущеÑтвует. + The item '%1' already exists. + Элемент '%1' уже ÑущеÑтвует. - - + + Gui::Dialog::Placement - Placement - РаÑположение + Placement + РаÑположение - OK - OK + OK + OK - Translation: - Перемещение: + Translation: + Перемещение: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Вращение: + Rotation: + Вращение: - Angle: - Угол: + Angle: + Угол: - Axis: - ОÑи: + Axis: + ОÑи: - Center: - Центр: + Center: + Центр: - Pitch: - Шаг: + Pitch: + Шаг: - Roll: - Рулон: + Roll: + Рулон: - Yaw: - Отклонение: + Yaw: + Отклонение: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Углы Эйлера + Euler angles + Углы Эйлера - Apply placement changes immediately - Ðемедленно применить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ð¹ + Apply placement changes immediately + Ðемедленно применить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ð¹ - Apply incremental changes to object placement - Применить дополнительные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ðº объекту Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ + Apply incremental changes to object placement + Применить дополнительные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ðº объекту Ñ€Ð°Ð·Ð¼ÐµÑ‰ÐµÐ½Ð¸Ñ - Apply - Применить + Apply + Применить - Reset - Ð¡Ð±Ñ€Ð¾Ñ + Reset + Ð¡Ð±Ñ€Ð¾Ñ - Close - Закрыть + Close + Закрыть - - + + Gui::Dialog::PrintModel - Button - Кнопка + Button + Кнопка - Command - Команда + Command + Команда - - + + Gui::Dialog::SceneInspector - Dialog - Диалог + Dialog + Диалог - Close - Закрыть + Close + Закрыть - Refresh - Обновить + Refresh + Обновить - - + + Gui::Dialog::SceneModel - Inventor Tree - Создатель дерева + Inventor Tree + Создатель дерева - Nodes - Узлы + Nodes + Узлы - - + + Gui::Dialog::TextureMapping - Texture - ТекÑтура + Texture + ТекÑтура - Texture mapping - ТекÑтуры + Texture mapping + ТекÑтуры - Global - Глобальный + Global + Глобальный - Environment - Окружение + Environment + Окружение - Image files (%1) - Файлы изображений (%1) + Image files (%1) + Файлы изображений (%1) - No image - Ðет Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + No image + Ðет Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - The specified file is not a valid image file. - Указанный файл не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым. + The specified file is not a valid image file. + Указанный файл не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым. - No 3d view - Ðет 3d проÑмотра + No 3d view + Ðет 3d проÑмотра - No active 3d view found. - Ðктивный 3d вид не найден. + No active 3d view found. + Ðктивный 3d вид не найден. - - + + Gui::Dialog::Transform - Cancel - Отменить + Cancel + Отменить - Transform - Преобразовать + Transform + Преобразовать - - + + Gui::DlgTreeWidget - Dialog - Диалог + Dialog + Диалог - Items - Элементы + Items + Элементы - OK - OK + OK + OK - Cancel - Отменить + Cancel + Отменить - - О программе + + О программе - - + + Gui::DockWnd::CombiView - CombiView - КомбинированныВид + CombiView + КомбинированныВид - Project - Проект + Project + Проект - Tasks - Задачи + Tasks + Задачи - - + + Gui::DockWnd::HelpView - Previous - Предыдущий + Previous + Предыдущий - Next - Следующий + Next + Следующий - Home - Ð’ начало + Home + Ð’ начало - Open - Открыть + Open + Открыть - Open file - Открыть файл + Open file + Открыть файл - All HTML files (*.html *.htm) - Ð’Ñе HTML-файлы (*.html *.htm) + All HTML files (*.html *.htm) + Ð’Ñе HTML-файлы (*.html *.htm) - External browser - Внешний браузер + External browser + Внешний браузер - No external browser found. Specify in preferences, please - Внешний браузер не найден. ПожалуйÑта, укажите в наÑтройках, + No external browser found. Specify in preferences, please + Внешний браузер не найден. ПожалуйÑта, укажите в наÑтройках, - Starting of %1 failed - ЗапуÑк %1 невозможен + Starting of %1 failed + ЗапуÑк %1 невозможен - - + + Gui::DockWnd::PropertyDockView - Property View - Вид ÑобÑтвенноÑти + Property View + Вид ÑобÑтвенноÑти - - + + Gui::DockWnd::ReportOutput - Logging - Ведение журнала + Logging + Ведение журнала - Warning - Внимание + Warning + Внимание - Error - Ошибка + Error + Ошибка - Options - Параметры + Options + Параметры - Clear - ОчиÑтить + Clear + ОчиÑтить - Save As... - Сохранить как... + Save As... + Сохранить как... - Save Report Output - Сохранить отчет + Save Report Output + Сохранить отчет - Plain Text Files (*.txt *.log) - ТекÑтовые файлы (*.txt,*.log) + Plain Text Files (*.txt *.log) + ТекÑтовые файлы (*.txt,*.log) - Go to end - Переход к концу + Go to end + Переход к концу - Redirect Python output - Перенаправить вывод Python-a + Redirect Python output + Перенаправить вывод Python-a - Redirect Python errors - Сообщить об ошибке Python + Redirect Python errors + Сообщить об ошибке Python - - + + Gui::DockWnd::ReportView - Output - Вывод + Output + Вывод - Python console - КонÑоль Python + Python console + КонÑоль Python - - + + Gui::DockWnd::SelectionView - Property View - Вид ÑобÑтвенноÑти + Property View + Вид ÑобÑтвенноÑти - - + + Gui::DockWnd::TaskPanelView - Task View - ПроÑмотр задач + Task View + ПроÑмотр задач - - + + Gui::DockWnd::TextBrowser - Could not open file. - Ðевозможно открыть файл. + Could not open file. + Ðевозможно открыть файл. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Ð’Ñ‹ попыталиÑÑŒ получить доÑтуп к адреÑу %1, который в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ´Ð¾Ñтупен. ПожалуйÑта, убедитеÑÑŒ, что URL-Ð°Ð´Ñ€ÐµÑ ÑущеÑтвует и попробуйте перезагрузить Ñтраницу. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Ð’Ñ‹ попыталиÑÑŒ получить доÑтуп к адреÑу %1, который в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð½ÐµÐ´Ð¾Ñтупен. ПожалуйÑта, убедитеÑÑŒ, что URL-Ð°Ð´Ñ€ÐµÑ ÑущеÑтвует и попробуйте перезагрузить Ñтраницу. - Connecting to %1 - Подключение к %1 + Connecting to %1 + Подключение к %1 - Sending to %1 - Отправить %1 + Sending to %1 + Отправить %1 - Reading from %1 - Чтение из %1 + Reading from %1 + Чтение из %1 - Download failed: %1. - Ошибка загрузки: %1. + Download failed: %1. + Ошибка загрузки: %1. - Previous - Предыдущий + Previous + Предыдущий - Forward - Вперед + Forward + Вперед - Home - Ð’ начало + Home + Ð’ начало - Refresh - Обновить + Refresh + Обновить - Copy - Скопировать + Copy + Скопировать - Select all - Выделить вÑе + Select all + Выделить вÑе - No description for - Ðет опиÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ + No description for + Ðет опиÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ - - + + Gui::DocumentModel - Application - Приложение + Application + Приложение - Labels & Attributes - Метки и атрибуты + Labels & Attributes + Метки и атрибуты - - + + Gui::EditorView - Modified file - Измененный файл + Modified file + Измененный файл - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Это было изменено вне редактора иÑходного кода. Ð’Ñ‹ хотите перезагрузить его? - Unsaved document - Документ неÑохранен + Unsaved document + Документ неÑохранен - The document has been modified. + The document has been modified. Do you want to save your changes? - Этот документ был изменен. Ð’Ñ‹ хотите Ñохранить изменениÑ? + Этот документ был изменен. Ð’Ñ‹ хотите Ñохранить изменениÑ? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD macro (*.FCMacro);;Python (*.ру) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.ру) - Export PDF - ЭкÑпортировать PDF + Export PDF + ЭкÑпортировать PDF - PDF file (*.pdf) - Документ PDF (*.pdf) + PDF file (*.pdf) + Документ PDF (*.pdf) - untitled[*] - безымÑнный[*] + untitled[*] + безымÑнный[*] - - Editor - -Редактор + - Editor + -Редактор - %1 chars removed - %1 Ñимволов удалено + %1 chars removed + %1 Ñимволов удалено - %1 chars added - %1 Ñимволов добавлено + %1 chars added + %1 Ñимволов добавлено - Formatted - Форматированный + Formatted + Форматированный - - + + Gui::FileChooser - Select a file - Выберите файл + Select a file + Выберите файл - Select a directory - Выберите папку + Select a directory + Выберите папку - - + + Gui::FileDialog - Save as - Сохранить как + Save as + Сохранить как - Open - Открыть + Open + Открыть - - + + Gui::FileOptionsDialog - Extended - РаÑширенный + Extended + РаÑширенный - All files (*.*) - Ð’Ñе файлы (*.*) + All files (*.*) + Ð’Ñе файлы (*.*) - - + + Gui::Flag - Top left - Верхний левый + Top left + Верхний левый - Bottom left - Ðижний левый + Bottom left + Ðижний левый - Top right - Верхний правый + Top right + Верхний правый - Bottom right - Ðижний правый + Bottom right + Ðижний правый - Remove - Удалить + Remove + Удалить - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Ðажмите клавишу CTRL и левую кнопку мыши + Press CTRL and left mouse button + Ðажмите клавишу CTRL и левую кнопку мыши - Press middle mouse button - Ðажмите Ñреднюю кнопку мыши + Press middle mouse button + Ðажмите Ñреднюю кнопку мыши - Press left mouse button - Ðажмите левую кнопку мыши + Press left mouse button + Ðажмите левую кнопку мыши - Scroll middle mouse button - Прокрутите Ñреднюю кнопку мыши + Scroll middle mouse button + Прокрутите Ñреднюю кнопку мыши - - + + Gui::LocationDialog - Wrong direction - Ðеправильное направление + Wrong direction + Ðеправильное направление - Direction must not be the null vector - Ðаправление не должно быть нулевым вектором + Direction must not be the null vector + Ðаправление не должно быть нулевым вектором - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - ПользовательÑкие... + User defined... + ПользовательÑкие... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - ÐœÐ°ÐºÑ€Ð¾Ñ + Macros + ÐœÐ°ÐºÑ€Ð¾Ñ - - + + Gui::MainWindow - Dimension - Размер + Dimension + Размер - Ready - Готово + Ready + Готово - Toggles this toolbar - Переключение Ñтой панели инÑтрументов + Toggles this toolbar + Переключение Ñтой панели инÑтрументов - Toggles this dockable window - Переключить закреплÑемое окно + Toggles this dockable window + Переключить закреплÑемое окно - Close All - Закрыть вÑе + Close All + Закрыть вÑе - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Загрузка началаÑÑŒ... + Загрузка началаÑÑŒ... - - + + Gui::ProgressBar - Remaining: %1 - ОÑталоÑÑŒ:%1 + Remaining: %1 + ОÑталоÑÑŒ:%1 - Aborting - Прерывание + Aborting + Прерывание - Do you really want to abort the operation? - Ð’Ñ‹ дейÑтвительно хотите прервать операцию? + Do you really want to abort the operation? + Ð’Ñ‹ дейÑтвительно хотите прервать операцию? - - + + Gui::ProgressDialog - Remaining: %1 - ОÑталоÑÑŒ:%1 + Remaining: %1 + ОÑталоÑÑŒ:%1 - Aborting - Прерывание + Aborting + Прерывание - Do you really want to abort the operation? - Ð’Ñ‹ дейÑтвительно хотите прервать операцию? + Do you really want to abort the operation? + Ð’Ñ‹ дейÑтвительно хотите прервать операцию? - - + + Gui::PropertyEditor::PropertyModel - Property - СвойÑтво + Property + СвойÑтво - Value - Значение + Value + Значение - - + + Gui::PropertyView - View - Вид + View + Вид - Data - Данные + Data + Данные - - + + Gui::PythonConsole - System exit - Выход из ÑиÑтемы + System exit + Выход из ÑиÑтемы - The application is still running. + The application is still running. Do you want to exit without saving your data? - Приложение по-прежнему выполнÑетьÑÑ. Ð’Ñ‹ хотите, выйти без ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… данных? + Приложение по-прежнему выполнÑетьÑÑ. Ð’Ñ‹ хотите, выйти без ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… данных? - Python console - КонÑоль Python + Python console + КонÑоль Python - Unhandled PyCXX exception. - Ðеобработанное иÑключение PyCXX. + Unhandled PyCXX exception. + Ðеобработанное иÑключение PyCXX. - Unhandled FreeCAD exception. - Ðеобработанное иÑключение FreeCAD. + Unhandled FreeCAD exception. + Ðеобработанное иÑключение FreeCAD. - Unhandled unknown C++ exception. - Ðеобработанное неизвеÑтное иÑключение C++. + Unhandled unknown C++ exception. + Ðеобработанное неизвеÑтное иÑключение C++. - &Copy command - Команда ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + &Copy command + Команда ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - &Copy history - Скопировать иÑторию + &Copy history + Скопировать иÑторию - Save history as... - Сохранить иÑторию как... + Save history as... + Сохранить иÑторию как... - Insert file name... - Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°... + Insert file name... + Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°... - Save History - Сохранить иÑторию + Save History + Сохранить иÑторию - Macro Files (*.FCMacro *.py) - ÐœÐ°ÐºÑ€Ð¾Ñ Ñ„Ð°Ð¹Ð»Ñ‹ (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + ÐœÐ°ÐºÑ€Ð¾Ñ Ñ„Ð°Ð¹Ð»Ñ‹ (*.FCMacro *.py) - Insert file name - Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° + Insert file name + Введите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° - All Files (*.*) - Ð’Ñе файлы (*.*) + All Files (*.*) + Ð’Ñе файлы (*.*) - Python Input Dialog - Диалоговое окно ввода Python + Python Input Dialog + Диалоговое окно ввода Python - Unhandled std C++ exception. - Ðеобработанное иÑключение, std C++. + Unhandled std C++ exception. + Ðеобработанное иÑключение, std C++. - Word wrap - ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñлов + Word wrap + ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñлов - &Copy - Копировать + &Copy + Копировать - &Paste - &Ð’Ñтавить + &Paste + &Ð’Ñтавить - Select All - Выбрать вÑÑ‘ + Select All + Выбрать вÑÑ‘ - - + + Clear console + + + + Gui::PythonEditor - Comment - Комментарий + Comment + Комментарий - Uncomment - РаÑкомментировать + Uncomment + РаÑкомментировать - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - ОчиÑтить + Clear + ОчиÑтить - - + + Gui::RecentFilesAction - Open file %1 - Открыть файл %1 + Open file %1 + Открыть файл %1 - File not found - Файл не найден + File not found + Файл не найден - The file '%1' cannot be opened. - '%1' файл не может быть открыт. + The file '%1' cannot be opened. + '%1' файл не может быть открыт. - - + + Gui::SelectModule - Select module - Выбрать модуль + Select module + Выбрать модуль - Open %1 as - Открыть %1 как + Open %1 as + Открыть %1 как - Select - Выбрать + Select + Выбрать - - + + Gui::StdCmdDescription - Help - Справка + Help + Справка - Des&cription - Опи&Ñание + Des&cription + Опи&Ñание - Long description of commands - Подробное опиÑание команд + Long description of commands + Подробное опиÑание команд - - + + Gui::StdCmdDownloadOnlineHelp - Help - Справка + Help + Справка - Download online help - Загрузить интерактивную Ñправку + Download online help + Загрузить интерактивную Ñправку - Download %1's online help - Скачать %1 из онлайн Ñправки + Download %1's online help + Скачать %1 из онлайн Ñправки - Non-existing directory - Ðе ÑущеÑтвующий каталог + Non-existing directory + Ðе ÑущеÑтвующий каталог - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Каталог '%1' не ÑущеÑтвует. Ð’Ñ‹ хотите указать ÑущеÑтвующий каталог? + Каталог '%1' не ÑущеÑтвует. Ð’Ñ‹ хотите указать ÑущеÑтвующий каталог? - Missing permission - ОтÑутÑтвует разрешение + Missing permission + ОтÑутÑтвует разрешение - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на запиÑÑŒ в '%1' + У Ð²Ð°Ñ Ð½ÐµÑ‚ прав на запиÑÑŒ в '%1' Ð’Ñ‹ хотите указать другой каталог? - Stop downloading - ОÑтановить загрузку + Stop downloading + ОÑтановить загрузку - - + + Gui::StdCmdPythonHelp - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Python Modules - Модули Python + Python Modules + Модули Python - Opens a browser to show the Python modules - Открыть браузер Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра модулей Python + Opens a browser to show the Python modules + Открыть браузер Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра модулей Python - - + + Gui::TaskBoxAngle - Angle - Угол + Angle + Угол - - + + Gui::TaskBoxPosition - Position - Положение + Position + Положение - - + + Gui::TaskView::TaskAppearance - Display mode: - Режим отображениÑ: + Display mode: + Режим отображениÑ: - Plot mode: - Режим вывода на печать: + Plot mode: + Режим вывода на печать: - Point size: - Размер точки: + Point size: + Размер точки: - Line width: - Толщина линии: + Line width: + Толщина линии: - Transparency: - ПрозрачноÑть: + Transparency: + ПрозрачноÑть: - Appearance - ПредÑтавление + Appearance + ПредÑтавление - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Редактировать + Edit + Редактировать - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - ПредÑтавление + Appearance + ПредÑтавление - ... - ... + ... + ... - edit selection - изменить выбор + edit selection + изменить выбор - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Ðажмите левую кнопку мыши + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - ÐнглийÑкий + English + ÐнглийÑкий - - + + Gui::TreeDockWidget - Tree view - Древовидное предÑтавление + Tree view + Древовидное предÑтавление - - + + Gui::TreeWidget - Create group... - Создать группу... + Create group... + Создать группу... - Create a group - Создать группу + Create a group + Создать группу - Group - Группа + Group + Группа - Rename - Переименовать + Rename + Переименовать - Rename object - Переименовать объект + Rename object + Переименовать объект - Labels & Attributes - Метки и атрибуты + Labels & Attributes + Метки и атрибуты - Application - Приложение + Application + Приложение - Finish editing - Завершить редактирование + Finish editing + Завершить редактирование - Finish editing object - Завершить редактирование объекта + Finish editing object + Завершить редактирование объекта - Activate document - Ðктивировать документ + Activate document + Ðктивировать документ - Activate document %1 - Включить документ %1 + Activate document %1 + Включить документ %1 - - + + Gui::View3DInventor - Export PDF - ЭкÑпортировать PDF + Export PDF + ЭкÑпортировать PDF - PDF file (*.pdf) - Документ PDF (*.pdf) + PDF file (*.pdf) + Документ PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Выберите верÑтак '%1' + Select the '%1' workbench + Выберите верÑтак '%1' - - + + Position - Form - Форма + Form + Форма - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 мм + 0.1 mm + 0,1 мм - 0.5 mm - 0,5 мм + 0.5 mm + 0,5 мм - 1 mm - 1 мм + 1 mm + 1 мм - 2 mm - 2 мм + 2 mm + 2 мм - 5 mm - 5 мм + 5 mm + 5 мм - 10 mm - 10 мм + 10 mm + 10 мм - 20 mm - 20 мм + 20 mm + 20 мм - 50 mm - 50 мм + 50 mm + 50 мм - 100 mm - 100 мм + 100 mm + 100 мм - 200 mm - 200 мм + 200 mm + 200 мм - 500 mm - 500 мм + 500 mm + 500 мм - 1 m - 1 м + 1 m + 1 м - 2 m - 2 м + 2 m + 2 м - 5 m - 5 м + 5 m + 5 м - Grid Snap in - Захват Ñетки в + Grid Snap in + Захват Ñетки в - - + + QDockWidget - Tree view - Древовидное предÑтавление + Tree view + Древовидное предÑтавление - Property view - Вид ÑобÑтвенноÑти + Property view + Вид ÑобÑтвенноÑти - Selection view - Выбор Ð·Ñ€ÐµÐ½Ð¸Ñ + Selection view + Выбор Ð·Ñ€ÐµÐ½Ð¸Ñ - Report view - Отчет + Report view + Отчет - Task View - ПроÑмотр задач + Task View + ПроÑмотр задач - Combo View - Комбинированный вид + Combo View + Комбинированный вид - Toolbox - Панель инÑтрументов + Toolbox + Панель инÑтрументов - Python console - КонÑоль Python + Python console + КонÑоль Python - Display properties - Отобразить ÑвойÑтва + Display properties + Отобразить ÑвойÑтва - - + + QObject - General - ОÑновные + General + ОÑновные - Display - Отобразить + Display + Отобразить - Unknown filetype - ÐеизвеÑтный тип файла + Unknown filetype + ÐеизвеÑтный тип файла - Cannot open unknown filetype: %1 - Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ неизвеÑтный файл: %1 + Cannot open unknown filetype: %1 + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ неизвеÑтный файл: %1 - Cannot save to unknown filetype: %1 - Ðе удалоÑÑŒ Ñохранить в неизвеÑтном файле: %1 + Cannot save to unknown filetype: %1 + Ðе удалоÑÑŒ Ñохранить в неизвеÑтном файле: %1 - Workbench failure - Рабочее окружение отказало + Workbench failure + Рабочее окружение отказало - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Ðевозможно запуÑтить QtAssistant(%1) + Unable to launch Qt Assistant (%1) + Ðевозможно запуÑтить QtAssistant(%1) - Exception - ИÑключение + Exception + ИÑключение - Open document - Открыть документ + Open document + Открыть документ - Import file - Импорт файла + Import file + Импорт файла - Export file - ЭкÑпорт файла + Export file + ЭкÑпорт файла - Printing... - Печать... + Printing... + Печать... - Cannot load workbench - Ðе удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ инÑтрументарий + Cannot load workbench + Ðе удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ инÑтрументарий - A general error occurred while loading the workbench - ÐžÐ±Ñ‰Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при загрузке инÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ + A general error occurred while loading the workbench + ÐžÐ±Ñ‰Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° при загрузке инÑÑ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ - File not found - Файл не найден + File not found + Файл не найден - Cannot open file %1 - Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл %1 + Cannot open file %1 + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл %1 - Save views... - Сохранение видов... + Save views... + Сохранение видов... - Load views... - Загрузить виды... + Load views... + Загрузить виды... - Freeze view - Заморозить виды + Freeze view + Заморозить виды - Clear views - ОчиÑтить виды + Clear views + ОчиÑтить виды - Restore view &%1 - ВоÑÑтановить вид &%1 + Restore view &%1 + ВоÑÑтановить вид &%1 - Save frozen views - Сохранить замороженные виды + Save frozen views + Сохранить замороженные виды - Frozen views (*.cam) - Замороженные виды (*.cam) + Frozen views (*.cam) + Замороженные виды (*.cam) - Restore views - ВоÑÑтановить проÑмотры + Restore views + ВоÑÑтановить проÑмотры - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - ВоÑÑтановление видов очиÑит хранÑшиеÑÑ Ð²Ð¸Ð´Ñ‹. + ВоÑÑтановление видов очиÑит хранÑшиеÑÑ Ð²Ð¸Ð´Ñ‹. Ð’Ñ‹ хотите продолжить? - Restore frozen views - ВоÑÑтановить замороженный вид + Restore frozen views + ВоÑÑтановить замороженный вид - Cannot open file '%1'. - Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл '%1'. + Cannot open file '%1'. + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл '%1'. - Docked - Закрепленный + Docked + Закрепленный - Undocked - Открепить + Undocked + Открепить - Fullscreen - Ðа веÑÑŒ Ñкран + Fullscreen + Ðа веÑÑŒ Ñкран - files - файлы + files + файлы - Save picture - Сохранить изображение + Save picture + Сохранить изображение - New sub-group - ÐÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð³Ñ€ÑƒÐ¿Ð¿Ð° + New sub-group + ÐÐ¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð³Ñ€ÑƒÐ¿Ð¿Ð° - Enter the name: - Введите имÑ: + Enter the name: + Введите имÑ: - New text item - Ðовый текÑтовый Ñлемент + New text item + Ðовый текÑтовый Ñлемент - Enter your text: - Введите текÑÑ‚: + Enter your text: + Введите текÑÑ‚: - New integer item - Ðовый целочиÑленный Ñлемент + New integer item + Ðовый целочиÑленный Ñлемент - Enter your number: - Введите номер: + Enter your number: + Введите номер: - New unsigned item - Ðовый беззнаковый Ñлемент + New unsigned item + Ðовый беззнаковый Ñлемент - New float item - Ðовый вещеÑтвенный Ñлемент + New float item + Ðовый вещеÑтвенный Ñлемент - New Boolean item - Ðовый логичеÑкий Ñлемент + New Boolean item + Ðовый логичеÑкий Ñлемент - Choose an item: - Выберите Ñлемент: + Choose an item: + Выберите Ñлемент: - Rename group - Переименовать группу + Rename group + Переименовать группу - The group '%1' cannot be renamed. - Группа '%1' не может быть переименована. + The group '%1' cannot be renamed. + Группа '%1' не может быть переименована. - Existing group - СущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° + Existing group + СущеÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° - The group '%1' already exists. - Группа '%1' уже ÑущеÑтвует. + The group '%1' already exists. + Группа '%1' уже ÑущеÑтвует. - Change value - Изменить значение + Change value + Изменить значение - Save document under new filename... - Сохранить документ под новым именем... + Save document under new filename... + Сохранить документ под новым именем... - Saving aborted - Сохранение прервано + Saving aborted + Сохранение прервано - Unsaved document - Документ неÑохранен + Unsaved document + Документ неÑохранен - Save document before close? - Сохранить документ перед закрытием? + Save document before close? + Сохранить документ перед закрытием? - Save Macro - Сохранить ÐœÐ°ÐºÑ€Ð¾Ñ + Save Macro + Сохранить ÐœÐ°ÐºÑ€Ð¾Ñ - Finish - Завершить + Finish + Завершить - Clear - ОчиÑтить + Clear + ОчиÑтить - Cancel - Отменить + Cancel + Отменить - Inner - Внутренний + Inner + Внутренний - Outer - Внешний + Outer + Внешний - No Browser - Ðет браузера + No Browser + Ðет браузера - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ браузер. ПожалуйÑта, откройте окно браузера и введите: http://localhost:%1. + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ браузер. ПожалуйÑта, откройте окно браузера и введите: http://localhost:%1. - No Server - Ðет Ñервера + No Server + Ðет Ñервера - Unable to start the server to port %1: %2. - Ðе удаетÑÑ Ð·Ð°Ð¿ÑƒÑтить Ñервер на порту %1: %2. + Unable to start the server to port %1: %2. + Ðе удаетÑÑ Ð·Ð°Ð¿ÑƒÑтить Ñервер на порту %1: %2. - Unable to open your system browser. - Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ ваш ÑиÑтемный браузере. + Unable to open your system browser. + Ðе удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ ваш ÑиÑтемный браузере. - Options... - Параметры... + Options... + Параметры... - Out of memory - ÐедоÑтаточно памÑти + Out of memory + ÐедоÑтаточно памÑти - Not enough memory available to display the data. - ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. + Not enough memory available to display the data. + ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…. - Cannot find file %1 - Ðе удалоÑÑŒ найти файл '%1' + Cannot find file %1 + Ðе удалоÑÑŒ найти файл '%1' - Cannot find file %1 neither in %2 nor in %3 - Ðе удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ файл %1, ни в %2 ни в %3 + Cannot find file %1 neither in %2 nor in %3 + Ðе удаетÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ файл %1, ни в %2 ни в %3 - Save %1 Document - Сохранить документ %1 + Save %1 Document + Сохранить документ %1 - %1 document (*.FCStd) - документ %1 (*.FCStd) + %1 document (*.FCStd) + документ %1 (*.FCStd) - Save As - Сохранить как + Save As + Сохранить как - %1 already exists. + %1 already exists. Do you want to replace it? - %1 уже ÑущеÑтвует. Хотите заменить его? + %1 уже ÑущеÑтвует. Хотите заменить его? - Document not closable - Документ не закрываем + Document not closable + Документ не закрываем - The document is not closable for the moment. - Этот документ не закрываемый на данный момент. + The document is not closable for the moment. + Этот документ не закрываемый на данный момент. - No OpenGL - Ðет OpenGL + No OpenGL + Ðет OpenGL - This system does not support OpenGL - Эта ÑиÑтема не поддерживает OpenGL + This system does not support OpenGL + Эта ÑиÑтема не поддерживает OpenGL - Help - Справка + Help + Справка - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Ðе удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ документацию. Чтобы загрузить Ñто требуетÑÑ Qt 4.4 или выше. + Ðе удаетÑÑ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ документацию. Чтобы загрузить Ñто требуетÑÑ Qt 4.4 или выше. - %1 Help - %1 Справка + %1 Help + %1 Справка - Exporting PDF... - ЭкÑпорт PDF... + Exporting PDF... + ЭкÑпорт PDF... - Wrong selection - Ðеправильный выбор + Wrong selection + Ðеправильный выбор - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Только один объект выбран. ПожалуйÑта, выберите два объекта. Будте уверены, что точка которую вы выбираете важна. + Только один объект выбран. ПожалуйÑта, выберите два объекта. Будте уверены, что точка которую вы выбираете важна. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - ПожалуйÑта, выберите два объекта. Будте уверены, что точка которую вы выбираете важна. + ПожалуйÑта, выберите два объекта. Будте уверены, что точка которую вы выбираете важна. - New boolean item - Ðовый логичеÑкий Ñлемент + New boolean item + Ðовый логичеÑкий Ñлемент - Navigation styles - Стили навигации + Navigation styles + Стили навигации - %1 navigation - %1 Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ + %1 navigation + %1 Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ - Move annotation - ПеремеÑтить заметку + Move annotation + ПеремеÑтить заметку - Transform - Преобразовать + Transform + Преобразовать - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - Документ находитÑÑ Ð² режиме редактированиÑ, и поÑтому не может быть закрыт на данный момент. Ð’Ñ‹ либо должны закончить или отменить редактирование в панели задач. + Документ находитÑÑ Ð² режиме редактированиÑ, и поÑтому не может быть закрыт на данный момент. Ð’Ñ‹ либо должны закончить или отменить редактирование в панели задач. - - + + + StdBoxSelection + + Standard-View + Стандартный вид + + + Box selection + + + + StdCmdAbout - Help - Справка + Help + Справка - &About %1 - &О %1 + &About %1 + &О %1 - About %1 - О %1 + About %1 + О %1 - - + + StdCmdAboutQt - Help - Справка + Help + Справка - About &Qt - О &Qt + About &Qt + О &Qt - About Qt - О Qt + About Qt + О Qt - - + + StdCmdActivateNextWindow - Window - Окно + Window + Окно - Ne&xt - Сл&едующий + Ne&xt + Сл&едующий - Activate next window - Ðктивировать Ñледующее окно + Activate next window + Ðктивировать Ñледующее окно - - + + StdCmdActivatePrevWindow - Window - Окно + Window + Окно - Pre&vious - Пре&дыдущий + Pre&vious + Пре&дыдущий - Activate previous window - Ðктивировать предыдущее окно + Activate previous window + Ðктивировать предыдущее окно - - + + + StdCmdAlignment + + Edit + Редактировать + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Окно + Window + Окно - Arrange &Icons - УпорÑдочить &иконки + Arrange &Icons + УпорÑдочить &иконки - Arrange Icons - УпорÑдочить иконки + Arrange Icons + УпорÑдочить иконки - - + + StdCmdAxisCross - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Toggle axis cross - включить/выключить оÑи координат + Toggle axis cross + включить/выключить оÑи координат - - + + StdCmdCascadeWindows - Window - Окно + Window + Окно - &Cascade - & КаÑкад + &Cascade + & КаÑкад - Tile pragmatic - ÐŸÑ€Ð°Ð³Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð°Ñ Ð¿Ð»Ð¸Ñ‚ÐºÐ° + Tile pragmatic + ÐŸÑ€Ð°Ð³Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð°Ñ Ð¿Ð»Ð¸Ñ‚ÐºÐ° - - + + StdCmdCloseActiveWindow - Window - Окно + Window + Окно - Cl&ose - За&крыть + Cl&ose + За&крыть - Close active window - Закрыть активное окно + Close active window + Закрыть активное окно - - + + StdCmdCloseAllWindows - Window - Окно + Window + Окно - Close Al&l - Закрыть вÑ&Ñ‘ + Close Al&l + Закрыть вÑ&Ñ‘ - Close all windows - Закрыть вÑе окна + Close all windows + Закрыть вÑе окна - - + + StdCmdCommandLine - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Start command &line... - ЗапуÑтить командную &Ñтроку... + Start command &line... + ЗапуÑтить командную &Ñтроку... - Opens the command line in the console - Открывает командную Ñтроку + Opens the command line in the console + Открывает командную Ñтроку - - + + StdCmdCopy - Edit - Редактировать + Edit + Редактировать - C&opy - Ко&пировать + C&opy + Ко&пировать - Copy operation - ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Copy operation + ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - - + + StdCmdCut - Edit - Редактировать + Edit + Редактировать - &Cut - & Вырезать + &Cut + & Вырезать - Cut out - Вырезать + Cut out + Вырезать - - + + StdCmdDDuplicateSelection - Edit - Редактировать + Edit + Редактировать - Duplicate selection - Двойное выделение + Duplicate selection + Двойное выделение - Put duplicates of the selected objects to the active document - Вложить дубликаты выбранных объектов в активный документ + Put duplicates of the selected objects to the active document + Вложить дубликаты выбранных объектов в активный документ - - + + StdCmdDelete - Edit - Редактировать + Edit + Редактировать - &Delete - & Удалить + &Delete + & Удалить - Deletes the selected objects - УдалÑет выбранные объекты + Deletes the selected objects + УдалÑет выбранные объекты - - + + StdCmdDemoMode - Standard-View - Стандартный вид + Standard-View + Стандартный вид - View turntable... - Поворотный проÑмотр... + View turntable... + Поворотный проÑмотр... - View turntable - Поворотный проÑмотр + View turntable + Поворотный проÑмотр - - + + StdCmdDlgCustomize - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Cu&stomize... - Ðа&Ñтройка... + Cu&stomize... + Ðа&Ñтройка... - Customize toolbars and command bars - ÐаÑтройка панелей инÑтрументов и панели команд + Customize toolbars and command bars + ÐаÑтройка панелей инÑтрументов и панели команд - - + + StdCmdDlgMacroExecute - Macros ... - МакроÑ... + Macros ... + МакроÑ... - Opens a dialog to let you execute a recorded macro - Открывает диалоговое окно, чтобы выполнить напиÑанный Ð¼Ð°ÐºÑ€Ð¾Ñ + Opens a dialog to let you execute a recorded macro + Открывает диалоговое окно, чтобы выполнить напиÑанный Ð¼Ð°ÐºÑ€Ð¾Ñ - Macro - Макро + Macro + Макро - - + + StdCmdDlgMacroExecuteDirect - Macro - Макро + Macro + Макро - Execute macro - Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ + Execute macro + Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ - Execute the macro in the editor - Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ Ð² редакторе + Execute the macro in the editor + Выполнить Ð¼Ð°ÐºÑ€Ð¾Ñ Ð² редакторе - - + + StdCmdDlgMacroRecord - &Macro recording ... - &ЗапиÑÑŒ макроÑа ... + &Macro recording ... + &ЗапиÑÑŒ макроÑа ... - Opens a dialog to record a macro - Открывает диалоговое окно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи макроÑов + Opens a dialog to record a macro + Открывает диалоговое окно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи макроÑов - Macro - Макро + Macro + Макро - - + + StdCmdDlgParameter - Tools - ИнÑтрументы + Tools + ИнÑтрументы - E&dit parameters ... - &Параметры редактированиÑ... + E&dit parameters ... + &Параметры редактированиÑ... - Opens a Dialog to edit the parameters - Открывает диалоговое окно Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² + Opens a Dialog to edit the parameters + Открывает диалоговое окно Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² - - + + StdCmdDlgPreferences - Tools - ИнÑтрументы + Tools + ИнÑтрументы - &Preferences ... - &ÐаÑтройки ... + &Preferences ... + &ÐаÑтройки ... - Opens a Dialog to edit the preferences - Открывает диалоговое окно Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек + Opens a Dialog to edit the preferences + Открывает диалоговое окно Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°Ñтроек - - + + StdCmdDockViewMenu - View - Вид + View + Вид - Vie&ws - Ви&ды + Vie&ws + Ви&ды - Toggles this window - Переключите Ñто окно + Toggles this window + Переключите Ñто окно - - + + StdCmdDrawStyle - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Редактировать + + + Duplicate selection + Двойное выделение + + + Put duplicates of the selected objects to the active document + Вложить дубликаты выбранных объектов в активный документ + + + + StdCmdEdit + + Edit + Редактировать + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Файл + File + Файл - &Export... - & ЭкÑпорт... + &Export... + & ЭкÑпорт... - Export an object in the active document - ЭкÑпорт объекта в активный документ + Export an object in the active document + ЭкÑпорт объекта в активный документ - Supported formats - Поддерживаемые форматы + Supported formats + Поддерживаемые форматы - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + ИнÑтрументы + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Файл + File + Файл - &Recompute - &ПереÑчитать + &Recompute + &ПереÑчитать - Recompute feature or document - ПереÑчитать функцию или документ + Recompute feature or document + ПереÑчитать функцию или документ - - + + StdCmdFreeCADWebsite - Help - Справка + Help + Справка - FreeCAD Website - Сайт FreeCAD + FreeCAD Website + Сайт FreeCAD - The FreeCAD website - Web-Ñайт FreeCAD + The FreeCAD website + Web-Ñайт FreeCAD - - + + StdCmdFreezeViews - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Freeze display - Заморозить Ñкран + Freeze display + Заморозить Ñкран - Freezes the current view position - Замораживает текущую позицию проÑмотра + Freezes the current view position + Замораживает текущую позицию проÑмотра - - + + StdCmdHideObjects - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Hide all objects - Скрыть вÑе объекты + Hide all objects + Скрыть вÑе объекты - Hide all objects in the document - Скрыть вÑе объекты в документе + Hide all objects in the document + Скрыть вÑе объекты в документе - - + + StdCmdHideSelection - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Hide selection - Скрыть выделение + Hide selection + Скрыть выделение - Hide all selected objects - Скрыть вÑе выбранные объекты + Hide all selected objects + Скрыть вÑе выбранные объекты - - + + StdCmdImport - File - Файл + File + Файл - &Import... - & Импорт... + &Import... + & Импорт... - Import a file in the active document - Импорт файла в активный документ + Import a file in the active document + Импорт файла в активный документ - Supported formats - Поддерживаемые форматы + Supported formats + Поддерживаемые форматы - All files (*.*) - Ð’Ñе файлы (*.*) + All files (*.*) + Ð’Ñе файлы (*.*) - - + + StdCmdMacroStartDebug - Macro - Макро + Macro + Макро - Debug macro - Отладка макроÑов + Debug macro + Отладка макроÑов - Start debugging of macro - Ðачать отладку макроÑа + Start debugging of macro + Ðачать отладку макроÑа - - + + StdCmdMacroStepOver - Macro - Макро + Macro + Макро - Step over - За шаг + Step over + За шаг - - + + StdCmdMacroStopDebug - Macro - Макро + Macro + Макро - Stop debugging - ОÑтановить отладку + Stop debugging + ОÑтановить отладку - Stop debugging of macro - ОÑтановить отладку макроÑа + Stop debugging of macro + ОÑтановить отладку макроÑа - - + + StdCmdMacroStopRecord - Macro - Макро + Macro + Макро - S&top macro recording - О&Ñтановить запиÑÑŒ макроÑа + S&top macro recording + О&Ñтановить запиÑÑŒ макроÑа - Stop the macro recording session - ОÑтановить ÑеÑÑию запиÑи макроÑа + Stop the macro recording session + ОÑтановить ÑеÑÑию запиÑи макроÑа - - + + StdCmdMeasureDistance - View - Вид + View + Вид - Measure distance - Измерить раÑÑтоÑние + Measure distance + Измерить раÑÑтоÑние - - + + StdCmdMeasurementSimple - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Mesure distance - Измерить диÑтанцию + Mesure distance + Измерить диÑтанцию - Measures distance between two selected objects - Измерить диÑтанцию между Ð´Ð²ÑƒÐ¼Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼Ð¸ обьектами + Measures distance between two selected objects + Измерить диÑтанцию между Ð´Ð²ÑƒÐ¼Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼Ð¸ обьектами - - + + Measure distance + Измерить раÑÑтоÑние + + + StdCmdMergeProjects - File - Файл + File + Файл - Merge project... - Объединить проект... + Merge project... + Объединить проект... - Merge project - Объединить проект + Merge project + Объединить проект - %1 document (*.fcstd) - %1 документ (*.fcstd) + %1 document (*.fcstd) + %1 документ (*.fcstd) - Cannot merge project with itself. - ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ проект Ñ Ñамим Ñобой. + Cannot merge project with itself. + ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒ проект Ñ Ñамим Ñобой. - - + + StdCmdNew - File - Файл + File + Файл - &New - &Ðовый + &New + &Ðовый - Create a new empty document - Создайте новый пуÑтой документ + Create a new empty document + Создайте новый пуÑтой документ - - + + StdCmdOnlineHelp - Help - Справка + Help + Справка - Show help to the application - Показать Ñправку Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Show help to the application + Показать Ñправку Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - - + + StdCmdOnlineHelpPython - Help - Справка + Help + Справка - Python Manuals - РуководÑтво Python + Python Manuals + РуководÑтво Python - Show the Python documentation - Показать документацию Python + Show the Python documentation + Показать документацию Python - - + + StdCmdOnlineHelpWebsite - Help - Справка + Help + Справка - Help Website - Веб-Помощь + Help Website + Веб-Помощь - The website where the help is maintained - Веб-Ñайт, где поддерживаетÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ + The website where the help is maintained + Веб-Ñайт, где поддерживаетÑÑ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒ - - + + StdCmdOpen - File - Файл + File + Файл - &Open... - &Открыть... + &Open... + &Открыть... - Open a document or import files - Открыть документ или импортировать файлы + Open a document or import files + Открыть документ или импортировать файлы - Supported formats - Поддерживаемые форматы + Supported formats + Поддерживаемые форматы - All files (*.*) - Ð’Ñе файлы (*.*) + All files (*.*) + Ð’Ñе файлы (*.*) - - + + StdCmdPaste - Edit - Редактировать + Edit + Редактировать - &Paste - &Ð’Ñтавить + &Paste + &Ð’Ñтавить - Paste operation - ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ñтавки + Paste operation + ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ñтавки - - + + StdCmdPlacement - Edit - Редактировать + Edit + Редактировать - Placement... - РаÑположение... + Placement... + РаÑположение... - Place the selected objects - ПомеÑтить выделенные объекты + Place the selected objects + ПомеÑтить выделенные объекты - - + + StdCmdPrint - File - Файл + File + Файл - &Print... - &Печать... + &Print... + &Печать... - Print the document - Печать документа + Print the document + Печать документа - - + + StdCmdPrintPdf - File - Файл + File + Файл - &Export PDF... - & ЭкÑпорт PDF... + &Export PDF... + & ЭкÑпорт PDF... - Export the document as PDF - ЭкÑпорт документа в формат PDF + Export the document as PDF + ЭкÑпорт документа в формат PDF - - + + StdCmdPrintPreview - File - Файл + File + Файл - &Print preview... - &Предварительный проÑмотр... + &Print preview... + &Предварительный проÑмотр... - Print the document - Печать документа + Print the document + Печать документа - Print preview - Предварительный проÑмотр + Print preview + Предварительный проÑмотр - - + + StdCmdProjectInfo - File - Файл + File + Файл - Project i&nformation... - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ про&екте... + Project i&nformation... + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ про&екте... - Show details of the currently active project - Показать детали в текущего активного проекта + Show details of the currently active project + Показать детали в текущего активного проекта - - + + StdCmdProjectUtil - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Project utility... - Утилита проекта... + Project utility... + Утилита проекта... - Utility to extract or create project files - Утилита Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² проекта + Utility to extract or create project files + Утилита Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² проекта - - + + StdCmdPythonWebsite - Help - Справка + Help + Справка - Python Website - Сайт Python + Python Website + Сайт Python - The official Python website - Официальный Ñайт Python + The official Python website + Официальный Ñайт Python - - + + StdCmdQuit - File - Файл + File + Файл - E&xit - Ð’&ыход + E&xit + Ð’&ыход - Quits the application - Выйти из Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + Quits the application + Выйти из Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - - + + StdCmdRandomColor - File - Файл + File + Файл - Random color - Случайный цвет + Random color + Случайный цвет - - + + StdCmdRecentFiles - File - Файл + File + Файл - Recent files - ПоÑледние файлы + Recent files + ПоÑледние файлы - Recent file list - СпиÑок поÑледних файлов + Recent file list + СпиÑок поÑледних файлов - - + + StdCmdRedo - Edit - Редактировать + Edit + Редактировать - &Redo - &Повторить + &Redo + &Повторить - Redoes a previously undone action - Повторить поÑледнее отмененное дейÑтвие + Redoes a previously undone action + Повторить поÑледнее отмененное дейÑтвие - - + + StdCmdRefresh - Edit - Редактировать + Edit + Редактировать - &Refresh - &Обновить + &Refresh + &Обновить - Recomputes the current active document - ПереÑчитывает текущий документ + Recomputes the current active document + ПереÑчитывает текущий документ - - + + StdCmdSave - File - Файл + File + Файл - &Save - &Сохранить + &Save + &Сохранить - Save the active document - Сохранить активный документ + Save the active document + Сохранить активный документ - - + + StdCmdSaveAs - File - Файл + File + Файл - Save &As... - Сохранить &как... + Save &As... + Сохранить &как... - Save the active document under a new file name - Сохранить текущий документ под новым именем + Save the active document under a new file name + Сохранить текущий документ под новым именем - - + + StdCmdSceneInspector - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Scene inspector... - ИнÑпектор Ñцены... + Scene inspector... + ИнÑпектор Ñцены... - Scene inspector - ИнÑпектор Ñцены + Scene inspector + ИнÑпектор Ñцены - - + + StdCmdSelectAll - Edit - Редактировать + Edit + Редактировать - Select &All - Выбрать &вÑÑ‘ + Select &All + Выбрать &вÑÑ‘ - Select all - Выделить вÑе + Select all + Выделить вÑе - - + + StdCmdSetAppearance - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Appearance... - Внешний вид ... + Appearance... + Внешний вид ... - Sets the display properties of the selected object - УÑтанавливает ÑвойÑтва Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ объекта + Sets the display properties of the selected object + УÑтанавливает ÑвойÑтва Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ объекта - - + + StdCmdShowObjects - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Show all objects - Показать вÑе объекты + Show all objects + Показать вÑе объекты - Show all objects in the document - Показать вÑе объекты в документе + Show all objects in the document + Показать вÑе объекты в документе - - + + StdCmdShowSelection - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Show selection - Показывать выделение + Show selection + Показывать выделение - Show all selected objects - Показать вÑе выделенные объекты + Show all selected objects + Показать вÑе выделенные объекты - - + + StdCmdStatusBar - View - Вид + View + Вид - Status bar - Строка ÑоÑтоÑÐ½Ð¸Ñ + Status bar + Строка ÑоÑтоÑÐ½Ð¸Ñ - Toggles the status bar - Включает или выключает Ñтроку ÑоÑтоÑÐ½Ð¸Ñ + Toggles the status bar + Включает или выключает Ñтроку ÑоÑтоÑÐ½Ð¸Ñ - - + + StdCmdTextureMapping - Tools - ИнÑтрументы + Tools + ИнÑтрументы - Texture mapping... - ТекÑтуры... + Texture mapping... + ТекÑтуры... - Texture mapping - ТекÑтуры + Texture mapping + ТекÑтуры - - + + StdCmdTileWindows - Window - Окно + Window + Окно - &Tile - &Заголовок + &Tile + &Заголовок - Tile the windows - РаÑположить Ñ€Ñдом окна + Tile the windows + РаÑположить Ñ€Ñдом окна - - + + StdCmdToggleBreakpoint - Macro - Макро + Macro + Макро - Toggle breakpoint - УÑтановить/ÑнÑть точку оÑтанова + Toggle breakpoint + УÑтановить/ÑнÑть точку оÑтанова - - + + StdCmdToggleClipPlane - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Clipping plane - Показать плоÑкоÑти + Clipping plane + Показать плоÑкоÑти - Toggles clipping plane for active view - Переключает плоÑкоÑти Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ проÑмотра + Toggles clipping plane for active view + Переключает плоÑкоÑти Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ проÑмотра - - + + StdCmdToggleNavigation - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Toggle navigation/Edit mode - Переключить режим навигации / Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Toggle navigation/Edit mode + Переключить режим навигации / Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - Toggle between navigation and edit mode - Переключение между режимом навигации и Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Toggle between navigation and edit mode + Переключение между режимом навигации и Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - - + + StdCmdToggleObjects - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Toggle all objects - Переключить вÑе объекты + Toggle all objects + Переключить вÑе объекты - Toggles visibility of all objects in the active document - Переключает видимоÑть вÑех объектов в активном документе + Toggles visibility of all objects in the active document + Переключает видимоÑть вÑех объектов в активном документе - - + + StdCmdToggleSelectability - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Toggle selectability - Переключить возможноÑть выбора + Toggle selectability + Переключить возможноÑть выбора - Toggles the property of the objects to get selected in the 3D-View - Переключает ÑвойÑтво выбранных объектов в 3D-режим + Toggles the property of the objects to get selected in the 3D-View + Переключает ÑвойÑтво выбранных объектов в 3D-режим - - + + StdCmdToggleVisibility - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Toggle visibility - Переключить видимоÑть + Toggle visibility + Переключить видимоÑть - Toggles visibility - Переключает видимоÑть + Toggles visibility + Переключает видимоÑть - - + + StdCmdToolBarMenu - View - Вид + View + Вид - Tool&bars - ИнÑтру&менты + Tool&bars + ИнÑтру&менты - Toggles this window - Переключите Ñто окно + Toggles this window + Переключите Ñто окно - - + + StdCmdTransform - Edit - Редактировать + Edit + Редактировать - Transform... - Преобразовать... + Transform... + Преобразовать... - Transform the geometry of selected objects - Преобразование геометрии выделенных объектов + Transform the geometry of selected objects + Преобразование геометрии выделенных объектов - - + + StdCmdTreeSelection - View - Вид + View + Вид - Go to selection - Перейти к выделенному + Go to selection + Перейти к выделенному - Scroll to first selected item - Прокрутите до первого выбранного Ñлемента + Scroll to first selected item + Прокрутите до первого выбранного Ñлемента - - + + StdCmdUndo - Edit - Редактировать + Edit + Редактировать - &Undo - &Отменить + &Undo + &Отменить - Undo exactly one action - Отменить ровно одно дейÑтвие + Undo exactly one action + Отменить ровно одно дейÑтвие - - + + StdCmdUserInterface - View - Вид + View + Вид - Dock views - Заморозить вид + Dock views + Заморозить вид - Dock all top-level views - Закрепить вÑе виды верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ + Dock all top-level views + Закрепить вÑе виды верхнего ÑƒÑ€Ð¾Ð²Ð½Ñ - - + + StdCmdViewAxo - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Axometric - Axometric + Axometric + Axometric - Set to axometric view - УÑтановить вид в axometric + Set to axometric view + УÑтановить вид в axometric - - + + StdCmdViewBottom - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Bottom - Дно + Bottom + Дно - Set to bottom view - УÑтановить вид Ñнизу + Set to bottom view + УÑтановить вид Ñнизу - - + + StdCmdViewCreate - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Create new view - Cоздать новый вид + Create new view + Cоздать новый вид - Creates a new view window for the active document - Создать новое окно проÑмотра Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ документа + Creates a new view window for the active document + Создать новое окно проÑмотра Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ документа - - + + StdCmdViewExample1 - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Inventor example #1 - Создать пример #1 + Inventor example #1 + Создать пример #1 - Shows a 3D texture with manipulator - Показывает 3D текÑтуры Ñ Ð¼Ð°Ð½Ð¸Ð¿ÑƒÐ»Ñтором + Shows a 3D texture with manipulator + Показывает 3D текÑтуры Ñ Ð¼Ð°Ð½Ð¸Ð¿ÑƒÐ»Ñтором - - + + StdCmdViewExample2 - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Inventor example #2 - Создать пример #1 + Inventor example #2 + Создать пример #1 - Shows spheres and drag-lights - Показывает Ñферы и перетаÑкивающиеÑÑ Ð¾Ð³Ð½Ð¸ + Shows spheres and drag-lights + Показывает Ñферы и перетаÑкивающиеÑÑ Ð¾Ð³Ð½Ð¸ - - + + StdCmdViewExample3 - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Inventor example #3 - Создать пример #3 + Inventor example #3 + Создать пример #3 - Shows a animated texture - Показывает анимированные текÑтуры + Shows a animated texture + Показывает анимированные текÑтуры - - + + StdCmdViewFitAll - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Fit all - Заполнить вÑÑ‘ + Fit all + Заполнить вÑÑ‘ - Fits the whole content on the screen - УÑтанавливаетÑÑ Ð²Ñе Ñодержимое на Ñкране + Fits the whole content on the screen + УÑтанавливаетÑÑ Ð²Ñе Ñодержимое на Ñкране - - + + StdCmdViewFitSelection - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Fit selection - Заполнить выделенное + Fit selection + Заполнить выделенное - Fits the selected content on the screen - УÑтанавливаетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ðµ Ñодержимое на Ñкране + Fits the selected content on the screen + УÑтанавливаетÑÑ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ðµ Ñодержимое на Ñкране - - + + StdCmdViewFront - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Front - Спереди + Front + Спереди - Set to front view - Задать вид Ñпереди + Set to front view + Задать вид Ñпереди - - + + StdCmdViewIvIssueCamPos - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Issue camera position - Выделение позиции камеры + Issue camera position + Выделение позиции камеры - Issue the camera position to the console and to a macro, to easily recall this position - Выделение Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑ€Ñ‹ на конÑоль и Ð¼Ð°ÐºÑ€Ð¾Ñ Ð´Ð»Ñ Ð»ÐµÐ³ÐºÐ¾Ð³Ð¾ воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ + Issue the camera position to the console and to a macro, to easily recall this position + Выделение Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑ€Ñ‹ на конÑоль и Ð¼Ð°ÐºÑ€Ð¾Ñ Ð´Ð»Ñ Ð»ÐµÐ³ÐºÐ¾Ð³Ð¾ воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¸ - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Stereo Interleaved Columns - Стерео чередование Ñтолбцов + Stereo Interleaved Columns + Стерео чередование Ñтолбцов - Switch stereo viewing to Interleaved Columns - Переключить Ñтерео проÑмотр в чередующиеÑÑ Ñтолбцы + Switch stereo viewing to Interleaved Columns + Переключить Ñтерео проÑмотр в чередующиеÑÑ Ñтолбцы - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Stereo Interleaved Rows - Стерео Ñ Ñ‡ÐµÑ€ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñтрок + Stereo Interleaved Rows + Стерео Ñ Ñ‡ÐµÑ€ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñтрок - Switch stereo viewing to Interleaved Rows - Переключить Ñтерео в упорÑдоченные Ñтроки + Switch stereo viewing to Interleaved Rows + Переключить Ñтерео в упорÑдоченные Ñтроки - - + + StdCmdViewIvStereoOff - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Stereo Off - Выключить Ñтерео + Stereo Off + Выключить Ñтерео - Switch stereo viewing off - Выключить Ñтерео показ + Switch stereo viewing off + Выключить Ñтерео показ - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Stereo quad buffer - Стерео квадро-буфер + Stereo quad buffer + Стерео квадро-буфер - Switch stereo viewing to quad buffer - Переключить Ñтерео проÑмотр в квадро-буфер + Switch stereo viewing to quad buffer + Переключить Ñтерео проÑмотр в квадро-буфер - - + + StdCmdViewIvStereoRedGreen - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Stereo red/green - Стерео краÑный / зеленый + Stereo red/green + Стерео краÑный / зеленый - Switch stereo viewing to red/green - Переключить Ñтерео проÑмотр на краÑный / зеленый + Switch stereo viewing to red/green + Переключить Ñтерео проÑмотр на краÑный / зеленый - - + + StdCmdViewLeft - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Left - Слева + Left + Слева - Set to left view - УÑтановить вид Ñлева + Set to left view + УÑтановить вид Ñлева - - + + StdCmdViewRear - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Rear - Сзади + Rear + Сзади - Set to rear view - УÑтановить вид Ñзади + Set to rear view + УÑтановить вид Ñзади - - + + StdCmdViewRight - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Right - Право + Right + Право - Set to right view - УÑтановить вид Ñправа + Set to right view + УÑтановить вид Ñправа - - + + + StdCmdViewRotateLeft + + Standard-View + Стандартный вид + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Стандартный вид + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Top - Вверх + Top + Вверх - Set to top view - УÑтановить вид Ñверху + Set to top view + УÑтановить вид Ñверху - - + + StdCmdWhatsThis - Help - Справка + Help + Справка - &What's This? - &Что Ñто? + &What's This? + &Что Ñто? - What's This - Что Ñто + What's This + Что Ñто - - + + StdCmdWindows - Window - Окно + Window + Окно - &Windows... - &Окна... + &Windows... + &Окна... - Windows list - СпиÑок окон + Windows list + СпиÑок окон - - + + StdCmdWindowsMenu - Window - Окно + Window + Окно - Activates this window - Ðктивировать Ñто окно + Activates this window + Ðктивировать Ñто окно - - + + StdCmdWorkbench - View - Вид + View + Вид - Workbench - Рабочий Ñтол + Workbench + Рабочий Ñтол - Switch between workbenches - Переключение между рабочими Ñтолами + Switch between workbenches + Переключение между рабочими Ñтолами - - + + StdOrthographicCamera - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Orthographic view - Ортогональный вид + Orthographic view + Ортогональный вид - Switches to orthographic view mode - Переключение в ортогональный режим + Switches to orthographic view mode + Переключение в ортогональный режим - - + + StdPerspectiveCamera - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Perspective view - ПерÑпективный вид + Perspective view + ПерÑпективный вид - Switches to perspective view mode - Переключение в перÑпективный проÑмотр + Switches to perspective view mode + Переключение в перÑпективный проÑмотр - - + + StdViewBoxZoom - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Box zoom - МаÑштаб Ð¿Ð¾Ð»Ñ + Box zoom + МаÑштаб Ð¿Ð¾Ð»Ñ - - + + StdViewDockUndockFullscreen - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Document window - окно документа + Document window + окно документа - Display the active view either in fullscreen, in undocked or docked mode - Отображать активный вид в полноÑкранном, закрепленном или не закрепленном режиме + Display the active view either in fullscreen, in undocked or docked mode + Отображать активный вид в полноÑкранном, закрепленном или не закрепленном режиме - - + + StdViewScreenShot - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Save picture... - Сохранить изображение ... + Save picture... + Сохранить изображение ... - Creates a screenshot of the active view - Создает Ñкриншот активного проÑмотра + Creates a screenshot of the active view + Создает Ñкриншот активного проÑмотра - - + + StdViewZoomIn - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Zoom In - Увеличить + Zoom In + Увеличить - - + + StdViewZoomOut - Standard-View - Стандартный вид + Standard-View + Стандартный вид - Zoom Out - Уменьшить + Zoom Out + Уменьшить - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Файл + &File + &Файл - &Edit - &Правка + &Edit + &Правка - Standard views - Стандартные виды + Standard views + Стандартные виды - &Stereo - &Стерео + &Stereo + &Стерео - &Zoom - МаÑштаб + &Zoom + МаÑштаб - Visibility - ВидимоÑть + Visibility + ВидимоÑть - &View - &Вид + &View + &Вид - &Tools - ИнÑтрументы + &Tools + ИнÑтрументы - &Macro - Макро + &Macro + Макро - &Windows - Окна + &Windows + Окна - &On-line help - Помощь онлайн + &On-line help + Помощь онлайн - &Help - &Справка + &Help + &Справка - File - Файл + File + Файл - Macro - Макро + Macro + Макро - View - Вид + View + Вид - Special Ops - Специальные операции + Special Ops + Специальные операции - - + + testClass - test - теÑÑ‚ + test + теÑÑ‚ - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Выберите Ñтиль панели задач + Choose the style of the Task Panel + Выберите Ñтиль панели задач - Default - По умолчанию + Default + По умолчанию - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_se.ts b/src/Gui/Language/FreeCAD_se.ts index 9b777ffac..424413e1e 100644 --- a/src/Gui/Language/FreeCAD_se.ts +++ b/src/Gui/Language/FreeCAD_se.ts @@ -1,5495 +1,5913 @@ - - + + Angle - Form - Form + Form + Form - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Vinkel Snäpp + Angle Snap + Vinkel Snäpp - - 1 ° - 1° + + 1 ° + 1° - - 2 ° - 2° + + 2 ° + 2° - - 5 ° - 5° + + 5 ° + 5° - - 10 ° - 10° + + 10 ° + 10° - - 20 ° - 20° + + 20 ° + 20° - - 45 ° - 45° + + 45 ° + 45° - - 90 ° - 90° + + 90 ° + 90° - - 180 ° - 180° + + 180 ° + 180° - - + + Gui::AccelLineEdit - none - inget + none + inget - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Lägg till + + + Remove + Ta bort + + + Move up + Flytta upp + + + Move down + Flytta ned + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - Tryck pÃ¥ vänster musknapp + Press left mouse button + Tryck pÃ¥ vänster musknapp - Press SHIFT and middle mouse button - Tryck pÃ¥ SKIFT och mellersta musknappen + Press SHIFT and middle mouse button + Tryck pÃ¥ SKIFT och mellersta musknappen - Press middle mouse button - Tryck pÃ¥ mittre musknapp + Press middle mouse button + Tryck pÃ¥ mittre musknapp - Scroll middle mouse button - Bläddra mittre musknapp + Scroll middle mouse button + Bläddra mittre musknapp - - + + Gui::CADNavigationStyle - Press left mouse button - Tryck pÃ¥ vänster musknapp + Press left mouse button + Tryck pÃ¥ vänster musknapp - Press middle mouse button - Tryck pÃ¥ mittre musknapp + Press middle mouse button + Tryck pÃ¥ mittre musknapp - Press left and middle mouse button - Tryck pÃ¥ vänster och mittre musknapp + Press left and middle mouse button + Tryck pÃ¥ vänster och mittre musknapp - Scroll middle mouse button - Bläddra mittre musknapp + Scroll middle mouse button + Bläddra mittre musknapp - - + + Gui::Command - Standard - Standard + Standard + Standard - - + + Gui::ContainerDialog - &OK - &Ok + &OK + &Ok - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + Gui::ControlSingleton - Task panel - Uppgiftspanel + Task panel + Uppgiftspanel - - + + Gui::Dialog::AboutApplication - About - Om + About + Om - Revision number - Revisionsnummer + Revision number + Revisionsnummer - Version - Version + Version + Version - OK - OK + OK + OK - - + + - Release date - Utgivningsdatum + Release date + Utgivningsdatum - Platform - Plattform + Platform + Plattform - License... - Licens ... + License... + Licens ... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Knapp %1 + Button %1 + Knapp %1 - Out Of Range - Utanför omrÃ¥de + Out Of Range + Utanför omrÃ¥de - - + + Gui::Dialog::CommandModel - Commands - Kommandon + Commands + Kommandon - - + + Gui::Dialog::DemoMode - View Turntable - Visa vridbord + View Turntable + Visa vridbord - Speed - Hastighet + Speed + Hastighet - Maximum - Maximum + Maximum + Maximum - Minimum - Minimum + Minimum + Minimum - Fullscreen - Fullskärm + Fullscreen + Fullskärm - Enable timer - Aktivera timer + Enable timer + Aktivera timer - s - s + s + s - Angle - Vinkel + Angle + Vinkel + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Spela upp - -90° - -90° + Stop + Stopp - Play - Spela upp + Close + Stäng - - Stop - Stopp - - - Close - Stäng - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Välj fönster + Choose Window + Välj fönster - &Activate - &Aktivera + &Activate + &Aktivera - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Fönster + Windows + Fönster - - + + Gui::Dialog::DlgAuthorization - Authorization - Auktorisering + Authorization + Auktorisering - &OK - &Ok + &OK + &Ok - &Cancel - &Avbryt + &Cancel + &Avbryt - Password: - Lösenord: + Password: + Lösenord: - User name: - Användarnamn: + User name: + Användarnamn: - - + + - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Välj ikon + Choose Icon + Välj ikon - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - Add icons... - Lägg till ikoner ... + Add icons... + Lägg till ikoner ... - - + + Gui::Dialog::DlgCustomActions - Macros - Makron + Macros + Makron - Setup Custom Macros - Inställningar för anpassade makron + Setup Custom Macros + Inställningar för anpassade makron - Macro: - Makro: + Macro: + Makro: - ... - ... + ... + ... - Pixmap - Pixelkarta + Pixmap + Pixelkarta - Accelerator: - Snabbtangent: + Accelerator: + Snabbtangent: - What's this: - Förklaring: + What's this: + Förklaring: - Status text: - Statustext: + Status text: + Statustext: - Tool tip: - Verktygstips: + Tool tip: + Verktygstips: - Menu text: - Menytext: + Menu text: + Menytext: - Add - Lägg till + Add + Lägg till - Remove - Ta bort + Remove + Ta bort - Replace - Ersätt + Replace + Ersätt - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Ikoner + Icons + Ikoner - Macros - Makron + Macros + Makron - No macro - Inget makro + No macro + Inget makro - No macros found. - Inga makron funna. + No macros found. + Inga makron funna. - Macro not found - Makro ej funnet + Macro not found + Makro ej funnet - Sorry, couldn't find macro file '%1'. - Ledsen, kunde inte hitta makrofil '%1'. + Sorry, couldn't find macro file '%1'. + Ledsen, kunde inte hitta makrofil '%1'. - Empty macro - Tomt makro + Empty macro + Tomt makro - Please specify the macro first. - Specificera makrot först. + Please specify the macro first. + Specificera makrot först. - Empty text - Tom text + Empty text + Tom text - Please specify the menu text first. - Specificera menytexten först. + Please specify the menu text first. + Specificera menytexten först. - No item selected - Ingen sak vald + No item selected + Ingen sak vald - Please select a macro item first. - Välj ett makro först. + Please select a macro item first. + Välj ett makro först. - - + + Gui::Dialog::DlgCustomCommands - Commands - Kommandon + Commands + Kommandon - - + + - - + + Gui::Dialog::DlgCustomCommandsImp - Category - Kategori + Category + Kategori - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Tangentbord + Keyboard + Tangentbord - Description: - Beskrivning: + Description: + Beskrivning: - &Category: - &Kategori: + &Category: + &Kategori: - C&ommands: - K&ommandon: + C&ommands: + K&ommandon: - Current shortcut: - Nuvarande genväg: + Current shortcut: + Nuvarande genväg: - Press &new shortcut: - Tryck pÃ¥ &ny genväg: + Press &new shortcut: + Tryck pÃ¥ &ny genväg: - Currently assigned to: - För närvarande tilldelat till: + Currently assigned to: + För närvarande tilldelat till: - &Assign - &Tilldela + &Assign + &Tilldela - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Ã…terställ + &Reset + &Ã…terställ - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Ã…te&rställ allt + Re&set All + Ã…te&rställ allt - Alt+S - Alt+S + Alt+S + Alt+S - - + + - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - none - inget + none + inget - Multiple defined shortcut - multipel definierad genväg + Multiple defined shortcut + multipel definierad genväg - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Genvägen '%1' är definierad mer än en gÃ¥ng. Detta kan leda till oväntat beteende. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Genvägen '%1' är definierad mer än en gÃ¥ng. Detta kan leda till oväntat beteende. - Already defined shortcut - Genvägen är redan definierad + Already defined shortcut + Genvägen är redan definierad - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Genvägen '%1' är redan tilldelad '%2'. + Genvägen '%1' är redan tilldelad '%2'. Definiera en annan genväg. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - VerktygslÃ¥dor + Toolbox bars + VerktygslÃ¥dor - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - VerktygslÃ¥dor + Toolbars + VerktygslÃ¥dor - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Ändringarna blir aktiva nästa gÃ¥ng du laddar passande arbetsbänk</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> Ändringarna blir aktiva nästa gÃ¥ng du laddar passande arbetsbänk</p></body></html> - Move right - Flytta till höger + Move right + Flytta till höger - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Flytta den valda saken en nivÃ¥ ned.</b><p>Detta kommer även att ändra nivÃ¥n pÃ¥ sakens förälder.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Flytta den valda saken en nivÃ¥ ned.</b><p>Detta kommer även att ändra nivÃ¥n pÃ¥ sakens förälder.</p> - Move left - Flytta till vänster + Move left + Flytta till vänster - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Flytta den valda saken en nivÃ¥ upp.</b><p>Detta kommer även att ändra nivÃ¥n pÃ¥ sakens förälder.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Flytta den valda saken en nivÃ¥ upp.</b><p>Detta kommer även att ändra nivÃ¥n pÃ¥ sakens förälder.</p> - Move down - Flytta ned + Move down + Flytta ned - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta ned den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivÃ¥n.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytta ned den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivÃ¥n.</p> - Move up - Flytta upp + Move up + Flytta upp - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta upp den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivÃ¥n.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytta upp den valda saken.</b><p>Saken kommer att flyttas inom hierarki nivÃ¥n.</p> - New... - Ny... + New... + Ny... - Rename... - Döp om... + Rename... + Döp om... - Delete - Radera + Delete + Radera - Icon - Ikon + Icon + Ikon - Command - Kommando + Command + Kommando - <Separator> - <Separator> + <Separator> + <Separator> - New toolbar - Ny verktygsrad + New toolbar + Ny verktygsrad - Toolbar name: - Namn pÃ¥ verktygsraden: + Toolbar name: + Namn pÃ¥ verktygsraden: - Duplicated name - Duplicerat namn + Duplicated name + Duplicerat namn - The toolbar name '%1' is already used - Verktygsradens namn '%1' används redan + The toolbar name '%1' is already used + Verktygsradens namn '%1' används redan - Rename toolbar - Döp om verktygsraden + Rename toolbar + Döp om verktygsraden - - + + - - + + Gui::Dialog::DlgCustomizeImp - Customize - Anpassa + Customize + Anpassa - &Help - &Hjälp + &Help + &Hjälp - &Close - &Stäng + &Close + &Stäng - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - Ingen spaceball finns + No Spaceball Present + Ingen spaceball finns - Buttons - Knappar + Buttons + Knappar - Clear - Rensa + Clear + Rensa - Print Reference - Utskriftsreferens + Print Reference + Utskriftsreferens - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Fönsteregenskaper + Display properties + Fönsteregenskaper - Display - Fönster + Display + Fönster - Transparency: - Transparens: + Transparency: + Transparens: - Line width: - Linjebredd: + Line width: + Linjebredd: - Point size: - Punktstorlek: + Point size: + Punktstorlek: - Material - Material + Material + Material - ... - ... + ... + ... - Close - Stäng + Close + Stäng - Viewing mode - Visningsläge + Viewing mode + Visningsläge - Display mode: - Visningsläge: + Display mode: + Visningsläge: - Plot mode: - Plottningsläge: + Plot mode: + Plottningsläge: - - + + - Line transparency: - Linjegenomskinlighet: + Line transparency: + Linjegenomskinlighet: - Line color: - linjefärg: + Line color: + linjefärg: - Shape color: - Form färg: + Shape color: + Form färg: - Color plot: - Färgplottning: + Color plot: + Färgplottning: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Redigerare + Editor + Redigerare - Options - Alternativ + Options + Alternativ - Enable line numbers - Aktivera radnummer + Enable line numbers + Aktivera radnummer - Enable folding - Aktivera vikning + Enable folding + Aktivera vikning - Indentation - Indrag + Indentation + Indrag - Insert spaces - Sätt in mellanslag + Insert spaces + Sätt in mellanslag - Tab size: - Tabulatorstorlek: + Tab size: + Tabulatorstorlek: - Indent size: - Storlek pÃ¥ indrag: + Indent size: + Storlek pÃ¥ indrag: - Keep tabs - BehÃ¥ll tabulatorer + Keep tabs + BehÃ¥ll tabulatorer - Display Items - Visa saker + Display Items + Visa saker - Family: - Familj: + Family: + Familj: - Size: - Storlek: + Size: + Storlek: - Preview: - Förhandsgranskning: + Preview: + Förhandsgranskning: - - + + - - + + Gui::Dialog::DlgGeneral - General - Allmänt + General + Allmänt - Start up - Uppstart + Start up + Uppstart - Enable splash screen at start up - Aktivera splashfönster vid uppstart + Enable splash screen at start up + Aktivera splashfönster vid uppstart - Switch to tab of report window: - Växla till rapportfönstrets tabb: + Switch to tab of report window: + Växla till rapportfönstrets tabb: - Auto load module after start up: - Autoladda modul efter uppstart: + Auto load module after start up: + Autoladda modul efter uppstart: - Language - SprÃ¥k + Language + SprÃ¥k - Change language: - Ändra sprÃ¥k: + Change language: + Ändra sprÃ¥k: - Main window - Huvudfönster + Main window + Huvudfönster - Size of recent file list - Storlek pÃ¥ listan för senast öppnade filer + Size of recent file list + Storlek pÃ¥ listan för senast öppnade filer - Window style: - Fönsterstil: + Window style: + Fönsterstil: - Size of toolbar icons: - Storlek pÃ¥ verktygsfältsikonerna: + Size of toolbar icons: + Storlek pÃ¥ verktygsfältsikonerna: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Standard (%1 x %1) + Default (%1 x %1) + Standard (%1 x %1) - Small (%1 x %1) - Liten (%1 x %1) + Small (%1 x %1) + Liten (%1 x %1) - Large (%1 x %1) - Stor (%1 x %1) + Large (%1 x %1) + Stor (%1 x %1) - Extra large (%1 x %1) - Extra stor (%1 x %1) + Extra large (%1 x %1) + Extra stor (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Inmatning + Input + Inmatning - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - - + + - - + + Gui::Dialog::DlgInspector - Scene Inspector - Sceninspektör + Scene Inspector + Sceninspektör - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Utför makro + Execute macro + Utför makro - Macro name: - Makronamn: + Macro name: + Makronamn: - Macro destination: - Makro destination: + Macro destination: + Makro destination: - Execute - Utför + Execute + Utför - Close - Stäng + Close + Stäng - Create - Skapa + Create + Skapa - Delete - Radera + Delete + Radera - Edit - Redigera + Edit + Redigera - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - Makron + Macros + Makron - Macro file - Makro fil + Macro file + Makro fil - Enter a file name, please: - Skriv in ett filnamn: + Enter a file name, please: + Skriv in ett filnamn: - Existing file - Filen finns + Existing file + Filen finns - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Denna fil finns redan. - Delete macro - Radera makro + Delete macro + Radera makro - Do you really want to delete the macro '%1'? - Vill du verkligen radera makrot '%1'? + Do you really want to delete the macro '%1'? + Vill du verkligen radera makrot '%1'? - Cannot create file - Kan inte skapa fil + Cannot create file + Kan inte skapa fil - Creation of file '%1' failed. - Skapandet av filen %1' misslyckades. + Creation of file '%1' failed. + Skapandet av filen %1' misslyckades. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Makroinspelning + Macro recording + Makroinspelning - Macro name: - Makronamn: + Macro name: + Makronamn: - Stop - Stopp + Stop + Stopp - Cancel - Avbryt + Cancel + Avbryt - Macro path: - sökväg för makro: + Macro path: + sökväg för makro: - ... - ... + ... + ... - Record - Spela in + Record + Spela in - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - Makroinspelare + Macro recorder + Makroinspelare - Specify first a place to save. - Specificera först en plats att spara pÃ¥. + Specify first a place to save. + Specificera först en plats att spara pÃ¥. - Existing macro - Makrot finns + Existing macro + Makrot finns - The macro '%1' already exists. Do you want to overwrite? - Makrot '%1' finns redan. Vill du skriva över den? + The macro '%1' already exists. Do you want to overwrite? + Makrot '%1' finns redan. Vill du skriva över den? - The macro directory doesn't exist. Please, choose another one. - Makrokatalogen finns inte. Var snäll och välj en annan. + The macro directory doesn't exist. Please, choose another one. + Makrokatalogen finns inte. Var snäll och välj en annan. - Choose macro directory - Välj makro katalog + Choose macro directory + Välj makro katalog - - + + Gui::Dialog::DlgMaterialProperties - Material properties - Materialegenskaper + Material properties + Materialegenskaper - &Close - &Stäng + &Close + &Stäng - Alt+C - Alt+C + Alt+C + Alt+C - Material - Material + Material + Material - Diffuse color: - Diffuseringsfärg: + Diffuse color: + Diffuseringsfärg: - Specular color: - Speglingsfärg: + Specular color: + Speglingsfärg: - Shininess: - Blänkvärde: + Shininess: + Blänkvärde: - % - % + % + % - Ambient color: - Omgivningsfärg: + Ambient color: + Omgivningsfärg: - - + + - Emissive color: - Emissiv färg: + Emissive color: + Emissiv färg: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - On-line hjälp + On-line help + On-line hjälp - Help viewer - Hjälpvisare + Help viewer + Hjälpvisare - Location of start page - Startsidans adress + Location of start page + Startsidans adress - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML filer (*.html *.htm) + HTML files (*.html *.htm) + HTML filer (*.html *.htm) - Access denied - Ã…tkomst nekad + Access denied + Ã…tkomst nekad - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Ã…tkomst nekad till '%1' + Ã…tkomst nekad till '%1' Ange en annan katalog. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Parameter redigerare + Parameter Editor + Parameter redigerare - Save to disk - Spara till disk + Save to disk + Spara till disk - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Stäng + &Close + &Stäng - - + + Gui::Dialog::DlgParameterImp - Group - Grupp + Group + Grupp - Name - Namn + Name + Namn - Type - Typ + Type + Typ - Value - Värde + Value + Värde - User parameter - Användarparameter + User parameter + Användarparameter - Invalid input - Ogiltig inmatning + Invalid input + Ogiltig inmatning - Invalid key name '%1' - Ogiltigt nyckelnamn '%1' + Invalid key name '%1' + Ogiltigt nyckelnamn '%1' - System parameter - Systemparameter + System parameter + Systemparameter - - + + Gui::Dialog::DlgPreferences - Preferences - Inställningar + Preferences + Inställningar - &Help - &Hjälp + &Help + &Hjälp - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &Ok + &OK + &Ok - &Apply - &Verkställ + &Apply + &Verkställ - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Fel parameter + Wrong parameter + Fel parameter - - + + Gui::Dialog::DlgProjectInformation - Project information - Projektinformation + Project information + Projektinformation - Information - Information + Information + Information - &Name: - &Namn: + &Name: + &Namn: - Commen&t: - Kommen&tar: + Commen&t: + Kommen&tar: - Path: - Sökväg: + Path: + Sökväg: - &Last modified by: - S&ist ändrad av: + &Last modified by: + S&ist ändrad av: - Created &by: - &Skapad av: + Created &by: + &Skapad av: - Com&pany: - &Företag: + Com&pany: + &Företag: - Last &modification date: - Sista ändringsdatu&m: + Last &modification date: + Sista ändringsdatu&m: - Creation &date: - Skapad &datum: + Creation &date: + Skapad &datum: - &OK - &Ok + &OK + &Ok - &Cancel - &Avbryt + &Cancel + &Avbryt - - + + - - + + Gui::Dialog::DlgProjectUtility - Project utility - Projekt verktyg + Project utility + Projekt verktyg - Extract project - Extrahera projekt + Extract project + Extrahera projekt - Source - Källa + Source + Källa - Project file (*.fcstd) - Projektfil (*. fcstd) + Project file (*.fcstd) + Projektfil (*. fcstd) - Destination - Destination + Destination + Destination - Extract - Extrahera + Extract + Extrahera - Create project - Skapa projekt + Create project + Skapa projekt - Document.xml - Dokument.xml + Document.xml + Dokument.xml - Create - Skapa + Create + Skapa - Load project file after creation - Ladda projektfil efter skapelsen + Load project file after creation + Ladda projektfil efter skapelsen - Empty source - Tom källa + Empty source + Tom källa - No source is defined. - Ingen källa är definierad. + No source is defined. + Ingen källa är definierad. - Empty destination - Tom destination + Empty destination + Tom destination - No destination is defined. - Ingen destination är definierad. + No destination is defined. + Ingen destination är definierad. - - + + Gui::Dialog::DlgReportView - Output window - Utmatningsfönster + Output window + Utmatningsfönster - Output - Utmatning + Output + Utmatning - Record log messages - spela in logg meddelanden + Record log messages + spela in logg meddelanden - Record warnings - Spela in varningar + Record warnings + Spela in varningar - Record error messages - Spela in felmeddelanden + Record error messages + Spela in felmeddelanden - Colors - Färger + Colors + Färger - Normal messages: - Normala meddelanden: + Normal messages: + Normala meddelanden: - Log messages: - Loggmeddelanden: + Log messages: + Loggmeddelanden: - Warnings: - Varningar: + Warnings: + Varningar: - Errors: - Fel: + Errors: + Fel: - - + + - Redirect internal Python errors to report view - Omdirigera interna Pythonfel till rapportvy + Redirect internal Python errors to report view + Omdirigera interna Pythonfel till rapportvy - Redirect internal Python output to report view - Dirigera om intern Pythonutmatning till rapportvyn + Redirect internal Python output to report view + Dirigera om intern Pythonutmatning till rapportvyn - - + + Gui::Dialog::DlgRunExternal - Running external program - Kör externt program + Running external program + Kör externt program - TextLabel - TextLabel + TextLabel + TextLabel - Advanced >> - Avancerat >> + Advanced >> + Avancerat >> - ... - ... + ... + ... - Accept changes - Acceptera förändringar + Accept changes + Acceptera förändringar - Discard changes - Förkasta ändringar + Discard changes + Förkasta ändringar - Abort program - Avbryt programmet + Abort program + Avbryt programmet - Help - Hjälp + Help + Hjälp - Select a file - Välj en fil + Select a file + Välj en fil - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D Vy + 3D View + 3D Vy - 3D View settings - Inställningar för 3D Vy + 3D View settings + Inställningar för 3D Vy - Show coordinate system in the corner - Visa koordinatsystemet i hörnet + Show coordinate system in the corner + Visa koordinatsystemet i hörnet - Show counter of frames per second - Visa räknaren för bilder per sekund + Show counter of frames per second + Visa räknaren för bilder per sekund - Enable animation - Aktivera animering + Enable animation + Aktivera animering - Enable anti-aliasing (slower) - Aktivera antialiasing (lÃ¥ngsammare) + Enable anti-aliasing (slower) + Aktivera antialiasing (lÃ¥ngsammare) - Eye to eye distance for stereo modes: - ÖgonavstÃ¥nd för stereolägen: + Eye to eye distance for stereo modes: + ÖgonavstÃ¥nd för stereolägen: - Camera type - Kameratyp + Camera type + Kameratyp - Orthographic rendering - Ortografisk rendering + Orthographic rendering + Ortografisk rendering - Perspective rendering - Perspektivrendering + Perspective rendering + Perspektivrendering - - + + - 3D Navigation - 3D Navigering + 3D Navigation + 3D Navigering - Mouse... - Mus... + Mouse... + Mus... - Intensity of backlight - Intensiteten i bakgrundsbelysningen + Intensity of backlight + Intensiteten i bakgrundsbelysningen - Enable backlight color - Aktivera bakgrundsbelysningsfärg + Enable backlight color + Aktivera bakgrundsbelysningsfärg - Orbit style - Orbit stil + Orbit style + Orbit stil - Turntable - Skivtallrik + Turntable + Skivtallrik - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invertera zoom + Invert zoom + Invertera zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 navigering + %1 navigation + %1 navigering - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Färgmodell + Color model + Färgmodell - &Gradient: - &Gradient: + &Gradient: + &Gradient: - red-yellow-green-cyan-blue - röd-gul-grön-cyan-blÃ¥ + red-yellow-green-cyan-blue + röd-gul-grön-cyan-blÃ¥ - blue-cyan-green-yellow-red - blÃ¥-cyan-grön-gul-röd + blue-cyan-green-yellow-red + blÃ¥-cyan-grön-gul-röd - white-black - vit-svart + white-black + vit-svart - black-white - svart-vit + black-white + svart-vit - Visibility - Synlighet + Visibility + Synlighet - Out g&rayed - Ut g&rÃ¥ + Out g&rayed + Ut g&rÃ¥ - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - Ut osynl&ig + Out &invisible + Ut osynl&ig - Alt+I - Alt+I + Alt+I + Alt+I - Style - Stil + Style + Stil - &Zero - &Noll + &Zero + &Noll - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Flöde + &Flow + &Flöde - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &Ok + &OK + &Ok - &Cancel - &Avbryt + &Cancel + &Avbryt - Parameter range - ParameteromrÃ¥de + Parameter range + ParameteromrÃ¥de - Mi&nimum: - Mi&nimum: + Mi&nimum: + Mi&nimum: - Ma&ximum: - Ma&ximum: + Ma&ximum: + Ma&ximum: - &Labels: - &Etiketter: + &Labels: + &Etiketter: - &Decimals: - &Decimaler: + &Decimals: + &Decimaler: - - + + - Color-gradient settings - Färggradient inställningar + Color-gradient settings + Färggradient inställningar - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Fel parameter + Wrong parameter + Fel parameter - The maximum value must be higher than the minimum value. - Maximumvärdet mÃ¥ste vara större än minimumvärdet. + The maximum value must be higher than the minimum value. + Maximumvärdet mÃ¥ste vara större än minimumvärdet. - - + + Gui::Dialog::DlgSettingsDocument - Document - Dokument + Document + Dokument - General - Allmänt + General + Allmänt - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Komprimeringsgrad när dokument sparas + Komprimeringsgrad när dokument sparas (0 = ingen, 9 = högst, 3 = standard) - Create new document at start up - Skapa nytt dokument vid uppstart + Create new document at start up + Skapa nytt dokument vid uppstart - Storage - Lagring + Storage + Lagring - Saving transactions (Auto-save) - Spara transaktionerna (autospara) + Saving transactions (Auto-save) + Spara transaktionerna (autospara) - Discard saved transaction after saving document - Förstör sparad transaktion efter att ha sparat dokumentet + Discard saved transaction after saving document + Förstör sparad transaktion efter att ha sparat dokumentet - Save thumbnail into project file when saving document - Spara minibild i projektfilen när dokumentet sparas + Save thumbnail into project file when saving document + Spara minibild i projektfilen när dokumentet sparas - Create up to backup files when resaving document - Skapa upp till säkerhetskopior när dokumentet omsparas + Create up to backup files when resaving document + Skapa upp till säkerhetskopior när dokumentet omsparas - Document objects - Dokumentobjekt + Document objects + Dokumentobjekt - Allow duplicate object labels in one document - TillÃ¥t duplicerade objektetiketter i ett dokument + Allow duplicate object labels in one document + TillÃ¥t duplicerade objektetiketter i ett dokument - Maximum Undo/Redo steps - Maximalt Ã…ngra / Gör om steg + Maximum Undo/Redo steps + Maximalt Ã…ngra / Gör om steg - Using Undo/Redo on documents - Använder Ã…ngra / Gör om pÃ¥ dokument + Using Undo/Redo on documents + Använder Ã…ngra / Gör om pÃ¥ dokument - - + + Gui::Dialog::DlgSettingsEditorImp - Text - Text + Text + Text - Bookmark - Bokmärke + Bookmark + Bokmärke - Breakpoint - Brytpunkt + Breakpoint + Brytpunkt - Keyword - Nyckelord + Keyword + Nyckelord - Comment - Kommentar + Comment + Kommentar - Block comment - Blockkommentar + Block comment + Blockkommentar - Number - Nummer + Number + Nummer - String - Sträng + String + Sträng - Character - Tecken + Character + Tecken - Class name - Klassnamn + Class name + Klassnamn - Define name - Definiera namn + Define name + Definiera namn - Operator - Operator + Operator + Operator - Python output - Python utmatning + Python output + Python utmatning - Python error - Python fel + Python error + Python fel - Items - Saker + Items + Saker - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Bildinställningar + Image settings + Bildinställningar - Image properties - Bildegenskaper + Image properties + Bildegenskaper - Back&ground: - Bak&grund: + Back&ground: + Bak&grund: - Current - Nuvarande + Current + Nuvarande - White - Vit + White + Vit - Black - Svart + Black + Svart - Transparent - Transparent + Transparent + Transparent - Image dimensions - Bildstorlek + Image dimensions + Bildstorlek - Pixel - Pixel + Pixel + Pixel - &Width: - &Bredd: + &Width: + &Bredd: - Current screen - Nuvarande fönster + Current screen + Nuvarande fönster - Icon 32 x 32 - Ikon 32 x 32 + Icon 32 x 32 + Ikon 32 x 32 - Icon 64 x 64 - Ikon 64 x 64 + Icon 64 x 64 + Ikon 64 x 64 - Icon 128 x 128 - Ikon 128 .x. 128 + Icon 128 x 128 + Ikon 128 .x. 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Standardstorlekar: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + &Höjd: - Standard sizes: - Standardstorlekar: + Aspect ratio: + BildförhÃ¥llande: - &Height: - &Höjd: + &Screen + &Skärm - Aspect ratio: - BildförhÃ¥llande: + Alt+S + Alt+S - &Screen - &Skärm + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Bildkommentar - Alt+1 - Alt+1 + Insert MIBA + Sätt in MIBA - Image comment - Bildkommentar + Insert comment + Sätt in kommentar - - Insert MIBA - Sätt in MIBA - - - Insert comment - Sätt in kommentar - - - + + Gui::Dialog::DlgSettingsMacro - Macro - Makro + Macro + Makro - Macro recording settings - Inställningar för makroinspelning + Macro recording settings + Inställningar för makroinspelning - Logging Commands - Loggkommandon + Logging Commands + Loggkommandon - Show script commands in python console - Visa skriptkommandon i python konsolen + Show script commands in python console + Visa skriptkommandon i python konsolen - Log all commands issued by menus to file: - Logga alla kommandon startade av menyer till fil: + Log all commands issued by menus to file: + Logga alla kommandon startade av menyer till fil: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Gui kommandon + Gui commands + Gui kommandon - Recording GUI commands - Spelar in GUI kommandon + Recording GUI commands + Spelar in GUI kommandon - Record as comment - Spela in som kommentar + Record as comment + Spela in som kommentar - Macro path - sökväg för makro + Macro path + sökväg för makro - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Enheter + Units + Enheter - Units settings - Inställningar för enheter + Units settings + Inställningar för enheter - Standard (mm/kg/s/degree) - Standard (mm/kg/s/grad) + Standard (mm/kg/s/degree) + Standard (mm/kg/s/grad) - MKS (m/kg/s/degree) - MKS (m/kg/s/grad) + MKS (m/kg/s/degree) + MKS (m/kg/s/grad) - Magnitude - Magnitud + Magnitude + Magnitud - Unit - Enhet + Unit + Enhet - User system: - Användarsystem: + User system: + Användarsystem: - Imperial (in/lb) - Brittiska mÃ¥tt (in/lb) + Imperial (in/lb) + Brittiska mÃ¥tt (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Färger + Colors + Färger - Selection - Markering + Selection + Markering - Enable selection highlighting - Aktivera valmarkering + Enable selection highlighting + Aktivera valmarkering - Enable preselection highlighting - Aktivera förvalsmarkering + Enable preselection highlighting + Aktivera förvalsmarkering - Background color - Bakgrundsfärg + Background color + Bakgrundsfärg - Middle color - Mellanfärg + Middle color + Mellanfärg - Color gradient - Färggradient + Color gradient + Färggradient - Simple color - Enkel färg + Simple color + Enkel färg - Default colors - Standard färger + Default colors + Standard färger - Edited edge color - Redigerad kantfärg + Edited edge color + Redigerad kantfärg - Edited vertex color - Redigerad hörnfärg + Edited vertex color + Redigerad hörnfärg - Construction geometry - Konstruktionsgeometri + Construction geometry + Konstruktionsgeometri - Fully constrained geometry - Helt begränsad geometri + Fully constrained geometry + Helt begränsad geometri - The color of construction geometry in editmode - Färgen pÃ¥ konstruktionsgeometri i redigeringsläge + The color of construction geometry in editmode + Färgen pÃ¥ konstruktionsgeometri i redigeringsläge - The color of fully constrained geometry in editmode - Färgen pÃ¥ fullt begränsad geometri i redigeringsläge + The color of fully constrained geometry in editmode + Färgen pÃ¥ fullt begränsad geometri i redigeringsläge - The color of vertices being edited - Färgen pÃ¥ hörn som redigeras + The color of vertices being edited + Färgen pÃ¥ hörn som redigeras - The color of edges being edited - Färgen pÃ¥ kanter som redigeras + The color of edges being edited + Färgen pÃ¥ kanter som redigeras - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Dagens tips + Tip of the day + Dagens tips - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Visste du...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Visste du...</font></font></b> - &Show tips at start up - Vi&sa tips vid uppstart + &Show tips at start up + Vi&sa tips vid uppstart - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &Nästa tips + &Next Tip + &Nästa tips - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Stäng + &Close + &Stäng - Alt+C - Alt+C + Alt+C + Alt+C - - + + - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Nedladdning misslyckades:%1 + Nedladdning misslyckades:%1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Om du vill läradig mer om FreeCAD sÃ¥ mÃ¥ste du gÃ¥ till %1 eller klicka pÃ¥ Hjälp i Hjälp-menyn. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Om du vill läradig mer om FreeCAD sÃ¥ mÃ¥ste du gÃ¥ till %1 eller klicka pÃ¥ Hjälp i Hjälp-menyn. - - + + Gui::Dialog::DockablePlacement - Placement - Placering + Placement + Placering - - + + Gui::Dialog::DownloadDialog - Canceled. - Avbruten + Canceled. + Avbruten - - + + Download + + + + Cancel + Avbryt + + + Close + Stäng + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Nedladdning misslyckades: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Lägg till ikon + Add icon + Lägg till ikon - - + + Gui::Dialog::InputVector - Input vector - Inmatningsvektor + Input vector + Inmatningsvektor - Vector - Vektor + Vector + Vektor - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - OK + OK + OK - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Musknappar + Mouse buttons + Musknappar - Configuration - Konfiguration + Configuration + Konfiguration - Selection: - Markering: + Selection: + Markering: - Panning - Panorering + Panning + Panorering - Rotation: - Rotation: + Rotation: + Rotation: - Zooming: - Zoomning: + Zooming: + Zoomning: - - + + Gui::Dialog::ParameterGroup - Expand - Expandera + Expand + Expandera - Add sub-group - Lägg till undergrupp + Add sub-group + Lägg till undergrupp - Remove group - Ta bort grupp + Remove group + Ta bort grupp - Rename group - Döp om grupp + Rename group + Döp om grupp - Export parameter - Exportera parameter + Export parameter + Exportera parameter - Import parameter - Importera parameter + Import parameter + Importera parameter - Collapse - Minimera + Collapse + Minimera - Do really want to remove this parameter group? - Vill du verkligen to bort denna parametergrupp? + Do really want to remove this parameter group? + Vill du verkligen to bort denna parametergrupp? - Existing sub-group - Existerande undergrupp + Existing sub-group + Existerande undergrupp - The sub-group '%1' already exists. - Undergruppen '%1' finns redan. + The sub-group '%1' already exists. + Undergruppen '%1' finns redan. - Export parameter to file - exportera parameter till fil + Export parameter to file + exportera parameter till fil - XML (*.FCParam) - XML(*.FCParam) + XML (*.FCParam) + XML(*.FCParam) - Import parameter from file - Importera parameter frÃ¥n fil + Import parameter from file + Importera parameter frÃ¥n fil - Import Error - Importfel + Import Error + Importfel - Reading from '%1' failed. - Läsning frÃ¥n '%1' misslyckades. + Reading from '%1' failed. + Läsning frÃ¥n '%1' misslyckades. - - + + Gui::Dialog::ParameterValue - Change value - Ändra värde + Change value + Ändra värde - Remove key - Ta bort nyckel + Remove key + Ta bort nyckel - Rename key - Döp om nyckel + Rename key + Döp om nyckel - New - Ny + New + Ny - New string item - Ny sträng + New string item + Ny sträng - New float item - Nytt flyttal + New float item + Nytt flyttal - New integer item - Nytt heltal + New integer item + Nytt heltal - New unsigned item - Nytt osignerat tal + New unsigned item + Nytt osignerat tal - New Boolean item - Nytt booleskt värde + New Boolean item + Nytt booleskt värde - Existing item - Existerar + Existing item + Existerar - The item '%1' already exists. - Saken '%1' finns redan. + The item '%1' already exists. + Saken '%1' finns redan. - - + + Gui::Dialog::Placement - Placement - Placering + Placement + Placering - OK - OK + OK + OK - Translation: - Förflyttning: + Translation: + Förflyttning: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - Rotation: + Rotation: + Rotation: - Angle: - Vinkel: + Angle: + Vinkel: - Axis: - Axel: + Axis: + Axel: - Center: - Centrum: + Center: + Centrum: - Pitch: - Lutning: + Pitch: + Lutning: - Roll: - Rullning: + Roll: + Rullning: - Yaw: - Girning: + Yaw: + Girning: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Eulervinklar + Euler angles + Eulervinklar - Apply placement changes immediately - Applicera placeringsförändringar omedelbart + Apply placement changes immediately + Applicera placeringsförändringar omedelbart - Apply incremental changes to object placement - applicera stegvisa förändringar pÃ¥ objektplacering + Apply incremental changes to object placement + applicera stegvisa förändringar pÃ¥ objektplacering - Apply - Verkställ + Apply + Verkställ - Reset - Ã…terställ + Reset + Ã…terställ - Close - Stäng + Close + Stäng - - + + Gui::Dialog::PrintModel - Button - Knapp + Button + Knapp - Command - Kommando + Command + Kommando - - + + Gui::Dialog::SceneInspector - Dialog - Dialog + Dialog + Dialog - Close - Stäng + Close + Stäng - Refresh - Uppdatera + Refresh + Uppdatera - - + + Gui::Dialog::SceneModel - Inventor Tree - Inventor träd + Inventor Tree + Inventor träd - Nodes - Noder + Nodes + Noder - - + + Gui::Dialog::TextureMapping - Texture - Struktur + Texture + Struktur - Texture mapping - strukturmappning + Texture mapping + strukturmappning - Global - Global + Global + Global - Environment - Miljö + Environment + Miljö - Image files (%1) - Bildfiler (%1) + Image files (%1) + Bildfiler (%1) - No image - Ingen bild + No image + Ingen bild - The specified file is not a valid image file. - Den angivna filen är inte en giltig bildfil. + The specified file is not a valid image file. + Den angivna filen är inte en giltig bildfil. - No 3d view - Ingen 3d vy + No 3d view + Ingen 3d vy - No active 3d view found. - Ingen aktiv 3D-vy hittades. + No active 3d view found. + Ingen aktiv 3D-vy hittades. - - + + Gui::Dialog::Transform - Cancel - Avbryt + Cancel + Avbryt - Transform - Omvandla + Transform + Omvandla - - + + Gui::DlgTreeWidget - Dialog - Dialog + Dialog + Dialog - Items - Saker + Items + Saker - OK - OK + OK + OK - Cancel - Avbryt + Cancel + Avbryt - - + + - - + + Gui::DockWnd::CombiView - CombiView - Kombivy + CombiView + Kombivy - Project - Projekt + Project + Projekt - Tasks - Uppgifter + Tasks + Uppgifter - - + + Gui::DockWnd::HelpView - Previous - FöregÃ¥ende + Previous + FöregÃ¥ende - Next - Nästa + Next + Nästa - Home - Hem + Home + Hem - Open - Öppna + Open + Öppna - Open file - Öppna fil + Open file + Öppna fil - All HTML files (*.html *.htm) - Alla HTML filer (*.html *.htm) + All HTML files (*.html *.htm) + Alla HTML filer (*.html *.htm) - External browser - Extern webbläsare + External browser + Extern webbläsare - No external browser found. Specify in preferences, please - NÃ¥gon extern webbläsare hittades inte. Specificera en i inställningarna + No external browser found. Specify in preferences, please + NÃ¥gon extern webbläsare hittades inte. Specificera en i inställningarna - Starting of %1 failed - Start av %1 misslyckades + Starting of %1 failed + Start av %1 misslyckades - - + + Gui::DockWnd::PropertyDockView - Property View - Egenskapsvy + Property View + Egenskapsvy - - + + Gui::DockWnd::ReportOutput - Logging - Loggning + Logging + Loggning - Warning - Varning + Warning + Varning - Error - Fel + Error + Fel - Options - Alternativ + Options + Alternativ - Clear - Rensa + Clear + Rensa - Save As... - Spara som... + Save As... + Spara som... - Save Report Output - Spara rapport utmatning + Save Report Output + Spara rapport utmatning - Plain Text Files (*.txt *.log) - Rena textfiler (*.txt *.log) + Plain Text Files (*.txt *.log) + Rena textfiler (*.txt *.log) - Go to end - GÃ¥ till slutet + Go to end + GÃ¥ till slutet - Redirect Python output - Dirigera om Pythonutmatning + Redirect Python output + Dirigera om Pythonutmatning - Redirect Python errors - Omdirigera Python fel + Redirect Python errors + Omdirigera Python fel - - + + Gui::DockWnd::ReportView - Output - Utmatning + Output + Utmatning - Python console - Python konsoll + Python console + Python konsoll - - + + Gui::DockWnd::SelectionView - Property View - Egenskapsvy + Property View + Egenskapsvy - - + + Gui::DockWnd::TaskPanelView - Task View - Uppgiftsvy + Task View + Uppgiftsvy - - + + Gui::DockWnd::TextBrowser - Could not open file. - Kunde inte öppna fil. + Could not open file. + Kunde inte öppna fil. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Du försökte öppna adress %1, som för tillfället är otillgänglig. Försäkra dig om att URL:en finns och försök att ladda om sidan. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Du försökte öppna adress %1, som för tillfället är otillgänglig. Försäkra dig om att URL:en finns och försök att ladda om sidan. - Connecting to %1 - Ansluter till %1 + Connecting to %1 + Ansluter till %1 - Sending to %1 - Sänder till %1 + Sending to %1 + Sänder till %1 - Reading from %1 - Läser frÃ¥n %1 + Reading from %1 + Läser frÃ¥n %1 - Download failed: %1. - Nedladdning misslyckades: %1. + Download failed: %1. + Nedladdning misslyckades: %1. - Previous - FöregÃ¥ende + Previous + FöregÃ¥ende - Forward - FramÃ¥t + Forward + FramÃ¥t - Home - Hem + Home + Hem - Refresh - Uppdatera + Refresh + Uppdatera - Copy - Kopiera + Copy + Kopiera - Select all - Markera allt + Select all + Markera allt - No description for - Ingen beskrivning för + No description for + Ingen beskrivning för - - + + Gui::DocumentModel - Application - Applikation + Application + Applikation - Labels & Attributes - Etiketter & attribut + Labels & Attributes + Etiketter & attribut - - + + Gui::EditorView - Modified file - Ändrad fil + Modified file + Ändrad fil - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Denna har ändrats utanför källredigeraren. Vill du ladda om den? - Unsaved document - Osparat dokument + Unsaved document + Osparat dokument - The document has been modified. + The document has been modified. Do you want to save your changes? - Dokumentet har ändrats. + Dokumentet har ändrats. Vill du spara ändringarna? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD makro (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD makro (*.FCMacro);;Python (*.py) - Export PDF - Exportera PDF + Export PDF + Exportera PDF - PDF file (*.pdf) - PDF fil (*.pdf) + PDF file (*.pdf) + PDF fil (*.pdf) - untitled[*] - utan namn[*] + untitled[*] + utan namn[*] - - Editor - - Redigerare + - Editor + - Redigerare - %1 chars removed - %1 tecken borttagna + %1 chars removed + %1 tecken borttagna - %1 chars added - %1 tecken tillagda + %1 chars added + %1 tecken tillagda - Formatted - Formatterad + Formatted + Formatterad - - + + Gui::FileChooser - Select a file - Välj en fil + Select a file + Välj en fil - Select a directory - Välj en katalog + Select a directory + Välj en katalog - - + + Gui::FileDialog - Save as - Spara som + Save as + Spara som - Open - Öppna + Open + Öppna - - + + Gui::FileOptionsDialog - Extended - Utökad + Extended + Utökad - All files (*.*) - Alla filer (*.*) + All files (*.*) + Alla filer (*.*) - - + + Gui::Flag - Top left - Topp vänster + Top left + Topp vänster - Bottom left - Botten vänster + Bottom left + Botten vänster - Top right - Topp höger + Top right + Topp höger - Bottom right - Botten höger + Bottom right + Botten höger - Remove - Ta bort + Remove + Ta bort - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - Tryck CTRL och vänster musknapp + Press CTRL and left mouse button + Tryck CTRL och vänster musknapp - Press middle mouse button - Tryck pÃ¥ mittre musknapp + Press middle mouse button + Tryck pÃ¥ mittre musknapp - Press left mouse button - Tryck pÃ¥ vänster musknapp + Press left mouse button + Tryck pÃ¥ vänster musknapp - Scroll middle mouse button - Bläddra mittre musknapp + Scroll middle mouse button + Bläddra mittre musknapp - - + + Gui::LocationDialog - Wrong direction - Fel riktning + Wrong direction + Fel riktning - Direction must not be the null vector - Riktningen fÃ¥r inte vara noll vektorn + Direction must not be the null vector + Riktningen fÃ¥r inte vara noll vektorn - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Användardefinierad... + User defined... + Användardefinierad... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - Makron + Macros + Makron - - + + Gui::MainWindow - Dimension - Dimension + Dimension + Dimension - Ready - Klar + Ready + Klar - Toggles this toolbar - Växlar denna verktygsrad + Toggles this toolbar + Växlar denna verktygsrad - Toggles this dockable window - Växlar detta dockningsbara fönster + Toggles this dockable window + Växlar detta dockningsbara fönster - Close All - Stäng alla + Close All + Stäng alla - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Nedladdning startad... + Nedladdning startad... - - + + Gui::ProgressBar - Remaining: %1 - Kvarvarande: %1 + Remaining: %1 + Kvarvarande: %1 - Aborting - Avbryter + Aborting + Avbryter - Do you really want to abort the operation? - Vill du verkligen avbryta operationen? + Do you really want to abort the operation? + Vill du verkligen avbryta operationen? - - + + Gui::ProgressDialog - Remaining: %1 - Kvarvarande: %1 + Remaining: %1 + Kvarvarande: %1 - Aborting - Avbryter + Aborting + Avbryter - Do you really want to abort the operation? - Vill du verkligen avbryta operationen? + Do you really want to abort the operation? + Vill du verkligen avbryta operationen? - - + + Gui::PropertyEditor::PropertyModel - Property - Egenskap + Property + Egenskap - Value - Värde + Value + Värde - - + + Gui::PropertyView - View - Vy + View + Vy - Data - Data + Data + Data - - + + Gui::PythonConsole - System exit - Avsluta systemet + System exit + Avsluta systemet - The application is still running. + The application is still running. Do you want to exit without saving your data? - Applikationen körs fortfarande. + Applikationen körs fortfarande. Vill du avsluta utan att spara din data? - Python console - Python konsoll + Python console + Python konsoll - Unhandled PyCXX exception. - Ohanterat PyCXX undantag. + Unhandled PyCXX exception. + Ohanterat PyCXX undantag. - Unhandled FreeCAD exception. - Ohanterat FreeCAD undantag. + Unhandled FreeCAD exception. + Ohanterat FreeCAD undantag. - Unhandled unknown C++ exception. - Ohanterat okänt C++ undantag. + Unhandled unknown C++ exception. + Ohanterat okänt C++ undantag. - &Copy command - &Kopiera kommando + &Copy command + &Kopiera kommando - &Copy history - &Kopieringshistorik + &Copy history + &Kopieringshistorik - Save history as... - Spara historik som... + Save history as... + Spara historik som... - Insert file name... - Mata in filnamn... + Insert file name... + Mata in filnamn... - Save History - Spara historik + Save History + Spara historik - Macro Files (*.FCMacro *.py) - Makrofiler (*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + Makrofiler (*.FCMacro *.py) - Insert file name - Mata in filnamn + Insert file name + Mata in filnamn - All Files (*.*) - Alla filer (*.*) + All Files (*.*) + Alla filer (*.*) - Python Input Dialog - Python inmatningsdialog + Python Input Dialog + Python inmatningsdialog - Unhandled std C++ exception. - Std C++ undantag utan hantering. + Unhandled std C++ exception. + Std C++ undantag utan hantering. - Word wrap - Radbrytning + Word wrap + Radbrytning - &Copy - K&opiera + &Copy + K&opiera - &Paste - Klistra &in + &Paste + Klistra &in - Select All - Markera allt + Select All + Markera allt - - + + Clear console + + + + Gui::PythonEditor - Comment - Kommentar + Comment + Kommentar - Uncomment - Bortkommentera + Uncomment + Bortkommentera - - + + Gui::PythonInputField - OK - OK + OK + OK - Clear - Rensa + Clear + Rensa - - + + Gui::RecentFilesAction - Open file %1 - Öppna fil %1 + Open file %1 + Öppna fil %1 - File not found - Fil ej funnen + File not found + Fil ej funnen - The file '%1' cannot be opened. - Filen '%1' kan inte öppnas. + The file '%1' cannot be opened. + Filen '%1' kan inte öppnas. - - + + Gui::SelectModule - Select module - Välj modul + Select module + Välj modul - Open %1 as - Öppna %1 som + Open %1 as + Öppna %1 som - Select - Markera + Select + Markera - - + + Gui::StdCmdDescription - Help - Hjälp + Help + Hjälp - Des&cription - Bes&krivning + Des&cription + Bes&krivning - Long description of commands - LÃ¥ng beskriving av kommandon + Long description of commands + LÃ¥ng beskriving av kommandon - - + + Gui::StdCmdDownloadOnlineHelp - Help - Hjälp + Help + Hjälp - Download online help - Ladda ned online hjälp + Download online help + Ladda ned online hjälp - Download %1's online help - Ladda ned online hjälp för %1 + Download %1's online help + Ladda ned online hjälp för %1 - Non-existing directory - Katalogen existerar inte + Non-existing directory + Katalogen existerar inte - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Katalogen '%1' existerar inte. + Katalogen '%1' existerar inte. Vill du ange en existerande katalog? - Missing permission - Behörighet saknas + Missing permission + Behörighet saknas - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Du har inte behörighet att skriva till '%1' + Du har inte behörighet att skriva till '%1' Vill du ange en annan katalog? - Stop downloading - Stoppa nedladdning + Stop downloading + Stoppa nedladdning - - + + Gui::StdCmdPythonHelp - Tools - Verktyg + Tools + Verktyg - Python Modules - Python moduler + Python Modules + Python moduler - Opens a browser to show the Python modules - Öppnar en webbläsare för att visa Python modulerna + Opens a browser to show the Python modules + Öppnar en webbläsare för att visa Python modulerna - - + + Gui::TaskBoxAngle - Angle - Vinkel + Angle + Vinkel - - + + Gui::TaskBoxPosition - Position - Position + Position + Position - - + + Gui::TaskView::TaskAppearance - Display mode: - Visningsläge: + Display mode: + Visningsläge: - Plot mode: - Plottningsläge: + Plot mode: + Plottningsläge: - Point size: - Punktstorlek: + Point size: + Punktstorlek: - Line width: - Linjebredd: + Line width: + Linjebredd: - Transparency: - Transparens: + Transparency: + Transparens: - Appearance - Utseende + Appearance + Utseende - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Redigera + Edit + Redigera - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Utseende + Appearance + Utseende - ... - ... + ... + ... - edit selection - redigera val + edit selection + redigera val - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + Tryck pÃ¥ vänster musknapp + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - Engelska + English + Engelska - - + + Gui::TreeDockWidget - Tree view - Trädvy + Tree view + Trädvy - - + + Gui::TreeWidget - Create group... - Skapa grupp... + Create group... + Skapa grupp... - Create a group - Skapa en grupp + Create a group + Skapa en grupp - Group - Grupp + Group + Grupp - Rename - Döp om + Rename + Döp om - Rename object - Döp om objekt + Rename object + Döp om objekt - Labels & Attributes - Etiketter & attribut + Labels & Attributes + Etiketter & attribut - Application - Applikation + Application + Applikation - Finish editing - Slutför redigering + Finish editing + Slutför redigering - Finish editing object - Slutför redigering av objekt + Finish editing object + Slutför redigering av objekt - Activate document - Aktivera dokument + Activate document + Aktivera dokument - Activate document %1 - Aktivera dokument %1 + Activate document %1 + Aktivera dokument %1 - - + + Gui::View3DInventor - Export PDF - Exportera PDF + Export PDF + Exportera PDF - PDF file (*.pdf) - PDF fil (*.pdf) + PDF file (*.pdf) + PDF fil (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Välj arbetsbänken '%1' + Select the '%1' workbench + Välj arbetsbänken '%1' - - + + Position - Form - Form + Form + Form - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - Snäpp i rutnät pÃ¥ + Grid Snap in + Snäpp i rutnät pÃ¥ - - + + QDockWidget - Tree view - Trädvy + Tree view + Trädvy - Property view - Egenskapsvy + Property view + Egenskapsvy - Selection view - Markeringsvy + Selection view + Markeringsvy - Report view - Rapportvy + Report view + Rapportvy - Task View - Uppgiftsvy + Task View + Uppgiftsvy - Combo View - Kombinerad vy + Combo View + Kombinerad vy - Toolbox - VerktygslÃ¥da + Toolbox + VerktygslÃ¥da - Python console - Python konsoll + Python console + Python konsoll - Display properties - Fönsteregenskaper + Display properties + Fönsteregenskaper - - + + QObject - General - Allmänt + General + Allmänt - Display - Fönster + Display + Fönster - Unknown filetype - Okänd filtyp + Unknown filetype + Okänd filtyp - Cannot open unknown filetype: %1 - Kan inte öppna okänd filtyp: %1 + Cannot open unknown filetype: %1 + Kan inte öppna okänd filtyp: %1 - Cannot save to unknown filetype: %1 - Kan inte spara till okänd filtyp: %1 + Cannot save to unknown filetype: %1 + Kan inte spara till okänd filtyp: %1 - Workbench failure - Fel pÃ¥ arbetsbänk + Workbench failure + Fel pÃ¥ arbetsbänk - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Kan inte starta Qt assistent (%1) + Unable to launch Qt Assistant (%1) + Kan inte starta Qt assistent (%1) - Exception - Undantag + Exception + Undantag - Open document - Öppna dokument + Open document + Öppna dokument - Import file - importera fil + Import file + importera fil - Export file - Exportera fil + Export file + Exportera fil - Printing... - Skriver ut... + Printing... + Skriver ut... - Cannot load workbench - Kan inte ladda arbetsbänk + Cannot load workbench + Kan inte ladda arbetsbänk - A general error occurred while loading the workbench - Ett allmänt fel uppstod medan arbetsbänken laddades + A general error occurred while loading the workbench + Ett allmänt fel uppstod medan arbetsbänken laddades - File not found - Fil ej funnen + File not found + Fil ej funnen - Cannot open file %1 - Kan inte öppna fil %1 + Cannot open file %1 + Kan inte öppna fil %1 - Save views... - Spara vyer... + Save views... + Spara vyer... - Load views... - Ladda vyer... + Load views... + Ladda vyer... - Freeze view - Frys vy + Freeze view + Frys vy - Clear views - Rensa vyer + Clear views + Rensa vyer - Restore view &%1 - Ã…terställ vy &%1 + Restore view &%1 + Ã…terställ vy &%1 - Save frozen views - Spara frusna vyer + Save frozen views + Spara frusna vyer - Frozen views (*.cam) - Frusna vyer (*.cam) + Frozen views (*.cam) + Frusna vyer (*.cam) - Restore views - Ã…terställ vyer + Restore views + Ã…terställ vyer - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - Att importera de Ã¥terställda vyerna kommer att förstöra de vyer som sparats. + Att importera de Ã¥terställda vyerna kommer att förstöra de vyer som sparats. vill du fortsätta? - Restore frozen views - Ã…terställ frusna vyer + Restore frozen views + Ã…terställ frusna vyer - Cannot open file '%1'. - Kan inte öppna fil '%1'. + Cannot open file '%1'. + Kan inte öppna fil '%1'. - Docked - Dockad + Docked + Dockad - Undocked - Odockad + Undocked + Odockad - Fullscreen - Fullskärm + Fullscreen + Fullskärm - files - Filer + files + Filer - Save picture - Spara bild + Save picture + Spara bild - New sub-group - Ny undergrupp + New sub-group + Ny undergrupp - Enter the name: - Skriv in namnet: + Enter the name: + Skriv in namnet: - New text item - Ny text + New text item + Ny text - Enter your text: - Mata in din text: + Enter your text: + Mata in din text: - New integer item - Nytt heltal + New integer item + Nytt heltal - Enter your number: - Mata in ditt nummer: + Enter your number: + Mata in ditt nummer: - New unsigned item - Nytt osignerat tal + New unsigned item + Nytt osignerat tal - New float item - Nytt flyttal + New float item + Nytt flyttal - New Boolean item - Nytt booleskt värde + New Boolean item + Nytt booleskt värde - Choose an item: - Välj en sak: + Choose an item: + Välj en sak: - Rename group - Döp om grupp + Rename group + Döp om grupp - The group '%1' cannot be renamed. - Gruppen '%1' kan inte döpas om. + The group '%1' cannot be renamed. + Gruppen '%1' kan inte döpas om. - Existing group - Gruppen existerar redan + Existing group + Gruppen existerar redan - The group '%1' already exists. - Gruppen '%1' existerar redan. + The group '%1' already exists. + Gruppen '%1' existerar redan. - Change value - Ändra värde + Change value + Ändra värde - Save document under new filename... - Spara dokumentet med ett nytt filnamn... + Save document under new filename... + Spara dokumentet med ett nytt filnamn... - Saving aborted - Sparning avbruten + Saving aborted + Sparning avbruten - Unsaved document - Osparat dokument + Unsaved document + Osparat dokument - Save document before close? - Spara dokument innan stängning? + Save document before close? + Spara dokument innan stängning? - Save Macro - Spara Makro + Save Macro + Spara Makro - Finish - Gör klart + Finish + Gör klart - Clear - Rensa + Clear + Rensa - Cancel - Avbryt + Cancel + Avbryt - Inner - Inre + Inner + Inre - Outer - Yttre + Outer + Yttre - No Browser - Ingen webbläsare + No Browser + Ingen webbläsare - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Kan inte öppna din webbläsare. + Kan inte öppna din webbläsare. Öppna ett fönster i en webbläsare och skriv in : hppt://localhost:%1. - No Server - Ingen server + No Server + Ingen server - Unable to start the server to port %1: %2. - Kan inte starta server till port %1: %2. + Unable to start the server to port %1: %2. + Kan inte starta server till port %1: %2. - Unable to open your system browser. - Kan inte öppna din systemwebbläsare. + Unable to open your system browser. + Kan inte öppna din systemwebbläsare. - Options... - Alternativ... + Options... + Alternativ... - Out of memory - Slut pÃ¥ minne + Out of memory + Slut pÃ¥ minne - Not enough memory available to display the data. - Det finns inte tillräckligt med minne för att visa datan. + Not enough memory available to display the data. + Det finns inte tillräckligt med minne för att visa datan. - Cannot find file %1 - Kan inte finna fil %1 + Cannot find file %1 + Kan inte finna fil %1 - Cannot find file %1 neither in %2 nor in %3 - Kan inte finna fil %1, varken i %2 eller i %3 + Cannot find file %1 neither in %2 nor in %3 + Kan inte finna fil %1, varken i %2 eller i %3 - Save %1 Document - Spara %1 dokument + Save %1 Document + Spara %1 dokument - %1 document (*.FCStd) - %1 dokument (*.FCStd) + %1 document (*.FCStd) + %1 dokument (*.FCStd) - Save As - Spara som + Save As + Spara som - %1 already exists. + %1 already exists. Do you want to replace it? - %1 finns redan. + %1 finns redan. Vill du ersätta den? - Document not closable - Dokumentet kan ej stängas + Document not closable + Dokumentet kan ej stängas - The document is not closable for the moment. - Dokumentet kan inte stängas för tillfället. + The document is not closable for the moment. + Dokumentet kan inte stängas för tillfället. - No OpenGL - Inga OpenGL + No OpenGL + Inga OpenGL - This system does not support OpenGL - Detta system har inte stöd för OpenGL + This system does not support OpenGL + Detta system har inte stöd för OpenGL - Help - Hjälp + Help + Hjälp - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Det gick inte att ladda dokumentationen. + Det gick inte att ladda dokumentationen. För att läsa in den sÃ¥ krävs Qt 4.4 eller högre. - %1 Help - %1 Hjälp + %1 Help + %1 Hjälp - Exporting PDF... - Exporterar PDF ... + Exporting PDF... + Exporterar PDF ... - Wrong selection - Fel val + Wrong selection + Fel val - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Endast ett objekt markerat. Välj tvÃ¥ objekt. + Endast ett objekt markerat. Välj tvÃ¥ objekt. Tänk pÃ¥ det har betydelse var du klickar. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Välj tvÃ¥ objekt. + Välj tvÃ¥ objekt. Tänk pÃ¥ att det har betydelse var du klickar. - New boolean item - Nytt booleskt objekt + New boolean item + Nytt booleskt objekt - Navigation styles - Navigationsstilar + Navigation styles + Navigationsstilar - %1 navigation - %1 navigering + %1 navigation + %1 navigering - Move annotation - Flytta annotering + Move annotation + Flytta annotering - Transform - Omvandla + Transform + Omvandla - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - Dokumentet är i redigeringsläge och kan därför inte stängas för tillfället. Du mÃ¥ste antingen avsluta eller avbryta redigeringen i uppgiftspanelen. + Dokumentet är i redigeringsläge och kan därför inte stängas för tillfället. Du mÃ¥ste antingen avsluta eller avbryta redigeringen i uppgiftspanelen. - - + + + StdBoxSelection + + Standard-View + Standardvy + + + Box selection + + + + StdCmdAbout - Help - Hjälp + Help + Hjälp - &About %1 - O&m %1 + &About %1 + O&m %1 - About %1 - Om %1 + About %1 + Om %1 - - + + StdCmdAboutQt - Help - Hjälp + Help + Hjälp - About &Qt - Om &Qt + About &Qt + Om &Qt - About Qt - Om Qt + About Qt + Om Qt - - + + StdCmdActivateNextWindow - Window - Fönster + Window + Fönster - Ne&xt - &Nästa + Ne&xt + &Nästa - Activate next window - Aktivera nästa fönster + Activate next window + Aktivera nästa fönster - - + + StdCmdActivatePrevWindow - Window - Fönster + Window + Fönster - Pre&vious - &FöregÃ¥ende + Pre&vious + &FöregÃ¥ende - Activate previous window - Aktivera föregÃ¥ende fönster + Activate previous window + Aktivera föregÃ¥ende fönster - - + + + StdCmdAlignment + + Edit + Redigera + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Fönster + Window + Fönster - Arrange &Icons - Arrangera &Ikoner + Arrange &Icons + Arrangera &Ikoner - Arrange Icons - Arrangera Ikoner + Arrange Icons + Arrangera Ikoner - - + + StdCmdAxisCross - Standard-View - Standardvy + Standard-View + Standardvy - Toggle axis cross - Växla axelkors + Toggle axis cross + Växla axelkors - - + + StdCmdCascadeWindows - Window - Fönster + Window + Fönster - &Cascade - &Överlappande + &Cascade + &Överlappande - Tile pragmatic - Överlappa pragmatiskt + Tile pragmatic + Överlappa pragmatiskt - - + + StdCmdCloseActiveWindow - Window - Fönster + Window + Fönster - Cl&ose - S&täng + Cl&ose + S&täng - Close active window - Stäng aktivt fönster + Close active window + Stäng aktivt fönster - - + + StdCmdCloseAllWindows - Window - Fönster + Window + Fönster - Close Al&l - Stäng a&llt + Close Al&l + Stäng a&llt - Close all windows - Stäng alla fönster + Close all windows + Stäng alla fönster - - + + StdCmdCommandLine - Tools - Verktyg + Tools + Verktyg - Start command &line... - Starta kommando&rad... + Start command &line... + Starta kommando&rad... - Opens the command line in the console - Öppnar kommandoraden i konsollen + Opens the command line in the console + Öppnar kommandoraden i konsollen - - + + StdCmdCopy - Edit - Redigera + Edit + Redigera - C&opy - K&opiera + C&opy + K&opiera - Copy operation - Kopiera operation + Copy operation + Kopiera operation - - + + StdCmdCut - Edit - Redigera + Edit + Redigera - &Cut - &Klipp ut + &Cut + &Klipp ut - Cut out - Klipp ut + Cut out + Klipp ut - - + + StdCmdDDuplicateSelection - Edit - Redigera + Edit + Redigera - Duplicate selection - Dubblerad markering + Duplicate selection + Dubblerad markering - Put duplicates of the selected objects to the active document - Lägg kopior av de markerade objekten till det aktiva dokumentet + Put duplicates of the selected objects to the active document + Lägg kopior av de markerade objekten till det aktiva dokumentet - - + + StdCmdDelete - Edit - Redigera + Edit + Redigera - &Delete - Ra&dera + &Delete + Ra&dera - Deletes the selected objects - Raderar de valda objekten + Deletes the selected objects + Raderar de valda objekten - - + + StdCmdDemoMode - Standard-View - Standardvy + Standard-View + Standardvy - View turntable... - Visa vridbord... + View turntable... + Visa vridbord... - View turntable - Visa vridbord + View turntable + Visa vridbord - - + + StdCmdDlgCustomize - Tools - Verktyg + Tools + Verktyg - Cu&stomize... - Anpa&ssa... + Cu&stomize... + Anpa&ssa... - Customize toolbars and command bars - Anpassa verktygs- och kommandorader + Customize toolbars and command bars + Anpassa verktygs- och kommandorader - - + + StdCmdDlgMacroExecute - Macros ... - Makron... + Macros ... + Makron... - Opens a dialog to let you execute a recorded macro - Öppnar en dialog som lÃ¥ter dig utföra ett inspelat makro + Opens a dialog to let you execute a recorded macro + Öppnar en dialog som lÃ¥ter dig utföra ett inspelat makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgMacroExecuteDirect - Macro - Makro + Macro + Makro - Execute macro - Utför makro + Execute macro + Utför makro - Execute the macro in the editor - Kör makrot i redigeraren + Execute the macro in the editor + Kör makrot i redigeraren - - + + StdCmdDlgMacroRecord - &Macro recording ... - &Makroinspelning... + &Macro recording ... + &Makroinspelning... - Opens a dialog to record a macro - Öppnar en dialog för att spela in ett makro + Opens a dialog to record a macro + Öppnar en dialog för att spela in ett makro - Macro - Makro + Macro + Makro - - + + StdCmdDlgParameter - Tools - Verktyg + Tools + Verktyg - E&dit parameters ... - Re&digera parametrar... + E&dit parameters ... + Re&digera parametrar... - Opens a Dialog to edit the parameters - Öppnar en dialog för att redigera parametrarna + Opens a Dialog to edit the parameters + Öppnar en dialog för att redigera parametrarna - - + + StdCmdDlgPreferences - Tools - Verktyg + Tools + Verktyg - &Preferences ... - Alt&ernativ... + &Preferences ... + Alt&ernativ... - Opens a Dialog to edit the preferences - Öppnar en dialogför att redigera alternativen + Opens a Dialog to edit the preferences + Öppnar en dialogför att redigera alternativen - - + + StdCmdDockViewMenu - View - Vy + View + Vy - Vie&ws - &Vyer + Vie&ws + &Vyer - Toggles this window - Växlar detta fönster + Toggles this window + Växlar detta fönster - - + + StdCmdDrawStyle - Standard-View - Standardvy + Standard-View + Standardvy - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Redigera + + + Duplicate selection + Dubblerad markering + + + Put duplicates of the selected objects to the active document + Lägg kopior av de markerade objekten till det aktiva dokumentet + + + + StdCmdEdit + + Edit + Redigera + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Fil + File + Fil - &Export... - &Exportera... + &Export... + &Exportera... - Export an object in the active document - Exportera ett objekt i det aktiva dokumentet + Export an object in the active document + Exportera ett objekt i det aktiva dokumentet - Supported formats - Stödda format + Supported formats + Stödda format - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + Verktyg + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Fil + File + Fil - &Recompute - Be&räkna om + &Recompute + Be&räkna om - Recompute feature or document - Omberäkna föremÃ¥l eller dokument + Recompute feature or document + Omberäkna föremÃ¥l eller dokument - - + + StdCmdFreeCADWebsite - Help - Hjälp + Help + Hjälp - FreeCAD Website - FreeCAD webbplats + FreeCAD Website + FreeCAD webbplats - The FreeCAD website - FreeCAD's webbplats + The FreeCAD website + FreeCAD's webbplats - - + + StdCmdFreezeViews - Standard-View - Standardvy + Standard-View + Standardvy - Freeze display - Frys skärmen + Freeze display + Frys skärmen - Freezes the current view position - Fryser den nuvarande vypositionen + Freezes the current view position + Fryser den nuvarande vypositionen - - + + StdCmdHideObjects - Standard-View - Standardvy + Standard-View + Standardvy - Hide all objects - Dölj alla objekt + Hide all objects + Dölj alla objekt - Hide all objects in the document - Dölj alla objekt i dokumentet + Hide all objects in the document + Dölj alla objekt i dokumentet - - + + StdCmdHideSelection - Standard-View - Standardvy + Standard-View + Standardvy - Hide selection - Dölj markering + Hide selection + Dölj markering - Hide all selected objects - Dölj alla markerade objekt + Hide all selected objects + Dölj alla markerade objekt - - + + StdCmdImport - File - Fil + File + Fil - &Import... - &Importera... + &Import... + &Importera... - Import a file in the active document - Importera en fil i det aktiva dokumentet + Import a file in the active document + Importera en fil i det aktiva dokumentet - Supported formats - Stödda format + Supported formats + Stödda format - All files (*.*) - Alla filer (*.*) + All files (*.*) + Alla filer (*.*) - - + + StdCmdMacroStartDebug - Macro - Makro + Macro + Makro - Debug macro - Felsök makro + Debug macro + Felsök makro - Start debugging of macro - Starta felsökning av makro + Start debugging of macro + Starta felsökning av makro - - + + StdCmdMacroStepOver - Macro - Makro + Macro + Makro - Step over - Stega förbi + Step over + Stega förbi - - + + StdCmdMacroStopDebug - Macro - Makro + Macro + Makro - Stop debugging - Stoppa felsökning + Stop debugging + Stoppa felsökning - Stop debugging of macro - Stoppa felsökning av makro + Stop debugging of macro + Stoppa felsökning av makro - - + + StdCmdMacroStopRecord - Macro - Makro + Macro + Makro - S&top macro recording - S&toppa makroinspelning + S&top macro recording + S&toppa makroinspelning - Stop the macro recording session - Stoppa makroinspelningssessionen + Stop the macro recording session + Stoppa makroinspelningssessionen - - + + StdCmdMeasureDistance - View - Vy + View + Vy - Measure distance - Mät avstÃ¥nd + Measure distance + Mät avstÃ¥nd - - + + StdCmdMeasurementSimple - Tools - Verktyg + Tools + Verktyg - Mesure distance - Mät avstÃ¥nd + Mesure distance + Mät avstÃ¥nd - Measures distance between two selected objects - Mäter avstÃ¥ndet mellan tvÃ¥ valda objekt + Measures distance between two selected objects + Mäter avstÃ¥ndet mellan tvÃ¥ valda objekt - - + + Measure distance + Mät avstÃ¥nd + + + StdCmdMergeProjects - File - Fil + File + Fil - Merge project... - Sammanfoga projekt ... + Merge project... + Sammanfoga projekt ... - Merge project - Sammanfoga projekt + Merge project + Sammanfoga projekt - %1 document (*.fcstd) - %1 dokument (*.fcstd) + %1 document (*.fcstd) + %1 dokument (*.fcstd) - Cannot merge project with itself. - Kan inte slÃ¥ samman projektet med sig själv. + Cannot merge project with itself. + Kan inte slÃ¥ samman projektet med sig själv. - - + + StdCmdNew - File - Fil + File + Fil - &New - &Ny + &New + &Ny - Create a new empty document - Skapa ett nytt tomt dokument + Create a new empty document + Skapa ett nytt tomt dokument - - + + StdCmdOnlineHelp - Help - Hjälp + Help + Hjälp - Show help to the application - Visa hjälp för applikationen + Show help to the application + Visa hjälp för applikationen - - + + StdCmdOnlineHelpPython - Help - Hjälp + Help + Hjälp - Python Manuals - Python manualer + Python Manuals + Python manualer - Show the Python documentation - Visa Python dokumentationen + Show the Python documentation + Visa Python dokumentationen - - + + StdCmdOnlineHelpWebsite - Help - Hjälp + Help + Hjälp - Help Website - Hjälpwebbplats + Help Website + Hjälpwebbplats - The website where the help is maintained - Den webbplats där hjälp erhÃ¥lls + The website where the help is maintained + Den webbplats där hjälp erhÃ¥lls - - + + StdCmdOpen - File - Fil + File + Fil - &Open... - &Öppna... + &Open... + &Öppna... - Open a document or import files - Öppna ett dokument eller importera filer + Open a document or import files + Öppna ett dokument eller importera filer - Supported formats - Stödda format + Supported formats + Stödda format - All files (*.*) - Alla filer (*.*) + All files (*.*) + Alla filer (*.*) - - + + StdCmdPaste - Edit - Redigera + Edit + Redigera - &Paste - Klistra &in + &Paste + Klistra &in - Paste operation - Klistra in operation + Paste operation + Klistra in operation - - + + StdCmdPlacement - Edit - Redigera + Edit + Redigera - Placement... - Placering... + Placement... + Placering... - Place the selected objects - Placera de markerade objekten + Place the selected objects + Placera de markerade objekten - - + + StdCmdPrint - File - Fil + File + Fil - &Print... - S&kriv ut... + &Print... + S&kriv ut... - Print the document - Skriv ut dokumentet + Print the document + Skriv ut dokumentet - - + + StdCmdPrintPdf - File - Fil + File + Fil - &Export PDF... - Exportera &PDF... + &Export PDF... + Exportera &PDF... - Export the document as PDF - Exportera dokumentet som PDF + Export the document as PDF + Exportera dokumentet som PDF - - + + StdCmdPrintPreview - File - Fil + File + Fil - &Print preview... - &Förhandsgranska ... + &Print preview... + &Förhandsgranska ... - Print the document - Skriv ut dokumentet + Print the document + Skriv ut dokumentet - Print preview - Förhandsgranska + Print preview + Förhandsgranska - - + + StdCmdProjectInfo - File - Fil + File + Fil - Project i&nformation... - Projekti&nformation... + Project i&nformation... + Projekti&nformation... - Show details of the currently active project - Visar detaljer om det aktiva projektet + Show details of the currently active project + Visar detaljer om det aktiva projektet - - + + StdCmdProjectUtil - Tools - Verktyg + Tools + Verktyg - Project utility... - Projekt verktyg... + Project utility... + Projekt verktyg... - Utility to extract or create project files - Verktyg för att extrahera eller skapa projektfiler + Utility to extract or create project files + Verktyg för att extrahera eller skapa projektfiler - - + + StdCmdPythonWebsite - Help - Hjälp + Help + Hjälp - Python Website - Python webbplats + Python Website + Python webbplats - The official Python website - Den officiella Python webbplatsen + The official Python website + Den officiella Python webbplatsen - - + + StdCmdQuit - File - Fil + File + Fil - E&xit - A&vsluta + E&xit + A&vsluta - Quits the application - Avslutar applikationen + Quits the application + Avslutar applikationen - - + + StdCmdRandomColor - File - Fil + File + Fil - Random color - Slumpmässig färg + Random color + Slumpmässig färg - - + + StdCmdRecentFiles - File - Fil + File + Fil - Recent files - Nyligen öppnade filer + Recent files + Nyligen öppnade filer - Recent file list - Lista över nyligen öppnade filer + Recent file list + Lista över nyligen öppnade filer - - + + StdCmdRedo - Edit - Redigera + Edit + Redigera - &Redo - Gö&r om + &Redo + Gö&r om - Redoes a previously undone action - Gör om en tidigare Ã¥ngrad aktion + Redoes a previously undone action + Gör om en tidigare Ã¥ngrad aktion - - + + StdCmdRefresh - Edit - Redigera + Edit + Redigera - &Refresh - &Uppdatera + &Refresh + &Uppdatera - Recomputes the current active document - Beräknar om det aktiva dokumentet + Recomputes the current active document + Beräknar om det aktiva dokumentet - - + + StdCmdSave - File - Fil + File + Fil - &Save - &Spara + &Save + &Spara - Save the active document - Spara det aktiva dokumentet + Save the active document + Spara det aktiva dokumentet - - + + StdCmdSaveAs - File - Fil + File + Fil - Save &As... - Spara s&om... + Save &As... + Spara s&om... - Save the active document under a new file name - Sparar det aktiva dokumentet med ett nytt filnamn + Save the active document under a new file name + Sparar det aktiva dokumentet med ett nytt filnamn - - + + StdCmdSceneInspector - Tools - Verktyg + Tools + Verktyg - Scene inspector... - Sceninspektör... + Scene inspector... + Sceninspektör... - Scene inspector - Sceninspektör + Scene inspector + Sceninspektör - - + + StdCmdSelectAll - Edit - Redigera + Edit + Redigera - Select &All - Markera &allt + Select &All + Markera &allt - Select all - Markera allt + Select all + Markera allt - - + + StdCmdSetAppearance - Standard-View - Standardvy + Standard-View + Standardvy - Appearance... - Utseende... + Appearance... + Utseende... - Sets the display properties of the selected object - Ställer in det markerade objektets visningsegenskaper + Sets the display properties of the selected object + Ställer in det markerade objektets visningsegenskaper - - + + StdCmdShowObjects - Standard-View - Standardvy + Standard-View + Standardvy - Show all objects - Visa alla objekt + Show all objects + Visa alla objekt - Show all objects in the document - Visa alla objekt i dokumentet + Show all objects in the document + Visa alla objekt i dokumentet - - + + StdCmdShowSelection - Standard-View - Standardvy + Standard-View + Standardvy - Show selection - Visa markering + Show selection + Visa markering - Show all selected objects - Visa alla markerade objekt + Show all selected objects + Visa alla markerade objekt - - + + StdCmdStatusBar - View - Vy + View + Vy - Status bar - statusfält + Status bar + statusfält - Toggles the status bar - Växlar statusfältet + Toggles the status bar + Växlar statusfältet - - + + StdCmdTextureMapping - Tools - Verktyg + Tools + Verktyg - Texture mapping... - strukturmappning... + Texture mapping... + strukturmappning... - Texture mapping - strukturmappning + Texture mapping + strukturmappning - - + + StdCmdTileWindows - Window - Fönster + Window + Fönster - &Tile - &Överlappa + &Tile + &Överlappa - Tile the windows - Överlappa fönstren + Tile the windows + Överlappa fönstren - - + + StdCmdToggleBreakpoint - Macro - Makro + Macro + Makro - Toggle breakpoint - Växla brytpunkt + Toggle breakpoint + Växla brytpunkt - - + + StdCmdToggleClipPlane - Standard-View - Standardvy + Standard-View + Standardvy - Clipping plane - Klippningsplan + Clipping plane + Klippningsplan - Toggles clipping plane for active view - Växlar klippningsplan för den aktiva vyn + Toggles clipping plane for active view + Växlar klippningsplan för den aktiva vyn - - + + StdCmdToggleNavigation - Standard-View - Standardvy + Standard-View + Standardvy - Toggle navigation/Edit mode - Växla navigations/redigeringsläge + Toggle navigation/Edit mode + Växla navigations/redigeringsläge - Toggle between navigation and edit mode - Växla mellan navigering och redigeringsläge + Toggle between navigation and edit mode + Växla mellan navigering och redigeringsläge - - + + StdCmdToggleObjects - Standard-View - Standardvy + Standard-View + Standardvy - Toggle all objects - Växla alla objekt + Toggle all objects + Växla alla objekt - Toggles visibility of all objects in the active document - Växlar alla objektens synlighet i det aktiva dokumentet + Toggles visibility of all objects in the active document + Växlar alla objektens synlighet i det aktiva dokumentet - - + + StdCmdToggleSelectability - Standard-View - Standardvy + Standard-View + Standardvy - Toggle selectability - Växla Valbarhet + Toggle selectability + Växla Valbarhet - Toggles the property of the objects to get selected in the 3D-View - Växlar objektens egenskaper för att bli markerade i 3D-vyn + Toggles the property of the objects to get selected in the 3D-View + Växlar objektens egenskaper för att bli markerade i 3D-vyn - - + + StdCmdToggleVisibility - Standard-View - Standardvy + Standard-View + Standardvy - Toggle visibility - Växla synlighet + Toggle visibility + Växla synlighet - Toggles visibility - Växlar synligheten + Toggles visibility + Växlar synligheten - - + + StdCmdToolBarMenu - View - Vy + View + Vy - Tool&bars - &VerktygslÃ¥dor + Tool&bars + &VerktygslÃ¥dor - Toggles this window - Växlar detta fönster + Toggles this window + Växlar detta fönster - - + + StdCmdTransform - Edit - Redigera + Edit + Redigera - Transform... - Omvandla... + Transform... + Omvandla... - Transform the geometry of selected objects - Omvandla geometrin för markerade objekt + Transform the geometry of selected objects + Omvandla geometrin för markerade objekt - - + + StdCmdTreeSelection - View - Vy + View + Vy - Go to selection - GÃ¥ till markering + Go to selection + GÃ¥ till markering - Scroll to first selected item - Rulla till den först valda saken + Scroll to first selected item + Rulla till den först valda saken - - + + StdCmdUndo - Edit - Redigera + Edit + Redigera - &Undo - Ã…n&gra + &Undo + Ã…n&gra - Undo exactly one action - Ã…ngra exakt en aktion + Undo exactly one action + Ã…ngra exakt en aktion - - + + StdCmdUserInterface - View - Vy + View + Vy - Dock views - Docka vyer + Dock views + Docka vyer - Dock all top-level views - Docka alla toppnivÃ¥ vyer + Dock all top-level views + Docka alla toppnivÃ¥ vyer - - + + StdCmdViewAxo - Standard-View - Standardvy + Standard-View + Standardvy - Axometric - Axonometrisk + Axometric + Axonometrisk - Set to axometric view - Ställ in till axonometrisk vy + Set to axometric view + Ställ in till axonometrisk vy - - + + StdCmdViewBottom - Standard-View - Standardvy + Standard-View + Standardvy - Bottom - Botten + Bottom + Botten - Set to bottom view - Ställ in till bottenvy + Set to bottom view + Ställ in till bottenvy - - + + StdCmdViewCreate - Standard-View - Standardvy + Standard-View + Standardvy - Create new view - Skapa ny vy + Create new view + Skapa ny vy - Creates a new view window for the active document - Skapar ett nytt visningsfönster för det aktiva dokumentet + Creates a new view window for the active document + Skapar ett nytt visningsfönster för det aktiva dokumentet - - + + StdCmdViewExample1 - Standard-View - Standardvy + Standard-View + Standardvy - Inventor example #1 - Inventor exempel #1 + Inventor example #1 + Inventor exempel #1 - Shows a 3D texture with manipulator - Visar en 3D struktur med manipulator + Shows a 3D texture with manipulator + Visar en 3D struktur med manipulator - - + + StdCmdViewExample2 - Standard-View - Standardvy + Standard-View + Standardvy - Inventor example #2 - Inventor exempel #2 + Inventor example #2 + Inventor exempel #2 - Shows spheres and drag-lights - Visar sfärer och släpljus + Shows spheres and drag-lights + Visar sfärer och släpljus - - + + StdCmdViewExample3 - Standard-View - Standardvy + Standard-View + Standardvy - Inventor example #3 - Inventor exempel #3 + Inventor example #3 + Inventor exempel #3 - Shows a animated texture - Visar en animerad struktur + Shows a animated texture + Visar en animerad struktur - - + + StdCmdViewFitAll - Standard-View - Standardvy + Standard-View + Standardvy - Fit all - Passa allt + Fit all + Passa allt - Fits the whole content on the screen - Anpassar sÃ¥ allt fÃ¥r plats pÃ¥ skärmen + Fits the whole content on the screen + Anpassar sÃ¥ allt fÃ¥r plats pÃ¥ skärmen - - + + StdCmdViewFitSelection - Standard-View - Standardvy + Standard-View + Standardvy - Fit selection - Passa markering + Fit selection + Passa markering - Fits the selected content on the screen - Anpassar det markerade innehÃ¥llet pÃ¥ skärmen + Fits the selected content on the screen + Anpassar det markerade innehÃ¥llet pÃ¥ skärmen - - + + StdCmdViewFront - Standard-View - Standardvy + Standard-View + Standardvy - Front - Front + Front + Front - Set to front view - Ställ in till frontvy + Set to front view + Ställ in till frontvy - - + + StdCmdViewIvIssueCamPos - Standard-View - Standardvy + Standard-View + Standardvy - Issue camera position - Tilldela kameraposition + Issue camera position + Tilldela kameraposition - Issue the camera position to the console and to a macro, to easily recall this position - Tilldela kamerapositionen till konsolen och till ett makro, för att lätt Ã¥terkalla denna position + Issue the camera position to the console and to a macro, to easily recall this position + Tilldela kamerapositionen till konsolen och till ett makro, för att lätt Ã¥terkalla denna position - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Standardvy + Standard-View + Standardvy - Stereo Interleaved Columns - Stereo interfolierade kolumner + Stereo Interleaved Columns + Stereo interfolierade kolumner - Switch stereo viewing to Interleaved Columns - Växla stereovisning till interfolierade kolumner + Switch stereo viewing to Interleaved Columns + Växla stereovisning till interfolierade kolumner - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Standardvy + Standard-View + Standardvy - Stereo Interleaved Rows - Stereo interfolierade rader + Stereo Interleaved Rows + Stereo interfolierade rader - Switch stereo viewing to Interleaved Rows - Växla stereovisning till interfolierade rader + Switch stereo viewing to Interleaved Rows + Växla stereovisning till interfolierade rader - - + + StdCmdViewIvStereoOff - Standard-View - Standardvy + Standard-View + Standardvy - Stereo Off - Stereo av + Stereo Off + Stereo av - Switch stereo viewing off - Stänger av stereovisning + Switch stereo viewing off + Stänger av stereovisning - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Standardvy + Standard-View + Standardvy - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Växla stereovisning till quad buffer + Switch stereo viewing to quad buffer + Växla stereovisning till quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Standardvy + Standard-View + Standardvy - Stereo red/green - Stereo röd/grön + Stereo red/green + Stereo röd/grön - Switch stereo viewing to red/green - Ändra stereovisning till röd/grön + Switch stereo viewing to red/green + Ändra stereovisning till röd/grön - - + + StdCmdViewLeft - Standard-View - Standardvy + Standard-View + Standardvy - Left - Vänster + Left + Vänster - Set to left view - Ställ in till vänstervy + Set to left view + Ställ in till vänstervy - - + + StdCmdViewRear - Standard-View - Standardvy + Standard-View + Standardvy - Rear - Bak + Rear + Bak - Set to rear view - Ställ in till bakvy + Set to rear view + Ställ in till bakvy - - + + StdCmdViewRight - Standard-View - Standardvy + Standard-View + Standardvy - Right - Höger + Right + Höger - Set to right view - Ställ in till högervy + Set to right view + Ställ in till högervy - - + + + StdCmdViewRotateLeft + + Standard-View + Standardvy + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Standardvy + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Standardvy + Standard-View + Standardvy - Top - Topp + Top + Topp - Set to top view - Ställ in till toppvy + Set to top view + Ställ in till toppvy - - + + StdCmdWhatsThis - Help - Hjälp + Help + Hjälp - &What's This? - &Förklaring? + &What's This? + &Förklaring? - What's This - Förklaring + What's This + Förklaring - - + + StdCmdWindows - Window - Fönster + Window + Fönster - &Windows... - &Fönster... + &Windows... + &Fönster... - Windows list - Fönsterlista + Windows list + Fönsterlista - - + + StdCmdWindowsMenu - Window - Fönster + Window + Fönster - Activates this window - Aktiverar detta fönster + Activates this window + Aktiverar detta fönster - - + + StdCmdWorkbench - View - Vy + View + Vy - Workbench - Arbetsbänk + Workbench + Arbetsbänk - Switch between workbenches - Växla mellan arbetsbänkar + Switch between workbenches + Växla mellan arbetsbänkar - - + + StdOrthographicCamera - Standard-View - Standardvy + Standard-View + Standardvy - Orthographic view - Ortografisk vy + Orthographic view + Ortografisk vy - Switches to orthographic view mode - Växlar till ortografiskt visningsläge + Switches to orthographic view mode + Växlar till ortografiskt visningsläge - - + + StdPerspectiveCamera - Standard-View - Standardvy + Standard-View + Standardvy - Perspective view - Perspektiv vy + Perspective view + Perspektiv vy - Switches to perspective view mode - Växlar till perspektivt visningsläge + Switches to perspective view mode + Växlar till perspektivt visningsläge - - + + StdViewBoxZoom - Standard-View - Standardvy + Standard-View + Standardvy - Box zoom - LÃ¥d zoom + Box zoom + LÃ¥d zoom - - + + StdViewDockUndockFullscreen - Standard-View - Standardvy + Standard-View + Standardvy - Document window - Dokumentfönstret + Document window + Dokumentfönstret - Display the active view either in fullscreen, in undocked or docked mode - Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge + Display the active view either in fullscreen, in undocked or docked mode + Visa den aktiva vyn i fullskärm, i odockat eller i dockat läge - - + + StdViewScreenShot - Standard-View - Standardvy + Standard-View + Standardvy - Save picture... - Spara bild... + Save picture... + Spara bild... - Creates a screenshot of the active view - Ta en skärmbild pÃ¥ den aktiva vyn + Creates a screenshot of the active view + Ta en skärmbild pÃ¥ den aktiva vyn - - + + StdViewZoomIn - Standard-View - Standardvy + Standard-View + Standardvy - Zoom In - Zooma in + Zoom In + Zooma in - - + + StdViewZoomOut - Standard-View - Standardvy + Standard-View + Standardvy - Zoom Out - Zooma ut + Zoom Out + Zooma ut - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Arkiv + &File + &Arkiv - &Edit - R&edigera + &Edit + R&edigera - Standard views - Standardvyer + Standard views + Standardvyer - &Stereo - &Stereo + &Stereo + &Stereo - &Zoom - &Zoom + &Zoom + &Zoom - Visibility - Synlighet + Visibility + Synlighet - &View - &Visa + &View + &Visa - &Tools - &Verktyg + &Tools + &Verktyg - &Macro - &Makro + &Macro + &Makro - &Windows - &Fönster + &Windows + &Fönster - &On-line help - &Online hjälp + &On-line help + &Online hjälp - &Help - &Hjälp + &Help + &Hjälp - File - Fil + File + Fil - Macro - Makro + Macro + Makro - View - Vy + View + Vy - Special Ops - Special operationer + Special Ops + Special operationer - - + + testClass - test - Test + test + Test - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Skapad för Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Skapad för Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Välj stil pÃ¥ uppgiftspanelen + Choose the style of the Task Panel + Välj stil pÃ¥ uppgiftspanelen - Default - Standard + Default + Standard - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_uk.ts b/src/Gui/Language/FreeCAD_uk.ts index 5e0b27cb6..e41f2b5b8 100644 --- a/src/Gui/Language/FreeCAD_uk.ts +++ b/src/Gui/Language/FreeCAD_uk.ts @@ -1,5496 +1,5914 @@ - - + + Angle - Form - Форма + Form + Форма - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - Кут + Angle Snap + Кут - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - немає + none + немає - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + Додати + + + Remove + Видалити + + + Move up + ПереміÑтити вгору + + + Move down + ПереміÑтити вниз + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - ÐатиÑнути ліву кнопку миші + Press left mouse button + ÐатиÑнути ліву кнопку миші - Press SHIFT and middle mouse button - Press SHIFT and middle mouse button + Press SHIFT and middle mouse button + Press SHIFT and middle mouse button - Press middle mouse button - ÐатиÑнути Ñередню кнопку миші + Press middle mouse button + ÐатиÑнути Ñередню кнопку миші - Scroll middle mouse button - ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші + Scroll middle mouse button + ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші - - + + Gui::CADNavigationStyle - Press left mouse button - ÐатиÑнути ліву кнопку миші + Press left mouse button + ÐатиÑнути ліву кнопку миші - Press middle mouse button - ÐатиÑнути Ñередню кнопку миші + Press middle mouse button + ÐатиÑнути Ñередню кнопку миші - Press left and middle mouse button - ÐатиÑнути ліву Ñ– Ñередню кнопку миші + Press left and middle mouse button + ÐатиÑнути ліву Ñ– Ñередню кнопку миші - Scroll middle mouse button - ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші + Scroll middle mouse button + ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші - - + + Gui::Command - Standard - Стандартно + Standard + Стандартно - - + + Gui::ContainerDialog - &OK - &Гаразд + &OK + &Гаразд - &Cancel - &Відміна + &Cancel + &Відміна - - + + Gui::ControlSingleton - Task panel - Панель завдань + Task panel + Панель завдань - - + + Gui::Dialog::AboutApplication - About - Про + About + Про - Revision number - Ðомер редакції + Revision number + Ðомер редакції - Version - ВерÑÑ–Ñ + Version + ВерÑÑ–Ñ - OK - Гаразд + OK + Гаразд - - Про програму + + Про програму - Release date - Дата випуÑку + Release date + Дата випуÑку - Platform - Platform + Platform + Platform - License... - License... + License... + License... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - Button %1 + Button %1 + Button %1 - Out Of Range - Out Of Range + Out Of Range + Out Of Range - - + + Gui::Dialog::CommandModel - Commands - Команди + Commands + Команди - - + + Gui::Dialog::DemoMode - View Turntable - Показати програвач + View Turntable + Показати програвач - Speed - ШвидкіÑть + Speed + ШвидкіÑть - Maximum - МакÑимум + Maximum + МакÑимум - Minimum - Мінімум + Minimum + Мінімум - Fullscreen - Ðа веÑÑŒ екран + Fullscreen + Ðа веÑÑŒ екран - Enable timer - Увімкнути таймер + Enable timer + Увімкнути таймер - s - s + s + s - Angle - Кут + Angle + Кут + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + Грати - -90° - -90° + Stop + Стоп - Play - Грати + Close + Закрити - - Stop - Стоп - - - Close - Закрити - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - Виберіть вікно + Choose Window + Виберіть вікно - &Activate - &Ðктивувати + &Activate + &Ðктивувати - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Відміна + &Cancel + &Відміна - - Про програму + + Про програму - - + + Gui::Dialog::DlgActivateWindowImp - Windows - Вікна + Windows + Вікна - - + + Gui::Dialog::DlgAuthorization - Authorization - ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ + Authorization + ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ - &OK - &Гаразд + &OK + &Гаразд - &Cancel - &Відміна + &Cancel + &Відміна - Password: - Пароль: + Password: + Пароль: - User name: - Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: + User name: + Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: - - Про програму + + Про програму - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - Оберіть значок + Choose Icon + Оберіть значок - OK - Гаразд + OK + Гаразд - Cancel - СкаÑувати + Cancel + СкаÑувати - Add icons... - Add icons... + Add icons... + Add icons... - - + + Gui::Dialog::DlgCustomActions - Macros - МакроÑи + Macros + МакроÑи - Setup Custom Macros - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñних макроÑів + Setup Custom Macros + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñних макроÑів - Macro: - МакроÑ: + Macro: + МакроÑ: - ... - ... + ... + ... - Pixmap - Малюнок + Pixmap + Малюнок - Accelerator: - ПриÑкорювач: + Accelerator: + ПриÑкорювач: - What's this: - Що це: + What's this: + Що це: - Status text: - Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐºÑту: + Status text: + Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐºÑту: - Tool tip: - Підказка: + Tool tip: + Підказка: - Menu text: - ТекÑÑ‚ меню: + Menu text: + ТекÑÑ‚ меню: - Add - Додати + Add + Додати - Remove - Видалити + Remove + Видалити - Replace - Замінити + Replace + Замінити - - + + Gui::Dialog::DlgCustomActionsImp - Icons - Значки + Icons + Значки - Macros - МакроÑи + Macros + МакроÑи - No macro - ÐœÐ°ÐºÑ€Ð¾Ñ Ð²Ñ–Ð´Ñутній + No macro + ÐœÐ°ÐºÑ€Ð¾Ñ Ð²Ñ–Ð´Ñутній - No macros found. - МакроÑів не знайдено. + No macros found. + МакроÑів не знайдено. - Macro not found - ÐœÐ°ÐºÑ€Ð¾Ñ Ð½Ðµ знайдено + Macro not found + ÐœÐ°ÐºÑ€Ð¾Ñ Ð½Ðµ знайдено - Sorry, couldn't find macro file '%1'. - Ðа жаль, не вдалоÑÑŒ знайти файл "%1" макроÑу. + Sorry, couldn't find macro file '%1'. + Ðа жаль, не вдалоÑÑŒ знайти файл "%1" макроÑу. - Empty macro - Порожній Ð¼Ð°ÐºÑ€Ð¾Ñ + Empty macro + Порожній Ð¼Ð°ÐºÑ€Ð¾Ñ - Please specify the macro first. - Спочатку вкажіть макроÑ. + Please specify the macro first. + Спочатку вкажіть макроÑ. - Empty text - ПуÑтий текÑÑ‚ + Empty text + ПуÑтий текÑÑ‚ - Please specify the menu text first. - Спочатку вкажіть текÑÑ‚ меню. + Please specify the menu text first. + Спочатку вкажіть текÑÑ‚ меню. - No item selected - Ðічого не вибрано + No item selected + Ðічого не вибрано - Please select a macro item first. - Спочатку виберіть макроÑ. + Please select a macro item first. + Спочатку виберіть макроÑ. - - + + Gui::Dialog::DlgCustomCommands - Commands - Команди + Commands + Команди - - Про програму + + Про програму - - + + Gui::Dialog::DlgCustomCommandsImp - Category - ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ + Category + ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ñ–Ñ - Icon - Піктограма + Icon + Піктограма - Command - Команда + Command + Команда - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - Клавіатура + Keyboard + Клавіатура - Description: - ОпиÑ: + Description: + ОпиÑ: - &Category: - &КатегоріÑ: + &Category: + &КатегоріÑ: - C&ommands: - К&оманди: + C&ommands: + К&оманди: - Current shortcut: - Поточні клавіатурні ÑкороченнÑ: + Current shortcut: + Поточні клавіатурні ÑкороченнÑ: - Press &new shortcut: - ÐатиÑніть нове ÑкороченнÑ: + Press &new shortcut: + ÐатиÑніть нове ÑкороченнÑ: - Currently assigned to: - Зараз призначено длÑ: + Currently assigned to: + Зараз призначено длÑ: - &Assign - &Призначити + &Assign + &Призначити - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - &Скинути + &Reset + &Скинути - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - Скинути вÑе + Re&set All + Скинути вÑе - Alt+S - Alt+S + Alt+S + Alt+S - - Про програму + + Про програму - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - Піктограма + Icon + Піктограма - Command - Команда + Command + Команда - none - немає + none + немає - Multiple defined shortcut - Визначені декілька Ñкорочень + Multiple defined shortcut + Визначені декілька Ñкорочень - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ '%1' призначене більш Ñк одній дії. Це може призвеÑти до непередбачуваних результатів. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ '%1' призначене більш Ñк одній дії. Це може призвеÑти до непередбачуваних результатів. - Already defined shortcut - Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ призначено + Already defined shortcut + Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ призначено - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ '%1' вже призначено Ð´Ð»Ñ '%2'. + Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ '%1' вже призначено Ð´Ð»Ñ '%2'. Будь лаÑка оберіть інше ÑполученнÑ. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - Панель інÑтрументів + Toolbox bars + Панель інÑтрументів - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - Панелі інÑтрументів + Toolbars + Панелі інÑтрументів - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Замітка:</span> Зміни вÑтуплÑть в дію при наÑтупному завантаженні відповідних інÑтрументальних заÑобів</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Замітка:</span> Зміни вÑтуплÑть в дію при наÑтупному завантаженні відповідних інÑтрументальних заÑобів</p></body></html> - Move right - ПереміÑтити праворуч + Move right + ПереміÑтити праворуч - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вниз.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вниз.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> - Move left - ПереміÑтити ліворуч + Move left + ПереміÑтити ліворуч - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вгору.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вгору.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> - Move down - ПереміÑтити вниз + Move down + ПереміÑтити вниз - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>ПереміÑтити обраний елемент вниз.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>ПереміÑтити обраний елемент вниз.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> - Move up - ПереміÑтити вгору + Move up + ПереміÑтити вгору - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>ПереміÑтити обраний елемент вгору.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>ПереміÑтити обраний елемент вгору.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> - New... - Ðовий... + New... + Ðовий... - Rename... - Перейменувати... + Rename... + Перейменувати... - Delete - Видалити + Delete + Видалити - Icon - Піктограма + Icon + Піктограма - Command - Команда + Command + Команда - <Separator> - <Розділювач> + <Separator> + <Розділювач> - New toolbar - Ðова панель інÑтрументів + New toolbar + Ðова панель інÑтрументів - Toolbar name: - Ðазва панелі: + Toolbar name: + Ðазва панелі: - Duplicated name - ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ + Duplicated name + ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ - The toolbar name '%1' is already used - Ðазва '%1' Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів уже викориÑтовуєтьÑÑ + The toolbar name '%1' is already used + Ðазва '%1' Ð´Ð»Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів уже викориÑтовуєтьÑÑ - Rename toolbar - Перейменувати панель + Rename toolbar + Перейменувати панель - - Про програму + + Про програму - - + + Gui::Dialog::DlgCustomizeImp - Customize - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Customize + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ - &Help - &Довідка + &Help + &Довідка - &Close - &Закрити + &Close + &Закрити - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - Spaceball + Spaceball + Spaceball - No Spaceball Present - No Spaceball Present + No Spaceball Present + No Spaceball Present - Buttons - Buttons + Buttons + Buttons - Clear - ОчиÑтити + Clear + ОчиÑтити - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - Показати влаÑтивоÑті + Display properties + Показати влаÑтивоÑті - Display - Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Display + Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Transparency: - ПрозоріÑть: + Transparency: + ПрозоріÑть: - Line width: - Ширина лінії: + Line width: + Ширина лінії: - Point size: - Розмір пункту: + Point size: + Розмір пункту: - Material - Матеріал + Material + Матеріал - ... - ... + ... + ... - Close - Закрити + Close + Закрити - Viewing mode - Режим переглÑду + Viewing mode + Режим переглÑду - Display mode: - Режим показу: + Display mode: + Режим показу: - Plot mode: - Plot mode: + Plot mode: + Plot mode: - - Про програму + + Про програму - Line transparency: - ПрозоріÑть лінії: + Line transparency: + ПрозоріÑть лінії: - Line color: - Колір лінії: + Line color: + Колір лінії: - Shape color: - Колір форми: + Shape color: + Колір форми: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - Редактор + Editor + Редактор - Options - Параметри + Options + Параметри - Enable line numbers - Показувати нумерацію Ñ€Ñдків + Enable line numbers + Показувати нумерацію Ñ€Ñдків - Enable folding - Увімкнути ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ + Enable folding + Увімкнути ÑÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ - Indentation - ВідÑтуп + Indentation + ВідÑтуп - Insert spaces - Ð’ÑтавлÑти пробіли + Insert spaces + Ð’ÑтавлÑти пробіли - Tab size: - Розмір табулÑції: + Tab size: + Розмір табулÑції: - Indent size: - Розмір відÑтупу: + Indent size: + Розмір відÑтупу: - Keep tabs - Зберегти вкладки + Keep tabs + Зберегти вкладки - Display Items - Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² + Display Items + Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² - Family: - СімейÑтво: + Family: + СімейÑтво: - Size: - Розмір: + Size: + Розмір: - Preview: - Попередній переглÑд: + Preview: + Попередній переглÑд: - - Про програму + + Про програму - - + + Gui::Dialog::DlgGeneral - General - Загальне + General + Загальне - Start up - ЗапуÑк + Start up + ЗапуÑк - Enable splash screen at start up - Увімкнути заÑтавку при запуÑку + Enable splash screen at start up + Увімкнути заÑтавку при запуÑку - Switch to tab of report window: - Перейти на вкладку вікна звіту: + Switch to tab of report window: + Перейти на вкладку вікна звіту: - Auto load module after start up: - Ðвтоматичне Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ñ–ÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку: + Auto load module after start up: + Ðвтоматичне Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð¿Ñ–ÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку: - Language - Мова + Language + Мова - Change language: - Змінити мову: + Change language: + Змінити мову: - Main window - Головне вікно + Main window + Головне вікно - Size of recent file list - Розмір ÑпиÑку оÑтанніх файлів + Size of recent file list + Розмір ÑпиÑку оÑтанніх файлів - Window style: - Стиль вікна: + Window style: + Стиль вікна: - Size of toolbar icons: - Size of toolbar icons: + Size of toolbar icons: + Size of toolbar icons: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - Default (%1 x %1) + Default (%1 x %1) + Default (%1 x %1) - Small (%1 x %1) - Small (%1 x %1) + Small (%1 x %1) + Small (%1 x %1) - Large (%1 x %1) - Large (%1 x %1) + Large (%1 x %1) + Large (%1 x %1) - Extra large (%1 x %1) - Extra large (%1 x %1) + Extra large (%1 x %1) + Extra large (%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - Ввід + Input + Ввід - OK - Гаразд + OK + Гаразд - Cancel - СкаÑувати + Cancel + СкаÑувати - - Про програму + + Про програму - - + + Gui::Dialog::DlgInspector - Scene Inspector - ІнÑпектор Ñцени + Scene Inspector + ІнÑпектор Ñцени - - + + Gui::Dialog::DlgMacroExecute - Execute macro - Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ + Execute macro + Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ - Macro name: - Ðазва макроÑу: + Macro name: + Ðазва макроÑу: - Macro destination: - ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу: + Macro destination: + ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу: - Execute - Виконати + Execute + Виконати - Close - Закрити + Close + Закрити - Create - Створити + Create + Створити - Delete - Видалити + Delete + Видалити - Edit - Редагувати + Edit + Редагувати - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - МакроÑи + Macros + МакроÑи - Macro file - Файл макроÑу + Macro file + Файл макроÑу - Enter a file name, please: - Будь лаÑка, введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ: + Enter a file name, please: + Будь лаÑка, введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ: - Existing file - ІÑнуючий файл + Existing file + ІÑнуючий файл - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. Цей файл вже Ñ–Ñнує. - Delete macro - Видалити Ð¼Ð°ÐºÑ€Ð¾Ñ + Delete macro + Видалити Ð¼Ð°ÐºÑ€Ð¾Ñ - Do you really want to delete the macro '%1'? - Ви дійÑно бажаєте видалити Ð¼Ð°ÐºÑ€Ð¾Ñ "%1"? + Do you really want to delete the macro '%1'? + Ви дійÑно бажаєте видалити Ð¼Ð°ÐºÑ€Ð¾Ñ "%1"? - Cannot create file - Ðе вдаєтьÑÑ Ñтворити файл + Cannot create file + Ðе вдаєтьÑÑ Ñтворити файл - Creation of file '%1' failed. - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ '%1' не вдалоÑÑ. + Creation of file '%1' failed. + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ '%1' не вдалоÑÑ. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу + Macro recording + Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу - Macro name: - Ðазва макроÑу: + Macro name: + Ðазва макроÑу: - Stop - Стоп + Stop + Стоп - Cancel - СкаÑувати + Cancel + СкаÑувати - Macro path: - ШлÑÑ… до макроÑу: + Macro path: + ШлÑÑ… до макроÑу: - ... - ... + ... + ... - Record - Ð—Ð°Ð¿Ð¸Ñ + Record + Ð—Ð°Ð¿Ð¸Ñ - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - ЗаÑіб запиÑу макроÑу + Macro recorder + ЗаÑіб запиÑу макроÑу - Specify first a place to save. - Спочатку вкажіть міÑце Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ. + Specify first a place to save. + Спочатку вкажіть міÑце Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ. - Existing macro - ÐаÑвні макроÑи + Existing macro + ÐаÑвні макроÑи - The macro '%1' already exists. Do you want to overwrite? - ÐœÐ°ÐºÑ€Ð¾Ñ "%1" уже Ñ–Ñнує. Бажаєте замінити? + The macro '%1' already exists. Do you want to overwrite? + ÐœÐ°ÐºÑ€Ð¾Ñ "%1" уже Ñ–Ñнує. Бажаєте замінити? - The macro directory doesn't exist. Please, choose another one. - Каталог макроÑів не Ñ–Ñнує. Будь лаÑка, оберіть інший. + The macro directory doesn't exist. Please, choose another one. + Каталог макроÑів не Ñ–Ñнує. Будь лаÑка, оберіть інший. - Choose macro directory - Вибрати каталог макроÑів + Choose macro directory + Вибрати каталог макроÑів - - + + Gui::Dialog::DlgMaterialProperties - Material properties - ВлаÑтивоÑті матеріалу + Material properties + ВлаÑтивоÑті матеріалу - &Close - &Закрити + &Close + &Закрити - Alt+C - Alt+C + Alt+C + Alt+C - Material - Матеріал + Material + Матеріал - Diffuse color: - Колір дифузії: + Diffuse color: + Колір дифузії: - Specular color: - Колір відбиттÑ: + Specular color: + Колір відбиттÑ: - Shininess: - ЯÑкравіÑть: + Shininess: + ЯÑкравіÑть: - % - % + % + % - Ambient color: - Колір оточеннÑ: + Ambient color: + Колір оточеннÑ: - - Про програму + + Про програму - Emissive color: - Колір еміÑÑ–Ñ—: + Emissive color: + Колір еміÑÑ–Ñ—: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - Он-лайн допомога + On-line help + Он-лайн допомога - Help viewer - ПереглÑд допомоги + Help viewer + ПереглÑд допомоги - Location of start page - Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ñторінки + Location of start page + Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— Ñторінки - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML файли (*.html *.htm) + HTML files (*.html *.htm) + HTML файли (*.html *.htm) - Access denied - ДоÑтуп заборонено + Access denied + ДоÑтуп заборонено - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - Відмовлено в доÑтупі до '%1' + Відмовлено в доÑтупі до '%1' Вкажіть інший каталог, будь лаÑка. - - + + Gui::Dialog::DlgParameter - Parameter Editor - Параметри редактора + Parameter Editor + Параметри редактора - Save to disk - Зберегти на диÑк + Save to disk + Зберегти на диÑк - Alt+C - Alt+C + Alt+C + Alt+C - &Close - &Закрити + &Close + &Закрити - - + + Gui::Dialog::DlgParameterImp - Group - Група + Group + Група - Name - Ðазва + Name + Ðазва - Type - Тип + Type + Тип - Value - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Value + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - User parameter - Параметри кориÑтувача + User parameter + Параметри кориÑтувача - Invalid input - Ðекоректний ввід + Invalid input + Ðекоректний ввід - Invalid key name '%1' - Ðевірне ім'Ñ ÐºÐ»ÑŽÑ‡Ð° '%1' + Invalid key name '%1' + Ðевірне ім'Ñ ÐºÐ»ÑŽÑ‡Ð° '%1' - System parameter - СиÑтемні параметри + System parameter + СиÑтемні параметри - - + + Gui::Dialog::DlgPreferences - Preferences - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Preferences + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ - &Help - &Довідка + &Help + &Довідка - Alt+H - Alt+H + Alt+H + Alt+H - &OK - &Гаразд + &OK + &Гаразд - &Apply - ЗаÑтоÑувати + &Apply + ЗаÑтоÑувати - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - &Відміна + &Cancel + &Відміна - - Про програму + + Про програму - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - Ðеправильний параметр + Wrong parameter + Ðеправильний параметр - - + + Gui::Dialog::DlgProjectInformation - Project information - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ проект + Project information + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ проект - Information - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ + Information + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ - &Name: - Ðазва: + &Name: + Ðазва: - Commen&t: - Коментар: + Commen&t: + Коментар: - Path: - ШлÑÑ…: + Path: + ШлÑÑ…: - &Last modified by: - І оÑтанні зміни внеÑені: + &Last modified by: + І оÑтанні зміни внеÑені: - Created &by: - Створено: + Created &by: + Створено: - Com&pany: - КомпаніÑ: + Com&pany: + КомпаніÑ: - Last &modification date: - Дата оÑтанньої зміни: + Last &modification date: + Дата оÑтанньої зміни: - Creation &date: - Дата ÑтвореннÑ: + Creation &date: + Дата ÑтвореннÑ: - &OK - &Гаразд + &OK + &Гаразд - &Cancel - &Відміна + &Cancel + &Відміна - - Про програму + + Про програму - - + + Gui::Dialog::DlgProjectUtility - Project utility - Project utility + Project utility + Project utility - Extract project - Extract project + Extract project + Extract project - Source - Source + Source + Source - Project file (*.fcstd) - Project file (*.fcstd) + Project file (*.fcstd) + Project file (*.fcstd) - Destination - Destination + Destination + Destination - Extract - Extract + Extract + Extract - Create project - Create project + Create project + Create project - Document.xml - Document.xml + Document.xml + Document.xml - Create - Створити + Create + Створити - Load project file after creation - Load project file after creation + Load project file after creation + Load project file after creation - Empty source - Empty source + Empty source + Empty source - No source is defined. - No source is defined. + No source is defined. + No source is defined. - Empty destination - Empty destination + Empty destination + Empty destination - No destination is defined. - No destination is defined. + No destination is defined. + No destination is defined. - - + + Gui::Dialog::DlgReportView - Output window - Вікно виводу + Output window + Вікно виводу - Output - Вивід + Output + Вивід - Record log messages - Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ журналу (log) + Record log messages + Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ журналу (log) - Record warnings - Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ + Record warnings + Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ - Record error messages - Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ про помилки + Record error messages + Ð—Ð°Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ про помилки - Colors - Кольори + Colors + Кольори - Normal messages: - Звичайні повідомленнÑ: + Normal messages: + Звичайні повідомленнÑ: - Log messages: - ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ: + Log messages: + ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ: - Warnings: - ПопередженнÑ: + Warnings: + ПопередженнÑ: - Errors: - Помилки: + Errors: + Помилки: - - Про програму + + Про програму - Redirect internal Python errors to report view - Redirect internal Python errors to report view + Redirect internal Python errors to report view + Redirect internal Python errors to report view - Redirect internal Python output to report view - Redirect internal Python output to report view + Redirect internal Python output to report view + Redirect internal Python output to report view - - + + Gui::Dialog::DlgRunExternal - Running external program - ЗапуÑк зовнішньої програми + Running external program + ЗапуÑк зовнішньої програми - TextLabel - ТекÑтовийÐÐ°Ð´Ð¿Ð¸Ñ + TextLabel + ТекÑтовийÐÐ°Ð´Ð¿Ð¸Ñ - Advanced >> - Додатково >> + Advanced >> + Додатково >> - ... - ... + ... + ... - Accept changes - ПрийнÑти зміни + Accept changes + ПрийнÑти зміни - Discard changes - СкаÑувати зміни + Discard changes + СкаÑувати зміни - Abort program - Перервати програму + Abort program + Перервати програму - Help - Довідка + Help + Довідка - Select a file - Виберіть файл + Select a file + Виберіть файл - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D виглÑд + 3D View + 3D виглÑд - 3D View settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ 3D виглÑду + 3D View settings + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ 3D виглÑду - Show coordinate system in the corner - Показувати ÑиÑтему координат в кутку + Show coordinate system in the corner + Показувати ÑиÑтему координат в кутку - Show counter of frames per second - Показувати кількіÑть кадрів в Ñекунду + Show counter of frames per second + Показувати кількіÑть кадрів в Ñекунду - Enable animation - Увімкнути анімацію + Enable animation + Увімкнути анімацію - Enable anti-aliasing (slower) - Включити Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ (ÑÐ¿Ð¾Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸) + Enable anti-aliasing (slower) + Включити Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ (ÑÐ¿Ð¾Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸) - Eye to eye distance for stereo modes: - ВідÑтань між точками оглÑду: + Eye to eye distance for stereo modes: + ВідÑтань між точками оглÑду: - Camera type - Тип камери + Camera type + Тип камери - Orthographic rendering - Ортогональна Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ + Orthographic rendering + Ортогональна Ð²Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ - Perspective rendering - Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð² перÑпективі + Perspective rendering + Ð’Ñ–Ð·ÑƒÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð² перÑпективі - - Про програму + + Про програму - 3D Navigation - 3D ÐÐ°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ + 3D Navigation + 3D ÐÐ°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ - Mouse... - Мишка... + Mouse... + Мишка... - Intensity of backlight - ІнтенÑивніÑть підÑвітки + Intensity of backlight + ІнтенÑивніÑть підÑвітки - Enable backlight color - Увімкнути колір підÑвітки + Enable backlight color + Увімкнути колір підÑвітки - Orbit style - Orbit style + Orbit style + Orbit style - Turntable - Turntable + Turntable + Turntable - Trackball - Trackball + Trackball + Trackball - Invert zoom - Invert zoom + Invert zoom + Invert zoom - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ + %1 navigation + %1 Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - Колірна модель + Color model + Колірна модель - &Gradient: - &Градієнт: + &Gradient: + &Градієнт: - red-yellow-green-cyan-blue - червоний-жовтий-зелений-блакитний-Ñиній + red-yellow-green-cyan-blue + червоний-жовтий-зелений-блакитний-Ñиній - blue-cyan-green-yellow-red - Ñиній-блакитний-зелений-жовтий-червоний + blue-cyan-green-yellow-red + Ñиній-блакитний-зелений-жовтий-червоний - white-black - білий-чорний + white-black + білий-чорний - black-white - чорний-білий + black-white + чорний-білий - Visibility - ВидиміÑть + Visibility + ВидиміÑть - Out g&rayed - З Ñірого + Out g&rayed + З Ñірого - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - З прозорого + Out &invisible + З прозорого - Alt+I - Alt+I + Alt+I + Alt+I - Style - Стиль + Style + Стиль - &Zero - &Ðуль + &Zero + &Ðуль - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - &Потік + &Flow + &Потік - Alt+F - Alt+F + Alt+F + Alt+F - &OK - &Гаразд + &OK + &Гаразд - &Cancel - &Відміна + &Cancel + &Відміна - Parameter range - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ + Parameter range + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ñ–Ð°Ð¿Ð°Ð·Ð¾Ð½Ñƒ - Mi&nimum: - Мінімум: + Mi&nimum: + Мінімум: - Ma&ximum: - МакÑимум: + Ma&ximum: + МакÑимум: - &Labels: - &Позначки: + &Labels: + &Позначки: - &Decimals: - &ДеÑÑткові: + &Decimals: + &ДеÑÑткові: - - Про програму + + Про програму - Color-gradient settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ градієнта + Color-gradient settings + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ градієнта - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - Ðеправильний параметр + Wrong parameter + Ðеправильний параметр - The maximum value must be higher than the minimum value. - МакÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути вище, ніж мінімальне значеннÑ. + The maximum value must be higher than the minimum value. + МакÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути вище, ніж мінімальне значеннÑ. - - + + Gui::Dialog::DlgSettingsDocument - Document - Документ + Document + Документ - General - Загальне + General + Загальне - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - Рівень ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ + Рівень ÑтиÑÐ½ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ (0 = немає, 9 = виÑокий, 3 = за замовчуваннÑм) - Create new document at start up - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ документа при запуÑку + Create new document at start up + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ документа при запуÑку - Storage - Сховище + Storage + Сховище - Saving transactions (Auto-save) - Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ (ÐвтозбереженнÑ) + Saving transactions (Auto-save) + Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹ (ÐвтозбереженнÑ) - Discard saved transaction after saving document - Очищати збережені операції піÑÐ»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° + Discard saved transaction after saving document + Очищати збережені операції піÑÐ»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° - Save thumbnail into project file when saving document - Зберегти мініатюру у файл проекту при збереженні документа + Save thumbnail into project file when saving document + Зберегти мініатюру у файл проекту при збереженні документа - Create up to backup files when resaving document - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— копії файлів під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ + Create up to backup files when resaving document + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— копії файлів під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñƒ - Document objects - Об'єкти документу + Document objects + Об'єкти документу - Allow duplicate object labels in one document - Дозволити Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñів Ð´Ð»Ñ Ð¾Ð±'єктів в одному документі + Allow duplicate object labels in one document + Дозволити Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñів Ð´Ð»Ñ Ð¾Ð±'єктів в одному документі - Maximum Undo/Redo steps - Maximum Undo/Redo steps + Maximum Undo/Redo steps + Maximum Undo/Redo steps - Using Undo/Redo on documents - Using Undo/Redo on documents + Using Undo/Redo on documents + Using Undo/Redo on documents - - + + Gui::Dialog::DlgSettingsEditorImp - Text - ТекÑÑ‚ + Text + ТекÑÑ‚ - Bookmark - Закладка + Bookmark + Закладка - Breakpoint - Точка зупинки + Breakpoint + Точка зупинки - Keyword - Ключове Ñлово + Keyword + Ключове Ñлово - Comment - Коментар + Comment + Коментар - Block comment - Блок ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ + Block comment + Блок ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ - Number - ЧиÑло + Number + ЧиÑло - String - РÑдок + String + РÑдок - Character - Символ + Character + Символ - Class name - Ðазва клаÑу + Class name + Ðазва клаÑу - Define name - Вказати назву + Define name + Вказати назву - Operator - Оператор + Operator + Оператор - Python output - Вивід Python + Python output + Вивід Python - Python error - Помилка Python + Python error + Помилка Python - Items - Елементи + Items + Елементи - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - Параметри Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Image settings + Параметри Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Image properties - ВлаÑтивоÑті Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Image properties + ВлаÑтивоÑті Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Back&ground: - Фон: + Back&ground: + Фон: - Current - Поточне + Current + Поточне - White - Білий + White + Білий - Black - Чорний + Black + Чорний - Transparent - ПрозоріÑть + Transparent + ПрозоріÑть - Image dimensions - Розміри Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Image dimensions + Розміри Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Pixel - ПікÑель + Pixel + ПікÑель - &Width: - Ширина: + &Width: + Ширина: - Current screen - Поточний екран + Current screen + Поточний екран - Icon 32 x 32 - Іконка 32 Ñ… 32 + Icon 32 x 32 + Іконка 32 Ñ… 32 - Icon 64 x 64 - Іконка 64 Ñ… 64 + Icon 64 x 64 + Іконка 64 Ñ… 64 - Icon 128 x 128 - Іконка 128 Ñ… 128 + Icon 128 x 128 + Іконка 128 Ñ… 128 - CGA 320 x 200 - CGA 320 x 200 + CGA 320 x 200 + CGA 320 x 200 - QVGA 320 x 240 - QVGA 320 x 240 + QVGA 320 x 240 + QVGA 320 x 240 - VGA 640 x 480 - VGA 640 x 480 + VGA 640 x 480 + VGA 640 x 480 - NTSC 720 x 480 - NTSC 720 x 480 + NTSC 720 x 480 + NTSC 720 x 480 - PAL 768 x 578 - PAL 768 x 578 + PAL 768 x 578 + PAL 768 x 578 - SVGA 800 x 600 - SVGA 800 x 600 + SVGA 800 x 600 + SVGA 800 x 600 - XGA 1024 x 768 - XGA 1024 x 768 + XGA 1024 x 768 + XGA 1024 x 768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + Стандартні розміри: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + ВиÑота: - Standard sizes: - Стандартні розміри: + Aspect ratio: + Ð’Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін: - &Height: - ВиÑота: + &Screen + Екран - Aspect ratio: - Ð’Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñторін: + Alt+S + Alt+S - &Screen - Екран + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + Коментар до Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Alt+1 - Alt+1 + Insert MIBA + Ð’Ñтавити MIBA - Image comment - Коментар до Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Insert comment + Ð’Ñтавити коментар - - Insert MIBA - Ð’Ñтавити MIBA - - - Insert comment - Ð’Ñтавити коментар - - - + + Gui::Dialog::DlgSettingsMacro - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Macro recording settings - УÑтановки запиÑу макроÑів + Macro recording settings + УÑтановки запиÑу макроÑів - Logging Commands - Ð’ÐµÐ´ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ команд + Logging Commands + Ð’ÐµÐ´ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ команд - Show script commands in python console - Показувати команди Ñценарію в конÑолі Python + Show script commands in python console + Показувати команди Ñценарію в конÑолі Python - Log all commands issued by menus to file: - РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð²ÑÑ–Ñ… команд (викликаних з допомогою меню) у файл: + Log all commands issued by menus to file: + РеєÑÑ‚Ñ€Ð°Ñ†Ñ–Ñ Ð²ÑÑ–Ñ… команд (викликаних з допомогою меню) у файл: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - Команди GUI + Gui commands + Команди GUI - Recording GUI commands - Ð—Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ GUI + Recording GUI commands + Ð—Ð°Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ GUI - Record as comment - ЗапиÑати Ñк коментар + Record as comment + ЗапиÑати Ñк коментар - Macro path - ШлÑÑ… до макроÑу + Macro path + ШлÑÑ… до макроÑу - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - Одиниці + Units + Одиниці - Units settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð´Ð¸Ð½Ð¸Ñ†ÑŒ + Units settings + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð´Ð¸Ð½Ð¸Ñ†ÑŒ - Standard (mm/kg/s/degree) - Стандарт (мм/кг/Ñ/град) + Standard (mm/kg/s/degree) + Стандарт (мм/кг/Ñ/град) - MKS (m/kg/s/degree) - МКС (м/кг/Ñ/град) + MKS (m/kg/s/degree) + МКС (м/кг/Ñ/град) - Magnitude - Величина + Magnitude + Величина - Unit - ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ + Unit + ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ - User system: - КориÑтувач ÑиÑтеми: + User system: + КориÑтувач ÑиÑтеми: - Imperial (in/lb) - ІмперÑька (in/lb) + Imperial (in/lb) + ІмперÑька (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - Кольори + Colors + Кольори - Selection - Вибір + Selection + Вибір - Enable selection highlighting - Увімкнути підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ + Enable selection highlighting + Увімкнути підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ - Enable preselection highlighting - Увімкнути підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ + Enable preselection highlighting + Увімкнути підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ - Background color - Колір фону + Background color + Колір фону - Middle color - Середній колір + Middle color + Середній колір - Color gradient - Градієнт кольору + Color gradient + Градієнт кольору - Simple color - ПроÑті кольори + Simple color + ПроÑті кольори - Default colors - Default colors + Default colors + Default colors - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - Construction geometry + Construction geometry + Construction geometry - Fully constrained geometry - Fully constrained geometry + Fully constrained geometry + Fully constrained geometry - The color of construction geometry in editmode - The color of construction geometry in editmode + The color of construction geometry in editmode + The color of construction geometry in editmode - The color of fully constrained geometry in editmode - The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode + The color of fully constrained geometry in editmode - The color of vertices being edited - The color of vertices being edited + The color of vertices being edited + The color of vertices being edited - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - Порада Ð´Ð½Ñ + Tip of the day + Порада Ð´Ð½Ñ - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">Чи знаєте Ви ...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Чи знаєте Ви ...</font></font></b> - &Show tips at start up - &Показувати поради при запуÑку + &Show tips at start up + &Показувати поради при запуÑку - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - &ÐаÑтупна порада + &Next Tip + &ÐаÑтупна порада - Alt+N - Alt+N + Alt+N + Alt+N - &Close - &Закрити + &Close + &Закрити - Alt+C - Alt+C + Alt+C + Alt+C - - Про програму + + Про програму - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ: %1 + Помилка під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - Якщо Ви бажаєте дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про FreeCAD Ñлід перейти до %1 або натиÑнути пункт Довідка в Меню довідки. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + Якщо Ви бажаєте дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про FreeCAD Ñлід перейти до %1 або натиÑнути пункт Довідка в Меню довідки. - - + + Gui::Dialog::DockablePlacement - Placement - Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ + Placement + Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ - - + + Gui::Dialog::DownloadDialog - Canceled. - Canceled. + Canceled. + Canceled. - - + + Download + + + + Cancel + СкаÑувати + + + Close + Закрити + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + Помилка завантаженнÑ: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - Add icon + Add icon + Add icon - - + + Gui::Dialog::InputVector - Input vector - Вхідний вектор + Input vector + Вхідний вектор - Vector - Вектор + Vector + Вектор - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - Гаразд + OK + Гаразд - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - Кнопки мишки + Mouse buttons + Кнопки мишки - Configuration - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ + Configuration + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ - Selection: - Вибір: + Selection: + Вибір: - Panning - ÐŸÐ°Ð½Ð¾Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ + Panning + ÐŸÐ°Ð½Ð¾Ñ€Ð°Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ - Rotation: - ОбертаннÑ: + Rotation: + ОбертаннÑ: - Zooming: - МаÑштабуваннÑ: + Zooming: + МаÑштабуваннÑ: - - + + Gui::Dialog::ParameterGroup - Expand - Розгорнути + Expand + Розгорнути - Add sub-group - Додати підгрупу + Add sub-group + Додати підгрупу - Remove group - Видалити групу + Remove group + Видалити групу - Rename group - Перейменувати групу + Rename group + Перейменувати групу - Export parameter - Параметри екÑпорту + Export parameter + Параметри екÑпорту - Import parameter - Параметр імпорту + Import parameter + Параметр імпорту - Collapse - Згорнути + Collapse + Згорнути - Do really want to remove this parameter group? - ДійÑно бажаєте видалити групу параметрів ? + Do really want to remove this parameter group? + ДійÑно бажаєте видалити групу параметрів ? - Existing sub-group - ІÑнуючі підгрупи + Existing sub-group + ІÑнуючі підгрупи - The sub-group '%1' already exists. - Підгрупа "%1" вже Ñ–Ñнує. + The sub-group '%1' already exists. + Підгрупа "%1" вже Ñ–Ñнує. - Export parameter to file - ЕкÑпорт параметрів до файлу + Export parameter to file + ЕкÑпорт параметрів до файлу - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - Імпорт параметрів з файлу + Import parameter from file + Імпорт параметрів з файлу - Import Error - Помилка імпорту + Import Error + Помилка імпорту - Reading from '%1' failed. - Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· '%1'. + Reading from '%1' failed. + Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· '%1'. - - + + Gui::Dialog::ParameterValue - Change value - Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Change value + Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - Remove key - Видалити ключ + Remove key + Видалити ключ - Rename key - Перейменувати ключ + Rename key + Перейменувати ключ - New - Ðовий + New + Ðовий - New string item - Ðовий Ñ€Ñдок елементу + New string item + Ðовий Ñ€Ñдок елементу - New float item - New float item + New float item + New float item - New integer item - Ðовий елемент, ціле чиÑло + New integer item + Ðовий елемент, ціле чиÑло - New unsigned item - Ðовий непідпиÑаний елемент + New unsigned item + Ðовий непідпиÑаний елемент - New Boolean item - Ðовий логічний елемент + New Boolean item + Ðовий логічний елемент - Existing item - ІÑнуючий елемент + Existing item + ІÑнуючий елемент - The item '%1' already exists. - Елемент '%1' вже Ñ–Ñнує. + The item '%1' already exists. + Елемент '%1' вже Ñ–Ñнує. - - + + Gui::Dialog::Placement - Placement - Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ + Placement + Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ - OK - Гаразд + OK + Гаразд - Translation: - ПереміщеннÑ: + Translation: + ПереміщеннÑ: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - ОбертаннÑ: + Rotation: + ОбертаннÑ: - Angle: - Кут: + Angle: + Кут: - Axis: - Ð’Ñ–ÑÑŒ: + Axis: + Ð’Ñ–ÑÑŒ: - Center: - Центр: + Center: + Центр: - Pitch: - Крок: + Pitch: + Крок: - Roll: - Кинути: + Roll: + Кинути: - Yaw: - ВідхиленнÑ: + Yaw: + ВідхиленнÑ: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - Кути Ейлера + Euler angles + Кути Ейлера - Apply placement changes immediately - Apply placement changes immediately + Apply placement changes immediately + Apply placement changes immediately - Apply incremental changes to object placement - Apply incremental changes to object placement + Apply incremental changes to object placement + Apply incremental changes to object placement - Apply - ЗаÑтоÑувати + Apply + ЗаÑтоÑувати - Reset - Скинути + Reset + Скинути - Close - Закрити + Close + Закрити - - + + Gui::Dialog::PrintModel - Button - Button + Button + Button - Command - Команда + Command + Команда - - + + Gui::Dialog::SceneInspector - Dialog - Діалогове вікно + Dialog + Діалогове вікно - Close - Закрити + Close + Закрити - Refresh - Оновити + Refresh + Оновити - - + + Gui::Dialog::SceneModel - Inventor Tree - Винахідник дерева + Inventor Tree + Винахідник дерева - Nodes - Вузли + Nodes + Вузли - - + + Gui::Dialog::TextureMapping - Texture - ТекÑтура + Texture + ТекÑтура - Texture mapping - ТекÑтури + Texture mapping + ТекÑтури - Global - Глобальна + Global + Глобальна - Environment - Середовище + Environment + Середовище - Image files (%1) - Файли зображень (%1) + Image files (%1) + Файли зображень (%1) - No image - Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñутнє + No image + Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñутнє - The specified file is not a valid image file. - Вказаний файл не Ñ” допуÑтимим файлом зображеннÑ. + The specified file is not a valid image file. + Вказаний файл не Ñ” допуÑтимим файлом зображеннÑ. - No 3d view - 3d виглÑд відÑутній + No 3d view + 3d виглÑд відÑутній - No active 3d view found. - Ðе знайдено активного 3d виглÑду. + No active 3d view found. + Ðе знайдено активного 3d виглÑду. - - + + Gui::Dialog::Transform - Cancel - СкаÑувати + Cancel + СкаÑувати - Transform - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ + Transform + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ - - + + Gui::DlgTreeWidget - Dialog - Діалогове вікно + Dialog + Діалогове вікно - Items - Елементи + Items + Елементи - OK - Гаразд + OK + Гаразд - Cancel - СкаÑувати + Cancel + СкаÑувати - - Про програму + + Про програму - - + + Gui::DockWnd::CombiView - CombiView - КомбінованийВиглÑд + CombiView + КомбінованийВиглÑд - Project - Проект + Project + Проект - Tasks - Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ + Tasks + Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ - - + + Gui::DockWnd::HelpView - Previous - Ðазад + Previous + Ðазад - Next - Вперед + Next + Вперед - Home - Додому + Home + Додому - Open - Відкрити + Open + Відкрити - Open file - Відкрити файл + Open file + Відкрити файл - All HTML files (*.html *.htm) - Ð’ÑÑ– HTML-файли (*.HTML *.HTM) + All HTML files (*.html *.htm) + Ð’ÑÑ– HTML-файли (*.HTML *.HTM) - External browser - Зовнішній браузер + External browser + Зовнішній браузер - No external browser found. Specify in preferences, please - Ðе знайдено зовнішній браузер. Вкажіть його в наÑтройках, будь лаÑка, + No external browser found. Specify in preferences, please + Ðе знайдено зовнішній браузер. Вкажіть його в наÑтройках, будь лаÑка, - Starting of %1 failed - Старт з %1 не вдавÑÑ + Starting of %1 failed + Старт з %1 не вдавÑÑ - - + + Gui::DockWnd::PropertyDockView - Property View - ПереглÑд влаÑтивоÑтей + Property View + ПереглÑд влаÑтивоÑтей - - + + Gui::DockWnd::ReportOutput - Logging - Ð’ÐµÐ´ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ + Logging + Ð’ÐµÐ´ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ - Warning - ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ + Warning + ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ - Error - Помилка + Error + Помилка - Options - Параметри + Options + Параметри - Clear - ОчиÑтити + Clear + ОчиÑтити - Save As... - Зберегти Ñк... + Save As... + Зберегти Ñк... - Save Report Output - Зберегти звіт + Save Report Output + Зберегти звіт - Plain Text Files (*.txt *.log) - ТекÑтові файли (*.txt *.log) + Plain Text Files (*.txt *.log) + ТекÑтові файли (*.txt *.log) - Go to end - Перейти в кінець + Go to end + Перейти в кінець - Redirect Python output - Redirect Python output + Redirect Python output + Redirect Python output - Redirect Python errors - ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº Python + Redirect Python errors + ÐŸÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº Python - - + + Gui::DockWnd::ReportView - Output - Вивід + Output + Вивід - Python console - КонÑоль python + Python console + КонÑоль python - - + + Gui::DockWnd::SelectionView - Property View - ПереглÑд влаÑтивоÑтей + Property View + ПереглÑд влаÑтивоÑтей - - + + Gui::DockWnd::TaskPanelView - Task View - ВиглÑд Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ + Task View + ВиглÑд Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ - - + + Gui::DockWnd::TextBrowser - Could not open file. - Ðеможливо відкрити файл. + Could not open file. + Ðеможливо відкрити файл. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - Ви Ñпробували отримати доÑтуп до адреÑи %1, Ñка в даний Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупна. Будь лаÑка, переконайтеÑÑ, що URL-адреÑа Ñ–Ñнує Ñ– Ñпробуйте перезавантажити Ñторінку. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + Ви Ñпробували отримати доÑтуп до адреÑи %1, Ñка в даний Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупна. Будь лаÑка, переконайтеÑÑ, що URL-адреÑа Ñ–Ñнує Ñ– Ñпробуйте перезавантажити Ñторінку. - Connecting to %1 - З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· %1 + Connecting to %1 + З'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· %1 - Sending to %1 - ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð¾ %1 + Sending to %1 + ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð¾ %1 - Reading from %1 - Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· %1 + Reading from %1 + Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· %1 - Download failed: %1. - Помилка завантаженнÑ: %1. + Download failed: %1. + Помилка завантаженнÑ: %1. - Previous - Ðазад + Previous + Ðазад - Forward - Далі + Forward + Далі - Home - Додому + Home + Додому - Refresh - Оновити + Refresh + Оновити - Copy - Копіювати + Copy + Копіювати - Select all - Виділити вÑе + Select all + Виділити вÑе - No description for - Ðема опиÑу Ð´Ð»Ñ + No description for + Ðема опиÑу Ð´Ð»Ñ - - + + Gui::DocumentModel - Application - Програма + Application + Програма - Labels & Attributes - Етикетки та атрибути + Labels & Attributes + Етикетки та атрибути - - + + Gui::EditorView - Modified file - Змінений файл + Modified file + Змінений файл - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. Файл було змінено поза редактором. Бажаєте перезавантаити його? - Unsaved document - Ðезбережений документ + Unsaved document + Ðезбережений документ - The document has been modified. + The document has been modified. Do you want to save your changes? - Документ було змінено. + Документ було змінено. Бажаєте зберегти внеÑені зміни? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD Ð¼Ð°ÐºÑ€Ð¾Ñ (*.FCMacro);;Python (*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD Ð¼Ð°ÐºÑ€Ð¾Ñ (*.FCMacro);;Python (*.py) - Export PDF - ЕкÑпорт в PDF + Export PDF + ЕкÑпорт в PDF - PDF file (*.pdf) - Файл PDF (*.pdf) + PDF file (*.pdf) + Файл PDF (*.pdf) - untitled[*] - без імені [*] + untitled[*] + без імені [*] - - Editor - - Редактор + - Editor + - Редактор - %1 chars removed - %1 Ñимволів видалено + %1 chars removed + %1 Ñимволів видалено - %1 chars added - %1 Ñимволів додано + %1 chars added + %1 Ñимволів додано - Formatted - Форматований + Formatted + Форматований - - + + Gui::FileChooser - Select a file - Виберіть файл + Select a file + Виберіть файл - Select a directory - Виберіть каталог + Select a directory + Виберіть каталог - - + + Gui::FileDialog - Save as - Зберегти Ñк + Save as + Зберегти Ñк - Open - Відкрити + Open + Відкрити - - + + Gui::FileOptionsDialog - Extended - Розширений + Extended + Розширений - All files (*.*) - УÑÑ– файли (*.*) + All files (*.*) + УÑÑ– файли (*.*) - - + + Gui::Flag - Top left - Вгорі ліворуч + Top left + Вгорі ліворуч - Bottom left - Внизу ліворуч + Bottom left + Внизу ліворуч - Top right - Вгорі праворуч + Top right + Вгорі праворуч - Bottom right - Внизу праворуч + Bottom right + Внизу праворуч - Remove - Видалити + Remove + Видалити - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - ÐатиÑніть CTRL та ліву кнопку миші + Press CTRL and left mouse button + ÐатиÑніть CTRL та ліву кнопку миші - Press middle mouse button - ÐатиÑнути Ñередню кнопку миші + Press middle mouse button + ÐатиÑнути Ñередню кнопку миші - Press left mouse button - ÐатиÑнути ліву кнопку миші + Press left mouse button + ÐатиÑнути ліву кнопку миші - Scroll middle mouse button - ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші + Scroll middle mouse button + ÐŸÑ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñередньою кнопкою миші - - + + Gui::LocationDialog - Wrong direction - Ðеправильний напрÑмок + Wrong direction + Ðеправильний напрÑмок - Direction must not be the null vector - ÐапрÑм не може мати нульовий вектор + Direction must not be the null vector + ÐапрÑм не може мати нульовий вектор - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - Визначено кориÑтувачем... + User defined... + Визначено кориÑтувачем... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - МакроÑи + Macros + МакроÑи - - + + Gui::MainWindow - Dimension - РозмірніÑть + Dimension + РозмірніÑть - Ready - Готово + Ready + Готово - Toggles this toolbar - ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— панелі + Toggles this toolbar + ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— панелі - Toggles this dockable window - ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ закріплюваного вікна + Toggles this dockable window + ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ закріплюваного вікна - Close All - Закрити вÑе + Close All + Закрити вÑе - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾... + Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¾... - - + + Gui::ProgressBar - Remaining: %1 - ЗалишилоÑÑ:%1 + Remaining: %1 + ЗалишилоÑÑ:%1 - Aborting - ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ + Aborting + ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ - Do you really want to abort the operation? - Ви дійÑно бажаєте перервати операцію? + Do you really want to abort the operation? + Ви дійÑно бажаєте перервати операцію? - - + + Gui::ProgressDialog - Remaining: %1 - ЗалишилоÑÑ:%1 + Remaining: %1 + ЗалишилоÑÑ:%1 - Aborting - ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ + Aborting + ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ - Do you really want to abort the operation? - Ви дійÑно бажаєте перервати операцію? + Do you really want to abort the operation? + Ви дійÑно бажаєте перервати операцію? - - + + Gui::PropertyEditor::PropertyModel - Property - ВлаÑтивіÑть + Property + ВлаÑтивіÑть - Value - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Value + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - - + + Gui::PropertyView - View - ВиглÑд + View + ВиглÑд - Data - Дані + Data + Дані - - + + Gui::PythonConsole - System exit - Вихід із ÑиÑтеми + System exit + Вихід із ÑиÑтеми - The application is still running. + The application is still running. Do you want to exit without saving your data? - Програма, доÑÑ– працює. + Програма, доÑÑ– працює. Бажаєте вийти без Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…? - Python console - КонÑоль python + Python console + КонÑоль python - Unhandled PyCXX exception. - Ðеоброблене Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ PyCXX. + Unhandled PyCXX exception. + Ðеоброблене Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ PyCXX. - Unhandled FreeCAD exception. - Ðеоброблене Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ FreeCAD. + Unhandled FreeCAD exception. + Ðеоброблене Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ FreeCAD. - Unhandled unknown C++ exception. - Ðеоброблений невідомий винÑток C++. + Unhandled unknown C++ exception. + Ðеоброблений невідомий винÑток C++. - &Copy command - &Копіювати команду + &Copy command + &Копіювати команду - &Copy history - &Копіювати Ñ–Ñторію + &Copy history + &Копіювати Ñ–Ñторію - Save history as... - Зберегти Ñ–Ñторію Ñк... + Save history as... + Зберегти Ñ–Ñторію Ñк... - Insert file name... - Введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ ... + Insert file name... + Введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ ... - Save History - Зберегти Ñ–Ñторію + Save History + Зберегти Ñ–Ñторію - Macro Files (*.FCMacro *.py) - Файли макроÑів (*.FCMacro *.ру) + Macro Files (*.FCMacro *.py) + Файли макроÑів (*.FCMacro *.ру) - Insert file name - Введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ + Insert file name + Введіть ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ - All Files (*.*) - Ð’ÑÑ– файли (*.*) + All Files (*.*) + Ð’ÑÑ– файли (*.*) - Python Input Dialog - Діалогове віконце вводу Python + Python Input Dialog + Діалогове віконце вводу Python - Unhandled std C++ exception. - Ðеоброблений винÑток C++. + Unhandled std C++ exception. + Ðеоброблений винÑток C++. - Word wrap - ПеренеÑÐµÐ½Ð½Ñ Ñлів + Word wrap + ПеренеÑÐµÐ½Ð½Ñ Ñлів - &Copy - &Копіювати + &Copy + &Копіювати - &Paste - &Ð’Ñтавити + &Paste + &Ð’Ñтавити - Select All - Вибрати вÑе + Select All + Вибрати вÑе - - + + Clear console + + + + Gui::PythonEditor - Comment - Коментар + Comment + Коментар - Uncomment - Розкоментувати + Uncomment + Розкоментувати - - + + Gui::PythonInputField - OK - Гаразд + OK + Гаразд - Clear - ОчиÑтити + Clear + ОчиÑтити - - + + Gui::RecentFilesAction - Open file %1 - Відкрити файл %1 + Open file %1 + Відкрити файл %1 - File not found - Файл не знайдено + File not found + Файл не знайдено - The file '%1' cannot be opened. - Файл '%1' не може бути відкритий. + The file '%1' cannot be opened. + Файл '%1' не може бути відкритий. - - + + Gui::SelectModule - Select module - Виберіть модуль + Select module + Виберіть модуль - Open %1 as - Відкрити %1 Ñк + Open %1 as + Відкрити %1 Ñк - Select - Вибрати + Select + Вибрати - - + + Gui::StdCmdDescription - Help - Довідка + Help + Довідка - Des&cription - ÐžÐ¿Ð¸Ñ + Des&cription + ÐžÐ¿Ð¸Ñ - Long description of commands - Детальний Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ + Long description of commands + Детальний Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ - - + + Gui::StdCmdDownloadOnlineHelp - Help - Довідка + Help + Довідка - Download online help - Завантажити довідку з інтернету + Download online help + Завантажити довідку з інтернету - Download %1's online help - Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %1's довідки з інтернету + Download %1's online help + Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %1's довідки з інтернету - Non-existing directory - ÐеіÑнуючий каталог + Non-existing directory + ÐеіÑнуючий каталог - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - Каталог '%1' не Ñ–Ñнує. + Каталог '%1' не Ñ–Ñнує. Бажаєте призначити Ñ–Ñнуючий каталог? - Missing permission - ВідÑутній дозвіл + Missing permission + ВідÑутній дозвіл - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - Ви не маєте дозволу на Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ '%1' + Ви не маєте дозволу на Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ '%1' Бажаєте вказати інший каталог? - Stop downloading - Зупинка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ + Stop downloading + Зупинка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ - - + + Gui::StdCmdPythonHelp - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Python Modules - Модулі Python + Python Modules + Модулі Python - Opens a browser to show the Python modules - Відкрити браузер Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду модулів Python + Opens a browser to show the Python modules + Відкрити браузер Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду модулів Python - - + + Gui::TaskBoxAngle - Angle - Кут + Angle + Кут - - + + Gui::TaskBoxPosition - Position - ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ + Position + ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ - - + + Gui::TaskView::TaskAppearance - Display mode: - Режим показу: + Display mode: + Режим показу: - Plot mode: - Plot mode: + Plot mode: + Plot mode: - Point size: - Розмір пункту: + Point size: + Розмір пункту: - Line width: - Ширина лінії: + Line width: + Ширина лінії: - Transparency: - ПрозоріÑть: + Transparency: + ПрозоріÑть: - Appearance - Зовнішній виглÑд + Appearance + Зовнішній виглÑд - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - Редагувати + Edit + Редагувати - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - Зовнішній виглÑд + Appearance + Зовнішній виглÑд - ... - ... + ... + ... - edit selection - редагувати вибір + edit selection + редагувати вибір - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + ÐатиÑнути ліву кнопку миші + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - ÐнглійÑька + English + ÐнглійÑька - - + + Gui::TreeDockWidget - Tree view - У виглÑді дерева + Tree view + У виглÑді дерева - - + + Gui::TreeWidget - Create group... - Створити групу... + Create group... + Створити групу... - Create a group - Створити групу + Create a group + Створити групу - Group - Група + Group + Група - Rename - Перейменувати + Rename + Перейменувати - Rename object - Перейменувати об'єкт + Rename object + Перейменувати об'єкт - Labels & Attributes - Етикетки та атрибути + Labels & Attributes + Етикетки та атрибути - Application - Програма + Application + Програма - Finish editing - Завершити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ + Finish editing + Завершити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ - Finish editing object - Завершити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єкту + Finish editing object + Завершити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єкту - Activate document - Ðктивувати документ + Activate document + Ðктивувати документ - Activate document %1 - Ðктивувати документ %1 + Activate document %1 + Ðктивувати документ %1 - - + + Gui::View3DInventor - Export PDF - ЕкÑпорт в PDF + Export PDF + ЕкÑпорт в PDF - PDF file (*.pdf) - Файл PDF (*.pdf) + PDF file (*.pdf) + Файл PDF (*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - Оберіть '%1' робочу облаÑть + Select the '%1' workbench + Оберіть '%1' робочу облаÑть - - + + Position - Form - Форма + Form + Форма - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 мм + 0.1 mm + 0.1 мм - 0.5 mm - 0.5 мм + 0.5 mm + 0.5 мм - 1 mm - 1 мм + 1 mm + 1 мм - 2 mm - 2 мм + 2 mm + 2 мм - 5 mm - 5 мм + 5 mm + 5 мм - 10 mm - 10 мм + 10 mm + 10 мм - 20 mm - 20 мм + 20 mm + 20 мм - 50 mm - 50 мм + 50 mm + 50 мм - 100 mm - 100 мм + 100 mm + 100 мм - 200 mm - 200 мм + 200 mm + 200 мм - 500 mm - 500 мм + 500 mm + 500 мм - 1 m - 1 м + 1 m + 1 м - 2 m - 2 м + 2 m + 2 м - 5 m - 5 м + 5 m + 5 м - Grid Snap in - Захват Ñітки в + Grid Snap in + Захват Ñітки в - - + + QDockWidget - Tree view - У виглÑді дерева + Tree view + У виглÑді дерева - Property view - ВлаÑтивоÑті виглÑду + Property view + ВлаÑтивоÑті виглÑду - Selection view - Вибір виглÑду + Selection view + Вибір виглÑду - Report view - ВиглÑд звіту + Report view + ВиглÑд звіту - Task View - ВиглÑд Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ + Task View + ВиглÑд Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ - Combo View - Комбінований виглÑд + Combo View + Комбінований виглÑд - Toolbox - Панель інÑтрументів + Toolbox + Панель інÑтрументів - Python console - КонÑоль python + Python console + КонÑоль python - Display properties - Показати влаÑтивоÑті + Display properties + Показати влаÑтивоÑті - - + + QObject - General - Загальне + General + Загальне - Display - Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Display + Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Unknown filetype - Ðевідомий тип файлу + Unknown filetype + Ðевідомий тип файлу - Cannot open unknown filetype: %1 - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ невідомий тип файлу: %1 + Cannot open unknown filetype: %1 + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ невідомий тип файлу: %1 - Cannot save to unknown filetype: %1 - Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ в невідомий тип файлу: %1 + Cannot save to unknown filetype: %1 + Ðе вдаєтьÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ в невідомий тип файлу: %1 - Workbench failure - Крах робочої облаÑті + Workbench failure + Крах робочої облаÑті - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - Ðеможливо запуÑтити Qt Assistant (%1) + Unable to launch Qt Assistant (%1) + Ðеможливо запуÑтити Qt Assistant (%1) - Exception - ВинÑток + Exception + ВинÑток - Open document - Відкрити документ + Open document + Відкрити документ - Import file - Імпорт файлу + Import file + Імпорт файлу - Export file - ЕкÑпорт файлу + Export file + ЕкÑпорт файлу - Printing... - Друк... + Printing... + Друк... - Cannot load workbench - Ðе вдаєтьÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ робочу облаÑть + Cannot load workbench + Ðе вдаєтьÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ робочу облаÑть - A general error occurred while loading the workbench - Загальна помилка при завантаженні робочої облаÑті + A general error occurred while loading the workbench + Загальна помилка при завантаженні робочої облаÑті - File not found - Файл не знайдено + File not found + Файл не знайдено - Cannot open file %1 - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл %1 + Cannot open file %1 + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл %1 - Save views... - Зберегти виглÑд... + Save views... + Зберегти виглÑд... - Load views... - Завантажити виглÑд... + Load views... + Завантажити виглÑд... - Freeze view - Заморозити виглÑд + Freeze view + Заморозити виглÑд - Clear views - ОчиÑтити виглÑд + Clear views + ОчиÑтити виглÑд - Restore view &%1 - Відновити виглÑд &%1 + Restore view &%1 + Відновити виглÑд &%1 - Save frozen views - Зберегти заморожені виглÑди + Save frozen views + Зберегти заморожені виглÑди - Frozen views (*.cam) - Заморожені виглÑди (*.cam) + Frozen views (*.cam) + Заморожені виглÑди (*.cam) - Restore views - Відновити виглÑди + Restore views + Відновити виглÑди - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - При імпорті виглÑдів очиÑтитьÑÑ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¹ виглÑд. + При імпорті виглÑдів очиÑтитьÑÑ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¹ виглÑд. Бажаєте продовжити? - Restore frozen views - Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð¸Ñ… виглÑдів + Restore frozen views + Ð’Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð¸Ñ… виглÑдів - Cannot open file '%1'. - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл %1. + Cannot open file '%1'. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл %1. - Docked - Закріплено + Docked + Закріплено - Undocked - Ðе закріплено + Undocked + Ðе закріплено - Fullscreen - Ðа веÑÑŒ екран + Fullscreen + Ðа веÑÑŒ екран - files - Файли + files + Файли - Save picture - Зберегти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Save picture + Зберегти Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - New sub-group - Ðова підгрупа + New sub-group + Ðова підгрупа - Enter the name: - Введіть назву: + Enter the name: + Введіть назву: - New text item - Ðовий текÑтовий елемент + New text item + Ðовий текÑтовий елемент - Enter your text: - Введіть текÑÑ‚: + Enter your text: + Введіть текÑÑ‚: - New integer item - Ðовий елемент, ціле чиÑло + New integer item + Ðовий елемент, ціле чиÑло - Enter your number: - Введіть номер: + Enter your number: + Введіть номер: - New unsigned item - Ðовий непідпиÑаний елемент + New unsigned item + Ðовий непідпиÑаний елемент - New float item - New float item + New float item + New float item - New Boolean item - Ðовий логічний елемент + New Boolean item + Ðовий логічний елемент - Choose an item: - Виберіть елемент: + Choose an item: + Виберіть елемент: - Rename group - Перейменувати групу + Rename group + Перейменувати групу - The group '%1' cannot be renamed. - Групу '%1' неможливо перейменувати. + The group '%1' cannot be renamed. + Групу '%1' неможливо перейменувати. - Existing group - ІÑнуюча група + Existing group + ІÑнуюча група - The group '%1' already exists. - Група '%1' вже Ñ–Ñнує. + The group '%1' already exists. + Група '%1' вже Ñ–Ñнує. - Change value - Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Change value + Змінити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - Save document under new filename... - Зберегти документ під новим ім'Ñм ... + Save document under new filename... + Зберегти документ під новим ім'Ñм ... - Saving aborted - Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾ + Saving aborted + Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾ - Unsaved document - Ðезбережений документ + Unsaved document + Ðезбережений документ - Save document before close? - Зберегти документ перед закриттÑм? + Save document before close? + Зберегти документ перед закриттÑм? - Save Macro - Зберегти Ð¼Ð°ÐºÑ€Ð¾Ñ + Save Macro + Зберегти Ð¼Ð°ÐºÑ€Ð¾Ñ - Finish - Завершити + Finish + Завершити - Clear - ОчиÑтити + Clear + ОчиÑтити - Cancel - СкаÑувати + Cancel + СкаÑувати - Inner - Внутрішній + Inner + Внутрішній - Outer - Зовнішній + Outer + Зовнішній - No Browser - Браузер відÑутній + No Browser + Браузер відÑутній - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ браузер. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ браузер. Будь лаÑка, відкрийте вікно браузера та введіть адреÑу: http://localhost:%1. - No Server - Сервер відÑутній + No Server + Сервер відÑутній - Unable to start the server to port %1: %2. - Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñервер з портом %1: %2. + Unable to start the server to port %1: %2. + Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñервер з портом %1: %2. - Unable to open your system browser. - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ваш ÑиÑтемний браузер. + Unable to open your system browser. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ваш ÑиÑтемний браузер. - Options... - Параметри... + Options... + Параметри... - Out of memory - Ðе виÑтачає пам'Ñті + Out of memory + Ðе виÑтачає пам'Ñті - Not enough memory available to display the data. - ÐедоÑтатньо пам'Ñті Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. + Not enough memory available to display the data. + ÐедоÑтатньо пам'Ñті Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. - Cannot find file %1 - Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл %1 + Cannot find file %1 + Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл %1 - Cannot find file %1 neither in %2 nor in %3 - Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл %1 ні в %2 , ні в %3 + Cannot find file %1 neither in %2 nor in %3 + Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файл %1 ні в %2 , ні в %3 - Save %1 Document - Зберегти %1 документ + Save %1 Document + Зберегти %1 документ - %1 document (*.FCStd) - Документ %1 (*.FCStd) + %1 document (*.FCStd) + Документ %1 (*.FCStd) - Save As - Зберегти Ñк + Save As + Зберегти Ñк - %1 already exists. + %1 already exists. Do you want to replace it? - %1 вже Ñ–Ñнує. + %1 вже Ñ–Ñнує. Бажаєте замінити? - Document not closable - Документ не закриваєтьÑÑ + Document not closable + Документ не закриваєтьÑÑ - The document is not closable for the moment. - Документ не може бути закритим в даний чаÑ. + The document is not closable for the moment. + Документ не може бути закритим в даний чаÑ. - No OpenGL - Без OpenGL + No OpenGL + Без OpenGL - This system does not support OpenGL - Ð¦Ñ ÑиÑтема не підтримує OpenGL + This system does not support OpenGL + Ð¦Ñ ÑиÑтема не підтримує OpenGL - Help - Довідка + Help + Довідка - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - Ðеможливо завантажити документацію. + Ðеможливо завантажити документацію. Щоб завантажити це потрібно Qt 4.4 або вище. - %1 Help - %1 Довідка + %1 Help + %1 Довідка - Exporting PDF... - ЕкÑпорт в PDF ... + Exporting PDF... + ЕкÑпорт в PDF ... - Wrong selection - Ðевірний вибір + Wrong selection + Ðевірний вибір - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - New boolean item - Ðовий логічний елемент + New boolean item + Ðовий логічний елемент - Navigation styles - Стилі навігації + Navigation styles + Стилі навігації - %1 navigation - %1 Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ + %1 navigation + %1 Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ - Move annotation - ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð½Ð¾Ñ‚Ð°Ñ†Ñ–Ñ— + Move annotation + ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð°Ð½Ð¾Ñ‚Ð°Ñ†Ñ–Ñ— - Transform - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ + Transform + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - - + + + StdBoxSelection + + Standard-View + Стандартні виглÑди + + + Box selection + + + + StdCmdAbout - Help - Довідка + Help + Довідка - &About %1 - Про %1 + &About %1 + Про %1 - About %1 - Про %1 + About %1 + Про %1 - - + + StdCmdAboutQt - Help - Довідка + Help + Довідка - About &Qt - Про &Qt + About &Qt + Про &Qt - About Qt - Про Qt + About Qt + Про Qt - - + + StdCmdActivateNextWindow - Window - Вікно + Window + Вікно - Ne&xt - Далі + Ne&xt + Далі - Activate next window - Ðктивувати наÑтупне вікно + Activate next window + Ðктивувати наÑтупне вікно - - + + StdCmdActivatePrevWindow - Window - Вікно + Window + Вікно - Pre&vious - Ðазад + Pre&vious + Ðазад - Activate previous window - Ðктивувати попереднє вікно + Activate previous window + Ðктивувати попереднє вікно - - + + + StdCmdAlignment + + Edit + Редагувати + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - Вікно + Window + Вікно - Arrange &Icons - Організувати &Ікони + Arrange &Icons + Організувати &Ікони - Arrange Icons - Організувати Ікони + Arrange Icons + Організувати Ікони - - + + StdCmdAxisCross - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - Вікно + Window + Вікно - &Cascade - &КаÑкадом + &Cascade + &КаÑкадом - Tile pragmatic - Tile pragmatic + Tile pragmatic + Tile pragmatic - - + + StdCmdCloseActiveWindow - Window - Вікно + Window + Вікно - Cl&ose - Зак&рити + Cl&ose + Зак&рити - Close active window - Закрити активне вікно + Close active window + Закрити активне вікно - - + + StdCmdCloseAllWindows - Window - Вікно + Window + Вікно - Close Al&l - Закрити вÑÑ– + Close Al&l + Закрити вÑÑ– - Close all windows - Закрити вÑÑ– вікна + Close all windows + Закрити вÑÑ– вікна - - + + StdCmdCommandLine - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Start command &line... - ЗапуÑк командного Ñ€Ñдка... + Start command &line... + ЗапуÑк командного Ñ€Ñдка... - Opens the command line in the console - Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка в конÑолі + Opens the command line in the console + Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка в конÑолі - - + + StdCmdCopy - Edit - Редагувати + Edit + Редагувати - C&opy - Копіювати + C&opy + Копіювати - Copy operation - Операції ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ + Copy operation + Операції ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ - - + + StdCmdCut - Edit - Редагувати + Edit + Редагувати - &Cut - Вирізати + &Cut + Вирізати - Cut out - Вирізати + Cut out + Вирізати - - + + StdCmdDDuplicateSelection - Edit - Редагувати + Edit + Редагувати - Duplicate selection - Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ + Duplicate selection + Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ - Put duplicates of the selected objects to the active document - Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document - - + + StdCmdDelete - Edit - Редагувати + Edit + Редагувати - &Delete - Видалити + &Delete + Видалити - Deletes the selected objects - ВидалÑÑ” вибрані об'єкти + Deletes the selected objects + ВидалÑÑ” вибрані об'єкти - - + + StdCmdDemoMode - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - View turntable... - Відкрити програвач ... + View turntable... + Відкрити програвач ... - View turntable - Відкрити програвач + View turntable + Відкрити програвач - - + + StdCmdDlgCustomize - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Cu&stomize... - ВлаÑні уÑтановки... + Cu&stomize... + ВлаÑні уÑтановки... - Customize toolbars and command bars - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів та панелі команд + Customize toolbars and command bars + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів та панелі команд - - + + StdCmdDlgMacroExecute - Macros ... - МакроÑи ... + Macros ... + МакроÑи ... - Opens a dialog to let you execute a recorded macro - Відкриває діалогове вікно, щоб виконати запиÑаний Ð¼Ð°ÐºÑ€Ð¾Ñ + Opens a dialog to let you execute a recorded macro + Відкриває діалогове вікно, щоб виконати запиÑаний Ð¼Ð°ÐºÑ€Ð¾Ñ - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - - + + StdCmdDlgMacroExecuteDirect - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Execute macro - Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ + Execute macro + Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ - Execute the macro in the editor - Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ редакторі + Execute the macro in the editor + Виконати Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ редакторі - - + + StdCmdDlgMacroRecord - &Macro recording ... - Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу ... + &Macro recording ... + Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу ... - Opens a dialog to record a macro - Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу макроÑів + Opens a dialog to record a macro + Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу макроÑів - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - - + + StdCmdDlgParameter - Tools - ІнÑтрументи + Tools + ІнÑтрументи - E&dit parameters ... - Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² ... + E&dit parameters ... + Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² ... - Opens a Dialog to edit the parameters - Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ параметрів + Opens a Dialog to edit the parameters + Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ параметрів - - + + StdCmdDlgPreferences - Tools - ІнÑтрументи + Tools + ІнÑтрументи - &Preferences ... - &УÑтановки ... + &Preferences ... + &УÑтановки ... - Opens a Dialog to edit the preferences - Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ уÑтановок + Opens a Dialog to edit the preferences + Відкриває діалогове вікно Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ уÑтановок - - + + StdCmdDockViewMenu - View - ВиглÑд + View + ВиглÑд - Vie&ws - Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + Vie&ws + Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Toggles this window - Перемкнути це вікно + Toggles this window + Перемкнути це вікно - - + + StdCmdDrawStyle - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + Редагувати + + + Duplicate selection + Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð¾Ð³Ð¾ + + + Put duplicates of the selected objects to the active document + Put duplicates of the selected objects to the active document + + + + StdCmdEdit + + Edit + Редагувати + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - Файл + File + Файл - &Export... - &ЕкÑпорт... + &Export... + &ЕкÑпорт... - Export an object in the active document - ЕкÑпорт об'єкта в активний документ + Export an object in the active document + ЕкÑпорт об'єкта в активний документ - Supported formats - Підтримувані формати + Supported formats + Підтримувані формати - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + ІнÑтрументи + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - Файл + File + Файл - &Recompute - &Перерахувати + &Recompute + &Перерахувати - Recompute feature or document - Перерахувати функцію або документ + Recompute feature or document + Перерахувати функцію або документ - - + + StdCmdFreeCADWebsite - Help - Довідка + Help + Довідка - FreeCAD Website - Сайт FreeCAD + FreeCAD Website + Сайт FreeCAD - The FreeCAD website - Сайт FreeCAD + The FreeCAD website + Сайт FreeCAD - - + + StdCmdFreezeViews - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Freeze display - Ð—Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð½Ñ Ð´Ð¸Ñплею + Freeze display + Ð—Ð°Ð¼Ð¾Ñ€Ð¾Ð¶ÐµÐ½Ð½Ñ Ð´Ð¸Ñплею - Freezes the current view position - Замерзає поточну позицію переглÑду + Freezes the current view position + Замерзає поточну позицію переглÑду - - + + StdCmdHideObjects - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Hide all objects - Сховати вÑÑ– об'єкти + Hide all objects + Сховати вÑÑ– об'єкти - Hide all objects in the document - Сховати вÑÑ– об'єкти в документі + Hide all objects in the document + Сховати вÑÑ– об'єкти в документі - - + + StdCmdHideSelection - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Hide selection - Сховати вибране + Hide selection + Сховати вибране - Hide all selected objects - Приховати вÑÑ– вибрані об'єкти + Hide all selected objects + Приховати вÑÑ– вибрані об'єкти - - + + StdCmdImport - File - Файл + File + Файл - &Import... - &Імпорт... + &Import... + &Імпорт... - Import a file in the active document - Імпорт файлу в активний документ + Import a file in the active document + Імпорт файлу в активний документ - Supported formats - Підтримувані формати + Supported formats + Підтримувані формати - All files (*.*) - УÑÑ– файли (*.*) + All files (*.*) + УÑÑ– файли (*.*) - - + + StdCmdMacroStartDebug - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Debug macro - Ð’Ñ–Ð´Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу + Debug macro + Ð’Ñ–Ð´Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу - Start debugging of macro - Почати Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу + Start debugging of macro + Почати Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу - - + + StdCmdMacroStepOver - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Step over - ПереÑтупити + Step over + ПереÑтупити - - + + StdCmdMacroStopDebug - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Stop debugging - Зупинити Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ + Stop debugging + Зупинити Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ - Stop debugging of macro - Зупинити Ð²Ñ–Ð´Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу + Stop debugging of macro + Зупинити Ð²Ñ–Ð´Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу - - + + StdCmdMacroStopRecord - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - S&top macro recording - Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу + S&top macro recording + Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу - Stop the macro recording session - Зупинка запиÑу макроÑу + Stop the macro recording session + Зупинка запиÑу макроÑу - - + + StdCmdMeasureDistance - View - ВиглÑд + View + ВиглÑд - Measure distance - ВимірÑти відÑтань + Measure distance + ВимірÑти відÑтань - - + + StdCmdMeasurementSimple - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Mesure distance - ВимірÑти відÑтань + Mesure distance + ВимірÑти відÑтань - Measures distance between two selected objects - ВимірÑти відÑтань між двома обраними об'єктами + Measures distance between two selected objects + ВимірÑти відÑтань між двома обраними об'єктами - - + + Measure distance + ВимірÑти відÑтань + + + StdCmdMergeProjects - File - Файл + File + Файл - Merge project... - Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ ... + Merge project... + Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ ... - Merge project - Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ + Merge project + Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ - %1 document (*.fcstd) - %1 документ (*.fcstd) + %1 document (*.fcstd) + %1 документ (*.fcstd) - Cannot merge project with itself. - Ðеможливо злити проекту з Ñамим Ñобою. + Cannot merge project with itself. + Ðеможливо злити проекту з Ñамим Ñобою. - - + + StdCmdNew - File - Файл + File + Файл - &New - Ðовий + &New + Ðовий - Create a new empty document - Створити новий порожній документ + Create a new empty document + Створити новий порожній документ - - + + StdCmdOnlineHelp - Help - Довідка + Help + Довідка - Show help to the application - Показати довідку по програмі + Show help to the application + Показати довідку по програмі - - + + StdCmdOnlineHelpPython - Help - Довідка + Help + Довідка - Python Manuals - Керівництво по Python + Python Manuals + Керівництво по Python - Show the Python documentation - Показати документацію по Python + Show the Python documentation + Показати документацію по Python - - + + StdCmdOnlineHelpWebsite - Help - Довідка + Help + Довідка - Help Website - Сайт довідки + Help Website + Сайт довідки - The website where the help is maintained - Сайт де можна отримати допомогу від розробників + The website where the help is maintained + Сайт де можна отримати допомогу від розробників - - + + StdCmdOpen - File - Файл + File + Файл - &Open... - &Відкрити... + &Open... + &Відкрити... - Open a document or import files - Відкрити документ або імпортувати файли + Open a document or import files + Відкрити документ або імпортувати файли - Supported formats - Підтримувані формати + Supported formats + Підтримувані формати - All files (*.*) - УÑÑ– файли (*.*) + All files (*.*) + УÑÑ– файли (*.*) - - + + StdCmdPaste - Edit - Редагувати + Edit + Редагувати - &Paste - &Ð’Ñтавити + &Paste + &Ð’Ñтавити - Paste operation - ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ñтавки + Paste operation + ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ñтавки - - + + StdCmdPlacement - Edit - Редагувати + Edit + Редагувати - Placement... - РозташуваннÑ... + Placement... + РозташуваннÑ... - Place the selected objects - Ð Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… об'єктів + Place the selected objects + Ð Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… об'єктів - - + + StdCmdPrint - File - Файл + File + Файл - &Print... - &Друк... + &Print... + &Друк... - Print the document - Друк документа + Print the document + Друк документа - - + + StdCmdPrintPdf - File - Файл + File + Файл - &Export PDF... - &ЕкÑпорт до PDF... + &Export PDF... + &ЕкÑпорт до PDF... - Export the document as PDF - ЕкÑпорт документа в PDF + Export the document as PDF + ЕкÑпорт документа в PDF - - + + StdCmdPrintPreview - File - Файл + File + Файл - &Print preview... - &Print preview... + &Print preview... + &Print preview... - Print the document - Друк документа + Print the document + Друк документа - Print preview - Print preview + Print preview + Print preview - - + + StdCmdProjectInfo - File - Файл + File + Файл - Project i&nformation... - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ проект... + Project i&nformation... + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ проект... - Show details of the currently active project - Показати подробиці про поточний проект + Show details of the currently active project + Показати подробиці про поточний проект - - + + StdCmdProjectUtil - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Project utility... - Project utility... + Project utility... + Project utility... - Utility to extract or create project files - Utility to extract or create project files + Utility to extract or create project files + Utility to extract or create project files - - + + StdCmdPythonWebsite - Help - Довідка + Help + Довідка - Python Website - Сайт Python + Python Website + Сайт Python - The official Python website - Офіційний Ñайт Python + The official Python website + Офіційний Ñайт Python - - + + StdCmdQuit - File - Файл + File + Файл - E&xit - Вихід + E&xit + Вихід - Quits the application - Вихід з програми + Quits the application + Вихід з програми - - + + StdCmdRandomColor - File - Файл + File + Файл - Random color - Випадковий колір + Random color + Випадковий колір - - + + StdCmdRecentFiles - File - Файл + File + Файл - Recent files - Ðещодавні файли + Recent files + Ðещодавні файли - Recent file list - СпиÑок оÑтанніх файлів + Recent file list + СпиÑок оÑтанніх файлів - - + + StdCmdRedo - Edit - Редагувати + Edit + Редагувати - &Redo - Повторити + &Redo + Повторити - Redoes a previously undone action - Повторює оÑтанню ÑкаÑовану дію + Redoes a previously undone action + Повторює оÑтанню ÑкаÑовану дію - - + + StdCmdRefresh - Edit - Редагувати + Edit + Редагувати - &Refresh - Оновити + &Refresh + Оновити - Recomputes the current active document - Перераховує поточного активного документ + Recomputes the current active document + Перераховує поточного активного документ - - + + StdCmdSave - File - Файл + File + Файл - &Save - &Зберегти + &Save + &Зберегти - Save the active document - Зберегти активний документ + Save the active document + Зберегти активний документ - - + + StdCmdSaveAs - File - Файл + File + Файл - Save &As... - Зберегти Ñк... + Save &As... + Зберегти Ñк... - Save the active document under a new file name - Зберегти поточний документ під новим ім'Ñм + Save the active document under a new file name + Зберегти поточний документ під новим ім'Ñм - - + + StdCmdSceneInspector - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Scene inspector... - ІнÑпектор Ñцени... + Scene inspector... + ІнÑпектор Ñцени... - Scene inspector - ІнÑпектор Ñцени + Scene inspector + ІнÑпектор Ñцени - - + + StdCmdSelectAll - Edit - Редагувати + Edit + Редагувати - Select &All - Вибрати уÑе + Select &All + Вибрати уÑе - Select all - Виділити вÑе + Select all + Виділити вÑе - - + + StdCmdSetAppearance - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Appearance... - Зовнішній виглÑд... + Appearance... + Зовнішній виглÑд... - Sets the display properties of the selected object - Задає виглÑд виділеного об'єкта + Sets the display properties of the selected object + Задає виглÑд виділеного об'єкта - - + + StdCmdShowObjects - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Show all objects - Показати вÑÑ– об'єкти + Show all objects + Показати вÑÑ– об'єкти - Show all objects in the document - Показати вÑÑ– об'єкти в документі + Show all objects in the document + Показати вÑÑ– об'єкти в документі - - + + StdCmdShowSelection - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Show selection - Показати віділене + Show selection + Показати віділене - Show all selected objects - Показати вÑÑ– виділені об'єкти + Show all selected objects + Показати вÑÑ– виділені об'єкти - - + + StdCmdStatusBar - View - ВиглÑд + View + ВиглÑд - Status bar - РÑдок Ñтану + Status bar + РÑдок Ñтану - Toggles the status bar - Перемикнути Ñ€Ñдок Ñтану + Toggles the status bar + Перемикнути Ñ€Ñдок Ñтану - - + + StdCmdTextureMapping - Tools - ІнÑтрументи + Tools + ІнÑтрументи - Texture mapping... - Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтури... + Texture mapping... + Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтури... - Texture mapping - ТекÑтури + Texture mapping + ТекÑтури - - + + StdCmdTileWindows - Window - Вікно + Window + Вікно - &Tile - Плитка + &Tile + Плитка - Tile the windows - Вікна плиткою + Tile the windows + Вікна плиткою - - + + StdCmdToggleBreakpoint - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - Toggle breakpoint - ПомінÑти точку зупинки + Toggle breakpoint + ПомінÑти точку зупинки - - + + StdCmdToggleClipPlane - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Clipping plane - Площини Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ + Clipping plane + Площини Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ - Toggles clipping plane for active view - ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ð»Ð¾Ñ‰Ð¸Ð½Ñƒ відÑÑ–ÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ переглÑду + Toggles clipping plane for active view + ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ð»Ð¾Ñ‰Ð¸Ð½Ñƒ відÑÑ–ÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ переглÑду - - + + StdCmdToggleNavigation - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Toggle navigation/Edit mode - Перемкнути навігацію/Змінити режим + Toggle navigation/Edit mode + Перемкнути навігацію/Змінити режим - Toggle between navigation and edit mode - ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ навігацією Ñ– режимом Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ + Toggle between navigation and edit mode + ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ навігацією Ñ– режимом Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ - - + + StdCmdToggleObjects - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Toggle all objects - Перемкнути вÑÑ– об'єкти + Toggle all objects + Перемкнути вÑÑ– об'єкти - Toggles visibility of all objects in the active document - Вмикає/вимикає видиміÑть вÑÑ–Ñ… об'єктів в активному документі + Toggles visibility of all objects in the active document + Вмикає/вимикає видиміÑть вÑÑ–Ñ… об'єктів в активному документі - - + + StdCmdToggleSelectability - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Toggle selectability - Toggle selectability + Toggle selectability + Toggle selectability - Toggles the property of the objects to get selected in the 3D-View - Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View + Toggles the property of the objects to get selected in the 3D-View - - + + StdCmdToggleVisibility - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Toggle visibility - Перемикнути видиміÑть + Toggle visibility + Перемикнути видиміÑть - Toggles visibility - Вмикає/вимикає видиміÑть + Toggles visibility + Вмикає/вимикає видиміÑть - - + + StdCmdToolBarMenu - View - ВиглÑд + View + ВиглÑд - Tool&bars - Панелі інÑтрументів + Tool&bars + Панелі інÑтрументів - Toggles this window - Перемкнути це вікно + Toggles this window + Перемкнути це вікно - - + + StdCmdTransform - Edit - Редагувати + Edit + Редагувати - Transform... - ПеретвореннÑ... + Transform... + ПеретвореннÑ... - Transform the geometry of selected objects - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ— вибраних об'єктів + Transform the geometry of selected objects + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ— вибраних об'єктів - - + + StdCmdTreeSelection - View - ВиглÑд + View + ВиглÑд - Go to selection - Перейти до вибраного + Go to selection + Перейти до вибраного - Scroll to first selected item - Прокрутити до першого виділеного елемента + Scroll to first selected item + Прокрутити до першого виділеного елемента - - + + StdCmdUndo - Edit - Редагувати + Edit + Редагувати - &Undo - Відмінити + &Undo + Відмінити - Undo exactly one action - СкаÑувати рівно одну дію + Undo exactly one action + СкаÑувати рівно одну дію - - + + StdCmdUserInterface - View - ВиглÑд + View + ВиглÑд - Dock views - Dock views + Dock views + Dock views - Dock all top-level views - Dock all top-level views + Dock all top-level views + Dock all top-level views - - + + StdCmdViewAxo - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Axometric - ÐкÑÐ¾Ð½Ð¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ + Axometric + ÐкÑÐ¾Ð½Ð¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ - Set to axometric view - Ð’Ñтановити акÑонометричну проекцію + Set to axometric view + Ð’Ñтановити акÑонометричну проекцію - - + + StdCmdViewBottom - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Bottom - Внизу + Bottom + Внизу - Set to bottom view - Ð’Ñтановити вид знизу + Set to bottom view + Ð’Ñтановити вид знизу - - + + StdCmdViewCreate - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Create new view - Створити новий виглÑд + Create new view + Створити новий виглÑд - Creates a new view window for the active document - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вікна переглÑду Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ документа + Creates a new view window for the active document + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ вікна переглÑду Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ документа - - + + StdCmdViewExample1 - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Inventor example #1 - Винахідник Приклад #1 + Inventor example #1 + Винахідник Приклад #1 - Shows a 3D texture with manipulator - Показує 3D текÑтури з маніпулÑтором + Shows a 3D texture with manipulator + Показує 3D текÑтури з маніпулÑтором - - + + StdCmdViewExample2 - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Inventor example #2 - Винахідник Приклад #2 + Inventor example #2 + Винахідник Приклад #2 - Shows spheres and drag-lights - Показ Ñфер та перетÑгувані ліхтарі + Shows spheres and drag-lights + Показ Ñфер та перетÑгувані ліхтарі - - + + StdCmdViewExample3 - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Inventor example #3 - Винахідник Приклад #3 + Inventor example #3 + Винахідник Приклад #3 - Shows a animated texture - Показ анімованих текÑтур + Shows a animated texture + Показ анімованих текÑтур - - + + StdCmdViewFitAll - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Fit all - ВміÑтити вÑе + Fit all + ВміÑтити вÑе - Fits the whole content on the screen - ВміÑтити веÑÑŒ вміÑÑ‚ на екрані + Fits the whole content on the screen + ВміÑтити веÑÑŒ вміÑÑ‚ на екрані - - + + StdCmdViewFitSelection - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Fit selection - ВміÑтити вибране + Fit selection + ВміÑтити вибране - Fits the selected content on the screen - ВміÑтити вибране на екрані + Fits the selected content on the screen + ВміÑтити вибране на екрані - - + + StdCmdViewFront - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Front - Фронт + Front + Фронт - Set to front view - Показ виглÑду з переду + Set to front view + Показ виглÑду з переду - - + + StdCmdViewIvIssueCamPos - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Issue camera position - Вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ + Issue camera position + Вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ - Issue the camera position to the console and to a macro, to easily recall this position - Вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ Ð´Ð»Ñ ÐºÐ¾Ð½Ñолі Ñ– макроÑів, щоб потім швидко відновити цю позицію + Issue the camera position to the console and to a macro, to easily recall this position + Вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ Ð´Ð»Ñ ÐºÐ¾Ð½Ñолі Ñ– макроÑів, щоб потім швидко відновити цю позицію - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Stereo Interleaved Columns - Стерео Ñтовпці + Stereo Interleaved Columns + Стерео Ñтовпці - Switch stereo viewing to Interleaved Columns - Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns + Switch stereo viewing to Interleaved Columns - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Stereo Interleaved Rows - Стерео Ñ€Ñдки + Stereo Interleaved Rows + Стерео Ñ€Ñдки - Switch stereo viewing to Interleaved Rows - Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows + Switch stereo viewing to Interleaved Rows - - + + StdCmdViewIvStereoOff - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Stereo Off - Вимкнути Ñтерео + Stereo Off + Вимкнути Ñтерео - Switch stereo viewing off - Вимкнути Ñтерео виглÑд + Switch stereo viewing off + Вимкнути Ñтерео виглÑд - - + + StdCmdViewIvStereoQuadBuff - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Stereo quad buffer - Stereo quad buffer + Stereo quad buffer + Stereo quad buffer - Switch stereo viewing to quad buffer - Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer + Switch stereo viewing to quad buffer - - + + StdCmdViewIvStereoRedGreen - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Stereo red/green - Стерео червоний/зелений + Stereo red/green + Стерео червоний/зелений - Switch stereo viewing to red/green - Перемикнути Ñтерео переглÑд у червоний/зелений + Switch stereo viewing to red/green + Перемикнути Ñтерео переглÑд у червоний/зелений - - + + StdCmdViewLeft - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Left - Ліворуч + Left + Ліворуч - Set to left view - Ð’Ñтановити вид зліва + Set to left view + Ð’Ñтановити вид зліва - - + + StdCmdViewRear - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Rear - Тил + Rear + Тил - Set to rear view - Ð’Ñтановити вид ззаду + Set to rear view + Ð’Ñтановити вид ззаду - - + + StdCmdViewRight - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Right - Праворуч + Right + Праворуч - Set to right view - Ð’Ñтановити виглÑд з права + Set to right view + Ð’Ñтановити виглÑд з права - - + + + StdCmdViewRotateLeft + + Standard-View + Стандартні виглÑди + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + Стандартні виглÑди + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Top - Згори + Top + Згори - Set to top view - Ð’Ñтановити виглÑд зверху + Set to top view + Ð’Ñтановити виглÑд зверху - - + + StdCmdWhatsThis - Help - Довідка + Help + Довідка - &What's This? - &Що це? + &What's This? + &Що це? - What's This - Що це таке + What's This + Що це таке - - + + StdCmdWindows - Window - Вікно + Window + Вікно - &Windows... - Вікна... + &Windows... + Вікна... - Windows list - СпиÑок вікон + Windows list + СпиÑок вікон - - + + StdCmdWindowsMenu - Window - Вікно + Window + Вікно - Activates this window - Ðктивувати це вікно + Activates this window + Ðктивувати це вікно - - + + StdCmdWorkbench - View - ВиглÑд + View + ВиглÑд - Workbench - Робочий проÑтір + Workbench + Робочий проÑтір - Switch between workbenches - ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ робочими облаÑÑ‚Ñми + Switch between workbenches + ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ робочими облаÑÑ‚Ñми - - + + StdOrthographicCamera - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Orthographic view - Ортогональний виглÑд + Orthographic view + Ортогональний виглÑд - Switches to orthographic view mode - ПеремкнутиÑÑŒ до режиму Ортогональна Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ + Switches to orthographic view mode + ПеремкнутиÑÑŒ до режиму Ортогональна Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ - - + + StdPerspectiveCamera - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Perspective view - ПерÑпектива + Perspective view + ПерÑпектива - Switches to perspective view mode - ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð² режим переглÑду перÑпективи + Switches to perspective view mode + ÐŸÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð² режим переглÑду перÑпективи - - + + StdViewBoxZoom - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Box zoom - Поле Ð¼Ð°ÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ + Box zoom + Поле Ð¼Ð°ÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ - - + + StdViewDockUndockFullscreen - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Document window - вікно документа + Document window + вікно документа - Display the active view either in fullscreen, in undocked or docked mode - Показати активний вид в повноекранному режимі, у відÑтикованому, або зіÑтикуваваному режимі + Display the active view either in fullscreen, in undocked or docked mode + Показати активний вид в повноекранному режимі, у відÑтикованому, або зіÑтикуваваному режимі - - + + StdViewScreenShot - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Save picture... - Зберегти зображеннÑ... + Save picture... + Зберегти зображеннÑ... - Creates a screenshot of the active view - Створити знімок активного виглÑду + Creates a screenshot of the active view + Створити знімок активного виглÑду - - + + StdViewZoomIn - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Zoom In - Збільшити + Zoom In + Збільшити - - + + StdViewZoomOut - Standard-View - Стандартні виглÑди + Standard-View + Стандартні виглÑди - Zoom Out - Зменшити + Zoom Out + Зменшити - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - &Файл + &File + &Файл - &Edit - &Редагувати + &Edit + &Редагувати - Standard views - Стандартні виглÑди + Standard views + Стандартні виглÑди - &Stereo - &Стерео + &Stereo + &Стерео - &Zoom - &Ð—Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ + &Zoom + &Ð—Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ - Visibility - ВидиміÑть + Visibility + ВидиміÑть - &View - &ВиглÑд + &View + &ВиглÑд - &Tools - &ІнÑтрументи + &Tools + &ІнÑтрументи - &Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + &Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - &Windows - &Вікна + &Windows + &Вікна - &On-line help - &Он-лайн допомога + &On-line help + &Он-лайн допомога - &Help - &Довідка + &Help + &Довідка - File - Файл + File + Файл - Macro - ÐœÐ°ÐºÑ€Ð¾Ñ + Macro + ÐœÐ°ÐºÑ€Ð¾Ñ - View - ВиглÑд + View + ВиглÑд - Special Ops - Спеціальні операції + Special Ops + Спеціальні операції - - + + testClass - test - ТеÑÑ‚ + test + ТеÑÑ‚ - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - Виберіть Ñтиль панелі завдань + Choose the style of the Task Panel + Виберіть Ñтиль панелі завдань - Default - За замовчуваннÑм + Default + За замовчуваннÑм - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Gui/Language/FreeCAD_zh.ts b/src/Gui/Language/FreeCAD_zh.ts index a63f7f181..42b80a62e 100644 --- a/src/Gui/Language/FreeCAD_zh.ts +++ b/src/Gui/Language/FreeCAD_zh.ts @@ -1,5484 +1,5902 @@ - - + + Angle - Form - 窗体 + Form + 窗体 - A: - A: + A: + A: - B: - B: + B: + B: - C: - C: + C: + C: - Angle Snap - è§’åº¦æ•æ‰ + Angle Snap + è§’åº¦æ•æ‰ - - 1 ° - 1 ° + + 1 ° + 1 ° - - 2 ° - 2 ° + + 2 ° + 2 ° - - 5 ° - 5 ° + + 5 ° + 5 ° - - 10 ° - 10 ° + + 10 ° + 10 ° - - 20 ° - 20 ° + + 20 ° + 20 ° - - 45 ° - 45 ° + + 45 ° + 45 ° - - 90 ° - 90 ° + + 90 ° + 90 ° - - 180 ° - 180 ° + + 180 ° + 180 ° - - + + Gui::AccelLineEdit - none - æ—  + none + æ—  - - + + + Gui::ActionSelector + + Available: + + + + Selected: + + + + Add + 添加 + + + Remove + 删除 + + + Move up + 上移 + + + Move down + 下移 + + + + Gui::AlignmentView + + Movable object + + + + Fixed object + + + + Gui::BlenderNavigationStyle - Press left mouse button - 按鼠标左键 + Press left mouse button + 按鼠标左键 - Press SHIFT and middle mouse button - 按SHIFT和鼠标中键 + Press SHIFT and middle mouse button + 按SHIFT和鼠标中键 - Press middle mouse button - 按鼠标中键 + Press middle mouse button + 按鼠标中键 - Scroll middle mouse button - 滚动鼠标中键 + Scroll middle mouse button + 滚动鼠标中键 - - + + Gui::CADNavigationStyle - Press left mouse button - 按鼠标左键 + Press left mouse button + 按鼠标左键 - Press middle mouse button - 按鼠标中键 + Press middle mouse button + 按鼠标中键 - Press left and middle mouse button - 按鼠标左键和中键 + Press left and middle mouse button + 按鼠标左键和中键 - Scroll middle mouse button - 滚动鼠标中键 + Scroll middle mouse button + 滚动鼠标中键 - - + + Gui::Command - Standard - 标准 + Standard + 标准 - - + + Gui::ContainerDialog - &OK - 确定(&O) + &OK + 确定(&O) - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - - + + Gui::ControlSingleton - Task panel - ä»»åŠ¡é¢æ¿ + Task panel + ä»»åŠ¡é¢æ¿ - - + + Gui::Dialog::AboutApplication - About - 关于 + About + 关于 - Revision number - ä¿®è®¢å· + Revision number + ä¿®è®¢å· - Version - 版本 + Version + 版本 - OK - 确定 + OK + 确定 - - 关于 + + 关于 - Release date - å‘布日期 + Release date + å‘布日期 - Platform - å¹³å° + Platform + å¹³å° - License... - 许å¯... + License... + 许å¯... - - + + Copy to clipboard + + + + Gui::Dialog::ButtonModel - Button %1 - 按钮 %1 + Button %1 + 按钮 %1 - Out Of Range - 超出范围 + Out Of Range + 超出范围 - - + + Gui::Dialog::CommandModel - Commands - 命令 + Commands + 命令 - - + + Gui::Dialog::DemoMode - View Turntable - 视图罗盘 + View Turntable + 视图罗盘 - Speed - 速度 + Speed + 速度 - Maximum - 最大值 + Maximum + 最大值 - Minimum - 最å°å€¼ + Minimum + 最å°å€¼ - Fullscreen - å…¨å± + Fullscreen + å…¨å± - Enable timer - å¯ç”¨è®¡æ—¶å™¨ + Enable timer + å¯ç”¨è®¡æ—¶å™¨ - s - s + s + s - Angle - 角度 + Angle + 角度 + + + 90° + 90° + + + -90° + -90° - 90° - 90° + Play + 播放 - -90° - -90° + Stop + åœæ­¢ - Play - 播放 + Close + 关闭 - - Stop - åœæ­¢ - - - Close - 关闭 - - - + + Gui::Dialog::DlgActivateWindow - Choose Window - é€‰æ‹©çª—å£ + Choose Window + é€‰æ‹©çª—å£ - &Activate - 激活(&A) + &Activate + 激活(&A) - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - - 关于 + + 关于 - - + + Gui::Dialog::DlgActivateWindowImp - Windows - çª—å£ + Windows + çª—å£ - - + + Gui::Dialog::DlgAuthorization - Authorization - èº«ä»½éªŒè¯ + Authorization + èº«ä»½éªŒè¯ - &OK - 确定(&O) + &OK + 确定(&O) - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - Password: - 密ç : + Password: + 密ç : - User name: - 用户å: + User name: + 用户å: - - 关于 + + 关于 - - + + Gui::Dialog::DlgChooseIcon - Choose Icon - 选择图标 + Choose Icon + 选择图标 - OK - 确定 + OK + 确定 - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - Add icons... - 添加图标... + Add icons... + 添加图标... - - + + Gui::Dialog::DlgCustomActions - Macros - å® + Macros + å® - Setup Custom Macros - è®¾ç½®è‡ªå®šä¹‰å® + Setup Custom Macros + è®¾ç½®è‡ªå®šä¹‰å® - Macro: - å®: + Macro: + å®: - ... - ... + ... + ... - Pixmap - ä½å›¾ + Pixmap + ä½å›¾ - Accelerator: - å¿«æ·é”®: + Accelerator: + å¿«æ·é”®: - What's this: - 这是什么: + What's this: + 这是什么: - Status text: - çŠ¶æ€æ–‡å­—: + Status text: + çŠ¶æ€æ–‡å­—: - Tool tip: - 工具æç¤º: + Tool tip: + 工具æç¤º: - Menu text: - èœå•文本: + Menu text: + èœå•文本: - Add - 添加 + Add + 添加 - Remove - 删除 + Remove + 删除 - Replace - æ›¿æ¢ + Replace + æ›¿æ¢ - - + + Gui::Dialog::DlgCustomActionsImp - Icons - 图标 + Icons + 图标 - Macros - å® + Macros + å® - No macro - æ— å®å®šä¹‰ + No macro + æ— å®å®šä¹‰ - No macros found. - 未å‘现å®. + No macros found. + 未å‘现å®. - Macro not found - æœªæ‰¾åˆ°å® + Macro not found + æœªæ‰¾åˆ°å® - Sorry, couldn't find macro file '%1'. - 对ä¸èµ·ï¼Œæ— æ³•æ‰¾åˆ°å®æ–‡ä»¶ '%1'. + Sorry, couldn't find macro file '%1'. + 对ä¸èµ·ï¼Œæ— æ³•æ‰¾åˆ°å®æ–‡ä»¶ '%1'. - Empty macro - ç©ºç™½å® + Empty macro + ç©ºç™½å® - Please specify the macro first. - 请先指定å®. + Please specify the macro first. + 请先指定å®. - Empty text - 空文本 + Empty text + 空文本 - Please specify the menu text first. - 请先指定èœå•文本. + Please specify the menu text first. + 请先指定èœå•文本. - No item selected - 未选中对象 + No item selected + 未选中对象 - Please select a macro item first. - 请先选择一个å®é¡¹ç›®. + Please select a macro item first. + 请先选择一个å®é¡¹ç›®. - - + + Gui::Dialog::DlgCustomCommands - Commands - 命令 + Commands + 命令 - - 关于 + + 关于 - - + + Gui::Dialog::DlgCustomCommandsImp - Category - 类别 + Category + 类别 - Icon - 图标 + Icon + 图标 - Command - 命令 + Command + 命令 - - + + Gui::Dialog::DlgCustomKeyboard - Keyboard - 键盘 + Keyboard + 键盘 - Description: - 说明: + Description: + 说明: - &Category: - 分类(&C): + &Category: + 分类(&C): - C&ommands: - 命令(&C): + C&ommands: + 命令(&C): - Current shortcut: - 当å‰å¿«æ·é”®: + Current shortcut: + 当å‰å¿«æ·é”®: - Press &new shortcut: - 按下新快æ·é”®(&N): + Press &new shortcut: + 按下新快æ·é”®(&N): - Currently assigned to: - 当å‰åˆ†é…ç»™: + Currently assigned to: + 当å‰åˆ†é…ç»™: - &Assign - 分é…(&A) + &Assign + 分é…(&A) - Alt+A - Alt+A + Alt+A + Alt+A - &Reset - é‡ç½®(&R) + &Reset + é‡ç½®(&R) - Alt+R - Alt+R + Alt+R + Alt+R - Re&set All - 全部é‡è®¾(&S) + Re&set All + 全部é‡è®¾(&S) - Alt+S - Alt+S + Alt+S + Alt+S - - 关于 + + 关于 - - + + Gui::Dialog::DlgCustomKeyboardImp - Icon - 图标 + Icon + 图标 - Command - 命令 + Command + 命令 - none - æ—  + none + æ—  - Multiple defined shortcut - 多é‡å®šä¹‰å¿«æ·é”® + Multiple defined shortcut + 多é‡å®šä¹‰å¿«æ·é”® - The shortcut '%1' is defined more than once. This could result into unexpected behaviour. - å¿«æ·é”®'%1'ä¸å”¯ä¸€.这将导致ä¸å¯é¢„料的结果. + The shortcut '%1' is defined more than once. This could result into unexpected behaviour. + å¿«æ·é”®'%1'ä¸å”¯ä¸€.这将导致ä¸å¯é¢„料的结果. - Already defined shortcut - 已定义快æ·é”® + Already defined shortcut + 已定义快æ·é”® - The shortcut '%1' is already assigned to '%2'. + The shortcut '%1' is already assigned to '%2'. Please define another shortcut. - å¿«æ·é”®'%1'å·²ç»åˆ†é…给了'%2'. + å¿«æ·é”®'%1'å·²ç»åˆ†é…给了'%2'. è¯·é‡æ–°å®šä¹‰. - - + + Gui::Dialog::DlgCustomToolBoxbarsImp - Toolbox bars - å·¥å…·æ¡ + Toolbox bars + å·¥å…·æ¡ - - + + Gui::Dialog::DlgCustomToolbars - Toolbars - å·¥å…·æ  + Toolbars + å·¥å…·æ  - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> æ”¹åŠ¨å°†åœ¨ä½ ä¸‹ä¸€æ¬¡åŠ è½½å·¥ä½œå°æ—¶ç”Ÿæ•ˆ</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> The changes become active the next time you load the appropriate workbench</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Note:</span> æ”¹åŠ¨å°†åœ¨ä½ ä¸‹ä¸€æ¬¡åŠ è½½å·¥ä½œå°æ—¶ç”Ÿæ•ˆ</p></body></html> - Move right - å³ç§» + Move right + å³ç§» - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>移动选中对象到下一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>移动选中对象到下一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> - Move left - 左移 + Move left + 左移 - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>移动选中对象到上一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>移动选中对象到上一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> - Move down - 下移 + Move down + 下移 - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>下移选中对象.</b><p>仅在层级中移动.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>下移选中对象.</b><p>仅在层级中移动.</p> - Move up - 上移 + Move up + 上移 - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>上移选中对象.</b><p>仅在层级中移动.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>上移选中对象.</b><p>仅在层级中移动.</p> - New... - 新建... + New... + 新建... - Rename... - é‡å‘½å... + Rename... + é‡å‘½å... - Delete - 删除 + Delete + 删除 - Icon - 图标 + Icon + 图标 - Command - 命令 + Command + 命令 - <Separator> - <分隔符> + <Separator> + <分隔符> - New toolbar - æ–°å»ºå·¥å…·æ  + New toolbar + æ–°å»ºå·¥å…·æ  - Toolbar name: - 工具æ åç§°: + Toolbar name: + 工具æ åç§°: - Duplicated name - é‡å¤å‘½å + Duplicated name + é‡å¤å‘½å - The toolbar name '%1' is already used - 工具æ åç§°'%1'已被使用 + The toolbar name '%1' is already used + 工具æ åç§°'%1'已被使用 - Rename toolbar - é‡å‘½åå·¥å…·æ  + Rename toolbar + é‡å‘½åå·¥å…·æ  - - 关于 + + 关于 - - + + Gui::Dialog::DlgCustomizeImp - Customize - 自定义 + Customize + 自定义 - &Help - 帮助(&H) + &Help + 帮助(&H) - &Close - 关闭(&C) + &Close + 关闭(&C) - - + + Gui::Dialog::DlgCustomizeSpaceball - Spaceball - è½¨è¿¹çƒ + Spaceball + è½¨è¿¹çƒ - No Spaceball Present - 当剿— è½¨è¿¹çƒ + No Spaceball Present + 当剿— è½¨è¿¹çƒ - Buttons - 按钮 + Buttons + 按钮 - Clear - 清除 + Clear + 清除 - Print Reference - Print Reference + Print Reference + Print Reference - - + + Gui::Dialog::DlgDisplayProperties - Display properties - 显示属性 + Display properties + 显示属性 - Display - 显示 + Display + 显示 - Transparency: - 逿˜Žåº¦: + Transparency: + 逿˜Žåº¦: - Line width: - 线宽: + Line width: + 线宽: - Point size: - 点大å°: + Point size: + 点大å°: - Material - æè´¨ + Material + æè´¨ - ... - ... + ... + ... - Close - 关闭 + Close + 关闭 - Viewing mode - æŸ¥çœ‹æ¨¡å¼ + Viewing mode + æŸ¥çœ‹æ¨¡å¼ - Display mode: - 显示模å¼: + Display mode: + 显示模å¼: - Plot mode: - 绘制模å¼: + Plot mode: + 绘制模å¼: - - 关于 + + 关于 - Line transparency: - 线æ¡é€æ˜Žåº¦: + Line transparency: + 线æ¡é€æ˜Žåº¦: - Line color: - 线æ¡é¢œè‰²: + Line color: + 线æ¡é¢œè‰²: - Shape color: - 形状颜色: + Shape color: + 形状颜色: - Color plot: - Color plot: + Color plot: + Color plot: - - + + Document window: + + + + Gui::Dialog::DlgEditorSettings - Editor - 编辑器 + Editor + 编辑器 - Options - 选项 + Options + 选项 - Enable line numbers - å¯ç”¨è¡Œå· + Enable line numbers + å¯ç”¨è¡Œå· - Enable folding - å¯ç”¨æŠ˜å  + Enable folding + å¯ç”¨æŠ˜å  - Indentation - 缩进 + Indentation + 缩进 - Insert spaces - æ’入空格 + Insert spaces + æ’入空格 - Tab size: - 制表符长度: + Tab size: + 制表符长度: - Indent size: - 缩进大å°: + Indent size: + 缩进大å°: - Keep tabs - ä¿ç•™åˆ¶è¡¨ç¬¦ + Keep tabs + ä¿ç•™åˆ¶è¡¨ç¬¦ - Display Items - 显示项目 + Display Items + 显示项目 - Family: - 字体æ—: + Family: + 字体æ—: - Size: - 大å°: + Size: + 大å°: - Preview: - 预览: + Preview: + 预览: - - 关于 + + 关于 - - + + Gui::Dialog::DlgGeneral - General - 常规 + General + 常规 - Start up - å¯åЍ + Start up + å¯åЍ - Enable splash screen at start up - 打开软件å¯åŠ¨ç•Œé¢ + Enable splash screen at start up + 打开软件å¯åŠ¨ç•Œé¢ - Switch to tab of report window: - 切æ¢åˆ°æŠ¥å‘Šçª—壿 ‡ç­¾: + Switch to tab of report window: + 切æ¢åˆ°æŠ¥å‘Šçª—壿 ‡ç­¾: - Auto load module after start up: - å¯åЍåŽè‡ªåŠ¨åŠ è½½æ¨¡å—: + Auto load module after start up: + å¯åЍåŽè‡ªåŠ¨åŠ è½½æ¨¡å—: - Language - 语言 + Language + 语言 - Change language: - 更改语言: + Change language: + 更改语言: - Main window - ä¸»çª—å£ + Main window + ä¸»çª—å£ - Size of recent file list - æœ€è¿‘æ–‡ä»¶åˆ—è¡¨å¤§å° + Size of recent file list + æœ€è¿‘æ–‡ä»¶åˆ—è¡¨å¤§å° - Window style: - 窗å£é£Žæ ¼: + Window style: + 窗å£é£Žæ ¼: - Size of toolbar icons: - 工具æ å›¾æ ‡å¤§å°: + Size of toolbar icons: + 工具æ å›¾æ ‡å¤§å°: - - + + Gui::Dialog::DlgGeneralImp - Default (%1 x %1) - 默认(%1 x %1) + Default (%1 x %1) + 默认(%1 x %1) - Small (%1 x %1) - å°(%1 x %1) + Small (%1 x %1) + å°(%1 x %1) - Large (%1 x %1) - 大(%1 x %1) + Large (%1 x %1) + 大(%1 x %1) - Extra large (%1 x %1) - 特大(%1 x %1) + Extra large (%1 x %1) + 特大(%1 x %1) - - + + Gui::Dialog::DlgInputDialog - Input - 输入 + Input + 输入 - OK - 确定 + OK + 确定 - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - - 关于 + + 关于 - - + + Gui::Dialog::DlgInspector - Scene Inspector - 场景检索 + Scene Inspector + 场景检索 - - + + Gui::Dialog::DlgMacroExecute - Execute macro - æ‰§è¡Œå® + Execute macro + æ‰§è¡Œå® - Macro name: - å®åç§°: + Macro name: + å®åç§°: - Macro destination: - å®ç›®å½•: + Macro destination: + å®ç›®å½•: - Execute - 执行 + Execute + 执行 - Close - 关闭 + Close + 关闭 - Create - 创建 + Create + 创建 - Delete - 删除 + Delete + 删除 - Edit - 编辑 + Edit + 编辑 - - + + Gui::Dialog::DlgMacroExecuteImp - Macros - å® + Macros + å® - Macro file - 宿–‡ä»¶ + Macro file + 宿–‡ä»¶ - Enter a file name, please: - 请输入文件åç§°: + Enter a file name, please: + 请输入文件åç§°: - Existing file - 已存在文件 + Existing file + 已存在文件 - '%1'. + '%1'. This file already exists. - '%1'. + '%1'. 此文件已ç»å­˜åœ¨. - Delete macro - åˆ é™¤å® + Delete macro + åˆ é™¤å® - Do you really want to delete the macro '%1'? - 你真的è¦åˆ é™¤å®'%1'? + Do you really want to delete the macro '%1'? + 你真的è¦åˆ é™¤å®'%1'? - Cannot create file - 无法创建文件 + Cannot create file + 无法创建文件 - Creation of file '%1' failed. - 文件 '%1' 创建失败. + Creation of file '%1' failed. + 文件 '%1' 创建失败. - - + + Gui::Dialog::DlgMacroRecord - Macro recording - å®å½•制 + Macro recording + å®å½•制 - Macro name: - å®åç§°: + Macro name: + å®åç§°: - Stop - åœæ­¢ + Stop + åœæ­¢ - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - Macro path: - å®è·¯å¾„: + Macro path: + å®è·¯å¾„: - ... - ... + ... + ... - Record - 录制 + Record + 录制 - - + + Gui::Dialog::DlgMacroRecordImp - Macro recorder - å®è®°å½•器 + Macro recorder + å®è®°å½•器 - Specify first a place to save. - 首先指定ä¿å­˜ä½ç½®. + Specify first a place to save. + 首先指定ä¿å­˜ä½ç½®. - Existing macro - å·²æœ‰çš„å® + Existing macro + å·²æœ‰çš„å® - The macro '%1' already exists. Do you want to overwrite? - å®'%1'å·²ç»å­˜åœ¨.是å¦è¦è¦†ç›–? + The macro '%1' already exists. Do you want to overwrite? + å®'%1'å·²ç»å­˜åœ¨.是å¦è¦è¦†ç›–? - The macro directory doesn't exist. Please, choose another one. - å®ç›®å½•ä¸å­˜åœ¨.è¯·é‡æ–°é€‰æ‹©. + The macro directory doesn't exist. Please, choose another one. + å®ç›®å½•ä¸å­˜åœ¨.è¯·é‡æ–°é€‰æ‹©. - Choose macro directory - 选择å®ç›®å½• + Choose macro directory + 选择å®ç›®å½• - - + + Gui::Dialog::DlgMaterialProperties - Material properties - æè´¨å±žæ€§ + Material properties + æè´¨å±žæ€§ - &Close - 关闭(&C) + &Close + 关闭(&C) - Alt+C - Alt+C + Alt+C + Alt+C - Material - æè´¨ + Material + æè´¨ - Diffuse color: - 漫射颜色: + Diffuse color: + 漫射颜色: - Specular color: - 高光颜色: + Specular color: + 高光颜色: - Shininess: - å光度: + Shininess: + å光度: - % - % + % + % - Ambient color: - 环境色: + Ambient color: + 环境色: - - 关于 + + 关于 - Emissive color: - å‘光颜色: + Emissive color: + å‘光颜色: - - + + Gui::Dialog::DlgOnlineHelp - On-line help - è”æœºå¸®åŠ© + On-line help + è”æœºå¸®åŠ© - Help viewer - 帮助阅读器 + Help viewer + 帮助阅读器 - Location of start page - 起始页的ä½ç½® + Location of start page + 起始页的ä½ç½® - - + + Gui::Dialog::DlgOnlineHelpImp - HTML files (*.html *.htm) - HTML文件(*.html *.htm) + HTML files (*.html *.htm) + HTML文件(*.html *.htm) - Access denied - æ‹’ç»è®¿é—® + Access denied + æ‹’ç»è®¿é—® - Access denied to '%1' + Access denied to '%1' Specify another directory, please. - 访问'%1'被拒ç»,请指定å¦ä¸€ä¸ªç›®å½•. + 访问'%1'被拒ç»,请指定å¦ä¸€ä¸ªç›®å½•. - - + + Gui::Dialog::DlgParameter - Parameter Editor - 傿•°ç¼–辑器 + Parameter Editor + 傿•°ç¼–辑器 - Save to disk - ä¿å­˜åˆ°ç£ç›˜ + Save to disk + ä¿å­˜åˆ°ç£ç›˜ - Alt+C - Alt+C + Alt+C + Alt+C - &Close - 关闭(&C) + &Close + 关闭(&C) - - + + Gui::Dialog::DlgParameterImp - Group - 组 + Group + 组 - Name - åç§° + Name + åç§° - Type - 类型 + Type + 类型 - Value - 值 + Value + 值 - User parameter - ç”¨æˆ·å‚æ•° + User parameter + ç”¨æˆ·å‚æ•° - Invalid input - 输入无效 + Invalid input + 输入无效 - Invalid key name '%1' - 无效的键å'%1' + Invalid key name '%1' + 无效的键å'%1' - System parameter - ç³»ç»Ÿå‚æ•° + System parameter + ç³»ç»Ÿå‚æ•° - - + + Gui::Dialog::DlgPreferences - Preferences - 首选项 + Preferences + 首选项 - &Help - 帮助(&H) + &Help + 帮助(&H) - Alt+H - Alt+H + Alt+H + Alt+H - &OK - 确定(&O) + &OK + 确定(&O) - &Apply - 应用(&A) + &Apply + 应用(&A) - Alt+A - Alt+A + Alt+A + Alt+A - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - - 关于 + + 关于 - - + + Gui::Dialog::DlgPreferencesImp - Wrong parameter - 傿•°é”™è¯¯ + Wrong parameter + 傿•°é”™è¯¯ - - + + Gui::Dialog::DlgProjectInformation - Project information - é¡¹ç›®ä¿¡æ¯ + Project information + é¡¹ç›®ä¿¡æ¯ - Information - ä¿¡æ¯ + Information + ä¿¡æ¯ - &Name: - åç§°(&N): + &Name: + åç§°(&N): - Commen&t: - 注释(&T): + Commen&t: + 注释(&T): - Path: - 路径: + Path: + 路径: - &Last modified by: - 上次修改(&L): + &Last modified by: + 上次修改(&L): - Created &by: - 作者(&B): + Created &by: + 作者(&B): - Com&pany: - å…¬å¸(&p): + Com&pany: + å…¬å¸(&p): - Last &modification date: - 最åŽä¿®æ”¹æ—¥æœŸ(&M): + Last &modification date: + 最åŽä¿®æ”¹æ—¥æœŸ(&M): - Creation &date: - 创建日期(&D): + Creation &date: + 创建日期(&D): - &OK - 确定(&O) + &OK + 确定(&O) - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - - 关于 + + 关于 - - + + Gui::Dialog::DlgProjectUtility - Project utility - 项目工具 + Project utility + 项目工具 - Extract project - æå–项目 + Extract project + æå–项目 - Source - æ¥æº + Source + æ¥æº - Project file (*.fcstd) - 项目文件(*.fcstd) + Project file (*.fcstd) + 项目文件(*.fcstd) - Destination - 目标 + Destination + 目标 - Extract - æå– + Extract + æå– - Create project - 创建项目 + Create project + 创建项目 - Document.xml - Document.xml + Document.xml + Document.xml - Create - 创建 + Create + 创建 - Load project file after creation - 创建项目文件åŽå³åŠ è½½ + Load project file after creation + 创建项目文件åŽå³åŠ è½½ - Empty source - æ¥æºä¸ºç©º + Empty source + æ¥æºä¸ºç©º - No source is defined. - æœªå®šä¹‰æ¥æº. + No source is defined. + æœªå®šä¹‰æ¥æº. - Empty destination - 目标为空 + Empty destination + 目标为空 - No destination is defined. - 未定义目标. + No destination is defined. + 未定义目标. - - + + Gui::Dialog::DlgReportView - Output window - è¾“å‡ºçª—å£ + Output window + è¾“å‡ºçª—å£ - Output - 输出 + Output + 输出 - Record log messages - 记录日志 + Record log messages + 记录日志 - Record warnings - 记录警告 + Record warnings + 记录警告 - Record error messages - 记录错误 + Record error messages + 记录错误 - Colors - 颜色 + Colors + 颜色 - Normal messages: - 正常的消æ¯: + Normal messages: + 正常的消æ¯: - Log messages: - 日志信æ¯: + Log messages: + 日志信æ¯: - Warnings: - 警告: + Warnings: + 警告: - Errors: - 错误: + Errors: + 错误: - - 关于 + + 关于 - Redirect internal Python errors to report view - Python的错误é‡å®šå‘到报告æµè§ˆå™¨ + Redirect internal Python errors to report view + Python的错误é‡å®šå‘到报告æµè§ˆå™¨ - Redirect internal Python output to report view - 内部Python输出é‡å®šå‘至报表æµè§ˆå™¨ + Redirect internal Python output to report view + 内部Python输出é‡å®šå‘至报表æµè§ˆå™¨ - - + + Gui::Dialog::DlgRunExternal - Running external program - è¿è¡Œå¤–éƒ¨ç¨‹åº + Running external program + è¿è¡Œå¤–éƒ¨ç¨‹åº - TextLabel - 文本标签 + TextLabel + 文本标签 - Advanced >> - 高级 >> + Advanced >> + 高级 >> - ... - ... + ... + ... - Accept changes - æŽ¥å—æ›´æ”¹ + Accept changes + æŽ¥å—æ›´æ”¹ - Discard changes - 放弃修改 + Discard changes + 放弃修改 - Abort program - ç»ˆæ­¢ç¨‹åº + Abort program + ç»ˆæ­¢ç¨‹åº - Help - 帮助 + Help + 帮助 - Select a file - 选择一个文件 + Select a file + 选择一个文件 - - + + Gui::Dialog::DlgSettings3DView - 3D View - 3D 视图 + 3D View + 3D 视图 - 3D View settings - 3D 视图设置 + 3D View settings + 3D 视图设置 - Show coordinate system in the corner - åæ ‡ç³»ç»Ÿæ˜¾ç¤ºåœ¨è¾¹è§’ + Show coordinate system in the corner + åæ ‡ç³»ç»Ÿæ˜¾ç¤ºåœ¨è¾¹è§’ - Show counter of frames per second - 显示æ¯ç§’è¿è¡Œå¸§æ•° + Show counter of frames per second + 显示æ¯ç§’è¿è¡Œå¸§æ•° - Enable animation - å¯ç”¨åŠ¨ç”» + Enable animation + å¯ç”¨åŠ¨ç”» - Enable anti-aliasing (slower) - å¯ç”¨æŠ—锯齿(æ…¢) + Enable anti-aliasing (slower) + å¯ç”¨æŠ—锯齿(æ…¢) - Eye to eye distance for stereo modes: - 立体模å¼çš„åŒçœ¼è·ç¦»: + Eye to eye distance for stereo modes: + 立体模å¼çš„åŒçœ¼è·ç¦»: - Camera type - 相机类型 + Camera type + 相机类型 - Orthographic rendering - 等轴侧渲染 + Orthographic rendering + 等轴侧渲染 - Perspective rendering - é€è§†æ¸²æŸ“ + Perspective rendering + é€è§†æ¸²æŸ“ - - 关于 + + 关于 - 3D Navigation - 3D 导航 + 3D Navigation + 3D 导航 - Mouse... - é¼ æ ‡... + Mouse... + é¼ æ ‡... - Intensity of backlight - 背光强度 + Intensity of backlight + 背光强度 - Enable backlight color - å¯ç”¨èƒŒå…‰é¢œè‰² + Enable backlight color + å¯ç”¨èƒŒå…‰é¢œè‰² - Orbit style - å¯¼èˆªæ¨¡å¼ + Orbit style + å¯¼èˆªæ¨¡å¼ - Turntable - 转盘 + Turntable + 转盘 - Trackball - è½¨è¿¹çƒ + Trackball + è½¨è¿¹çƒ - Invert zoom - åå‘缩放 + Invert zoom + åå‘缩放 - - + + Zoom at cursor + + + + Zoom step + + + + Gui::Dialog::DlgSettings3DViewImp - %1 navigation - %1 导航 + %1 navigation + %1 导航 - - + + Gui::Dialog::DlgSettingsColorGradient - Color model - é¢œè‰²æ¨¡å¼ + Color model + é¢œè‰²æ¨¡å¼ - &Gradient: - æ¸å˜(&G): + &Gradient: + æ¸å˜(&G): - red-yellow-green-cyan-blue - 红-黄-绿-é’-è“ + red-yellow-green-cyan-blue + 红-黄-绿-é’-è“ - blue-cyan-green-yellow-red - è“-é’-绿-黄-红 + blue-cyan-green-yellow-red + è“-é’-绿-黄-红 - white-black - 白黑 + white-black + 白黑 - black-white - 黑白 + black-white + 黑白 - Visibility - å¯è§æ€§ + Visibility + å¯è§æ€§ - Out g&rayed - ç°åº¦(&R) + Out g&rayed + ç°åº¦(&R) - Alt+R - Alt+R + Alt+R + Alt+R - Out &invisible - ä¸å¯è§(&I) + Out &invisible + ä¸å¯è§(&I) - Alt+I - Alt+I + Alt+I + Alt+I - Style - æ ·å¼ + Style + æ ·å¼ - &Zero - é›¶ (&Z) + &Zero + é›¶ (&Z) - Alt+Z - Alt+Z + Alt+Z + Alt+Z - &Flow - æµ(&F) + &Flow + æµ(&F) - Alt+F - Alt+F + Alt+F + Alt+F - &OK - 确定(&O) + &OK + 确定(&O) - &Cancel - å–æ¶ˆ(&C) + &Cancel + å–æ¶ˆ(&C) - Parameter range - 傿•°èŒƒå›´ + Parameter range + 傿•°èŒƒå›´ - Mi&nimum: - 最å°å€¼(&N): + Mi&nimum: + 最å°å€¼(&N): - Ma&ximum: - 最大值(&X): + Ma&ximum: + 最大值(&X): - &Labels: - 标签(&L): + &Labels: + 标签(&L): - &Decimals: - å°æ•°ä½æ•°(&D): + &Decimals: + å°æ•°ä½æ•°(&D): - - 关于 + + 关于 - Color-gradient settings - 颜色æ¸å˜è®¾ç½® + Color-gradient settings + 颜色æ¸å˜è®¾ç½® - - + + Gui::Dialog::DlgSettingsColorGradientImp - Wrong parameter - 傿•°é”™è¯¯ + Wrong parameter + 傿•°é”™è¯¯ - The maximum value must be higher than the minimum value. - 最大值必须大于最å°å€¼. + The maximum value must be higher than the minimum value. + 最大值必须大于最å°å€¼. - - + + Gui::Dialog::DlgSettingsDocument - Document - 文档 + Document + 文档 - General - 常规 + General + 常规 - Document save compression level + Document save compression level (0 = none, 9 = highest, 3 = default) - ä¿å­˜æ–‡ä»¶çš„压缩级别(0 = 无,9 = 最高,3 = 默认) + ä¿å­˜æ–‡ä»¶çš„压缩级别(0 = 无,9 = 最高,3 = 默认) - Create new document at start up - å¯åŠ¨æ—¶åˆ›å»ºæ–°æ–‡æ¡£ + Create new document at start up + å¯åŠ¨æ—¶åˆ›å»ºæ–°æ–‡æ¡£ - Storage - 存储 + Storage + 存储 - Saving transactions (Auto-save) - ä¿å­˜äº¤äº’记录(自动ä¿å­˜) + Saving transactions (Auto-save) + ä¿å­˜äº¤äº’记录(自动ä¿å­˜) - Discard saved transaction after saving document - ä¿å­˜æ–‡ä»¶åŽæ”¾å¼ƒä¿å­˜åކå²è®°å½• + Discard saved transaction after saving document + ä¿å­˜æ–‡ä»¶åŽæ”¾å¼ƒä¿å­˜åކå²è®°å½• - Save thumbnail into project file when saving document - ä¿å­˜æ–‡ä»¶æ—¶åŒæ—¶ä¿å­˜ç¼©ç•¥å›¾åˆ°é¡¹ç›®æ–‡ä»¶ + Save thumbnail into project file when saving document + ä¿å­˜æ–‡ä»¶æ—¶åŒæ—¶ä¿å­˜ç¼©ç•¥å›¾åˆ°é¡¹ç›®æ–‡ä»¶ - Create up to backup files when resaving document - 釿–°ä¿å­˜æ–‡ä»¶æ—¶åˆ›å»ºå¤‡ä»½ + Create up to backup files when resaving document + 釿–°ä¿å­˜æ–‡ä»¶æ—¶åˆ›å»ºå¤‡ä»½ - Document objects - 文档对象 + Document objects + 文档对象 - Allow duplicate object labels in one document - 在一个文档中å…许é‡å¤çš„对象标签 + Allow duplicate object labels in one document + 在一个文档中å…许é‡å¤çš„对象标签 - Maximum Undo/Redo steps - 最大撤消/é‡åšæ­¥æ•° + Maximum Undo/Redo steps + 最大撤消/é‡åšæ­¥æ•° - Using Undo/Redo on documents - 在文档上使用撤消/é‡åš + Using Undo/Redo on documents + 在文档上使用撤消/é‡åš - - + + Gui::Dialog::DlgSettingsEditorImp - Text - 文本 + Text + 文本 - Bookmark - 书签 + Bookmark + 书签 - Breakpoint - 断点 + Breakpoint + 断点 - Keyword - 关键字 + Keyword + 关键字 - Comment - 注释 + Comment + 注释 - Block comment - å—æ³¨é‡Š + Block comment + å—æ³¨é‡Š - Number - æ•° + Number + æ•° - String - 字符串 + String + 字符串 - Character - 字符 + Character + 字符 - Class name - ç±»åç§° + Class name + ç±»åç§° - Define name - 定义åç§° + Define name + 定义åç§° - Operator - è¿ç®—符 + Operator + è¿ç®—符 - Python output - Python 输出 + Python output + Python 输出 - Python error - Python 错误 + Python error + Python 错误 - Items - 项目 + Items + 项目 - - + + Current line highlight + + + + Gui::Dialog::DlgSettingsImage - Image settings - 图åƒè®¾ç½® + Image settings + 图åƒè®¾ç½® - Image properties - 图片属性 + Image properties + 图片属性 - Back&ground: - 背景(&G): + Back&ground: + 背景(&G): - Current - å½“å‰ + Current + å½“å‰ - White - 白色 + White + 白色 - Black - 黑色 + Black + 黑色 - Transparent - 逿˜Ž + Transparent + 逿˜Ž - Image dimensions - 图åƒå¤§å° + Image dimensions + 图åƒå¤§å° - Pixel - åƒç´  + Pixel + åƒç´  - &Width: - 宽度(&W): + &Width: + 宽度(&W): - Current screen - 当å‰å±å¹• + Current screen + 当å‰å±å¹• - Icon 32 x 32 - 图标32x32 + Icon 32 x 32 + 图标32x32 - Icon 64 x 64 - 图标64x62 + Icon 64 x 64 + 图标64x62 - Icon 128 x 128 - 图标128x128 + Icon 128 x 128 + 图标128x128 - CGA 320 x 200 - CGA 320x320 + CGA 320 x 200 + CGA 320x320 - QVGA 320 x 240 - QVGA 320x240 + QVGA 320 x 240 + QVGA 320x240 - VGA 640 x 480 - VGA 640x480 + VGA 640 x 480 + VGA 640x480 - NTSC 720 x 480 - NTSC 720x480 + NTSC 720 x 480 + NTSC 720x480 - PAL 768 x 578 - PAL 768x578 + PAL 768 x 578 + PAL 768x578 - SVGA 800 x 600 - SVGA 800x600 + SVGA 800 x 600 + SVGA 800x600 - XGA 1024 x 768 - XGA 1024x768 + XGA 1024 x 768 + XGA 1024x768 - HD720 1280 x 720 - HD720 1280 x 720 + HD720 1280 x 720 + HD720 1280 x 720 - SXGA 1280 x 1024 - SXGA 1280 x 1024 + SXGA 1280 x 1024 + SXGA 1280 x 1024 - SXGA+ 1400 x 1050 - SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 + SXGA+ 1400 x 1050 - UXGA 1600 x 1200 - UXGA 1600 x 1200 + UXGA 1600 x 1200 + UXGA 1600 x 1200 - HD1080 1920 x 1080 - HD1080 1920 x 1080 + HD1080 1920 x 1080 + HD1080 1920 x 1080 - WUXGA 1920 x 1200 - WUXGA 1920 x 1200 + WUXGA 1920 x 1200 + WUXGA 1920 x 1200 - QXGA 2048 x 1538 - QXGA 2048 x 1538 + QXGA 2048 x 1538 + QXGA 2048 x 1538 - WQXGA 2560 x 1600 - WQXGA 2560 x 1600 + WQXGA 2560 x 1600 + WQXGA 2560 x 1600 - QSXGA 2560 x 2048 - QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + QSXGA 2560 x 2048 + + + QUXGA 3200 × 2400 + QUXGA 3200 × 2400 + + + HUXGA 6400 × 4800 + HUXGA 6400 × 4800 - QUXGA 3200 × 2400 - QUXGA 3200 × 2400 + !!! 10000 x 10000 + !!! 10000 x 10000 - HUXGA 6400 × 4800 - HUXGA 6400 × 4800 + Standard sizes: + 标准尺寸: - !!! 10000 x 10000 - !!! 10000 x 10000 + &Height: + 高度(&H): - Standard sizes: - 标准尺寸: + Aspect ratio: + 高宽比: - &Height: - 高度(&H): + &Screen + å±å¹•(&S) - Aspect ratio: - 高宽比: + Alt+S + Alt+S - &Screen - å±å¹•(&S) + &4:3 + &4:3 - Alt+S - Alt+S + Alt+4 + Alt+4 - &4:3 - &4:3 + 1&6:9 + 1&6:9 - Alt+4 - Alt+4 + Alt+6 + Alt+6 - 1&6:9 - 1&6:9 + &1:1 + &1:1 - Alt+6 - Alt+6 + Alt+1 + Alt+1 - &1:1 - &1:1 + Image comment + 图åƒå¤‡æ³¨ - Alt+1 - Alt+1 + Insert MIBA + æ’å…¥ MIBA - Image comment - 图åƒå¤‡æ³¨ + Insert comment + æ’入批注 - - Insert MIBA - æ’å…¥ MIBA - - - Insert comment - æ’入批注 - - - + + Gui::Dialog::DlgSettingsMacro - Macro - å® + Macro + å® - Macro recording settings - å®å½•制设置 + Macro recording settings + å®å½•制设置 - Logging Commands - 记录命令 + Logging Commands + 记录命令 - Show script commands in python console - 在PythonæŽ§åˆ¶å°æ˜¾ç¤ºè„šæœ¬ + Show script commands in python console + 在PythonæŽ§åˆ¶å°æ˜¾ç¤ºè„šæœ¬ - Log all commands issued by menus to file: - 记录所有èœå•执行命令到文件: + Log all commands issued by menus to file: + 记录所有èœå•执行命令到文件: - FullScript.FCScript - FullScript.FCScript + FullScript.FCScript + FullScript.FCScript - Gui commands - GUI命令 + Gui commands + GUI命令 - Recording GUI commands - 记录GUI命令 + Recording GUI commands + 记录GUI命令 - Record as comment - 录制为注释 + Record as comment + 录制为注释 - Macro path - å®è·¯å¾„ + Macro path + å®è·¯å¾„ - - + + General macro settings + + + + Run macros in local environment + + + + Gui::Dialog::DlgSettingsUnits - Units - å•ä½ + Units + å•ä½ - Units settings - å•ä½è®¾ç½® + Units settings + å•ä½è®¾ç½® - Standard (mm/kg/s/degree) - 标准(mm/kg/s/degree) + Standard (mm/kg/s/degree) + 标准(mm/kg/s/degree) - MKS (m/kg/s/degree) - 公制(m/kg/s/degree) + MKS (m/kg/s/degree) + 公制(m/kg/s/degree) - Magnitude - é‡çº² + Magnitude + é‡çº² - Unit - å•ä½ + Unit + å•ä½ - User system: - 用户系统: + User system: + 用户系统: - Imperial (in/lb) - 英制 (in/lb) + Imperial (in/lb) + 英制 (in/lb) - - + + Gui::Dialog::DlgSettingsViewColor - Colors - 颜色 + Colors + 颜色 - Selection - 选择 + Selection + 选择 - Enable selection highlighting - å¯ç”¨é€‰æ‹©é«˜äº® + Enable selection highlighting + å¯ç”¨é€‰æ‹©é«˜äº® - Enable preselection highlighting - å¯ç”¨é¢„选高亮 + Enable preselection highlighting + å¯ç”¨é¢„选高亮 - Background color - 背景颜色 + Background color + 背景颜色 - Middle color - 中间色 + Middle color + 中间色 - Color gradient - æ¸å˜é¢œè‰² + Color gradient + æ¸å˜é¢œè‰² - Simple color - 简å•颜色 + Simple color + 简å•颜色 - Default colors - 默认颜色 + Default colors + 默认颜色 - Edited edge color - Edited edge color + Edited edge color + Edited edge color - Edited vertex color - Edited vertex color + Edited vertex color + Edited vertex color - Construction geometry - 构造几何体 + Construction geometry + 构造几何体 - Fully constrained geometry - 完全约æŸå‡ ä½•体 + Fully constrained geometry + 完全约æŸå‡ ä½•体 - The color of construction geometry in editmode - 编辑模å¼ä¸‹æž„造几何体的颜色 + The color of construction geometry in editmode + 编辑模å¼ä¸‹æž„造几何体的颜色 - The color of fully constrained geometry in editmode - 编辑模å¼ä¸‹å®Œå…¨çº¦æŸå‡ ä½•体的颜色 + The color of fully constrained geometry in editmode + 编辑模å¼ä¸‹å®Œå…¨çº¦æŸå‡ ä½•体的颜色 - The color of vertices being edited - 编辑状æ€é¡¶ç‚¹çš„颜色 + The color of vertices being edited + 编辑状æ€é¡¶ç‚¹çš„颜色 - The color of edges being edited - The color of edges being edited + The color of edges being edited + The color of edges being edited - - + + The color of construction geometry in edit mode + + + + The color of fully constrained geometry in edit mode + + + + Cursor text color + + + + Default shape color + + + + The default color for new shapes + + + + Default line width and color + + + + The default line color for new shapes + + + + The default line thickness for new shapes + + + + px + + + + Gui::Dialog::DlgTipOfTheDay - Tip of the day - æ¯æ—¥ä¸€å¸– + Tip of the day + æ¯æ—¥ä¸€å¸– - <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> - <b><font face="Times New Roman"><font size="+3">你知é“么...</font></font></b> + <b><font face="Times New Roman"><font size="+3">Did you know...</font></font></b> + <b><font face="Times New Roman"><font size="+3">你知é“么...</font></font></b> - &Show tips at start up - å¯åŠ¨æ—¶æç¤º(&S) + &Show tips at start up + å¯åŠ¨æ—¶æç¤º(&S) - Alt+S - Alt+S + Alt+S + Alt+S - &Next Tip - 下一个(&N) + &Next Tip + 下一个(&N) - Alt+N - Alt+N + Alt+N + Alt+N - &Close - 关闭(&C) + &Close + 关闭(&C) - Alt+C - Alt+C + Alt+C + Alt+C - - 关于 + + 关于 - - + + Gui::Dialog::DlgTipOfTheDayImp - Download failed: %1 + Download failed: %1 - 下载失败: %1 + 下载失败: %1 - If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. - 如果您想了解更多有关FreeCAD,请访问 %1 或点击帮助èœå•中的帮助文件. + If you want to learn more about FreeCAD you must go to %1 or press the Help item in the Help menu. + 如果您想了解更多有关FreeCAD,请访问 %1 或点击帮助èœå•中的帮助文件. - - + + Gui::Dialog::DockablePlacement - Placement - å®šä½ + Placement + å®šä½ - - + + Gui::Dialog::DownloadDialog - Canceled. - å–æ¶ˆ. + Canceled. + å–æ¶ˆ. - - + + Download + + + + Cancel + å–æ¶ˆ + + + Close + 关闭 + + + There already exists a file called %1 in the current directory. Overwrite? + + + + Unable to save the file %1: %2. + + + + Downloading %1. + + + + Download canceled. + + + + Download failed: %1. + 下载失败: %1. + + + Downloaded %1 to current directory. + + + + Gui::Dialog::IconDialog - Add icon - 添加图标 + Add icon + 添加图标 - - + + Gui::Dialog::InputVector - Input vector - 输入å‘é‡ + Input vector + 输入å‘é‡ - Vector - å‘é‡ + Vector + å‘é‡ - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - OK - 确定 + OK + 确定 - - + + + Gui::Dialog::LicenseDialog + + Copyright + + + + Gui::Dialog::MouseButtons - Mouse buttons - 鼠标按键 + Mouse buttons + 鼠标按键 - Configuration - é…ç½® + Configuration + é…ç½® - Selection: - 选择: + Selection: + 选择: - Panning - 平移 + Panning + 平移 - Rotation: - 旋转: + Rotation: + 旋转: - Zooming: - 缩放: + Zooming: + 缩放: - - + + Gui::Dialog::ParameterGroup - Expand - 展开 + Expand + 展开 - Add sub-group - 添加å­ç»„ + Add sub-group + 添加å­ç»„ - Remove group - 删除组 + Remove group + 删除组 - Rename group - é‡å‘½å组 + Rename group + é‡å‘½å组 - Export parameter - å¯¼å‡ºå‚æ•° + Export parameter + å¯¼å‡ºå‚æ•° - Import parameter - 坼入傿•° + Import parameter + 坼入傿•° - Collapse - æŠ˜å  + Collapse + æŠ˜å  - Do really want to remove this parameter group? - 是å¦çœŸçš„åˆ é™¤æ­¤å‚æ•°ç»„? + Do really want to remove this parameter group? + 是å¦çœŸçš„åˆ é™¤æ­¤å‚æ•°ç»„? - Existing sub-group - 已存在å­ç»„ + Existing sub-group + 已存在å­ç»„ - The sub-group '%1' already exists. - å­ç»„'%1'å·²ç»å­˜åœ¨. + The sub-group '%1' already exists. + å­ç»„'%1'å·²ç»å­˜åœ¨. - Export parameter to file - å¯¼å‡ºå‚æ•°åˆ°æ–‡ä»¶ + Export parameter to file + å¯¼å‡ºå‚æ•°åˆ°æ–‡ä»¶ - XML (*.FCParam) - XML (*.FCParam) + XML (*.FCParam) + XML (*.FCParam) - Import parameter from file - ä»Žæ–‡ä»¶ä¸­å¯¼å…¥å‚æ•° + Import parameter from file + ä»Žæ–‡ä»¶ä¸­å¯¼å…¥å‚æ•° - Import Error - 导入错误 + Import Error + 导入错误 - Reading from '%1' failed. - 读å–'%1'失败. + Reading from '%1' failed. + 读å–'%1'失败. - - + + Gui::Dialog::ParameterValue - Change value - 更改值 + Change value + 更改值 - Remove key - 删除键 + Remove key + 删除键 - Rename key - é‡å‘½åé”® + Rename key + é‡å‘½åé”® - New - 新建 + New + 新建 - New string item - 新字符串项 + New string item + 新字符串项 - New float item - 新浮点数 + New float item + 新浮点数 - New integer item - æ–°æ•´æ•° + New integer item + æ–°æ•´æ•° - New unsigned item - æ–°æ— ç¬¦å·æ•° + New unsigned item + æ–°æ— ç¬¦å·æ•° - New Boolean item - 新布尔值 + New Boolean item + 新布尔值 - Existing item - 已存在项目 + Existing item + 已存在项目 - The item '%1' already exists. - 对象'%1'å·²ç»å­˜åœ¨. + The item '%1' already exists. + 对象'%1'å·²ç»å­˜åœ¨. - - + + Gui::Dialog::Placement - Placement - å®šä½ + Placement + å®šä½ - OK - 确定 + OK + 确定 - Translation: - å˜æ¢: + Translation: + å˜æ¢: - Z: - Z: + Z: + Z: - Y: - Y: + Y: + Y: - X: - X: + X: + X: - Rotation: - 旋转: + Rotation: + 旋转: - Angle: - 角度: + Angle: + 角度: - Axis: - è½´: + Axis: + è½´: - Center: - 中心: + Center: + 中心: - Pitch: - é—´è·: + Pitch: + é—´è·: - Roll: - å·: + Roll: + å·: - Yaw: - å: + Yaw: + å: - Rotation axis with angle - Rotation axis with angle + Rotation axis with angle + Rotation axis with angle - Euler angles - 欧拉角 + Euler angles + 欧拉角 - Apply placement changes immediately - ç«‹å³åº”用更改 + Apply placement changes immediately + ç«‹å³åº”用更改 - Apply incremental changes to object placement - 应用更改到对象 + Apply incremental changes to object placement + 应用更改到对象 - Apply - 应用 + Apply + 应用 - Reset - é‡è®¾ + Reset + é‡è®¾ - Close - 关闭 + Close + 关闭 - - + + Gui::Dialog::PrintModel - Button - 按钮 + Button + 按钮 - Command - 命令 + Command + 命令 - - + + Gui::Dialog::SceneInspector - Dialog - å¯¹è¯æ¡† + Dialog + å¯¹è¯æ¡† - Close - 关闭 + Close + 关闭 - Refresh - 刷新 + Refresh + 刷新 - - + + Gui::Dialog::SceneModel - Inventor Tree - 结构树 + Inventor Tree + 结构树 - Nodes - 节点 + Nodes + 节点 - - + + Gui::Dialog::TextureMapping - Texture - çº¹ç† + Texture + çº¹ç† - Texture mapping - çº¹ç†æ˜ å°„ + Texture mapping + çº¹ç†æ˜ å°„ - Global - 全局 + Global + 全局 - Environment - 环境 + Environment + 环境 - Image files (%1) - å›¾åƒæ–‡ä»¶(%1) + Image files (%1) + å›¾åƒæ–‡ä»¶(%1) - No image - 无图片 + No image + 无图片 - The specified file is not a valid image file. - æŒ‡å®šçš„æ–‡ä»¶ä¸æ˜¯æœ‰æ•ˆçš„å›¾åƒæ–‡ä»¶. + The specified file is not a valid image file. + æŒ‡å®šçš„æ–‡ä»¶ä¸æ˜¯æœ‰æ•ˆçš„å›¾åƒæ–‡ä»¶. - No 3d view - æ— 3D视图 + No 3d view + æ— 3D视图 - No active 3d view found. - 未å‘现活动的3d视图. + No active 3d view found. + 未å‘现活动的3d视图. - - + + Gui::Dialog::Transform - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - Transform - å˜æ¢ + Transform + å˜æ¢ - - + + Gui::DlgTreeWidget - Dialog - å¯¹è¯æ¡† + Dialog + å¯¹è¯æ¡† - Items - 项目 + Items + 项目 - OK - 确定 + OK + 确定 - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - - 关于 + + 关于 - - + + Gui::DockWnd::CombiView - CombiView - 组åˆè§†å›¾ + CombiView + 组åˆè§†å›¾ - Project - 项目 + Project + 项目 - Tasks - 任务 + Tasks + 任务 - - + + Gui::DockWnd::HelpView - Previous - 上一个 + Previous + 上一个 - Next - 下一个 + Next + 下一个 - Home - 主页 + Home + 主页 - Open - 打开 + Open + 打开 - Open file - 打开文件 + Open file + 打开文件 - All HTML files (*.html *.htm) - 所有HTML文件(*.html *.htm) + All HTML files (*.html *.htm) + 所有HTML文件(*.html *.htm) - External browser - 外部æµè§ˆå™¨ + External browser + 外部æµè§ˆå™¨ - No external browser found. Specify in preferences, please - 未å‘现外部æµè§ˆå™¨.请在首选项中设置 + No external browser found. Specify in preferences, please + 未å‘现外部æµè§ˆå™¨.请在首选项中设置 - Starting of %1 failed - å¯åЍ %1 失败 + Starting of %1 failed + å¯åЍ %1 失败 - - + + Gui::DockWnd::PropertyDockView - Property View - 属性æµè§ˆå™¨ + Property View + 属性æµè§ˆå™¨ - - + + Gui::DockWnd::ReportOutput - Logging - 日志 + Logging + 日志 - Warning - 警告 + Warning + 警告 - Error - 错误 + Error + 错误 - Options - 选项 + Options + 选项 - Clear - 清除 + Clear + 清除 - Save As... - å¦å­˜ä¸º... + Save As... + å¦å­˜ä¸º... - Save Report Output - ä¿å­˜è¾“出报告 + Save Report Output + ä¿å­˜è¾“出报告 - Plain Text Files (*.txt *.log) - 文本文件(*.txt *.log) + Plain Text Files (*.txt *.log) + 文本文件(*.txt *.log) - Go to end - è½¬åˆ°ç»“æŸ + Go to end + è½¬åˆ°ç»“æŸ - Redirect Python output - é‡å®šå‘Python输出 + Redirect Python output + é‡å®šå‘Python输出 - Redirect Python errors - Python错误é‡å®šå‘ + Redirect Python errors + Python错误é‡å®šå‘ - - + + Gui::DockWnd::ReportView - Output - 输出 + Output + 输出 - Python console - PythonæŽ§åˆ¶å° + Python console + PythonæŽ§åˆ¶å° - - + + Gui::DockWnd::SelectionView - Property View - 属性æµè§ˆå™¨ + Property View + 属性æµè§ˆå™¨ - - + + Gui::DockWnd::TaskPanelView - Task View - 任务æµè§ˆå™¨ + Task View + 任务æµè§ˆå™¨ - - + + Gui::DockWnd::TextBrowser - Could not open file. - 无法打开文件. + Could not open file. + 无法打开文件. - You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. - 您试图访问地å€'%1',当å‰ä¸å¯ç”¨ã€‚请确ä¿URL存在,并釿–°å°è¯•加载该页é¢. + You tried to access the address %1 which is currently unavailable. Please make sure that the URL exists and try reloading the page. + 您试图访问地å€'%1',当å‰ä¸å¯ç”¨ã€‚请确ä¿URL存在,并釿–°å°è¯•加载该页é¢. - Connecting to %1 - 连接到 %1 + Connecting to %1 + 连接到 %1 - Sending to %1 - å‘é€åˆ° %1 + Sending to %1 + å‘é€åˆ° %1 - Reading from %1 - 读å–'%1' + Reading from %1 + 读å–'%1' - Download failed: %1. - 下载失败: %1. + Download failed: %1. + 下载失败: %1. - Previous - 上一个 + Previous + 上一个 - Forward - å‘å‰ + Forward + å‘å‰ - Home - 主页 + Home + 主页 - Refresh - 刷新 + Refresh + 刷新 - Copy - å¤åˆ¶ + Copy + å¤åˆ¶ - Select all - 全选 + Select all + 全选 - No description for - 无说明 + No description for + 无说明 - - + + Gui::DocumentModel - Application - 工程 + Application + 工程 - Labels & Attributes - 标签 & 属性 + Labels & Attributes + 标签 & 属性 - - + + Gui::EditorView - Modified file - 修改åŽçš„æ–‡ä»¶ + Modified file + 修改åŽçš„æ–‡ä»¶ - %1. + %1. This has been modified outside of the source editor. Do you want to reload it? - %1. + %1. 它已被代ç ç¼–辑器之外的程åºä¿®æ”¹.是å¦é‡æ–°åŠ è½½? - Unsaved document - 未ä¿å­˜çš„æ–‡ä»¶ + Unsaved document + 未ä¿å­˜çš„æ–‡ä»¶ - The document has been modified. + The document has been modified. Do you want to save your changes? - 该文件已被修改. + 该文件已被修改. 是å¦è¦ä¿å­˜æ›´æ”¹? - FreeCAD macro (*.FCMacro);;Python (*.py) - FreeCAD å®(*.FCMacro);;Python(*.py) + FreeCAD macro (*.FCMacro);;Python (*.py) + FreeCAD å®(*.FCMacro);;Python(*.py) - Export PDF - 导出PDF + Export PDF + 导出PDF - PDF file (*.pdf) - PDF 文件(*.pdf) + PDF file (*.pdf) + PDF 文件(*.pdf) - untitled[*] - 无标题[*] + untitled[*] + 无标题[*] - - Editor - - Editor + - Editor + - Editor - %1 chars removed - 删除了 %1 个字符 + %1 chars removed + 删除了 %1 个字符 - %1 chars added - 增加了 %1 个字符 + %1 chars added + 增加了 %1 个字符 - Formatted - 已格å¼åŒ– + Formatted + 已格å¼åŒ– - - + + Gui::FileChooser - Select a file - 选择一个文件 + Select a file + 选择一个文件 - Select a directory - 选择一个目录 + Select a directory + 选择一个目录 - - + + Gui::FileDialog - Save as - å¦å­˜ä¸º + Save as + å¦å­˜ä¸º - Open - 打开 + Open + 打开 - - + + Gui::FileOptionsDialog - Extended - 扩展 + Extended + 扩展 - All files (*.*) - 所有文件(*.*) + All files (*.*) + 所有文件(*.*) - - + + Gui::Flag - Top left - 左上 + Top left + 左上 - Bottom left - 左下 + Bottom left + 左下 - Top right - å³ä¸Š + Top right + å³ä¸Š - Bottom right - å³ä¸‹ + Bottom right + å³ä¸‹ - Remove - 删除 + Remove + 删除 - - + + Gui::InventorNavigationStyle - Press CTRL and left mouse button - 按CTRL和鼠标左键 + Press CTRL and left mouse button + 按CTRL和鼠标左键 - Press middle mouse button - 按鼠标中键 + Press middle mouse button + 按鼠标中键 - Press left mouse button - 按鼠标左键 + Press left mouse button + 按鼠标左键 - Scroll middle mouse button - 滚动鼠标中键 + Scroll middle mouse button + 滚动鼠标中键 - - + + Gui::LocationDialog - Wrong direction - æ–¹å‘错误 + Wrong direction + æ–¹å‘错误 - Direction must not be the null vector - æ–¹å‘ä¸èƒ½æ˜¯é›¶å‘é‡ + Direction must not be the null vector + æ–¹å‘ä¸èƒ½æ˜¯é›¶å‘é‡ - X - X + X + X - Y - Y + Y + Y - Z - Z + Z + Z - User defined... - 用户定义... + User defined... + 用户定义... - - + + + Gui::LocationWidget + + X: + X: + + + Y: + Y: + + + Z: + Z: + + + Direction: + + + + Gui::MacroCommand - Macros - å® + Macros + å® - - + + Gui::MainWindow - Dimension - 尺寸标注 + Dimension + 尺寸标注 - Ready - 就绪 + Ready + 就绪 - Toggles this toolbar - åˆ‡æ¢æ­¤å·¥å…·æ  + Toggles this toolbar + åˆ‡æ¢æ­¤å·¥å…·æ  - Toggles this dockable window - åˆ‡æ¢æ­¤å¯åœé çš„çª—å£ + Toggles this dockable window + åˆ‡æ¢æ­¤å¯åœé çš„çª—å£ - Close All - 全部关闭 + Close All + 全部关闭 - - + + + Gui::ManualAlignment + + Manual alignment + + + + The alignment is already in progress. + + + + Alignment[*] + + + + Please, select at least one point in the left and the right view + + + + Please, select at least %1 points in the left and the right view + + + + Please pick points in the left and right view + + + + The alignment has finished + + + + The alignment has been canceled + + + + Too few points picked in the left view. At least %1 points are needed. + + + + Too few points picked in the right view. At least %1 points are needed. + + + + Different number of points picked in left and right view. +On the left view %1 points are picked, +on the right view %2 points are picked. + + + + Try to align group of views + + + + The alignment failed. +How do you want to proceed? + + + + Retry + + + + Ignore + + + + Abort + + + + Different number of points picked in left and right view. On the left view %1 points are picked, on the right view %2 points are picked. + + + + Point picked at (%1,%2,%3) + + + + No point was picked + + + + Gui::NetworkRetriever - Download started... + Download started... - 下载开始... + 下载开始... - - + + Gui::ProgressBar - Remaining: %1 - 剩余:%1 + Remaining: %1 + 剩余:%1 - Aborting - 异常终止 + Aborting + 异常终止 - Do you really want to abort the operation? - 你真的想中止è¿è¡Œä¹ˆ? + Do you really want to abort the operation? + 你真的想中止è¿è¡Œä¹ˆ? - - + + Gui::ProgressDialog - Remaining: %1 - 剩余:%1 + Remaining: %1 + 剩余:%1 - Aborting - 异常终止 + Aborting + 异常终止 - Do you really want to abort the operation? - 你真的想中止è¿è¡Œä¹ˆ? + Do you really want to abort the operation? + 你真的想中止è¿è¡Œä¹ˆ? - - + + Gui::PropertyEditor::PropertyModel - Property - 属性 + Property + 属性 - Value - 值 + Value + 值 - - + + Gui::PropertyView - View - 视图 + View + 视图 - Data - æ•°æ® + Data + æ•°æ® - - + + Gui::PythonConsole - System exit - 系统退出 + System exit + 系统退出 - The application is still running. + The application is still running. Do you want to exit without saving your data? - 应用程åºä»åœ¨è¿è¡Œ. + 应用程åºä»åœ¨è¿è¡Œ. 是å¦è¦é€€å‡ºè€Œä¸ä¿å­˜æ•°æ®? - Python console - PythonæŽ§åˆ¶å° + Python console + PythonæŽ§åˆ¶å° - Unhandled PyCXX exception. - 未处ç†çš„PyCXX异常. + Unhandled PyCXX exception. + 未处ç†çš„PyCXX异常. - Unhandled FreeCAD exception. - 未处ç†çš„FreeCAD异常. + Unhandled FreeCAD exception. + 未处ç†çš„FreeCAD异常. - Unhandled unknown C++ exception. - 未处ç†çš„æœªçŸ¥c++异常. + Unhandled unknown C++ exception. + 未处ç†çš„æœªçŸ¥c++异常. - &Copy command - å¤åˆ¶å‘½ä»¤(&C) + &Copy command + å¤åˆ¶å‘½ä»¤(&C) - &Copy history - å¤åˆ¶åކå²(&C) + &Copy history + å¤åˆ¶åކå²(&C) - Save history as... - 历å²è®°å½•å¦å­˜ä¸º... + Save history as... + 历å²è®°å½•å¦å­˜ä¸º... - Insert file name... - æ’入文件å... + Insert file name... + æ’入文件å... - Save History - ä¿å­˜åކå²è®°å½• + Save History + ä¿å­˜åކå²è®°å½• - Macro Files (*.FCMacro *.py) - 宿–‡ä»¶(*.FCMacro *.py) + Macro Files (*.FCMacro *.py) + 宿–‡ä»¶(*.FCMacro *.py) - Insert file name - æ’入文件å + Insert file name + æ’入文件å - All Files (*.*) - 所有文件(*.*) + All Files (*.*) + 所有文件(*.*) - Python Input Dialog - Pythonè¾“å…¥å¯¹è¯æ¡† + Python Input Dialog + Pythonè¾“å…¥å¯¹è¯æ¡† - Unhandled std C++ exception. - 未处ç†çš„æ ‡å‡†c++异常. + Unhandled std C++ exception. + 未处ç†çš„æ ‡å‡†c++异常. - Word wrap - 自动æ¢è¡Œ + Word wrap + 自动æ¢è¡Œ - &Copy - å¤åˆ¶(&C) + &Copy + å¤åˆ¶(&C) - &Paste - 粘贴(&P) + &Paste + 粘贴(&P) - Select All - 全选 + Select All + 全选 - - + + Clear console + + + + Gui::PythonEditor - Comment - 注释 + Comment + 注释 - Uncomment - å–æ¶ˆæ³¨é‡Š + Uncomment + å–æ¶ˆæ³¨é‡Š - - + + Gui::PythonInputField - OK - 确定 + OK + 确定 - Clear - 清除 + Clear + 清除 - - + + Gui::RecentFilesAction - Open file %1 - 打开文件%1 + Open file %1 + 打开文件%1 - File not found - 文件未找到 + File not found + 文件未找到 - The file '%1' cannot be opened. - 无法打开文件'%1'. + The file '%1' cannot be opened. + 无法打开文件'%1'. - - + + Gui::SelectModule - Select module - é€‰æ‹©æ¨¡å— + Select module + é€‰æ‹©æ¨¡å— - Open %1 as - 打开 %1 作为 + Open %1 as + 打开 %1 作为 - Select - 选择 + Select + 选择 - - + + Gui::StdCmdDescription - Help - 帮助 + Help + 帮助 - Des&cription - æè¿°(&C) + Des&cription + æè¿°(&C) - Long description of commands - 命令的详细æè¿° + Long description of commands + 命令的详细æè¿° - - + + Gui::StdCmdDownloadOnlineHelp - Help - 帮助 + Help + 帮助 - Download online help - 下载在线帮助 + Download online help + 下载在线帮助 - Download %1's online help - 下载 %1 çš„è”æœºå¸®åŠ© + Download %1's online help + 下载 %1 çš„è”æœºå¸®åŠ© - Non-existing directory - ä¸å­˜åœ¨çš„目录 + Non-existing directory + ä¸å­˜åœ¨çš„目录 - The directory '%1' does not exist. + The directory '%1' does not exist. Do you want to specify an existing directory? - 目录'%1'ä¸å­˜åœ¨. + 目录'%1'ä¸å­˜åœ¨. ä½ è¦æŒ‡å®šä¸€ä¸ªçŽ°æœ‰çš„ç›®å½•? - Missing permission - 缺少æƒé™ + Missing permission + 缺少æƒé™ - You don't have write permission to '%1' + You don't have write permission to '%1' Do you want to specify another directory? - 您没有写入'%1'æƒé™ + 您没有写入'%1'æƒé™ è¦æŒ‡å®šå¦ä¸€ä¸ªç›®å½•? - Stop downloading - åœæ­¢ä¸‹è½½ + Stop downloading + åœæ­¢ä¸‹è½½ - - + + Gui::StdCmdPythonHelp - Tools - 工具 + Tools + 工具 - Python Modules - Pythonæ¨¡å— + Python Modules + Pythonæ¨¡å— - Opens a browser to show the Python modules - 打开æµè§ˆå™¨æ¥æŸ¥çœ‹Pythonæ¨¡å— + Opens a browser to show the Python modules + 打开æµè§ˆå™¨æ¥æŸ¥çœ‹Pythonæ¨¡å— - - + + Gui::TaskBoxAngle - Angle - 角度 + Angle + 角度 - - + + Gui::TaskBoxPosition - Position - ä½ç½® + Position + ä½ç½® - - + + Gui::TaskView::TaskAppearance - Display mode: - 显示模å¼: + Display mode: + 显示模å¼: - Plot mode: - 绘制模å¼: + Plot mode: + 绘制模å¼: - Point size: - 点大å°: + Point size: + 点大å°: - Line width: - 线宽: + Line width: + 线宽: - Transparency: - 逿˜Žåº¦: + Transparency: + 逿˜Žåº¦: - Appearance - 外观 + Appearance + 外观 - - + + Document window: + + + + Gui::TaskView::TaskEditControl - Edit - 编辑 + Edit + 编辑 - - + + Gui::TaskView::TaskSelectLinkProperty - Appearance - 外观 + Appearance + 外观 - ... - ... + ... + ... - edit selection - 编辑选择 + edit selection + 编辑选择 - - + + + Gui::TouchpadNavigationStyle + + Press left mouse button + 按鼠标左键 + + + Press SHIFT button + + + + Press ALT button + + + + Press PgUp/PgDown button + + + + Gui::Translator - English - 英语 + English + 英语 - - + + Gui::TreeDockWidget - Tree view - 结构树æµè§ˆå™¨ + Tree view + 结构树æµè§ˆå™¨ - - + + Gui::TreeWidget - Create group... - 创建组... + Create group... + 创建组... - Create a group - 创建组 + Create a group + 创建组 - Group - 组 + Group + 组 - Rename - é‡å‘½å + Rename + é‡å‘½å - Rename object - é‡å‘½å对象 + Rename object + é‡å‘½å对象 - Labels & Attributes - 标签 & 属性 + Labels & Attributes + 标签 & 属性 - Application - 工程 + Application + 工程 - Finish editing - 完æˆç¼–辑 + Finish editing + 完æˆç¼–辑 - Finish editing object - 完æˆç¼–辑对象 + Finish editing object + 完æˆç¼–辑对象 - Activate document - 激活文档 + Activate document + 激活文档 - Activate document %1 - 激活文档 %1 + Activate document %1 + 激活文档 %1 - - + + Gui::View3DInventor - Export PDF - 导出PDF + Export PDF + 导出PDF - PDF file (*.pdf) - PDF 文件(*.pdf) + PDF file (*.pdf) + PDF 文件(*.pdf) - - + + Gui::WorkbenchGroup - Select the '%1' workbench - 选择'%1'å·¥ä½œå° + Select the '%1' workbench + 选择'%1'å·¥ä½œå° - - + + Position - Form - 窗体 + Form + 窗体 - X: - X: + X: + X: - Y: - Y: + Y: + Y: - Z: - Z: + Z: + Z: - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 100 mm + 200 mm + 100 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - Grid Snap in - ç½‘æ ¼æ•æ‰å¼€ + Grid Snap in + ç½‘æ ¼æ•æ‰å¼€ - - + + QDockWidget - Tree view - 结构树æµè§ˆå™¨ + Tree view + 结构树æµè§ˆå™¨ - Property view - 属性æµè§ˆå™¨ + Property view + 属性æµè§ˆå™¨ - Selection view - 选择æµè§ˆå™¨ + Selection view + 选择æµè§ˆå™¨ - Report view - 报告æµè§ˆå™¨ + Report view + 报告æµè§ˆå™¨ - Task View - 任务æµè§ˆå™¨ + Task View + 任务æµè§ˆå™¨ - Combo View - ç»„åˆæµè§ˆå™¨ + Combo View + ç»„åˆæµè§ˆå™¨ - Toolbox - 工具箱 + Toolbox + 工具箱 - Python console - PythonæŽ§åˆ¶å° + Python console + PythonæŽ§åˆ¶å° - Display properties - 显示属性 + Display properties + 显示属性 - - + + QObject - General - 常规 + General + 常规 - Display - 显示 + Display + 显示 - Unknown filetype - 未知文件类型 + Unknown filetype + 未知文件类型 - Cannot open unknown filetype: %1 - 无法打开未知文件类型: %1 + Cannot open unknown filetype: %1 + 无法打开未知文件类型: %1 - Cannot save to unknown filetype: %1 - 无法ä¿å­˜ä¸ºæœªçŸ¥çš„æ–‡ä»¶ç±»åž‹: %1 + Cannot save to unknown filetype: %1 + 无法ä¿å­˜ä¸ºæœªçŸ¥çš„æ–‡ä»¶ç±»åž‹: %1 - Workbench failure - å·¥ä½œå°æ•…éšœ + Workbench failure + å·¥ä½œå°æ•…éšœ - %1 - %1 + %1 + %1 - Unable to launch Qt Assistant (%1) - 无法å¯åЍQt助手(%1) + Unable to launch Qt Assistant (%1) + 无法å¯åЍQt助手(%1) - Exception - 异常 + Exception + 异常 - Open document - 打开文档 + Open document + 打开文档 - Import file - 导入文件 + Import file + 导入文件 - Export file - 导出文件 + Export file + 导出文件 - Printing... - 打å°... + Printing... + 打å°... - Cannot load workbench - æ— æ³•åŠ è½½å·¥ä½œå° + Cannot load workbench + æ— æ³•åŠ è½½å·¥ä½œå° - A general error occurred while loading the workbench - åŠ è½½å·¥ä½œå°æ—¶å‡ºé”™ + A general error occurred while loading the workbench + åŠ è½½å·¥ä½œå°æ—¶å‡ºé”™ - File not found - 文件未找到 + File not found + 文件未找到 - Cannot open file %1 - 无法打开文件 %1 + Cannot open file %1 + 无法打开文件 %1 - Save views... - ä¿å­˜è§†å›¾... + Save views... + ä¿å­˜è§†å›¾... - Load views... - 加载视图... + Load views... + 加载视图... - Freeze view - 冻结视图 + Freeze view + 冻结视图 - Clear views - 清除视图 + Clear views + 清除视图 - Restore view &%1 - 还原视图 &%1 + Restore view &%1 + 还原视图 &%1 - Save frozen views - ä¿å­˜å†»ç»“视图 + Save frozen views + ä¿å­˜å†»ç»“视图 - Frozen views (*.cam) - 冻结视图(*.cam) + Frozen views (*.cam) + 冻结视图(*.cam) - Restore views - 还原视图 + Restore views + 还原视图 - Importing the restored views would clear the already stored views. + Importing the restored views would clear the already stored views. Do you want to continue? - 导入还原视图将清除已存储的视图.是å¦ç»§ç»­? + 导入还原视图将清除已存储的视图.是å¦ç»§ç»­? - Restore frozen views - 回å¤å†»ç»“视图 + Restore frozen views + 回å¤å†»ç»“视图 - Cannot open file '%1'. - 无法打开文件'%1'. + Cannot open file '%1'. + 无法打开文件'%1'. - Docked - åœé  + Docked + åœé  - Undocked - ä¸åœé  + Undocked + ä¸åœé  - Fullscreen - å…¨å± + Fullscreen + å…¨å± - files - 文件 + files + 文件 - Save picture - ä¿å­˜å›¾ç‰‡ + Save picture + ä¿å­˜å›¾ç‰‡ - New sub-group - 新次级组 + New sub-group + 新次级组 - Enter the name: - 输入åç§°: + Enter the name: + 输入åç§°: - New text item - 新文本 + New text item + 新文本 - Enter your text: - 输入文本: + Enter your text: + 输入文本: - New integer item - æ–°æ•´æ•° + New integer item + æ–°æ•´æ•° - Enter your number: - 输入数字: + Enter your number: + 输入数字: - New unsigned item - æ–°æ— ç¬¦å·æ•° + New unsigned item + æ–°æ— ç¬¦å·æ•° - New float item - 新浮点数 + New float item + 新浮点数 - New Boolean item - 新布尔值 + New Boolean item + 新布尔值 - Choose an item: - 选择对象: + Choose an item: + 选择对象: - Rename group - é‡å‘½å组 + Rename group + é‡å‘½å组 - The group '%1' cannot be renamed. - 组'%1'无法é‡å‘½å. + The group '%1' cannot be renamed. + 组'%1'无法é‡å‘½å. - Existing group - 已存在组 + Existing group + 已存在组 - The group '%1' already exists. - 组'%1'已存在. + The group '%1' already exists. + 组'%1'已存在. - Change value - 更改值 + Change value + 更改值 - Save document under new filename... - 使用新的文件åä¿å­˜æ–‡æ¡£... + Save document under new filename... + 使用新的文件åä¿å­˜æ–‡æ¡£... - Saving aborted - ä¿å­˜ä¸­æ­¢ + Saving aborted + ä¿å­˜ä¸­æ­¢ - Unsaved document - 未ä¿å­˜çš„æ–‡ä»¶ + Unsaved document + 未ä¿å­˜çš„æ–‡ä»¶ - Save document before close? - 关闭å‰ä¿å­˜æ–‡æ¡£? + Save document before close? + 关闭å‰ä¿å­˜æ–‡æ¡£? - Save Macro - ä¿å­˜å® + Save Macro + ä¿å­˜å® - Finish - å®Œæˆ + Finish + å®Œæˆ - Clear - 清除 + Clear + 清除 - Cancel - å–æ¶ˆ + Cancel + å–æ¶ˆ - Inner - 内 + Inner + 内 - Outer - 外 + Outer + 外 - No Browser - æ— æµè§ˆå™¨ + No Browser + æ— æµè§ˆå™¨ - Unable to open your browser. + Unable to open your browser. Please open a browser window and type in: http://localhost:%1. - 无法打开您的æµè§ˆå™¨ã€‚请打开æµè§ˆå™¨çª—å£å¹¶è¾“入:http://localhost:%1. + 无法打开您的æµè§ˆå™¨ã€‚请打开æµè§ˆå™¨çª—å£å¹¶è¾“入:http://localhost:%1. - No Server - æ— æœåС噍 + No Server + æ— æœåС噍 - Unable to start the server to port %1: %2. - 无法从端å£â€œ%1:%2â€å¯åЍæœåС噍. + Unable to start the server to port %1: %2. + 无法从端å£â€œ%1:%2â€å¯åЍæœåС噍. - Unable to open your system browser. - 无法打开您的系统æµè§ˆå™¨. + Unable to open your system browser. + 无法打开您的系统æµè§ˆå™¨. - Options... - 选项... + Options... + 选项... - Out of memory - 内存ä¸è¶³ + Out of memory + 内存ä¸è¶³ - Not enough memory available to display the data. - 没有足够的å¯ç”¨å†…å­˜æ¥æ˜¾ç¤ºæ•°æ®. + Not enough memory available to display the data. + 没有足够的å¯ç”¨å†…å­˜æ¥æ˜¾ç¤ºæ•°æ®. - Cannot find file %1 - 找ä¸åˆ°æ–‡ä»¶ %1 + Cannot find file %1 + 找ä¸åˆ°æ–‡ä»¶ %1 - Cannot find file %1 neither in %2 nor in %3 - 在 %2 或 %3 中找ä¸åˆ°æ–‡ä»¶ %1 + Cannot find file %1 neither in %2 nor in %3 + 在 %2 或 %3 中找ä¸åˆ°æ–‡ä»¶ %1 - Save %1 Document - ä¿å­˜%1文件 + Save %1 Document + ä¿å­˜%1文件 - %1 document (*.FCStd) - %1 文档(*.FCStd) + %1 document (*.FCStd) + %1 文档(*.FCStd) - Save As - å¦å­˜ä¸º + Save As + å¦å­˜ä¸º - %1 already exists. + %1 already exists. Do you want to replace it? - %1 已存在.想覆盖它å—? + %1 已存在.想覆盖它å—? - Document not closable - 文档ä¸å¯å…³é—­ + Document not closable + 文档ä¸å¯å…³é—­ - The document is not closable for the moment. - æ–‡æ¡£å½“å‰æ— æ³•关闭. + The document is not closable for the moment. + æ–‡æ¡£å½“å‰æ— æ³•关闭. - No OpenGL - æ—  OpenGL + No OpenGL + æ—  OpenGL - This system does not support OpenGL - æ­¤ç³»ç»Ÿä¸æ”¯æŒ OpenGL + This system does not support OpenGL + æ­¤ç³»ç»Ÿä¸æ”¯æŒ OpenGL - Help - 帮助 + Help + 帮助 - Unable to load documentation. + Unable to load documentation. In order to load it Qt 4.4 or higher is required. - 无法加载文档. + 无法加载文档. 加载它需è¦Qt4.4或更高版本. - %1 Help - %1 帮助 + %1 Help + %1 帮助 - Exporting PDF... - 导出 PDF... + Exporting PDF... + 导出 PDF... - Wrong selection - 选择错误 + Wrong selection + 选择错误 - Only one object selected. Please select two objects. + Only one object selected. Please select two objects. Be aware the point where you click matters. - åªæœ‰ä¸€ä¸ªå¯¹è±¡é€‰ä¸­.请选择两个对象. + åªæœ‰ä¸€ä¸ªå¯¹è±¡é€‰ä¸­.请选择两个对象. è¯·æ³¨æ„æ‚¨çš„点击ä½ç½®. - Please select two objects. + Please select two objects. Be aware the point where you click matters. - 请选择两个对象. + 请选择两个对象. è¯·æ³¨æ„æ‚¨çš„点击ä½ç½®. - New boolean item - 新布尔值 + New boolean item + 新布尔值 - Navigation styles - å¯¼èˆªæ ·å¼ + Navigation styles + å¯¼èˆªæ ·å¼ - %1 navigation - %1 导航 + %1 navigation + %1 导航 - Move annotation - 移动批注 + Move annotation + 移动批注 - Transform - å˜æ¢ + Transform + å˜æ¢ - The document is in editing mode and thus cannot be closed for the moment. + The document is in editing mode and thus cannot be closed for the moment. You either have to finish or cancel the editing in the task panel. - 文档处于编辑模å¼,当剿— æ³•关闭. 您å¯é€‰æ‹©åœ¨ä»»åС颿¿ä¸­å®Œæˆæˆ–å–æ¶ˆç¼–辑. + 文档处于编辑模å¼,当剿— æ³•关闭. 您å¯é€‰æ‹©åœ¨ä»»åС颿¿ä¸­å®Œæˆæˆ–å–æ¶ˆç¼–辑. - - + + + StdBoxSelection + + Standard-View + 标准视图 + + + Box selection + + + + StdCmdAbout - Help - 帮助 + Help + 帮助 - &About %1 - 关于%1(&A) + &About %1 + 关于%1(&A) - About %1 - 关于 %1 + About %1 + 关于 %1 - - + + StdCmdAboutQt - Help - 帮助 + Help + 帮助 - About &Qt - 关于Qt(&Q) + About &Qt + 关于Qt(&Q) - About Qt - 关于Qt + About Qt + 关于Qt - - + + StdCmdActivateNextWindow - Window - çª—å£ + Window + çª—å£ - Ne&xt - 下一个(&X) + Ne&xt + 下一个(&X) - Activate next window - æ¿€æ´»ä¸‹ä¸€ä¸ªçª—å£ + Activate next window + æ¿€æ´»ä¸‹ä¸€ä¸ªçª—å£ - - + + StdCmdActivatePrevWindow - Window - çª—å£ + Window + çª—å£ - Pre&vious - 上一个(&V) + Pre&vious + 上一个(&V) - Activate previous window - æ¿€æ´»ä¸Šä¸€ä¸ªçª—å£ + Activate previous window + æ¿€æ´»ä¸Šä¸€ä¸ªçª—å£ - - + + + StdCmdAlignment + + Edit + 编辑 + + + Alignment... + + + + Align the selected objects + + + + StdCmdArrangeIcons - Window - çª—å£ + Window + çª—å£ - Arrange &Icons - 排列图标(&I) + Arrange &Icons + 排列图标(&I) - Arrange Icons - 排列图标 + Arrange Icons + 排列图标 - - + + StdCmdAxisCross - Standard-View - 标准视图 + Standard-View + 标准视图 - Toggle axis cross - Toggle axis cross + Toggle axis cross + Toggle axis cross - - + + StdCmdCascadeWindows - Window - çª—å£ + Window + çª—å£ - &Cascade - 层å (&C) + &Cascade + 层å (&C) - Tile pragmatic - 完整平铺 + Tile pragmatic + 完整平铺 - - + + StdCmdCloseActiveWindow - Window - çª—å£ + Window + çª—å£ - Cl&ose - 关闭 + Cl&ose + 关闭 - Close active window - 关闭当å‰çª—å£ + Close active window + 关闭当å‰çª—å£ - - + + StdCmdCloseAllWindows - Window - çª—å£ + Window + çª—å£ - Close Al&l - 全部关闭(&L) + Close Al&l + 全部关闭(&L) - Close all windows - å…³é—­æ‰€æœ‰çª—å£ + Close all windows + å…³é—­æ‰€æœ‰çª—å£ - - + + StdCmdCommandLine - Tools - 工具 + Tools + 工具 - Start command &line... - å¯åŠ¨å‘½ä»¤è¡Œ(&L)... + Start command &line... + å¯åŠ¨å‘½ä»¤è¡Œ(&L)... - Opens the command line in the console - åœ¨æŽ§åˆ¶å°æ‰“开命令行 + Opens the command line in the console + åœ¨æŽ§åˆ¶å°æ‰“开命令行 - - + + StdCmdCopy - Edit - 编辑 + Edit + 编辑 - C&opy - å¤åˆ¶(&C) + C&opy + å¤åˆ¶(&C) - Copy operation - å¤åˆ¶æ“作 + Copy operation + å¤åˆ¶æ“作 - - + + StdCmdCut - Edit - 编辑 + Edit + 编辑 - &Cut - 剪切(&C) + &Cut + 剪切(&C) - Cut out - 剪出 + Cut out + 剪出 - - + + StdCmdDDuplicateSelection - Edit - 编辑 + Edit + 编辑 - Duplicate selection - å¤åˆ¶é€‰æ‹© + Duplicate selection + å¤åˆ¶é€‰æ‹© - Put duplicates of the selected objects to the active document - 把选中对象的å¤åˆ¶å‰¯æœ¬æ”¾åˆ°å½“剿–‡æ¡£ + Put duplicates of the selected objects to the active document + 把选中对象的å¤åˆ¶å‰¯æœ¬æ”¾åˆ°å½“剿–‡æ¡£ - - + + StdCmdDelete - Edit - 编辑 + Edit + 编辑 - &Delete - 删除(&D) + &Delete + 删除(&D) - Deletes the selected objects - 删除选中的对象 + Deletes the selected objects + 删除选中的对象 - - + + StdCmdDemoMode - Standard-View - 标准视图 + Standard-View + 标准视图 - View turntable... - 视图罗盘... + View turntable... + 视图罗盘... - View turntable - 视图罗盘 + View turntable + 视图罗盘 - - + + StdCmdDlgCustomize - Tools - 工具 + Tools + 工具 - Cu&stomize... - 自定义(&S)... + Cu&stomize... + 自定义(&S)... - Customize toolbars and command bars - 自定义工具æ å’Œå‘½ä»¤æ  + Customize toolbars and command bars + 自定义工具æ å’Œå‘½ä»¤æ  - - + + StdCmdDlgMacroExecute - Macros ... - å® ... + Macros ... + å® ... - Opens a dialog to let you execute a recorded macro - æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,æ‰§è¡Œä¸€ä¸ªå½•åˆ¶çš„å® + Opens a dialog to let you execute a recorded macro + æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,æ‰§è¡Œä¸€ä¸ªå½•åˆ¶çš„å® - Macro - å® + Macro + å® - - + + StdCmdDlgMacroExecuteDirect - Macro - å® + Macro + å® - Execute macro - æ‰§è¡Œå® + Execute macro + æ‰§è¡Œå® - Execute the macro in the editor - 在编辑器中è¿è¡Œå® + Execute the macro in the editor + 在编辑器中è¿è¡Œå® - - + + StdCmdDlgMacroRecord - &Macro recording ... - å®å½•制(&M)... + &Macro recording ... + å®å½•制(&M)... - Opens a dialog to record a macro - æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,å½•åˆ¶å® + Opens a dialog to record a macro + æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,å½•åˆ¶å® - Macro - å® + Macro + å® - - + + StdCmdDlgParameter - Tools - 工具 + Tools + 工具 - E&dit parameters ... - ç¼–è¾‘å‚æ•°(&E)... + E&dit parameters ... + ç¼–è¾‘å‚æ•°(&E)... - Opens a Dialog to edit the parameters - æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†ç¼–è¾‘å‚æ•° + Opens a Dialog to edit the parameters + æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†ç¼–è¾‘å‚æ•° - - + + StdCmdDlgPreferences - Tools - 工具 + Tools + 工具 - &Preferences ... - 选项(&P)... + &Preferences ... + 选项(&P)... - Opens a Dialog to edit the preferences - æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†ç¼–辑首选项 + Opens a Dialog to edit the preferences + æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†ç¼–辑首选项 - - + + StdCmdDockViewMenu - View - 视图 + View + 视图 - Vie&ws - 视图(&W) + Vie&ws + 视图(&W) - Toggles this window - 切æ¢çª—å£ + Toggles this window + 切æ¢çª—å£ - - + + StdCmdDrawStyle - Standard-View - 标准视图 + Standard-View + 标准视图 - Draw style - Draw style + Draw style + Draw style - - + + + StdCmdDuplicateSelection + + Edit + 编辑 + + + Duplicate selection + å¤åˆ¶é€‰æ‹© + + + Put duplicates of the selected objects to the active document + 把选中对象的å¤åˆ¶å‰¯æœ¬æ”¾åˆ°å½“剿–‡æ¡£ + + + + StdCmdEdit + + Edit + 编辑 + + + Toggle &Edit mode + + + + Toggles the selected object's edit mode + + + + Enters or leaves the selected object's edit mode + + + + StdCmdExport - File - 文件 + File + 文件 - &Export... - 导出(&E)... + &Export... + 导出(&E)... - Export an object in the active document - å¯¼å‡ºå½“å‰æ–‡æ¡£ä¸­çš„一个对象 + Export an object in the active document + å¯¼å‡ºå½“å‰æ–‡æ¡£ä¸­çš„一个对象 - Supported formats - 支æŒçš„æ ¼å¼ + Supported formats + 支æŒçš„æ ¼å¼ - - + + No selection + + + + Please select first the objects you want to export. + + + + + StdCmdExportGraphviz + + Tools + 工具 + + + Dependency graph... + + + + Show the dependency graph of the objects in the active document + + + + StdCmdFeatRecompute - File - 文件 + File + 文件 - &Recompute - 釿–°è®¡ç®—(&R) + &Recompute + 釿–°è®¡ç®—(&R) - Recompute feature or document - 釿–°è®¡ç®—"特å¾"或"文档" + Recompute feature or document + 釿–°è®¡ç®—"特å¾"或"文档" - - + + StdCmdFreeCADWebsite - Help - 帮助 + Help + 帮助 - FreeCAD Website - FreeCAD网站 + FreeCAD Website + FreeCAD网站 - The FreeCAD website - FreeCAD 网站 + The FreeCAD website + FreeCAD 网站 - - + + StdCmdFreezeViews - Standard-View - 标准视图 + Standard-View + 标准视图 - Freeze display - 冻结显示 + Freeze display + 冻结显示 - Freezes the current view position - 冻结当å‰è§†å›¾ä½ç½® + Freezes the current view position + 冻结当å‰è§†å›¾ä½ç½® - - + + StdCmdHideObjects - Standard-View - 标准视图 + Standard-View + 标准视图 - Hide all objects - éšè—所有对象 + Hide all objects + éšè—所有对象 - Hide all objects in the document - éšè—文档中的所有对象 + Hide all objects in the document + éšè—文档中的所有对象 - - + + StdCmdHideSelection - Standard-View - 标准视图 + Standard-View + 标准视图 - Hide selection - éšè—选中对象 + Hide selection + éšè—选中对象 - Hide all selected objects - éšè—所有选定的对象 + Hide all selected objects + éšè—所有选定的对象 - - + + StdCmdImport - File - 文件 + File + 文件 - &Import... - 导入(&I)... + &Import... + 导入(&I)... - Import a file in the active document - åœ¨å½“å‰æ–‡æ¡£ä¸­å¯¼å…¥æ–‡ä»¶ + Import a file in the active document + åœ¨å½“å‰æ–‡æ¡£ä¸­å¯¼å…¥æ–‡ä»¶ - Supported formats - 支æŒçš„æ ¼å¼ + Supported formats + 支æŒçš„æ ¼å¼ - All files (*.*) - 所有文件(*.*) + All files (*.*) + 所有文件(*.*) - - + + StdCmdMacroStartDebug - Macro - å® + Macro + å® - Debug macro - è°ƒè¯•å® + Debug macro + è°ƒè¯•å® - Start debugging of macro - å¼€å§‹è°ƒè¯•å® + Start debugging of macro + å¼€å§‹è°ƒè¯•å® - - + + StdCmdMacroStepOver - Macro - å® + Macro + å® - Step over - 步进 + Step over + 步进 - - + + StdCmdMacroStopDebug - Macro - å® + Macro + å® - Stop debugging - åœæ­¢è°ƒè¯• + Stop debugging + åœæ­¢è°ƒè¯• - Stop debugging of macro - åœæ­¢è°ƒè¯•å® + Stop debugging of macro + åœæ­¢è°ƒè¯•å® - - + + StdCmdMacroStopRecord - Macro - å® + Macro + å® - S&top macro recording - åœæ­¢å®å½•制(&T) + S&top macro recording + åœæ­¢å®å½•制(&T) - Stop the macro recording session - åœæ­¢å®å½•制进程 + Stop the macro recording session + åœæ­¢å®å½•制进程 - - + + StdCmdMeasureDistance - View - 视图 + View + 视图 - Measure distance - 测é‡è·ç¦» + Measure distance + 测é‡è·ç¦» - - + + StdCmdMeasurementSimple - Tools - 工具 + Tools + 工具 - Mesure distance - 测é‡è·ç¦» + Mesure distance + 测é‡è·ç¦» - Measures distance between two selected objects - 测é‡ä¸¤ä¸ªé€‰ä¸­ç‰©ä½“é—´è·ç¦» + Measures distance between two selected objects + 测é‡ä¸¤ä¸ªé€‰ä¸­ç‰©ä½“é—´è·ç¦» - - + + Measure distance + 测é‡è·ç¦» + + + StdCmdMergeProjects - File - 文件 + File + 文件 - Merge project... - åˆå¹¶é¡¹ç›®... + Merge project... + åˆå¹¶é¡¹ç›®... - Merge project - åˆå¹¶é¡¹ç›® + Merge project + åˆå¹¶é¡¹ç›® - %1 document (*.fcstd) - %1 文档(*.fcstd) + %1 document (*.fcstd) + %1 文档(*.fcstd) - Cannot merge project with itself. - ä¸èƒ½åˆå¹¶é¡¹ç›®æœ¬èº«. + Cannot merge project with itself. + ä¸èƒ½åˆå¹¶é¡¹ç›®æœ¬èº«. - - + + StdCmdNew - File - 文件 + File + 文件 - &New - 新建(&N) + &New + 新建(&N) - Create a new empty document - 创建一个新空白文档 + Create a new empty document + 创建一个新空白文档 - - + + StdCmdOnlineHelp - Help - 帮助 + Help + 帮助 - Show help to the application - 显示程åºå¸®åŠ© + Show help to the application + 显示程åºå¸®åŠ© - - + + StdCmdOnlineHelpPython - Help - 帮助 + Help + 帮助 - Python Manuals - Python手册 + Python Manuals + Python手册 - Show the Python documentation - 显示 Python 文档 + Show the Python documentation + 显示 Python 文档 - - + + StdCmdOnlineHelpWebsite - Help - 帮助 + Help + 帮助 - Help Website - 帮助网站 + Help Website + 帮助网站 - The website where the help is maintained - 帮助文件所在网站 + The website where the help is maintained + 帮助文件所在网站 - - + + StdCmdOpen - File - 文件 + File + 文件 - &Open... - 打开(&O)... + &Open... + 打开(&O)... - Open a document or import files - 打开一个文档或导入文件 + Open a document or import files + 打开一个文档或导入文件 - Supported formats - 支æŒçš„æ ¼å¼ + Supported formats + 支æŒçš„æ ¼å¼ - All files (*.*) - 所有文件(*.*) + All files (*.*) + 所有文件(*.*) - - + + StdCmdPaste - Edit - 编辑 + Edit + 编辑 - &Paste - 粘贴(&P) + &Paste + 粘贴(&P) - Paste operation - 粘贴æ“作 + Paste operation + 粘贴æ“作 - - + + StdCmdPlacement - Edit - 编辑 + Edit + 编辑 - Placement... - 定ä½... + Placement... + 定ä½... - Place the selected objects - 放置所选对象 + Place the selected objects + 放置所选对象 - - + + StdCmdPrint - File - 文件 + File + 文件 - &Print... - 打å°(&P)... + &Print... + 打å°(&P)... - Print the document - æ‰“å°æ–‡æ¡£ + Print the document + æ‰“å°æ–‡æ¡£ - - + + StdCmdPrintPdf - File - 文件 + File + 文件 - &Export PDF... - 导出PDF(&E)... + &Export PDF... + 导出PDF(&E)... - Export the document as PDF - 将文档导出为 PDF + Export the document as PDF + 将文档导出为 PDF - - + + StdCmdPrintPreview - File - 文件 + File + 文件 - &Print preview... - 打å°é¢„览(&P)... + &Print preview... + 打å°é¢„览(&P)... - Print the document - æ‰“å°æ–‡æ¡£ + Print the document + æ‰“å°æ–‡æ¡£ - Print preview - 打å°é¢„览 + Print preview + 打å°é¢„览 - - + + StdCmdProjectInfo - File - 文件 + File + 文件 - Project i&nformation... - 项目信æ¯(&N)... + Project i&nformation... + 项目信æ¯(&N)... - Show details of the currently active project - 显示当å‰é¡¹ç›®è¯¦æƒ… + Show details of the currently active project + 显示当å‰é¡¹ç›®è¯¦æƒ… - - + + StdCmdProjectUtil - Tools - 工具 + Tools + 工具 - Project utility... - 项目工具... + Project utility... + 项目工具... - Utility to extract or create project files - æå–或创建项目文件的工具 + Utility to extract or create project files + æå–或创建项目文件的工具 - - + + StdCmdPythonWebsite - Help - 帮助 + Help + 帮助 - Python Website - Python网站 + Python Website + Python网站 - The official Python website - Python官方网站 + The official Python website + Python官方网站 - - + + StdCmdQuit - File - 文件 + File + 文件 - E&xit - 退出(&X) + E&xit + 退出(&X) - Quits the application - é€€å‡ºç¨‹åº + Quits the application + é€€å‡ºç¨‹åº - - + + StdCmdRandomColor - File - 文件 + File + 文件 - Random color - éšæœºé¢œè‰² + Random color + éšæœºé¢œè‰² - - + + StdCmdRecentFiles - File - 文件 + File + 文件 - Recent files - 最近打开的文件 + Recent files + 最近打开的文件 - Recent file list - 最近文件列表 + Recent file list + 最近文件列表 - - + + StdCmdRedo - Edit - 编辑 + Edit + 编辑 - &Redo - é‡åš(&R) + &Redo + é‡åš(&R) - Redoes a previously undone action - é‡åšä¸Šæ¬¡æ’¤æ¶ˆçš„æ“ä½œ + Redoes a previously undone action + é‡åšä¸Šæ¬¡æ’¤æ¶ˆçš„æ“ä½œ - - + + StdCmdRefresh - Edit - 编辑 + Edit + 编辑 - &Refresh - 刷新(&R) + &Refresh + 刷新(&R) - Recomputes the current active document - 釿–°è®¡ç®—当剿–‡æ¡£ + Recomputes the current active document + 釿–°è®¡ç®—当剿–‡æ¡£ - - + + StdCmdSave - File - 文件 + File + 文件 - &Save - ä¿å­˜(&S) + &Save + ä¿å­˜(&S) - Save the active document - ä¿å­˜å½“剿–‡å½“ + Save the active document + ä¿å­˜å½“剿–‡å½“ - - + + StdCmdSaveAs - File - 文件 + File + 文件 - Save &As... - å¦å­˜ä¸º(&A)... + Save &As... + å¦å­˜ä¸º(&A)... - Save the active document under a new file name - 使用新文件åä¿å­˜å½“剿–‡æ¡£ + Save the active document under a new file name + 使用新文件åä¿å­˜å½“剿–‡æ¡£ - - + + StdCmdSceneInspector - Tools - 工具 + Tools + 工具 - Scene inspector... - 场景检索... + Scene inspector... + 场景检索... - Scene inspector - 场景检索 + Scene inspector + 场景检索 - - + + StdCmdSelectAll - Edit - 编辑 + Edit + 编辑 - Select &All - 全选(&A) + Select &All + 全选(&A) - Select all - 全选 + Select all + 全选 - - + + StdCmdSetAppearance - Standard-View - 标准视图 + Standard-View + 标准视图 - Appearance... - 外观... + Appearance... + 外观... - Sets the display properties of the selected object - 设置选中对象的显示属性 + Sets the display properties of the selected object + 设置选中对象的显示属性 - - + + StdCmdShowObjects - Standard-View - 标准视图 + Standard-View + 标准视图 - Show all objects - 显示所有对象 + Show all objects + 显示所有对象 - Show all objects in the document - 显示文档中的所有对象 + Show all objects in the document + 显示文档中的所有对象 - - + + StdCmdShowSelection - Standard-View - 标准视图 + Standard-View + 标准视图 - Show selection - 显示选择 + Show selection + 显示选择 - Show all selected objects - 显示所有选择的对象 + Show all selected objects + 显示所有选择的对象 - - + + StdCmdStatusBar - View - 视图 + View + 视图 - Status bar - çŠ¶æ€æ  + Status bar + çŠ¶æ€æ  - Toggles the status bar - 切æ¢çŠ¶æ€æ  + Toggles the status bar + 切æ¢çŠ¶æ€æ  - - + + StdCmdTextureMapping - Tools - 工具 + Tools + 工具 - Texture mapping... - çº¹ç†æ˜ å°„... + Texture mapping... + çº¹ç†æ˜ å°„... - Texture mapping - çº¹ç†æ˜ å°„ + Texture mapping + çº¹ç†æ˜ å°„ - - + + StdCmdTileWindows - Window - çª—å£ + Window + çª—å£ - &Tile - 平铺(&T) + &Tile + 平铺(&T) - Tile the windows - å¹³é“ºçª—å£ + Tile the windows + å¹³é“ºçª—å£ - - + + StdCmdToggleBreakpoint - Macro - å® + Macro + å® - Toggle breakpoint - åˆ‡æ¢æ–­ç‚¹ + Toggle breakpoint + åˆ‡æ¢æ–­ç‚¹ - - + + StdCmdToggleClipPlane - Standard-View - 标准视图 + Standard-View + 标准视图 - Clipping plane - ä¿®å‰ªå¹³é¢ + Clipping plane + ä¿®å‰ªå¹³é¢ - Toggles clipping plane for active view - 切æ¢å½“å‰è§†å›¾çš„å¹³é¢è£å‰ª + Toggles clipping plane for active view + 切æ¢å½“å‰è§†å›¾çš„å¹³é¢è£å‰ª - - + + StdCmdToggleNavigation - Standard-View - 标准视图 + Standard-View + 标准视图 - Toggle navigation/Edit mode - 切æ¢å¯¼èˆª/ç¼–è¾‘æ¨¡å¼ + Toggle navigation/Edit mode + 切æ¢å¯¼èˆª/ç¼–è¾‘æ¨¡å¼ - Toggle between navigation and edit mode - 在导航和编辑模å¼ä¹‹é—´åˆ‡æ¢ + Toggle between navigation and edit mode + 在导航和编辑模å¼ä¹‹é—´åˆ‡æ¢ - - + + StdCmdToggleObjects - Standard-View - 标准视图 + Standard-View + 标准视图 - Toggle all objects - åˆ‡æ¢æ‰€æœ‰å¯¹è±¡ + Toggle all objects + åˆ‡æ¢æ‰€æœ‰å¯¹è±¡ - Toggles visibility of all objects in the active document - 切æ¢å½“剿–‡æ¡£ä¸­æ‰€æœ‰å¯¹è±¡çš„å¯è§æ€§ + Toggles visibility of all objects in the active document + 切æ¢å½“剿–‡æ¡£ä¸­æ‰€æœ‰å¯¹è±¡çš„å¯è§æ€§ - - + + StdCmdToggleSelectability - Standard-View - 标准视图 + Standard-View + 标准视图 - Toggle selectability - 切æ¢å¯é€‰æ‹©æ€§ + Toggle selectability + 切æ¢å¯é€‰æ‹©æ€§ - Toggles the property of the objects to get selected in the 3D-View - 切æ¢å±žæ€§ä»¥åœ¨ä¸‰ç»´è§†å›¾ä¸­é€‰å®šå¯¹è±¡ + Toggles the property of the objects to get selected in the 3D-View + 切æ¢å±žæ€§ä»¥åœ¨ä¸‰ç»´è§†å›¾ä¸­é€‰å®šå¯¹è±¡ - - + + StdCmdToggleVisibility - Standard-View - 标准视图 + Standard-View + 标准视图 - Toggle visibility - 切æ¢å¯è§æ€§ + Toggle visibility + 切æ¢å¯è§æ€§ - Toggles visibility - 切æ¢å¯è§æ€§ + Toggles visibility + 切æ¢å¯è§æ€§ - - + + StdCmdToolBarMenu - View - 视图 + View + 视图 - Tool&bars - 工具æ (&B) + Tool&bars + 工具æ (&B) - Toggles this window - 切æ¢çª—å£ + Toggles this window + 切æ¢çª—å£ - - + + StdCmdTransform - Edit - 编辑 + Edit + 编辑 - Transform... - å˜æ¢... + Transform... + å˜æ¢... - Transform the geometry of selected objects - å‡ ä½•å˜æ¢é€‰ä¸­å¯¹è±¡ + Transform the geometry of selected objects + å‡ ä½•å˜æ¢é€‰ä¸­å¯¹è±¡ - - + + StdCmdTreeSelection - View - 视图 + View + 视图 - Go to selection - 转到选择 + Go to selection + 转到选择 - Scroll to first selected item - 滚动到第一选择的对象 + Scroll to first selected item + 滚动到第一选择的对象 - - + + StdCmdUndo - Edit - 编辑 + Edit + 编辑 - &Undo - 撤消(&U) + &Undo + 撤消(&U) - Undo exactly one action - 仅撤消一个æ“作 + Undo exactly one action + 仅撤消一个æ“作 - - + + StdCmdUserInterface - View - 视图 + View + 视图 - Dock views - åœé è§†å›¾ + Dock views + åœé è§†å›¾ - Dock all top-level views - åœé æ‰€æœ‰é¡¶çº§è§†å›¾ + Dock all top-level views + åœé æ‰€æœ‰é¡¶çº§è§†å›¾ - - + + StdCmdViewAxo - Standard-View - 标准视图 + Standard-View + 标准视图 - Axometric - è½´ä¾§ + Axometric + è½´ä¾§ - Set to axometric view - 设置为轴侧视图 + Set to axometric view + 设置为轴侧视图 - - + + StdCmdViewBottom - Standard-View - 标准视图 + Standard-View + 标准视图 - Bottom - 底视 + Bottom + 底视 - Set to bottom view - 设置为底视图 + Set to bottom view + 设置为底视图 - - + + StdCmdViewCreate - Standard-View - 标准视图 + Standard-View + 标准视图 - Create new view - 创建新视图 + Create new view + 创建新视图 - Creates a new view window for the active document - ä¸ºå½“å‰æ–‡æ¡£åˆ›å»ºä¸€ä¸ªæ–°çš„è§†å›¾çª—å£ + Creates a new view window for the active document + ä¸ºå½“å‰æ–‡æ¡£åˆ›å»ºä¸€ä¸ªæ–°çš„è§†å›¾çª—å£ - - + + StdCmdViewExample1 - Standard-View - 标准视图 + Standard-View + 标准视图 - Inventor example #1 - Inventor 实例#1 + Inventor example #1 + Inventor 实例#1 - Shows a 3D texture with manipulator - 自动控制显示3Dçº¹ç† + Shows a 3D texture with manipulator + 自动控制显示3Dçº¹ç† - - + + StdCmdViewExample2 - Standard-View - 标准视图 + Standard-View + 标准视图 - Inventor example #2 - Inventor 实例#2 + Inventor example #2 + Inventor 实例#2 - Shows spheres and drag-lights - æ˜¾ç¤ºæ“æŽ§çƒå’Œæ‹–放指示 + Shows spheres and drag-lights + æ˜¾ç¤ºæ“æŽ§çƒå’Œæ‹–放指示 - - + + StdCmdViewExample3 - Standard-View - 标准视图 + Standard-View + 标准视图 - Inventor example #3 - Inventor 实例#3 + Inventor example #3 + Inventor 实例#3 - Shows a animated texture - æ˜¾ç¤ºä¸€ä¸ªåŠ¨ç”»çº¹ç† + Shows a animated texture + æ˜¾ç¤ºä¸€ä¸ªåŠ¨ç”»çº¹ç† - - + + StdCmdViewFitAll - Standard-View - 标准视图 + Standard-View + 标准视图 - Fit all - é€‚åˆæ‰€æœ‰ + Fit all + é€‚åˆæ‰€æœ‰ - Fits the whole content on the screen - 在å±å¹•上容纳全部内容 + Fits the whole content on the screen + 在å±å¹•上容纳全部内容 - - + + StdCmdViewFitSelection - Standard-View - 标准视图 + Standard-View + 标准视图 - Fit selection - 适åˆé€‰ä¸­ + Fit selection + 适åˆé€‰ä¸­ - Fits the selected content on the screen - 适åˆåœ¨å±å¹•上选å–的内容 + Fits the selected content on the screen + 适åˆåœ¨å±å¹•上选å–的内容 - - + + StdCmdViewFront - Standard-View - 标准视图 + Standard-View + 标准视图 - Front - å‰è§† + Front + å‰è§† - Set to front view - 设置为å‰è§†å›¾ + Set to front view + 设置为å‰è§†å›¾ - - + + StdCmdViewIvIssueCamPos - Standard-View - 标准视图 + Standard-View + 标准视图 - Issue camera position - å‘布相机ä½ç½® + Issue camera position + å‘布相机ä½ç½® - Issue the camera position to the console and to a macro, to easily recall this position - å‘布相机ä½ç½®è‡³æŽ§åˆ¶å°æˆ–å®,ä»¥ä¾¿é‡æ–°è®¿é—® + Issue the camera position to the console and to a macro, to easily recall this position + å‘布相机ä½ç½®è‡³æŽ§åˆ¶å°æˆ–å®,ä»¥ä¾¿é‡æ–°è®¿é—® - - + + StdCmdViewIvStereoInterleavedColumns - Standard-View - 标准视图 + Standard-View + 标准视图 - Stereo Interleaved Columns - 三维æˆåƒåˆ—扫æ + Stereo Interleaved Columns + 三维æˆåƒåˆ—扫æ - Switch stereo viewing to Interleaved Columns - 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºåˆ—æ‰«ææ˜¾ç¤º + Switch stereo viewing to Interleaved Columns + 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºåˆ—æ‰«ææ˜¾ç¤º - - + + StdCmdViewIvStereoInterleavedRows - Standard-View - 标准视图 + Standard-View + 标准视图 - Stereo Interleaved Rows - 三维æˆåƒè¡Œæ‰«æ + Stereo Interleaved Rows + 三维æˆåƒè¡Œæ‰«æ - Switch stereo viewing to Interleaved Rows - 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºè¡Œæ‰«ææ˜¾ç¤º + Switch stereo viewing to Interleaved Rows + 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºè¡Œæ‰«ææ˜¾ç¤º - - + + StdCmdViewIvStereoOff - Standard-View - 标准视图 + Standard-View + 标准视图 - Stereo Off - 关闭三维æˆåƒ + Stereo Off + 关闭三维æˆåƒ - Switch stereo viewing off - 关闭三维æˆåƒè§†å›¾ + Switch stereo viewing off + 关闭三维æˆåƒè§†å›¾ - - + + StdCmdViewIvStereoQuadBuff - Standard-View - 标准视图 + Standard-View + 标准视图 - Stereo quad buffer - 三维æˆåƒç¼“å­˜ + Stereo quad buffer + 三维æˆåƒç¼“å­˜ - Switch stereo viewing to quad buffer - 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºç¼“存显示 + Switch stereo viewing to quad buffer + 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºç¼“存显示 - - + + StdCmdViewIvStereoRedGreen - Standard-View - 标准视图 + Standard-View + 标准视图 - Stereo red/green - 三维æˆåƒ 红/绿 + Stereo red/green + 三维æˆåƒ 红/绿 - Switch stereo viewing to red/green - 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºçº¢/绿显示 + Switch stereo viewing to red/green + 切æ¢ä¸‰ç»´æˆåƒè§†å›¾ä¸ºçº¢/绿显示 - - + + StdCmdViewLeft - Standard-View - 标准视图 + Standard-View + 标准视图 - Left - 左视 + Left + 左视 - Set to left view - 设置为左视图 + Set to left view + 设置为左视图 - - + + StdCmdViewRear - Standard-View - 标准视图 + Standard-View + 标准视图 - Rear - åŽè§† + Rear + åŽè§† - Set to rear view - 设置为åŽè§†å›¾ + Set to rear view + 设置为åŽè§†å›¾ - - + + StdCmdViewRight - Standard-View - 标准视图 + Standard-View + 标准视图 - Right - å³ + Right + å³ - Set to right view - 设置为å³è§†å›¾ + Set to right view + 设置为å³è§†å›¾ - - + + + StdCmdViewRotateLeft + + Standard-View + 标准视图 + + + Rotate Left + + + + Rotate the view by 90° counter-clockwise + + + + + StdCmdViewRotateRight + + Standard-View + 标准视图 + + + Rotate Right + + + + Rotate the view by 90° clockwise + + + + StdCmdViewTop - Standard-View - 标准视图 + Standard-View + 标准视图 - Top - 顶视 + Top + 顶视 - Set to top view - 设置为顶视图 + Set to top view + 设置为顶视图 - - + + StdCmdWhatsThis - Help - 帮助 + Help + 帮助 - &What's This? - 这是什么(&W)? + &What's This? + 这是什么(&W)? - What's This - 这是什么 + What's This + 这是什么 - - + + StdCmdWindows - Window - çª—å£ + Window + çª—å£ - &Windows... - 窗å£(&W)... + &Windows... + 窗å£(&W)... - Windows list - 窗å£åˆ—表 + Windows list + 窗å£åˆ—表 - - + + StdCmdWindowsMenu - Window - çª—å£ + Window + çª—å£ - Activates this window - æ¿€æ´»æ­¤çª—å£ + Activates this window + æ¿€æ´»æ­¤çª—å£ - - + + StdCmdWorkbench - View - 视图 + View + 视图 - Workbench - å·¥ä½œå° + Workbench + å·¥ä½œå° - Switch between workbenches - 工作å°ä¹‹é—´åˆ‡æ¢ + Switch between workbenches + 工作å°ä¹‹é—´åˆ‡æ¢ - - + + StdOrthographicCamera - Standard-View - 标准视图 + Standard-View + 标准视图 - Orthographic view - 平行视图 + Orthographic view + 平行视图 - Switches to orthographic view mode - 切æ¢åˆ°æ­£äº¤è§†å›¾æ¨¡å¼ + Switches to orthographic view mode + 切æ¢åˆ°æ­£äº¤è§†å›¾æ¨¡å¼ - - + + StdPerspectiveCamera - Standard-View - 标准视图 + Standard-View + 标准视图 - Perspective view - é€è§†è§†å›¾ + Perspective view + é€è§†è§†å›¾ - Switches to perspective view mode - 切æ¢åˆ°é€è§†è§†å›¾æ¨¡å¼ + Switches to perspective view mode + 切æ¢åˆ°é€è§†è§†å›¾æ¨¡å¼ - - + + StdViewBoxZoom - Standard-View - 标准视图 + Standard-View + 标准视图 - Box zoom - 框选缩放 + Box zoom + 框选缩放 - - + + StdViewDockUndockFullscreen - Standard-View - 标准视图 + Standard-View + 标准视图 - Document window - æ–‡æ¡£çª—å£ + Document window + æ–‡æ¡£çª—å£ - Display the active view either in fullscreen, in undocked or docked mode - 当å‰è§†å›¾æ˜¾ç¤ºæ¨¡å¼:1.å…¨å±,2.ä¸åœé ,3.åœé  + Display the active view either in fullscreen, in undocked or docked mode + 当å‰è§†å›¾æ˜¾ç¤ºæ¨¡å¼:1.å…¨å±,2.ä¸åœé ,3.åœé  - - + + StdViewScreenShot - Standard-View - 标准视图 + Standard-View + 标准视图 - Save picture... - ä¿å­˜å›¾ç‰‡... + Save picture... + ä¿å­˜å›¾ç‰‡... - Creates a screenshot of the active view - 创建当å‰è§†å›¾çš„å±å¹•截图 + Creates a screenshot of the active view + 创建当å‰è§†å›¾çš„å±å¹•截图 - - + + StdViewZoomIn - Standard-View - 标准视图 + Standard-View + 标准视图 - Zoom In - 放大 + Zoom In + 放大 - - + + StdViewZoomOut - Standard-View - 标准视图 + Standard-View + 标准视图 - Zoom Out - ç¼©å° + Zoom Out + ç¼©å° - - + + Std_DrawStyle - As is - As is + As is + As is - Normal mode - Normal mode + Normal mode + Normal mode - Wireframe - Wireframe + Wireframe + Wireframe - Wireframe mode - Wireframe mode + Wireframe mode + Wireframe mode - - + + + Std_ExportGraphviz + + Graphviz not found + + + + Graphviz couldn't be found on your system. +Do you want to specify its installation path if it's already installed? + + + + Graphviz installation path + + + + Dependency graph + + + + Graphviz failed + + + + Graphviz failed to create an image file + + + + Workbench - &File - 文件(&F) + &File + 文件(&F) - &Edit - 编辑(&E) + &Edit + 编辑(&E) - Standard views - 标准视图 + Standard views + 标准视图 - &Stereo - 立体æˆåƒ(&S) + &Stereo + 立体æˆåƒ(&S) - &Zoom - 缩放(&Z) + &Zoom + 缩放(&Z) - Visibility - å¯è§æ€§ + Visibility + å¯è§æ€§ - &View - 视图(&V) + &View + 视图(&V) - &Tools - 工具(&T) + &Tools + 工具(&T) - &Macro - å®(&M) + &Macro + å®(&M) - &Windows - 窗å£(&W) + &Windows + 窗å£(&W) - &On-line help - 在线帮助(&O) + &On-line help + 在线帮助(&O) - &Help - 帮助(&H) + &Help + 帮助(&H) - File - 文件 + File + 文件 - Macro - å® + Macro + å® - View - 视图 + View + 视图 - Special Ops - 特殊Ops + Special Ops + 特殊Ops - - + + testClass - test - 测试 + test + 测试 - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-size:20pt; font-weight:600;">iisTaskPanel</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt; font-weight:600;"><span style=" font-size:12pt;">Created for Qt 4.3.x</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;">www.ii-system.com</p></body></html> - Choose the style of the Task Panel - é€‰æ‹©ä»»åŠ¡é¢æ¿çš„æ ·å¼ + Choose the style of the Task Panel + é€‰æ‹©ä»»åŠ¡é¢æ¿çš„æ ·å¼ - Default - 默认 + Default + 默认 - Windows XP - Windows XP + Windows XP + Windows XP - + diff --git a/src/Mod/Arch/Resources/translations/Arch.ts b/src/Mod/Arch/Resources/translations/Arch.ts index 012eafbc1..252acbf82 100644 --- a/src/Mod/Arch/Resources/translations/Arch.ts +++ b/src/Mod/Arch/Resources/translations/Arch.ts @@ -3,43 +3,525 @@ Arch - + Components - - Remove child + + Components of this object - - Components of this object + + Axes + + + + + Create Axis + + + + + The intervals between axes + + + + + The angles of each axis + + + + + The length of the axes + + + + + The size of the axis bubbles + + + + + The numeration style + + + + + Remove + + + + + Add + + + + + Distances and angles between axes + + + + + Axis + + + + + Distance + + + + + Angle + + + + + Building + + + + + Type conversion + + + + + Create Building + + + + + Floor + + + + + removing sketch support to avoid cross-referencing + + + + + No objects are cut by the plane + + + + + is not closed + + + + + is not valid + + + + + doesn't contain any solid + + + + + contains a non-closed solid + + + + + contains faces that are not part of any solid + + + + + Grouping + + + + + Ungrouping + + + + + Split Mesh + + + + + Mesh to Shape + + + + + All good! no problems found + + + + + Base component + + + + + Additions + + + + + Subtractions + + + + + Objects + + + + + closing Sketch edit + + + + + The height of this floor + + + + + Roof + + + + + Create Roof + + + + + Unable to create a roof + + + + + No object selected + + + + + The angle of this roof + + + + + The face number of the base object used to build this roof + + + + + Page + + + + + View of + + + + + Create Section Plane + + + + + The objects that must be considered by this section plane. Empty means all document + + + + + The display size of this section plane + + + + + No shape has been computed yet, select wireframe rendering and render again + + + + + Skipping invalid object: + + + + + Site + + + + + Create Site + + + + + Structure + + + + + Create Structure + + + + + The length of this element, if not based on a profile + + + + + The width of this element, if not based on a profile + + + + + The height or extrusion depth of this element. Keep 0 for automatic + + + + + Axes systems this structure is built on + + + + + The normal extrusion direction of this object (keep (0,0,0) for automatic normal) + + + + + The element numbers to exclude when this structure is based on axes + + + + + Couldn't compute the wall shape + + + + + Wall + + + + + Create Wall + + + + + WallTrace + + + + + Wall options + + + + + Width + + + + + Height + + + + + Alignment + + + + + Continue + + + + + The width of this wall. Not used if this wall is based on a face + + + + + The height of this wall. Keep 0 for automatic. Not used if this wall is based on a solid + + + + + The alignment of this wall on its base object, if applicable + + + + + If True, if this wall is based on a face, it will use its border wire as trace, and disconsider the face. + + + + + Error: Invalid base object + + + + + This mesh is an invalid solid + + + + + Error removing splitter from wall shape + + + + + Window + + + + + Create Window + + + + + the components of this window + + + + + Unable to create component + + + + + Edit + + + + + Create/update component + + + + + Base 2D object + + + + + Wires + + + + + Create new component + + + + + Name + + + + + Type + + + + + Thickness + + + + + Z offset + + + + + pycollada not found, no collada support. + + + + + + Error: Couldn't determine character encoding + + + + + file %s successfully created. + + + + + Error: Couldn't determine character encoding + + + + + + Couldn't locate IfcOpenShell + + + + + + IFC Schema not found, IFC import disabled. + + + + + + successfully written Arch_Add - + Add component - + Adds the selected components to the active object + + Arch_Axis + + + Axis + + + + + Creates an axis system. + + + Arch_Building - + Building - + Creates a building object including selected objects. @@ -47,54 +529,80 @@ Arch_Cell - + Cell - + Creates a cell object including selected objects + + Arch_Check + + + Check + + + + + Checks the selected objects for problems + + + + + Arch_CloseHoles + + + Close holes + + + + + Closes holes in open shapes, turning them solids + + + Arch_Floor - + Floor - + Creates a floor object including selected objects Arch_MeshToPart - - - Turns selected meshes into Part Shape objects - - Arch_MeshToShape - + Mesh to Shape + + + Turns selected meshes into Part Shape objects + + Arch_Remove - + Remove component - + Remove the selected components from their parents, or create a hole in a component @@ -102,38 +610,51 @@ Arch_RemoveShape - + Remove Shape from Arch - + Removes cubic shapes from Arch components + + Arch_Roof + + + Roof + + + + + Creates a roof object from the selected face of an object + + + Arch_SectionPlane - + Section Plane - - Adds a section plane object to the document + + Creates a section plane object, including the selected objects Arch_SelectNonSolidMeshes - + Select non-manifold meshes - + Selects all non-manifold meshes from the document or from the selected groups @@ -141,12 +662,12 @@ Arch_Site - + Site - + Creates a site object including selected objects. @@ -154,12 +675,12 @@ Arch_SplitMesh - + Split Mesh - + Splits selected meshes into independent components @@ -167,12 +688,12 @@ Arch_Structure - + Structure - + Creates a structure object from scratch or from a selected object (sketch, wire, face or solid) @@ -180,12 +701,12 @@ Arch_Wall - + Wall - + Creates a wall object from scratch or from a selected object (wire, face or solid) @@ -193,13 +714,13 @@ Arch_Window - + Window - - Creates a window object from scratch or from a selected object (wire, rectangle or sketch) + + Creates a window object from a selected object (wire, rectangle or sketch) @@ -235,32 +756,113 @@ This is the default color for new Structure objects + + + Default color for windows + + + + + IFC import + + + + + If this is checked, the IFCOpenShell importer will be used, allowing to import more IFC types + + + + + Use IFCOpenShell if available + + + + + Creates groups for each Arch object type + + + + + Group components by types + + + + + Import furniture (can make the model heavy) + + + + + 2D rendering + + + + + Show debug information during 2D rendering + + + + + Show renderer debug messages + + + + + Cut areas line thickness ratio + + + + + Specifies how many times the viewed line thickness must be applied to cut lines + + arch - + Arch tools - + Draft tools - - Architecture + + Draft mod tools - - Tools + + &Architecture - - Draft + + Conversion Tools + + + + + Calculation Tools + + + + + &Draft + + + + + Context Tools + + + + + pycollada not found, collada support will be disabled. + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_af.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_af.ts index 0432f4b6b..28d2dada1 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_af.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_af.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Samevoeging + + Assembly + Samevoeging - - + + CmdAssemblyConstraintAxle - - Assembly - Samevoeging + + Assembly + Samevoeging - Constraint Axle... - Beperking met 'n as... + + Constraint Axle... + Beperking met 'n as... - set a axle constraint between two objects - definieer 'n bewegingsbeperking tussen twee voorwerpe met 'n as + + set a axle constraint between two objects + definieer 'n bewegingsbeperking tussen twee voorwerpe met 'n as - - + + Workbench - Assembly - Samevoeging + Assembly + Samevoeging - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_de.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_de.ts index f41d0a66c..22a4a0997 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_de.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_de.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Baugruppe + + Assembly + Baugruppe - - + + CmdAssemblyConstraintAxle - - Assembly - Baugruppe + + Assembly + Baugruppe - Constraint Axle... - Achseneinschränkung... + + Constraint Axle... + Achseneinschränkung... - set a axle constraint between two objects - Festlegen der Achsen-Einschränkung zwischen zwei Objekten + + set a axle constraint between two objects + Festlegen der Achsen-Einschränkung zwischen zwei Objekten - - + + Workbench - Assembly - Baugruppe + Assembly + Baugruppe - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_es.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_es.ts index 075dca66a..f20ddefe9 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_es.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_es.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Ensamblaje + + Assembly + Ensamblaje - - + + CmdAssemblyConstraintAxle - - Assembly - Ensamblaje + + Assembly + Ensamblaje - Constraint Axle... - Restricción de eje... + + Constraint Axle... + Restricción de eje... - set a axle constraint between two objects - definir una restricción de eje entre dos objetos + + set a axle constraint between two objects + definir una restricción de eje entre dos objetos - - + + Workbench - Assembly - Ensamblaje + Assembly + Ensamblaje - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_fi.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_fi.ts index 0caa8a788..23c04c2bf 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_fi.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_fi.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Kokoonpano + + Assembly + Kokoonpano - - + + CmdAssemblyConstraintAxle - - Assembly - Kokoonpano + + Assembly + Kokoonpano - Constraint Axle... - Akseli rajoite... + + Constraint Axle... + Akseli rajoite... - set a axle constraint between two objects - aseta akselirajoite kahden kohteen välille + + set a axle constraint between two objects + aseta akselirajoite kahden kohteen välille - - + + Workbench - Assembly - Kokoonpano + Assembly + Kokoonpano - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_fr.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_fr.ts index c4bb42139..5496d9185 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_fr.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_fr.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Assemblage + + Assembly + Assemblage - - + + CmdAssemblyConstraintAxle - - Assembly - Assemblage + + Assembly + Assemblage - Constraint Axle... - Contrainte axiale... + + Constraint Axle... + Contrainte axiale... - set a axle constraint between two objects - définir une contrainte axiale entre deux objets + + set a axle constraint between two objects + définir une contrainte axiale entre deux objets - - + + Workbench - Assembly - Assemblage + Assembly + Assemblage - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_hr.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_hr.ts index 9d3b0ca20..1af4818d3 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_hr.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_hr.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Montaža + + Assembly + Montaža - - + + CmdAssemblyConstraintAxle - - Assembly - Montaža + + Assembly + Montaža - Constraint Axle... - OgraniÄena osovina... + + Constraint Axle... + OgraniÄena osovina... - set a axle constraint between two objects - postaviti ograniÄenja osovine izmeÄ‘u dva objekta + + set a axle constraint between two objects + postaviti ograniÄenja osovine izmeÄ‘u dva objekta - - + + Workbench - Assembly - Montaža + Assembly + Montaža - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_hu.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_hu.ts index de1da07a5..ca864f50f 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_hu.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_hu.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Összeállítás + + Assembly + Összeállítás - - + + CmdAssemblyConstraintAxle - - Assembly - Összeállítás + + Assembly + Összeállítás - Constraint Axle... - Tengely menti kötés... + + Constraint Axle... + Tengely menti kötés... - set a axle constraint between two objects - tengely kötést hoz létre két tárgy között + + set a axle constraint between two objects + tengely kötést hoz létre két tárgy között - - + + Workbench - Assembly - Összeállítás + Assembly + Összeállítás - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_it.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_it.ts index 31d6f74b2..8b62be0e8 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_it.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_it.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Assembly + + Assembly + Assembly - - + + CmdAssemblyConstraintAxle - - Assembly - Assembly + + Assembly + Assembly - Constraint Axle... - Vincolo assiale... + + Constraint Axle... + Vincolo assiale... - set a axle constraint between two objects - Imposta un vincolo assiale tra due oggetti + + set a axle constraint between two objects + Imposta un vincolo assiale tra due oggetti - - + + Workbench - Assembly - Assembly + Assembly + Assembly - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_ja.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_ja.ts index 40e6ce8bb..efade504f 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_ja.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_ja.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - アセンブリ + + Assembly + アセンブリ - - + + CmdAssemblyConstraintAxle - - Assembly - アセンブリ + + Assembly + アセンブリ - Constraint Axle... - 軸拘æŸã®è¨­å®š... + + Constraint Axle... + 軸拘æŸã®è¨­å®š... - set a axle constraint between two objects - 二ã¤ã®ã‚ªãƒ–ジェクト間ã«è»¸æ‹˜æŸã‚’設定ã—ã¾ã™ã€‚ + + set a axle constraint between two objects + 二ã¤ã®ã‚ªãƒ–ジェクト間ã«è»¸æ‹˜æŸã‚’設定ã—ã¾ã™ã€‚ - - + + Workbench - Assembly - アセンブリ + Assembly + アセンブリ - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_nl.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_nl.ts index 22d2f0b98..fb67d12d7 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_nl.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_nl.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Samenstelling + + Assembly + Samenstelling - - + + CmdAssemblyConstraintAxle - - Assembly - Samenstelling + + Assembly + Samenstelling - Constraint Axle... - As-beperking... + + Constraint Axle... + As-beperking... - set a axle constraint between two objects - Stel een as-beperking tussen twee objecten in + + set a axle constraint between two objects + Stel een as-beperking tussen twee objecten in - - + + Workbench - Assembly - Samenstelling + Assembly + Samenstelling - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_no.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_no.ts index e5d17f48b..7ed835a0b 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_no.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_no.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Montering + + Assembly + Montering - - + + CmdAssemblyConstraintAxle - - Assembly - Montering + + Assembly + Montering - Constraint Axle... - AksellÃ¥s... + + Constraint Axle... + AksellÃ¥s... - set a axle constraint between two objects - sett en aksellÃ¥s mellom to objekter + + set a axle constraint between two objects + sett en aksellÃ¥s mellom to objekter - - + + Workbench - Assembly - Montering + Assembly + Montering - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_pl.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_pl.ts index aa15adea9..175c9be4a 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_pl.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_pl.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - ZÅ‚ożenie + + Assembly + ZÅ‚ożenie - - + + CmdAssemblyConstraintAxle - - Assembly - ZÅ‚ożenie + + Assembly + ZÅ‚ożenie - Constraint Axle... - Ograniczenie osi ... + + Constraint Axle... + Ograniczenie osi ... - set a axle constraint between two objects - ustaw oÅ› granicznÄ… miÄ™dzy dwoma obiektami + + set a axle constraint between two objects + ustaw oÅ› granicznÄ… miÄ™dzy dwoma obiektami - - + + Workbench - Assembly - ZÅ‚ożenie + Assembly + ZÅ‚ożenie - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_pt.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_pt.ts index 1259b1cf2..c3792423b 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_pt.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_pt.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Assemblagem + + Assembly + Assemblagem - - + + CmdAssemblyConstraintAxle - - Assembly - Assemblagem + + Assembly + Assemblagem - Constraint Axle... - Restrição de eixo... + + Constraint Axle... + Restrição de eixo... - set a axle constraint between two objects - definir uma restrição de eixo entre dois objetos + + set a axle constraint between two objects + definir uma restrição de eixo entre dois objetos - - + + Workbench - Assembly - Assemblagem + Assembly + Assemblagem - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_ru.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_ru.ts index 2501d66f9..584d6afc2 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_ru.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_ru.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Сборка + + Assembly + Сборка - - + + CmdAssemblyConstraintAxle - - Assembly - Сборка + + Assembly + Сборка - Constraint Axle... - Ограничение оÑи... + + Constraint Axle... + Ограничение оÑи... - set a axle constraint between two objects - задать оÑÑŒ, ограниченную Ð´Ð²ÑƒÐ¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸ + + set a axle constraint between two objects + задать оÑÑŒ, ограниченную Ð´Ð²ÑƒÐ¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸ - - + + Workbench - Assembly - Сборка + Assembly + Сборка - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_se.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_se.ts index d8542b6ea..594232f5c 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_se.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_se.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Ihopsättning + + Assembly + Ihopsättning - - + + CmdAssemblyConstraintAxle - - Assembly - Ihopsättning + + Assembly + Ihopsättning - Constraint Axle... - Begränsningsaxel... + + Constraint Axle... + Begränsningsaxel... - set a axle constraint between two objects - Sätt en axelbegränsning mellan tvÃ¥ objekt + + set a axle constraint between two objects + Sätt en axelbegränsning mellan tvÃ¥ objekt - - + + Workbench - Assembly - Ihopsättning + Assembly + Ihopsättning - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_uk.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_uk.ts index a164bb182..7177ff6cb 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_uk.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_uk.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - Збірка + + Assembly + Збірка - - + + CmdAssemblyConstraintAxle - - Assembly - Збірка + + Assembly + Збірка - Constraint Axle... - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾ÑÑ–... + + Constraint Axle... + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾ÑÑ–... - set a axle constraint between two objects - задати віÑÑŒ обмежену двома об'єктами + + set a axle constraint between two objects + задати віÑÑŒ обмежену двома об'єктами - - + + Workbench - Assembly - Збірка + Assembly + Збірка - + diff --git a/src/Mod/Assembly/Gui/Resources/translations/Assembly_zh.ts b/src/Mod/Assembly/Gui/Resources/translations/Assembly_zh.ts index 66074d644..fb6eda014 100644 --- a/src/Mod/Assembly/Gui/Resources/translations/Assembly_zh.ts +++ b/src/Mod/Assembly/Gui/Resources/translations/Assembly_zh.ts @@ -1,35 +1,37 @@ - - + + AssemblyGui::Workbench - - Assembly - è£…é… + + Assembly + è£…é… - - + + CmdAssemblyConstraintAxle - - Assembly - è£…é… + + Assembly + è£…é… - Constraint Axle... - 约æŸè½´... + + Constraint Axle... + 约æŸè½´... - set a axle constraint between two objects - ä¸¤ä¸ªå¯¹è±¡ä¹‹é—´è®¾ç½®è½´çº¦æŸ + + set a axle constraint between two objects + ä¸¤ä¸ªå¯¹è±¡ä¹‹é—´è®¾ç½®è½´çº¦æŸ - - + + Workbench - Assembly - è£…é… + Assembly + è£…é… - + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_af.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_af.ts index d1adc14ef..325201491 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_af.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_af.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Volledig + + Complete + Volledig - Constraint Axle... - Beperking met 'n as... + + Constraint Axle... + Beperking met 'n as... - set a axle constraint between two objects - definieer 'n bewegingsbeperking tussen twee voorwerpe met 'n as + + set a axle constraint between two objects + definieer 'n bewegingsbeperking tussen twee voorwerpe met 'n as - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - &Teken + + Dr&awing + &Teken - S&ketch - &Skets + + S&ketch + &Skets - &Raytracing - &Straalsporing + + &Raytracing + &Straalsporing - &Drafting - &Teken + + &Drafting + &Teken - Sketch based - Sketsgebaseerd + + Sketch based + Sketsgebaseerd - Parametric - Parametries + + Primitives + - Object appearence - Object appearence + Parametric + Parametries - Wire Tools - Wire Tools + + Object appearence + Object appearence - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_de.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_de.ts index 8b39f34e4..a9893c602 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_de.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_de.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Komplett + + Complete + Komplett - Constraint Axle... - Achse vorgeben... + + Constraint Axle... + Achse vorgeben... - set a axle constraint between two objects - Eine Achse zwischen zwei Objekten vorgeben + + set a axle constraint between two objects + Eine Achse zwischen zwei Objekten vorgeben - - + + Test_Test - - Self-test... - Selbsttest... + + Self-test... + Selbsttest... - Runs a self-test to check if the application works properly - Führt einen Selbsttest durch, um zu prüfen, ob die Anwendung richtig funktioniert + + Runs a self-test to check if the application works properly + Führt einen Selbsttest durch, um zu prüfen, ob die Anwendung richtig funktioniert - - + + Workbench - Dr&awing - &Zeichnung + + Dr&awing + &Zeichnung - S&ketch - Ski&zze + + S&ketch + Ski&zze - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - &Entwurf + + &Drafting + &Entwurf - Sketch based - skizzenbasiert + + Sketch based + skizzenbasiert - Parametric - Parametrisch + + Primitives + - Object appearence - Objektdarstellung + Parametric + Parametrisch - Wire Tools - Linien-Werkzeuge + + Object appearence + Objektdarstellung - + + + Wire Tools + Linien-Werkzeuge + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_es.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_es.ts index a4befd9fe..ab6ed8074 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_es.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_es.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Completado + + Complete + Completado - Constraint Axle... - Restricción de eje... + + Constraint Axle... + Restricción de eje... - set a axle constraint between two objects - definir una restricción de eje entre dos objetos + + set a axle constraint between two objects + definir una restricción de eje entre dos objetos - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - %Dibujo + + Dr&awing + %Dibujo - S&ketch - Boc&eto + + S&ketch + Boc&eto - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - &Borrador + + &Drafting + &Borrador - Sketch based - Basado en esbozo + + Sketch based + Basado en esbozo - Parametric - Paramétrico + + Primitives + - Object appearence - Apariencia del objeto + Parametric + Paramétrico - Wire Tools - Wire Tools + + Object appearence + Apariencia del objeto - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_fi.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_fi.ts index 1dfd6c849..e6201addb 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_fi.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_fi.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Valmis + + Complete + Valmis - Constraint Axle... - Akseli rajoite... + + Constraint Axle... + Akseli rajoite... - set a axle constraint between two objects - Määritä akseli rajoite kahden kohteen välille + + set a axle constraint between two objects + Määritä akseli rajoite kahden kohteen välille - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - &Piirustus + + Dr&awing + &Piirustus - S&ketch - Ske&tch + + S&ketch + Ske&tch - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - &Drafting + + &Drafting + &Drafting - Sketch based - Sketch based + + Sketch based + Sketch based - Parametric - Parametrinen + + Primitives + - Object appearence - Object appearence + Parametric + Parametrinen - Wire Tools - Wire Tools + + Object appearence + Object appearence - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_fr.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_fr.ts index aedbd4a84..7d5537dc6 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_fr.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_fr.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Complet + + Complete + Complet - Constraint Axle... - Contrainte axiale... + + Constraint Axle... + Contrainte axiale... - set a axle constraint between two objects - définir une contrainte axiale entre deux objets + + set a axle constraint between two objects + définir une contrainte axiale entre deux objets - - + + Test_Test - - Self-test... - Auto-test... + + Self-test... + Auto-test... - Runs a self-test to check if the application works properly - Exécute un auto-test pour vérifier si l'application fonctionne correctement + + Runs a self-test to check if the application works properly + Exécute un auto-test pour vérifier si l'application fonctionne correctement - - + + Workbench - Dr&awing - &Dessin + + Dr&awing + &Dessin - S&ketch - Es&quisse + + S&ketch + Es&quisse - &Raytracing - &Lancer de rayon + + &Raytracing + &Lancer de rayon - &Drafting - &Planche à dessin + + &Drafting + &Planche à dessin - Sketch based - À base d'esquisse + + Sketch based + À base d'esquisse - Parametric - Paramétrique + + Primitives + - Object appearence - Apparence d'objet + Parametric + Paramétrique - Wire Tools - Outils filaires + + Object appearence + Apparence d'objet - + + + Wire Tools + Outils filaires + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_hr.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_hr.ts index e386f67a5..e72fce00e 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_hr.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_hr.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Kompletan + + Complete + Kompletan - Constraint Axle... - OgraniÄena osovina... + + Constraint Axle... + OgraniÄena osovina... - set a axle constraint between two objects - postaviti ograniÄenja osovine izmeÄ‘u dva objekta + + set a axle constraint between two objects + postaviti ograniÄenja osovine izmeÄ‘u dva objekta - - + + Test_Test - - Self-test... - Samoprovjera ... + + Self-test... + Samoprovjera ... - Runs a self-test to check if the application works properly - IzvrÅ¡i samoprovjeru i vidi da li program radi ispravno + + Runs a self-test to check if the application works properly + IzvrÅ¡i samoprovjeru i vidi da li program radi ispravno - - + + Workbench - Dr&awing - &Crtež + + Dr&awing + &Crtež - S&ketch - Sk&ica + + S&ketch + Sk&ica - &Raytracing - Metode trasiranja putem zrake + + &Raytracing + Metode trasiranja putem zrake - &Drafting - &Skica + + &Drafting + &Skica - Sketch based - Na temelju skice + + Sketch based + Na temelju skice - Parametric - Parametarski + + Primitives + - Object appearence - Izgled objekta + Parametric + Parametarski - Wire Tools - Alati žice + + Object appearence + Izgled objekta - + + + Wire Tools + Alati žice + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_hu.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_hu.ts index 3210bbb88..770a741e0 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_hu.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_hu.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Befejez + + Complete + Befejez - Constraint Axle... - Tengely menti kötés... + + Constraint Axle... + Tengely menti kötés... - set a axle constraint between two objects - tengely menti kötést hoz létre két tárgy között + + set a axle constraint between two objects + tengely menti kötést hoz létre két tárgy között - - + + Test_Test - - Self-test... - Ön-teszt... + + Self-test... + Ön-teszt... - Runs a self-test to check if the application works properly - Fut egy önteszt, hogy ellenÅ‘rizze, ha az alkalmazás megfelelÅ‘en működik + + Runs a self-test to check if the application works properly + Fut egy önteszt, hogy ellenÅ‘rizze, ha az alkalmazás megfelelÅ‘en működik - - + + Workbench - Dr&awing - Rajzolás + + Dr&awing + Rajzolás - S&ketch - Vázlat + + S&ketch + Vázlat - &Raytracing - Sugáriánynyomvonal + + &Raytracing + Sugáriánynyomvonal - &Drafting - Vázlatkészítés + + &Drafting + Vázlatkészítés - Sketch based - Vázlat alap + + Sketch based + Vázlat alap - Parametric - Változós + + Primitives + - Object appearence - Az objektum megjelenése + Parametric + Változós - Wire Tools - Vonal eszköztár + + Object appearence + Az objektum megjelenése - + + + Wire Tools + Vonal eszköztár + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_it.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_it.ts index 3f8e83425..e2306ee8c 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_it.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_it.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Completo + + Complete + Completo - Constraint Axle... - Vincolo assiale... + + Constraint Axle... + Vincolo assiale... - set a axle constraint between two objects - Imposta un vincolo assiale tra due oggetti + + set a axle constraint between two objects + Imposta un vincolo assiale tra due oggetti - - + + Test_Test - - Self-test... - Autotest... + + Self-test... + Autotest... - Runs a self-test to check if the application works properly - Esegue un autotest per verificare se l'applicazione funziona correttamente + + Runs a self-test to check if the application works properly + Esegue un autotest per verificare se l'applicazione funziona correttamente - - + + Workbench - Dr&awing - &Disegno + + Dr&awing + &Disegno - S&ketch - S&ketch + + S&ketch + S&ketch - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - Draf&ting + + &Drafting + Draf&ting - Sketch based - Sketch + + Sketch based + Sketch - Parametric - Parametrica + + Primitives + - Object appearence - Aspetto dell'oggetto + Parametric + Parametrica - Wire Tools - Strumenti Wire + + Object appearence + Aspetto dell'oggetto - + + + Wire Tools + Strumenti Wire + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_ja.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_ja.ts index 0a05b50ae..169eb04fc 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_ja.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_ja.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - 完了 + + Complete + 完了 - Constraint Axle... - 軸拘æŸã®è¨­å®š... + + Constraint Axle... + 軸拘æŸã®è¨­å®š... - set a axle constraint between two objects - 二ã¤ã®ã‚ªãƒ–ジェクト間ã«è»¸æ‹˜æŸã‚’設定ã—ã¾ã™ã€‚ + + set a axle constraint between two objects + 二ã¤ã®ã‚ªãƒ–ジェクト間ã«è»¸æ‹˜æŸã‚’設定ã—ã¾ã™ã€‚ - - + + Test_Test - - Self-test... - 自己診断... + + Self-test... + 自己診断... - Runs a self-test to check if the application works properly - ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒæ­£å¸¸ã«å‹•作ã™ã‚‹ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹è‡ªå·±è¨ºæ–­ã‚’実行ã—ã¾ã™ã€‚ + + Runs a self-test to check if the application works properly + ã‚¢ãƒ—ãƒªã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãŒæ­£å¸¸ã«å‹•作ã™ã‚‹ã‹ã©ã†ã‹ã‚’確èªã™ã‚‹è‡ªå·±è¨ºæ–­ã‚’実行ã—ã¾ã™ã€‚ - - + + Workbench - Dr&awing - ドローイング (&D) + + Dr&awing + ドローイング (&D) - S&ketch - スケッãƒ(&T) + + S&ketch + スケッãƒ(&T) - &Raytracing - レイトレーシング (&R) + + &Raytracing + レイトレーシング (&R) - &Drafting - ドラフト (&D) + + &Drafting + ドラフト (&D) - Sketch based - スケッãƒãƒ™ãƒ¼ã‚¹ + + Sketch based + スケッãƒãƒ™ãƒ¼ã‚¹ - Parametric - パラメトリック + + Primitives + - Object appearence - オブジェクトã®å¤–観 + Parametric + パラメトリック - Wire Tools - ãƒãƒªãƒ©ã‚¤ãƒ³ãƒ„ール + + Object appearence + オブジェクトã®å¤–観 - + + + Wire Tools + ãƒãƒªãƒ©ã‚¤ãƒ³ãƒ„ール + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_nl.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_nl.ts index c3d1b6a81..987daf9b2 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_nl.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_nl.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Voltooid + + Complete + Voltooid - Constraint Axle... - As-beperking... + + Constraint Axle... + As-beperking... - set a axle constraint between two objects - Stel een as-beperking in tussen twee objecten + + set a axle constraint between two objects + Stel een as-beperking in tussen twee objecten - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - &Tekenen + + Dr&awing + &Tekenen - S&ketch - Sche&ts + + S&ketch + Sche&ts - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - &Schetsen + + &Drafting + &Schetsen - Sketch based - Schets gebaseerd + + Sketch based + Schets gebaseerd - Parametric - Parametrisch + + Primitives + - Object appearence - Object uiterlijk + Parametric + Parametrisch - Wire Tools - Draad Gereedschap + + Object appearence + Object uiterlijk - + + + Wire Tools + Draad Gereedschap + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_no.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_no.ts index 6d80d0509..af96c4e5c 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_no.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_no.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Fullført + + Complete + Fullført - Constraint Axle... - AksellÃ¥s... + + Constraint Axle... + AksellÃ¥s... - set a axle constraint between two objects - angi en akselbetingelse mellom to objekter + + set a axle constraint between two objects + angi en akselbetingelse mellom to objekter - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - &Tegning + + Dr&awing + &Tegning - S&ketch - Sk&isser + + S&ketch + Sk&isser - &Raytracing - &StrÃ¥lesporing + + &Raytracing + &StrÃ¥lesporing - &Drafting - &Skissering + + &Drafting + &Skissering - Sketch based - Skissebasert + + Sketch based + Skissebasert - Parametric - Parametrisk + + Primitives + - Object appearence - Object appearence + Parametric + Parametrisk - Wire Tools - Wire Tools + + Object appearence + Object appearence - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_pl.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_pl.ts index 58b62fd97..81c60eee9 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_pl.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_pl.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Kompletny + + Complete + Kompletny - Constraint Axle... - Ograniczenie osi... + + Constraint Axle... + Ograniczenie osi... - set a axle constraint between two objects - ustaw ograniczenie osi miÄ™dzy dwoma obiektami + + set a axle constraint between two objects + ustaw ograniczenie osi miÄ™dzy dwoma obiektami - - + + Test_Test - - Self-test... - Autotest... + + Self-test... + Autotest... - Runs a self-test to check if the application works properly - Wykonanie autotestu w celu sprawdzenia poprawnoÅ›ci aplikacji. + + Runs a self-test to check if the application works properly + Wykonanie autotestu w celu sprawdzenia poprawnoÅ›ci aplikacji. - - + + Workbench - Dr&awing - &Rysunek + + Dr&awing + &Rysunek - S&ketch - Szki&c + + S&ketch + Szki&c - &Raytracing - Raytracing + + &Raytracing + Raytracing - &Drafting - &KreÅ›lenie + + &Drafting + &KreÅ›lenie - Sketch based - Ze szkicu + + Sketch based + Ze szkicu - Parametric - Parametryczny + + Primitives + - Object appearence - WyglÄ…d obiektu + Parametric + Parametryczny - Wire Tools - NarzÄ™dzia Szkieletu + + Object appearence + WyglÄ…d obiektu - + + + Wire Tools + NarzÄ™dzia Szkieletu + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_pt.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_pt.ts index 408fba3d3..7e034eeb5 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_pt.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_pt.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Completo + + Complete + Completo - Constraint Axle... - Restrição de eixo... + + Constraint Axle... + Restrição de eixo... - set a axle constraint between two objects - definir uma restrição de eixo entre dois objetos + + set a axle constraint between two objects + definir uma restrição de eixo entre dois objetos - - + + Test_Test - - Self-test... - Teste automático... + + Self-test... + Teste automático... - Runs a self-test to check if the application works properly - Executa um teste automático para verificar se o aplicativo funciona corretamente + + Runs a self-test to check if the application works properly + Executa um teste automático para verificar se o aplicativo funciona corretamente - - + + Workbench - Dr&awing - &Desenho + + Dr&awing + &Desenho - S&ketch - Sk&etch + + S&ketch + Sk&etch - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - &Drafting - &Drafting + + &Drafting + &Drafting - Sketch based - Sketch + + Sketch based + Sketch - Parametric - Paramétrico + + Primitives + - Object appearence - Aparência do objeto + Parametric + Paramétrico - Wire Tools - Ferramentas de arame + + Object appearence + Aparência do objeto - + + + Wire Tools + Ferramentas de arame + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_ru.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_ru.ts index ac8194f3c..f17d0c220 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_ru.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_ru.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Выполнено + + Complete + Выполнено - Constraint Axle... - Ограничение оÑи... + + Constraint Axle... + Ограничение оÑи... - set a axle constraint between two objects - задать оÑÑŒ ограниченную Ð´Ð²ÑƒÐ¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸ + + set a axle constraint between two objects + задать оÑÑŒ ограниченную Ð´Ð²ÑƒÐ¼Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°Ð¼Ð¸ - - + + Test_Test - - Self-test... - СамотеÑтирование ... + + Self-test... + СамотеÑтирование ... - Runs a self-test to check if the application works properly - ВыполнÑет Ñамопроверку Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ правильноÑти Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ + + Runs a self-test to check if the application works properly + ВыполнÑет Ñамопроверку Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ правильноÑти Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ - - + + Workbench - Dr&awing - &РиÑование + + Dr&awing + &РиÑование - S&ketch - ЭÑ&киз + + S&ketch + ЭÑ&киз - &Raytracing - &ТраÑÑировка лучей + + &Raytracing + &ТраÑÑировка лучей - &Drafting - &Черчение + + &Drafting + &Черчение - Sketch based - ОÑнованный на ÑÑкизе + + Sketch based + ОÑнованный на ÑÑкизе - Parametric - ПараметричеÑкий + + Primitives + - Object appearence - ВнешноÑть объекта + Parametric + ПараметричеÑкий - Wire Tools - Wire Tools + + Object appearence + ВнешноÑть объекта - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_se.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_se.ts index 868c35e03..8dcf347fd 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_se.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_se.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Komplett + + Complete + Komplett - Constraint Axle... - Begränsningsaxel... + + Constraint Axle... + Begränsningsaxel... - set a axle constraint between two objects - Sätt en axelbegränsning mellan tvÃ¥ objekt + + set a axle constraint between two objects + Sätt en axelbegränsning mellan tvÃ¥ objekt - - + + Test_Test - - Self-test... - Självtest ... + + Self-test... + Självtest ... - Runs a self-test to check if the application works properly - Kör ett självtest för att kontrollera om programmet fungerar + + Runs a self-test to check if the application works properly + Kör ett självtest för att kontrollera om programmet fungerar - - + + Workbench - Dr&awing - R&itning + + Dr&awing + R&itning - S&ketch - S&kiss + + S&ketch + S&kiss - &Raytracing - R&endering + + &Raytracing + R&endering - &Drafting - &Skissning + + &Drafting + &Skissning - Sketch based - Skiss baserad + + Sketch based + Skiss baserad - Parametric - Parametrisk + + Primitives + - Object appearence - Objekt utseende + Parametric + Parametrisk - Wire Tools - TrÃ¥dverktyg + + Object appearence + Objekt utseende - + + + Wire Tools + TrÃ¥dverktyg + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_uk.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_uk.ts index 49840b58c..1fc114b88 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_uk.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_uk.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - Виконано + + Complete + Виконано - Constraint Axle... - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾ÑÑ–... + + Constraint Axle... + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾ÑÑ–... - set a axle constraint between two objects - задати віÑÑŒ обмежену двома об'єктами + + set a axle constraint between two objects + задати віÑÑŒ обмежену двома об'єктами - - + + Test_Test - - Self-test... - Self-test... + + Self-test... + Self-test... - Runs a self-test to check if the application works properly - Runs a self-test to check if the application works properly + + Runs a self-test to check if the application works properly + Runs a self-test to check if the application works properly - - + + Workbench - Dr&awing - &ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ + + Dr&awing + &ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ - S&ketch - ЕÑ&кіз + + S&ketch + ЕÑ&кіз - &Raytracing - &ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + &Raytracing + &ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - &Drafting - &КреÑÐ»ÐµÐ½Ð½Ñ + + &Drafting + &КреÑÐ»ÐµÐ½Ð½Ñ - Sketch based - БазуючиÑÑŒ на еÑкізі + + Sketch based + БазуючиÑÑŒ на еÑкізі - Parametric - Параметричний + + Primitives + - Object appearence - Object appearence + Parametric + Параметричний - Wire Tools - Wire Tools + + Object appearence + Object appearence - + + + Wire Tools + Wire Tools + + diff --git a/src/Mod/Complete/Gui/Resources/translations/Complete_zh.ts b/src/Mod/Complete/Gui/Resources/translations/Complete_zh.ts index 26cfdf217..140bd53f8 100644 --- a/src/Mod/Complete/Gui/Resources/translations/Complete_zh.ts +++ b/src/Mod/Complete/Gui/Resources/translations/Complete_zh.ts @@ -1,67 +1,82 @@ - - + + CmdCompleteConstraintAxle - - Complete - 全部 + + Complete + 全部 - Constraint Axle... - 约æŸè½´... + + Constraint Axle... + 约æŸè½´... - set a axle constraint between two objects - ä¸¤å¯¹è±¡é—´è®¾ç½®è½´çº¦æŸ + + set a axle constraint between two objects + ä¸¤å¯¹è±¡é—´è®¾ç½®è½´çº¦æŸ - - + + Test_Test - - Self-test... - 自检... + + Self-test... + 自检... - Runs a self-test to check if the application works properly - è¿è¡Œè‡ªæ£€æµ‹è¯•ç¨‹åºæ˜¯å¦æ­£å¸¸å·¥ä½œ + + Runs a self-test to check if the application works properly + è¿è¡Œè‡ªæ£€æµ‹è¯•ç¨‹åºæ˜¯å¦æ­£å¸¸å·¥ä½œ - - + + Workbench - Dr&awing - 图纸(&D) + + Dr&awing + 图纸(&D) - S&ketch - è‰ç»˜(&T) + + S&ketch + è‰ç»˜(&T) - &Raytracing - 光线追踪(&R) + + &Raytracing + 光线追踪(&R) - &Drafting - 绘图(&D) + + &Drafting + 绘图(&D) - Sketch based - 基于è‰ç»˜ + + Sketch based + 基于è‰ç»˜ - Parametric - 傿•°åŒ– + + Primitives + - Object appearence - 对象外观 + Parametric + 傿•°åŒ– - Wire Tools - 线框工具 + + Object appearence + 对象外观 - + + + Wire Tools + 线框工具 + + diff --git a/src/Mod/Draft/Resources/translations/Draft.ts b/src/Mod/Draft/Resources/translations/Draft.ts index fc81b322f..70697b012 100755 --- a/src/Mod/Draft/Resources/translations/Draft.ts +++ b/src/Mod/Draft/Resources/translations/Draft.ts @@ -3,12 +3,12 @@ Draft_AddPoint - + Add Point - + Adds a point to an existing wire/bspline @@ -16,12 +16,12 @@ Draft_AddToGroup - + Adds the selected object(s) to an existing group - + Add to group... @@ -29,12 +29,12 @@ Draft_ApplyStyle - + Apply Current Style - + Applies current line width and color to selected objects @@ -42,25 +42,38 @@ Draft_Arc - + Arc - + Creates an arc. CTRL to snap, SHIFT to constrain + + Draft_Array + + + Array + + + + + Creates a polar or rectangular array from a selected object + + + Draft_BSpline - + B-Spline - + Creates a multiple-point b-spline. CTRL to snap, SHIFT to constrain @@ -68,25 +81,38 @@ Draft_Circle - + Circle - + Creates a circle. CTRL to snap, ALT to select tangent objects + + Draft_Clone + + + Clone + + + + + Clones the selected object(s) + + + Draft_CloseLine - + Close Line - + Closes the line being drawn @@ -94,12 +120,12 @@ Draft_DelPoint - + Remove Point - + Removes a point from an existing wire or bspline @@ -107,12 +133,12 @@ Draft_Dimension - + Dimension - + Creates a dimension. CTRL to snap, SHIFT to constrain, ALT to select a segment @@ -120,25 +146,33 @@ Draft_Downgrade - + Downgrade - + Explodes the selected objects into simpler objects, or subtract faces + + Draft_Draft2Sketch + + + Draft to Sketch + + + Draft_Drawing - + Drawing - + Puts the selected objects on a Drawing sheet. @@ -146,12 +180,12 @@ Draft_Edit - + Edit - + Edits the active object @@ -159,12 +193,12 @@ Draft_FinishLine - + Finish line - + Finishes a line without closing it @@ -172,12 +206,12 @@ Draft_Line - + Line - + Creates a 2-point line. CTRL to snap, SHIFT to constrain @@ -185,12 +219,12 @@ Draft_Move - + Move - + Moves the selected objects between 2 points. CTRL to snap, SHIFT to constrain, ALT to copy @@ -198,25 +232,38 @@ Draft_Offset - + Offset - + Offsets the active object. CTRL to snap, SHIFT to constrain, ALT to copy + + Draft_Point + + + Point + + + + + Creates a point object + + + Draft_Polygon - + Polygon - + Creates a regular polygon. CTRL to snap, SHIFT to constrain @@ -224,12 +271,12 @@ Draft_Rectangle - + Rectangle - + Creates a 2-point rectangle. CTRL to snap @@ -237,12 +284,12 @@ Draft_Rotate - + Rotate - + Rotates the selected objects. CTRL to snap, SHIFT to constrain, ALT creates a copy @@ -250,12 +297,12 @@ Draft_Scale - + Scale - + Scales the selected objects from a base point. CTRL to snap, SHIFT to constrain, ALT to copy @@ -263,12 +310,12 @@ Draft_SelectGroup - + Select group - + Selects all objects with the same parents as this group @@ -276,12 +323,12 @@ Draft_SelectPlane - + SelectPlane - + Select a working plane for geometry creation @@ -289,25 +336,43 @@ Draft_Shape2DView - + Shape 2D view - + Creates Shape 2D views of selected objects + + + Convert bidirectionally between Draft and Sketch objects + + + + + Draft_ShowSnapBar + + + Show Snap Bar + + + + + Shows Draft snap toolbar + + Draft_Text - + Text - + Creates an annotation. CTRL to snap @@ -315,12 +380,12 @@ Draft_ToggleConstructionMode - + Toggle construcion Mode - + Toggles the Construction Mode for next objects. @@ -328,12 +393,12 @@ Draft_ToggleContinueMode - + Toggle continue Mode - + Toggles the Continue Mode for next commands. @@ -341,25 +406,51 @@ Draft_ToggleDisplayMode - + Toggle display mode - + Swaps display mode of selected objects between wireframe and flatlines + + Draft_ToggleGrid + + + Toggle Grid + + + + + Toggles the Draft gid on/off + + + + + Draft_ToggleSnap + + + Toggle snap + + + + + Toggles Draft snap on or off + + + Draft_Trimex - + Trimex - + Trims or extends the selected object, or extrudes single faces. CTRL snaps, SHIFT constrains to current segment or to normal, ALT inverts @@ -367,12 +458,12 @@ Draft_UndoLine - + Undo last segment - + Undoes the last drawn segment of the line being drawn @@ -380,12 +471,12 @@ Draft_Upgrade - + Upgrade - + Joins the selected objects into one, or converts closed wires to filled faces, or unite faces @@ -393,25 +484,25 @@ Draft_Wire - - Wire + + DWire - - Creates a multiple-point wire. CTRL to snap, SHIFT to constrain + + Creates a multiple-point DraftWire (DWire). CTRL to snap, SHIFT to constrain Draft_WireToBSpline - + Wire to BSpline - + Converts between Wire and BSpline @@ -424,137 +515,137 @@ - + Default color - + the default color for new objects - + Default linewidth - + the default linewidth for new objects - + Snap color - + the default color for snap symbols - + Construction color - + This is the default color for objects being drawn while in construction mode. - + This is the default group name for construction geometry - + Construction - + check this if you want to use the color/linewidth from the toolbar as default - + Save current color and linewidth across sessions - + If this is checked, copy mode will be kept across command, otherwise commands will always start in no-copy mode - + Global copy mode - + If this is checked, you will always snap to existing objects while drawing. If not, you will be snapping only when pressing CTRL. - + If this is checked, objects will appear as filled as default. Otherwise, they will appear as wireframe - + Fill objects by default - + Default working plane - + None - + XY (Top) - + XZ (Front) - + YZ (Side) - + The number of decimals in internal coordinates operations (for ex. 3 = 0.001) - + Default text height - + Default height for texts and dimensions - + Default text font - + This is the default font name for all Draft texts and dimensions. It can be a font name such as "Arial", a default style such as "sans", "serif" or "mono", or a family such as "Arial,Helvetica,sans" or a name with a style @@ -562,22 +653,22 @@ such as "Arial:Bold" - + Arial - + Default template sheet - + The default template to use when creating a new drawing sheet - + Import style @@ -589,17 +680,17 @@ If color mapping is choosed, you must choose a color mapping file containing a t - + None (fastest) - + Use default color and linewidth - + Original color and linewidth @@ -609,52 +700,52 @@ If color mapping is choosed, you must choose a color mapping file containing a t - + if this is checked, paper space objects will be imported too - + Import layouts - + if this is unchecked, texts/mtexts won't be imported - + Color mapping file - + The color mapping file for translating dxf colors into linewidths - + Max Spline Segment - + When exporting splines to DXF, they are transformed in polylines. This value is the maximum length of each of the polyline segments. If 0, then the whole spline is treated as a straight segment. - + This is the method choosed for importing SVG object color into FreeCAD. - + Check this if you want the areas (3D faces) to be imported too. - + Import OCA areas @@ -664,83 +755,83 @@ If color mapping is choosed, you must choose a color mapping file containing a t - + Construction group name - + Tolerance - + This is the value used by functions that use a tolerance. Values with differences below this value will be treated as same. - + Dimensions & Leader arrow style - + Dot 5 - + Dot 7 - + Dot 9 - + Circle 5 - + Circle 7 - + Circle 9 - + Slash 5 - + Slash 7 - + Slash 9 - + Backslash 5 - + Backslash 7 - + Backslash 9 @@ -755,202 +846,202 @@ Values with differences below this value will be treated as same. - + Import texts and dimensions - + Check this if you want the non-named blocks (beginning with a *) to be imported too - + Import *blocks - + If checked, freecad will try to joint coincident objects into wires. Beware, this can take a while... - + Join geometry - + SVG format options - + OCA format options - + Alternate SVG Patterns location - + Here you can specify a directory containing SVG files containing <pattern> definitions that can be added to the standard Draft hatch patterns - + Draft interface mode - + This is the UI mode in which the Draft module will work: Toolbar mode will place all Draft settings in a separate toolbar, while taskbar mode will use the FreeCAD Taskview system for all its user interaction - + Toolbar - + Taskview - + Constrain mod - + The Constraining modifier key - + shift - + ctrl - + alt - + Snap mod - + The snap modifier key - + Alt mod - + The alt modifier key - + Normally, after copying objects, the copies get selected. If this option is checked, the base objects will be selected instead. - + Select base objects after copying - + Always snap to objects (disable snap mod key) - + The radius for snapping to special points. Set to 0 for no distance (infinite) - + Snap range - + px - + If checked, a grid will appear when drawing - + Use grid - + Grid spacing - + The spacing between each grid line - + Main lines every - + Mainlines will be drawn thicker. Specify here how many squares between mainlines. - + Internal precision level - + Dimensions precision level - + Vertical dimensions text orientation - + This is the orientation of the dimension texts when those dimensions are vertical. Default is left, which is the ISO standard. - + Left (ISO standard) - + Right @@ -960,739 +1051,935 @@ Values with differences below this value will be treated as same. - + if this is checked, objects from the same layers will be joined into Draft Blocks, turning the display faster, but making them less easily editable - + Group layers into blocks - + If this is checked, all objects containing faces will be exported as 3d polyfaces - + Export 3D objects as polyface meshes + + + If this is checked, the Draft workbench won't appear. Useful since all of the Draft tools are also in the Arch workbench. + + + + + Hide Draft workbench + + + + + If this is checked, snapping will not occur against objects with more than the indicated number of edges + + + + + Snap maximum + + + + + Maximum number of edges to be considered for snapping + + + + + Maximum number of edges + + + + + If checked, the Snap toolbar will be shown whenever you use snapping + + + + + Show Draft Snap toolbar + + + + + Hide Draft snap toolbar after use + + + + + if checked, a widget indicating the current working plane orientation appears during drawing operations + + + + + Show Working Plane tracker + + + + + If checked, the Draft grid will always be visible when the Draft workbench is active. Otherwise only when using a command + + + + + Always show + + + + + Create Sketches + + + + + If this is checked, imported texts will get the standard Draft text size, instead of the size they have in the DXF document + + + + + Use standard font size for texts + + + + + If this is checked, hatches will be converted into simple wires + + + + + Import hatch boundaries as wires + + + + + If this is checked, when polylines have a width defined, they will be rendered as closed wires with the correct width + + + + + Render polylines with width + + + + + Export Style + + + + + Style of SVG file to write when exporting a Sketch. + + + + + Translated (for print & display) + + + + + Raw (for CAM) + + + + + When exporting SVG views, make all white linework appear in black, for better readability against white backgrounds + + + + + Translate white line color to black + + draft - + active command: - + None - + Active Draft command - + X coordinate of next point - + X - + Y - + Z - + Y coordinate of next point - + Z coordinate of next point - + Radius - + Radius of Circle - + Coordinates relative to last point or absolute (SPACE) - + Undo the last segment (CTRL+Z) - + Finishes and closes the current line (C) - + Offset - + XY - + Select XY plane - + XZ - + Select XZ plane - + YZ - + Select YZ plane - + View - + Select plane perpendicular to the current view - + Do not project points to a drawing plane - + If checked, objects will be copied instead of moved (C) - + Line Color - + Face Color - + Line Width - + Font Size - + Apply to selected objects - + Toggles Construction Mode - + Select Plane - + Line - + Circle - + Center X - + Arc - + Pick Object - + draft Command Bar - + Pick a face to define the drawing plane - + Pick first point: - + Pick next point: - + Pick next point, or (F)inish or (C)lose: - + Pick opposite point: - + Pick center point: - + Pick radius: - + Pick start angle: - + Pick aperture: - + Aperture angle: - + Pick location point: - + Select an object to move - + Pick start point: - + Pick end point: - + Select an object to rotate - + Pick rotation center: - + Pick base angle: - + Pick rotation angle: - + Select an object to offset - + Offset only works on one object at a time - + Pick distance: - + Select an object to upgrade - + Select an object to trim/extend - + Select an object to scale - + Pick base point: - + Pick scale factor: - + Number of sides - + &Relative - + &Undo - + &Close - + &Copy - + If checked, command will not finish until you press the command button again - + &Continue - - Wire has been closed - - - - - + Last point has been removed - + Spline has been closed - + Edges don't intersect! - + Cannot offset this object type - + Found groups: closing each open object inside - + Found 2 objects: fusing them - + Found 1 non-parametric objects: draftifying it - + Found 1 closed sketch object: making a face from it - - Found closed wires: making faces - - - - - + Found 1 open wire: closing it - + Found several edges: wiring them - + Found several non-connected edges: making compound - + Found several non-treatable objects: making compound - + Found 1 parametric object: breaking its dependencies - + Found 2 objects: subtracting them - + Found several faces: splitting them - + Found several objects: subtracting them from the first one - + Found 1 face: extracting its wires - + Found only wires: extracting their edges - + This object type is not editable - + Active object must have more than two points/nodes - + Finishes the current drawing or editing operation (F) - + Add points to the current object - + Remove points from the current object - + F&illed - + Check this if the object should appear as filled, otherwise it will appear as wireframe (i) - + &Finish - + If checked, an OCC-style offset will be performed instead of the classic offset - + &OCC-style offset - + &Wipe - + Wipes the existing segments of this line and starts again from the last point (W) - + Point - + Distance - + Edit - - Create Wire - - - - + Create BSpline - + Create Rectangle - + Create Circle - + Create Arc - + Create Polygon - + Create Text - + Create Dimension - - Delete Measurement - - - - + Copy - + Move - + Change Style - + Rotate - + Found 1 solidificable object: solidifying it - + Found several objects or faces: making a parametric face - + Found objects containing curves: fusing them - + Found several objects: fusing them - + Scale - + Trim - + Start Angle - + Aperture - + Installed Macros - - Draft tools - - - - - Draft - - - - - Display options - - - - + Wire tools + + + DWire + + + + + Create DWire + + + + + DWire has been closed + + + + + + BSpline + + + + + Rectangle + + + + + Polygon + + + + + Text + + + + + Dimension + + + + + No upgrade available for this object + + + + + + Couldn't upgrade these objects + + + + + + One wire is not planar, upgrade not done + + + + + + Found a closed wire: making a face + + + + + + Found 1 open edge: making a line + + + + + + Found 1 circular edge: making a circle + + + + + + No more downgrade possible + + + + + + Draft creation tools + + + + + Draft modification tools + + + + + &Draft + + + + + Context tools + + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_af.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_af.ts index afdcfef20..0cdf7b7cc 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_af.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_af.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Tekening + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Tekening + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Lêer + + File + Lêer - &Export page... - &Voer bladsy uit... + + &Export page... + &Voer bladsy uit... - Export a page to an SVG file - Voer 'n blad uit na 'n SVG-lêer + + + Export a page to an SVG file + Voer 'n blad uit na 'n SVG-lêer - - + + CmdDrawingNewA3Landscape - Drawing - Tekening + + Drawing + Tekening - Insert new A3 landscape drawing - Voeg nuwe A3 landskaptekening in + + + Insert new A3 landscape drawing + Voeg nuwe A3 landskaptekening in - - + + CmdDrawingNewPage - Drawing - Tekening + + Drawing + Tekening - Insert new drawing - Insert new drawing + + + Insert new drawing + Insert new drawing - - + + CmdDrawingNewView - Drawing - Tekening + + Drawing + Tekening - Insert view in drawing - Voeg aansig in in die tekening + + Insert view in drawing + Voeg aansig in in die tekening - Insert a new View of a Part in the active drawing - Voeg 'n nuwe aansig van 'n onderdeel in in die aktiewe tekening + + Insert a new View of a Part in the active drawing + Voeg 'n nuwe aansig van 'n onderdeel in in die aktiewe tekening - - + + CmdDrawingOpen - Drawing - Tekening + + Drawing + Tekening - Open SVG... - Maak SVG oop... + + Open SVG... + Maak SVG oop... - Open a scalable vector graphic - Maak skaalbare vektor grafika (SVG) oop + + Open a scalable vector graphic + Maak skaalbare vektor grafika (SVG) oop - - + + + CmdDrawingOpenBrowserView + + + Drawing + Tekening + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Tekening + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Tekening + + Drawing + Tekening - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Agtergrond + + &Background + &Agtergrond - &Outline - &Buitelyn + + &Outline + &Buitelyn - &Native - &Native + + &Native + &Native - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Beeld + + &Image + &Beeld - &High Quality Antialiasing - &Hoë kwaliteit kantversagting + + &High Quality Antialiasing + &Hoë kwaliteit kantversagting - Open SVG File - Maak SVG-lêer oop + + Open SVG File + Maak SVG-lêer oop - Could not open file '%1'. - Kon nie lêer '%1' oop maak nie. + + Could not open file '%1'. + Kon nie lêer '%1' oop maak nie. - &Renderer - &Skepper + + &Renderer + &Skepper - Export PDF - Stoor na PDF + + Export PDF + Stoor na PDF - PDF file (*.pdf) - PDF-lêer (*.pdf) + + PDF file (*.pdf) + PDF-lêer (*.pdf) - Page sizes - Page sizes + + Page sizes + Page sizes - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Voeg nuwe A3 landskaptekening in + Insert new A3 landscape drawing + Voeg nuwe A3 landskaptekening in - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Kies 'n SVG-lêer om oop te maak + + Choose an SVG file to open + Kies 'n SVG-lêer om oop te maak - - Drawing viewer - Tekeningleser + + + + Drawing viewer + Tekeningleser - - Scalable Vector Graphics (*.svg *.svgz) - Skaalbare Vektor Grafika (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skaalbare Vektor Grafika (*.svg *.svgz) - Wrong selection - Verkeerde keuse + + + + + Wrong selection + Verkeerde keuse - Select a Part object. - Kies 'n onderdeel. + + + Select a Part object. + Kies 'n onderdeel. - No page to insert - Geen bladsy om in te voeg nie + + + + + No page to insert + Geen bladsy om in te voeg nie - Create a page to insert. - Skep 'n bladsy om in te voeg. + + + + Create a page to insert. + Skep 'n bladsy om in te voeg. - Select one Page object. - Kies een Bladsyvoorwerp. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Kies een Bladsyvoorwerp. - All Files (*.*) - Alle lêers (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Voer bladsy uit + + All Files (*.*) + Alle lêers (*.*) - - Show drawing - Show drawing + + Export page + Voer bladsy uit - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Tekening + + Drawing + Tekening - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_de.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_de.ts index 3fe18daed..5506c5ec3 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_de.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_de.ts @@ -1,325 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Zeichnung + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Zeichnung + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Datei + + File + Datei - &Export page... - Seite &exportieren... + + &Export page... + Seite &exportieren... - Export a page to an SVG file - Seite in SVG-Datei exportieren + + + Export a page to an SVG file + Seite in SVG-Datei exportieren - - + + CmdDrawingNewA3Landscape - Drawing - Zeichnung + + Drawing + Zeichnung - Insert new A3 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) + + + Insert new A3 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) - - + + CmdDrawingNewPage - Drawing - Zeichnung + + Drawing + Zeichnung - Insert new drawing - Neue Zeichnung einfügen + + + Insert new drawing + Neue Zeichnung einfügen - - + + CmdDrawingNewView - Drawing - Zeichnung + + Drawing + Zeichnung - Insert view in drawing - Ansicht in Zeichnung einfügen + + Insert view in drawing + Ansicht in Zeichnung einfügen - Insert a new View of a Part in the active drawing - Neue Ansicht eines Teils in aktive Zeichnung einfügen + + Insert a new View of a Part in the active drawing + Neue Ansicht eines Teils in aktive Zeichnung einfügen - - + + CmdDrawingOpen - Drawing - Zeichnung + + Drawing + Zeichnung - Open SVG... - Öffne SVG... + + Open SVG... + Öffne SVG... - Open a scalable vector graphic - Eine skalierbare Vektorgrafik (SVG) öffnen + + Open a scalable vector graphic + Eine skalierbare Vektorgrafik (SVG) öffnen - - + + + CmdDrawingOpenBrowserView + + + Drawing + Zeichnung + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Zeichnung + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Zeichnung + + Drawing + Zeichnung - Project shape... - Fläche projizieren... + + Project shape... + Fläche projizieren... - Project shape onto a user-defined plane - Fläche auf eine benutzerdefinierte Ebene projizieren + + + Project shape onto a user-defined plane + Fläche auf eine benutzerdefinierte Ebene projizieren - - + + DrawingGui::DrawingView - - &Background - &Hintergrund + + &Background + &Hintergrund - &Outline - &Umriss + + &Outline + &Umriss - &Native - &Nativ + + &Native + &Nativ - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Grafik + + &Image + &Grafik - &High Quality Antialiasing - &High Quality Antialiasing + + &High Quality Antialiasing + &High Quality Antialiasing - Open SVG File - SVG-Datei öffnen + + Open SVG File + SVG-Datei öffnen - Could not open file '%1'. - Datei '%1' konnte nicht geöffnet werden. + + Could not open file '%1'. + Datei '%1' konnte nicht geöffnet werden. - &Renderer - &Rendern + + &Renderer + &Rendern - Export PDF - PDF exportieren + + Export PDF + PDF exportieren - PDF file (*.pdf) - PDF-Datei (*.pdf) + + PDF file (*.pdf) + PDF-Datei (*.pdf) - Page sizes - Seiten Größen + + Page sizes + Seiten Größen - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Sichtbare scharfe Kanten + + Visible sharp edges + Sichtbare scharfe Kanten - Visible smooth edges - Sichtbare glatte Kanten + + Visible smooth edges + Sichtbare glatte Kanten - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) {0 ?} + Insert new A0 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) {0 ?} - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) {1 ?} + Insert new A1 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) {1 ?} - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) {2 ?} + Insert new A2 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) {2 ?} - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) + Insert new A3 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Neue A3-Zeichung einfügen (im Querformat) {4 ?} + Insert new A4 landscape drawing + Neue A3-Zeichung einfügen (im Querformat) {4 ?} - Insert new A%1 landscape drawing - Neue A%1-Zeichung im Querformat einfügen + + Insert new A%1 landscape drawing + Neue A%1-Zeichung im Querformat einfügen - A%1 landscape - A%1 im Querformat + + A%1 landscape + A%1 im Querformat - - + + QObject - Choose an SVG file to open - Wählen Sie eine SVG-Datei zum Öffnen aus + + Choose an SVG file to open + Wählen Sie eine SVG-Datei zum Öffnen aus - - Drawing viewer - Zeichnungsbetrachter + + + + Drawing viewer + Zeichnungsbetrachter - - Scalable Vector Graphics (*.svg *.svgz) - Skalierbare Vektorgrafik (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skalierbare Vektorgrafik (*.svg *.svgz) - Wrong selection - Falsche Auswahl + + + + + Wrong selection + Falsche Auswahl - Select a Part object. - Wählen Sie ein Teile-Objekt aus.. + + + Select a Part object. + Wählen Sie ein Teile-Objekt aus.. - No page to insert - Keine Seite zum einfügen + + + + + No page to insert + Keine Seite zum einfügen - Create a page to insert. - Erzeugen Sie eine Seite zum Einfügen des Objekts. + + + + Create a page to insert. + Erzeugen Sie eine Seite zum Einfügen des Objekts. - Select one Page object. - Wählen Sie ein Page-Objekt aus. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Wählen Sie ein Page-Objekt aus. - All Files (*.*) - Alle Dateien (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - Seite exportieren + + All Files (*.*) + Alle Dateien (*.*) - - Show drawing - Show drawing + + Export page + Seite exportieren - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Zeichnung + + Drawing + Zeichnung - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_es.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_es.ts index 6b6294c2c..f031c0539 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_es.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_es.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Dibujo + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Dibujo + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Archivo + + File + Archivo - &Export page... - &Exportar página... + + &Export page... + &Exportar página... - Export a page to an SVG file - Exportar una página a un archivo SVG + + + Export a page to an SVG file + Exportar una página a un archivo SVG - - + + CmdDrawingNewA3Landscape - Drawing - Dibujo + + Drawing + Dibujo - Insert new A3 landscape drawing - Inserta un nuevo dibujo en formato A3 + + + Insert new A3 landscape drawing + Inserta un nuevo dibujo en formato A3 - - + + CmdDrawingNewPage - Drawing - Dibujo + + Drawing + Dibujo - Insert new drawing - Insertar nuevo dibujo + + + Insert new drawing + Insertar nuevo dibujo - - + + CmdDrawingNewView - Drawing - Dibujo + + Drawing + Dibujo - Insert view in drawing - Insertar vista en el dibujo + + Insert view in drawing + Insertar vista en el dibujo - Insert a new View of a Part in the active drawing - Insertar una nueva Vista de una Pieza en el dibujo activo + + Insert a new View of a Part in the active drawing + Insertar una nueva Vista de una Pieza en el dibujo activo - - + + CmdDrawingOpen - Drawing - Dibujo + + Drawing + Dibujo - Open SVG... - Abrir SVG... + + Open SVG... + Abrir SVG... - Open a scalable vector graphic - Abre una imagen vectorial escalable + + Open a scalable vector graphic + Abre una imagen vectorial escalable - - + + + CmdDrawingOpenBrowserView + + + Drawing + Dibujo + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Dibujo + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Dibujo + + Drawing + Dibujo - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Fondo + + &Background + &Fondo - &Outline - &Contorno + + &Outline + &Contorno - &Native - &Nativo + + &Native + &Nativo - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Imagen + + &Image + &Imagen - &High Quality Antialiasing - &Antialiasing alta calidad + + &High Quality Antialiasing + &Antialiasing alta calidad - Open SVG File - Abrir archivo SVG + + Open SVG File + Abrir archivo SVG - Could not open file '%1'. - No se pudo abrir el archivo '%1'. + + Could not open file '%1'. + No se pudo abrir el archivo '%1'. - &Renderer - &Renderizador + + &Renderer + &Renderizador - Export PDF - Exportar PDF + + Export PDF + Exportar PDF - PDF file (*.pdf) - Archivo PDF (*.pdf) + + PDF file (*.pdf) + Archivo PDF (*.pdf) - Page sizes - Tamaños de página + + Page sizes + Tamaños de página - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Inserta un nuevo dibujo en formato A3 + Insert new A3 landscape drawing + Inserta un nuevo dibujo en formato A3 - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Seleccionar un archivo SVG para abrir + + Choose an SVG file to open + Seleccionar un archivo SVG para abrir - - Drawing viewer - Visor de dibujos + + + + Drawing viewer + Visor de dibujos - - Scalable Vector Graphics (*.svg *.svgz) - Imagen vectorial escalable (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Imagen vectorial escalable (*.svg *.svgz) - Wrong selection - Selección incorrecta + + + + + Wrong selection + Selección incorrecta - Select a Part object. - Seleccionar un objeto Pieza. + + + Select a Part object. + Seleccionar un objeto Pieza. - No page to insert - Ninguna página para insertar + + + + + No page to insert + Ninguna página para insertar - Create a page to insert. - Crear una página para insertar. + + + + Create a page to insert. + Crear una página para insertar. - Select one Page object. - Seleccionar una página de objetos. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Seleccionar una página de objetos. - All Files (*.*) - Todos los archivos (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - Exportar página + + All Files (*.*) + Todos los archivos (*.*) - - Show drawing - Show drawing + + Export page + Exportar página - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Dibujo + + Drawing + Dibujo - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_fi.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_fi.ts index 791593262..0cfc259dd 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_fi.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_fi.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Piirustus + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Piirustus + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Tiedosto + + File + Tiedosto - &Export page... - &Vie sivu... + + &Export page... + &Vie sivu... - Export a page to an SVG file - Vie sivu SVG-tiedostoon + + + Export a page to an SVG file + Vie sivu SVG-tiedostoon - - + + CmdDrawingNewA3Landscape - Drawing - Piirustus + + Drawing + Piirustus - Insert new A3 landscape drawing - Lisää uusi A3 piirustus + + + Insert new A3 landscape drawing + Lisää uusi A3 piirustus - - + + CmdDrawingNewPage - Drawing - Piirustus + + Drawing + Piirustus - Insert new drawing - Insert new drawing + + + Insert new drawing + Insert new drawing - - + + CmdDrawingNewView - Drawing - Piirustus + + Drawing + Piirustus - Insert view in drawing - Insert view in drawing + + Insert view in drawing + Insert view in drawing - Insert a new View of a Part in the active drawing - Insert a new View of a Part in the active drawing + + Insert a new View of a Part in the active drawing + Insert a new View of a Part in the active drawing - - + + CmdDrawingOpen - Drawing - Piirustus + + Drawing + Piirustus - Open SVG... - Avaa SVG ... + + Open SVG... + Avaa SVG ... - Open a scalable vector graphic - Open a scalable vector graphic + + Open a scalable vector graphic + Open a scalable vector graphic - - + + + CmdDrawingOpenBrowserView + + + Drawing + Piirustus + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Piirustus + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Piirustus + + Drawing + Piirustus - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Tausta + + &Background + &Tausta - &Outline - &Outline + + &Outline + &Outline - &Native - &Native + + &Native + &Native - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Kuva + + &Image + &Kuva - &High Quality Antialiasing - &High Quality Antialiasing + + &High Quality Antialiasing + &High Quality Antialiasing - Open SVG File - Avaa SVG-tiedosto + + Open SVG File + Avaa SVG-tiedosto - Could not open file '%1'. - Tiedostoa '%1' ei voitu avata. + + Could not open file '%1'. + Tiedostoa '%1' ei voitu avata. - &Renderer - &Renderöinti + + &Renderer + &Renderöinti - Export PDF - Vie PDF-asiakirjaan + + Export PDF + Vie PDF-asiakirjaan - PDF file (*.pdf) - PDF-tiedosto (*.pdf) + + PDF file (*.pdf) + PDF-tiedosto (*.pdf) - Page sizes - Page sizes + + Page sizes + Page sizes - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Lisää uusi A3 piirustus + Insert new A3 landscape drawing + Lisää uusi A3 piirustus - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Valitse avattava SVG-tiedosto + + Choose an SVG file to open + Valitse avattava SVG-tiedosto - - Drawing viewer - Piirustuksen katseluohjelma + + + + Drawing viewer + Piirustuksen katseluohjelma - - Scalable Vector Graphics (*.svg *.svgz) - Scalable Vector Graphics (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Scalable Vector Graphics (*.svg *.svgz) - Wrong selection - Väärä valinta + + + + + Wrong selection + Väärä valinta - Select a Part object. - Select a Part object. + + + Select a Part object. + Select a Part object. - No page to insert - No page to insert + + + + + No page to insert + No page to insert - Create a page to insert. - Create a page to insert. + + + + Create a page to insert. + Create a page to insert. - Select one Page object. - Valitse yksi sivu objektista. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Valitse yksi sivu objektista. - All Files (*.*) - Kaikki tiedostot (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - Vie sivu + + All Files (*.*) + Kaikki tiedostot (*.*) - - Show drawing - Show drawing + + Export page + Vie sivu - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Piirustus + + Drawing + Piirustus - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_fr.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_fr.ts index 201f2b725..2b77a3904 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_fr.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_fr.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Mise en plan + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Mise en plan + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Fichier + + File + Fichier - &Export page... - &Exporter la page... + + &Export page... + &Exporter la page... - Export a page to an SVG file - Exporter une page vers un fichier SVG + + + Export a page to an SVG file + Exporter une page vers un fichier SVG - - + + CmdDrawingNewA3Landscape - Drawing - Mise en plan + + Drawing + Mise en plan - Insert new A3 landscape drawing - Insérer une nouvelle mise en plan A3 paysage + + + Insert new A3 landscape drawing + Insérer une nouvelle mise en plan A3 paysage - - + + CmdDrawingNewPage - Drawing - Mise en plan + + Drawing + Mise en plan - Insert new drawing - Insérer une nouvelle mise en plan + + + Insert new drawing + Insérer une nouvelle mise en plan - - + + CmdDrawingNewView - Drawing - Mise en plan + + Drawing + Mise en plan - Insert view in drawing - Insérer une vue dans la page + + Insert view in drawing + Insérer une vue dans la page - Insert a new View of a Part in the active drawing - Insérer une nouvelle vue de la pièce dans la page active + + Insert a new View of a Part in the active drawing + Insérer une nouvelle vue de la pièce dans la page active - - + + CmdDrawingOpen - Drawing - Mise en plan + + Drawing + Mise en plan - Open SVG... - Ouvrir SVG... + + Open SVG... + Ouvrir SVG... - Open a scalable vector graphic - Ouvrir un fichier vectoriel SVG + + Open a scalable vector graphic + Ouvrir un fichier vectoriel SVG - - + + + CmdDrawingOpenBrowserView + + + Drawing + Mise en plan + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Mise en plan + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Mise en plan + + Drawing + Mise en plan - Project shape... - Projeter la forme... + + Project shape... + Projeter la forme... - Project shape onto a user-defined plane - Projeter une forme sur un plan défini par l'utilisateur + + + Project shape onto a user-defined plane + Projeter une forme sur un plan défini par l'utilisateur - - + + DrawingGui::DrawingView - - &Background - &Arrière-plan + + &Background + &Arrière-plan - &Outline - &Contour + + &Outline + &Contour - &Native - &Natif + + &Native + &Natif - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Image + + &Image + &Image - &High Quality Antialiasing - Anticrénelage &haute qualité + + &High Quality Antialiasing + Anticrénelage &haute qualité - Open SVG File - Ouvrir un fichier SVG + + Open SVG File + Ouvrir un fichier SVG - Could not open file '%1'. - Impossible d'ouvrir le fichier'%1'. + + Could not open file '%1'. + Impossible d'ouvrir le fichier'%1'. - &Renderer - Moteur de &rendu + + &Renderer + Moteur de &rendu - Export PDF - Exporter vers PDF + + Export PDF + Exporter vers PDF - PDF file (*.pdf) - Fichier PDF (*.pdf) + + PDF file (*.pdf) + Fichier PDF (*.pdf) - Page sizes - Formats de papier + + Page sizes + Formats de papier - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Arêtes vives visibles + + Visible sharp edges + Arêtes vives visibles - Visible smooth edges - Arêtes de tangence visibles + + Visible smooth edges + Arêtes de tangence visibles - Visible sewn edges - Arêtes cousues visibles + + Visible sewn edges + Arêtes cousues visibles - Visible outline edges - Arêtes de contour visibles + + Visible outline edges + Arêtes de contour visibles - Visible isoparameters - Isoparamètres visibles + + Visible isoparameters + Isoparamètres visibles - Hidden sharp edges - Arêtes vives masquées + + Hidden sharp edges + Arêtes vives masquées - Hidden smooth edges - Arêtes de tangence masquées + + Hidden smooth edges + Arêtes de tangence masquées - Hidden sewn edges - Arêtes cousues masquées + + Hidden sewn edges + Arêtes cousues masquées - Hidden outline edges - Arêtes de contour masquées + + Hidden outline edges + Arêtes de contour masquées - Hidden isoparameters - Isoparamètres masqués + + Hidden isoparameters + Isoparamètres masqués - Project shapes - Projeter les formes + + Project shapes + Projeter les formes - - + + Drawing_NewPage - - A0 landscape - A0 paysage + A0 landscape + A0 paysage - Insert new A0 landscape drawing - Insérer une mise en plan A0 paysage + Insert new A0 landscape drawing + Insérer une mise en plan A0 paysage - A1 landscape - A1 paysage + A1 landscape + A1 paysage - Insert new A1 landscape drawing - Insérer une mise en plan A1 paysage + Insert new A1 landscape drawing + Insérer une mise en plan A1 paysage - A2 landscape - A2 paysage + A2 landscape + A2 paysage - Insert new A2 landscape drawing - Insérer une mise en plan A2 paysage + Insert new A2 landscape drawing + Insérer une mise en plan A2 paysage - A3 landscape - A3 Paysage + A3 landscape + A3 Paysage - Insert new A3 landscape drawing - Insérer une nouvelle mise en plan A3 paysage + Insert new A3 landscape drawing + Insérer une nouvelle mise en plan A3 paysage - A4 landscape - A4 paysage + A4 landscape + A4 paysage - Insert new A4 landscape drawing - Insérer une mise en plan A4 paysage + Insert new A4 landscape drawing + Insérer une mise en plan A4 paysage - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Choisir un fichier SVG à ouvrir + + Choose an SVG file to open + Choisir un fichier SVG à ouvrir - - Drawing viewer - Visionneuse de mise en plan + + + + Drawing viewer + Visionneuse de mise en plan - - Scalable Vector Graphics (*.svg *.svgz) - Fichier vectoriel SVG (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Fichier vectoriel SVG (*.svg *.svgz) - Wrong selection - Mauvaise sélection + + + + + Wrong selection + Mauvaise sélection - Select a Part object. - Sélectionnez un objet pièce. + + + Select a Part object. + Sélectionnez un objet pièce. - No page to insert - Aucune page pour insérer + + + + + No page to insert + Aucune page pour insérer - Create a page to insert. - Créer une page à insérer. + + + + Create a page to insert. + Créer une page à insérer. - Select one Page object. - Sélectionnez un objet Page. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Sélectionnez un objet Page. - All Files (*.*) - Tous les fichiers (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Exporter la page + + All Files (*.*) + Tous les fichiers (*.*) - - Show drawing - Afficher la mise en plan + + Export page + Exporter la page - - + + + Show drawing + Afficher la mise en plan + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Mise en plan + + Drawing + Mise en plan - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_hr.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_hr.ts index a0618d8a1..5f224d090 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_hr.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_hr.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Crtanje + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Crtanje + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Datoteka + + File + Datoteka - &Export page... - Izvedi stranicu... + + &Export page... + Izvedi stranicu... - Export a page to an SVG file - Izvoz stranicu za SVG datoteku + + + Export a page to an SVG file + Izvoz stranicu za SVG datoteku - - + + CmdDrawingNewA3Landscape - Drawing - Crtanje + + Drawing + Crtanje - Insert new A3 landscape drawing - Umetanje novog A3 pejzaža za crtanje + + + Insert new A3 landscape drawing + Umetanje novog A3 pejzaža za crtanje - - + + CmdDrawingNewPage - Drawing - Crtanje + + Drawing + Crtanje - Insert new drawing - Umetni novi crtež + + + Insert new drawing + Umetni novi crtež - - + + CmdDrawingNewView - Drawing - Crtanje + + Drawing + Crtanje - Insert view in drawing - Umetnite pogled u crtežu + + Insert view in drawing + Umetnite pogled u crtežu - Insert a new View of a Part in the active drawing - Umetnite novi pogled na dio u aktivnom crtežu + + Insert a new View of a Part in the active drawing + Umetnite novi pogled na dio u aktivnom crtežu - - + + CmdDrawingOpen - Drawing - Crtanje + + Drawing + Crtanje - Open SVG... - Otvori SVG ... + + Open SVG... + Otvori SVG ... - Open a scalable vector graphic - Otvorite ljestivcu- vektorska grafika + + Open a scalable vector graphic + Otvorite ljestivcu- vektorska grafika - - + + + CmdDrawingOpenBrowserView + + + Drawing + Crtanje + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Crtanje + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Crtanje + + Drawing + Crtanje - Project shape... - Projecirani oblik ... + + Project shape... + Projecirani oblik ... - Project shape onto a user-defined plane - Projeciraj oblik na korisniÄki definiranu ravninu + + + Project shape onto a user-defined plane + Projeciraj oblik na korisniÄki definiranu ravninu - - + + DrawingGui::DrawingView - - &Background - I pozadina + + &Background + I pozadina - &Outline - &amp; Potez + + &Outline + &amp; Potez - &Native - &amp; Prirodan + + &Native + &amp; Prirodan - &OpenGL - I OpenGL + + &OpenGL + I OpenGL - &Image - I slike + + &Image + I slike - &High Quality Antialiasing - &amp; visko kvalitetno anti prekrivanje + + &High Quality Antialiasing + &amp; visko kvalitetno anti prekrivanje - Open SVG File - Otvori SVG datoteku + + Open SVG File + Otvori SVG datoteku - Could not open file '%1'. - Nije moguće otvoriti datoteku '%1. + + Could not open file '%1'. + Nije moguće otvoriti datoteku '%1. - &Renderer - &; Renderer + + &Renderer + &; Renderer - Export PDF - Izvoz PDF + + Export PDF + Izvoz PDF - PDF file (*.pdf) - PDF datoteke (*. pdf) + + PDF file (*.pdf) + PDF datoteke (*. pdf) - Page sizes - VeliÄine stranica + + Page sizes + VeliÄine stranica - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Vidljivi oÅ¡tri rubovi + + Visible sharp edges + Vidljivi oÅ¡tri rubovi - Visible smooth edges - Vidljivi glatki rubovi + + Visible smooth edges + Vidljivi glatki rubovi - Visible sewn edges - Vidljivi iscrtkani rubovi + + Visible sewn edges + Vidljivi iscrtkani rubovi - Visible outline edges - Vidljivi vanjski rubovi + + Visible outline edges + Vidljivi vanjski rubovi - Visible isoparameters - Vidljivi izometrijski parametri + + Visible isoparameters + Vidljivi izometrijski parametri - Hidden sharp edges - Skriveni oÅ¡tri rubovi + + Hidden sharp edges + Skriveni oÅ¡tri rubovi - Hidden smooth edges - Skriveni glatki rubovi + + Hidden smooth edges + Skriveni glatki rubovi - Hidden sewn edges - Skriveni iscrtkani rubovi + + Hidden sewn edges + Skriveni iscrtkani rubovi - Hidden outline edges - Skriveni vanjski rubovi + + Hidden outline edges + Skriveni vanjski rubovi - Hidden isoparameters - Skriveni izometrijski parametri + + Hidden isoparameters + Skriveni izometrijski parametri - Project shapes - Projecirani oblik + + Project shapes + Projecirani oblik - - + + Drawing_NewPage - - A0 landscape - A0 pejzaž + A0 landscape + A0 pejzaž - Insert new A0 landscape drawing - Umetnite novi A0 pejzažni crtež + Insert new A0 landscape drawing + Umetnite novi A0 pejzažni crtež - A1 landscape - A1 pejzaž + A1 landscape + A1 pejzaž - Insert new A1 landscape drawing - Umetnite novi A1 pejzažni crtež + Insert new A1 landscape drawing + Umetnite novi A1 pejzažni crtež - A2 landscape - A2 pejzaž + A2 landscape + A2 pejzaž - Insert new A2 landscape drawing - Umetnite novi A2 pejzažni crtež + Insert new A2 landscape drawing + Umetnite novi A2 pejzažni crtež - A3 landscape - A3 pejzaž + A3 landscape + A3 pejzaž - Insert new A3 landscape drawing - Umetanje novog A3 pejzaža za crtanje + Insert new A3 landscape drawing + Umetanje novog A3 pejzaža za crtanje - A4 landscape - A4 pejzaž + A4 landscape + A4 pejzaž - Insert new A4 landscape drawing - Umetnite novi A4 pejzažni crtež + Insert new A4 landscape drawing + Umetnite novi A4 pejzažni crtež - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Odaberite SVG datoteku za otvaranje + + Choose an SVG file to open + Odaberite SVG datoteku za otvaranje - - Drawing viewer - Preglednik za crtanje + + + + Drawing viewer + Preglednik za crtanje - - Scalable Vector Graphics (*.svg *.svgz) - Ljestvica- Vector Graphics (SVG *. *. svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Ljestvica- Vector Graphics (SVG *. *. svgz) - Wrong selection - PogreÅ¡an odabir + + + + + Wrong selection + PogreÅ¡an odabir - Select a Part object. - Odaberite dio objekta. + + + Select a Part object. + Odaberite dio objekta. - No page to insert - Nema stranica za umetanje + + + + + No page to insert + Nema stranica za umetanje - Create a page to insert. - Stvaranje stranica za umetanje. + + + + Create a page to insert. + Stvaranje stranica za umetanje. - Select one Page object. - Odaberite jednu stranicu objekta + + Create a page to insert views into. + - SVG(*.svg) - SVG (*. svg) + + + Select one Page object. + Odaberite jednu stranicu objekta - All Files (*.*) - Sve datoteke (*.*) + + SVG(*.svg) + SVG (*. svg) - Export page - Izvedi stranicu + + All Files (*.*) + Sve datoteke (*.*) - - Show drawing - Prikaži crtež + + Export page + Izvedi stranicu - - + + + Show drawing + Prikaži crtež + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Crtanje + + Drawing + Crtanje - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_hu.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_hu.ts index ecef59eb6..7e6c83c5a 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_hu.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_hu.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Rajz + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Rajz + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Fájl + + File + Fájl - &Export page... - #Oldal exportálása... + + &Export page... + #Oldal exportálása... - Export a page to an SVG file - Oldalt exportál SVG fájlba + + + Export a page to an SVG file + Oldalt exportál SVG fájlba - - + + CmdDrawingNewA3Landscape - Drawing - Rajz + + Drawing + Rajz - Insert new A3 landscape drawing - Új A3 tájkép rajzot illeszt + + + Insert new A3 landscape drawing + Új A3 tájkép rajzot illeszt - - + + CmdDrawingNewPage - Drawing - Rajz + + Drawing + Rajz - Insert new drawing - Helyezze be az új rajzot + + + Insert new drawing + Helyezze be az új rajzot - - + + CmdDrawingNewView - Drawing - Rajz + + Drawing + Rajz - Insert view in drawing - A rajzba nézetet illeszt + + Insert view in drawing + A rajzba nézetet illeszt - Insert a new View of a Part in the active drawing - A meglévÅ‘ rajzba új rész nézetet illeszt + + Insert a new View of a Part in the active drawing + A meglévÅ‘ rajzba új rész nézetet illeszt - - + + CmdDrawingOpen - Drawing - Rajz + + Drawing + Rajz - Open SVG... - SVG megynyitása... + + Open SVG... + SVG megynyitása... - Open a scalable vector graphic - Skálázható vektor grafikát nyit meg + + Open a scalable vector graphic + Skálázható vektor grafikát nyit meg - - + + + CmdDrawingOpenBrowserView + + + Drawing + Rajz + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Rajz + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Rajz + + Drawing + Rajz - Project shape... - Terv formák... + + Project shape... + Terv formák... - Project shape onto a user-defined plane - A felhasználó által meghatározott síkra vetített formák + + + Project shape onto a user-defined plane + A felhasználó által meghatározott síkra vetített formák - - + + DrawingGui::DrawingView - - &Background - &Háttér + + &Background + &Háttér - &Outline - &Körvonal + + &Outline + &Körvonal - &Native - &Natív + + &Native + &Natív - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Kép + + &Image + &Kép - &High Quality Antialiasing - &Magas minÅ‘ségű Antialiasing + + &High Quality Antialiasing + &Magas minÅ‘ségű Antialiasing - Open SVG File - SVG fájl megnyitása + + Open SVG File + SVG fájl megnyitása - Could not open file '%1'. - Nem tudja megnyitni a '%1'fájlt. + + Could not open file '%1'. + Nem tudja megnyitni a '%1'fájlt. - &Renderer - RenderelÅ‘ + + &Renderer + RenderelÅ‘ - Export PDF - Exportálás PDF-be + + Export PDF + Exportálás PDF-be - PDF file (*.pdf) - PDF fájl (*.pdf) + + PDF file (*.pdf) + PDF fájl (*.pdf) - Page sizes - Oldalméretek + + Page sizes + Oldalméretek - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4-es + + A4 + A4-es - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Látható éles élek + + Visible sharp edges + Látható éles élek - Visible smooth edges - Látható simított élek + + Visible smooth edges + Látható simított élek - Visible sewn edges - Látható varrott élek + + Visible sewn edges + Látható varrott élek - Visible outline edges - Látható körvonal élek + + Visible outline edges + Látható körvonal élek - Visible isoparameters - Látható isoparaméterek + + Visible isoparameters + Látható isoparaméterek - Hidden sharp edges - Rejtett éles élek + + Hidden sharp edges + Rejtett éles élek - Hidden smooth edges - Rejtett simított élek + + Hidden smooth edges + Rejtett simított élek - Hidden sewn edges - Rejtett varrott élek + + Hidden sewn edges + Rejtett varrott élek - Hidden outline edges - Rejtett vázlat élek + + Hidden outline edges + Rejtett vázlat élek - Hidden isoparameters - Rejtett iso-paraméterek + + Hidden isoparameters + Rejtett iso-paraméterek - Project shapes - Terv formák + + Project shapes + Terv formák - - + + Drawing_NewPage - - A0 landscape - A0-es fekvÅ‘ + A0 landscape + A0-es fekvÅ‘ - Insert new A0 landscape drawing - Helyezze be az új A4-es fekvÅ‘ rajzot + Insert new A0 landscape drawing + Helyezze be az új A4-es fekvÅ‘ rajzot - A1 landscape - A4-es fekvÅ‘ + A1 landscape + A4-es fekvÅ‘ - Insert new A1 landscape drawing - Helyezze be az új A4-es fekvÅ‘ rajzot + Insert new A1 landscape drawing + Helyezze be az új A4-es fekvÅ‘ rajzot - A2 landscape - A4-es fekvÅ‘ + A2 landscape + A4-es fekvÅ‘ - Insert new A2 landscape drawing - Helyezze be az új A4-es fekvÅ‘ rajzot + Insert new A2 landscape drawing + Helyezze be az új A4-es fekvÅ‘ rajzot - A3 landscape - A4-es fekvÅ‘ + A3 landscape + A4-es fekvÅ‘ - Insert new A3 landscape drawing - Új A3 tájkép rajzot illeszt + Insert new A3 landscape drawing + Új A3 tájkép rajzot illeszt - A4 landscape - A4-es fekvÅ‘ + A4 landscape + A4-es fekvÅ‘ - Insert new A4 landscape drawing - Helyezze be az új A4-es fekvÅ‘ rajzot + Insert new A4 landscape drawing + Helyezze be az új A4-es fekvÅ‘ rajzot - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - SVG fájl kiválasztása megnyitáshoz + + Choose an SVG file to open + SVG fájl kiválasztása megnyitáshoz - - Drawing viewer - Rajz nézegetÅ‘ + + + + Drawing viewer + Rajz nézegetÅ‘ - - Scalable Vector Graphics (*.svg *.svgz) - Skálázható vektor grafika (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skálázható vektor grafika (*.svg *.svgz) - Wrong selection - Nem megfelelÅ‘ kiválasztás + + + + + Wrong selection + Nem megfelelÅ‘ kiválasztás - Select a Part object. - Objektum rész kiválasztása. + + + Select a Part object. + Objektum rész kiválasztása. - No page to insert - Nem létezÅ‘ oldal a beillesztéshez + + + + + No page to insert + Nem létezÅ‘ oldal a beillesztéshez - Create a page to insert. - Oldal létrehozása a beillesztéshez. + + + + Create a page to insert. + Oldal létrehozása a beillesztéshez. - Select one Page object. - Válasszon ki egy oldalas objektumot. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Válasszon ki egy oldalas objektumot. - All Files (*.*) - Összes fájl (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - Oldal exportálása + + All Files (*.*) + Összes fájl (*.*) - - Show drawing - Mutasd a rajzot + + Export page + Oldal exportálása - - + + + Show drawing + Mutasd a rajzot + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Rajz + + Drawing + Rajz - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_it.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_it.ts index d4c2697e7..99a799394 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_it.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_it.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Disegno + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Disegno + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - File + + File + File - &Export page... - &Esporta pagina... + + &Export page... + &Esporta pagina... - Export a page to an SVG file - Esporta una pagina in un file SVG + + + Export a page to an SVG file + Esporta una pagina in un file SVG - - + + CmdDrawingNewA3Landscape - Drawing - Disegno + + Drawing + Disegno - Insert new A3 landscape drawing - Inserisci un nuovo disegno A3 orizzontale + + + Insert new A3 landscape drawing + Inserisci un nuovo disegno A3 orizzontale - - + + CmdDrawingNewPage - Drawing - Disegno + + Drawing + Disegno - Insert new drawing - Inserisci nuovo disegno + + + Insert new drawing + Inserisci nuovo disegno - - + + CmdDrawingNewView - Drawing - Disegno + + Drawing + Disegno - Insert view in drawing - Inserisci vista nel disegno + + Insert view in drawing + Inserisci vista nel disegno - Insert a new View of a Part in the active drawing - Inserisce una nuova vista di una parte del disegno attivo + + Insert a new View of a Part in the active drawing + Inserisce una nuova vista di una parte del disegno attivo - - + + CmdDrawingOpen - Drawing - Disegno + + Drawing + Disegno - Open SVG... - Apri SVG... + + Open SVG... + Apri SVG... - Open a scalable vector graphic - Apre una grafica vettoriale scalabile + + Open a scalable vector graphic + Apre una grafica vettoriale scalabile - - + + + CmdDrawingOpenBrowserView + + + Drawing + Disegno + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Disegno + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Disegno + + Drawing + Disegno - Project shape... - Proietta le forme... + + Project shape... + Proietta le forme... - Project shape onto a user-defined plane - Proietta una forma su di un piano definito dall'utente + + + Project shape onto a user-defined plane + Proietta una forma su di un piano definito dall'utente - - + + DrawingGui::DrawingView - - &Background - &Sfondo + + &Background + &Sfondo - &Outline - C&ontorno + + &Outline + C&ontorno - &Native - &Nativo + + &Native + &Nativo - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Immagine + + &Image + &Immagine - &High Quality Antialiasing - &Antialiasing di qualità elevata + + &High Quality Antialiasing + &Antialiasing di qualità elevata - Open SVG File - Apri file SVG + + Open SVG File + Apri file SVG - Could not open file '%1'. - Impossibile aprire il file '%1'. + + Could not open file '%1'. + Impossibile aprire il file '%1'. - &Renderer - &Render + + &Renderer + &Render - Export PDF - Esporta PDF + + Export PDF + Esporta PDF - PDF file (*.pdf) - File PDF (*.pdf) + + PDF file (*.pdf) + File PDF (*.pdf) - Page sizes - Dimensioni pagina + + Page sizes + Dimensioni pagina - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - mostra gli spigoli vivi + + Visible sharp edges + mostra gli spigoli vivi - Visible smooth edges - Mostra i bordi smussati + + Visible smooth edges + Mostra i bordi smussati - Visible sewn edges - Mostra i bordi cuciti + + Visible sewn edges + Mostra i bordi cuciti - Visible outline edges - Mostra i bordi esterni + + Visible outline edges + Mostra i bordi esterni - Visible isoparameters - Mostra le isoparametriche + + Visible isoparameters + Mostra le isoparametriche - Hidden sharp edges - Nascondi gli spigoli vivi + + Hidden sharp edges + Nascondi gli spigoli vivi - Hidden smooth edges - Nascondi i bordi smussati + + Hidden smooth edges + Nascondi i bordi smussati - Hidden sewn edges - Nascondi i bordi cuciti + + Hidden sewn edges + Nascondi i bordi cuciti - Hidden outline edges - Nascondi i bordi esterni + + Hidden outline edges + Nascondi i bordi esterni - Hidden isoparameters - Nascondi le isoparametriche + + Hidden isoparameters + Nascondi le isoparametriche - Project shapes - Proietta le forme + + Project shapes + Proietta le forme - - + + Drawing_NewPage - - A0 landscape - A0 orizzontale + A0 landscape + A0 orizzontale - Insert new A0 landscape drawing - Inserisce nuovo disegno A0 orizzontale + Insert new A0 landscape drawing + Inserisce nuovo disegno A0 orizzontale - A1 landscape - A1 orizzontale + A1 landscape + A1 orizzontale - Insert new A1 landscape drawing - Inserisce nuovo disegno A2 orizzontale + Insert new A1 landscape drawing + Inserisce nuovo disegno A2 orizzontale - A2 landscape - A2 orizzontale + A2 landscape + A2 orizzontale - Insert new A2 landscape drawing - Inserisce nuovo disegno A2 orizzontale + Insert new A2 landscape drawing + Inserisce nuovo disegno A2 orizzontale - A3 landscape - A3 orizzontale + A3 landscape + A3 orizzontale - Insert new A3 landscape drawing - Inserisci un nuovo disegno A3 orizzontale + Insert new A3 landscape drawing + Inserisci un nuovo disegno A3 orizzontale - A4 landscape - A4 orizzontale + A4 landscape + A4 orizzontale - Insert new A4 landscape drawing - Inserisce nuovo disegno A4 orizzontale + Insert new A4 landscape drawing + Inserisce nuovo disegno A4 orizzontale - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Seleziona un file SVG da aprire + + Choose an SVG file to open + Seleziona un file SVG da aprire - - Drawing viewer - Visualizzatore disegno + + + + Drawing viewer + Visualizzatore disegno - - Scalable Vector Graphics (*.svg *.svgz) - Grafica Vettoriale Scalabile (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Grafica Vettoriale Scalabile (*.svg *.svgz) - Wrong selection - Selezione errata + + + + + Wrong selection + Selezione errata - Select a Part object. - Seleziona un oggetto Parte. + + + Select a Part object. + Seleziona un oggetto Parte. - No page to insert - Nessuna pagina da inserire + + + + + No page to insert + Nessuna pagina da inserire - Create a page to insert. - Crea una pagina da inserire. + + + + Create a page to insert. + Crea una pagina da inserire. - Select one Page object. - Seleziona un oggetto Pagina. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Seleziona un oggetto Pagina. - All Files (*.*) - Tutti i file (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Esporta pagina + + All Files (*.*) + Tutti i file (*.*) - - Show drawing - Mostra disegno + + Export page + Esporta pagina - - + + + Show drawing + Mostra disegno + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Disegno + + Drawing + Disegno - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_ja.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_ja.ts index 021388eed..6402207c1 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_ja.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_ja.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + å›³é¢ + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + å›³é¢ + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - ファイル + + File + ファイル - &Export page... - &Export page... + + &Export page... + &Export page... - Export a page to an SVG file - SVGファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + + + Export a page to an SVG file + SVGファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - - + + CmdDrawingNewA3Landscape - Drawing - å›³é¢ + + Drawing + å›³é¢ - Insert new A3 landscape drawing - Insert new A3 landscape drawing + + + Insert new A3 landscape drawing + Insert new A3 landscape drawing - - + + CmdDrawingNewPage - Drawing - å›³é¢ + + Drawing + å›³é¢ - Insert new drawing - æ–°ã—ã„図é¢ã‚’挿入 + + + Insert new drawing + æ–°ã—ã„図é¢ã‚’挿入 - - + + CmdDrawingNewView - Drawing - å›³é¢ + + Drawing + å›³é¢ - Insert view in drawing - Insert view in drawing + + Insert view in drawing + Insert view in drawing - Insert a new View of a Part in the active drawing - Insert a new View of a Part in the active drawing + + Insert a new View of a Part in the active drawing + Insert a new View of a Part in the active drawing - - + + CmdDrawingOpen - Drawing - å›³é¢ + + Drawing + å›³é¢ - Open SVG... - Open SVG... + + Open SVG... + Open SVG... - Open a scalable vector graphic - ベクトルグラフィックを開ãã¾ã™ã€‚ + + Open a scalable vector graphic + ベクトルグラフィックを開ãã¾ã™ã€‚ - - + + + CmdDrawingOpenBrowserView + + + Drawing + å›³é¢ + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + å›³é¢ + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - å›³é¢ + + Drawing + å›³é¢ - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Background + + &Background + &Background - &Outline - &Outline + + &Outline + &Outline - &Native - &Native + + &Native + &Native - &OpenGL - OpenGL (&o) + + &OpenGL + OpenGL (&o) - &Image - ç”»åƒï¼ˆ&i) + + &Image + ç”»åƒï¼ˆ&i) - &High Quality Antialiasing - 高å“質アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹(&H) + + &High Quality Antialiasing + 高å“質アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹(&H) - Open SVG File - SVG ファイルを開ã + + Open SVG File + SVG ファイルを開ã - Could not open file '%1'. - Could not open file '%1'. + + Could not open file '%1'. + Could not open file '%1'. - &Renderer - &Renderer + + &Renderer + &Renderer - Export PDF - PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + + Export PDF + PDFファイル形å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - PDF file (*.pdf) - PDF ファイル (*.pdf) + + PDF file (*.pdf) + PDF ファイル (*.pdf) - Page sizes - ページサイズ + + Page sizes + ページサイズ - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 横 + A0 landscape + A0 横 - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 横 + A1 landscape + A1 横 - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 横 + A2 landscape + A2 横 - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 横 + A3 landscape + A3 横 - Insert new A3 landscape drawing - Insert new A3 landscape drawing + Insert new A3 landscape drawing + Insert new A3 landscape drawing - A4 landscape - A4 横 + A4 landscape + A4 横 - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - SVG ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž + + Choose an SVG file to open + SVG ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž - - Drawing viewer - Drawing viewer + + + + Drawing viewer + Drawing viewer - - Scalable Vector Graphics (*.svg *.svgz) - Scalable Vector Graphics (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Scalable Vector Graphics (*.svg *.svgz) - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select a Part object. - Select a Part object. + + + Select a Part object. + Select a Part object. - No page to insert - No page to insert + + + + + No page to insert + No page to insert - Create a page to insert. - Create a page to insert. + + + + Create a page to insert. + Create a page to insert. - Select one Page object. - Select one Page object. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Select one Page object. - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - Export page + + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - - Show drawing - Show drawing + + Export page + Export page - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - å›³é¢ + + Drawing + å›³é¢ - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_nl.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_nl.ts index e16424ddd..533849f94 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_nl.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_nl.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Tekening + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Tekening + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Bestand + + File + Bestand - &Export page... - &Exporteer pagina... + + &Export page... + &Exporteer pagina... - Export a page to an SVG file - Een pagina naar een SVG-bestand exporteren + + + Export a page to an SVG file + Een pagina naar een SVG-bestand exporteren - - + + CmdDrawingNewA3Landscape - Drawing - Tekening + + Drawing + Tekening - Insert new A3 landscape drawing - Nieuwe A3-tekening (liggend) invoegen + + + Insert new A3 landscape drawing + Nieuwe A3-tekening (liggend) invoegen - - + + CmdDrawingNewPage - Drawing - Tekening + + Drawing + Tekening - Insert new drawing - Nieuwe tekening invoegen + + + Insert new drawing + Nieuwe tekening invoegen - - + + CmdDrawingNewView - Drawing - Tekening + + Drawing + Tekening - Insert view in drawing - Aanzicht invoegen in een tekening + + Insert view in drawing + Aanzicht invoegen in een tekening - Insert a new View of a Part in the active drawing - Plaats een nieuwe aanzicht van een onderdeel in de actieve tekening + + Insert a new View of a Part in the active drawing + Plaats een nieuwe aanzicht van een onderdeel in de actieve tekening - - + + CmdDrawingOpen - Drawing - Tekening + + Drawing + Tekening - Open SVG... - Open SVG... + + Open SVG... + Open SVG... - Open a scalable vector graphic - Open een scalable vector graphic + + Open a scalable vector graphic + Open een scalable vector graphic - - + + + CmdDrawingOpenBrowserView + + + Drawing + Tekening + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Tekening + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Tekening + + Drawing + Tekening - Project shape... - Projectvorm... + + Project shape... + Projectvorm... - Project shape onto a user-defined plane - Projecteer vorm op een door de gebruiker gedefinieerd vlak + + + Project shape onto a user-defined plane + Projecteer vorm op een door de gebruiker gedefinieerd vlak - - + + DrawingGui::DrawingView - - &Background - &Achtergrond + + &Background + &Achtergrond - &Outline - &Omtrek + + &Outline + &Omtrek - &Native - &Eigen + + &Native + &Eigen - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Afbeelding + + &Image + &Afbeelding - &High Quality Antialiasing - Hoge kwaliteit Antialiasing + + &High Quality Antialiasing + Hoge kwaliteit Antialiasing - Open SVG File - Open SVG-bestand + + Open SVG File + Open SVG-bestand - Could not open file '%1'. - Kon bestand '%1' niet openen. + + Could not open file '%1'. + Kon bestand '%1' niet openen. - &Renderer - Renderer + + &Renderer + Renderer - Export PDF - Exporteren als PDF + + Export PDF + Exporteren als PDF - PDF file (*.pdf) - PDF-bestand (*.pdf) + + PDF file (*.pdf) + PDF-bestand (*.pdf) - Page sizes - Paginaformaten + + Page sizes + Paginaformaten - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Zichtbare scherpe randen + + Visible sharp edges + Zichtbare scherpe randen - Visible smooth edges - Zichtbare gladde randen + + Visible smooth edges + Zichtbare gladde randen - Visible sewn edges - Zichtbare genaaide randen + + Visible sewn edges + Zichtbare genaaide randen - Visible outline edges - Zichtbare omtrekranden + + Visible outline edges + Zichtbare omtrekranden - Visible isoparameters - Zichtbare ISO-parameters + + Visible isoparameters + Zichtbare ISO-parameters - Hidden sharp edges - Verborgen scherpe randen + + Hidden sharp edges + Verborgen scherpe randen - Hidden smooth edges - Verborgen gladde randen + + Hidden smooth edges + Verborgen gladde randen - Hidden sewn edges - Verborgen genaaide randen + + Hidden sewn edges + Verborgen genaaide randen - Hidden outline edges - Verborgen omtrekranden + + Hidden outline edges + Verborgen omtrekranden - Hidden isoparameters - Verborgen ISO-parameters + + Hidden isoparameters + Verborgen ISO-parameters - Project shapes - Projecteer vormen + + Project shapes + Projecteer vormen - - + + Drawing_NewPage - - A0 landscape - A0 liggend + A0 landscape + A0 liggend - Insert new A0 landscape drawing - Nieuwe A0-tekening (liggend) invoegen + Insert new A0 landscape drawing + Nieuwe A0-tekening (liggend) invoegen - A1 landscape - A1 liggend + A1 landscape + A1 liggend - Insert new A1 landscape drawing - Nieuwe A1-tekening (liggend) invoegen + Insert new A1 landscape drawing + Nieuwe A1-tekening (liggend) invoegen - A2 landscape - A2 liggend + A2 landscape + A2 liggend - Insert new A2 landscape drawing - Nieuwe A2-tekening (liggend) invoegen + Insert new A2 landscape drawing + Nieuwe A2-tekening (liggend) invoegen - A3 landscape - A3 liggend + A3 landscape + A3 liggend - Insert new A3 landscape drawing - Nieuwe A3-tekening (liggend) invoegen + Insert new A3 landscape drawing + Nieuwe A3-tekening (liggend) invoegen - A4 landscape - A4 liggend + A4 landscape + A4 liggend - Insert new A4 landscape drawing - Nieuwe A4-tekening (liggend) invoegen + Insert new A4 landscape drawing + Nieuwe A4-tekening (liggend) invoegen - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Kies een SVG-bestand om te openen + + Choose an SVG file to open + Kies een SVG-bestand om te openen - - Drawing viewer - Tekening bekijker + + + + Drawing viewer + Tekening bekijker - - Scalable Vector Graphics (*.svg *.svgz) - Scalable Vector Graphics (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Scalable Vector Graphics (*.svg *.svgz) - Wrong selection - Verkeerde selectie + + + + + Wrong selection + Verkeerde selectie - Select a Part object. - Selecteer een onderdeel-object. + + + Select a Part object. + Selecteer een onderdeel-object. - No page to insert - Geen pagina om in te voegen + + + + + No page to insert + Geen pagina om in te voegen - Create a page to insert. - Maak een pagina om in te voegen. + + + + Create a page to insert. + Maak een pagina om in te voegen. - Select one Page object. - Selecteer een pagina-object. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Selecteer een pagina-object. - All Files (*.*) - Alle bestanden (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Exporteer pagina + + All Files (*.*) + Alle bestanden (*.*) - - Show drawing - Toon tekening + + Export page + Exporteer pagina - - + + + Show drawing + Toon tekening + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Tekening + + Drawing + Tekening - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_no.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_no.ts index 33cc53400..9c71f7fa5 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_no.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_no.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Tegning + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Tegning + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Fil + + File + Fil - &Export page... - &Eksporter side... + + &Export page... + &Eksporter side... - Export a page to an SVG file - Eksportere en side til en SVG-fil + + + Export a page to an SVG file + Eksportere en side til en SVG-fil - - + + CmdDrawingNewA3Landscape - Drawing - Tegning + + Drawing + Tegning - Insert new A3 landscape drawing - Sett inn ny A3 landskapstegning + + + Insert new A3 landscape drawing + Sett inn ny A3 landskapstegning - - + + CmdDrawingNewPage - Drawing - Tegning + + Drawing + Tegning - Insert new drawing - Insert new drawing + + + Insert new drawing + Insert new drawing - - + + CmdDrawingNewView - Drawing - Tegning + + Drawing + Tegning - Insert view in drawing - Sett inn visning i tegning + + Insert view in drawing + Sett inn visning i tegning - Insert a new View of a Part in the active drawing - Sett inn en ny visning av et komponent i den aktive tegningen + + Insert a new View of a Part in the active drawing + Sett inn en ny visning av et komponent i den aktive tegningen - - + + CmdDrawingOpen - Drawing - Tegning + + Drawing + Tegning - Open SVG... - Ã…pne SVG... + + Open SVG... + Ã…pne SVG... - Open a scalable vector graphic - Ã…pne skalerbar vektorgrafikk + + Open a scalable vector graphic + Ã…pne skalerbar vektorgrafikk - - + + + CmdDrawingOpenBrowserView + + + Drawing + Tegning + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Tegning + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Tegning + + Drawing + Tegning - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Bakgrunn + + &Background + &Bakgrunn - &Outline - &Disposisjon + + &Outline + &Disposisjon - &Native - &Opprinnelig + + &Native + &Opprinnelig - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Bilde + + &Image + &Bilde - &High Quality Antialiasing - &Høykvalitets kantutjevning + + &High Quality Antialiasing + &Høykvalitets kantutjevning - Open SVG File - Ã…pne SVG-fil + + Open SVG File + Ã…pne SVG-fil - Could not open file '%1'. - Kunne ikke Ã¥pne filen '%1'. + + Could not open file '%1'. + Kunne ikke Ã¥pne filen '%1'. - &Renderer - &Bildegenerering + + &Renderer + &Bildegenerering - Export PDF - Eksporter PDF + + Export PDF + Eksporter PDF - PDF file (*.pdf) - PDF-fil (*.pdf) + + PDF file (*.pdf) + PDF-fil (*.pdf) - Page sizes - Page sizes + + Page sizes + Page sizes - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Sett inn ny A3 landskapstegning + Insert new A3 landscape drawing + Sett inn ny A3 landskapstegning - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Velg en SVG-fil Ã¥ Ã¥pne + + Choose an SVG file to open + Velg en SVG-fil Ã¥ Ã¥pne - - Drawing viewer - Tegningsviser + + + + Drawing viewer + Tegningsviser - - Scalable Vector Graphics (*.svg *.svgz) - Skalerbar Vektor Grafikk (SVG *. *. svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skalerbar Vektor Grafikk (SVG *. *. svgz) - Wrong selection - Feil valg + + + + + Wrong selection + Feil valg - Select a Part object. - Velg et komponentobjekt. + + + Select a Part object. + Velg et komponentobjekt. - No page to insert - Ingen side Ã¥ sette inn + + + + + No page to insert + Ingen side Ã¥ sette inn - Create a page to insert. - Lag en side Ã¥ sette inn. + + + + Create a page to insert. + Lag en side Ã¥ sette inn. - Select one Page object. - Velg ett objekt pÃ¥ siden. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Velg ett objekt pÃ¥ siden. - All Files (*.*) - Alle filer (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Eksporter side + + All Files (*.*) + Alle filer (*.*) - - Show drawing - Show drawing + + Export page + Eksporter side - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Tegning + + Drawing + Tegning - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_pl.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_pl.ts index 4ad221519..6ed1b1286 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_pl.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_pl.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Rysunek + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Rysunek + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Plik + + File + Plik - &Export page... - &Eksportuj stronÄ™... + + &Export page... + &Eksportuj stronÄ™... - Export a page to an SVG file - Eksport strony do pliku SVG + + + Export a page to an SVG file + Eksport strony do pliku SVG - - + + CmdDrawingNewA3Landscape - Drawing - Rysunek + + Drawing + Rysunek - Insert new A3 landscape drawing - Wstaw formatkÄ™ A3 poziomo + + + Insert new A3 landscape drawing + Wstaw formatkÄ™ A3 poziomo - - + + CmdDrawingNewPage - Drawing - Rysunek + + Drawing + Rysunek - Insert new drawing - Wstaw nowy rysunek + + + Insert new drawing + Wstaw nowy rysunek - - + + CmdDrawingNewView - Drawing - Rysunek + + Drawing + Rysunek - Insert view in drawing - Wstaw widok w rysunku + + Insert view in drawing + Wstaw widok w rysunku - Insert a new View of a Part in the active drawing - Wstaw nowy widok części w aktywnym rysunku + + Insert a new View of a Part in the active drawing + Wstaw nowy widok części w aktywnym rysunku - - + + CmdDrawingOpen - Drawing - Rysunek + + Drawing + Rysunek - Open SVG... - Otwórz SVG... + + Open SVG... + Otwórz SVG... - Open a scalable vector graphic - Otwórz skalowalnÄ… grafikÄ™ wektorowÄ… + + Open a scalable vector graphic + Otwórz skalowalnÄ… grafikÄ™ wektorowÄ… - - + + + CmdDrawingOpenBrowserView + + + Drawing + Rysunek + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Rysunek + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Rysunek + + Drawing + Rysunek - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &TÅ‚o + + &Background + &TÅ‚o - &Outline - &Zarys + + &Outline + &Zarys - &Native - &Wbudowany + + &Native + &Wbudowany - &OpenGL - OpenGL + + &OpenGL + OpenGL - &Image - &Obraz + + &Image + &Obraz - &High Quality Antialiasing - &WygÅ‚adzanie wysokiej jakoÅ›ci + + &High Quality Antialiasing + &WygÅ‚adzanie wysokiej jakoÅ›ci - Open SVG File - Otwórz plik SVG + + Open SVG File + Otwórz plik SVG - Could not open file '%1'. - Nie można otworzyć pliku '%1'. + + Could not open file '%1'. + Nie można otworzyć pliku '%1'. - &Renderer - &Renderer + + &Renderer + &Renderer - Export PDF - Eksport PDF + + Export PDF + Eksport PDF - PDF file (*.pdf) - Plik PDF (*. pdf) + + PDF file (*.pdf) + Plik PDF (*. pdf) - Page sizes - Rozmiary stron + + Page sizes + Rozmiary stron - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 poziomo + A0 landscape + A0 poziomo - Insert new A0 landscape drawing - Wstaw formatkÄ™ A0 poziomo + Insert new A0 landscape drawing + Wstaw formatkÄ™ A0 poziomo - A1 landscape - A1 poziomo + A1 landscape + A1 poziomo - Insert new A1 landscape drawing - Wstaw formatkÄ™ A1 poziomo + Insert new A1 landscape drawing + Wstaw formatkÄ™ A1 poziomo - A2 landscape - A2 poziomo + A2 landscape + A2 poziomo - Insert new A2 landscape drawing - Wstaw formatkÄ™ A3 poziomo + Insert new A2 landscape drawing + Wstaw formatkÄ™ A3 poziomo - A3 landscape - A3 poziomo + A3 landscape + A3 poziomo - Insert new A3 landscape drawing - Wstaw formatkÄ™ A3 poziomo + Insert new A3 landscape drawing + Wstaw formatkÄ™ A3 poziomo - A4 landscape - A4 poziomo + A4 landscape + A4 poziomo - Insert new A4 landscape drawing - Wstaw formatkÄ™ A4 poziomo + Insert new A4 landscape drawing + Wstaw formatkÄ™ A4 poziomo - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Wybierz plik SVG do otwarcia + + Choose an SVG file to open + Wybierz plik SVG do otwarcia - - Drawing viewer - PodglÄ…d rysunku + + + + Drawing viewer + PodglÄ…d rysunku - - Scalable Vector Graphics (*.svg *.svgz) - Skalowalna Grafika Wektorowa (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skalowalna Grafika Wektorowa (*.svg *.svgz) - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select a Part object. - Wybierz stronÄ™. + + + Select a Part object. + Wybierz stronÄ™. - No page to insert - Brak strony do wstawienia. + + + + + No page to insert + Brak strony do wstawienia. - Create a page to insert. - Utwórz stronÄ™ do wstawienia. + + + + Create a page to insert. + Utwórz stronÄ™ do wstawienia. - Select one Page object. - Wybierz jednÄ… StronÄ™ + + Create a page to insert views into. + - SVG(*.svg) - SVG (*. svg) + + + Select one Page object. + Wybierz jednÄ… StronÄ™ - All Files (*.*) - Wszystkie pliki (*.*) + + SVG(*.svg) + SVG (*. svg) - Export page - WyÅ›lij stronÄ™ + + All Files (*.*) + Wszystkie pliki (*.*) - - Show drawing - Pokaż rysunek + + Export page + WyÅ›lij stronÄ™ - - + + + Show drawing + Pokaż rysunek + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Rysunek + + Drawing + Rysunek - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_pt.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_pt.ts index 709080dae..ede240b9e 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_pt.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_pt.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Desenho + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Desenho + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Arquivo + + File + Arquivo - &Export page... - &Exportar página... + + &Export page... + &Exportar página... - Export a page to an SVG file - Exportar página para um arquivo SVG + + + Export a page to an SVG file + Exportar página para um arquivo SVG - - + + CmdDrawingNewA3Landscape - Drawing - Desenho + + Drawing + Desenho - Insert new A3 landscape drawing - Inserir um novo desenho A3 paisagem + + + Insert new A3 landscape drawing + Inserir um novo desenho A3 paisagem - - + + CmdDrawingNewPage - Drawing - Desenho + + Drawing + Desenho - Insert new drawing - Inserir novo desenho + + + Insert new drawing + Inserir novo desenho - - + + CmdDrawingNewView - Drawing - Desenho + + Drawing + Desenho - Insert view in drawing - Inserir uma vista no desenho + + Insert view in drawing + Inserir uma vista no desenho - Insert a new View of a Part in the active drawing - Inserir uma nova Vista de uma peça no desenho ativo + + Insert a new View of a Part in the active drawing + Inserir uma nova Vista de uma peça no desenho ativo - - + + CmdDrawingOpen - Drawing - Desenho + + Drawing + Desenho - Open SVG... - Abrir SVG... + + Open SVG... + Abrir SVG... - Open a scalable vector graphic - Abrir um gráfico vetorial escalável + + Open a scalable vector graphic + Abrir um gráfico vetorial escalável - - + + + CmdDrawingOpenBrowserView + + + Drawing + Desenho + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Desenho + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Desenho + + Drawing + Desenho - Project shape... - Projetar uma forma... + + Project shape... + Projetar uma forma... - Project shape onto a user-defined plane - Projeta uma forma sobre um plano definido pelo usuário + + + Project shape onto a user-defined plane + Projeta uma forma sobre um plano definido pelo usuário - - + + DrawingGui::DrawingView - - &Background - Plano de &Fundo + + &Background + Plano de &Fundo - &Outline - &Contorno + + &Outline + &Contorno - &Native - &Nativo + + &Native + &Nativo - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Imagem + + &Image + &Imagem - &High Quality Antialiasing - Antialiasing de alta qualidade + + &High Quality Antialiasing + Antialiasing de alta qualidade - Open SVG File - Abrir arquivo SVG + + Open SVG File + Abrir arquivo SVG - Could not open file '%1'. - Não foi possível abrir o arquivo "%1". + + Could not open file '%1'. + Não foi possível abrir o arquivo "%1". - &Renderer - &Renderizador + + &Renderer + &Renderizador - Export PDF - Exportar PDF + + Export PDF + Exportar PDF - PDF file (*.pdf) - Arquivo PDF (*.pdf) + + PDF file (*.pdf) + Arquivo PDF (*.pdf) - Page sizes - Tamanhos de página + + Page sizes + Tamanhos de página - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Bordas afiadas visíveis + + Visible sharp edges + Bordas afiadas visíveis - Visible smooth edges - Bordas alisadas visíveis + + Visible smooth edges + Bordas alisadas visíveis - Visible sewn edges - Bordas costuradas visíveis + + Visible sewn edges + Bordas costuradas visíveis - Visible outline edges - Bordas de contorno visíveis + + Visible outline edges + Bordas de contorno visíveis - Visible isoparameters - Isoparâmetros visíveis + + Visible isoparameters + Isoparâmetros visíveis - Hidden sharp edges - Bordas afiadas escondidas + + Hidden sharp edges + Bordas afiadas escondidas - Hidden smooth edges - Bordas alisadas escondidas + + Hidden smooth edges + Bordas alisadas escondidas - Hidden sewn edges - Bordas costuradas escondidas + + Hidden sewn edges + Bordas costuradas escondidas - Hidden outline edges - Bordas de contorno escondidas + + Hidden outline edges + Bordas de contorno escondidas - Hidden isoparameters - Isoparâmetros escondidos + + Hidden isoparameters + Isoparâmetros escondidos - Project shapes - Projetar formas + + Project shapes + Projetar formas - - + + Drawing_NewPage - - A0 landscape - A0 paisagem + A0 landscape + A0 paisagem - Insert new A0 landscape drawing - Inserir uma nova página A0 paisagem + Insert new A0 landscape drawing + Inserir uma nova página A0 paisagem - A1 landscape - A1 paisagem + A1 landscape + A1 paisagem - Insert new A1 landscape drawing - Inserir uma nova página A1 paisagem + Insert new A1 landscape drawing + Inserir uma nova página A1 paisagem - A2 landscape - A2 paisagem + A2 landscape + A2 paisagem - Insert new A2 landscape drawing - Inserir uma nova página A2 paisagem + Insert new A2 landscape drawing + Inserir uma nova página A2 paisagem - A3 landscape - A3 paisagem + A3 landscape + A3 paisagem - Insert new A3 landscape drawing - Inserir um novo desenho A3 paisagem + Insert new A3 landscape drawing + Inserir um novo desenho A3 paisagem - A4 landscape - A4 paisagem + A4 landscape + A4 paisagem - Insert new A4 landscape drawing - Inserir uma nova página A4 paisagem + Insert new A4 landscape drawing + Inserir uma nova página A4 paisagem - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Escolha um arquivo SVG para abrir + + Choose an SVG file to open + Escolha um arquivo SVG para abrir - - Drawing viewer - Visualizador de desenho + + + + Drawing viewer + Visualizador de desenho - - Scalable Vector Graphics (*.svg *.svgz) - Scalable Vector Graphics (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Scalable Vector Graphics (*.svg *.svgz) - Wrong selection - Seleção errada + + + + + Wrong selection + Seleção errada - Select a Part object. - Selecione um objeto Part. + + + Select a Part object. + Selecione um objeto Part. - No page to insert - Nenhuma página para inserir + + + + + No page to insert + Nenhuma página para inserir - Create a page to insert. - Criar uma página para inserir. + + + + Create a page to insert. + Criar uma página para inserir. - Select one Page object. - Selecione um objeto de tipo Página. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Selecione um objeto de tipo Página. - All Files (*.*) - Todos os arquivos (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Exportar uma página + + All Files (*.*) + Todos os arquivos (*.*) - - Show drawing - Mostrar o desenho + + Export page + Exportar uma página - - + + + Show drawing + Mostrar o desenho + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Desenho + + Drawing + Desenho - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_ru.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_ru.ts index ab2a25b40..7ad0e5760 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_ru.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_ru.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Чертеж + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Чертеж + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Файл + + File + Файл - &Export page... - ЭкÑпортировать Ñтраницу... + + &Export page... + ЭкÑпортировать Ñтраницу... - Export a page to an SVG file - ЭкÑпорт Ñтраницу в файл SVG + + + Export a page to an SVG file + ЭкÑпорт Ñтраницу в файл SVG - - + + CmdDrawingNewA3Landscape - Drawing - Чертеж + + Drawing + Чертеж - Insert new A3 landscape drawing - Ð’Ñтавить новый фоновый чертеж Ð3 + + + Insert new A3 landscape drawing + Ð’Ñтавить новый фоновый чертеж Ð3 - - + + CmdDrawingNewPage - Drawing - Чертеж + + Drawing + Чертеж - Insert new drawing - Ð’Ñтавить новый чертеж + + + Insert new drawing + Ð’Ñтавить новый чертеж - - + + CmdDrawingNewView - Drawing - Чертеж + + Drawing + Чертеж - Insert view in drawing - Ð’Ñтавить вид в чертеж + + Insert view in drawing + Ð’Ñтавить вид в чертеж - Insert a new View of a Part in the active drawing - Ð’Ñтавить новый вид детали в текущий чертеж + + Insert a new View of a Part in the active drawing + Ð’Ñтавить новый вид детали в текущий чертеж - - + + CmdDrawingOpen - Drawing - Чертеж + + Drawing + Чертеж - Open SVG... - Открыть SVG... + + Open SVG... + Открыть SVG... - Open a scalable vector graphic - Открыть маÑштабируемую векторную графику + + Open a scalable vector graphic + Открыть маÑштабируемую векторную графику - - + + + CmdDrawingOpenBrowserView + + + Drawing + Чертеж + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Чертеж + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Чертеж + + Drawing + Чертеж - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Фон + + &Background + &Фон - &Outline - &Контур + + &Outline + &Контур - &Native - &СобÑтвенный + + &Native + &СобÑтвенный - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Изображение + + &Image + &Изображение - &High Quality Antialiasing - &Ð’Ñ‹Ñокое качеÑтво ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ + + &High Quality Antialiasing + &Ð’Ñ‹Ñокое качеÑтво ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ - Open SVG File - Открыть файл SVG + + Open SVG File + Открыть файл SVG - Could not open file '%1'. - Ðе удалоÑÑŒ открыть файл '% 1'. + + Could not open file '%1'. + Ðе удалоÑÑŒ открыть файл '% 1'. - &Renderer - Рендерер + + &Renderer + Рендерер - Export PDF - ЭкÑпорт в PDF + + Export PDF + ЭкÑпорт в PDF - PDF file (*.pdf) - PDF-файл (*. PDF) + + PDF file (*.pdf) + PDF-файл (*. PDF) - Page sizes - Размеры Ñтраницы + + Page sizes + Размеры Ñтраницы - A0 - Ð0 + + A0 + Ð0 - A1 - Ð1 + + A1 + Ð1 - A2 - Ð2 + + A2 + Ð2 - A3 - Ð3 + + A3 + Ð3 - A4 - Ð4 + + A4 + Ð4 - A5 - Ð5 + + A5 + Ð5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - Ð0 альбомный + A0 landscape + Ð0 альбомный - Insert new A0 landscape drawing - Ð’Ñтавить новый альбомный чертеж Ð0 + Insert new A0 landscape drawing + Ð’Ñтавить новый альбомный чертеж Ð0 - A1 landscape - Ð1 альбомный + A1 landscape + Ð1 альбомный - Insert new A1 landscape drawing - Ð’Ñтавить новый альбомный чертеж Ð1 + Insert new A1 landscape drawing + Ð’Ñтавить новый альбомный чертеж Ð1 - A2 landscape - Ð2 альбомный + A2 landscape + Ð2 альбомный - Insert new A2 landscape drawing - Ð’Ñтавить новый альбомный чертеж Ð2 + Insert new A2 landscape drawing + Ð’Ñтавить новый альбомный чертеж Ð2 - A3 landscape - Ð3 альбомный + A3 landscape + Ð3 альбомный - Insert new A3 landscape drawing - Ð’Ñтавить новый фоновый чертеж Ð3 + Insert new A3 landscape drawing + Ð’Ñтавить новый фоновый чертеж Ð3 - A4 landscape - Ð4 альбомный + A4 landscape + Ð4 альбомный - Insert new A4 landscape drawing - Ð’Ñтавить новый альбомный чертеж Ð4 + Insert new A4 landscape drawing + Ð’Ñтавить новый альбомный чертеж Ð4 - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Выберите SVG-файл Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ + + Choose an SVG file to open + Выберите SVG-файл Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ - - Drawing viewer - Вид чертежа + + + + Drawing viewer + Вид чертежа - - Scalable Vector Graphics (*.svg *.svgz) - МаÑÑˆÑ‚Ð°Ð±Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð³Ñ€Ð°Ñ„Ð¸ÐºÐ° (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + МаÑÑˆÑ‚Ð°Ð±Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð³Ñ€Ð°Ñ„Ð¸ÐºÐ° (*.svg *.svgz) - Wrong selection - Ðеправильный выбор + + + + + Wrong selection + Ðеправильный выбор - Select a Part object. - Выберите чаÑть объекта. + + + Select a Part object. + Выберите чаÑть объекта. - No page to insert - Ðет Ñтраницы Ð´Ð»Ñ Ð²Ñтавки + + + + + No page to insert + Ðет Ñтраницы Ð´Ð»Ñ Ð²Ñтавки - Create a page to insert. - Создать Ñтраницу Ð´Ð»Ñ Ð²Ñтавки. + + + + Create a page to insert. + Создать Ñтраницу Ð´Ð»Ñ Ð²Ñтавки. - Select one Page object. - Выберите одну Ñтраницу объекта. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Выберите одну Ñтраницу объекта. - All Files (*.*) - Ð’Ñе файлы (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - ЭкÑпортировать Ñтраницу + + All Files (*.*) + Ð’Ñе файлы (*.*) - - Show drawing - Показать чертеж + + Export page + ЭкÑпортировать Ñтраницу - - + + + Show drawing + Показать чертеж + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Чертеж + + Drawing + Чертеж - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_se.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_se.ts index 58d982c90..0e21fcbe3 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_se.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_se.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + Ritning + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + Ritning + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Fil + + File + Fil - &Export page... - &Exportera sida... + + &Export page... + &Exportera sida... - Export a page to an SVG file - Exportera en sida till en SVG-fil + + + Export a page to an SVG file + Exportera en sida till en SVG-fil - - + + CmdDrawingNewA3Landscape - Drawing - Ritning + + Drawing + Ritning - Insert new A3 landscape drawing - Infoga ny A3 landskap ritning + + + Insert new A3 landscape drawing + Infoga ny A3 landskap ritning - - + + CmdDrawingNewPage - Drawing - Ritning + + Drawing + Ritning - Insert new drawing - Sätt in ny ritning + + + Insert new drawing + Sätt in ny ritning - - + + CmdDrawingNewView - Drawing - Ritning + + Drawing + Ritning - Insert view in drawing - Infoga vy i ritningen + + Insert view in drawing + Infoga vy i ritningen - Insert a new View of a Part in the active drawing - Sätt in en ny vy av en Del i den aktiva ritningen + + Insert a new View of a Part in the active drawing + Sätt in en ny vy av en Del i den aktiva ritningen - - + + CmdDrawingOpen - Drawing - Ritning + + Drawing + Ritning - Open SVG... - Öppna SVG... + + Open SVG... + Öppna SVG... - Open a scalable vector graphic - Öppna en skalbar vektorgrafik + + Open a scalable vector graphic + Öppna en skalbar vektorgrafik - - + + + CmdDrawingOpenBrowserView + + + Drawing + Ritning + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + Ritning + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - Ritning + + Drawing + Ritning - Project shape... - Projekt former... + + Project shape... + Projekt former... - Project shape onto a user-defined plane - Projicera form pÃ¥ ett användardefinierat plan + + + Project shape onto a user-defined plane + Projicera form pÃ¥ ett användardefinierat plan - - + + DrawingGui::DrawingView - - &Background - B&akgrund + + &Background + B&akgrund - &Outline - &Kontur + + &Outline + &Kontur - &Native - &Nativ + + &Native + &Nativ - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Bild + + &Image + &Bild - &High Quality Antialiasing - &Högkvalitets kantutjämning + + &High Quality Antialiasing + &Högkvalitets kantutjämning - Open SVG File - Öppna SVG-fil + + Open SVG File + Öppna SVG-fil - Could not open file '%1'. - Det gick inte att öppna fil '%1'. + + Could not open file '%1'. + Det gick inte att öppna fil '%1'. - &Renderer - &Renderare + + &Renderer + &Renderare - Export PDF - Exportera PDF + + Export PDF + Exportera PDF - PDF file (*.pdf) - PDF-fil (*.pdf) + + PDF file (*.pdf) + PDF-fil (*.pdf) - Page sizes - Sidstorlekar + + Page sizes + Sidstorlekar - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Synliga vassa kanter + + Visible sharp edges + Synliga vassa kanter - Visible smooth edges - Synliga jämna kanter + + Visible smooth edges + Synliga jämna kanter - Visible sewn edges - Synliga sydda kanter + + Visible sewn edges + Synliga sydda kanter - Visible outline edges - Synliga kontur kanter + + Visible outline edges + Synliga kontur kanter - Visible isoparameters - Synliga isoparametrar + + Visible isoparameters + Synliga isoparametrar - Hidden sharp edges - Dolda vassa kanter + + Hidden sharp edges + Dolda vassa kanter - Hidden smooth edges - Dolda jämna kanter + + Hidden smooth edges + Dolda jämna kanter - Hidden sewn edges - Dolda sydda kanter + + Hidden sewn edges + Dolda sydda kanter - Hidden outline edges - Dolda kontur kanter + + Hidden outline edges + Dolda kontur kanter - Hidden isoparameters - Dolda isoparametrar + + Hidden isoparameters + Dolda isoparametrar - Project shapes - Projekt former + + Project shapes + Projekt former - - + + Drawing_NewPage - - A0 landscape - Liggande A0 + A0 landscape + Liggande A0 - Insert new A0 landscape drawing - Infoga ny liggande A0 ritning + Insert new A0 landscape drawing + Infoga ny liggande A0 ritning - A1 landscape - Liggande A1 + A1 landscape + Liggande A1 - Insert new A1 landscape drawing - Infoga ny liggande A1 ritning + Insert new A1 landscape drawing + Infoga ny liggande A1 ritning - A2 landscape - Liggande A2 + A2 landscape + Liggande A2 - Insert new A2 landscape drawing - Infoga ny liggande A2 ritning + Insert new A2 landscape drawing + Infoga ny liggande A2 ritning - A3 landscape - Liggande A3 + A3 landscape + Liggande A3 - Insert new A3 landscape drawing - Infoga ny A3 landskap ritning + Insert new A3 landscape drawing + Infoga ny A3 landskap ritning - A4 landscape - Liggande A4 + A4 landscape + Liggande A4 - Insert new A4 landscape drawing - Infoga ny liggande A4 ritning + Insert new A4 landscape drawing + Infoga ny liggande A4 ritning - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Välj en SVG fil att öppna + + Choose an SVG file to open + Välj en SVG fil att öppna - - Drawing viewer - Ritningsvisare + + + + Drawing viewer + Ritningsvisare - - Scalable Vector Graphics (*.svg *.svgz) - Skalbar vektorgrafik (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + Skalbar vektorgrafik (*.svg *.svgz) - Wrong selection - Fel val + + + + + Wrong selection + Fel val - Select a Part object. - Välj ett Del objekt. + + + Select a Part object. + Välj ett Del objekt. - No page to insert - Ingen sida att infoga + + + + + No page to insert + Ingen sida att infoga - Create a page to insert. - Skapa en sida att infoga. + + + + Create a page to insert. + Skapa en sida att infoga. - Select one Page object. - Välj ett sidobjekt. + + Create a page to insert views into. + - SVG(*.svg) - SVG (*.svg) + + + Select one Page object. + Välj ett sidobjekt. - All Files (*.*) - Alla filer (*.*) + + SVG(*.svg) + SVG (*.svg) - Export page - Exportera sida + + All Files (*.*) + Alla filer (*.*) - - Show drawing - Visa ritning + + Export page + Exportera sida - - + + + Show drawing + Visa ritning + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - Ritning + + Drawing + Ritning - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_uk.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_uk.ts index b0feccd3d..28b9d87cf 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_uk.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_uk.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - Файл + + File + Файл - &Export page... - &ЕкÑпорт Ñторінки... + + &Export page... + &ЕкÑпорт Ñторінки... - Export a page to an SVG file - ЕкÑпорт Ñторінки в SVG файл + + + Export a page to an SVG file + ЕкÑпорт Ñторінки в SVG файл - - + + CmdDrawingNewA3Landscape - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - Insert new A3 landscape drawing - Ð’Ñтавить нове фонове креÑÐ»ÐµÐ½Ð½Ñ Ð3 + + + Insert new A3 landscape drawing + Ð’Ñтавить нове фонове креÑÐ»ÐµÐ½Ð½Ñ Ð3 - - + + CmdDrawingNewPage - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - Insert new drawing - Insert new drawing + + + Insert new drawing + Insert new drawing - - + + CmdDrawingNewView - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - Insert view in drawing - Додати виглÑд в креÑÐ»ÐµÐ½Ð½Ñ + + Insert view in drawing + Додати виглÑд в креÑÐ»ÐµÐ½Ð½Ñ - Insert a new View of a Part in the active drawing - Ð’Ñтавить новий виглÑд деталі в поточне креÑÐ»ÐµÐ½Ð½Ñ + + Insert a new View of a Part in the active drawing + Ð’Ñтавить новий виглÑд деталі в поточне креÑÐ»ÐµÐ½Ð½Ñ - - + + CmdDrawingOpen - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - Open SVG... - Відкрити SVG ... + + Open SVG... + Відкрити SVG ... - Open a scalable vector graphic - Відкрити маÑштабовану векторну графіку (SVG) + + Open a scalable vector graphic + Відкрити маÑштабовану векторну графіку (SVG) - - + + + CmdDrawingOpenBrowserView + + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - Project shape... - Project shape... + + Project shape... + Project shape... - Project shape onto a user-defined plane - Project shape onto a user-defined plane + + + Project shape onto a user-defined plane + Project shape onto a user-defined plane - - + + DrawingGui::DrawingView - - &Background - &Фон + + &Background + &Фон - &Outline - &Контур + + &Outline + &Контур - &Native - &Рідне + + &Native + &Рідне - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - &Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + &Image + &Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - &High Quality Antialiasing - &ВиÑока ÑкіÑть Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ + + &High Quality Antialiasing + &ВиÑока ÑкіÑть Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ - Open SVG File - Відкрити SVG файл + + Open SVG File + Відкрити SVG файл - Could not open file '%1'. - Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл '%1'. + + Could not open file '%1'. + Ðе вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл '%1'. - &Renderer - &Промалювувач + + &Renderer + &Промалювувач - Export PDF - ЕкÑпорт в PDF + + Export PDF + ЕкÑпорт в PDF - PDF file (*.pdf) - PDF файл (*.pdf) + + PDF file (*.pdf) + PDF файл (*.pdf) - Page sizes - Page sizes + + Page sizes + Page sizes - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - Visible sharp edges + + Visible sharp edges + Visible sharp edges - Visible smooth edges - Visible smooth edges + + Visible smooth edges + Visible smooth edges - Visible sewn edges - Visible sewn edges + + Visible sewn edges + Visible sewn edges - Visible outline edges - Visible outline edges + + Visible outline edges + Visible outline edges - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - Hidden sharp edges + + Hidden sharp edges + Hidden sharp edges - Hidden smooth edges - Hidden smooth edges + + Hidden smooth edges + Hidden smooth edges - Hidden sewn edges - Hidden sewn edges + + Hidden sewn edges + Hidden sewn edges - Hidden outline edges - Hidden outline edges + + Hidden outline edges + Hidden outline edges - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - Project shapes + + Project shapes + Project shapes - - + + Drawing_NewPage - - A0 landscape - A0 landscape + A0 landscape + A0 landscape - Insert new A0 landscape drawing - Insert new A0 landscape drawing + Insert new A0 landscape drawing + Insert new A0 landscape drawing - A1 landscape - A1 landscape + A1 landscape + A1 landscape - Insert new A1 landscape drawing - Insert new A1 landscape drawing + Insert new A1 landscape drawing + Insert new A1 landscape drawing - A2 landscape - A2 landscape + A2 landscape + A2 landscape - Insert new A2 landscape drawing - Insert new A2 landscape drawing + Insert new A2 landscape drawing + Insert new A2 landscape drawing - A3 landscape - A3 landscape + A3 landscape + A3 landscape - Insert new A3 landscape drawing - Ð’Ñтавить нове фонове креÑÐ»ÐµÐ½Ð½Ñ Ð3 + Insert new A3 landscape drawing + Ð’Ñтавить нове фонове креÑÐ»ÐµÐ½Ð½Ñ Ð3 - A4 landscape - A4 landscape + A4 landscape + A4 landscape - Insert new A4 landscape drawing - Insert new A4 landscape drawing + Insert new A4 landscape drawing + Insert new A4 landscape drawing - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - Виберіть файл SVG Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ + + Choose an SVG file to open + Виберіть файл SVG Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ - - Drawing viewer - ПереглÑдач креÑÐ»ÐµÐ½Ð½Ñ + + + + Drawing viewer + ПереглÑдач креÑÐ»ÐµÐ½Ð½Ñ - - Scalable Vector Graphics (*.svg *.svgz) - МаÑштабована векторна графіка (*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + МаÑштабована векторна графіка (*.svg *.svgz) - Wrong selection - Ðевірний вибір + + + + + Wrong selection + Ðевірний вибір - Select a Part object. - Виберіть об'єкт деталі. + + + Select a Part object. + Виберіть об'єкт деталі. - No page to insert - Ðемає Ñторінки Ð´Ð»Ñ Ð²Ñтавки + + + + + No page to insert + Ðемає Ñторінки Ð´Ð»Ñ Ð²Ñтавки - Create a page to insert. - Створити Ñторінку Ð´Ð»Ñ Ð²Ñтавки. + + + + Create a page to insert. + Створити Ñторінку Ð´Ð»Ñ Ð²Ñтавки. - Select one Page object. - Оберіть один об'єкт Ñторінки. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + Оберіть один об'єкт Ñторінки. - All Files (*.*) - Ð’ÑÑ– файли (*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - ЕкÑпорт Ñторінки + + All Files (*.*) + Ð’ÑÑ– файли (*.*) - - Show drawing - Show drawing + + Export page + ЕкÑпорт Ñторінки - - + + + Show drawing + Show drawing + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - КреÑÐ»ÐµÐ½Ð½Ñ + + Drawing + КреÑÐ»ÐµÐ½Ð½Ñ - + diff --git a/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh.ts b/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh.ts index 71e07e9cb..d16a45603 100644 --- a/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh.ts +++ b/src/Mod/Drawing/Gui/Resources/translations/Drawing_zh.ts @@ -1,317 +1,636 @@ - - + + + CmdDrawingAnnotation + + + Drawing + 图纸 + + + + &Annotation + + + + + + Inserts an Annotation view in the active drawing + + + + + CmdDrawingClip + + + Drawing + 图纸 + + + + &Clip + + + + + + Inserts a clip group in the active drawing + + + + CmdDrawingExportPage - - File - 文件 + + File + 文件 - &Export page... - 导出页(&E)... + + &Export page... + 导出页(&E)... - Export a page to an SVG file - 将页é¢å¯¼å‡ºä¸ºSVG文件 + + + Export a page to an SVG file + 将页é¢å¯¼å‡ºä¸ºSVG文件 - - + + CmdDrawingNewA3Landscape - Drawing - 图纸 + + Drawing + 图纸 - Insert new A3 landscape drawing - æ’å…¥A3横å‘图框 + + + Insert new A3 landscape drawing + æ’å…¥A3横å‘图框 - - + + CmdDrawingNewPage - Drawing - 图纸 + + Drawing + 图纸 - Insert new drawing - æ’入新图纸 + + + Insert new drawing + æ’入新图纸 - - + + CmdDrawingNewView - Drawing - 图纸 + + Drawing + 图纸 - Insert view in drawing - 在图纸中æ’入视图 + + Insert view in drawing + 在图纸中æ’入视图 - Insert a new View of a Part in the active drawing - 在当å‰å›¾çº¸ä¸­æ’入一个零件视图 + + Insert a new View of a Part in the active drawing + 在当å‰å›¾çº¸ä¸­æ’入一个零件视图 - - + + CmdDrawingOpen - Drawing - 图纸 + + Drawing + 图纸 - Open SVG... - 打开SVG... + + Open SVG... + 打开SVG... - Open a scalable vector graphic - 打开一个å¯ç¼©æ”¾çš„矢é‡å›¾å½¢ + + Open a scalable vector graphic + 打开一个å¯ç¼©æ”¾çš„矢é‡å›¾å½¢ - - + + + CmdDrawingOpenBrowserView + + + Drawing + 图纸 + + + + Open &browser view + + + + + + Opens the selected page in a browser view + + + + + CmdDrawingOrthoViews + + + Drawing + 图纸 + + + + Insert orthographic views + + + + + Insert an orthographic projection of a part in the active drawing + + + + CmdDrawingProjectShape - Drawing - 图纸 + + Drawing + 图纸 - Project shape... - 投影形体... + + Project shape... + 投影形体... - Project shape onto a user-defined plane - æŠ•å½±å½¢ä½“è‡³ç”¨æˆ·å®šä¹‰å¹³é¢ + + + Project shape onto a user-defined plane + æŠ•å½±å½¢ä½“è‡³ç”¨æˆ·å®šä¹‰å¹³é¢ - - + + DrawingGui::DrawingView - - &Background - 背景(&B) + + &Background + 背景(&B) - &Outline - 轮廓(&O) + + &Outline + 轮廓(&O) - &Native - 本地(&N) + + &Native + 本地(&N) - &OpenGL - &OpenGL + + &OpenGL + &OpenGL - &Image - 图片(&I) + + &Image + 图片(&I) - &High Quality Antialiasing - 高å“质抗锯齿(&H) + + &High Quality Antialiasing + 高å“质抗锯齿(&H) - Open SVG File - 打开SVG文件 + + Open SVG File + 打开SVG文件 - Could not open file '%1'. - 无法打开文件'%1'. + + Could not open file '%1'. + 无法打开文件'%1'. - &Renderer - 渲染器(&R) + + &Renderer + 渲染器(&R) - Export PDF - 导出PDF + + Export PDF + 导出PDF - PDF file (*.pdf) - PDF文件(*.pdf) + + PDF file (*.pdf) + PDF文件(*.pdf) - Page sizes - 页é¢å¤§å° + + Page sizes + 页é¢å¤§å° - A0 - A0 + + A0 + A0 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - - + + + DrawingGui::TaskOrthoViews + + + Orthographic Projection + + + + + Projection + + + + + Third Angle + + + + + First Angle + + + + + Primary View + + + + + Front + + + + + Right + + + + + Back + + + + + Left + + + + + Top + + + + + Bottom + + + + + - Rotate + + + + + 0 + + + + + 90 + + + + + 180 + + + + + 270 + + + + + Primary view + + + + + Secondary Views + + + + + General + + + + + Auto scale / position + + + + + Scale + + + + + Primary x / y + + + + + Secondary dx / dy + + + + + Show hidden + + + + + Show smooth + + + + + Axonometric + + + + DrawingGui::TaskProjection - - Visible sharp edges - é”化边缘å¯è§ + + Visible sharp edges + é”化边缘å¯è§ - Visible smooth edges - 平滑边缘å¯è§ + + Visible smooth edges + 平滑边缘å¯è§ - Visible sewn edges - 镶贴边缘å¯è§ + + Visible sewn edges + 镶贴边缘å¯è§ - Visible outline edges - 轮廓边缘å¯è§ + + Visible outline edges + 轮廓边缘å¯è§ - Visible isoparameters - Visible isoparameters + + Visible isoparameters + Visible isoparameters - Hidden sharp edges - é”化边缘éšè— + + Hidden sharp edges + é”化边缘éšè— - Hidden smooth edges - 平滑边缘éšè— + + Hidden smooth edges + 平滑边缘éšè— - Hidden sewn edges - 镶贴边缘éšè— + + Hidden sewn edges + 镶贴边缘éšè— - Hidden outline edges - 轮廓边缘éšè— + + Hidden outline edges + 轮廓边缘éšè— - Hidden isoparameters - Hidden isoparameters + + Hidden isoparameters + Hidden isoparameters - Project shapes - 投影形体 + + Project shapes + 投影形体 - - + + Drawing_NewPage - - A0 landscape - A0æ¨ªå‘ + A0 landscape + A0æ¨ªå‘ - Insert new A0 landscape drawing - æ’å…¥A0横å‘图纸 + Insert new A0 landscape drawing + æ’å…¥A0横å‘图纸 - A1 landscape - A1æ¨ªå‘ + A1 landscape + A1æ¨ªå‘ - Insert new A1 landscape drawing - æ’å…¥A1横å‘图纸 + Insert new A1 landscape drawing + æ’å…¥A1横å‘图纸 - A2 landscape - A2æ¨ªå‘ + A2 landscape + A2æ¨ªå‘ - Insert new A2 landscape drawing - æ’å…¥A2横å‘图纸 + Insert new A2 landscape drawing + æ’å…¥A2横å‘图纸 - A3 landscape - A3æ¨ªå‘ + A3 landscape + A3æ¨ªå‘ - Insert new A3 landscape drawing - æ’å…¥A3横å‘图框 + Insert new A3 landscape drawing + æ’å…¥A3横å‘图框 - A4 landscape - A4æ¨ªå‘ + A4 landscape + A4æ¨ªå‘ - Insert new A4 landscape drawing - æ’å…¥A4横å‘图纸 + Insert new A4 landscape drawing + æ’å…¥A4横å‘图纸 - - + + + A%1 landscape + + + + + Insert new A%1 landscape drawing + + + + QObject - Choose an SVG file to open - 选择一个SVG文件打开 + + Choose an SVG file to open + 选择一个SVG文件打开 - - Drawing viewer - 图纸æµè§ˆå™¨ + + + + Drawing viewer + 图纸æµè§ˆå™¨ - - Scalable Vector Graphics (*.svg *.svgz) - å¯ç¼©æ”¾çŸ¢é‡å›¾å½¢(*.svg *.svgz) + + Scalable Vector Graphics (*.svg *.svgz) + å¯ç¼©æ”¾çŸ¢é‡å›¾å½¢(*.svg *.svgz) - Wrong selection - 选择错误 + + + + + Wrong selection + 选择错误 - Select a Part object. - 选择零件对象. + + + Select a Part object. + 选择零件对象. - No page to insert - 无页é¢å¯æ’å…¥ + + + + + No page to insert + 无页é¢å¯æ’å…¥ - Create a page to insert. - 创建一个æ’入页é¢. + + + + Create a page to insert. + 创建一个æ’入页é¢. - Select one Page object. - 选择一个页对象. + + Create a page to insert views into. + - SVG(*.svg) - SVG(*.svg) + + + Select one Page object. + 选择一个页对象. - All Files (*.*) - 所有文件(*.*) + + SVG(*.svg) + SVG(*.svg) - Export page - å¯¼å‡ºé¡µé¢ + + All Files (*.*) + 所有文件(*.*) - - Show drawing - 显示绘图 + + Export page + å¯¼å‡ºé¡µé¢ - - + + + Show drawing + 显示绘图 + + + + Front + + + + + Back + + + + + Right + + + + + Left + + + + + Top + + + + + Bottom + + + + Workbench - - Drawing - 图纸 + + Drawing + 图纸 - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts index 52519425d..b5cf2fda2 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_af.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Skep FEM-maas + + Create FEM mesh + Skep FEM-maas - Create FEM mesh from shape - Skep FEM-maas van vorm + + Create FEM mesh from shape + Skep FEM-maas van vorm - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts index d3cd2eb66..22b87d550 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_de.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - FEM-Netz erzeugen + + Create FEM mesh + FEM-Netz erzeugen - Create FEM mesh from shape - FEM-Netz aus Form erstellen + + Create FEM mesh from shape + FEM-Netz aus Form erstellen - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts index 7c4219889..25e12428e 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_es.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Crear malla FEM + + Create FEM mesh + Crear malla FEM - Create FEM mesh from shape - Crear malla FEM de forma + + Create FEM mesh from shape + Crear malla FEM de forma - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts index 7a2221464..d7730b27a 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_fi.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Create FEM mesh + + Create FEM mesh + Create FEM mesh - Create FEM mesh from shape - Create FEM mesh from shape + + Create FEM mesh from shape + Create FEM mesh from shape - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts index b9e5ae81d..8db45e567 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_fr.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Créer un maillage FEM + + Create FEM mesh + Créer un maillage FEM - Create FEM mesh from shape - Créer un maillage FEM à partir d'une forme + + Create FEM mesh from shape + Créer un maillage FEM à partir d'une forme - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts index 18b8d1672..4e3d1827f 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_hr.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Metoda konaÄnih elemenata + + Fem + Metoda konaÄnih elemenata - Create FEM mesh - Napravi MKE mrežu + + Create FEM mesh + Napravi MKE mrežu - Create FEM mesh from shape - Napravite MKE mrežu od oblika + + Create FEM mesh from shape + Napravite MKE mrežu od oblika - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - MKE + + FEM + MKE - &FEM - &MKE + + &FEM + &MKE - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts index c71712b5d..c5138dd48 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_hu.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Végeselemes analízis FEM + + Fem + Végeselemes analízis FEM - Create FEM mesh - Végeselemes analízis (FEM) háló létrehozása + + Create FEM mesh + Végeselemes analízis (FEM) háló létrehozása - Create FEM mesh from shape - Végeselemes analízis háló létrehozása az alakzaton + + Create FEM mesh from shape + Végeselemes analízis háló létrehozása az alakzaton - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM Végeselemes analízis + + &FEM + &FEM Végeselemes analízis - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts index ff8c9f788..b33a186e3 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_it.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Crea una mesh FEM + + Create FEM mesh + Crea una mesh FEM - Create FEM mesh from shape - Crea una mesh FEM da una forma + + Create FEM mesh from shape + Crea una mesh FEM da una forma - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts index eda0cc3c2..0948ed668 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ja.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - 有é™è¦ç´ æ³• + + Fem + 有é™è¦ç´ æ³• - Create FEM mesh - 有é™è¦ç´ ãƒ¡ãƒƒã‚·ãƒ¥ã‚’作æˆã—ã¾ã™ã€‚ + + Create FEM mesh + 有é™è¦ç´ ãƒ¡ãƒƒã‚·ãƒ¥ã‚’作æˆã—ã¾ã™ã€‚ - Create FEM mesh from shape - 形状ã‹ã‚‰æœ‰é™è¦ç´ ãƒ¡ãƒƒã‚·ãƒ¥ã‚’作æˆã™ã‚‹ + + Create FEM mesh from shape + 形状ã‹ã‚‰æœ‰é™è¦ç´ ãƒ¡ãƒƒã‚·ãƒ¥ã‚’作æˆã™ã‚‹ - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - 有é™è¦ç´ æ³• + + FEM + 有é™è¦ç´ æ³• - &FEM - FEM(&F) + + &FEM + FEM(&F) - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts index 1b26769b0..201b04fed 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_nl.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - EEM + + Fem + EEM - Create FEM mesh - Creëer een EEM-net + + Create FEM mesh + Creëer een EEM-net - Create FEM mesh from shape - Creëer een EEM-net van een vorm + + Create FEM mesh from shape + Creëer een EEM-net van een vorm - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - EEM + + FEM + EEM - &FEM - &EEM + + &FEM + &EEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts index 99cd22568..670e59f91 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_no.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Lag FEM-nett + + Create FEM mesh + Lag FEM-nett - Create FEM mesh from shape - Lag FEM-nett av figuren + + Create FEM mesh from shape + Lag FEM-nett av figuren - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts index da9e98ebc..ffa8f6d19 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_pl.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Mes + + Fem + Mes - Create FEM mesh - Tworzenie siatki MES + + Create FEM mesh + Tworzenie siatki MES - Create FEM mesh from shape - Tworzenie siatki MES z ksztaÅ‚tu + + Create FEM mesh from shape + Tworzenie siatki MES z ksztaÅ‚tu - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - MES + + FEM + MES - &FEM - &MES + + &FEM + &MES - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts index a96bfd185..8ce02bed5 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_pt.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Criar malha FEM + + Create FEM mesh + Criar malha FEM - Create FEM mesh from shape - Criar malha FEM mesh a partir de uma forma + + Create FEM mesh from shape + Criar malha FEM mesh a partir de uma forma - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts index 62309f4e4..f587c3931 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_ru.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - МКЭ (метод конечных Ñлементов) + + Fem + МКЭ (метод конечных Ñлементов) - Create FEM mesh - Создать МКЭ Ñетку + + Create FEM mesh + Создать МКЭ Ñетку - Create FEM mesh from shape - Создать МКЭ Ñетку из формы + + Create FEM mesh from shape + Создать МКЭ Ñетку из формы - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - МКЭ + + FEM + МКЭ - &FEM - &МКЭ + + &FEM + &МКЭ - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts index c0d64eee8..19c6a0716 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_se.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - Fem + + Fem + Fem - Create FEM mesh - Skapa FEM nät + + Create FEM mesh + Skapa FEM nät - Create FEM mesh from shape - Skapa FEM nät frÃ¥n form + + Create FEM mesh from shape + Skapa FEM nät frÃ¥n form - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - FEM + + FEM + FEM - &FEM - &FEM + + &FEM + &FEM - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts index 006322e9e..780aed9e1 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_uk.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - МСЕ (Метод Ñкінченних елементів) + + Fem + МСЕ (Метод Ñкінченних елементів) - Create FEM mesh - Створити МСЕ Ñітку + + Create FEM mesh + Створити МСЕ Ñітку - Create FEM mesh from shape - Створити МСЕ Ñітку з форми + + Create FEM mesh from shape + Створити МСЕ Ñітку з форми - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - МСЕ + + FEM + МСЕ - &FEM - &МСЕ + + &FEM + &МСЕ - + diff --git a/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts b/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts index 6b77b2409..998a05837 100644 --- a/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts +++ b/src/Mod/Fem/Gui/Resources/translations/Fem_zh.ts @@ -1,32 +1,63 @@ - - + + CmdFemCreateFromShape - - Fem - 有é™å…ƒ + + Fem + 有é™å…ƒ - Create FEM mesh - 创建有é™å…ƒç½‘æ ¼ + + Create FEM mesh + 创建有é™å…ƒç½‘æ ¼ - Create FEM mesh from shape - 从形体创建有é™å…ƒç½‘æ ¼ + + Create FEM mesh from shape + 从形体创建有é™å…ƒç½‘æ ¼ - - + + + FemGui::HypothesisWidget + + + Hypothesis + + + + + Quadrangle + + + + + Maximum length + + + + + Local length + + + + + Maximum element area + + + + Workbench - - FEM - 有é™å…ƒ + + FEM + 有é™å…ƒ - &FEM - 有é™å…ƒ(&F) + + &FEM + 有é™å…ƒ(&F) - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_af.ts b/src/Mod/Image/Gui/Resources/translations/Image_af.ts index 18f5dd7c5..d37cd1376 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_af.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_af.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Beeld + + Image + Beeld - Create image plane... - Skep beeldvlak... + + Create image plane... + Skep beeldvlak... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - skep 'n 2D-beeld in die 3D-ruimte + create a planar image in the 3D space + skep 'n 2D-beeld in die 3D-ruimte - - + + CmdImageOpen - Image - Beeld + + Image + Beeld - Open... - Maak oop... + + Open... + Maak oop... - Open image view - Maak beeldaansig oop + + Open image view + Maak beeldaansig oop - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Ongedefinieerde kleurruimte vir beeldvertoning + + Undefined type of colour space for image viewing + Ongedefinieerde kleurruimte vir beeldvertoning - Image pixel format - Beeldelementformaat + + Image pixel format + Beeldelementformaat - - + + ImageGui::ImageView - - &Fit image - &Pas beeld + + &Fit image + &Pas beeld - Stretch the image to fit the view - Rek die beeld om die aansig te pas + + Stretch the image to fit the view + Rek die beeld om die aansig te pas - &1:1 scale - &1:1 skaal + + &1:1 scale + &1:1 skaal - Display the image at a 1:1 scale - Wys die beeld op 'n 1:1 skaal + + Display the image at a 1:1 scale + Wys die beeld op 'n 1:1 skaal - &Original color - &Oorspronklike kleur + &Original color + &Oorspronklike kleur - Display the image with its original color(s) - Vertoon die beeld met sy oorspronklike kleur(e) + Display the image with its original color(s) + Vertoon die beeld met sy oorspronklike kleur(e) - &Brightened color - &Verhelderde kleur + &Brightened color + &Verhelderde kleur - Display the image with brightened color(s) - Wys die beeld met verhelderde kleur(e) + Display the image with brightened color(s) + Wys die beeld met verhelderde kleur(e) - Standard - Standaard + + Standard + Standaard - Ready... - Gereed... + + Ready... + Gereed... - grey - grys + + grey + grys - zoom - Zoem + + + + + + + + + + + zoom + Zoem - outside image - buite beeld + + + + + + outside image + buite beeld - - + + QObject - Image viewer - Beeldleser + Image viewer + Beeldleser - - Images (*.png *.xpm *.jpg *.bmp) - Beelde (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Beelde (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Kies 'n beeldlêer om oop te maak + + + + Choose an image file to open + Kies 'n beeldlêer om oop te maak - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Probleem om beeld oop te maak + + Error open image + Probleem om beeld oop te maak - Could not load the choosen image - Kon nie die gekose beeld laai nie + + Could not load the choosen image + Kon nie die gekose beeld laai nie - - + + Workbench - - Image - Beeld + + Image + Beeld - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_de.ts b/src/Mod/Image/Gui/Resources/translations/Image_de.ts index 6096e2d92..9ffabd460 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_de.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_de.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Grafik + + Image + Grafik - Create image plane... - Erstellen Sie eine Bildebene... + + Create image plane... + Erstellen Sie eine Bildebene... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - Erstellen Sie eine ebenes Bild im 3D-Raum + create a planar image in the 3D space + Erstellen Sie eine ebenes Bild im 3D-Raum - - + + CmdImageOpen - Image - Grafik + + Image + Grafik - Open... - Öffnen... + + Open... + Öffnen... - Open image view - Öffne Bildansicht + + Open image view + Öffne Bildansicht - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Undefinierter Farbraum-Typ für die Bildbetrachtung + + Undefined type of colour space for image viewing + Undefinierter Farbraum-Typ für die Bildbetrachtung - Image pixel format - Pixelformat des Bildes + + Image pixel format + Pixelformat des Bildes - - + + ImageGui::ImageView - - &Fit image - Bild an&passen + + &Fit image + Bild an&passen - Stretch the image to fit the view - Bild auf die Ansicht ausdehnen + + Stretch the image to fit the view + Bild auf die Ansicht ausdehnen - &1:1 scale - &1:1 Maßstab + + &1:1 scale + &1:1 Maßstab - Display the image at a 1:1 scale - Das Bild im Maßstab 1:1 anzeigen + + Display the image at a 1:1 scale + Das Bild im Maßstab 1:1 anzeigen - &Original color - &Ursprüngliche Farbe + &Original color + &Ursprüngliche Farbe - Display the image with its original color(s) - Das Bild mit seinen ursprünglichen Farbe(n) anzeigen + Display the image with its original color(s) + Das Bild mit seinen ursprünglichen Farbe(n) anzeigen - &Brightened color - &Farbe aufhellen + &Brightened color + &Farbe aufhellen - Display the image with brightened color(s) - Das Bild mit aufgehellten Farben anzeigen + Display the image with brightened color(s) + Das Bild mit aufgehellten Farben anzeigen - Standard - Standard + + Standard + Standard - Ready... - Fertig... + + Ready... + Fertig... - grey - grau + + grey + grau - zoom - Zoom + + + + + + + + + + + zoom + Zoom - outside image - außerhalb Bild + + + + + + outside image + außerhalb Bild - - + + QObject - Image viewer - Bildbetrachter + Image viewer + Bildbetrachter - - Images (*.png *.xpm *.jpg *.bmp) - Bilder (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Bilder (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Wählen Sie ein Bild zum Öffnen aus + + + + Choose an image file to open + Wählen Sie ein Bild zum Öffnen aus - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Fehler beim Öffnen des Bildes + + Error open image + Fehler beim Öffnen des Bildes - Could not load the choosen image - Das gewählte Bild konnte nicht geladen werden + + Could not load the choosen image + Das gewählte Bild konnte nicht geladen werden - - + + Workbench - - Image - Grafik + + Image + Grafik - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_es.ts b/src/Mod/Image/Gui/Resources/translations/Image_es.ts index 5ed46c274..ab350c8a2 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_es.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_es.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Imagen + + Image + Imagen - Create image plane... - Crear plano de imagen... + + Create image plane... + Crear plano de imagen... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - crear una imagen plana en el espacio 3D + create a planar image in the 3D space + crear una imagen plana en el espacio 3D - - + + CmdImageOpen - Image - Imagen + + Image + Imagen - Open... - Abrir... + + Open... + Abrir... - Open image view - Abrir vista de imagen + + Open image view + Abrir vista de imagen - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Tipo de espacio color no definido para la visualización de la imagen + + Undefined type of colour space for image viewing + Tipo de espacio color no definido para la visualización de la imagen - Image pixel format - Formato de pixel de imagen + + Image pixel format + Formato de pixel de imagen - - + + ImageGui::ImageView - - &Fit image - &Ajustar imagen + + &Fit image + &Ajustar imagen - Stretch the image to fit the view - Estirar la imagen para ajustarse a la vista + + Stretch the image to fit the view + Estirar la imagen para ajustarse a la vista - &1:1 scale - &Escala 1:1 + + &1:1 scale + &Escala 1:1 - Display the image at a 1:1 scale - Muestra la imagen a escala 1:1 + + Display the image at a 1:1 scale + Muestra la imagen a escala 1:1 - &Original color - &Color original + &Original color + &Color original - Display the image with its original color(s) - Muestra la imagen con su(s) color(es) original(es) + Display the image with its original color(s) + Muestra la imagen con su(s) color(es) original(es) - &Brightened color - &Color más luminoso + &Brightened color + &Color más luminoso - Display the image with brightened color(s) - Muestra la imagen con color(es) más luminoso(s) + Display the image with brightened color(s) + Muestra la imagen con color(es) más luminoso(s) - Standard - Estándar + + Standard + Estándar - Ready... - Preparado... + + Ready... + Preparado... - grey - Gris + + grey + Gris - zoom - Zoom + + + + + + + + + + + zoom + Zoom - outside image - Imagen exterior + + + + + + outside image + Imagen exterior - - + + QObject - Image viewer - Visor de imagenes + Image viewer + Visor de imagenes - - Images (*.png *.xpm *.jpg *.bmp) - Imagenes (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Imagenes (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Selecciona un archivo de imagen para abrir + + + + Choose an image file to open + Selecciona un archivo de imagen para abrir - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Error al abrir imagen + + Error open image + Error al abrir imagen - Could not load the choosen image - No se pudo cargar la imagen elegida + + Could not load the choosen image + No se pudo cargar la imagen elegida - - + + Workbench - - Image - Imagen + + Image + Imagen - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_fi.ts b/src/Mod/Image/Gui/Resources/translations/Image_fi.ts index 37dd76acc..dbe9a1150 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_fi.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_fi.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Kuva + + Image + Kuva - Create image plane... - Create image plane... + + Create image plane... + Create image plane... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - create a planar image in the 3D space + create a planar image in the 3D space + create a planar image in the 3D space - - + + CmdImageOpen - Image - Kuva + + Image + Kuva - Open... - Avaa... + + Open... + Avaa... - Open image view - Avaa kuvan näkymä + + Open image view + Avaa kuvan näkymä - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Määrittämätön tyyppi väriavaruudesta kuvien katseluun + + Undefined type of colour space for image viewing + Määrittämätön tyyppi väriavaruudesta kuvien katseluun - Image pixel format - Image pixel format + + Image pixel format + Image pixel format - - + + ImageGui::ImageView - - &Fit image - &Sovita kuva + + &Fit image + &Sovita kuva - Stretch the image to fit the view - Venytä kuva sopimaan näkymään + + Stretch the image to fit the view + Venytä kuva sopimaan näkymään - &1:1 scale - mittakaavassa &1:1 + + &1:1 scale + mittakaavassa &1:1 - Display the image at a 1:1 scale - Näytä kuva mittakaavassa 1:1 + + Display the image at a 1:1 scale + Näytä kuva mittakaavassa 1:1 - &Original color - &Alkuperäinen väri + &Original color + &Alkuperäinen väri - Display the image with its original color(s) - Näyttää kuvan alkuperäisten värie(n) kanssa + Display the image with its original color(s) + Näyttää kuvan alkuperäisten värie(n) kanssa - &Brightened color - &Brightened color + &Brightened color + &Brightened color - Display the image with brightened color(s) - Display the image with brightened color(s) + Display the image with brightened color(s) + Display the image with brightened color(s) - Standard - Standardi + + Standard + Standardi - Ready... - Valmis... + + Ready... + Valmis... - grey - harmaa + + grey + harmaa - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - kuvan ulkopuolella + + + + + + outside image + kuvan ulkopuolella - - + + QObject - Image viewer - Kuvakatselin + Image viewer + Kuvakatselin - - Images (*.png *.xpm *.jpg *.bmp) - Kuvat (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Kuvat (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Choose an image file to open + + + + Choose an image file to open + Choose an image file to open - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Error open image + + Error open image + Error open image - Could not load the choosen image - Could not load the choosen image + + Could not load the choosen image + Could not load the choosen image - - + + Workbench - - Image - Kuva + + Image + Kuva - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_fr.ts b/src/Mod/Image/Gui/Resources/translations/Image_fr.ts index 54bbd72a2..798a8ca45 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_fr.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_fr.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Image + + Image + Image - Create image plane... - Créer un plan d'image... + + Create image plane... + Créer un plan d'image... - Create a planar image in the 3D space - Créer une image plane dans l'espace 3D + + Create a planar image in the 3D space + Créer une image plane dans l'espace 3D - create a planar image in the 3D space - Créer une image plane dans l'espace 3D + create a planar image in the 3D space + Créer une image plane dans l'espace 3D - - + + CmdImageOpen - Image - Image + + Image + Image - Open... - Ouvrir... + + Open... + Ouvrir... - Open image view - Ouvrir une image + + Open image view + Ouvrir une image - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Type d'espace colorimétrique indéfini + + Undefined type of colour space for image viewing + Type d'espace colorimétrique indéfini - Image pixel format - Format de l'image en pixels + + Image pixel format + Format de l'image en pixels - - + + ImageGui::ImageView - - &Fit image - &Adapter l'image + + &Fit image + &Adapter l'image - Stretch the image to fit the view - Étirer l'image pour l'adapter à la vue + + Stretch the image to fit the view + Étirer l'image pour l'adapter à la vue - &1:1 scale - Échelle &1:1 + + &1:1 scale + Échelle &1:1 - Display the image at a 1:1 scale - Afficher l'image à l'échelle 1:1 + + Display the image at a 1:1 scale + Afficher l'image à l'échelle 1:1 - &Original color - Couleurs d'&origine + &Original color + Couleurs d'&origine - Display the image with its original color(s) - Afficher l'image avec ses couleurs d'origine + Display the image with its original color(s) + Afficher l'image avec ses couleurs d'origine - &Brightened color - Couleurs é&claircies + &Brightened color + Couleurs é&claircies - Display the image with brightened color(s) - Afficher l'image avec des couleurs éclaircies + Display the image with brightened color(s) + Afficher l'image avec des couleurs éclaircies - Standard - Standard + + Standard + Standard - Ready... - Prêt... + + Ready... + Prêt... - grey - gris + + grey + gris - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - image extérieure + + + + + + outside image + image extérieure - - + + QObject - Image viewer - Visionneuse d'image + Image viewer + Visionneuse d'image - - Images (*.png *.xpm *.jpg *.bmp) - Images (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Images (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Choisir un fichier d'image à ouvrir + + + + Choose an image file to open + Choisir un fichier d'image à ouvrir - Images - Images + + + Images + Images - All files - Tous les fichiers + + + All files + Tous les fichiers - Error open image - Erreur à l'ouverture de l'image + + Error open image + Erreur à l'ouverture de l'image - Could not load the choosen image - Impossible de charger l'image choisie + + Could not load the choosen image + Impossible de charger l'image choisie - - + + Workbench - - Image - Image + + Image + Image - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_hr.ts b/src/Mod/Image/Gui/Resources/translations/Image_hr.ts index d55dce0c3..7d419a9ba 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_hr.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_hr.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Slika + + Image + Slika - Create image plane... - Napravi ravninu slike ... + + Create image plane... + Napravi ravninu slike ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - stvoriti planarnu sliku u 3D prikazu + create a planar image in the 3D space + stvoriti planarnu sliku u 3D prikazu - - + + CmdImageOpen - Image - Slika + + Image + Slika - Open... - Otvori ... + + Open... + Otvori ... - Open image view - Otvori pogled slike + + Open image view + Otvori pogled slike - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - nedefinirani tip boja za gledanje slika + + Undefined type of colour space for image viewing + nedefinirani tip boja za gledanje slika - Image pixel format - format slike u pixelima + + Image pixel format + format slike u pixelima - - + + ImageGui::ImageView - - &Fit image - Prilagodi sliku + + &Fit image + Prilagodi sliku - Stretch the image to fit the view - rastegni sliku da odgovara prikazu + + Stretch the image to fit the view + rastegni sliku da odgovara prikazu - &1:1 scale - u mjerilu 1:1 + + &1:1 scale + u mjerilu 1:1 - Display the image at a 1:1 scale - Prikaz slike u mjerilu 1:1 + + Display the image at a 1:1 scale + Prikaz slike u mjerilu 1:1 - &Original color - I originalna boja + &Original color + I originalna boja - Display the image with its original color(s) - Prikaži sliku s originalnim bojama + Display the image with its original color(s) + Prikaži sliku s originalnim bojama - &Brightened color - I Razvedri boju + &Brightened color + I Razvedri boju - Display the image with brightened color(s) - Prikaži sliku s s izbjeljenim bojama + Display the image with brightened color(s) + Prikaži sliku s s izbjeljenim bojama - Standard - Standard + + Standard + Standard - Ready... - Spreman... + + Ready... + Spreman... - grey - siva + + grey + siva - zoom - zum + + + + + + + + + + + zoom + zum - outside image - izvan slike + + + + + + outside image + izvan slike - - + + QObject - Image viewer - Pregled slike + Image viewer + Pregled slike - - Images (*.png *.xpm *.jpg *.bmp) - Slike (*. png *. XPM *. jpg *. bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Slike (*. png *. XPM *. jpg *. bmp) - Choose an image file to open - Odaberite koju ce te sliku otvoriti + + + + Choose an image file to open + Odaberite koju ce te sliku otvoriti - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - PogreÅ¡ka pri otvaranju slike + + Error open image + PogreÅ¡ka pri otvaranju slike - Could not load the choosen image - Nije moguće uÄitati izabranu sliku + + Could not load the choosen image + Nije moguće uÄitati izabranu sliku - - + + Workbench - - Image - Slika + + Image + Slika - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_hu.ts b/src/Mod/Image/Gui/Resources/translations/Image_hu.ts index 6fc098870..85c21561b 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_hu.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_hu.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Kép + + Image + Kép - Create image plane... - Kép sík létrehozása... + + Create image plane... + Kép sík létrehozása... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - hozzon létre egy síkbeli képet a 3D-s térben + create a planar image in the 3D space + hozzon létre egy síkbeli képet a 3D-s térben - - + + CmdImageOpen - Image - Kép + + Image + Kép - Open... - Megnyitás... + + Open... + Megnyitás... - Open image view - Kép megnyitása megtekintése + + Open image view + Kép megnyitása megtekintése - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - A képnézÅ‘ által meghatározhatatlan típusú színtér + + Undefined type of colour space for image viewing + A képnézÅ‘ által meghatározhatatlan típusú színtér - Image pixel format - Képpont formátum + + Image pixel format + Képpont formátum - - + + ImageGui::ImageView - - &Fit image - Kép kitöltse a képernyÅ‘t + + &Fit image + Kép kitöltse a képernyÅ‘t - Stretch the image to fit the view - Nyújtsa ki a képet, hogy illeszkedjen a nézethez + + Stretch the image to fit the view + Nyújtsa ki a képet, hogy illeszkedjen a nézethez - &1:1 scale - &1:1 léptékű + + &1:1 scale + &1:1 léptékű - Display the image at a 1:1 scale - A kép megjelenítése 1:1 méretarányban + + Display the image at a 1:1 scale + A kép megjelenítése 1:1 méretarányban - &Original color - &Eredeti szín + &Original color + &Eredeti szín - Display the image with its original color(s) - Eredeti színekkel jelenítse meg a képet + Display the image with its original color(s) + Eredeti színekkel jelenítse meg a képet - &Brightened color - &Világosított szín + &Brightened color + &Világosított szín - Display the image with brightened color(s) - Világosított színekkel jelenítse meg a képet + Display the image with brightened color(s) + Világosított színekkel jelenítse meg a képet - Standard - Szabvány + + Standard + Szabvány - Ready... - Kész ... + + Ready... + Kész ... - grey - szürke + + grey + szürke - zoom - Nagyítás + + + + + + + + + + + zoom + Nagyítás - outside image - külsÅ‘ kép + + + + + + outside image + külsÅ‘ kép - - + + QObject - Image viewer - KépnézÅ‘ + Image viewer + KépnézÅ‘ - - Images (*.png *.xpm *.jpg *.bmp) - Képek (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Képek (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Egy képfájl kiválasztása megnyitásra + + + + Choose an image file to open + Egy képfájl kiválasztása megnyitásra - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Hiba a kép megnyitásakor + + Error open image + Hiba a kép megnyitásakor - Could not load the choosen image - Nem sikerült betölteni a kiválasztott képet + + Could not load the choosen image + Nem sikerült betölteni a kiválasztott képet - - + + Workbench - - Image - Kép + + Image + Kép - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_it.ts b/src/Mod/Image/Gui/Resources/translations/Image_it.ts index 1991740eb..adedd06db 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_it.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_it.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Immagine + + Image + Immagine - Create image plane... - Crea un piano immagine... + + Create image plane... + Crea un piano immagine... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - crea un'immagine piana nello spazio 3D + create a planar image in the 3D space + crea un'immagine piana nello spazio 3D - - + + CmdImageOpen - Image - Immagine + + Image + Immagine - Open... - Apri... + + Open... + Apri... - Open image view - Apri il visualizzatore di immagini + + Open image view + Apri il visualizzatore di immagini - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Tipo di spazio colore indefinito per la visualizzazione delle immagini + + Undefined type of colour space for image viewing + Tipo di spazio colore indefinito per la visualizzazione delle immagini - Image pixel format - Formato pixel + + Image pixel format + Formato pixel - - + + ImageGui::ImageView - - &Fit image - &Adatta immagine + + &Fit image + &Adatta immagine - Stretch the image to fit the view - Stira l'immagine per adattarsi alla vista + + Stretch the image to fit the view + Stira l'immagine per adattarsi alla vista - &1:1 scale - Scala &1:1 + + &1:1 scale + Scala &1:1 - Display the image at a 1:1 scale - Visualizza l'immagine in scala 1:1 + + Display the image at a 1:1 scale + Visualizza l'immagine in scala 1:1 - &Original color - Colori &originali + &Original color + Colori &originali - Display the image with its original color(s) - Visualizza l'immagine con i suoi colori originali + Display the image with its original color(s) + Visualizza l'immagine con i suoi colori originali - &Brightened color - &Colori più luminosi + &Brightened color + &Colori più luminosi - Display the image with brightened color(s) - Visualizza l'immagine con colori più luminosi + Display the image with brightened color(s) + Visualizza l'immagine con colori più luminosi - Standard - Standard + + Standard + Standard - Ready... - Pronto... + + Ready... + Pronto... - grey - grigio + + grey + grigio - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - fuori dall'immagine + + + + + + outside image + fuori dall'immagine - - + + QObject - Image viewer - Visualizzatore di immagini + Image viewer + Visualizzatore di immagini - - Images (*.png *.xpm *.jpg *.bmp) - Immagini (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Immagini (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Seleziona un file immagine da aprire + + + + Choose an image file to open + Seleziona un file immagine da aprire - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Errore durante l'apertura dell'immagine + + Error open image + Errore durante l'apertura dell'immagine - Could not load the choosen image - Impossibile caricare l'immagine scelta + + Could not load the choosen image + Impossibile caricare l'immagine scelta - - + + Workbench - - Image - Immagine + + Image + Immagine - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_ja.ts b/src/Mod/Image/Gui/Resources/translations/Image_ja.ts index edf30d04b..12b008308 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_ja.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_ja.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - ç”»åƒ + + Image + ç”»åƒ - Create image plane... - Create image plane... + + Create image plane... + Create image plane... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - create a planar image in the 3D space + create a planar image in the 3D space + create a planar image in the 3D space - - + + CmdImageOpen - Image - ç”»åƒ + + Image + ç”»åƒ - Open... - é–‹ã... + + Open... + é–‹ã... - Open image view - ç”»åƒãƒ“ューを開ã + + Open image view + ç”»åƒãƒ“ューを開ã - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - 表示中ã®ç”»åƒã®è‰²ç©ºé–“ã¯æœªå®šç¾©ã§ã™ + + Undefined type of colour space for image viewing + 表示中ã®ç”»åƒã®è‰²ç©ºé–“ã¯æœªå®šç¾©ã§ã™ - Image pixel format - ç”»åƒã®ãƒ”クセルフォーマット + + Image pixel format + ç”»åƒã®ãƒ”クセルフォーマット - - + + ImageGui::ImageView - - &Fit image - ç”»åƒã«åˆã‚ã›ã‚‹(&F) + + &Fit image + ç”»åƒã«åˆã‚ã›ã‚‹(&F) - Stretch the image to fit the view - ç”»åƒãƒ“ューサイズã«åˆã‚ã›ã¦ç”»åƒã‚’拡大 + + Stretch the image to fit the view + ç”»åƒãƒ“ューサイズã«åˆã‚ã›ã¦ç”»åƒã‚’拡大 - &1:1 scale - 1:1スケール(&1) + + &1:1 scale + 1:1スケール(&1) - Display the image at a 1:1 scale - 1:1ã®ã‚¹ã‚±ãƒ¼ãƒ«ã§ç”»åƒã‚’表示ã™ã‚‹ + + Display the image at a 1:1 scale + 1:1ã®ã‚¹ã‚±ãƒ¼ãƒ«ã§ç”»åƒã‚’表示ã™ã‚‹ - &Original color - å…ƒã®è‰² (&O) + &Original color + å…ƒã®è‰² (&O) - Display the image with its original color(s) - å…ƒã®è‰²ã§ç”»åƒã‚’表示ã™ã‚‹ + Display the image with its original color(s) + å…ƒã®è‰²ã§ç”»åƒã‚’表示ã™ã‚‹ - &Brightened color - &Brightened color + &Brightened color + &Brightened color - Display the image with brightened color(s) - Display the image with brightened color(s) + Display the image with brightened color(s) + Display the image with brightened color(s) - Standard - 標準 + + Standard + 標準 - Ready... - Ready... + + Ready... + Ready... - grey - グレー + + grey + グレー - zoom - ズーム + + + + + + + + + + + zoom + ズーム - outside image - outside image + + + + + + outside image + outside image - - + + QObject - Image viewer - ç”»åƒãƒ“ューア + Image viewer + ç”»åƒãƒ“ューア - - Images (*.png *.xpm *.jpg *.bmp) - Images (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Images (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Choose an image file to open + + + + Choose an image file to open + Choose an image file to open - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Error open image + + Error open image + Error open image - Could not load the choosen image - Could not load the choosen image + + Could not load the choosen image + Could not load the choosen image - - + + Workbench - - Image - ç”»åƒ + + Image + ç”»åƒ - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_nl.ts b/src/Mod/Image/Gui/Resources/translations/Image_nl.ts index d97669dd8..bc10f1d83 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_nl.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_nl.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Afbeelding + + Image + Afbeelding - Create image plane... - Maak beeldvlak ... + + Create image plane... + Maak beeldvlak ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - een vlakke afbeelding maken in de 3D-ruimte + create a planar image in the 3D space + een vlakke afbeelding maken in de 3D-ruimte - - + + CmdImageOpen - Image - Afbeelding + + Image + Afbeelding - Open... - Openen... + + Open... + Openen... - Open image view - Open afbeelding weergave + + Open image view + Open afbeelding weergave - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Ongedefinieerd type kleurruimte om beelden te bekijken + + Undefined type of colour space for image viewing + Ongedefinieerd type kleurruimte om beelden te bekijken - Image pixel format - Pixel-formaat + + Image pixel format + Pixel-formaat - - + + ImageGui::ImageView - - &Fit image - &Passend + + &Fit image + &Passend - Stretch the image to fit the view - Uitrekken tot grootte weergave venster + + Stretch the image to fit the view + Uitrekken tot grootte weergave venster - &1:1 scale - Schaal &1:1 + + &1:1 scale + Schaal &1:1 - Display the image at a 1:1 scale - Toon de afbeelding op schaal van 1:1 + + Display the image at a 1:1 scale + Toon de afbeelding op schaal van 1:1 - &Original color - &Oorspronkelijke kleur + &Original color + &Oorspronkelijke kleur - Display the image with its original color(s) - Toon de afbeelding met de oorspronkelijke kleur(en) + Display the image with its original color(s) + Toon de afbeelding met de oorspronkelijke kleur(en) - &Brightened color - &Verhelder kleur + &Brightened color + &Verhelder kleur - Display the image with brightened color(s) - Toon de afbeelding met verhelderde kleur(en) + Display the image with brightened color(s) + Toon de afbeelding met verhelderde kleur(en) - Standard - Standaard + + Standard + Standaard - Ready... - Gereed... + + Ready... + Gereed... - grey - grijs + + grey + grijs - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - buiten afbeelding + + + + + + outside image + buiten afbeelding - - + + QObject - Image viewer - Afbeeldingenviewer + Image viewer + Afbeeldingenviewer - - Images (*.png *.xpm *.jpg *.bmp) - Afbeeldingen(*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Afbeeldingen(*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Kies een te openen afbeeldingsbestand + + + + Choose an image file to open + Kies een te openen afbeeldingsbestand - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Fout geopende afbeelding + + Error open image + Fout geopende afbeelding - Could not load the choosen image - Kon geselecteerde afbeelding niet laden + + Could not load the choosen image + Kon geselecteerde afbeelding niet laden - - + + Workbench - - Image - Afbeelding + + Image + Afbeelding - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_no.ts b/src/Mod/Image/Gui/Resources/translations/Image_no.ts index f03e900a4..e5c234f54 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_no.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_no.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Bilde + + Image + Bilde - Create image plane... - Opprett billedplan... + + Create image plane... + Opprett billedplan... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - lag et plant bilde i 3D-omrÃ¥de + create a planar image in the 3D space + lag et plant bilde i 3D-omrÃ¥de - - + + CmdImageOpen - Image - Bilde + + Image + Bilde - Open... - Ã…pne... + + Open... + Ã…pne... - Open image view - Ã…pne bildevisning + + Open image view + Ã…pne bildevisning - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Udefinert type fargerom for bildevisning + + Undefined type of colour space for image viewing + Udefinert type fargerom for bildevisning - Image pixel format - Bildepikselformat + + Image pixel format + Bildepikselformat - - + + ImageGui::ImageView - - &Fit image - &Tilpass bildet + + &Fit image + &Tilpass bildet - Stretch the image to fit the view - Strekk bildet slik at det passer visningen + + Stretch the image to fit the view + Strekk bildet slik at det passer visningen - &1:1 scale - &1:1 skala + + &1:1 scale + &1:1 skala - Display the image at a 1:1 scale - Vis bildet i 1:1 skala + + Display the image at a 1:1 scale + Vis bildet i 1:1 skala - &Original color - &Opprinnelig farge + &Original color + &Opprinnelig farge - Display the image with its original color(s) - Vis bildet med sine opprinnelige farger + Display the image with its original color(s) + Vis bildet med sine opprinnelige farger - &Brightened color - &Lysnet farge + &Brightened color + &Lysnet farge - Display the image with brightened color(s) - Vis bildet med lysnet farge + Display the image with brightened color(s) + Vis bildet med lysnet farge - Standard - Standard + + Standard + Standard - Ready... - Klar... + + Ready... + Klar... - grey - grÃ¥ + + grey + grÃ¥ - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - utenfor bildet + + + + + + outside image + utenfor bildet - - + + QObject - Image viewer - Bildeviser + Image viewer + Bildeviser - - Images (*.png *.xpm *.jpg *.bmp) - Bilder (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Bilder (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Velg en bildefil Ã¥ Ã¥pne + + + + Choose an image file to open + Velg en bildefil Ã¥ Ã¥pne - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Feil ved bilde Ã¥pning + + Error open image + Feil ved bilde Ã¥pning - Could not load the choosen image - Kunne ikke laste det valgte bildet + + Could not load the choosen image + Kunne ikke laste det valgte bildet - - + + Workbench - - Image - Bilde + + Image + Bilde - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_pl.ts b/src/Mod/Image/Gui/Resources/translations/Image_pl.ts index b82de11f9..55e93297e 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_pl.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_pl.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Obraz + + Image + Obraz - Create image plane... - Utwórz pÅ‚aszczyznÄ™ obrazu... + + Create image plane... + Utwórz pÅ‚aszczyznÄ™ obrazu... - Create a planar image in the 3D space - Utwórz pÅ‚aski obraz w przestrzeni 3D + + Create a planar image in the 3D space + Utwórz pÅ‚aski obraz w przestrzeni 3D - create a planar image in the 3D space - Utwórz pÅ‚aski obraz w przestrzeni 3D + create a planar image in the 3D space + Utwórz pÅ‚aski obraz w przestrzeni 3D - - + + CmdImageOpen - Image - Obraz + + Image + Obraz - Open... - Otwórz... + + Open... + Otwórz... - Open image view - Otwórz widok obrazu + + Open image view + Otwórz widok obrazu - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Niezdefiniowana przestrzeÅ„ kolorów do podglÄ…du obrazu + + Undefined type of colour space for image viewing + Niezdefiniowana przestrzeÅ„ kolorów do podglÄ…du obrazu - Image pixel format - Format piksela obrazu + + Image pixel format + Format piksela obrazu - - + + ImageGui::ImageView - - &Fit image - &Dopasuj obraz + + &Fit image + &Dopasuj obraz - Stretch the image to fit the view - RozciÄ…ga obraz, aby dopasować do widoku + + Stretch the image to fit the view + RozciÄ…ga obraz, aby dopasować do widoku - &1:1 scale - & skala 1: 1 + + &1:1 scale + & skala 1: 1 - Display the image at a 1:1 scale - WyÅ›wietlanie obrazu w skali 1:1 + + Display the image at a 1:1 scale + WyÅ›wietlanie obrazu w skali 1:1 - &Original color - & Kolor oryginalny + &Original color + & Kolor oryginalny - Display the image with its original color(s) - WyÅ›wietlanie obrazu w oryginalnym kolorze (ach) + Display the image with its original color(s) + WyÅ›wietlanie obrazu w oryginalnym kolorze (ach) - &Brightened color - &RozjaÅ›niony kolor + &Brightened color + &RozjaÅ›niony kolor - Display the image with brightened color(s) - WyÅ›wietlaj obraz w rozjaÅ›nionym kolorze(rach) + Display the image with brightened color(s) + WyÅ›wietlaj obraz w rozjaÅ›nionym kolorze(rach) - Standard - Standard + + Standard + Standard - Ready... - Gotowe ... + + Ready... + Gotowe ... - grey - szary + + grey + szary - zoom - PowiÄ™kszenie + + + + + + + + + + + zoom + PowiÄ™kszenie - outside image - poza obrazem + + + + + + outside image + poza obrazem - - + + QObject - Image viewer - PrzeglÄ…darka obrazów + Image viewer + PrzeglÄ…darka obrazów - - Images (*.png *.xpm *.jpg *.bmp) - Format (*. png *. xpm *. jpg *. bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Format (*. png *. xpm *. jpg *. bmp) - Choose an image file to open - Wybierz plik obrazu, aby otworzyć + + + + Choose an image file to open + Wybierz plik obrazu, aby otworzyć - Images - Obrazy + + + Images + Obrazy - All files - Wszystkie pliki + + + All files + Wszystkie pliki - Error open image - Błąd otwarcia obrazu + + Error open image + Błąd otwarcia obrazu - Could not load the choosen image - Nie można zaÅ‚adować wybranego obrazu + + Could not load the choosen image + Nie można zaÅ‚adować wybranego obrazu - - + + Workbench - - Image - Obraz + + Image + Obraz - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_pt.ts b/src/Mod/Image/Gui/Resources/translations/Image_pt.ts index 30bbc383c..776fe75e3 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_pt.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_pt.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Imagem + + Image + Imagem - Create image plane... - Criar um plano de imagem... + + Create image plane... + Criar um plano de imagem... - Create a planar image in the 3D space - Criar uma imagem planar no espaço 3D + + Create a planar image in the 3D space + Criar uma imagem planar no espaço 3D - create a planar image in the 3D space - criar uma imagem planar no espaço 3D + create a planar image in the 3D space + criar uma imagem planar no espaço 3D - - + + CmdImageOpen - Image - Imagem + + Image + Imagem - Open... - Abrir... + + Open... + Abrir... - Open image view - Abrir uma imagem + + Open image view + Abrir uma imagem - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Tipo de espaço de cor indefinido para visualização de imagens + + Undefined type of colour space for image viewing + Tipo de espaço de cor indefinido para visualização de imagens - Image pixel format - Formato de pixel de imagem + + Image pixel format + Formato de pixel de imagem - - + + ImageGui::ImageView - - &Fit image - &Ajustar imagem + + &Fit image + &Ajustar imagem - Stretch the image to fit the view - Esticar a imagem para ajustar à janela + + Stretch the image to fit the view + Esticar a imagem para ajustar à janela - &1:1 scale - Escala &1:1 + + &1:1 scale + Escala &1:1 - Display the image at a 1:1 scale - Exibir a imagem em escala 1:1 + + Display the image at a 1:1 scale + Exibir a imagem em escala 1:1 - &Original color - Cor &original + &Original color + Cor &original - Display the image with its original color(s) - Exibir a imagem com as suas cores originais + Display the image with its original color(s) + Exibir a imagem com as suas cores originais - &Brightened color - Cor &amplificada + &Brightened color + Cor &amplificada - Display the image with brightened color(s) - Exibir a imagem com cores mais fortes + Display the image with brightened color(s) + Exibir a imagem com cores mais fortes - Standard - Padrão + + Standard + Padrão - Ready... - Pronto... + + Ready... + Pronto... - grey - cinza + + grey + cinza - zoom - Ampliar + + + + + + + + + + + zoom + Ampliar - outside image - imagem exterior + + + + + + outside image + imagem exterior - - + + QObject - Image viewer - Visualizador de imagens + Image viewer + Visualizador de imagens - - Images (*.png *.xpm *.jpg *.bmp) - Imagens (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Imagens (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Escolha um arquivo de imagem para abrir + + + + Choose an image file to open + Escolha um arquivo de imagem para abrir - Images - Imagens + + + Images + Imagens - All files - Todos os arquivos + + + All files + Todos os arquivos - Error open image - Erro ao abrir a imagem + + Error open image + Erro ao abrir a imagem - Could not load the choosen image - Não foi possível carregar a imagem escolhida + + Could not load the choosen image + Não foi possível carregar a imagem escolhida - - + + Workbench - - Image - Imagem + + Image + Imagem - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_ru.ts b/src/Mod/Image/Gui/Resources/translations/Image_ru.ts index 983e2aecc..86d07052e 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_ru.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_ru.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Изображение + + Image + Изображение - Create image plane... - Создать плоÑкоÑть Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ... + + Create image plane... + Создать плоÑкоÑть Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - Cоздание плоÑкого Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² 3D проÑтранÑтве + create a planar image in the 3D space + Cоздание плоÑкого Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² 3D проÑтранÑтве - - + + CmdImageOpen - Image - Изображение + + Image + Изображение - Open... - Открыть... + + Open... + Открыть... - Open image view - Открыть изображение + + Open image view + Открыть изображение - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Ðеопределенный тип цвета проÑтранÑтва Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра изображений + + Undefined type of colour space for image viewing + Ðеопределенный тип цвета проÑтранÑтва Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра изображений - Image pixel format - РаÑтровый формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + + Image pixel format + РаÑтровый формат Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - - + + ImageGui::ImageView - - &Fit image - & РаÑÑ‚Ñнуть Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + + &Fit image + & РаÑÑ‚Ñнуть Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Stretch the image to fit the view - РаÑÑ‚Ñнуть изображение по размеру вида + + Stretch the image to fit the view + РаÑÑ‚Ñнуть изображение по размеру вида - &1:1 scale - & маÑштаб 1:1 + + &1:1 scale + & маÑштаб 1:1 - Display the image at a 1:1 scale - Отображает изображение в маÑштабе 1: 1 + + Display the image at a 1:1 scale + Отображает изображение в маÑштабе 1: 1 - &Original color - &ИÑходный цвета + &Original color + &ИÑходный цвета - Display the image with its original color(s) - Изображение в иÑходных цветах + Display the image with its original color(s) + Изображение в иÑходных цветах - &Brightened color - &Оживить цвет + &Brightened color + &Оживить цвет - Display the image with brightened color(s) - Показать изображение в Ñрком цвете(ах) + Display the image with brightened color(s) + Показать изображение в Ñрком цвете(ах) - Standard - Стандарт + + Standard + Стандарт - Ready... - Готово... + + Ready... + Готово... - grey - Серый + + grey + Серый - zoom - МаÑштаб + + + + + + + + + + + zoom + МаÑштаб - outside image - за пределами Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + + + + + + outside image + за пределами Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - - + + QObject - Image viewer - ПроÑмотр Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + Image viewer + ПроÑмотр Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - - Images (*.png *.xpm *.jpg *.bmp) - Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Выберите файл изображениÑ, чтобы открыть + + + + Choose an image file to open + Выберите файл изображениÑ, чтобы открыть - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Ошибка при открытии Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + + Error open image + Ошибка при открытии Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Could not load the choosen image - Ðе удалоÑÑŒ загрузить выбранное изображение + + Could not load the choosen image + Ðе удалоÑÑŒ загрузить выбранное изображение - - + + Workbench - - Image - Изображение + + Image + Изображение - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_se.ts b/src/Mod/Image/Gui/Resources/translations/Image_se.ts index 0dc7ac24d..a7bc174da 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_se.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_se.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Bild + + Image + Bild - Create image plane... - Skapa bildplan ... + + Create image plane... + Skapa bildplan ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - skapa en plan bild i 3D-rymden + create a planar image in the 3D space + skapa en plan bild i 3D-rymden - - + + CmdImageOpen - Image - Bild + + Image + Bild - Open... - Öppna... + + Open... + Öppna... - Open image view - Öppna bildvy + + Open image view + Öppna bildvy - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Odefinierad färgrymd för bildvisning + + Undefined type of colour space for image viewing + Odefinierad färgrymd för bildvisning - Image pixel format - Bildens pixelformat + + Image pixel format + Bildens pixelformat - - + + ImageGui::ImageView - - &Fit image - An&passa bild + + &Fit image + An&passa bild - Stretch the image to fit the view - Skala bilden till vyn + + Stretch the image to fit the view + Skala bilden till vyn - &1:1 scale - &1:1 Skala + + &1:1 scale + &1:1 Skala - Display the image at a 1:1 scale - Visa bilden i 1:1 skala + + Display the image at a 1:1 scale + Visa bilden i 1:1 skala - &Original color - &Originalfärg + &Original color + &Originalfärg - Display the image with its original color(s) - Visa bilden med dess originalfärger + Display the image with its original color(s) + Visa bilden med dess originalfärger - &Brightened color - &Ljusa färger + &Brightened color + &Ljusa färger - Display the image with brightened color(s) - Visa bilden med ljusare färger + Display the image with brightened color(s) + Visa bilden med ljusare färger - Standard - Standard + + Standard + Standard - Ready... - Klar... + + Ready... + Klar... - grey - GrÃ¥ + + grey + GrÃ¥ - zoom - zoom + + + + + + + + + + + zoom + zoom - outside image - Utanför bild + + + + + + outside image + Utanför bild - - + + QObject - Image viewer - Bildvisare + Image viewer + Bildvisare - - Images (*.png *.xpm *.jpg *.bmp) - Bildformat (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Bildformat (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Välj en bildfil att öppna + + + + Choose an image file to open + Välj en bildfil att öppna - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Fel vid öppning av bilden + + Error open image + Fel vid öppning av bilden - Could not load the choosen image - Kunde inte ladda den valda bilden + + Could not load the choosen image + Kunde inte ladda den valda bilden - - + + Workbench - - Image - Bild + + Image + Bild - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_uk.ts b/src/Mod/Image/Gui/Resources/translations/Image_uk.ts index ca4eadac8..4be9b5665 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_uk.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_uk.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Image + Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Create image plane... - Створити площину зображеннÑ... + + Create image plane... + Створити площину зображеннÑ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð»Ð¾Ñкого Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² 3D проÑторі + create a planar image in the 3D space + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð»Ð¾Ñкого Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² 3D проÑторі - - + + CmdImageOpen - Image - Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Image + Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Open... - Відкрити... + + Open... + Відкрити... - Open image view - Відкрити Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Open image view + Відкрити Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - Ðевизначений тип кольору проÑтору Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду зображень + + Undefined type of colour space for image viewing + Ðевизначений тип кольору проÑтору Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду зображень - Image pixel format - Формат пікÑÐµÐ»Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Image pixel format + Формат пікÑÐµÐ»Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - - + + ImageGui::ImageView - - &Fit image - &ВміÑтити Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + &Fit image + &ВміÑтити Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Stretch the image to fit the view - РозтÑгнути Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ розмірів Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ + + Stretch the image to fit the view + РозтÑгнути Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ розмірів Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ - &1:1 scale - МаÑштаб &1:1 + + &1:1 scale + МаÑштаб &1:1 - Display the image at a 1:1 scale - Показати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² маÑштабі 1:1 + + Display the image at a 1:1 scale + Показати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² маÑштабі 1:1 - &Original color - &Оригінальний колір + &Original color + &Оригінальний колір - Display the image with its original color(s) - Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² оригінальних кольорах + Display the image with its original color(s) + Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² оригінальних кольорах - &Brightened color - &Підвищити ÑÑкравіÑть кольору + &Brightened color + &Підвищити ÑÑкравіÑть кольору - Display the image with brightened color(s) - Показувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· підвищеною ÑÑкравіÑтю кольорів + Display the image with brightened color(s) + Показувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· підвищеною ÑÑкравіÑтю кольорів - Standard - Стандартно + + Standard + Стандартно - Ready... - Готово... + + Ready... + Готово... - grey - Ñірий + + grey + Ñірий - zoom - маÑштаб + + + + + + + + + + + zoom + маÑштаб - outside image - за межами Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + + + + + outside image + за межами Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - - + + QObject - Image viewer - ПереглÑд зображень + Image viewer + ПереглÑд зображень - - Images (*.png *.xpm *.jpg *.bmp) - Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ (*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ (*.png *.xpm *.jpg *.bmp) - Choose an image file to open - Оберіть файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ + + + + Choose an image file to open + Оберіть файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Error open image + Помилка Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - Could not load the choosen image - Ðе вдалоÑÑŒ завантажити обране Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Could not load the choosen image + Ðе вдалоÑÑŒ завантажити обране Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - - + + Workbench - - Image - Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ + + Image + Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ - + diff --git a/src/Mod/Image/Gui/Resources/translations/Image_zh.ts b/src/Mod/Image/Gui/Resources/translations/Image_zh.ts index 219549b3b..6657ced73 100644 --- a/src/Mod/Image/Gui/Resources/translations/Image_zh.ts +++ b/src/Mod/Image/Gui/Resources/translations/Image_zh.ts @@ -1,147 +1,183 @@ - - + + CmdCreateImagePlane - - Image - å›¾åƒ + + Image + å›¾åƒ - Create image plane... - 创建平é¢å›¾åƒ... + + Create image plane... + 创建平é¢å›¾åƒ... - Create a planar image in the 3D space - Create a planar image in the 3D space + + Create a planar image in the 3D space + Create a planar image in the 3D space - create a planar image in the 3D space - 三维空间中创建一个平é¢å›¾åƒ + create a planar image in the 3D space + 三维空间中创建一个平é¢å›¾åƒ - - + + CmdImageOpen - Image - å›¾åƒ + + Image + å›¾åƒ - Open... - 打开... + + Open... + 打开... - Open image view - 打开图åƒè§†å›¾ + + Open image view + 打开图åƒè§†å›¾ - - + + ImageGui::GLImageBox - - Undefined type of colour space for image viewing - å›¾ç‰‡è§†å›¾çš„è‰²å½©æ¨¡å¼æœªå®šä¹‰ + + Undefined type of colour space for image viewing + å›¾ç‰‡è§†å›¾çš„è‰²å½©æ¨¡å¼æœªå®šä¹‰ - Image pixel format - 图åƒåƒç´ æ ¼å¼ + + Image pixel format + 图åƒåƒç´ æ ¼å¼ - - + + ImageGui::ImageView - - &Fit image - 适应图åƒå°ºå¯¸(&F) + + &Fit image + 适应图åƒå°ºå¯¸(&F) - Stretch the image to fit the view - 拉伸图åƒä»¥é€‚应视图 + + Stretch the image to fit the view + 拉伸图åƒä»¥é€‚应视图 - &1:1 scale - &1:1 缩放 + + &1:1 scale + &1:1 缩放 - Display the image at a 1:1 scale - 按1:1æ¯”ä¾‹æ˜¾ç¤ºå›¾åƒ + + Display the image at a 1:1 scale + 按1:1æ¯”ä¾‹æ˜¾ç¤ºå›¾åƒ - &Original color - 原始色(&O) + &Original color + 原始色(&O) - Display the image with its original color(s) - ä»¥åŽŸå§‹è‰²æ˜¾ç¤ºå›¾åƒ + Display the image with its original color(s) + ä»¥åŽŸå§‹è‰²æ˜¾ç¤ºå›¾åƒ - &Brightened color - 高亮色(&B) + &Brightened color + 高亮色(&B) - Display the image with brightened color(s) - ä»¥é«˜äº®è‰²æ˜¾ç¤ºå›¾åƒ + Display the image with brightened color(s) + ä»¥é«˜äº®è‰²æ˜¾ç¤ºå›¾åƒ - Standard - 标准 + + Standard + 标准 - Ready... - 就绪... + + Ready... + 就绪... - grey - ç°è‰² + + grey + ç°è‰² - zoom - 缩放 + + + + + + + + + + + zoom + 缩放 - outside image - 图åƒå¤–部 + + + + + + outside image + 图åƒå¤–部 - - + + QObject - Image viewer - å›¾åƒæµè§ˆå™¨ + Image viewer + å›¾åƒæµè§ˆå™¨ - - Images (*.png *.xpm *.jpg *.bmp) - 图åƒ(*.png *.xpm *.jpg *.bmp) + + Images (*.png *.xpm *.jpg *.bmp) + 图åƒ(*.png *.xpm *.jpg *.bmp) - Choose an image file to open - é€‰æ‹©ä¸€ä¸ªå›¾åƒæ–‡ä»¶æ‰“å¼€ + + + + Choose an image file to open + é€‰æ‹©ä¸€ä¸ªå›¾åƒæ–‡ä»¶æ‰“å¼€ - Images - Images + + + Images + Images - All files - All files + + + All files + All files - Error open image - 打开图åƒé”™è¯¯ + + Error open image + 打开图åƒé”™è¯¯ - Could not load the choosen image - æ— æ³•åŠ è½½é€‰æ‹©çš„å›¾åƒ + + Could not load the choosen image + æ— æ³•åŠ è½½é€‰æ‹©çš„å›¾åƒ - - + + Workbench - - Image - å›¾åƒ + + Image + å›¾åƒ - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_af.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_af.ts index ff055b8be..f1bf8b679 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_af.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_af.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Maas + Mesh + Maas - Add triangle - Voeg driehoek by + Add triangle + Voeg driehoek by - Add triangle manually to a mesh - Voeg driehoek self by die maas + Add triangle manually to a mesh + Voeg driehoek self by die maas - - + + CmdMeshBoundingBox - Mesh - Maas + Mesh + Maas - Boundings info... - Begrensings informasie ... + Boundings info... + Begrensings informasie ... - Shows the boundings of the selected mesh - Wys die begrensings van die gekose maas + Shows the boundings of the selected mesh + Wys die begrensings van die gekose maas - - + + CmdMeshBuildRegularSolid - Mesh - Maas + Mesh + Maas - Regular solid... - Tipiese soliede liggaam ... + Regular solid... + Tipiese soliede liggaam ... - Builds a regular solid - Skep 'n soliede liggaam + Builds a regular solid + Skep 'n soliede liggaam - - + + CmdMeshDemolding - Interactive demolding direction - Interaktiewe ontgietingsrigting + Interactive demolding direction + Interaktiewe ontgietingsrigting - Mesh - Maas + Mesh + Maas - - + + CmdMeshDifference - Mesh - Maas + Mesh + Maas - Difference - Verskil + Difference + Verskil - - + + CmdMeshEvaluateFacet - Mesh - Maas + Mesh + Maas - Face info - Vlakinformasie + Face info + Vlakinformasie - Information about face - Informasie oor die vlak + Information about face + Informasie oor die vlak - - + + CmdMeshEvaluateSolid - Mesh - Maas + Mesh + Maas - Check solid mesh - Kontroleer soliede maas + Check solid mesh + Kontroleer soliede maas - Checks whether the mesh is a solid - Kontroleer of die maas 'n soliede is + Checks whether the mesh is a solid + Kontroleer of die maas 'n soliede is - - + + CmdMeshEvaluation - Mesh - Maas + Mesh + Maas - Opens a dialog to analyze and repair a mesh - Maak 'n dialoog oop om 'n maas te ontleed en herstel + Opens a dialog to analyze and repair a mesh + Maak 'n dialoog oop om 'n maas te ontleed en herstel - Evaluate && Repair mesh... - Evalueer en herstel maas... + Evaluate && Repair mesh... + Evalueer en herstel maas... - - + + CmdMeshExMakeMesh - Mesh - Maas + Mesh + Maas - Make a Box - Maak 'n boks + Make a Box + Maak 'n boks - - + + CmdMeshExMakeTool - Mesh - Maas + Mesh + Maas - Make a Tool - Maak 'n werktuig + Make a Tool + Maak 'n werktuig - - + + CmdMeshExMakeUnion - Mesh - Maas + Mesh + Maas - Make Union - Maak unie + Make Union + Maak unie - - + + CmdMeshExport - Mesh - Maas + Mesh + Maas - Export mesh... - Voer maas uit ... + Export mesh... + Voer maas uit ... - Exports a mesh to file - Voer maas uit na lêer + Exports a mesh to file + Voer maas uit na lêer - - + + CmdMeshFillInteractiveHole - Mesh - Maas + Mesh + Maas - Close hole - Vul gaping + Close hole + Vul gaping - Close holes interactively - Vul gapings interaktief + Close holes interactively + Vul gapings interaktief - - + + CmdMeshFillupHoles - Mesh - Maas + Mesh + Maas - Fill holes... - Vul gapings ... + Fill holes... + Vul gapings ... - Fill holes of the mesh - Vul gapings in die maas + Fill holes of the mesh + Vul gapings in die maas - - + + CmdMeshFlipNormals - Mesh - Maas + Mesh + Maas - Flip normals - Keer normaallyne om + Flip normals + Keer normaallyne om - Flips the normals of the mesh - Keer die maas se normaallyne om + Flips the normals of the mesh + Keer die maas se normaallyne om - - + + CmdMeshFromGeometry - Mesh - Maas + Mesh + Maas - Create mesh from geometry... - Skep 'n maas van 'n vorm ... + Create mesh from geometry... + Skep 'n maas van 'n vorm ... - Create mesh from the selected geometry - Skep maas van die gekose vorm + Create mesh from the selected geometry + Skep maas van die gekose vorm - - + + CmdMeshHarmonizeNormals - Mesh - Maas + Mesh + Maas - Harmonize normals - Harmoniseer normaallyne + Harmonize normals + Harmoniseer normaallyne - Harmonizes the normals of the mesh - Harmoniseer die normaallyne van die maas + Harmonizes the normals of the mesh + Harmoniseer die normaallyne van die maas - - + + CmdMeshImport - Mesh - Maas + Mesh + Maas - Import mesh... - Voer maas in ... + Import mesh... + Voer maas in ... - Imports a mesh from file - Voer 'n maas in van 'n lêer + Imports a mesh from file + Voer 'n maas in van 'n lêer - - + + CmdMeshIntersection - Mesh - Maas + Mesh + Maas - Intersection - Snyding + Intersection + Snyding - - + + CmdMeshPolyCut - Mesh - Maas + Mesh + Maas - Cut mesh - Sny maas + Cut mesh + Sny maas - Cuts a mesh with a picked polygon - Sny 'n maas met 'n gekose veelhoek + Cuts a mesh with a picked polygon + Sny 'n maas met 'n gekose veelhoek - - + + CmdMeshPolySegm - Mesh - Maas + Mesh + Maas - Make segment - Maak segment + Make segment + Maak segment - Creates a mesh segment - Skep 'n maassegment + Creates a mesh segment + Skep 'n maassegment - - + + CmdMeshPolySelect - Mesh - Maas + Mesh + Maas - Select mesh - Kies maas + Select mesh + Kies maas - Select an area of the mesh - Kies 'n gedeelte van die maas + Select an area of the mesh + Kies 'n gedeelte van die maas - - + + CmdMeshPolySplit - Mesh - Maas + Mesh + Maas - Split mesh - Verdeel 'n maas + Split mesh + Verdeel 'n maas - Splits a mesh into two meshes - Verdeel 'n maas in twee mase + Splits a mesh into two meshes + Verdeel 'n maas in twee mase - - + + + CmdMeshPolyTrim + + Mesh + Maas + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Maas + Mesh + Maas - Remove components by hand... - Verwyder komponente met die hand ... + Remove components by hand... + Verwyder komponente met die hand ... - Mark a component to remove it from the mesh - Merk 'n komponent om dit te verwyder uit die maas + Mark a component to remove it from the mesh + Merk 'n komponent om dit te verwyder uit die maas - - + + CmdMeshRemoveComponents - Mesh - Maas + Mesh + Maas - Remove components... - Verwyder komponente ... + Remove components... + Verwyder komponente ... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Maas + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Maas + Mesh + Maas - Smooth... - Stryk ... + Smooth... + Stryk ... - Smooth the selected meshes - Stryk die geselekteerde mase se oppervlakke uit + Smooth the selected meshes + Stryk die geselekteerde mase se oppervlakke uit - - + + CmdMeshToolMesh - Mesh - Maas + Mesh + Maas - Segment by tool mesh - Segmenteer met 'n maaswerktuig + Segment by tool mesh + Segmenteer met 'n maaswerktuig - Creates a segment from a given tool mesh - Skep 'n segment van 'n gegewe maaswerktuig + Creates a segment from a given tool mesh + Skep 'n segment van 'n gegewe maaswerktuig - - + + CmdMeshTransform - Mesh - Maas + Mesh + Maas - Transform mesh - Transformeer maas + Transform mesh + Transformeer maas - Rotate or move a mesh - Draai of skuif 'n maas + Rotate or move a mesh + Draai of skuif 'n maas - - + + CmdMeshUnion - Mesh - Maas + Mesh + Maas - Union - Vereniging + Union + Vereniging - - + + CmdMeshVertexCurvature - Mesh - Maas + Mesh + Maas - Calculates the curvature of the vertices of a mesh - Bereken die kromming van die hoekpunte van 'n maas + Calculates the curvature of the vertices of a mesh + Bereken die kromming van die hoekpunte van 'n maas - Curvature plot - Krommingplot + Curvature plot + Krommingplot - - + + CmdMeshVertexCurvatureInfo - Mesh - Maas + Mesh + Maas - Curvature info - Kromminginformasie + Curvature info + Kromminginformasie - Information about curvature - Inligting oor die kromming + Information about curvature + Inligting oor die kromming - - + + MeshGui::DlgEvaluateMesh - &Help - &Hulp + &Help + &Hulp - F1 - F1 + F1 + F1 - &Close - &MaakToe + &Close + &MaakToe - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Maas inligting + Mesh information + Maas inligting - No information - Geen inligting + No information + Geen inligting - Number of points: - Aantal punte: + Number of points: + Aantal punte: - Number of edges: - Aantal kante: + Number of edges: + Aantal kante: - Refresh - Verfris + Refresh + Verfris - Analyze - Ontleed + Analyze + Ontleed - Repair - Herstel + Repair + Herstel - Orientation - Oriëntasie + Orientation + Oriëntasie - Degenerated faces - Vervalle vlakke + Degenerated faces + Vervalle vlakke - Face indices - Vlakindekse + Face indices + Vlakindekse - Number of faces: - Aantal vlakke: + Number of faces: + Aantal vlakke: - Duplicated faces - Herhaalde vlakke + Duplicated faces + Herhaalde vlakke - Duplicated points - Herhaalde punte + Duplicated points + Herhaalde punte - Non-manifolds - Nie-menigvoude + Non-manifolds + Nie-menigvoude - Self-intersections - Self-snydings + Self-intersections + Self-snydings - All above tests together - Al die bogenoemde toetse saam + All above tests together + Al die bogenoemde toetse saam - Repetitive repair - Herhalende herstelling + Repetitive repair + Herhalende herstelling - Evaluate & Repair Mesh - Evalueer en herstel maas + Evaluate & Repair Mesh + Evalueer en herstel maas - Folds on surface - Voue op die oppervlak + Folds on surface + Voue op die oppervlak - - + + MeshGui::DlgEvaluateMeshImp - No information - Geen inligting + No information + Geen inligting - Invalid neighbour indices - Ongeldige buurindekse + Invalid neighbour indices + Ongeldige buurindekse - Invalid face indices - Ongeldige vlakindekse + Invalid face indices + Ongeldige vlakindekse - Invalid point indices - Ongeldige puntindekse + Invalid point indices + Ongeldige puntindekse - Multiple point indices - Veelvuldige puntindekse + Multiple point indices + Veelvuldige puntindekse - Non-manifolds - Nie-menigvoude + Non-manifolds + Nie-menigvoude - Cannot remove non-manifolds - Kan nie nie-menigvoude verwyder nie + Cannot remove non-manifolds + Kan nie nie-menigvoude verwyder nie - No selection - Geen keuse + No selection + Geen keuse - No flipped normals - Geen omgekeerde normaallyne nie + No flipped normals + Geen omgekeerde normaallyne nie - %1 flipped normals - %1 omgekeerde normaallyne + %1 flipped normals + %1 omgekeerde normaallyne - No non-manifolds - Geen nie-menigvoude nie + No non-manifolds + Geen nie-menigvoude nie - %1 non-manifolds - %1 nie-menigvoude + %1 non-manifolds + %1 nie-menigvoude - No invalid indices - Geen ongeldige indekse + No invalid indices + Geen ongeldige indekse - No degenerations - Geen vervallings + No degenerations + Geen vervallings - %1 degenerated faces - %1 vervalle vlakke + %1 degenerated faces + %1 vervalle vlakke - No duplicated faces - Geen herhaalde vlakke + No duplicated faces + Geen herhaalde vlakke - %1 duplicated faces - %1 herhaalde vlakke + %1 duplicated faces + %1 herhaalde vlakke - No duplicated points - Geen herhaalde punte nie + No duplicated points + Geen herhaalde punte nie - Duplicated points - Herhaalde punte + Duplicated points + Herhaalde punte - Orientation - Oriëntasie + Orientation + Oriëntasie - Indices - Indekse + Indices + Indekse - Degenerations - Vervallings + Degenerations + Vervallings - Duplicated faces - Herhaalde vlakke + Duplicated faces + Herhaalde vlakke - No self-intersections - Geen selfsnydings + No self-intersections + Geen selfsnydings - Self-intersections - Self-snydings + Self-intersections + Self-snydings - Mesh repair - Maasherstelling + Mesh repair + Maasherstelling - Flipped normals found - Omgekeerde normaallyne gevind + Flipped normals found + Omgekeerde normaallyne gevind - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Kontrole het misluk weens voue op die oppervlak. + Kontrole het misluk weens voue op die oppervlak. Gee eers die opdrag om die voue te herstel - No folds on surface - Geen voue op die oppervlak + No folds on surface + Geen voue op die oppervlak - %1 folds on surface - %1 voue op die oppervlak + %1 folds on surface + %1 voue op die oppervlak - Folds - Voue + Folds + Voue - - + + MeshGui::DlgRegularSolid - Regular Solid - Tipiese Soliede + Regular Solid + Tipiese Soliede - &Create - &Skep + &Create + &Skep - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - &MaakToe + Cl&ose + &MaakToe - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Soliede: + Solid: + Soliede: - Cube - Kubus + Cube + Kubus - Cylinder - Silinder + Cylinder + Silinder - Cone - Keël + Cone + Keël - Sphere - Sfeer + Sphere + Sfeer - Ellipsoid - Ellipsoïed + Ellipsoid + Ellipsoïed - Torus - Torus + Torus + Torus - Height: - Hoogte: + Height: + Hoogte: - Length: - Lengte: + Length: + Lengte: - Width: - Wydte: + Width: + Wydte: - Radius: - Radius: + Radius: + Radius: - Closed - Gesluit + Closed + Gesluit - Sampling: - Steekproefneming: + Sampling: + Steekproefneming: - Edge length: - Kantlengte: + Edge length: + Kantlengte: - Radius 1: - Radius 1: + Radius 1: + Radius 1: - Radius 2: - Radius 2: + Radius 2: + Radius 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Skep %1 + Create %1 + Skep %1 - No active document - Geen aktiewe dokument + No active document + Geen aktiewe dokument - - + + MeshGui::DlgSettingsMeshView - Mesh view - Maasaansig + Mesh view + Maasaansig - Two-side rendering - Tweekantige vorming + Two-side rendering + Tweekantige vorming - Backface color - Agtervlakkleur + Backface color + Agtervlakkleur - Smoothing - Gladmaking + Smoothing + Gladmaking - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hierdie is die kleinste hoek tussen twee vlakke waar normaallyne bereken word om platskaduïng te doen.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Indien die hoek tussen die normaallyne van twee aangrensende vlakke kleiner is as die plooihoek, sal die vlakke gladgeskadu word om hulle gemeensame kant.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hierdie is die kleinste hoek tussen twee vlakke waar normaallyne bereken word om platskaduïng te doen.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Indien die hoek tussen die normaallyne van twee aangrensende vlakke kleiner is as die plooihoek, sal die vlakke gladgeskadu word om hulle gemeensame kant.</p></body></html> - Crease angle - Plooihoek + Crease angle + Plooihoek - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Platskaduïng/Phong-skaduïng</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definieer die voorkoms van oppervlakke.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Met platskaduïng word die vlaknormaallyne nie gedefinieer per hoekpunt nie, dit lei tot 'n onrealistiese voorkoms vir gekurwe oppervlakke, terwyl Phong-skaduïng 'n gladder voorkoms gee. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Indien hierdie opsie gekies is, word Phong-skaduïng gebruik, andersins word platskaduïng gebruik.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Platskaduïng/Phong-skaduïng</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definieer die voorkoms van oppervlakke.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Met platskaduïng word die vlaknormaallyne nie gedefinieer per hoekpunt nie, dit lei tot 'n onrealistiese voorkoms vir gekurwe oppervlakke, terwyl Phong-skaduïng 'n gladder voorkoms gee. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Indien hierdie opsie gekies is, word Phong-skaduïng gebruik, andersins word platskaduïng gebruik.</p></body></html> - Define normal per vertex - Definieer die normale per hoekpunt + Define normal per vertex + Definieer die normale per hoekpunt + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om die normaallyne per hoekpunt te definieer word ook genoem<span style=" font-style:italic;">Phong-skaduïng</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwyl die definiëring van die normale per vlak beskryf word as</span>platskaduïng<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om die normaallyne per hoekpunt te definieer word ook genoem<span style=" font-style:italic;">Phong-skaduïng</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwyl die definiëring van die normale per vlak beskryf word as</span>platskaduïng<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Versuimvoorkoms vir nuwe mase - Default appearance for new meshes - Versuimvoorkoms vir nuwe mase + Default line color + Versuimlynkleur - Default line color - Versuimlynkleur + Mesh transparency + Maasdeursigtigheid - Mesh transparency - Maasdeursigtigheid + Default mesh color + Standaard maaskleur - Default mesh color - Standaard maaskleur + Show bounding-box for highlighted or selected meshes + Wys begrensingsboks vir beklemtoonde of gekose mase - Show bounding-box for highlighted or selected meshes - Wys begrensingsboks vir beklemtoonde of gekose mase + Line transparency + Lyndeursigtigheid - - Line transparency - Lyndeursigtigheid - - - + + MeshGui::DlgSmoothing - Smoothing - Gladmaking + Smoothing + Gladmaking - Method - Metode + Method + Metode - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Iterasies: + Iterations: + Iterasies: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Voeg driehoek by + Add triangle + Voeg driehoek by - Flip normal - Swaai normaallyn om + Flip normal + Swaai normaallyn om - Clear - Maak skoon + Clear + Maak skoon - Finish - Klaar + Finish + Klaar - - + + MeshGui::RemoveComponents - Remove components - Verwyder komponente + Remove components + Verwyder komponente - Select - Kies + Select + Kies - Select whole component - Kies die hele komponent + Select whole component + Kies die hele komponent - Pick triangle - Kies driehoek + Pick triangle + Kies driehoek - < faces than - < vlakke as + < faces than + < vlakke as - Region - Streek + Region + Streek - Components - Komponente + Components + Komponente - All - Almal + All + Almal - Deselect - Deselekteer + Deselect + Deselekteer - Deselect whole component - Deselekteer die hele komponent + Deselect whole component + Deselekteer die hele komponent - > faces than - > vlakke as + > faces than + > vlakke as - Region options - Streekopsies + Region options + Streekopsies - Respect only triangles with normals facing screen - Respekteer slegs driehoeke waarvan die normale in lyn met die skerm is + Respect only triangles with normals facing screen + Respekteer slegs driehoeke waarvan die normale in lyn met die skerm is - Respect only visible triangles - Respekteer slegs sigbare driehoeke + Respect only visible triangles + Respekteer slegs sigbare driehoeke - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Silinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sfeer + + + MeshGui::TaskRemoveComponents - Delete - Verwyder + Delete + Verwyder - Invert - Inverteer + Invert + Inverteer - - + + QDockWidget - Evaluate & Repair Mesh - Evalueer en herstel maas + Evaluate & Repair Mesh + Evalueer en herstel maas - - + + QObject - Import mesh - Voer maas in + Import mesh + Voer maas in - Export mesh - Voer maas uit + Export mesh + Voer maas uit - Solid Mesh - Soliede Maas + Solid Mesh + Soliede Maas - Boundings - Begrensings + Boundings + Begrensings - Fill holes - Vul gapings + Fill holes + Vul gapings - Fill holes with maximum number of edges: - Vul gapings met 'n maksimum aantal kante: + Fill holes with maximum number of edges: + Vul gapings met 'n maksimum aantal kante: - Binary STL (*.stl) - Binêre STL (*.stl) + Binary STL (*.stl) + Binêre STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Binêre maas (*.bms) + Binary Mesh (*.bms) + Binêre maas (*.bms) - Alias Mesh (*.obj) - Alias Maas (*.obj) + Alias Mesh (*.obj) + Alias Maas (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Alle lêers (*.*) + All Files (*.*) + Alle lêers (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Gekomprimeerde VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Gekomprimeerde VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Pythonmodule def (*.py) + Python module def (*.py) + Pythonmodule def (*.py) - Meshing Tolerance - Maastoleransie + Meshing Tolerance + Maastoleransie - Enter tolerance for meshing geometry: - Gee toleransie vir maasvorms: + Enter tolerance for meshing geometry: + Gee toleransie vir maasvorms: - The mesh '%1' is a solid. - Die maas '%1' is 'n soliede. + The mesh '%1' is a solid. + Die maas '%1' is 'n soliede. - The mesh '%1' is not a solid. - Die maas '%1' is nie 'n soliede nie. + The mesh '%1' is not a solid. + Die maas '%1' is nie 'n soliede nie. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Maks=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punte: %1, Kante: %2, Vlakke: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punte: %1, Kante: %2, Vlakke: %3] - Leave info mode - Verlaat inligtingsmodus + Leave info mode + Verlaat inligtingsmodus - Index: %1 - Indeks: %1 + Index: %1 + Indeks: %1 - Leave hole-filling mode - Verlaat gapingvullingsmodus + Leave hole-filling mode + Verlaat gapingvullingsmodus - Leave removal mode - Verlaat verwyderingsmodus + Leave removal mode + Verlaat verwyderingsmodus - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Alle maaslêers (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Alle maaslêers (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford-veelhoek (*.ply) + Stanford Polygon (*.ply) + Stanford-veelhoek (*.ply) - Object File Format (*.off) - Voorwerp-lêerformaat (*.off) + Object File Format (*.off) + Voorwerp-lêerformaat (*.off) - Standford Polygon (*.ply) - Standford-veelhoek (*.ply) + Standford Polygon (*.ply) + Standford-veelhoek (*.ply) - Delete selected faces - Verwyder gekose vlakke + Delete selected faces + Verwyder gekose vlakke - Clear selected faces - Verwyder gekose vlakke + Clear selected faces + Verwyder gekose vlakke - Annotation - Aantekening + Annotation + Aantekening - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Ontleed + Analyze + Ontleed - Boolean - Boolese + Boolean + Boolese - &Meshes - &Mase + &Meshes + &Mase - Mesh tools - Maaswerktuie + Mesh tools + Maaswerktuie - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_de.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_de.ts index b0113f6de..3b5d05cc9 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_de.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_de.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Netz + Mesh + Netz - Add triangle - Dreieck hinzufügen + Add triangle + Dreieck hinzufügen - Add triangle manually to a mesh - Dreieck manuell zu einem Netz hinzufügen + Add triangle manually to a mesh + Dreieck manuell zu einem Netz hinzufügen - - + + CmdMeshBoundingBox - Mesh - Netz + Mesh + Netz - Boundings info... - Abmessungen... + Boundings info... + Abmessungen... - Shows the boundings of the selected mesh - Anzeigen der Abmessungen des gewählten Netzes + Shows the boundings of the selected mesh + Anzeigen der Abmessungen des gewählten Netzes - - + + CmdMeshBuildRegularSolid - Mesh - Netz + Mesh + Netz - Regular solid... - Regelgeometrie... + Regular solid... + Regelgeometrie... - Builds a regular solid - Erstellen einer Regelgeometrie + Builds a regular solid + Erstellen einer Regelgeometrie - - + + CmdMeshDemolding - Interactive demolding direction - Interaktive Entformrichtung + Interactive demolding direction + Interaktive Entformrichtung - Mesh - Netz + Mesh + Netz - - + + CmdMeshDifference - Mesh - Netz + Mesh + Netz - Difference - Differenz + Difference + Differenz - - + + CmdMeshEvaluateFacet - Mesh - Netz + Mesh + Netz - Face info - Dreiecksinformation + Face info + Dreiecksinformation - Information about face - Information über Dreieck + Information about face + Information über Dreieck - - + + CmdMeshEvaluateSolid - Mesh - Netz + Mesh + Netz - Check solid mesh - Netz auf Solid überprüfen + Check solid mesh + Netz auf Solid überprüfen - Checks whether the mesh is a solid - Überprüft, ob das Netz ein Solid ist + Checks whether the mesh is a solid + Überprüft, ob das Netz ein Solid ist - - + + CmdMeshEvaluation - Mesh - Netz + Mesh + Netz - Opens a dialog to analyze and repair a mesh - Öffnet einen Dialog zum Analysieren und Reparieren eines Netzes + Opens a dialog to analyze and repair a mesh + Öffnet einen Dialog zum Analysieren und Reparieren eines Netzes - Evaluate && Repair mesh... - Netz auswerten && reparieren... + Evaluate && Repair mesh... + Netz auswerten && reparieren... - - + + CmdMeshExMakeMesh - Mesh - Netz + Mesh + Netz - Make a Box - Würfel erstellen + Make a Box + Würfel erstellen - - + + CmdMeshExMakeTool - Mesh - Netz + Mesh + Netz - Make a Tool - Werkzeug erstellen + Make a Tool + Werkzeug erstellen - - + + CmdMeshExMakeUnion - Mesh - Netz + Mesh + Netz - Make Union - Verschneiden + Make Union + Verschneiden - - + + CmdMeshExport - Mesh - Netz + Mesh + Netz - Export mesh... - Netz exportieren... + Export mesh... + Netz exportieren... - Exports a mesh to file - Netz in eine Datei exportieren + Exports a mesh to file + Netz in eine Datei exportieren - - + + CmdMeshFillInteractiveHole - Mesh - Netz + Mesh + Netz - Close hole - Loch schließen + Close hole + Loch schließen - Close holes interactively - Loch interaktiv schließen + Close holes interactively + Loch interaktiv schließen - - + + CmdMeshFillupHoles - Mesh - Netz + Mesh + Netz - Fill holes... - Löcher schließen... + Fill holes... + Löcher schließen... - Fill holes of the mesh - Schließt Löcher in dem Netz + Fill holes of the mesh + Schließt Löcher in dem Netz - - + + CmdMeshFlipNormals - Mesh - Netz + Mesh + Netz - Flip normals - Normalen umdrehen + Flip normals + Normalen umdrehen - Flips the normals of the mesh - Dreht die Dreiecksnormalen des Netzes um + Flips the normals of the mesh + Dreht die Dreiecksnormalen des Netzes um - - + + CmdMeshFromGeometry - Mesh - Netz + Mesh + Netz - Create mesh from geometry... - Erzeuge Netz aus Geometrie... + Create mesh from geometry... + Erzeuge Netz aus Geometrie... - Create mesh from the selected geometry - Erzeuge Netz aus selektierter Geometrie + Create mesh from the selected geometry + Erzeuge Netz aus selektierter Geometrie - - + + CmdMeshHarmonizeNormals - Mesh - Netz + Mesh + Netz - Harmonize normals - Normalen ausrichten + Harmonize normals + Normalen ausrichten - Harmonizes the normals of the mesh - Richtet die Normalen des Netzes aus + Harmonizes the normals of the mesh + Richtet die Normalen des Netzes aus - - + + CmdMeshImport - Mesh - Netz + Mesh + Netz - Import mesh... - Netz importieren... + Import mesh... + Netz importieren... - Imports a mesh from file - Importiert Netz aus einer Datei + Imports a mesh from file + Importiert Netz aus einer Datei - - + + CmdMeshIntersection - Mesh - Netz + Mesh + Netz - Intersection - Schnitt + Intersection + Schnitt - - + + CmdMeshPolyCut - Mesh - Netz + Mesh + Netz - Cut mesh - Netz schneiden + Cut mesh + Netz schneiden - Cuts a mesh with a picked polygon - Schneidet ein Netz mit einem ausgewählten Polygon + Cuts a mesh with a picked polygon + Schneidet ein Netz mit einem ausgewählten Polygon - - + + CmdMeshPolySegm - Mesh - Netz + Mesh + Netz - Make segment - Segment erzeugen + Make segment + Segment erzeugen - Creates a mesh segment - Erzeuge Netz-Segment + Creates a mesh segment + Erzeuge Netz-Segment - - + + CmdMeshPolySelect - Mesh - Netz + Mesh + Netz - Select mesh - Netz auswählen + Select mesh + Netz auswählen - Select an area of the mesh - Wähle einen Bereich des Netzes aus + Select an area of the mesh + Wähle einen Bereich des Netzes aus - - + + CmdMeshPolySplit - Mesh - Netz + Mesh + Netz - Split mesh - Netz auftrennen + Split mesh + Netz auftrennen - Splits a mesh into two meshes - Netz in zwei Teile trennen + Splits a mesh into two meshes + Netz in zwei Teile trennen - - + + + CmdMeshPolyTrim + + Mesh + Netz + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Netz + Mesh + Netz - Remove components by hand... - Komponente von Hand entfernen... + Remove components by hand... + Komponente von Hand entfernen... - Mark a component to remove it from the mesh - Markiere Komponente um von Hand zu entfernen + Mark a component to remove it from the mesh + Markiere Komponente um von Hand zu entfernen - - + + CmdMeshRemoveComponents - Mesh - Netz + Mesh + Netz - Remove components... - Komponenten entfernen... + Remove components... + Komponenten entfernen... - Remove topologic independent components from the mesh - Entfernt topologisch unabhängige Komponenten aus dem Netz + Remove topologic independent components from the mesh + Entfernt topologisch unabhängige Komponenten aus dem Netz - - + + + CmdMeshSegmentation + + Mesh + Netz + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Netz + Mesh + Netz - Smooth... - Glätten... + Smooth... + Glätten... - Smooth the selected meshes - Selektierte Netze glätten + Smooth the selected meshes + Selektierte Netze glätten - - + + CmdMeshToolMesh - Mesh - Netz + Mesh + Netz - Segment by tool mesh - Segmentieren + Segment by tool mesh + Segmentieren - Creates a segment from a given tool mesh - Segment mit Hilfe eines gegebenen Hilfsnetzes erstellen + Creates a segment from a given tool mesh + Segment mit Hilfe eines gegebenen Hilfsnetzes erstellen - - + + CmdMeshTransform - Mesh - Netz + Mesh + Netz - Transform mesh - Netz transformieren + Transform mesh + Netz transformieren - Rotate or move a mesh - Dreht oder verschiebt ein Netz + Rotate or move a mesh + Dreht oder verschiebt ein Netz - - + + CmdMeshUnion - Mesh - Netz + Mesh + Netz - Union - Vereinigung + Union + Vereinigung - - + + CmdMeshVertexCurvature - Mesh - Netz + Mesh + Netz - Calculates the curvature of the vertices of a mesh - Berechnet die Krümmungen in den Vertexen eines Netzes + Calculates the curvature of the vertices of a mesh + Berechnet die Krümmungen in den Vertexen eines Netzes - Curvature plot - Krümmungsplot + Curvature plot + Krümmungsplot - - + + CmdMeshVertexCurvatureInfo - Mesh - Netz + Mesh + Netz - Curvature info - Krümmungsinformation + Curvature info + Krümmungsinformation - Information about curvature - Informationen über Krümmung + Information about curvature + Informationen über Krümmung - - + + MeshGui::DlgEvaluateMesh - &Help - &Hilfe + &Help + &Hilfe - F1 - F1 + F1 + F1 - &Close - Schl&ießen + &Close + Schl&ießen - Alt+C - Alt+S + Alt+C + Alt+S - Mesh information - Informationen zum Netz + Mesh information + Informationen zum Netz - No information - Keine Informationen + No information + Keine Informationen - Number of points: - Anzahl Punkte: + Number of points: + Anzahl Punkte: - Number of edges: - Anzahl Kanten: + Number of edges: + Anzahl Kanten: - Refresh - Erneut laden + Refresh + Erneut laden - Analyze - Analysieren + Analyze + Analysieren - Repair - Reparieren + Repair + Reparieren - Orientation - Orientierung + Orientation + Orientierung - Degenerated faces - Entartete Facetten + Degenerated faces + Entartete Facetten - Face indices - Facettenindexe + Face indices + Facettenindexe - Number of faces: - Anzahl Facetten: + Number of faces: + Anzahl Facetten: - Duplicated faces - Doppelte Dreiecke + Duplicated faces + Doppelte Dreiecke - Duplicated points - Doppelte Punkte + Duplicated points + Doppelte Punkte - Non-manifolds - Nichtmannigfaltigkeiten + Non-manifolds + Nichtmannigfaltigkeiten - Self-intersections - Selbstdurchdringungen + Self-intersections + Selbstdurchdringungen - All above tests together - Alle Tests zusammen + All above tests together + Alle Tests zusammen - Repetitive repair - Reparatur wiederholen + Repetitive repair + Reparatur wiederholen - Evaluate & Repair Mesh - Netz auswerten & reparieren + Evaluate & Repair Mesh + Netz auswerten & reparieren - Folds on surface - Oberflächenfalten + Folds on surface + Oberflächenfalten - - + + MeshGui::DlgEvaluateMeshImp - No information - Keine Informationen + No information + Keine Informationen - Invalid neighbour indices - Ungültige Nachbarindexe + Invalid neighbour indices + Ungültige Nachbarindexe - Invalid face indices - Ungültige Facettenindexe + Invalid face indices + Ungültige Facettenindexe - Invalid point indices - Ungültige Punktindexe + Invalid point indices + Ungültige Punktindexe - Multiple point indices - Mehrfache Punktindexe + Multiple point indices + Mehrfache Punktindexe - Non-manifolds - Nichtmannigfaltigkeiten + Non-manifolds + Nichtmannigfaltigkeiten - Cannot remove non-manifolds - Nichtmannigfaltigkeiten können nicht entfernt werden + Cannot remove non-manifolds + Nichtmannigfaltigkeiten können nicht entfernt werden - No selection - Keine Auswahl + No selection + Keine Auswahl - No flipped normals - Keine verdrehten Normalen + No flipped normals + Keine verdrehten Normalen - %1 flipped normals - %1 verdrehte Normalen + %1 flipped normals + %1 verdrehte Normalen - No non-manifolds - Keine Nichtmannigfaltigkeiten + No non-manifolds + Keine Nichtmannigfaltigkeiten - %1 non-manifolds - %1 Nichtmannigfaltigkeiten + %1 non-manifolds + %1 Nichtmannigfaltigkeiten - No invalid indices - Keine ungültige Indexe + No invalid indices + Keine ungültige Indexe - No degenerations - Keine Entartungen + No degenerations + Keine Entartungen - %1 degenerated faces - %1 entartete Facetten + %1 degenerated faces + %1 entartete Facetten - No duplicated faces - Keine doppelten Facetten + No duplicated faces + Keine doppelten Facetten - %1 duplicated faces - %1 doppelte Facetten + %1 duplicated faces + %1 doppelte Facetten - No duplicated points - Keine doppelten Punkte + No duplicated points + Keine doppelten Punkte - Duplicated points - Doppelte Punkte + Duplicated points + Doppelte Punkte - Orientation - Orientierung + Orientation + Orientierung - Indices - Indexe + Indices + Indexe - Degenerations - Degenerierungen + Degenerations + Degenerierungen - Duplicated faces - Doppelte Dreiecke + Duplicated faces + Doppelte Dreiecke - No self-intersections - Keine Selbstdurchdringungen + No self-intersections + Keine Selbstdurchdringungen - Self-intersections - Selbstdurchdringungen + Self-intersections + Selbstdurchdringungen - Mesh repair - Netz reparieren + Mesh repair + Netz reparieren - Flipped normals found - Verdrehte Normalen gefunden + Flipped normals found + Verdrehte Normalen gefunden - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Überprüfung wegen Falten in der Oberfläche fehlgeschlagen. + Überprüfung wegen Falten in der Oberfläche fehlgeschlagen. Bitte starten Sie vorher den Befehl zum Reparieren von Falten - No folds on surface - Keine Oberflächenfalten + No folds on surface + Keine Oberflächenfalten - %1 folds on surface - %1 Oberflächenfalten + %1 folds on surface + %1 Oberflächenfalten - Folds - Falten + Folds + Falten - - + + MeshGui::DlgRegularSolid - Regular Solid - Regelgeometrie + Regular Solid + Regelgeometrie - &Create - &Erstellen + &Create + &Erstellen - Alt+C - Alt+S + Alt+C + Alt+S - Cl&ose - Schl&ießen + Cl&ose + Schl&ießen - Alt+O - Alt+I + Alt+O + Alt+I - Solid: - Körper: + Solid: + Körper: - Cube - Würfel + Cube + Würfel - Cylinder - Zylinder + Cylinder + Zylinder - Cone - Kegel + Cone + Kegel - Sphere - Kugel + Sphere + Kugel - Ellipsoid - Ellipsoid + Ellipsoid + Ellipsoid - Torus - Torus + Torus + Torus - Height: - Höhe: + Height: + Höhe: - Length: - Länge: + Length: + Länge: - Width: - Breite: + Width: + Breite: - Radius: - Radius: + Radius: + Radius: - Closed - Geschlossen + Closed + Geschlossen - Sampling: - Abtastung: + Sampling: + Abtastung: - Edge length: - Kantenlänge: + Edge length: + Kantenlänge: - Radius 1: - Radius 1: + Radius 1: + Radius 1: - Radius 2: - Radius 2: + Radius 2: + Radius 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Erstelle %1 + Create %1 + Erstelle %1 - No active document - Kein aktives Dokument + No active document + Kein aktives Dokument - - + + MeshGui::DlgSettingsMeshView - Mesh view - Netz + Mesh view + Netz - Two-side rendering - Doppelseitiges Rendern + Two-side rendering + Doppelseitiges Rendern - Backface color - Untergrundfarbe + Backface color + Untergrundfarbe - Smoothing - Glättung + Smoothing + Glättung - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Das ist der kleinste Winkel zwischen zwei Dreiecken zur Berechenung beider Normalen für das Flat-Shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Falls der Winkel zweier benachbarter dreiecke kleiner als der Knitterwinkel ist, werden die Dreiecke um die gemeinsame Kante geglättet gerendert.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Das ist der kleinste Winkel zwischen zwei Dreiecken zur Berechenung beider Normalen für das Flat-Shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Falls der Winkel zweier benachbarter dreiecke kleiner als der Knitterwinkel ist, werden die Dreiecke um die gemeinsame Kante geglättet gerendert.</p></body></html> - Crease angle - Knitterwinkel + Crease angle + Knitterwinkel - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiert das Aussehen von Oberflächen.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Bei Flat-Shading werden die Flächennormalen nicht pro Vertex gesetzt, was zu unnatürlichem Aussehen führen kann, während Phong-Shading zu glatterem Aussehen führt. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Falls diese Option gesetzt ist, wird Phong-Shading verwendet, andernfalls wird Flat-Shading verwendet.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiert das Aussehen von Oberflächen.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Bei Flat-Shading werden die Flächennormalen nicht pro Vertex gesetzt, was zu unnatürlichem Aussehen führen kann, während Phong-Shading zu glatterem Aussehen führt. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Falls diese Option gesetzt ist, wird Phong-Shading verwendet, andernfalls wird Flat-Shading verwendet.</p></body></html> - Define normal per vertex - Definiere Normale pro Vertex + Define normal per vertex + Definiere Normale pro Vertex + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hinweis</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Die Angabe der Normalen per Vertex wird auch <span style=" font-style:italic;">Phong shading</span> genannt,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">während die Angabe der Normalen pro Fläche </span>Flat shading<span style=" font-style:normal;"> gennant wird.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hinweis</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Die Angabe der Normalen per Vertex wird auch <span style=" font-style:italic;">Phong shading</span> genannt,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">während die Angabe der Normalen pro Fläche </span>Flat shading<span style=" font-style:normal;"> gennant wird.</span></p></body></html> + Default appearance for new meshes + Standardmäßiges Erscheinungsbild für neue Netze - Default appearance for new meshes - Standardmäßiges Erscheinungsbild für neue Netze + Default line color + Standard-Kantenfarbe - Default line color - Standard-Kantenfarbe + Mesh transparency + Transparenz des Netzes - Mesh transparency - Transparenz des Netzes + Default mesh color + Standard-Flächenfarbe - Default mesh color - Standard-Flächenfarbe + Show bounding-box for highlighted or selected meshes + Bounding-Box für gehighlightete oder selekierte Netze anzeigen - Show bounding-box for highlighted or selected meshes - Bounding-Box für gehighlightete oder selekierte Netze anzeigen + Line transparency + Transparenz der Kanten - - Line transparency - Transparenz der Kanten - - - + + MeshGui::DlgSmoothing - Smoothing - Glättung + Smoothing + Glättung - Method - Methode + Method + Methode - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Iterationen: + Iterations: + Iterationen: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Dreieck hinzufügen + Add triangle + Dreieck hinzufügen - Flip normal - Normalen umdrehen + Flip normal + Normalen umdrehen - Clear - Löschen + Clear + Löschen - Finish - Fertig + Finish + Fertig - - + + MeshGui::RemoveComponents - Remove components - Komponenten entfernen + Remove components + Komponenten entfernen - Select - Auswählen + Select + Auswählen - Select whole component - Ganze Komponente auswählen + Select whole component + Ganze Komponente auswählen - Pick triangle - Dreieck aufnehmen + Pick triangle + Dreieck aufnehmen - < faces than - < Dreiecke als + < faces than + < Dreiecke als - Region - Bereich + Region + Bereich - Components - Komponenten + Components + Komponenten - All - Alles + All + Alles - Deselect - Auswahl aufheben + Deselect + Auswahl aufheben - Deselect whole component - Ganze Komponente abwählen + Deselect whole component + Ganze Komponente abwählen - > faces than - > Dreiecke als + > faces than + > Dreiecke als - Region options - Einstellungen + Region options + Einstellungen - Respect only triangles with normals facing screen - Nur Dreiecke mit Normalen beachten, die zum Bildschirm zeigen + Respect only triangles with normals facing screen + Nur Dreiecke mit Normalen beachten, die zum Bildschirm zeigen - Respect only visible triangles - Nur sichtbare Dreiecke berücksichtigen + Respect only visible triangles + Nur sichtbare Dreiecke berücksichtigen - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Zylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Kugel + + + MeshGui::TaskRemoveComponents - Delete - Löschen + Delete + Löschen - Invert - Umkehren + Invert + Umkehren - - + + QDockWidget - Evaluate & Repair Mesh - Netz auswerten & reparieren + Evaluate & Repair Mesh + Netz auswerten & reparieren - - + + QObject - Import mesh - Netz importieren + Import mesh + Netz importieren - Export mesh - Netz exportieren + Export mesh + Netz exportieren - Solid Mesh - Fester Körper + Solid Mesh + Fester Körper - Boundings - Abmessungen + Boundings + Abmessungen - Fill holes - Löcher schließen + Fill holes + Löcher schließen - Fill holes with maximum number of edges: - Löcher schließen mit maximaler Anzahl Kanten: + Fill holes with maximum number of edges: + Löcher schließen mit maximaler Anzahl Kanten: - Binary STL (*.stl) - Binäres STL (*.stl) + Binary STL (*.stl) + Binäres STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Netz-Binärformat (*.bms) + Binary Mesh (*.bms) + Netz-Binärformat (*.bms) - Alias Mesh (*.obj) - Alias-Format (*.obj) + Alias Mesh (*.obj) + Alias-Format (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Alle Dateien (*.*) + All Files (*.*) + Alle Dateien (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Komprimiertes VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Komprimiertes VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python-Modul (*.py) + Python module def (*.py) + Python-Modul (*.py) - Meshing Tolerance - Toleranz + Meshing Tolerance + Toleranz - Enter tolerance for meshing geometry: - Toleranz zum Erzeugen von Dreiecksnetz eingeben: + Enter tolerance for meshing geometry: + Toleranz zum Erzeugen von Dreiecksnetz eingeben: - The mesh '%1' is a solid. - Das Netz '%1' ist ein Solid. + The mesh '%1' is a solid. + Das Netz '%1' ist ein Solid. - The mesh '%1' is not a solid. - Das Netz '%1' ist kein Solid. + The mesh '%1' is not a solid. + Das Netz '%1' ist kein Solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punkte: %1, Kanten: %2 Dreiecke: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punkte: %1, Kanten: %2 Dreiecke: %3] - Leave info mode - Info-Modus verlassen + Leave info mode + Info-Modus verlassen - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Löcher-Schließen-Modus verlassen + Leave hole-filling mode + Löcher-Schließen-Modus verlassen - Leave removal mode - Entfernen-Modus verlassen + Leave removal mode + Entfernen-Modus verlassen - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Alle Mesh Formate (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Alle Mesh Formate (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Selektierte Dreiecke löschen + Delete selected faces + Selektierte Dreiecke löschen - Clear selected faces - Auswahl aufheben + Clear selected faces + Auswahl aufheben - Annotation - Anmerkung + Annotation + Anmerkung - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analysieren + Analyze + Analysieren - Boolean - Bool'sche Operationen + Boolean + Bool'sche Operationen - &Meshes - &Netze + &Meshes + &Netze - Mesh tools - Netz-Werkzeuge + Mesh tools + Netz-Werkzeuge - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_es.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_es.ts index 0faf3afc9..431366926 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_es.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_es.ts @@ -1,1120 +1,1201 @@ - - + + CmdMeshAddFacet - Mesh - Malla + Mesh + Malla - Add triangle - Añadir triángulo + Add triangle + Añadir triángulo - Add triangle manually to a mesh - Añadir triángulo manualmente a malla + Add triangle manually to a mesh + Añadir triángulo manualmente a malla - - + + CmdMeshBoundingBox - Mesh - Malla + Mesh + Malla - Boundings info... - Información de límites... + Boundings info... + Información de límites... - Shows the boundings of the selected mesh - Muestra los límites de la malla seleccionada + Shows the boundings of the selected mesh + Muestra los límites de la malla seleccionada - - + + CmdMeshBuildRegularSolid - Mesh - Malla + Mesh + Malla - Regular solid... - Sólido regular... + Regular solid... + Sólido regular... - Builds a regular solid - Crea un sólido regular + Builds a regular solid + Crea un sólido regular - - + + CmdMeshDemolding - Interactive demolding direction - Dirección de desmoldeo interactiva + Interactive demolding direction + Dirección de desmoldeo interactiva - Mesh - Malla + Mesh + Malla - - + + CmdMeshDifference - Mesh - Malla + Mesh + Malla - Difference - Diferencia + Difference + Diferencia - - + + CmdMeshEvaluateFacet - Mesh - Malla + Mesh + Malla - Face info - Información de la cara + Face info + Información de la cara - Information about face - Información de la cara + Information about face + Información de la cara - - + + CmdMeshEvaluateSolid - Mesh - Malla + Mesh + Malla - Check solid mesh - Comprobar la malla del sólido + Check solid mesh + Comprobar la malla del sólido - Checks whether the mesh is a solid - Comprueba si la malla es un sólido + Checks whether the mesh is a solid + Comprueba si la malla es un sólido - - + + CmdMeshEvaluation - Mesh - Malla + Mesh + Malla - Opens a dialog to analyze and repair a mesh - Abre un letrero de diálogo para analizar y reparar una malla + Opens a dialog to analyze and repair a mesh + Abre un letrero de diálogo para analizar y reparar una malla - Evaluate && Repair mesh... - Evaluar y reparar malla... + Evaluate && Repair mesh... + Evaluar y reparar malla... - - + + CmdMeshExMakeMesh - Mesh - Malla + Mesh + Malla - Make a Box - Hacer un cuadro + Make a Box + Hacer un cuadro - - + + CmdMeshExMakeTool - Mesh - Malla + Mesh + Malla - Make a Tool - Crea una herramienta + Make a Tool + Crea una herramienta - - + + CmdMeshExMakeUnion - Mesh - Malla + Mesh + Malla - Make Union - Crear unión + Make Union + Crear unión - - + + CmdMeshExport - Mesh - Malla + Mesh + Malla - Export mesh... - Esportar malla... + Export mesh... + Esportar malla... - Exports a mesh to file - Esporta la malla a un archivo + Exports a mesh to file + Esporta la malla a un archivo - - + + CmdMeshFillInteractiveHole - Mesh - Malla + Mesh + Malla - Close hole - Tapa agujero + Close hole + Tapa agujero - Close holes interactively - Tapa un agujero interactivamente + Close holes interactively + Tapa un agujero interactivamente - - + + CmdMeshFillupHoles - Mesh - Malla + Mesh + Malla - Fill holes... - Rellenar agujeros... + Fill holes... + Rellenar agujeros... - Fill holes of the mesh - Rellenar agujeros de la malla + Fill holes of the mesh + Rellenar agujeros de la malla - - + + CmdMeshFlipNormals - Mesh - Malla + Mesh + Malla - Flip normals - Invertir normales + Flip normals + Invertir normales - Flips the normals of the mesh - Invierte la normal de la malla + Flips the normals of the mesh + Invierte la normal de la malla - - + + CmdMeshFromGeometry - Mesh - Malla + Mesh + Malla - Create mesh from geometry... - Crea una malla a partir de la geometría... + Create mesh from geometry... + Crea una malla a partir de la geometría... - Create mesh from the selected geometry - Crea una malla a partir de la geometría seleccionada + Create mesh from the selected geometry + Crea una malla a partir de la geometría seleccionada - - + + CmdMeshHarmonizeNormals - Mesh - Malla + Mesh + Malla - Harmonize normals - Armonizar normales + Harmonize normals + Armonizar normales - Harmonizes the normals of the mesh - Armonizar las normales de la malla + Harmonizes the normals of the mesh + Armonizar las normales de la malla - - + + CmdMeshImport - Mesh - Malla + Mesh + Malla - Import mesh... - Importar malla... + Import mesh... + Importar malla... - Imports a mesh from file - Importa una malla de un archivo + Imports a mesh from file + Importa una malla de un archivo - - + + CmdMeshIntersection - Mesh - Malla + Mesh + Malla - Intersection - Intersección + Intersection + Intersección - - + + CmdMeshPolyCut - Mesh - Malla + Mesh + Malla - Cut mesh - Cortar malla + Cut mesh + Cortar malla - Cuts a mesh with a picked polygon - Corta una malla con un poligono designado + Cuts a mesh with a picked polygon + Corta una malla con un poligono designado - - + + CmdMeshPolySegm - Mesh - Malla + Mesh + Malla - Make segment - Hacer segmento + Make segment + Hacer segmento - Creates a mesh segment - Crea un segmento de la malla + Creates a mesh segment + Crea un segmento de la malla - - + + CmdMeshPolySelect - Mesh - Malla + Mesh + Malla - Select mesh - Seleccionar malla + Select mesh + Seleccionar malla - Select an area of the mesh - Seleccionar un área de la malla + Select an area of the mesh + Seleccionar un área de la malla - - + + CmdMeshPolySplit - Mesh - Malla + Mesh + Malla - Split mesh - Dividir malla + Split mesh + Dividir malla - Splits a mesh into two meshes - Divide la malla en dos + Splits a mesh into two meshes + Divide la malla en dos - - + + + CmdMeshPolyTrim + + Mesh + Malla + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Malla + Mesh + Malla - Remove components by hand... - Eliminar componentes a mano... + Remove components by hand... + Eliminar componentes a mano... - Mark a component to remove it from the mesh - Marcar un componente para eliminarlo de la malla + Mark a component to remove it from the mesh + Marcar un componente para eliminarlo de la malla - - + + CmdMeshRemoveComponents - Mesh - Malla + Mesh + Malla - Remove components... - Eliminar componentes... + Remove components... + Eliminar componentes... - Remove topologic independent components from the mesh - Eliminar componentes topológicos independientes de la malla + Remove topologic independent components from the mesh + Eliminar componentes topológicos independientes de la malla - - + + + CmdMeshSegmentation + + Mesh + Malla + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Malla + Mesh + Malla - Smooth... - Suavizar... + Smooth... + Suavizar... - Smooth the selected meshes - Suaviza las mallas seleccionadas + Smooth the selected meshes + Suaviza las mallas seleccionadas - - + + CmdMeshToolMesh - Mesh - Malla + Mesh + Malla - Segment by tool mesh - Segmento de la herramienta de malla + Segment by tool mesh + Segmento de la herramienta de malla - Creates a segment from a given tool mesh - Crea un segmento desde una herramienta de malla dada + Creates a segment from a given tool mesh + Crea un segmento desde una herramienta de malla dada - - + + CmdMeshTransform - Mesh - Malla + Mesh + Malla - Transform mesh - Trasformar malla + Transform mesh + Trasformar malla - Rotate or move a mesh - Rotar o mover malla + Rotate or move a mesh + Rotar o mover malla - - + + CmdMeshUnion - Mesh - Malla + Mesh + Malla - Union - Unión + Union + Unión - - + + CmdMeshVertexCurvature - Mesh - Malla + Mesh + Malla - Calculates the curvature of the vertices of a mesh - Calcula la curvatura de los vértices de una malla + Calculates the curvature of the vertices of a mesh + Calcula la curvatura de los vértices de una malla - Curvature plot - Traza la curvatura + Curvature plot + Traza la curvatura - - + + CmdMeshVertexCurvatureInfo - Mesh - Malla + Mesh + Malla - Curvature info - Información de la curvatura + Curvature info + Información de la curvatura - Information about curvature - Información de la curvatura + Information about curvature + Información de la curvatura - - + + MeshGui::DlgEvaluateMesh - &Help - &Ayuda + &Help + &Ayuda - F1 - F1 + F1 + F1 - &Close - &Cerrar + &Close + &Cerrar - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Información de la malla + Mesh information + Información de la malla - No information - Ninguna información + No information + Ninguna información - Number of points: - Número de puntos: + Number of points: + Número de puntos: - Number of edges: - Número de bordes: + Number of edges: + Número de bordes: - Refresh - Actualizar + Refresh + Actualizar - Analyze - Analizar + Analyze + Analizar - Repair - Reparar + Repair + Reparar - Orientation - Orientación + Orientation + Orientación - Degenerated faces - Caras degeneradas + Degenerated faces + Caras degeneradas - Face indices - Ãndices de cara + Face indices + Ãndices de cara - Number of faces: - Número de caras: + Number of faces: + Número de caras: - Duplicated faces - Caras duplicadas + Duplicated faces + Caras duplicadas - Duplicated points - Puntos duplicados + Duplicated points + Puntos duplicados - Non-manifolds - No multiplicidad + Non-manifolds + No multiplicidad - Self-intersections - Autointersecciones + Self-intersections + Autointersecciones - All above tests together - Todo sobre los test + All above tests together + Todo sobre los test - Repetitive repair - Reparación repetitiva + Repetitive repair + Reparación repetitiva - Evaluate & Repair Mesh - Evaluar y reparar malla + Evaluate & Repair Mesh + Evaluar y reparar malla - Folds on surface - Pliegues en superficie + Folds on surface + Pliegues en superficie - - + + MeshGui::DlgEvaluateMeshImp - No information - Ninguna información + No information + Ninguna información - Invalid neighbour indices - Ãndices vecinos inválidos + Invalid neighbour indices + Ãndices vecinos inválidos - Invalid face indices - índices de cara inválidos + Invalid face indices + índices de cara inválidos - Invalid point indices - Ãndices de puntos inválidos + Invalid point indices + Ãndices de puntos inválidos - Multiple point indices - índices de punto múltiples + Multiple point indices + índices de punto múltiples - Non-manifolds - No multiplicidad + Non-manifolds + No multiplicidad - Cannot remove non-manifolds - No es posible quitar la no multiplicidad + Cannot remove non-manifolds + No es posible quitar la no multiplicidad - No selection - Ninguna selección + No selection + Ninguna selección - No flipped normals - Ninguna normal invertida + No flipped normals + Ninguna normal invertida - %1 flipped normals - %1 normales invertidas + %1 flipped normals + %1 normales invertidas - No non-manifolds - Ninguna no multiplicidad + No non-manifolds + Ninguna no multiplicidad - %1 non-manifolds - %1 no multiplicidad + %1 non-manifolds + %1 no multiplicidad - No invalid indices - Ningún índice inválido + No invalid indices + Ningún índice inválido - No degenerations - ninguna degeneración + No degenerations + ninguna degeneración - %1 degenerated faces - %1 caras degeneradas + %1 degenerated faces + %1 caras degeneradas - No duplicated faces - Ninguna cara duplicada + No duplicated faces + Ninguna cara duplicada - %1 duplicated faces - %1 caras duplicadas + %1 duplicated faces + %1 caras duplicadas - No duplicated points - Ningún punto duplicado + No duplicated points + Ningún punto duplicado - Duplicated points - Puntos duplicados + Duplicated points + Puntos duplicados - Orientation - Orientación + Orientation + Orientación - Indices - Ãndices + Indices + Ãndices - Degenerations - Degeneraciones + Degenerations + Degeneraciones - Duplicated faces - Caras duplicadas + Duplicated faces + Caras duplicadas - No self-intersections - Ninguna autointersección + No self-intersections + Ninguna autointersección - Self-intersections - Autointersecciones + Self-intersections + Autointersecciones - Mesh repair - Reparación de malla + Mesh repair + Reparación de malla - Flipped normals found - Normales invertidas encontradas + Flipped normals found + Normales invertidas encontradas - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - La comprobación falló debido a pliegues en la superficie. Vuelva a ejecutar el comando para reparar los pliegues primero + La comprobación falló debido a pliegues en la superficie. Vuelva a ejecutar el comando para reparar los pliegues primero - No folds on surface - No hay pliegues en superficie + No folds on surface + No hay pliegues en superficie - %1 folds on surface - %1 pliegues en superficie + %1 folds on surface + %1 pliegues en superficie - Folds - Pliegues + Folds + Pliegues - - + + MeshGui::DlgRegularSolid - Regular Solid - Sólido regular + Regular Solid + Sólido regular - &Create - &Crear + &Create + &Crear - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - &Cerrar + Cl&ose + &Cerrar - Alt+O - ALT+O + Alt+O + ALT+O - Solid: - Sólido: + Solid: + Sólido: - Cube - Cubo + Cube + Cubo - Cylinder - Cilindro + Cylinder + Cilindro - Cone - Cono + Cone + Cono - Sphere - Esféra + Sphere + Esféra - Ellipsoid - Elipsoide + Ellipsoid + Elipsoide - Torus - Toro + Torus + Toro - Height: - Altura: + Height: + Altura: - Length: - Longitud: + Length: + Longitud: - Width: - Ancho: + Width: + Ancho: - Radius: - Radio: + Radius: + Radio: - Closed - Cerrado + Closed + Cerrado - Sampling: - Muestreo: + Sampling: + Muestreo: - Edge length: - Longitud de borde: + Edge length: + Longitud de borde: - Radius 1: - Radio 1: + Radius 1: + Radio 1: - Radius 2: - Radio 2: + Radius 2: + Radio 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Crear %1 + Create %1 + Crear %1 - No active document - Ningún documento activo + No active document + Ningún documento activo - - + + MeshGui::DlgSettingsMeshView - Mesh view - Vista de malla + Mesh view + Vista de malla - Two-side rendering - Renderizado a dos caras + Two-side rendering + Renderizado a dos caras - Backface color - Color de la cara posterior + Backface color + Color de la cara posterior - Smoothing - Suavizado + Smoothing + Suavizado - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Este bes el menor ángulo entre dos caras donde las normales son calculadas para hacer un sombreado plano.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si el ángulo entre las normales de dos caras vecinas es menor que el ángulo de pliegue, las caras serán suavizadas por su borde común.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Este bes el menor ángulo entre dos caras donde las normales son calculadas para hacer un sombreado plano.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si el ángulo entre las normales de dos caras vecinas es menor que el ángulo de pliegue, las caras serán suavizadas por su borde común.</p></body></html> - Crease angle - Ãngulo de pliegue + Crease angle + Ãngulo de pliegue - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Sombreado plano/Sombreado Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Define la apariencia de las superficies.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Con sombreado plano las normales de las superficies no están definidas por vértice lo que lleva a una apariencia no real para superficies curvas mientras que usando el sombreado Phong se consigue una apariencia más suave. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si esta opción está definida se utiliza el sombreado Phong, si no está activada se utiliza el sombreado plano.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Sombreado plano/Sombreado Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Define la apariencia de las superficies.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Con sombreado plano las normales de las superficies no están definidas por vértice lo que lleva a una apariencia no real para superficies curvas mientras que usando el sombreado Phong se consigue una apariencia más suave. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si esta opción está definida se utiliza el sombreado Phong, si no está activada se utiliza el sombreado plano.</p></body></html> - Define normal per vertex - Definir la normal por vértice + Define normal per vertex + Definir la normal por vértice + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiendo las normales por vértice también se llama <span style=" font-style:italic;">Sombreado Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mientras definiendo las normales por cara se llama </span>Sombreado plano<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiendo las normales por vértice también se llama <span style=" font-style:italic;">Sombreado Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mientras definiendo las normales por cara se llama </span>Sombreado plano<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Apariencia predeterminada para nuevas mallas - Default appearance for new meshes - Apariencia predeterminada para nuevas mallas + Default line color + Color de línea predeterminado - Default line color - Color de línea predeterminado + Mesh transparency + Transparencia de malla - Mesh transparency - Transparencia de malla + Default mesh color + Color de malla predeterminado - Default mesh color - Color de malla predeterminado + Show bounding-box for highlighted or selected meshes + Mostrar cuadro delimitador para mallas resaltadas o seleccionadas - Show bounding-box for highlighted or selected meshes - Mostrar cuadro delimitador para mallas resaltadas o seleccionadas + Line transparency + Transparencia de línea - - Line transparency - Transparencia de línea - - - + + MeshGui::DlgSmoothing - Smoothing - Suavizado + Smoothing + Suavizado - Method - Método + Method + Método - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parámetro + Parameter + Parámetro - Iterations: - Iteraciones: + Iterations: + Iteraciones: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Añadir triángulo + Add triangle + Añadir triángulo - Flip normal - Invertir normal + Flip normal + Invertir normal - Clear - Borrar + Clear + Borrar - Finish - Finalizar + Finish + Finalizar - - + + MeshGui::RemoveComponents - Remove components - Eliminar componentes + Remove components + Eliminar componentes - Select - Seleccionar + Select + Seleccionar - Select whole component - Seleccionar componente entero + Select whole component + Seleccionar componente entero - Pick triangle - Elija triángulo + Pick triangle + Elija triángulo - < faces than - < nº de caras que + < faces than + < nº de caras que - Region - Región + Region + Región - Components - Componentes + Components + Componentes - All - Todo + All + Todo - Deselect - Deseleccionar + Deselect + Deseleccionar - Deselect whole component - Deseleccionar componente entero + Deselect whole component + Deseleccionar componente entero - > faces than - > nº caras que + > faces than + > nº caras que - Region options - Opciones de región + Region options + Opciones de región - Respect only triangles with normals facing screen - Únicamente respecto a triángulos con las normales frente a pantalla + Respect only triangles with normals facing screen + Únicamente respecto a triángulos con las normales frente a pantalla - Respect only visible triangles - ünicamente respecto a triángulos visibles + Respect only visible triangles + ünicamente respecto a triángulos visibles - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cilindro + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Esféra + + + MeshGui::TaskRemoveComponents - Delete - Eliminar + Delete + Eliminar - Invert - Invertir + Invert + Invertir - - + + QDockWidget - Evaluate & Repair Mesh - Evaluar y reparar malla + Evaluate & Repair Mesh + Evaluar y reparar malla - - + + QObject - Import mesh - Importar malla + Import mesh + Importar malla - Export mesh - Esportar malla + Export mesh + Esportar malla - Solid Mesh - Mallado sólido + Solid Mesh + Mallado sólido - Boundings - Límites + Boundings + Límites - Fill holes - Rellenar agujeros + Fill holes + Rellenar agujeros - Fill holes with maximum number of edges: - Rellena los agujeros con número máximo de bordes: + Fill holes with maximum number of edges: + Rellena los agujeros con número máximo de bordes: - Binary STL (*.stl) - STL binario (*.stl) + Binary STL (*.stl) + STL binario (*.stl) - ASCII STL (*.ast) - STL ASCII(*.ast) + ASCII STL (*.ast) + STL ASCII(*.ast) - Binary Mesh (*.bms) - Malla-Binario (*.bms) + Binary Mesh (*.bms) + Malla-Binario (*.bms) - Alias Mesh (*.obj) - Alias malla (*.obj) + Alias Mesh (*.obj) + Alias malla (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii(*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii(*.iv) - All Files (*.*) - Todos los archivos (*.*) + All Files (*.*) + Todos los archivos (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0(*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0(*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - VRML 2.0 Comprimido (*.wrz) + Compressed VRML 2.0 (*.wrz) + VRML 2.0 Comprimido (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Definición de Modulo Python (*.py) + Python module def (*.py) + Definición de Modulo Python (*.py) - Meshing Tolerance - Tolerancia de mallado + Meshing Tolerance + Tolerancia de mallado - Enter tolerance for meshing geometry: - Introduzca la tolerancia para la geometría de mallado: + Enter tolerance for meshing geometry: + Introduzca la tolerancia para la geometría de mallado: - The mesh '%1' is a solid. - La malla '%1' es un sólido. + The mesh '%1' is a solid. + La malla '%1' es un sólido. - The mesh '%1' is not a solid. - La malla '%1' no es un sólido. + The mesh '%1' is not a solid. + La malla '%1' no es un sólido. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Mín=<%1,%2,%3> Máx=<%4,%5,%6> + Mín=<%1,%2,%3> Máx=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Puntos: %1, Bordes: %2 Caras: %3] + [Points: %1, Edges: %2 Faces: %3] + [Puntos: %1, Bordes: %2 Caras: %3] - Leave info mode - Permitir modo info + Leave info mode + Permitir modo info - Index: %1 - Ãndice: %1 + Index: %1 + Ãndice: %1 - Leave hole-filling mode - Permitir modo de rellenado de agujeros + Leave hole-filling mode + Permitir modo de rellenado de agujeros - Leave removal mode - Permitir modo de eliminación + Leave removal mode + Permitir modo de eliminación - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Todos los archivos de malla (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Todos los archivos de malla (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Standford Polygon(*.ply) + Stanford Polygon (*.ply) + Standford Polygon(*.ply) - Object File Format (*.off) - Object File Format(*.off) + Object File Format (*.off) + Object File Format(*.off) - Standford Polygon (*.ply) - Standford Polygon(*.ply) + Standford Polygon (*.ply) + Standford Polygon(*.ply) - Delete selected faces - Eliminar caras seleccionadas + Delete selected faces + Eliminar caras seleccionadas - Clear selected faces - Borrar caras seleccionadas + Clear selected faces + Borrar caras seleccionadas - Annotation - Anotación + Annotation + Anotación - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analizar + Analyze + Analizar - Boolean - Booleano + Boolean + Booleano - &Meshes - &Malla + &Meshes + &Malla - Mesh tools - Herramientas de malla + Mesh tools + Herramientas de malla - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fi.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fi.ts index b52f7d42b..413e9ac04 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fi.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fi.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Mesh + Mesh + Mesh - Add triangle - Add triangle + Add triangle + Add triangle - Add triangle manually to a mesh - Add triangle manually to a mesh + Add triangle manually to a mesh + Add triangle manually to a mesh - - + + CmdMeshBoundingBox - Mesh - Mesh + Mesh + Mesh - Boundings info... - Boundings info... + Boundings info... + Boundings info... - Shows the boundings of the selected mesh - Shows the boundings of the selected mesh + Shows the boundings of the selected mesh + Shows the boundings of the selected mesh - - + + CmdMeshBuildRegularSolid - Mesh - Mesh + Mesh + Mesh - Regular solid... - Regular solid... + Regular solid... + Regular solid... - Builds a regular solid - Builds a regular solid + Builds a regular solid + Builds a regular solid - - + + CmdMeshDemolding - Interactive demolding direction - Interactive demolding direction + Interactive demolding direction + Interactive demolding direction - Mesh - Mesh + Mesh + Mesh - - + + CmdMeshDifference - Mesh - Mesh + Mesh + Mesh - Difference - Difference + Difference + Difference - - + + CmdMeshEvaluateFacet - Mesh - Mesh + Mesh + Mesh - Face info - Face info + Face info + Face info - Information about face - Information about face + Information about face + Information about face - - + + CmdMeshEvaluateSolid - Mesh - Mesh + Mesh + Mesh - Check solid mesh - Check solid mesh + Check solid mesh + Check solid mesh - Checks whether the mesh is a solid - Checks whether the mesh is a solid + Checks whether the mesh is a solid + Checks whether the mesh is a solid - - + + CmdMeshEvaluation - Mesh - Mesh + Mesh + Mesh - Opens a dialog to analyze and repair a mesh - Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh - Evaluate && Repair mesh... - Evaluate && Repair mesh... + Evaluate && Repair mesh... + Evaluate && Repair mesh... - - + + CmdMeshExMakeMesh - Mesh - Mesh + Mesh + Mesh - Make a Box - Make a Box + Make a Box + Make a Box - - + + CmdMeshExMakeTool - Mesh - Mesh + Mesh + Mesh - Make a Tool - Make a Tool + Make a Tool + Make a Tool - - + + CmdMeshExMakeUnion - Mesh - Mesh + Mesh + Mesh - Make Union - Make Union + Make Union + Make Union - - + + CmdMeshExport - Mesh - Mesh + Mesh + Mesh - Export mesh... - Export mesh... + Export mesh... + Export mesh... - Exports a mesh to file - Exports a mesh to file + Exports a mesh to file + Exports a mesh to file - - + + CmdMeshFillInteractiveHole - Mesh - Mesh + Mesh + Mesh - Close hole - Close hole + Close hole + Close hole - Close holes interactively - Close holes interactively + Close holes interactively + Close holes interactively - - + + CmdMeshFillupHoles - Mesh - Mesh + Mesh + Mesh - Fill holes... - Fill holes... + Fill holes... + Fill holes... - Fill holes of the mesh - Fill holes of the mesh + Fill holes of the mesh + Fill holes of the mesh - - + + CmdMeshFlipNormals - Mesh - Mesh + Mesh + Mesh - Flip normals - Flip normals + Flip normals + Flip normals - Flips the normals of the mesh - Flips the normals of the mesh + Flips the normals of the mesh + Flips the normals of the mesh - - + + CmdMeshFromGeometry - Mesh - Mesh + Mesh + Mesh - Create mesh from geometry... - Create mesh from geometry... + Create mesh from geometry... + Create mesh from geometry... - Create mesh from the selected geometry - Create mesh from the selected geometry + Create mesh from the selected geometry + Create mesh from the selected geometry - - + + CmdMeshHarmonizeNormals - Mesh - Mesh + Mesh + Mesh - Harmonize normals - Harmonize normals + Harmonize normals + Harmonize normals - Harmonizes the normals of the mesh - Harmonizes the normals of the mesh + Harmonizes the normals of the mesh + Harmonizes the normals of the mesh - - + + CmdMeshImport - Mesh - Mesh + Mesh + Mesh - Import mesh... - Import mesh... + Import mesh... + Import mesh... - Imports a mesh from file - Imports a mesh from file + Imports a mesh from file + Imports a mesh from file - - + + CmdMeshIntersection - Mesh - Mesh + Mesh + Mesh - Intersection - Intersection + Intersection + Intersection - - + + CmdMeshPolyCut - Mesh - Mesh + Mesh + Mesh - Cut mesh - Cut mesh + Cut mesh + Cut mesh - Cuts a mesh with a picked polygon - Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon - - + + CmdMeshPolySegm - Mesh - Mesh + Mesh + Mesh - Make segment - Make segment + Make segment + Make segment - Creates a mesh segment - Creates a mesh segment + Creates a mesh segment + Creates a mesh segment - - + + CmdMeshPolySelect - Mesh - Mesh + Mesh + Mesh - Select mesh - Select mesh + Select mesh + Select mesh - Select an area of the mesh - Select an area of the mesh + Select an area of the mesh + Select an area of the mesh - - + + CmdMeshPolySplit - Mesh - Mesh + Mesh + Mesh - Split mesh - Split mesh + Split mesh + Split mesh - Splits a mesh into two meshes - Splits a mesh into two meshes + Splits a mesh into two meshes + Splits a mesh into two meshes - - + + + CmdMeshPolyTrim + + Mesh + Mesh + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mesh + Mesh + Mesh - Remove components by hand... - Remove components by hand... + Remove components by hand... + Remove components by hand... - Mark a component to remove it from the mesh - Mark a component to remove it from the mesh + Mark a component to remove it from the mesh + Mark a component to remove it from the mesh - - + + CmdMeshRemoveComponents - Mesh - Mesh + Mesh + Mesh - Remove components... - Remove components... + Remove components... + Remove components... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Mesh + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mesh + Mesh + Mesh - Smooth... - Smooth... + Smooth... + Smooth... - Smooth the selected meshes - Smooth the selected meshes + Smooth the selected meshes + Smooth the selected meshes - - + + CmdMeshToolMesh - Mesh - Mesh + Mesh + Mesh - Segment by tool mesh - Segment by tool mesh + Segment by tool mesh + Segment by tool mesh - Creates a segment from a given tool mesh - Creates a segment from a given tool mesh + Creates a segment from a given tool mesh + Creates a segment from a given tool mesh - - + + CmdMeshTransform - Mesh - Mesh + Mesh + Mesh - Transform mesh - Transform mesh + Transform mesh + Transform mesh - Rotate or move a mesh - Rotate or move a mesh + Rotate or move a mesh + Rotate or move a mesh - - + + CmdMeshUnion - Mesh - Mesh + Mesh + Mesh - Union - Union + Union + Union - - + + CmdMeshVertexCurvature - Mesh - Mesh + Mesh + Mesh - Calculates the curvature of the vertices of a mesh - Calculates the curvature of the vertices of a mesh + Calculates the curvature of the vertices of a mesh + Calculates the curvature of the vertices of a mesh - Curvature plot - Curvature plot + Curvature plot + Curvature plot - - + + CmdMeshVertexCurvatureInfo - Mesh - Mesh + Mesh + Mesh - Curvature info - Curvature info + Curvature info + Curvature info - Information about curvature - Information about curvature + Information about curvature + Information about curvature - - + + MeshGui::DlgEvaluateMesh - &Help - &Ohje + &Help + &Ohje - F1 - F1 + F1 + F1 - &Close - &Close + &Close + &Close - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Mesh information + Mesh information + Mesh information - No information - No information + No information + No information - Number of points: - Number of points: + Number of points: + Number of points: - Number of edges: - Number of edges: + Number of edges: + Number of edges: - Refresh - Päivitä + Refresh + Päivitä - Analyze - Analyze + Analyze + Analyze - Repair - Repair + Repair + Repair - Orientation - Orientation + Orientation + Orientation - Degenerated faces - Degenerated faces + Degenerated faces + Degenerated faces - Face indices - Face indices + Face indices + Face indices - Number of faces: - Number of faces: + Number of faces: + Number of faces: - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - Self-intersections + Self-intersections + Self-intersections - All above tests together - All above tests together + All above tests together + All above tests together - Repetitive repair - Repetitive repair + Repetitive repair + Repetitive repair - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - Folds on surface - Folds on surface + Folds on surface + Folds on surface - - + + MeshGui::DlgEvaluateMeshImp - No information - No information + No information + No information - Invalid neighbour indices - Invalid neighbour indices + Invalid neighbour indices + Invalid neighbour indices - Invalid face indices - Invalid face indices + Invalid face indices + Invalid face indices - Invalid point indices - Invalid point indices + Invalid point indices + Invalid point indices - Multiple point indices - Multiple point indices + Multiple point indices + Multiple point indices - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Cannot remove non-manifolds + Cannot remove non-manifolds + Cannot remove non-manifolds - No selection - No selection + No selection + No selection - No flipped normals - No flipped normals + No flipped normals + No flipped normals - %1 flipped normals - %1 flipped normals + %1 flipped normals + %1 flipped normals - No non-manifolds - No non-manifolds + No non-manifolds + No non-manifolds - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - No invalid indices + No invalid indices + No invalid indices - No degenerations - No degenerations + No degenerations + No degenerations - %1 degenerated faces - %1 degenerated faces + %1 degenerated faces + %1 degenerated faces - No duplicated faces - No duplicated faces + No duplicated faces + No duplicated faces - %1 duplicated faces - %1 duplicated faces + %1 duplicated faces + %1 duplicated faces - No duplicated points - No duplicated points + No duplicated points + No duplicated points - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Orientation - Orientation + Orientation + Orientation - Indices - Indices + Indices + Indices - Degenerations - Degenerations + Degenerations + Degenerations - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - No self-intersections - No self-intersections + No self-intersections + No self-intersections - Self-intersections - Self-intersections + Self-intersections + Self-intersections - Mesh repair - Mesh repair + Mesh repair + Mesh repair - Flipped normals found - Flipped normals found + Flipped normals found + Flipped normals found - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - No folds on surface - No folds on surface + No folds on surface + No folds on surface - %1 folds on surface - %1 folds on surface + %1 folds on surface + %1 folds on surface - Folds - Folds + Folds + Folds - - + + MeshGui::DlgRegularSolid - Regular Solid - Regular Solid + Regular Solid + Regular Solid - &Create - &Create + &Create + &Create - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Sulje + Cl&ose + Sulje - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solid: + Solid: + Solid: - Cube - Cube + Cube + Cube - Cylinder - Cylinder + Cylinder + Cylinder - Cone - Cone + Cone + Cone - Sphere - Sphere + Sphere + Sphere - Ellipsoid - Ellipsoid + Ellipsoid + Ellipsoid - Torus - Torus + Torus + Torus - Height: - Height: + Height: + Height: - Length: - Length: + Length: + Length: - Width: - Width: + Width: + Width: - Radius: - Radius: + Radius: + Radius: - Closed - Closed + Closed + Closed - Sampling: - Sampling: + Sampling: + Sampling: - Edge length: - Edge length: + Edge length: + Edge length: - Radius 1: - Radius 1: + Radius 1: + Radius 1: - Radius 2: - Radius 2: + Radius 2: + Radius 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Create %1 + Create %1 + Create %1 - No active document - No active document + No active document + No active document - - + + MeshGui::DlgSettingsMeshView - Mesh view - Mesh view + Mesh view + Mesh view - Two-side rendering - Two-side rendering + Two-side rendering + Two-side rendering - Backface color - Backface color + Backface color + Backface color - Smoothing - Smoothing + Smoothing + Smoothing - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Crease angle + Crease angle + Crease angle - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Define normal per vertex + Define normal per vertex + Define normal per vertex + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Default appearance for new meshes - Default appearance for new meshes - Default appearance for new meshes + Default line color + Default line color - Default line color - Default line color + Mesh transparency + Mesh transparency - Mesh transparency - Mesh transparency + Default mesh color + Default mesh color - Default mesh color - Default mesh color + Show bounding-box for highlighted or selected meshes + Show bounding-box for highlighted or selected meshes - Show bounding-box for highlighted or selected meshes - Show bounding-box for highlighted or selected meshes + Line transparency + Line transparency - - Line transparency - Line transparency - - - + + MeshGui::DlgSmoothing - Smoothing - Smoothing + Smoothing + Smoothing - Method - Method + Method + Method - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Iterations: + Iterations: + Iterations: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Add triangle + Add triangle + Add triangle - Flip normal - Flip normal + Flip normal + Flip normal - Clear - Tyhjennä + Clear + Tyhjennä - Finish - Valmis + Finish + Valmis - - + + MeshGui::RemoveComponents - Remove components - Remove components + Remove components + Remove components - Select - Valitse + Select + Valitse - Select whole component - Select whole component + Select whole component + Select whole component - Pick triangle - Pick triangle + Pick triangle + Pick triangle - < faces than - < faces than + < faces than + < faces than - Region - Region + Region + Region - Components - Components + Components + Components - All - All + All + All - Deselect - Deselect + Deselect + Deselect - Deselect whole component - Deselect whole component + Deselect whole component + Deselect whole component - > faces than - > faces than + > faces than + > faces than - Region options - Region options + Region options + Region options - Respect only triangles with normals facing screen - Respect only triangles with normals facing screen + Respect only triangles with normals facing screen + Respect only triangles with normals facing screen - Respect only visible triangles - Respect only visible triangles + Respect only visible triangles + Respect only visible triangles - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sphere + + + MeshGui::TaskRemoveComponents - Delete - Poista + Delete + Poista - Invert - Invert + Invert + Invert - - + + QDockWidget - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - - + + QObject - Import mesh - Import mesh + Import mesh + Import mesh - Export mesh - Export mesh + Export mesh + Export mesh - Solid Mesh - Solid Mesh + Solid Mesh + Solid Mesh - Boundings - Boundings + Boundings + Boundings - Fill holes - Fill holes + Fill holes + Fill holes - Fill holes with maximum number of edges: - Fill holes with maximum number of edges: + Fill holes with maximum number of edges: + Fill holes with maximum number of edges: - Binary STL (*.stl) - Binary STL (*.stl) + Binary STL (*.stl) + Binary STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Binary Mesh (*.bms) + Binary Mesh (*.bms) + Binary Mesh (*.bms) - Alias Mesh (*.obj) - Alias Mesh (*.obj) + Alias Mesh (*.obj) + Alias Mesh (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Kaikki tiedostot (*.*) + All Files (*.*) + Kaikki tiedostot (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Compressed VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python module def (*.py) + Python module def (*.py) + Python module def (*.py) - Meshing Tolerance - Meshing Tolerance + Meshing Tolerance + Meshing Tolerance - Enter tolerance for meshing geometry: - Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: - The mesh '%1' is a solid. - The mesh '%1' is a solid. + The mesh '%1' is a solid. + The mesh '%1' is a solid. - The mesh '%1' is not a solid. - The mesh '%1' is not a solid. + The mesh '%1' is not a solid. + The mesh '%1' is not a solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] - Leave info mode - Leave info mode + Leave info mode + Leave info mode - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Leave hole-filling mode + Leave hole-filling mode + Leave hole-filling mode - Leave removal mode - Leave removal mode + Leave removal mode + Leave removal mode - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Delete selected faces + Delete selected faces + Delete selected faces - Clear selected faces - Clear selected faces + Clear selected faces + Clear selected faces - Annotation - Annotation + Annotation + Annotation - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analyze + Analyze + Analyze - Boolean - Boolean + Boolean + Boolean - &Meshes - &Meshes + &Meshes + &Meshes - Mesh tools - Mesh tools + Mesh tools + Mesh tools - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts index 9f52b365d..f8ba8ba46 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_fr.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Maillage + Mesh + Maillage - Add triangle - Ajouter un triangle + Add triangle + Ajouter un triangle - Add triangle manually to a mesh - Ajouter manuellement un triangle à une maille + Add triangle manually to a mesh + Ajouter manuellement un triangle à une maille - - + + CmdMeshBoundingBox - Mesh - Maillage + Mesh + Maillage - Boundings info... - Dimensions extérieures... + Boundings info... + Dimensions extérieures... - Shows the boundings of the selected mesh - Affiche les dimensions englobantes du maillage sélectionné + Shows the boundings of the selected mesh + Affiche les dimensions englobantes du maillage sélectionné - - + + CmdMeshBuildRegularSolid - Mesh - Maillage + Mesh + Maillage - Regular solid... - Solide régulier... + Regular solid... + Solide régulier... - Builds a regular solid - Construire un solide régulier + Builds a regular solid + Construire un solide régulier - - + + CmdMeshDemolding - Interactive demolding direction - Direction de démoulage interactive + Interactive demolding direction + Direction de démoulage interactive - Mesh - Maillage + Mesh + Maillage - - + + CmdMeshDifference - Mesh - Maillage + Mesh + Maillage - Difference - Différence + Difference + Différence - - + + CmdMeshEvaluateFacet - Mesh - Maillage + Mesh + Maillage - Face info - Infos sur la face + Face info + Infos sur la face - Information about face - Informations sur la face + Information about face + Informations sur la face - - + + CmdMeshEvaluateSolid - Mesh - Maillage + Mesh + Maillage - Check solid mesh - Vérifier le maillage solide + Check solid mesh + Vérifier le maillage solide - Checks whether the mesh is a solid - Vérifie si le maillage est un solide + Checks whether the mesh is a solid + Vérifie si le maillage est un solide - - + + CmdMeshEvaluation - Mesh - Maillage + Mesh + Maillage - Opens a dialog to analyze and repair a mesh - Ouvre une fenêtre permettant d'analyser et de réparer un maillage + Opens a dialog to analyze and repair a mesh + Ouvre une fenêtre permettant d'analyser et de réparer un maillage - Evaluate && Repair mesh... - Évaluer et réparer un maillage... + Evaluate && Repair mesh... + Évaluer et réparer un maillage... - - + + CmdMeshExMakeMesh - Mesh - Maillage + Mesh + Maillage - Make a Box - Créer un cube + Make a Box + Créer un cube - - + + CmdMeshExMakeTool - Mesh - Maillage + Mesh + Maillage - Make a Tool - Créer un outil + Make a Tool + Créer un outil - - + + CmdMeshExMakeUnion - Mesh - Maillage + Mesh + Maillage - Make Union - Union + Make Union + Union - - + + CmdMeshExport - Mesh - Maillage + Mesh + Maillage - Export mesh... - Exporter le maillage... + Export mesh... + Exporter le maillage... - Exports a mesh to file - Exporte le maillage dans un fichier + Exports a mesh to file + Exporte le maillage dans un fichier - - + + CmdMeshFillInteractiveHole - Mesh - Maillage + Mesh + Maillage - Close hole - Boucher un trou + Close hole + Boucher un trou - Close holes interactively - Bouche un trou de manière interactive + Close holes interactively + Bouche un trou de manière interactive - - + + CmdMeshFillupHoles - Mesh - Maillage + Mesh + Maillage - Fill holes... - Remplir les trous... + Fill holes... + Remplir les trous... - Fill holes of the mesh - Remplit un trou de manière interactive + Fill holes of the mesh + Remplit un trou de manière interactive - - + + CmdMeshFlipNormals - Mesh - Maillage + Mesh + Maillage - Flip normals - Inverser les normales + Flip normals + Inverser les normales - Flips the normals of the mesh - Inverse les normales du maillage + Flips the normals of the mesh + Inverse les normales du maillage - - + + CmdMeshFromGeometry - Mesh - Maillage + Mesh + Maillage - Create mesh from geometry... - Créer un maillage depuis une géométrie... + Create mesh from geometry... + Créer un maillage depuis une géométrie... - Create mesh from the selected geometry - Crée un maillage à partir de la géométrie sélectionnée + Create mesh from the selected geometry + Crée un maillage à partir de la géométrie sélectionnée - - + + CmdMeshHarmonizeNormals - Mesh - Maillage + Mesh + Maillage - Harmonize normals - Harmoniser les normales + Harmonize normals + Harmoniser les normales - Harmonizes the normals of the mesh - Harmonise les normales du maillage + Harmonizes the normals of the mesh + Harmonise les normales du maillage - - + + CmdMeshImport - Mesh - Maillage + Mesh + Maillage - Import mesh... - Importer un maillage... + Import mesh... + Importer un maillage... - Imports a mesh from file - Importe un maillage depuis un fichier + Imports a mesh from file + Importe un maillage depuis un fichier - - + + CmdMeshIntersection - Mesh - Maillage + Mesh + Maillage - Intersection - Intersection + Intersection + Intersection - - + + CmdMeshPolyCut - Mesh - Maillage + Mesh + Maillage - Cut mesh - Couper le maillage + Cut mesh + Couper le maillage - Cuts a mesh with a picked polygon - Coupe un maillage à l'aide du polygone sélectionné + Cuts a mesh with a picked polygon + Coupe un maillage à l'aide du polygone sélectionné - - + + CmdMeshPolySegm - Mesh - Maillage + Mesh + Maillage - Make segment - Créer un segment + Make segment + Créer un segment - Creates a mesh segment - Crée un segment de maillage + Creates a mesh segment + Crée un segment de maillage - - + + CmdMeshPolySelect - Mesh - Maillage + Mesh + Maillage - Select mesh - Sélectionnez un maillage + Select mesh + Sélectionnez un maillage - Select an area of the mesh - Sélectionnez une zone du maillage + Select an area of the mesh + Sélectionnez une zone du maillage - - + + CmdMeshPolySplit - Mesh - Maillage + Mesh + Maillage - Split mesh - Diviser un maillage + Split mesh + Diviser un maillage - Splits a mesh into two meshes - Divise un maillage en deux + Splits a mesh into two meshes + Divise un maillage en deux - - + + + CmdMeshPolyTrim + + Mesh + Maillage + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Maillage + Mesh + Maillage - Remove components by hand... - Supprimer manuellement des composants... + Remove components by hand... + Supprimer manuellement des composants... - Mark a component to remove it from the mesh - Marque un composant pour le supprimer du maillage + Mark a component to remove it from the mesh + Marque un composant pour le supprimer du maillage - - + + CmdMeshRemoveComponents - Mesh - Maillage + Mesh + Maillage - Remove components... - Supprimer des composants... + Remove components... + Supprimer des composants... - Remove topologic independent components from the mesh - Supprimer les composants de topologie indépendants du maillage + Remove topologic independent components from the mesh + Supprimer les composants de topologie indépendants du maillage - - + + + CmdMeshSegmentation + + Mesh + Maillage + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Maillage + Mesh + Maillage - Smooth... - Lisser... + Smooth... + Lisser... - Smooth the selected meshes - Lisse les maillages sélectionnés + Smooth the selected meshes + Lisse les maillages sélectionnés - - + + CmdMeshToolMesh - Mesh - Maillage + Mesh + Maillage - Segment by tool mesh - Segment à partir d'un maillage + Segment by tool mesh + Segment à partir d'un maillage - Creates a segment from a given tool mesh - Crée un segment à l'aide d'un outil de maillage + Creates a segment from a given tool mesh + Crée un segment à l'aide d'un outil de maillage - - + + CmdMeshTransform - Mesh - Maillage + Mesh + Maillage - Transform mesh - Transformer le maillage + Transform mesh + Transformer le maillage - Rotate or move a mesh - Rotation ou déplacement du maillage + Rotate or move a mesh + Rotation ou déplacement du maillage - - + + CmdMeshUnion - Mesh - Maillage + Mesh + Maillage - Union - Union + Union + Union - - + + CmdMeshVertexCurvature - Mesh - Maillage + Mesh + Maillage - Calculates the curvature of the vertices of a mesh - Calcule la courbure des sommets du maillage + Calculates the curvature of the vertices of a mesh + Calcule la courbure des sommets du maillage - Curvature plot - Tracé de courbure + Curvature plot + Tracé de courbure - - + + CmdMeshVertexCurvatureInfo - Mesh - Maillage + Mesh + Maillage - Curvature info - Infos de courbure + Curvature info + Infos de courbure - Information about curvature - Informations sur la courbure + Information about curvature + Informations sur la courbure - - + + MeshGui::DlgEvaluateMesh - &Help - &Aide + &Help + &Aide - F1 - F1 + F1 + F1 - &Close - &Fermer + &Close + &Fermer - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Informations sur le maillage + Mesh information + Informations sur le maillage - No information - Aucune information + No information + Aucune information - Number of points: - Nombre de points : + Number of points: + Nombre de points : - Number of edges: - Nombre de contours : + Number of edges: + Nombre de contours : - Refresh - Actualiser + Refresh + Actualiser - Analyze - Analyser + Analyze + Analyser - Repair - Réparer + Repair + Réparer - Orientation - Orientation + Orientation + Orientation - Degenerated faces - Faces dégénérées + Degenerated faces + Faces dégénérées - Face indices - Indices des faces + Face indices + Indices des faces - Number of faces: - Nombre de faces : + Number of faces: + Nombre de faces : - Duplicated faces - Faces dupliquées + Duplicated faces + Faces dupliquées - Duplicated points - Points dupliqués + Duplicated points + Points dupliqués - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - Collisions internes + Self-intersections + Collisions internes - All above tests together - Tous les tests ensemble + All above tests together + Tous les tests ensemble - Repetitive repair - Réparation répétitive + Repetitive repair + Réparation répétitive - Evaluate & Repair Mesh - Évaluer et réparer un maillage + Evaluate & Repair Mesh + Évaluer et réparer un maillage - Folds on surface - Plis sur la surface + Folds on surface + Plis sur la surface - - + + MeshGui::DlgEvaluateMeshImp - No information - Aucune information + No information + Aucune information - Invalid neighbour indices - Indices voisins invalides + Invalid neighbour indices + Indices voisins invalides - Invalid face indices - Indices de face invalides + Invalid face indices + Indices de face invalides - Invalid point indices - Indices de point invalides + Invalid point indices + Indices de point invalides - Multiple point indices - Indices de point multiples + Multiple point indices + Indices de point multiples - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Impossible de supprimer les non-manifolds + Cannot remove non-manifolds + Impossible de supprimer les non-manifolds - No selection - Aucune sélection + No selection + Aucune sélection - No flipped normals - Aucune normale inversée + No flipped normals + Aucune normale inversée - %1 flipped normals - %1 normales inversées + %1 flipped normals + %1 normales inversées - No non-manifolds - Aucun non-manifold + No non-manifolds + Aucun non-manifold - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - Aucun indice invalide + No invalid indices + Aucun indice invalide - No degenerations - Aucune dégénération + No degenerations + Aucune dégénération - %1 degenerated faces - %1 faces dégénérées + %1 degenerated faces + %1 faces dégénérées - No duplicated faces - Aucune face dupliquée + No duplicated faces + Aucune face dupliquée - %1 duplicated faces - %1 faces dupliquées + %1 duplicated faces + %1 faces dupliquées - No duplicated points - Aucun point dupliqué + No duplicated points + Aucun point dupliqué - Duplicated points - Points dupliqués + Duplicated points + Points dupliqués - Orientation - Orientation + Orientation + Orientation - Indices - Indices + Indices + Indices - Degenerations - Dégénérations + Degenerations + Dégénérations - Duplicated faces - Faces dupliquées + Duplicated faces + Faces dupliquées - No self-intersections - Aucune collision interne + No self-intersections + Aucune collision interne - Self-intersections - Collisions internes + Self-intersections + Collisions internes - Mesh repair - Réparer le maillage + Mesh repair + Réparer le maillage - Flipped normals found - Normales inversées trouvées + Flipped normals found + Normales inversées trouvées - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Vérification échouée en raison de plis sur la surface. Exécutez d'abord la commande "réparer les plis" + Vérification échouée en raison de plis sur la surface. Exécutez d'abord la commande "réparer les plis" - No folds on surface - Aucun pli sur la surface + No folds on surface + Aucun pli sur la surface - %1 folds on surface - %1 plis sur la surface + %1 folds on surface + %1 plis sur la surface - Folds - Plis + Folds + Plis - - + + MeshGui::DlgRegularSolid - Regular Solid - Solide régulier + Regular Solid + Solide régulier - &Create - &Créer + &Create + &Créer - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - &Fermer + Cl&ose + &Fermer - Alt+O - Alt+F + Alt+O + Alt+F - Solid: - Solide : + Solid: + Solide : - Cube - Cube + Cube + Cube - Cylinder - Cylindre + Cylinder + Cylindre - Cone - Cône + Cone + Cône - Sphere - Sphère + Sphere + Sphère - Ellipsoid - Ellipsoïde + Ellipsoid + Ellipsoïde - Torus - Tore + Torus + Tore - Height: - Hauteur : + Height: + Hauteur : - Length: - Longueur : + Length: + Longueur : - Width: - Largeur : + Width: + Largeur : - Radius: - Rayon : + Radius: + Rayon : - Closed - Fermé + Closed + Fermé - Sampling: - Numérisation : + Sampling: + Numérisation : - Edge length: - Longueur du contour : + Edge length: + Longueur du contour : - Radius 1: - Rayon 1 : + Radius 1: + Rayon 1 : - Radius 2: - Rayon 2 : + Radius 2: + Rayon 2 : - - + + MeshGui::DlgRegularSolidImp - Create %1 - Créer %1 + Create %1 + Créer %1 - No active document - Aucun document actif + No active document + Aucun document actif - - + + MeshGui::DlgSettingsMeshView - Mesh view - Vue du maillage + Mesh view + Vue du maillage - Two-side rendering - Rendu biface + Two-side rendering + Rendu biface - Backface color - Couleur de la face arrière + Backface color + Couleur de la face arrière - Smoothing - Lissage + Smoothing + Lissage - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Il s'agit du plus petit angle entre deux faces dont les normales sont calculées pour un ombrage plat.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si l'angle entre les normales de deux faces voisines est plus petit que l'angle de pliage, les faces seront traitées en ombrage lissé autour de leur arête commune.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Il s'agit du plus petit angle entre deux faces dont les normales sont calculées pour un ombrage plat.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si l'angle entre les normales de deux faces voisines est plus petit que l'angle de pliage, les faces seront traitées en ombrage lissé autour de leur arête commune.</p></body></html> - Crease angle - Angle de pliage + Crease angle + Angle de pliage - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Ombrage plat/Ombrage Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Définit l'apparence des surfaces</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Avec l'ombrage plat, les normales des surfaces ne sont pas définies par vertex, ce qui entraîne une apparence irréelle des surfaces courbes, alors que l'ombrage Phong produit une apparence plus lisse. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si cette option est activée, l'ombrage Phong sera utilisé, sinon l'ombrage plat sera utilisé.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Ombrage plat/Ombrage Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Définit l'apparence des surfaces</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Avec l'ombrage plat, les normales des surfaces ne sont pas définies par vertex, ce qui entraîne une apparence irréelle des surfaces courbes, alors que l'ombrage Phong produit une apparence plus lisse. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Si cette option est activée, l'ombrage Phong sera utilisé, sinon l'ombrage plat sera utilisé.</p></body></html> - Define normal per vertex - Définir les normales par vertex + Define normal per vertex + Définir les normales par vertex + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Définir les normales par vertex est aussi appelé <span style=" font-style:italic;">ombrage Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">alors que définir les normales par face est appelé</span>ombrage plat<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Définir les normales par vertex est aussi appelé <span style=" font-style:italic;">ombrage Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">alors que définir les normales par face est appelé</span>ombrage plat<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Apparence par défaut pour les nouveaux maillages - Default appearance for new meshes - Apparence par défaut pour les nouveaux maillages + Default line color + Couleur de ligne par défaut - Default line color - Couleur de ligne par défaut + Mesh transparency + Transparence des maillages - Mesh transparency - Transparence des maillages + Default mesh color + Couleur par défaut des maillages - Default mesh color - Couleur par défaut des maillages + Show bounding-box for highlighted or selected meshes + Afficher le volume capable des mailles en surbrillance ou sélectionnées - Show bounding-box for highlighted or selected meshes - Afficher le volume capable des mailles en surbrillance ou sélectionnées + Line transparency + Transparence de ligne - - Line transparency - Transparence de ligne - - - + + MeshGui::DlgSmoothing - Smoothing - Lissage + Smoothing + Lissage - Method - Méthode + Method + Méthode - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Paramètre + Parameter + Paramètre - Iterations: - Itérations : + Iterations: + Itérations : - Lambda: - Lambda : + Lambda: + Lambda : - Mu: - Mu : + Mu: + Mu : - - + + MeshGui::MeshFaceAddition - Add triangle - Ajouter un triangle + Add triangle + Ajouter un triangle - Flip normal - Inverser les normales + Flip normal + Inverser les normales - Clear - Effacer + Clear + Effacer - Finish - Terminer + Finish + Terminer - - + + MeshGui::RemoveComponents - Remove components - Supprimer des composants + Remove components + Supprimer des composants - Select - Sélectionner + Select + Sélectionner - Select whole component - Sélectionner le composant entier + Select whole component + Sélectionner le composant entier - Pick triangle - Choisissez un triangle + Pick triangle + Choisissez un triangle - < faces than - < de faces que + < faces than + < de faces que - Region - Région + Region + Région - Components - Composants + Components + Composants - All - Tous + All + Tous - Deselect - Dé-sélectionner + Deselect + Dé-sélectionner - Deselect whole component - Dé-sélectionner le composant entier + Deselect whole component + Dé-sélectionner le composant entier - > faces than - > de faces que + > faces than + > de faces que - Region options - Options de région + Region options + Options de région - Respect only triangles with normals facing screen - Respecter seulement les triangles dont les normales font face à écran + Respect only triangles with normals facing screen + Respecter seulement les triangles dont les normales font face à écran - Respect only visible triangles - Respecter uniquement les triangles visibles + Respect only visible triangles + Respecter uniquement les triangles visibles - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cylindre + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sphère + + + MeshGui::TaskRemoveComponents - Delete - Supprimer + Delete + Supprimer - Invert - Inverser + Invert + Inverser - - + + QDockWidget - Evaluate & Repair Mesh - Évaluer et réparer un maillage + Evaluate & Repair Mesh + Évaluer et réparer un maillage - - + + QObject - Import mesh - Importer un maillage + Import mesh + Importer un maillage - Export mesh - Exporter un maillage + Export mesh + Exporter un maillage - Solid Mesh - Maillage solide + Solid Mesh + Maillage solide - Boundings - Limites englobantes + Boundings + Limites englobantes - Fill holes - Remplir les trous + Fill holes + Remplir les trous - Fill holes with maximum number of edges: - Remplir les trous avec un nombre maximum de contours : + Fill holes with maximum number of edges: + Remplir les trous avec un nombre maximum de contours : - Binary STL (*.stl) - STL binaire (*.stl) + Binary STL (*.stl) + STL binaire (*.stl) - ASCII STL (*.ast) - STL ASCII (*.ast) + ASCII STL (*.ast) + STL ASCII (*.ast) - Binary Mesh (*.bms) - Maillage binaire (*.bms) + Binary Mesh (*.bms) + Maillage binaire (*.bms) - Alias Mesh (*.obj) - Maillage Alias (*.obj) + Alias Mesh (*.obj) + Maillage Alias (*.obj) - Inventor V2.1 ascii (*.iv) - ASCII Inventor V2.1 (*.iv) + Inventor V2.1 ascii (*.iv) + ASCII Inventor V2.1 (*.iv) - All Files (*.*) - Tous les fichiers (*.*) + All Files (*.*) + Tous les fichiers (*.*) - ASCII STL (*.stl) - STL ASCII (*.stl) + ASCII STL (*.stl) + STL ASCII (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - VRML 2.0 compressé (*.wrz) + Compressed VRML 2.0 (*.wrz) + VRML 2.0 compressé (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Module Python(*.py) + Python module def (*.py) + Module Python(*.py) - Meshing Tolerance - Tolérance de maillage + Meshing Tolerance + Tolérance de maillage - Enter tolerance for meshing geometry: - Saisir la tolérance pour la géométrie maillée : + Enter tolerance for meshing geometry: + Saisir la tolérance pour la géométrie maillée : - The mesh '%1' is a solid. - Le maillage '%1' est un solide. + The mesh '%1' is a solid. + Le maillage '%1' est un solide. - The mesh '%1' is not a solid. - Le maillage '%1' n'est pas un solide. + The mesh '%1' is not a solid. + Le maillage '%1' n'est pas un solide. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Points: %1, Contours: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Contours: %2 Faces: %3] - Leave info mode - Quitter le mode d'information + Leave info mode + Quitter le mode d'information - Index: %1 - Index : %1 + Index: %1 + Index : %1 - Leave hole-filling mode - Quitter le mode de remplissage des trous + Leave hole-filling mode + Quitter le mode de remplissage des trous - Leave removal mode - Quitter le mode de suppression + Leave removal mode + Quitter le mode de suppression - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Tous les fichiers de maillage (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Tous les fichiers de maillage (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Polygone de Stanford (*.ply) + Stanford Polygon (*.ply) + Polygone de Stanford (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Supprimer les faces sélectionnées + Delete selected faces + Supprimer les faces sélectionnées - Clear selected faces - Dé-sélectionner les faces sélectionnées + Clear selected faces + Dé-sélectionner les faces sélectionnées - Annotation - Annotation + Annotation + Annotation - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analyser + Analyze + Analyser - Boolean - Opération booléenne + Boolean + Opération booléenne - &Meshes - &Maillages + &Meshes + &Maillages - Mesh tools - Outils de maillage + Mesh tools + Outils de maillage - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_hr.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_hr.ts index 2c1ee1084..6aa72e06d 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_hr.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_hr.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Mreža + Mesh + Mreža - Add triangle - Dodaj trokut + Add triangle + Dodaj trokut - Add triangle manually to a mesh - RuÄno dodaj trokut mreži + Add triangle manually to a mesh + RuÄno dodaj trokut mreži - - + + CmdMeshBoundingBox - Mesh - Mreža + Mesh + Mreža - Boundings info... - Informacije o granicama... + Boundings info... + Informacije o granicama... - Shows the boundings of the selected mesh - Prikazuje granicu odabrane mreže + Shows the boundings of the selected mesh + Prikazuje granicu odabrane mreže - - + + CmdMeshBuildRegularSolid - Mesh - Mreža + Mesh + Mreža - Regular solid... - ObiÄno tijelo... + Regular solid... + ObiÄno tijelo... - Builds a regular solid - Kreira obiÄno tijelo + Builds a regular solid + Kreira obiÄno tijelo - - + + CmdMeshDemolding - Interactive demolding direction - Smjer interaktivnog oblikovanja + Interactive demolding direction + Smjer interaktivnog oblikovanja - Mesh - Mreža + Mesh + Mreža - - + + CmdMeshDifference - Mesh - Mreža + Mesh + Mreža - Difference - Razlika + Difference + Razlika - - + + CmdMeshEvaluateFacet - Mesh - Mreža + Mesh + Mreža - Face info - Informacije povrÅ¡ine + Face info + Informacije povrÅ¡ine - Information about face - Informacije o povrÅ¡ini + Information about face + Informacije o povrÅ¡ini - - + + CmdMeshEvaluateSolid - Mesh - Mreža + Mesh + Mreža - Check solid mesh - Provjerite tijelo MESH-a + Check solid mesh + Provjerite tijelo MESH-a - Checks whether the mesh is a solid - Provjerava je li MESH tijelo + Checks whether the mesh is a solid + Provjerava je li MESH tijelo - - + + CmdMeshEvaluation - Mesh - Mreža + Mesh + Mreža - Opens a dialog to analyze and repair a mesh - Otvara dijalog za analizu i popravak MESH-a + Opens a dialog to analyze and repair a mesh + Otvara dijalog za analizu i popravak MESH-a - Evaluate && Repair mesh... - Procijeni i Pop&ravi MESH... + Evaluate && Repair mesh... + Procijeni i Pop&ravi MESH... - - + + CmdMeshExMakeMesh - Mesh - Mreža + Mesh + Mreža - Make a Box - Napravi kvadar + Make a Box + Napravi kvadar - - + + CmdMeshExMakeTool - Mesh - Mreža + Mesh + Mreža - Make a Tool - Napravi Alat + Make a Tool + Napravi Alat - - + + CmdMeshExMakeUnion - Mesh - Mreža + Mesh + Mreža - Make Union - Napravi uniju + Make Union + Napravi uniju - - + + CmdMeshExport - Mesh - Mreža + Mesh + Mreža - Export mesh... - Izvoz MESH-a... + Export mesh... + Izvoz MESH-a... - Exports a mesh to file - Izvoz MESH-a u datoteku + Exports a mesh to file + Izvoz MESH-a u datoteku - - + + CmdMeshFillInteractiveHole - Mesh - Mreža + Mesh + Mreža - Close hole - Zatvori rupe + Close hole + Zatvori rupe - Close holes interactively - Zatvori rupe interaktivno + Close holes interactively + Zatvori rupe interaktivno - - + + CmdMeshFillupHoles - Mesh - Mreža + Mesh + Mreža - Fill holes... - Ispuni rupe... + Fill holes... + Ispuni rupe... - Fill holes of the mesh - Ispuni rupe MESH-a + Fill holes of the mesh + Ispuni rupe MESH-a - - + + CmdMeshFlipNormals - Mesh - Mreža + Mesh + Mreža - Flip normals - Zrcali normale + Flip normals + Zrcali normale - Flips the normals of the mesh - Zrcali normale MESH-a + Flips the normals of the mesh + Zrcali normale MESH-a - - + + CmdMeshFromGeometry - Mesh - Mreža + Mesh + Mreža - Create mesh from geometry... - Stvaranje MESH iz geometrije ... + Create mesh from geometry... + Stvaranje MESH iz geometrije ... - Create mesh from the selected geometry - Stvori MESH od odabranih objekata + Create mesh from the selected geometry + Stvori MESH od odabranih objekata - - + + CmdMeshHarmonizeNormals - Mesh - Mreža + Mesh + Mreža - Harmonize normals - Uskladi normale + Harmonize normals + Uskladi normale - Harmonizes the normals of the mesh - UsklaÄ‘uje normale MESH-a + Harmonizes the normals of the mesh + UsklaÄ‘uje normale MESH-a - - + + CmdMeshImport - Mesh - Mreža + Mesh + Mreža - Import mesh... - Uvezi MESH... + Import mesh... + Uvezi MESH... - Imports a mesh from file - Uvoz MESH-a iz datoteke + Imports a mesh from file + Uvoz MESH-a iz datoteke - - + + CmdMeshIntersection - Mesh - Mreža + Mesh + Mreža - Intersection - Presjek + Intersection + Presjek - - + + CmdMeshPolyCut - Mesh - Mreža + Mesh + Mreža - Cut mesh - Izreži MESH + Cut mesh + Izreži MESH - Cuts a mesh with a picked polygon - Presjeca MESH sa odabranim poligonom + Cuts a mesh with a picked polygon + Presjeca MESH sa odabranim poligonom - - + + CmdMeshPolySegm - Mesh - Mreža + Mesh + Mreža - Make segment - Stvori segment + Make segment + Stvori segment - Creates a mesh segment - Stvara segment MESH-a + Creates a mesh segment + Stvara segment MESH-a - - + + CmdMeshPolySelect - Mesh - Mreža + Mesh + Mreža - Select mesh - Odaberi MESH + Select mesh + Odaberi MESH - Select an area of the mesh - Odaberite podruÄje MESH-a + Select an area of the mesh + Odaberite podruÄje MESH-a - - + + CmdMeshPolySplit - Mesh - Mreža + Mesh + Mreža - Split mesh - Podjeli MESH + Split mesh + Podjeli MESH - Splits a mesh into two meshes - Podijeli MESH na dva dijela + Splits a mesh into two meshes + Podijeli MESH na dva dijela - - + + + CmdMeshPolyTrim + + Mesh + Mreža + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mreža + Mesh + Mreža - Remove components by hand... - Ukloniti komponente ruÄno... + Remove components by hand... + Ukloniti komponente ruÄno... - Mark a component to remove it from the mesh - OznaÄi komponenta koju želite uklonili iz MESH-a + Mark a component to remove it from the mesh + OznaÄi komponenta koju želite uklonili iz MESH-a - - + + CmdMeshRemoveComponents - Mesh - Mreža + Mesh + Mreža - Remove components... - Ukloniti komponente... + Remove components... + Ukloniti komponente... - Remove topologic independent components from the mesh - Izvadite komponente neovisne o topologiji iz MESH-a + Remove topologic independent components from the mesh + Izvadite komponente neovisne o topologiji iz MESH-a - - + + + CmdMeshSegmentation + + Mesh + Mreža + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mreža + Mesh + Mreža - Smooth... - Izgladi... + Smooth... + Izgladi... - Smooth the selected meshes - Izgladi odabrani MESH + Smooth the selected meshes + Izgladi odabrani MESH - - + + CmdMeshToolMesh - Mesh - Mreža + Mesh + Mreža - Segment by tool mesh - Segmentiraj pomoću MESH-a + Segment by tool mesh + Segmentiraj pomoću MESH-a - Creates a segment from a given tool mesh - Stvara segment iz danog alata MESH-a + Creates a segment from a given tool mesh + Stvara segment iz danog alata MESH-a - - + + CmdMeshTransform - Mesh - Mreža + Mesh + Mreža - Transform mesh - Transformacija MESH-a + Transform mesh + Transformacija MESH-a - Rotate or move a mesh - Zakretanje ili premjeÅ¡tanje MESH-a + Rotate or move a mesh + Zakretanje ili premjeÅ¡tanje MESH-a - - + + CmdMeshUnion - Mesh - Mreža + Mesh + Mreža - Union - Unija + Union + Unija - - + + CmdMeshVertexCurvature - Mesh - Mreža + Mesh + Mreža - Calculates the curvature of the vertices of a mesh - IzraÄunava zakrivljenost vrhova mreže + Calculates the curvature of the vertices of a mesh + IzraÄunava zakrivljenost vrhova mreže - Curvature plot - Iscrtavanje krivina + Curvature plot + Iscrtavanje krivina - - + + CmdMeshVertexCurvatureInfo - Mesh - Mreža + Mesh + Mreža - Curvature info - Informacije krivina + Curvature info + Informacije krivina - Information about curvature - Informacije o zakrivljenosti + Information about curvature + Informacije o zakrivljenosti - - + + MeshGui::DlgEvaluateMesh - &Help - &Pomoć + &Help + &Pomoć - F1 - F1 + F1 + F1 - &Close - &Zatvori + &Close + &Zatvori - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Informacije MESH-a + Mesh information + Informacije MESH-a - No information - Nema informacija + No information + Nema informacija - Number of points: - Broj vrhova: + Number of points: + Broj vrhova: - Number of edges: - Broj rubova: + Number of edges: + Broj rubova: - Refresh - Osvježi + Refresh + Osvježi - Analyze - Analiziraj + Analyze + Analiziraj - Repair - Popravak + Repair + Popravak - Orientation - Orijentacija + Orientation + Orijentacija - Degenerated faces - Degenerirane povrÅ¡ine + Degenerated faces + Degenerirane povrÅ¡ine - Face indices - Indeksi povrÅ¡ina + Face indices + Indeksi povrÅ¡ina - Number of faces: - Broj povrÅ¡ina: + Number of faces: + Broj povrÅ¡ina: - Duplicated faces - Dvostruke povrÅ¡ine + Duplicated faces + Dvostruke povrÅ¡ine - Duplicated points - Dvostruki vrhovi + Duplicated points + Dvostruki vrhovi - Non-manifolds - Jednostruki + Non-manifolds + Jednostruki - Self-intersections - Preklapanja + Self-intersections + Preklapanja - All above tests together - Sve gore testovi zajedno + All above tests together + Sve gore testovi zajedno - Repetitive repair - Ponavljajući popravak + Repetitive repair + Ponavljajući popravak - Evaluate & Repair Mesh - Procijeni & Popravi MESH + Evaluate & Repair Mesh + Procijeni & Popravi MESH - Folds on surface - Nabori na povrÅ¡ini + Folds on surface + Nabori na povrÅ¡ini - - + + MeshGui::DlgEvaluateMeshImp - No information - Nema informacija + No information + Nema informacija - Invalid neighbour indices - Nevažeći susjedni indeksi + Invalid neighbour indices + Nevažeći susjedni indeksi - Invalid face indices - Nevaljani indeksi povrÅ¡ina + Invalid face indices + Nevaljani indeksi povrÅ¡ina - Invalid point indices - Nevažeća toÄka indeksa + Invalid point indices + Nevažeća toÄka indeksa - Multiple point indices - ViÅ¡estruki indeksi toÄaka + Multiple point indices + ViÅ¡estruki indeksi toÄaka - Non-manifolds - Jednostruki + Non-manifolds + Jednostruki - Cannot remove non-manifolds - Ne mogu ukloniti jednostruke + Cannot remove non-manifolds + Ne mogu ukloniti jednostruke - No selection - Nema odabira + No selection + Nema odabira - No flipped normals - Nema zrcaljenih normala + No flipped normals + Nema zrcaljenih normala - %1 flipped normals - %1 zrcaljenih normala + %1 flipped normals + %1 zrcaljenih normala - No non-manifolds - Nema jednostrukih + No non-manifolds + Nema jednostrukih - %1 non-manifolds - %1 jednostrukih + %1 non-manifolds + %1 jednostrukih - No invalid indices - Nema nevažećih indeksa + No invalid indices + Nema nevažećih indeksa - No degenerations - Nema degeneracija + No degenerations + Nema degeneracija - %1 degenerated faces - %1 degeneriranih povrÅ¡ina + %1 degenerated faces + %1 degeneriranih povrÅ¡ina - No duplicated faces - Nema dvostrukih povrÅ¡ina + No duplicated faces + Nema dvostrukih povrÅ¡ina - %1 duplicated faces - %1 dvostrukih povrÅ¡ina + %1 duplicated faces + %1 dvostrukih povrÅ¡ina - No duplicated points - Nema dvostrukih toÄaka + No duplicated points + Nema dvostrukih toÄaka - Duplicated points - Dvostruki vrhovi + Duplicated points + Dvostruki vrhovi - Orientation - Orijentacija + Orientation + Orijentacija - Indices - Indeksi + Indices + Indeksi - Degenerations - Degeneracije + Degenerations + Degeneracije - Duplicated faces - Dvostruke povrÅ¡ine + Duplicated faces + Dvostruke povrÅ¡ine - No self-intersections - Nema prekalpanja + No self-intersections + Nema prekalpanja - Self-intersections - Preklapanja + Self-intersections + Preklapanja - Mesh repair - Popravi MESH + Mesh repair + Popravi MESH - Flipped normals found - PronaÄ‘ene zrcaljene normale + Flipped normals found + PronaÄ‘ene zrcaljene normale - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Provjera nije uspjela zbog nabora na povrÅ¡ini. + Provjera nije uspjela zbog nabora na povrÅ¡ini. Molimo pokrenite naredbu za popravak nabora - No folds on surface - Bez nabora na povrÅ¡ini + No folds on surface + Bez nabora na povrÅ¡ini - %1 folds on surface - %1 nabori na povrÅ¡ini + %1 folds on surface + %1 nabori na povrÅ¡ini - Folds - Sklapanje + Folds + Sklapanje - - + + MeshGui::DlgRegularSolid - Regular Solid - ObiÄno tijelo + Regular Solid + ObiÄno tijelo - &Create - &Izradi + &Create + &Izradi - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Za&tvori + Cl&ose + Za&tvori - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - ÄŒvrsto tijelo: + Solid: + ÄŒvrsto tijelo: - Cube - Kocka + Cube + Kocka - Cylinder - Valjak + Cylinder + Valjak - Cone - Stožac + Cone + Stožac - Sphere - Kugla + Sphere + Kugla - Ellipsoid - Elipsoid + Ellipsoid + Elipsoid - Torus - Zavojnica + Torus + Zavojnica - Height: - Duljina: + Height: + Duljina: - Length: - Duljina: + Length: + Duljina: - Width: - Å irina: + Width: + Å irina: - Radius: - Polumjer: + Radius: + Polumjer: - Closed - Zatvoreno + Closed + Zatvoreno - Sampling: - Uzorkovanje: + Sampling: + Uzorkovanje: - Edge length: - Duljina ruba: + Edge length: + Duljina ruba: - Radius 1: - Polumjer 1: + Radius 1: + Polumjer 1: - Radius 2: - Polumjer 2: + Radius 2: + Polumjer 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Napravi %1 + Create %1 + Napravi %1 - No active document - Nema aktivnog dokumenta + No active document + Nema aktivnog dokumenta - - + + MeshGui::DlgSettingsMeshView - Mesh view - Pregled MESH-a + Mesh view + Pregled MESH-a - Two-side rendering - Dvostrano renderiranje + Two-side rendering + Dvostrano renderiranje - Backface color - Boja stražnje povrÅ¡ine + Backface color + Boja stražnje povrÅ¡ine - Smoothing - IzglaÄ‘ivanje + Smoothing + IzglaÄ‘ivanje - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> To je najmanji kut izmeÄ‘u dva lica gdje se normale izraÄunavaju za napraviti ravno sjenÄanje. </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Ako je kut izmeÄ‘u normale na dvije susjedne lica je manji od pregib kut, lica će biti smoothshaded oko njihove zajedniÄke ruba. </p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> To je najmanji kut izmeÄ‘u dva lica gdje se normale izraÄunavaju za napraviti ravno sjenÄanje. </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Ako je kut izmeÄ‘u normale na dvije susjedne lica je manji od pregib kut, lica će biti smoothshaded oko njihove zajedniÄke ruba. </p></body></html> - Crease angle - Nabor kuta + Crease angle + Nabor kuta - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Sa ravnim sjenÄanjem normale povrÅ¡ina nisu definiane po toÄkama Å¡to vodi do neprirodnog izgleda zakrivljenih povrÅ¡ina, dok upotreba Phong sjenÄanja vodi do boljeg izgleda. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Sa ravnim sjenÄanjem normale povrÅ¡ina nisu definiane po toÄkama Å¡to vodi do neprirodnog izgleda zakrivljenih povrÅ¡ina, dok upotreba Phong sjenÄanja vodi do boljeg izgleda. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Definiraj normalu po vrhu + Define normal per vertex + Definiraj normalu po vrhu + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Savjet</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Definiranje normale na vrh je takoÄ‘er pozvao <span style=" font-style:italic;">Phong sjenÄanje</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">pri definiranju normale po licu se zove</span> Stan <span style=" font-style:normal;">sjenÄanje.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Savjet</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Definiranje normale na vrh je takoÄ‘er pozvao <span style=" font-style:italic;">Phong sjenÄanje</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">pri definiranju normale po licu se zove</span> Stan <span style=" font-style:normal;">sjenÄanje.</span> </p></body></html> + Default appearance for new meshes + Inicijalni izgled za nove MESH-eve - Default appearance for new meshes - Inicijalni izgled za nove MESH-eve + Default line color + Zadana boja linije - Default line color - Zadana boja linije + Mesh transparency + Transparentnost MESH-a - Mesh transparency - Transparentnost MESH-a + Default mesh color + Zadana boja MESH-a - Default mesh color - Zadana boja MESH-a + Show bounding-box for highlighted or selected meshes + Pokaži graniÄnu kutiju za istaknute ili odabrane mreže - Show bounding-box for highlighted or selected meshes - Pokaži graniÄnu kutiju za istaknute ili odabrane mreže + Line transparency + Transparentnost linije - - Line transparency - Transparentnost linije - - - + + MeshGui::DlgSmoothing - Smoothing - IzglaÄ‘ivanje + Smoothing + IzglaÄ‘ivanje - Method - Metoda + Method + Metoda - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parametar + Parameter + Parametar - Iterations: - Iteracije: + Iterations: + Iteracije: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Dodaj trokut + Add triangle + Dodaj trokut - Flip normal - Okreni normalu + Flip normal + Okreni normalu - Clear - Brisanje + Clear + Brisanje - Finish - ZavrÅ¡iti + Finish + ZavrÅ¡iti - - + + MeshGui::RemoveComponents - Remove components - Ukloniti komponente + Remove components + Ukloniti komponente - Select - Odaberite + Select + Odaberite - Select whole component - OdznaÄi cijelu komponentu + Select whole component + OdznaÄi cijelu komponentu - Pick triangle - Odaberite trokut + Pick triangle + Odaberite trokut - < faces than - < lica od + < faces than + < lica od - Region - Regija + Region + Regija - Components - Komponente + Components + Komponente - All - Sve + All + Sve - Deselect - OdznaÄi + Deselect + OdznaÄi - Deselect whole component - OdznaÄi cijelu komponentu + Deselect whole component + OdznaÄi cijelu komponentu - > faces than - > lica od + > faces than + > lica od - Region options - Opcije regija + Region options + Opcije regija - Respect only triangles with normals facing screen - PoÅ¡tovanje samo trokuta s normalama prema zaslonu + Respect only triangles with normals facing screen + PoÅ¡tovanje samo trokuta s normalama prema zaslonu - Respect only visible triangles - PoÅ¡tovanje jedino vidljivih trokuta + Respect only visible triangles + PoÅ¡tovanje jedino vidljivih trokuta - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Valjak + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Kugla + + + MeshGui::TaskRemoveComponents - Delete - IzbriÅ¡i + Delete + IzbriÅ¡i - Invert - Invertiraj + Invert + Invertiraj - - + + QDockWidget - Evaluate & Repair Mesh - Procijeni & Popravi MESH + Evaluate & Repair Mesh + Procijeni & Popravi MESH - - + + QObject - Import mesh - Uvezi mrežu + Import mesh + Uvezi mrežu - Export mesh - Izvezi mrežu + Export mesh + Izvezi mrežu - Solid Mesh - ÄŒvrsta mreža + Solid Mesh + ÄŒvrsta mreža - Boundings - Granice + Boundings + Granice - Fill holes - Ispuni rupe + Fill holes + Ispuni rupe - Fill holes with maximum number of edges: - Ispunite rupe s maksimalnim brojem rubova: + Fill holes with maximum number of edges: + Ispunite rupe s maksimalnim brojem rubova: - Binary STL (*.stl) - Binarni STL (*.STL) + Binary STL (*.stl) + Binarni STL (*.STL) - ASCII STL (*.ast) - ASCII STL (*.AST) + ASCII STL (*.ast) + ASCII STL (*.AST) - Binary Mesh (*.bms) - Binarni MESH (*.BMS) + Binary Mesh (*.bms) + Binarni MESH (*.BMS) - Alias Mesh (*.obj) - Alias MESH (*.obj) + Alias Mesh (*.obj) + Alias MESH (*.obj) - Inventor V2.1 ascii (*.iv) - Izumitelj V2.1 ASCII (*.iv) + Inventor V2.1 ascii (*.iv) + Izumitelj V2.1 ASCII (*.iv) - All Files (*.*) - Sve datoteke (*.*) + All Files (*.*) + Sve datoteke (*.*) - ASCII STL (*.stl) - ASCII STL (*.STL) + ASCII STL (*.stl) + ASCII STL (*.STL) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Komprimirani VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Komprimirani VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.NAS *.BDF) + Nastran (*.nas *.bdf) + Nastran (*.NAS *.BDF) - Python module def (*.py) - Python modul (*.py) + Python module def (*.py) + Python modul (*.py) - Meshing Tolerance - Tolerancija MESH-a + Meshing Tolerance + Tolerancija MESH-a - Enter tolerance for meshing geometry: - Unesite toleranciju geometrije MESH-a: + Enter tolerance for meshing geometry: + Unesite toleranciju geometrije MESH-a: - The mesh '%1' is a solid. - MESH '%1' je tijelo. + The mesh '%1' is a solid. + MESH '%1' je tijelo. - The mesh '%1' is not a solid. - MESH '%1' nije tijelo. + The mesh '%1' is not a solid. + MESH '%1' nije tijelo. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Vrhovi: %1, Rubovi: %2 PovrÅ¡ine: %3] + [Points: %1, Edges: %2 Faces: %3] + [Vrhovi: %1, Rubovi: %2 PovrÅ¡ine: %3] - Leave info mode - Zatvori info naÄin rada + Leave info mode + Zatvori info naÄin rada - Index: %1 - Indeks: %1 + Index: %1 + Indeks: %1 - Leave hole-filling mode - Zatvori naÄin rada za popunjavanje otvora + Leave hole-filling mode + Zatvori naÄin rada za popunjavanje otvora - Leave removal mode - Zatvori naÄin rada za uklanjanje + Leave removal mode + Zatvori naÄin rada za uklanjanje - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Sve datoteke mreže (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Sve datoteke mreže (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Poligon (*.ply) + Stanford Polygon (*.ply) + Stanford Poligon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Poligon (*. ply) + Standford Polygon (*.ply) + Standford Poligon (*. ply) - Delete selected faces - IzbriÅ¡i odabrane povrÅ¡ine + Delete selected faces + IzbriÅ¡i odabrane povrÅ¡ine - Clear selected faces - IzbriÅ¡i odabrane povrÅ¡ine + Clear selected faces + IzbriÅ¡i odabrane povrÅ¡ine - Annotation - Anotacija + Annotation + Anotacija - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analiziraj + Analyze + Analiziraj - Boolean - Boolean + Boolean + Boolean - &Meshes - &MESH-evi + &Meshes + &MESH-evi - Mesh tools - Alati mreže + Mesh tools + Alati mreže - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_hu.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_hu.ts index 40fadd4e6..2491443bf 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_hu.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_hu.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Mesh + Mesh + Mesh - Add triangle - Háromszöget adjon hozzá + Add triangle + Háromszöget adjon hozzá - Add triangle manually to a mesh - Addjon háromszöget kézzel a hálóhoz + Add triangle manually to a mesh + Addjon háromszöget kézzel a hálóhoz - - + + CmdMeshBoundingBox - Mesh - Mesh + Mesh + Mesh - Boundings info... - Határolók információi... + Boundings info... + Határolók információi... - Shows the boundings of the selected mesh - Megmutatja a kiválasztott háló határvoalait + Shows the boundings of the selected mesh + Megmutatja a kiválasztott háló határvoalait - - + + CmdMeshBuildRegularSolid - Mesh - Mesh + Mesh + Mesh - Regular solid... - Szabályos szilárd test... + Regular solid... + Szabályos szilárd test... - Builds a regular solid - Szabályos szilárd testet épít + Builds a regular solid + Szabályos szilárd testet épít - - + + CmdMeshDemolding - Interactive demolding direction - Interaktív formárambontás iránya + Interactive demolding direction + Interaktív formárambontás iránya - Mesh - Mesh + Mesh + Mesh - - + + CmdMeshDifference - Mesh - Mesh + Mesh + Mesh - Difference - Különbség + Difference + Különbség - - + + CmdMeshEvaluateFacet - Mesh - Mesh + Mesh + Mesh - Face info - Felület infó + Face info + Felület infó - Information about face - Információ a felületrÅ‘l + Information about face + Információ a felületrÅ‘l - - + + CmdMeshEvaluateSolid - Mesh - Mesh + Mesh + Mesh - Check solid mesh - Szilárd háló ellenÅ‘rzése + Check solid mesh + Szilárd háló ellenÅ‘rzése - Checks whether the mesh is a solid - EllenÅ‘rzi, ha a háló egy szilárd testet ad ki + Checks whether the mesh is a solid + EllenÅ‘rzi, ha a háló egy szilárd testet ad ki - - + + CmdMeshEvaluation - Mesh - Mesh + Mesh + Mesh - Opens a dialog to analyze and repair a mesh - Megnyit egy párbeszédablakot, a háló elemezzéséehez és javításához + Opens a dialog to analyze and repair a mesh + Megnyit egy párbeszédablakot, a háló elemezzéséehez és javításához - Evaluate && Repair mesh... - Háló értékelése & javítása... + Evaluate && Repair mesh... + Háló értékelése & javítása... - - + + CmdMeshExMakeMesh - Mesh - Mesh + Mesh + Mesh - Make a Box - Make a Box + Make a Box + Make a Box - - + + CmdMeshExMakeTool - Mesh - Mesh + Mesh + Mesh - Make a Tool - Make a Tool + Make a Tool + Make a Tool - - + + CmdMeshExMakeUnion - Mesh - Mesh + Mesh + Mesh - Make Union - Make Union + Make Union + Make Union - - + + CmdMeshExport - Mesh - Mesh + Mesh + Mesh - Export mesh... - Háló exportálása... + Export mesh... + Háló exportálása... - Exports a mesh to file - Fájlba exportálja a hálót + Exports a mesh to file + Fájlba exportálja a hálót - - + + CmdMeshFillInteractiveHole - Mesh - Mesh + Mesh + Mesh - Close hole - Lyukat bezárja + Close hole + Lyukat bezárja - Close holes interactively - Interaktívan bezárja a lyukakat + Close holes interactively + Interaktívan bezárja a lyukakat - - + + CmdMeshFillupHoles - Mesh - Mesh + Mesh + Mesh - Fill holes... - Lyukak kitöltése... + Fill holes... + Lyukak kitöltése... - Fill holes of the mesh - A hálón lévÅ‘ lyukak kitöltése + Fill holes of the mesh + A hálón lévÅ‘ lyukak kitöltése - - + + CmdMeshFlipNormals - Mesh - Mesh + Mesh + Mesh - Flip normals - Normál tükrözés + Flip normals + Normál tükrözés - Flips the normals of the mesh - A háló normál tükrözése + Flips the normals of the mesh + A háló normál tükrözése - - + + CmdMeshFromGeometry - Mesh - Mesh + Mesh + Mesh - Create mesh from geometry... - Háló létrehozása a geometriából... + Create mesh from geometry... + Háló létrehozása a geometriából... - Create mesh from the selected geometry - Háló létrehozása a kijelölt geometriából + Create mesh from the selected geometry + Háló létrehozása a kijelölt geometriából - - + + CmdMeshHarmonizeNormals - Mesh - Mesh + Mesh + Mesh - Harmonize normals - Normálisok összehangolása + Harmonize normals + Normálisok összehangolása - Harmonizes the normals of the mesh - A hálón lévÅ‘ normálisok összehangolása + Harmonizes the normals of the mesh + A hálón lévÅ‘ normálisok összehangolása - - + + CmdMeshImport - Mesh - Mesh + Mesh + Mesh - Import mesh... - Háló importálása... + Import mesh... + Háló importálása... - Imports a mesh from file - A háló importálása fájlból + Imports a mesh from file + A háló importálása fájlból - - + + CmdMeshIntersection - Mesh - Mesh + Mesh + Mesh - Intersection - Metszet + Intersection + Metszet - - + + CmdMeshPolyCut - Mesh - Mesh + Mesh + Mesh - Cut mesh - Háló vágása + Cut mesh + Háló vágása - Cuts a mesh with a picked polygon - Háló kivágása a kiválasztott sokszög rácsvonallal + Cuts a mesh with a picked polygon + Háló kivágása a kiválasztott sokszög rácsvonallal - - + + CmdMeshPolySegm - Mesh - Mesh + Mesh + Mesh - Make segment - Szegmens létrehozása + Make segment + Szegmens létrehozása - Creates a mesh segment - A háló szegmens létrehozása + Creates a mesh segment + A háló szegmens létrehozása - - + + CmdMeshPolySelect - Mesh - Mesh + Mesh + Mesh - Select mesh - Háló kijelölése + Select mesh + Háló kijelölése - Select an area of the mesh - Jelöljön egy területet a hálón + Select an area of the mesh + Jelöljön egy területet a hálón - - + + CmdMeshPolySplit - Mesh - Mesh + Mesh + Mesh - Split mesh - Háló osztása + Split mesh + Háló osztása - Splits a mesh into two meshes - Háló osztása két részre + Splits a mesh into two meshes + Háló osztása két részre - - + + + CmdMeshPolyTrim + + Mesh + Mesh + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mesh + Mesh + Mesh - Remove components by hand... - Távolítsa el kézzel az összetevÅ‘ket... + Remove components by hand... + Távolítsa el kézzel az összetevÅ‘ket... - Mark a component to remove it from the mesh - Egy összetevÅ‘ megjelölése a hálóból való eltávolításához + Mark a component to remove it from the mesh + Egy összetevÅ‘ megjelölése a hálóból való eltávolításához - - + + CmdMeshRemoveComponents - Mesh - Mesh + Mesh + Mesh - Remove components... - ÖsszetevÅ‘k eltávolítása... + Remove components... + ÖsszetevÅ‘k eltávolítása... - Remove topologic independent components from the mesh - Vegye ki a topológiailag független részegységeket a hálóból + Remove topologic independent components from the mesh + Vegye ki a topológiailag független részegységeket a hálóból - - + + + CmdMeshSegmentation + + Mesh + Mesh + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mesh + Mesh + Mesh - Smooth... - Simítás + Smooth... + Simítás - Smooth the selected meshes - Kiválasztott háló simítása + Smooth the selected meshes + Kiválasztott háló simítása - - + + CmdMeshToolMesh - Mesh - Mesh + Mesh + Mesh - Segment by tool mesh - Metszet a háló eszközbÅ‘l + Segment by tool mesh + Metszet a háló eszközbÅ‘l - Creates a segment from a given tool mesh - A megadott háló eszközbÅ‘l készít egy metszetet + Creates a segment from a given tool mesh + A megadott háló eszközbÅ‘l készít egy metszetet - - + + CmdMeshTransform - Mesh - Mesh + Mesh + Mesh - Transform mesh - Háló átalakítás + Transform mesh + Háló átalakítás - Rotate or move a mesh - Háló forgatása vagy mozgatása + Rotate or move a mesh + Háló forgatása vagy mozgatása - - + + CmdMeshUnion - Mesh - Mesh + Mesh + Mesh - Union - Egyesítés + Union + Egyesítés - - + + CmdMeshVertexCurvature - Mesh - Mesh + Mesh + Mesh - Calculates the curvature of the vertices of a mesh - Kiszámítja egy háló csúcspont görbületét + Calculates the curvature of the vertices of a mesh + Kiszámítja egy háló csúcspont görbületét - Curvature plot - Görbület terv + Curvature plot + Görbület terv - - + + CmdMeshVertexCurvatureInfo - Mesh - Mesh + Mesh + Mesh - Curvature info - Görbület információ + Curvature info + Görbület információ - Information about curvature - Görbület információk + Information about curvature + Görbület információk - - + + MeshGui::DlgEvaluateMesh - &Help - &Súgó + &Help + &Súgó - F1 - F1 + F1 + F1 - &Close - &Bezárás + &Close + &Bezárás - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Háló információ + Mesh information + Háló információ - No information - Nincs információ + No information + Nincs információ - Number of points: - Pontok száma: + Number of points: + Pontok száma: - Number of edges: - Élek száma: + Number of edges: + Élek száma: - Refresh - Frissítés + Refresh + Frissítés - Analyze - Elemzése + Analyze + Elemzése - Repair - Javítás + Repair + Javítás - Orientation - Tájolás + Orientation + Tájolás - Degenerated faces - Elváltoztatott felület + Degenerated faces + Elváltoztatott felület - Face indices - Felületi jelzÅ‘szám + Face indices + Felületi jelzÅ‘szám - Number of faces: - Felületek száma: + Number of faces: + Felületek száma: - Duplicated faces - Felületek megduplázása + Duplicated faces + Felületek megduplázása - Duplicated points - Pontok megkettÅ‘zése + Duplicated points + Pontok megkettÅ‘zése - Non-manifolds - Nem szthatók + Non-manifolds + Nem szthatók - Self-intersections - Saját csomópontok + Self-intersections + Saját csomópontok - All above tests together - Minden fenti vizsgálat együtt + All above tests together + Minden fenti vizsgálat együtt - Repetitive repair - IsmétlÅ‘dÅ‘ javítás + Repetitive repair + IsmétlÅ‘dÅ‘ javítás - Evaluate & Repair Mesh - Háló értékelése & javítása + Evaluate & Repair Mesh + Háló értékelése & javítása - Folds on surface - Felszíní hajlítás + Folds on surface + Felszíní hajlítás - - + + MeshGui::DlgEvaluateMeshImp - No information - Nincs információ + No information + Nincs információ - Invalid neighbour indices - Érvénytelen szomszédos indexek + Invalid neighbour indices + Érvénytelen szomszédos indexek - Invalid face indices - Érvénytelen felület indexek + Invalid face indices + Érvénytelen felület indexek - Invalid point indices - Érvénytelen pont indexek + Invalid point indices + Érvénytelen pont indexek - Multiple point indices - Több pontos indexek + Multiple point indices + Több pontos indexek - Non-manifolds - Nem szthatók + Non-manifolds + Nem szthatók - Cannot remove non-manifolds - Nem lehet eltávolítani a nem-szétágazottakat + Cannot remove non-manifolds + Nem lehet eltávolítani a nem-szétágazottakat - No selection - Nincs kijelölés + No selection + Nincs kijelölés - No flipped normals - Nincsenek tükrözött normálisok + No flipped normals + Nincsenek tükrözött normálisok - %1 flipped normals - %1 tükrözött normalisok + %1 flipped normals + %1 tükrözött normalisok - No non-manifolds - Nincsenek nem-szétágazottak + No non-manifolds + Nincsenek nem-szétágazottak - %1 non-manifolds - %1 nem-szétágazott + %1 non-manifolds + %1 nem-szétágazott - No invalid indices - Nincsenek érvénytelen indexek + No invalid indices + Nincsenek érvénytelen indexek - No degenerations - Nincs elváltozás + No degenerations + Nincs elváltozás - %1 degenerated faces - %1 elváltozott felület + %1 degenerated faces + %1 elváltozott felület - No duplicated faces - Nincsenek duplikált felületek + No duplicated faces + Nincsenek duplikált felületek - %1 duplicated faces - %1 duplikált felület + %1 duplicated faces + %1 duplikált felület - No duplicated points - Nincsenek duplikált pontok + No duplicated points + Nincsenek duplikált pontok - Duplicated points - Pontok megkettÅ‘zése + Duplicated points + Pontok megkettÅ‘zése - Orientation - Tájolás + Orientation + Tájolás - Indices - Indexek + Indices + Indexek - Degenerations - Elváltozás + Degenerations + Elváltozás - Duplicated faces - Felületek megduplázása + Duplicated faces + Felületek megduplázása - No self-intersections - Nem belsÅ‘-csomópontok + No self-intersections + Nem belsÅ‘-csomópontok - Self-intersections - Saját csomópontok + Self-intersections + Saját csomópontok - Mesh repair - Háló javítása + Mesh repair + Háló javítása - Flipped normals found - Tükrözött normalist talált + Flipped normals found + Tükrözött normalist talált - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - A felület hajlításának ellenÅ‘rzése nem sikerült. + A felület hajlításának ellenÅ‘rzése nem sikerült. Kérjük elÅ‘ször futtassa a hajlítás javítása parancsot - No folds on surface - Nem hajítható felület + No folds on surface + Nem hajítható felület - %1 folds on surface - %1 felület hajlítása + %1 folds on surface + %1 felület hajlítása - Folds - Hajlítás + Folds + Hajlítás - - + + MeshGui::DlgRegularSolid - Regular Solid - Szabályos szilárd test + Regular Solid + Szabályos szilárd test - &Create - &Létrehozás + &Create + &Létrehozás - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Bezár + Cl&ose + Bezár - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Szilárd test: + Solid: + Szilárd test: - Cube - Kocka + Cube + Kocka - Cylinder - Henger + Cylinder + Henger - Cone - Kúp + Cone + Kúp - Sphere - Gömb + Sphere + Gömb - Ellipsoid - Ellipszoid + Ellipsoid + Ellipszoid - Torus - Tórusz + Torus + Tórusz - Height: - Magasság: + Height: + Magasság: - Length: - Hossz: + Length: + Hossz: - Width: - Szélesség: + Width: + Szélesség: - Radius: - Sugár: + Radius: + Sugár: - Closed - Zárva + Closed + Zárva - Sampling: - Mintavétel: + Sampling: + Mintavétel: - Edge length: - Él hossz: + Edge length: + Él hossz: - Radius 1: - Sugár 1: + Radius 1: + Sugár 1: - Radius 2: - Sugár 2: + Radius 2: + Sugár 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Létrehozás %1 + Create %1 + Létrehozás %1 - No active document - Nincs aktív dokumentum + No active document + Nincs aktív dokumentum - - + + MeshGui::DlgSettingsMeshView - Mesh view - Háló nézet + Mesh view + Háló nézet - Two-side rendering - Két oldali renderelés + Two-side rendering + Két oldali renderelés - Backface color - Hátsó lap szín + Backface color + Hátsó lap szín - Smoothing - Simítás + Smoothing + Simítás - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ha a két felület között bezárt szög kisebb mint a gyűrÅ‘dési szög, akkor a közös élen található felületek simák maradnak.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ha a két felület között bezárt szög kisebb mint a gyűrÅ‘dési szög, akkor a közös élen található felületek simák maradnak.</p></body></html> - Crease angle - GyűrÅ‘dési szög + Crease angle + GyűrÅ‘dési szög - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A lapos árnyékolással a felületi normák nem vertexként definiáltak, így az ívelt felületek írreálisan jelenik meg, azonban Pong árnyékolásnál simábban jelennek meg. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A lapos árnyékolással a felületi normák nem vertexként definiáltak, így az ívelt felületek írreálisan jelenik meg, azonban Pong árnyékolásnál simábban jelennek meg. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Normál vertex meghatározás + Define normal per vertex + Normál vertex meghatározás + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A normálisok vertexként való megjelenítését úgy is nevezik, hogy<span style=" font-style:italic;">Phong árnyékolás</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A normálisok vertexként való megjelenítését úgy is nevezik, hogy<span style=" font-style:italic;">Phong árnyékolás</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Új háló alapértelmezett megjelenítése - Default appearance for new meshes - Új háló alapértelmezett megjelenítése + Default line color + Alapértelmezett vonalszín - Default line color - Alapértelmezett vonalszín + Mesh transparency + Háló átlátszóság - Mesh transparency - Háló átlátszóság + Default mesh color + Alapértelmezett Rácsvonal szín - Default mesh color - Alapértelmezett Rácsvonal szín + Show bounding-box for highlighted or selected meshes + Határolókeretben mutatja a kiemelt vagy kiválasztott hálókat - Show bounding-box for highlighted or selected meshes - Határolókeretben mutatja a kiemelt vagy kiválasztott hálókat + Line transparency + Vonal átlátszóság - - Line transparency - Vonal átlátszóság - - - + + MeshGui::DlgSmoothing - Smoothing - Simítás + Smoothing + Simítás - Method - Módszer + Method + Módszer - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Paraméter + Parameter + Paraméter - Iterations: - Lépésszám: + Iterations: + Lépésszám: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Háromszöget adjon hozzá + Add triangle + Háromszöget adjon hozzá - Flip normal - Normál tükrözés + Flip normal + Normál tükrözés - Clear - Tiszta + Clear + Tiszta - Finish - Befejezés + Finish + Befejezés - - + + MeshGui::RemoveComponents - Remove components - ÖsszetevÅ‘k eltávolítása + Remove components + ÖsszetevÅ‘k eltávolítása - Select - Kijelölés + Select + Kijelölés - Select whole component - ÖsszetevÅ‘ kiválasztása + Select whole component + ÖsszetevÅ‘ kiválasztása - Pick triangle - Háromszög választása + Pick triangle + Háromszög választása - < faces than - <nézd mint + < faces than + <nézd mint - Region - Régió + Region + Régió - Components - ÖsszetevÅ‘k + Components + ÖsszetevÅ‘k - All - Minden + All + Minden - Deselect - Kijelölés megszüntetése + Deselect + Kijelölés megszüntetése - Deselect whole component - Kijelölés megszüntetése az egész alkatrészen + Deselect whole component + Kijelölés megszüntetése az egész alkatrészen - > faces than - >nézd mint + > faces than + >nézd mint - Region options - Területi beállítások + Region options + Területi beállítások - Respect only triangles with normals facing screen - Csak a normál felülettel kijelzett háromszögeket részesíti elÅ‘nybern + Respect only triangles with normals facing screen + Csak a normál felülettel kijelzett háromszögeket részesíti elÅ‘nybern - Respect only visible triangles - Csak a látható háromszögek figyelembevétele + Respect only visible triangles + Csak a látható háromszögek figyelembevétele - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Henger + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Gömb + + + MeshGui::TaskRemoveComponents - Delete - Töröl + Delete + Töröl - Invert - Invertálás + Invert + Invertálás - - + + QDockWidget - Evaluate & Repair Mesh - Háló értékelése & javítása + Evaluate & Repair Mesh + Háló értékelése & javítása - - + + QObject - Import mesh - Háló importálása + Import mesh + Háló importálása - Export mesh - Háló exportálása + Export mesh + Háló exportálása - Solid Mesh - Szilárde test háló + Solid Mesh + Szilárde test háló - Boundings - Csatlakozások + Boundings + Csatlakozások - Fill holes - Lyukak kitöltése + Fill holes + Lyukak kitöltése - Fill holes with maximum number of edges: - Töltse ki a lyukakat maximális számú élekkel: + Fill holes with maximum number of edges: + Töltse ki a lyukakat maximális számú élekkel: - Binary STL (*.stl) - Bináris STL (*.stl) + Binary STL (*.stl) + Bináris STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Bináris háló (*.bms) + Binary Mesh (*.bms) + Bináris háló (*.bms) - Alias Mesh (*.obj) - Alias háló (*.obj) + Alias Mesh (*.obj) + Alias háló (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Minden fájl (*. *) + All Files (*.*) + Minden fájl (*. *) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML 2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML 2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Tömörített VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Tömörített VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python modul def (*.py) + Python module def (*.py) + Python modul def (*.py) - Meshing Tolerance - Hálózás tűrése + Meshing Tolerance + Hálózás tűrése - Enter tolerance for meshing geometry: - Adja meg a tűrést az erÅ‘vonal geometriájának: + Enter tolerance for meshing geometry: + Adja meg a tűrést az erÅ‘vonal geometriájának: - The mesh '%1' is a solid. - A(z)'%1' háló egy szilárd test. + The mesh '%1' is a solid. + A(z)'%1' háló egy szilárd test. - The mesh '%1' is not a solid. - A(z)'%1' háló nem szilárd test. + The mesh '%1' is not a solid. + A(z)'%1' háló nem szilárd test. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Pontok: %1, Élek: %2 Felületek: %3] + [Points: %1, Edges: %2 Faces: %3] + [Pontok: %1, Élek: %2 Felületek: %3] - Leave info mode - Hagyja az info módot + Leave info mode + Hagyja az info módot - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Hagyja lyuk betöltÅ‘ üzemmódban + Leave hole-filling mode + Hagyja lyuk betöltÅ‘ üzemmódban - Leave removal mode - Hagyja eltávolítása módban + Leave removal mode + Hagyja eltávolítása módban - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Minden háló Fájl (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Minden háló Fájl (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Standford Polygon (*.ply) + Stanford Polygon (*.ply) + Standford Polygon (*.ply) - Object File Format (*.off) - Objektum formátum (*.off) + Object File Format (*.off) + Objektum formátum (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Törli a kijelölt felületeket + Delete selected faces + Törli a kijelölt felületeket - Clear selected faces - Kijelölt felületek törlése + Clear selected faces + Kijelölt felületek törlése - Annotation - Jegyzet + Annotation + Jegyzet - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Elemzése + Analyze + Elemzése - Boolean - Logikai érték + Boolean + Logikai érték - &Meshes - &Behálóz + &Meshes + &Behálóz - Mesh tools - Háló eszközök + Mesh tools + Háló eszközök - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_it.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_it.ts index 5d145f07d..ccc7fb043 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_it.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_it.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Mesh + Mesh + Mesh - Add triangle - Aggiungi triangolo + Add triangle + Aggiungi triangolo - Add triangle manually to a mesh - Aggiunge manualmente un triangolo alla mesh + Add triangle manually to a mesh + Aggiunge manualmente un triangolo alla mesh - - + + CmdMeshBoundingBox - Mesh - Mesh + Mesh + Mesh - Boundings info... - Dettagli sulle connessioni... + Boundings info... + Dettagli sulle connessioni... - Shows the boundings of the selected mesh - Mostra le connessioni della mesh selezionata + Shows the boundings of the selected mesh + Mostra le connessioni della mesh selezionata - - + + CmdMeshBuildRegularSolid - Mesh - Mesh + Mesh + Mesh - Regular solid... - Solido regolare... + Regular solid... + Solido regolare... - Builds a regular solid - Costruisce un solido regolare + Builds a regular solid + Costruisce un solido regolare - - + + CmdMeshDemolding - Interactive demolding direction - Direzione di demodellazione interattiva + Interactive demolding direction + Direzione di demodellazione interattiva - Mesh - Mesh + Mesh + Mesh - - + + CmdMeshDifference - Mesh - Mesh + Mesh + Mesh - Difference - Differenza + Difference + Differenza - - + + CmdMeshEvaluateFacet - Mesh - Mesh + Mesh + Mesh - Face info - Dettagli faccia + Face info + Dettagli faccia - Information about face - Informazioni sulla faccia + Information about face + Informazioni sulla faccia - - + + CmdMeshEvaluateSolid - Mesh - Mesh + Mesh + Mesh - Check solid mesh - Controlla la mesh del solido + Check solid mesh + Controlla la mesh del solido - Checks whether the mesh is a solid - Controlla se la mesh è un solido + Checks whether the mesh is a solid + Controlla se la mesh è un solido - - + + CmdMeshEvaluation - Mesh - Mesh + Mesh + Mesh - Opens a dialog to analyze and repair a mesh - Apre una finestra di dialogo per analizzare e riparare una mesh + Opens a dialog to analyze and repair a mesh + Apre una finestra di dialogo per analizzare e riparare una mesh - Evaluate && Repair mesh... - Analizza && Ripara la mesh... + Evaluate && Repair mesh... + Analizza && Ripara la mesh... - - + + CmdMeshExMakeMesh - Mesh - Mesh + Mesh + Mesh - Make a Box - Crea un prisma + Make a Box + Crea un prisma - - + + CmdMeshExMakeTool - Mesh - Mesh + Mesh + Mesh - Make a Tool - Crea uno strumento + Make a Tool + Crea uno strumento - - + + CmdMeshExMakeUnion - Mesh - Mesh + Mesh + Mesh - Make Union - Crea un'unione + Make Union + Crea un'unione - - + + CmdMeshExport - Mesh - Mesh + Mesh + Mesh - Export mesh... - Esporta mesh... + Export mesh... + Esporta mesh... - Exports a mesh to file - Esporta la mesh in un file + Exports a mesh to file + Esporta la mesh in un file - - + + CmdMeshFillInteractiveHole - Mesh - Mesh + Mesh + Mesh - Close hole - Chiudi il foro + Close hole + Chiudi il foro - Close holes interactively - Chiudi i fori in modo interattivo + Close holes interactively + Chiudi i fori in modo interattivo - - + + CmdMeshFillupHoles - Mesh - Mesh + Mesh + Mesh - Fill holes... - Riempi i fori... + Fill holes... + Riempi i fori... - Fill holes of the mesh - Riempi i fori della mesh + Fill holes of the mesh + Riempi i fori della mesh - - + + CmdMeshFlipNormals - Mesh - Mesh + Mesh + Mesh - Flip normals - Inverti le normali + Flip normals + Inverti le normali - Flips the normals of the mesh - Inverte le normali della mesh + Flips the normals of the mesh + Inverte le normali della mesh - - + + CmdMeshFromGeometry - Mesh - Mesh + Mesh + Mesh - Create mesh from geometry... - Crea una mesh da una geometria... + Create mesh from geometry... + Crea una mesh da una geometria... - Create mesh from the selected geometry - Crea una mesh dalla geometria selezionata + Create mesh from the selected geometry + Crea una mesh dalla geometria selezionata - - + + CmdMeshHarmonizeNormals - Mesh - Mesh + Mesh + Mesh - Harmonize normals - Armonizza le normali + Harmonize normals + Armonizza le normali - Harmonizes the normals of the mesh - Armonizza le normali della mesh + Harmonizes the normals of the mesh + Armonizza le normali della mesh - - + + CmdMeshImport - Mesh - Mesh + Mesh + Mesh - Import mesh... - Importa mesh... + Import mesh... + Importa mesh... - Imports a mesh from file - Importa una mesh da file + Imports a mesh from file + Importa una mesh da file - - + + CmdMeshIntersection - Mesh - Mesh + Mesh + Mesh - Intersection - Intersezione + Intersection + Intersezione - - + + CmdMeshPolyCut - Mesh - Mesh + Mesh + Mesh - Cut mesh - Taglia la mesh + Cut mesh + Taglia la mesh - Cuts a mesh with a picked polygon - Taglia la mesh con un poligono + Cuts a mesh with a picked polygon + Taglia la mesh con un poligono - - + + CmdMeshPolySegm - Mesh - Mesh + Mesh + Mesh - Make segment - Crea un segmento + Make segment + Crea un segmento - Creates a mesh segment - Crea un segmento di mesh + Creates a mesh segment + Crea un segmento di mesh - - + + CmdMeshPolySelect - Mesh - Mesh + Mesh + Mesh - Select mesh - Seleziona mesh + Select mesh + Seleziona mesh - Select an area of the mesh - Seleziona un'area della mesh + Select an area of the mesh + Seleziona un'area della mesh - - + + CmdMeshPolySplit - Mesh - Mesh + Mesh + Mesh - Split mesh - Dividi la mesh + Split mesh + Dividi la mesh - Splits a mesh into two meshes - Divide la mesh in due mesh + Splits a mesh into two meshes + Divide la mesh in due mesh - - + + + CmdMeshPolyTrim + + Mesh + Mesh + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mesh + Mesh + Mesh - Remove components by hand... - Rimuovi componenti a mano... + Remove components by hand... + Rimuovi componenti a mano... - Mark a component to remove it from the mesh - Segna un componente per rimuoverlo dalla mesh + Mark a component to remove it from the mesh + Segna un componente per rimuoverlo dalla mesh - - + + CmdMeshRemoveComponents - Mesh - Mesh + Mesh + Mesh - Remove components... - Rimuovi componente... + Remove components... + Rimuovi componente... - Remove topologic independent components from the mesh - Rimuove i componenti topologici indipendenti dalla mesh + Remove topologic independent components from the mesh + Rimuove i componenti topologici indipendenti dalla mesh - - + + + CmdMeshSegmentation + + Mesh + Mesh + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mesh + Mesh + Mesh - Smooth... - Leviga... + Smooth... + Leviga... - Smooth the selected meshes - Leviga le mesh selezionate + Smooth the selected meshes + Leviga le mesh selezionate - - + + CmdMeshToolMesh - Mesh - Mesh + Mesh + Mesh - Segment by tool mesh - Segmento da strumento di mesh + Segment by tool mesh + Segmento da strumento di mesh - Creates a segment from a given tool mesh - Crea un segmento da uno strumento di mesh dato + Creates a segment from a given tool mesh + Crea un segmento da uno strumento di mesh dato - - + + CmdMeshTransform - Mesh - Mesh + Mesh + Mesh - Transform mesh - Trasforma la mesh + Transform mesh + Trasforma la mesh - Rotate or move a mesh - Ruota o muove una mesh + Rotate or move a mesh + Ruota o muove una mesh - - + + CmdMeshUnion - Mesh - Mesh + Mesh + Mesh - Union - Unione + Union + Unione - - + + CmdMeshVertexCurvature - Mesh - Mesh + Mesh + Mesh - Calculates the curvature of the vertices of a mesh - Calcola la curvatura dei vertici di una mesh + Calculates the curvature of the vertices of a mesh + Calcola la curvatura dei vertici di una mesh - Curvature plot - Colora curvatura + Curvature plot + Colora curvatura - - + + CmdMeshVertexCurvatureInfo - Mesh - Mesh + Mesh + Mesh - Curvature info - Dettagli curvatura + Curvature info + Dettagli curvatura - Information about curvature - Informazioni sulla curvatura + Information about curvature + Informazioni sulla curvatura - - + + MeshGui::DlgEvaluateMesh - &Help - &Aiuto + &Help + &Aiuto - F1 - F1 + F1 + F1 - &Close - &Chiudi + &Close + &Chiudi - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Informazioni sulla mesh + Mesh information + Informazioni sulla mesh - No information - Nessuna informazione + No information + Nessuna informazione - Number of points: - Numero di punti: + Number of points: + Numero di punti: - Number of edges: - Numero di spigoli: + Number of edges: + Numero di spigoli: - Refresh - Aggiorna + Refresh + Aggiorna - Analyze - Analizza + Analyze + Analizza - Repair - Ripara + Repair + Ripara - Orientation - Orientamento + Orientation + Orientamento - Degenerated faces - Facce degenerate + Degenerated faces + Facce degenerate - Face indices - Indici faccia + Face indices + Indici faccia - Number of faces: - Numero di facce: + Number of faces: + Numero di facce: - Duplicated faces - Facce duplicate + Duplicated faces + Facce duplicate - Duplicated points - Punti duplicati + Duplicated points + Punti duplicati - Non-manifolds - Non molteplici + Non-manifolds + Non molteplici - Self-intersections - Auto-intersezioni + Self-intersections + Auto-intersezioni - All above tests together - Tutti i test insieme + All above tests together + Tutti i test insieme - Repetitive repair - Riparazione ripetitiva + Repetitive repair + Riparazione ripetitiva - Evaluate & Repair Mesh - Analizza & Ripara la mesh + Evaluate & Repair Mesh + Analizza & Ripara la mesh - Folds on surface - Pieghe sulla superficie + Folds on surface + Pieghe sulla superficie - - + + MeshGui::DlgEvaluateMeshImp - No information - Nessuna informazione + No information + Nessuna informazione - Invalid neighbour indices - Indici vicini non validi + Invalid neighbour indices + Indici vicini non validi - Invalid face indices - Indici faccia non validi + Invalid face indices + Indici faccia non validi - Invalid point indices - Indici punto non validi + Invalid point indices + Indici punto non validi - Multiple point indices - Indici punto multipli + Multiple point indices + Indici punto multipli - Non-manifolds - Non molteplici + Non-manifolds + Non molteplici - Cannot remove non-manifolds - non è possibile rimuovere i non molteplici + Cannot remove non-manifolds + non è possibile rimuovere i non molteplici - No selection - Nessuna selezione + No selection + Nessuna selezione - No flipped normals - Nessuna normale invertita + No flipped normals + Nessuna normale invertita - %1 flipped normals - %1 normali invertite + %1 flipped normals + %1 normali invertite - No non-manifolds - Nessun non molteplici + No non-manifolds + Nessun non molteplici - %1 non-manifolds - %1 non molteplici + %1 non-manifolds + %1 non molteplici - No invalid indices - Nessun indice non valido + No invalid indices + Nessun indice non valido - No degenerations - Nessuna degenerazione + No degenerations + Nessuna degenerazione - %1 degenerated faces - %1 facce degenerate + %1 degenerated faces + %1 facce degenerate - No duplicated faces - Nessuna faccia duplicata + No duplicated faces + Nessuna faccia duplicata - %1 duplicated faces - %1 facce duplicate + %1 duplicated faces + %1 facce duplicate - No duplicated points - Nessun punto duplicato + No duplicated points + Nessun punto duplicato - Duplicated points - Punti duplicati + Duplicated points + Punti duplicati - Orientation - Orientamento + Orientation + Orientamento - Indices - Indici + Indices + Indici - Degenerations - Degenerazioni + Degenerations + Degenerazioni - Duplicated faces - Facce duplicate + Duplicated faces + Facce duplicate - No self-intersections - Nessuna auto-intersezione + No self-intersections + Nessuna auto-intersezione - Self-intersections - Auto-intersezioni + Self-intersections + Auto-intersezioni - Mesh repair - Ripara la mesh + Mesh repair + Ripara la mesh - Flipped normals found - Trovate normali invertite + Flipped normals found + Trovate normali invertite - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Controllo non riuscito a causa di pieghe sulla superficie. Eseguire il comando per riparare pieghe prima + Controllo non riuscito a causa di pieghe sulla superficie. Eseguire il comando per riparare pieghe prima - No folds on surface - Nessuna piega sulla superficie + No folds on surface + Nessuna piega sulla superficie - %1 folds on surface - %1 pieghe sulla superficie + %1 folds on surface + %1 pieghe sulla superficie - Folds - Pieghe + Folds + Pieghe - - + + MeshGui::DlgRegularSolid - Regular Solid - Solido regolare + Regular Solid + Solido regolare - &Create - &Crea + &Create + &Crea - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Ch&iudi + Cl&ose + Ch&iudi - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solido: + Solid: + Solido: - Cube - Cubo + Cube + Cubo - Cylinder - Cilindro + Cylinder + Cilindro - Cone - Cono + Cone + Cono - Sphere - Sfera + Sphere + Sfera - Ellipsoid - Ellissoide + Ellipsoid + Ellissoide - Torus - Toro + Torus + Toro - Height: - Altezza: + Height: + Altezza: - Length: - Lunghezza: + Length: + Lunghezza: - Width: - Larghezza: + Width: + Larghezza: - Radius: - Raggio: + Radius: + Raggio: - Closed - Chiuso + Closed + Chiuso - Sampling: - Campionatura: + Sampling: + Campionatura: - Edge length: - Lunghezza spigolo: + Edge length: + Lunghezza spigolo: - Radius 1: - Raggio 1: + Radius 1: + Raggio 1: - Radius 2: - Raggio 2: + Radius 2: + Raggio 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Crea %1 + Create %1 + Crea %1 - No active document - Nessun documento attivo + No active document + Nessun documento attivo - - + + MeshGui::DlgSettingsMeshView - Mesh view - Visualizzazione Mesh + Mesh view + Visualizzazione Mesh - Two-side rendering - Render di entrambi i lati + Two-side rendering + Render di entrambi i lati - Backface color - Colore della faccia posteriore + Backface color + Colore della faccia posteriore - Smoothing - Leviga + Smoothing + Leviga - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Questo è il più piccolo angolo tra due facce nel caso in cui le normali sono calcolate per ottenere un’ombreggiatura di tipo flat. </p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Se l'angolo tra le normali di due facce vicine è minore dell'angolo di piega, le facce saranno levigate in prossimità del loro spigolo comune.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Questo è il più piccolo angolo tra due facce nel caso in cui le normali sono calcolate per ottenere un’ombreggiatura di tipo flat. </p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Se l'angolo tra le normali di due facce vicine è minore dell'angolo di piega, le facce saranno levigate in prossimità del loro spigolo comune.</p></body></html> - Crease angle - Angolo di piega + Crease angle + Angolo di piega - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Ombreggiatura Flat/Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definisce l’aspetto delle superfici.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Con l’ombreggiatura flat le normali alla superficie non sono definite per vertice il che conduce ad un aspetto non reale per le superfici curve mentre l’ombreggiatura di Phong porta ad un aspetto più liscio. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Se questa opzione è selezionata sarà utilizzata l’ombreggiatura di Phong , altrimenti sarà utilizzata l’ombreggiatura flat.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Ombreggiatura Flat/Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definisce l’aspetto delle superfici.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Con l’ombreggiatura flat le normali alla superficie non sono definite per vertice il che conduce ad un aspetto non reale per le superfici curve mentre l’ombreggiatura di Phong porta ad un aspetto più liscio. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Se questa opzione è selezionata sarà utilizzata l’ombreggiatura di Phong , altrimenti sarà utilizzata l’ombreggiatura flat.</p></body></html> - Define normal per vertex - Definisci le normali per vertice + Define normal per vertex + Definisci le normali per vertice + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Suggerimento</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definire le normali per vertice è chiamato anche <span style=" font-style:italic;"> ombreggiatura di Phong </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;"> mentre definire le normali per faccia è chiamato anche </span> ombreggiatura Flat<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Suggerimento</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definire le normali per vertice è chiamato anche <span style=" font-style:italic;"> ombreggiatura di Phong </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;"> mentre definire le normali per faccia è chiamato anche </span> ombreggiatura Flat<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Aspetto predefinito per le nuove mesh - Default appearance for new meshes - Aspetto predefinito per le nuove mesh + Default line color + Colore predefinito della linea - Default line color - Colore predefinito della linea + Mesh transparency + Trasparenza della mesh - Mesh transparency - Trasparenza della mesh + Default mesh color + Colore predefinito della mesh - Default mesh color - Colore predefinito della mesh + Show bounding-box for highlighted or selected meshes + Mostra riquadro per le mesh evidenziate o selezionate - Show bounding-box for highlighted or selected meshes - Mostra riquadro per le mesh evidenziate o selezionate + Line transparency + Trasparenza della linea - - Line transparency - Trasparenza della linea - - - + + MeshGui::DlgSmoothing - Smoothing - Leviga + Smoothing + Leviga - Method - Metodo + Method + Metodo - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parametro + Parameter + Parametro - Iterations: - Iterazioni: + Iterations: + Iterazioni: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Aggiungi triangolo + Add triangle + Aggiungi triangolo - Flip normal - Inverti la normale + Flip normal + Inverti la normale - Clear - Cancella + Clear + Cancella - Finish - Termina + Finish + Termina - - + + MeshGui::RemoveComponents - Remove components - Rimuovi componenti + Remove components + Rimuovi componenti - Select - Seleziona + Select + Seleziona - Select whole component - Seleziona l'intero componente + Select whole component + Seleziona l'intero componente - Pick triangle - Scegli il triangolo + Pick triangle + Scegli il triangolo - < faces than - Facce minori di + < faces than + Facce minori di - Region - Regione + Region + Regione - Components - Componenti + Components + Componenti - All - Tutti + All + Tutti - Deselect - Deseleziona + Deselect + Deseleziona - Deselect whole component - Deseleziona l'intero componente + Deselect whole component + Deseleziona l'intero componente - > faces than - Facce maggiori di + > faces than + Facce maggiori di - Region options - Opzioni regione + Region options + Opzioni regione - Respect only triangles with normals facing screen - Rispetta solo i triangoli con le normali in direzione dello schermo + Respect only triangles with normals facing screen + Rispetta solo i triangoli con le normali in direzione dello schermo - Respect only visible triangles - Rispetta solo i triangoli visibili + Respect only visible triangles + Rispetta solo i triangoli visibili - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cilindro + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sfera + + + MeshGui::TaskRemoveComponents - Delete - Elimina + Delete + Elimina - Invert - Inverti + Invert + Inverti - - + + QDockWidget - Evaluate & Repair Mesh - Analizza & Ripara la mesh + Evaluate & Repair Mesh + Analizza & Ripara la mesh - - + + QObject - Import mesh - Importa mesh + Import mesh + Importa mesh - Export mesh - Esporta mesh + Export mesh + Esporta mesh - Solid Mesh - Mesh solida + Solid Mesh + Mesh solida - Boundings - Connessioni + Boundings + Connessioni - Fill holes - Riempi i fori + Fill holes + Riempi i fori - Fill holes with maximum number of edges: - Riempi i fori con il numero massimo di spigoli: + Fill holes with maximum number of edges: + Riempi i fori con il numero massimo di spigoli: - Binary STL (*.stl) - STL binario (*.stl) + Binary STL (*.stl) + STL binario (*.stl) - ASCII STL (*.ast) - STL ASCII (*.ast) + ASCII STL (*.ast) + STL ASCII (*.ast) - Binary Mesh (*.bms) - Mesh Binario (*.bms) + Binary Mesh (*.bms) + Mesh Binario (*.bms) - Alias Mesh (*.obj) - Alias mesh (*.obj) + Alias Mesh (*.obj) + Alias mesh (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Tutti i file (*.*) + All Files (*.*) + Tutti i file (*.*) - ASCII STL (*.stl) - STL ASCII (*.ast) + ASCII STL (*.stl) + STL ASCII (*.ast) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - VRML 2.0 compresso (*.wrz) + Compressed VRML 2.0 (*.wrz) + VRML 2.0 compresso (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Modulo Python (*.py) + Python module def (*.py) + Modulo Python (*.py) - Meshing Tolerance - Tolleranza Mesh + Meshing Tolerance + Tolleranza Mesh - Enter tolerance for meshing geometry: - Inserisci la tolleranza per la geometria della mesh + Enter tolerance for meshing geometry: + Inserisci la tolleranza per la geometria della mesh - The mesh '%1' is a solid. - La mesh '%1' è un solido. + The mesh '%1' is a solid. + La mesh '%1' è un solido. - The mesh '%1' is not a solid. - La mesh '%1' non è un solido. + The mesh '%1' is not a solid. + La mesh '%1' non è un solido. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punti: %1, Spigoli: %2 Facce: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punti: %1, Spigoli: %2 Facce: %3] - Leave info mode - Permetti modo info + Leave info mode + Permetti modo info - Index: %1 - Indice: %1 + Index: %1 + Indice: %1 - Leave hole-filling mode - Permetti modo riempimento fori + Leave hole-filling mode + Permetti modo riempimento fori - Leave removal mode - permetti modo rimozione + Leave removal mode + permetti modo rimozione - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Tutti i file mesh (*.stl *.ast *.BMS *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Tutti i file mesh (*.stl *.ast *.BMS *.obj *.ply) - Stanford Polygon (*.ply) - Poligono di Stanford (*.ply) + Stanford Polygon (*.ply) + Poligono di Stanford (*.ply) - Object File Format (*.off) - Formato file oggetto (*.off) + Object File Format (*.off) + Formato file oggetto (*.off) - Standford Polygon (*.ply) - Poligono di Standford (*.ply) + Standford Polygon (*.ply) + Poligono di Standford (*.ply) - Delete selected faces - Elimina le facce selezionate + Delete selected faces + Elimina le facce selezionate - Clear selected faces - Cancella le facce selezionate + Clear selected faces + Cancella le facce selezionate - Annotation - Annotazione + Annotation + Annotazione - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analizza + Analyze + Analizza - Boolean - Operazione booleana + Boolean + Operazione booleana - &Meshes - &Mesh + &Meshes + &Mesh - Mesh tools - Strumenti Mesh + Mesh tools + Strumenti Mesh - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ja.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ja.ts index 73ae9e97f..4625bfcd2 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ja.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ja.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Mesh + Mesh + Mesh - Add triangle - 三角形を追加 + Add triangle + 三角形を追加 - Add triangle manually to a mesh - Add triangle manually to a mesh + Add triangle manually to a mesh + Add triangle manually to a mesh - - + + CmdMeshBoundingBox - Mesh - Mesh + Mesh + Mesh - Boundings info... - Boundings info... + Boundings info... + Boundings info... - Shows the boundings of the selected mesh - Shows the boundings of the selected mesh + Shows the boundings of the selected mesh + Shows the boundings of the selected mesh - - + + CmdMeshBuildRegularSolid - Mesh - Mesh + Mesh + Mesh - Regular solid... - Regular solid... + Regular solid... + Regular solid... - Builds a regular solid - Builds a regular solid + Builds a regular solid + Builds a regular solid - - + + CmdMeshDemolding - Interactive demolding direction - Interactive demolding direction + Interactive demolding direction + Interactive demolding direction - Mesh - Mesh + Mesh + Mesh - - + + CmdMeshDifference - Mesh - Mesh + Mesh + Mesh - Difference - Difference + Difference + Difference - - + + CmdMeshEvaluateFacet - Mesh - Mesh + Mesh + Mesh - Face info - é¢ã®æƒ…å ± + Face info + é¢ã®æƒ…å ± - Information about face - Information about face + Information about face + Information about face - - + + CmdMeshEvaluateSolid - Mesh - Mesh + Mesh + Mesh - Check solid mesh - Check solid mesh + Check solid mesh + Check solid mesh - Checks whether the mesh is a solid - Checks whether the mesh is a solid + Checks whether the mesh is a solid + Checks whether the mesh is a solid - - + + CmdMeshEvaluation - Mesh - Mesh + Mesh + Mesh - Opens a dialog to analyze and repair a mesh - Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh - Evaluate && Repair mesh... - Evaluate && Repair mesh... + Evaluate && Repair mesh... + Evaluate && Repair mesh... - - + + CmdMeshExMakeMesh - Mesh - Mesh + Mesh + Mesh - Make a Box - Make a Box + Make a Box + Make a Box - - + + CmdMeshExMakeTool - Mesh - Mesh + Mesh + Mesh - Make a Tool - Make a Tool + Make a Tool + Make a Tool - - + + CmdMeshExMakeUnion - Mesh - Mesh + Mesh + Mesh - Make Union - Make Union + Make Union + Make Union - - + + CmdMeshExport - Mesh - Mesh + Mesh + Mesh - Export mesh... - Export mesh... + Export mesh... + Export mesh... - Exports a mesh to file - メッシュをファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + Exports a mesh to file + メッシュをファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - - + + CmdMeshFillInteractiveHole - Mesh - Mesh + Mesh + Mesh - Close hole - Close hole + Close hole + Close hole - Close holes interactively - 対話形å¼ã§ç©´ã‚’é–‰ã˜ã‚‹ + Close holes interactively + 対話形å¼ã§ç©´ã‚’é–‰ã˜ã‚‹ - - + + CmdMeshFillupHoles - Mesh - Mesh + Mesh + Mesh - Fill holes... - ç©´ã‚’é–‰ã˜ã‚‹... + Fill holes... + ç©´ã‚’é–‰ã˜ã‚‹... - Fill holes of the mesh - メッシュã®ç©´ã‚’é–‰ã˜ã‚‹ + Fill holes of the mesh + メッシュã®ç©´ã‚’é–‰ã˜ã‚‹ - - + + CmdMeshFlipNormals - Mesh - Mesh + Mesh + Mesh - Flip normals - 法線をå転 + Flip normals + 法線をå転 - Flips the normals of the mesh - Flips the normals of the mesh + Flips the normals of the mesh + Flips the normals of the mesh - - + + CmdMeshFromGeometry - Mesh - Mesh + Mesh + Mesh - Create mesh from geometry... - Create mesh from geometry... + Create mesh from geometry... + Create mesh from geometry... - Create mesh from the selected geometry - Create mesh from the selected geometry + Create mesh from the selected geometry + Create mesh from the selected geometry - - + + CmdMeshHarmonizeNormals - Mesh - Mesh + Mesh + Mesh - Harmonize normals - Harmonize normals + Harmonize normals + Harmonize normals - Harmonizes the normals of the mesh - Harmonizes the normals of the mesh + Harmonizes the normals of the mesh + Harmonizes the normals of the mesh - - + + CmdMeshImport - Mesh - Mesh + Mesh + Mesh - Import mesh... - Import mesh... + Import mesh... + Import mesh... - Imports a mesh from file - Imports a mesh from file + Imports a mesh from file + Imports a mesh from file - - + + CmdMeshIntersection - Mesh - Mesh + Mesh + Mesh - Intersection - Intersection + Intersection + Intersection - - + + CmdMeshPolyCut - Mesh - Mesh + Mesh + Mesh - Cut mesh - Cut mesh + Cut mesh + Cut mesh - Cuts a mesh with a picked polygon - Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon - - + + CmdMeshPolySegm - Mesh - Mesh + Mesh + Mesh - Make segment - Make segment + Make segment + Make segment - Creates a mesh segment - Creates a mesh segment + Creates a mesh segment + Creates a mesh segment - - + + CmdMeshPolySelect - Mesh - Mesh + Mesh + Mesh - Select mesh - Select mesh + Select mesh + Select mesh - Select an area of the mesh - Select an area of the mesh + Select an area of the mesh + Select an area of the mesh - - + + CmdMeshPolySplit - Mesh - Mesh + Mesh + Mesh - Split mesh - Split mesh + Split mesh + Split mesh - Splits a mesh into two meshes - Splits a mesh into two meshes + Splits a mesh into two meshes + Splits a mesh into two meshes - - + + + CmdMeshPolyTrim + + Mesh + Mesh + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mesh + Mesh + Mesh - Remove components by hand... - Remove components by hand... + Remove components by hand... + Remove components by hand... - Mark a component to remove it from the mesh - Mark a component to remove it from the mesh + Mark a component to remove it from the mesh + Mark a component to remove it from the mesh - - + + CmdMeshRemoveComponents - Mesh - Mesh + Mesh + Mesh - Remove components... - Remove components... + Remove components... + Remove components... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Mesh + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mesh + Mesh + Mesh - Smooth... - Smooth... + Smooth... + Smooth... - Smooth the selected meshes - Smooth the selected meshes + Smooth the selected meshes + Smooth the selected meshes - - + + CmdMeshToolMesh - Mesh - Mesh + Mesh + Mesh - Segment by tool mesh - Segment by tool mesh + Segment by tool mesh + Segment by tool mesh - Creates a segment from a given tool mesh - Creates a segment from a given tool mesh + Creates a segment from a given tool mesh + Creates a segment from a given tool mesh - - + + CmdMeshTransform - Mesh - Mesh + Mesh + Mesh - Transform mesh - メッシュã«å¤‰æ›ã—ã¾ã™ã€‚ + Transform mesh + メッシュã«å¤‰æ›ã—ã¾ã™ã€‚ - Rotate or move a mesh - Rotate or move a mesh + Rotate or move a mesh + Rotate or move a mesh - - + + CmdMeshUnion - Mesh - Mesh + Mesh + Mesh - Union - Union + Union + Union - - + + CmdMeshVertexCurvature - Mesh - Mesh + Mesh + Mesh - Calculates the curvature of the vertices of a mesh - メッシュã®é ‚ç‚¹ã®æ›²çŽ‡ã‚’è¨ˆç®— + Calculates the curvature of the vertices of a mesh + メッシュã®é ‚ç‚¹ã®æ›²çŽ‡ã‚’è¨ˆç®— - Curvature plot - Curvature plot + Curvature plot + Curvature plot - - + + CmdMeshVertexCurvatureInfo - Mesh - Mesh + Mesh + Mesh - Curvature info - Curvature info + Curvature info + Curvature info - Information about curvature - Information about curvature + Information about curvature + Information about curvature - - + + MeshGui::DlgEvaluateMesh - &Help - ヘルプ (&H) + &Help + ヘルプ (&H) - F1 - F1 + F1 + F1 - &Close - é–‰ã˜ã‚‹ (&C) + &Close + é–‰ã˜ã‚‹ (&C) - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Mesh information + Mesh information + Mesh information - No information - No information + No information + No information - Number of points: - Number of points: + Number of points: + Number of points: - Number of edges: - ã‚¨ãƒƒã‚¸ã®æ•°: + Number of edges: + ã‚¨ãƒƒã‚¸ã®æ•°: - Refresh - æ›´æ–° + Refresh + æ›´æ–° - Analyze - Analyze + Analyze + Analyze - Repair - Repair + Repair + Repair - Orientation - å‘ã + Orientation + å‘ã - Degenerated faces - Degenerated faces + Degenerated faces + Degenerated faces - Face indices - Face indices + Face indices + Face indices - Number of faces: - é¢ã®æ•°ï¼š + Number of faces: + é¢ã®æ•°ï¼š - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - Self-intersections + Self-intersections + Self-intersections - All above tests together - All above tests together + All above tests together + All above tests together - Repetitive repair - Repetitive repair + Repetitive repair + Repetitive repair - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - Folds on surface - Folds on surface + Folds on surface + Folds on surface - - + + MeshGui::DlgEvaluateMeshImp - No information - No information + No information + No information - Invalid neighbour indices - Invalid neighbour indices + Invalid neighbour indices + Invalid neighbour indices - Invalid face indices - Invalid face indices + Invalid face indices + Invalid face indices - Invalid point indices - Invalid point indices + Invalid point indices + Invalid point indices - Multiple point indices - Multiple point indices + Multiple point indices + Multiple point indices - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Cannot remove non-manifolds + Cannot remove non-manifolds + Cannot remove non-manifolds - No selection - No selection + No selection + No selection - No flipped normals - No flipped normals + No flipped normals + No flipped normals - %1 flipped normals - %1 flipped normals + %1 flipped normals + %1 flipped normals - No non-manifolds - No non-manifolds + No non-manifolds + No non-manifolds - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - No invalid indices + No invalid indices + No invalid indices - No degenerations - No degenerations + No degenerations + No degenerations - %1 degenerated faces - %1 degenerated faces + %1 degenerated faces + %1 degenerated faces - No duplicated faces - No duplicated faces + No duplicated faces + No duplicated faces - %1 duplicated faces - %1 ã®é‡è¤‡é¢ + %1 duplicated faces + %1 ã®é‡è¤‡é¢ - No duplicated points - No duplicated points + No duplicated points + No duplicated points - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Orientation - å‘ã + Orientation + å‘ã - Indices - Indices + Indices + Indices - Degenerations - Degenerations + Degenerations + Degenerations - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - No self-intersections - No self-intersections + No self-intersections + No self-intersections - Self-intersections - Self-intersections + Self-intersections + Self-intersections - Mesh repair - Mesh repair + Mesh repair + Mesh repair - Flipped normals found - Flipped normals found + Flipped normals found + Flipped normals found - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - No folds on surface - No folds on surface + No folds on surface + No folds on surface - %1 folds on surface - %1 folds on surface + %1 folds on surface + %1 folds on surface - Folds - Folds + Folds + Folds - - + + MeshGui::DlgRegularSolid - Regular Solid - Regular Solid + Regular Solid + Regular Solid - &Create - &Create + &Create + &Create - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - é–‰ã˜ã‚‹(&O) + Cl&ose + é–‰ã˜ã‚‹(&O) - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solid: + Solid: + Solid: - Cube - Cube + Cube + Cube - Cylinder - Cylinder + Cylinder + Cylinder - Cone - Cone + Cone + Cone - Sphere - Sphere + Sphere + Sphere - Ellipsoid - Ellipsoid + Ellipsoid + Ellipsoid - Torus - Torus + Torus + Torus - Height: - Height: + Height: + Height: - Length: - Length: + Length: + Length: - Width: - 幅: + Width: + 幅: - Radius: - åŠå¾„: + Radius: + åŠå¾„: - Closed - Closed + Closed + Closed - Sampling: - Sampling: + Sampling: + Sampling: - Edge length: - エッジã®é•·ã•: + Edge length: + エッジã®é•·ã•: - Radius 1: - åŠå¾„ 1: + Radius 1: + åŠå¾„ 1: - Radius 2: - åŠå¾„ 2: + Radius 2: + åŠå¾„ 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Create %1 + Create %1 + Create %1 - No active document - No active document + No active document + No active document - - + + MeshGui::DlgSettingsMeshView - Mesh view - Mesh view + Mesh view + Mesh view - Two-side rendering - Two-side rendering + Two-side rendering + Two-side rendering - Backface color - Backface color + Backface color + Backface color - Smoothing - スムージング + Smoothing + スムージング - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Crease angle + Crease angle + Crease angle - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - 頂点ã”ã¨ã«æ³•線を定義ã—ã¾ã™ã€‚ + Define normal per vertex + 頂点ã”ã¨ã«æ³•線を定義ã—ã¾ã™ã€‚ + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">ヒント</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">頂点ã”ã¨ã«æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯<span style=" font-style:italic;">フォンシェーディング</span>ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">ã¾ãŸã€é¢ã”ã¨ã®æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯</span>フラットシェーディング<span style=" font-style:normal;">ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™ã€‚</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">ヒント</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">頂点ã”ã¨ã«æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯<span style=" font-style:italic;">フォンシェーディング</span>ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">ã¾ãŸã€é¢ã”ã¨ã®æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯</span>フラットシェーディング<span style=" font-style:normal;">ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™ã€‚</span> </p></body></html> + Default appearance for new meshes + Default appearance for new meshes - Default appearance for new meshes - Default appearance for new meshes + Default line color + デフォルトã®ç·šã®è‰² - Default line color - デフォルトã®ç·šã®è‰² + Mesh transparency + メッシュã®é€éŽæ€§ - Mesh transparency - メッシュã®é€éŽæ€§ + Default mesh color + Default mesh color - Default mesh color - Default mesh color + Show bounding-box for highlighted or selected meshes + Show bounding-box for highlighted or selected meshes - Show bounding-box for highlighted or selected meshes - Show bounding-box for highlighted or selected meshes + Line transparency + ç·šã®é€éŽæ€§ - - Line transparency - ç·šã®é€éŽæ€§ - - - + + MeshGui::DlgSmoothing - Smoothing - スムージング + Smoothing + スムージング - Method - メソッド + Method + メソッド - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - パラメータ + Parameter + パラメータ - Iterations: - Iterations: + Iterations: + Iterations: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - 三角形を追加 + Add triangle + 三角形を追加 - Flip normal - 法線を逆å‘ãã«è¨­å®š + Flip normal + 法線を逆å‘ãã«è¨­å®š - Clear - クリア + Clear + クリア - Finish - 完了 + Finish + 完了 - - + + MeshGui::RemoveComponents - Remove components - Remove components + Remove components + Remove components - Select - é¸æŠž + Select + é¸æŠž - Select whole component - Select whole component + Select whole component + Select whole component - Pick triangle - Pick triangle + Pick triangle + Pick triangle - < faces than - < faces than + < faces than + < faces than - Region - 領域 + Region + 領域 - Components - Components + Components + Components - All - ã™ã¹ã¦ + All + ã™ã¹ã¦ - Deselect - Deselect + Deselect + Deselect - Deselect whole component - Deselect whole component + Deselect whole component + Deselect whole component - > faces than - > faces than + > faces than + > faces than - Region options - 領域ã®ã‚ªãƒ—ション + Region options + 領域ã®ã‚ªãƒ—ション - Respect only triangles with normals facing screen - Respect only triangles with normals facing screen + Respect only triangles with normals facing screen + Respect only triangles with normals facing screen - Respect only visible triangles - Respect only visible triangles + Respect only visible triangles + Respect only visible triangles - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sphere + + + MeshGui::TaskRemoveComponents - Delete - 削除 + Delete + 削除 - Invert - å転 + Invert + å転 - - + + QDockWidget - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - - + + QObject - Import mesh - Import mesh + Import mesh + Import mesh - Export mesh - Export mesh + Export mesh + Export mesh - Solid Mesh - Solid Mesh + Solid Mesh + Solid Mesh - Boundings - Boundings + Boundings + Boundings - Fill holes - 穴を埋ã‚ã‚‹ + Fill holes + 穴を埋ã‚ã‚‹ - Fill holes with maximum number of edges: - Fill holes with maximum number of edges: + Fill holes with maximum number of edges: + Fill holes with maximum number of edges: - Binary STL (*.stl) - Binary STL (*.stl) + Binary STL (*.stl) + Binary STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Binary Mesh (*.bms) + Binary Mesh (*.bms) + Binary Mesh (*.bms) - Alias Mesh (*.obj) - Alias Mesh (*.obj) + Alias Mesh (*.obj) + Alias Mesh (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Compressed VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - PythonモジュールDEF(*.py) + Python module def (*.py) + PythonモジュールDEF(*.py) - Meshing Tolerance - Meshing Tolerance + Meshing Tolerance + Meshing Tolerance - Enter tolerance for meshing geometry: - Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: - The mesh '%1' is a solid. - 'ï¼…1'ã¯ã‚½ãƒªãƒƒãƒ‰ãƒ¡ãƒƒã‚·ãƒ¥ã§ã™ã€‚ + The mesh '%1' is a solid. + 'ï¼…1'ã¯ã‚½ãƒªãƒƒãƒ‰ãƒ¡ãƒƒã‚·ãƒ¥ã§ã™ã€‚ - The mesh '%1' is not a solid. - The mesh '%1' is not a solid. + The mesh '%1' is not a solid. + The mesh '%1' is not a solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - 最å°=<%1,%2,%3> + 最å°=<%1,%2,%3> 最大=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] - Leave info mode - Leave info mode + Leave info mode + Leave info mode - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Leave hole-filling mode + Leave hole-filling mode + Leave hole-filling mode - Leave removal mode - Leave removal mode + Leave removal mode + Leave removal mode - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Delete selected faces + Delete selected faces + Delete selected faces - Clear selected faces - Clear selected faces + Clear selected faces + Clear selected faces - Annotation - Annotation + Annotation + Annotation - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analyze + Analyze + Analyze - Boolean - Boolean + Boolean + Boolean - &Meshes - メッシュ (&M) + &Meshes + メッシュ (&M) - Mesh tools - メッシュツール + Mesh tools + メッシュツール - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts index 9082a4c74..4f50ae59d 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_nl.ts @@ -1,1124 +1,1205 @@ - - + + CmdMeshAddFacet - Mesh - Mesh + Mesh + Mesh - Add triangle - Driehoek toevoegen + Add triangle + Driehoek toevoegen - Add triangle manually to a mesh - Add triangle manually to a mesh + Add triangle manually to a mesh + Add triangle manually to a mesh - - + + CmdMeshBoundingBox - Mesh - Mesh + Mesh + Mesh - Boundings info... - Boundings info... + Boundings info... + Boundings info... - Shows the boundings of the selected mesh - Shows the boundings of the selected mesh + Shows the boundings of the selected mesh + Shows the boundings of the selected mesh - - + + CmdMeshBuildRegularSolid - Mesh - Mesh + Mesh + Mesh - Regular solid... - Regular solid... + Regular solid... + Regular solid... - Builds a regular solid - Builds a regular solid + Builds a regular solid + Builds a regular solid - - + + CmdMeshDemolding - Interactive demolding direction - Interactive demolding direction + Interactive demolding direction + Interactive demolding direction - Mesh - Mesh + Mesh + Mesh - - + + CmdMeshDifference - Mesh - Mesh + Mesh + Mesh - Difference - Verschil + Difference + Verschil - - + + CmdMeshEvaluateFacet - Mesh - Mesh + Mesh + Mesh - Face info - Vlak-info + Face info + Vlak-info - Information about face - Information about face + Information about face + Information about face - - + + CmdMeshEvaluateSolid - Mesh - Mesh + Mesh + Mesh - Check solid mesh - Check solid mesh + Check solid mesh + Check solid mesh - Checks whether the mesh is a solid - Checks whether the mesh is a solid + Checks whether the mesh is a solid + Checks whether the mesh is a solid - - + + CmdMeshEvaluation - Mesh - Mesh + Mesh + Mesh - Opens a dialog to analyze and repair a mesh - Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh + Opens a dialog to analyze and repair a mesh - Evaluate && Repair mesh... - Evaluate && Repair mesh... + Evaluate && Repair mesh... + Evaluate && Repair mesh... - - + + CmdMeshExMakeMesh - Mesh - Mesh + Mesh + Mesh - Make a Box - Make a Box + Make a Box + Make a Box - - + + CmdMeshExMakeTool - Mesh - Mesh + Mesh + Mesh - Make a Tool - Make a Tool + Make a Tool + Make a Tool - - + + CmdMeshExMakeUnion - Mesh - Mesh + Mesh + Mesh - Make Union - Make Union + Make Union + Make Union - - + + CmdMeshExport - Mesh - Mesh + Mesh + Mesh - Export mesh... - Export mesh... + Export mesh... + Export mesh... - Exports a mesh to file - Exports a mesh to file + Exports a mesh to file + Exports a mesh to file - - + + CmdMeshFillInteractiveHole - Mesh - Mesh + Mesh + Mesh - Close hole - Dicht gat + Close hole + Dicht gat - Close holes interactively - Sluit gaten interactief + Close holes interactively + Sluit gaten interactief - - + + CmdMeshFillupHoles - Mesh - Mesh + Mesh + Mesh - Fill holes... - Vul gaten... + Fill holes... + Vul gaten... - Fill holes of the mesh - Fill holes of the mesh + Fill holes of the mesh + Fill holes of the mesh - - + + CmdMeshFlipNormals - Mesh - Mesh + Mesh + Mesh - Flip normals - Loodlijnen spiegelen + Flip normals + Loodlijnen spiegelen - Flips the normals of the mesh - Flips the normals of the mesh + Flips the normals of the mesh + Flips the normals of the mesh - - + + CmdMeshFromGeometry - Mesh - Mesh + Mesh + Mesh - Create mesh from geometry... - Create mesh from geometry... + Create mesh from geometry... + Create mesh from geometry... - Create mesh from the selected geometry - Create mesh from the selected geometry + Create mesh from the selected geometry + Create mesh from the selected geometry - - + + CmdMeshHarmonizeNormals - Mesh - Mesh + Mesh + Mesh - Harmonize normals - Harmoniseer loodlijnen + Harmonize normals + Harmoniseer loodlijnen - Harmonizes the normals of the mesh - Harmonizes the normals of the mesh + Harmonizes the normals of the mesh + Harmonizes the normals of the mesh - - + + CmdMeshImport - Mesh - Mesh + Mesh + Mesh - Import mesh... - Import mesh... + Import mesh... + Import mesh... - Imports a mesh from file - Imports a mesh from file + Imports a mesh from file + Imports a mesh from file - - + + CmdMeshIntersection - Mesh - Mesh + Mesh + Mesh - Intersection - Snijpunt + Intersection + Snijpunt - - + + CmdMeshPolyCut - Mesh - Mesh + Mesh + Mesh - Cut mesh - Cut mesh + Cut mesh + Cut mesh - Cuts a mesh with a picked polygon - Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon + Cuts a mesh with a picked polygon - - + + CmdMeshPolySegm - Mesh - Mesh + Mesh + Mesh - Make segment - Maak segment + Make segment + Maak segment - Creates a mesh segment - Creates a mesh segment + Creates a mesh segment + Creates a mesh segment - - + + CmdMeshPolySelect - Mesh - Mesh + Mesh + Mesh - Select mesh - Select mesh + Select mesh + Select mesh - Select an area of the mesh - Select an area of the mesh + Select an area of the mesh + Select an area of the mesh - - + + CmdMeshPolySplit - Mesh - Mesh + Mesh + Mesh - Split mesh - Split mesh + Split mesh + Split mesh - Splits a mesh into two meshes - Splits a mesh into two meshes + Splits a mesh into two meshes + Splits a mesh into two meshes - - + + + CmdMeshPolyTrim + + Mesh + Mesh + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Mesh + Mesh + Mesh - Remove components by hand... - Verwijder componenten met de hand... + Remove components by hand... + Verwijder componenten met de hand... - Mark a component to remove it from the mesh - Mark a component to remove it from the mesh + Mark a component to remove it from the mesh + Mark a component to remove it from the mesh - - + + CmdMeshRemoveComponents - Mesh - Mesh + Mesh + Mesh - Remove components... - Verwijder componenten... + Remove components... + Verwijder componenten... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Mesh + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Mesh + Mesh + Mesh - Smooth... - Glad... + Smooth... + Glad... - Smooth the selected meshes - Smooth the selected meshes + Smooth the selected meshes + Smooth the selected meshes - - + + CmdMeshToolMesh - Mesh - Mesh + Mesh + Mesh - Segment by tool mesh - Segment by tool mesh + Segment by tool mesh + Segment by tool mesh - Creates a segment from a given tool mesh - Creates a segment from a given tool mesh + Creates a segment from a given tool mesh + Creates a segment from a given tool mesh - - + + CmdMeshTransform - Mesh - Mesh + Mesh + Mesh - Transform mesh - Transform mesh + Transform mesh + Transform mesh - Rotate or move a mesh - Rotate or move a mesh + Rotate or move a mesh + Rotate or move a mesh - - + + CmdMeshUnion - Mesh - Mesh + Mesh + Mesh - Union - Verbinden + Union + Verbinden - - + + CmdMeshVertexCurvature - Mesh - Mesh + Mesh + Mesh - Calculates the curvature of the vertices of a mesh - Calculates the curvature of the vertices of a mesh + Calculates the curvature of the vertices of a mesh + Calculates the curvature of the vertices of a mesh - Curvature plot - Curvature plot + Curvature plot + Curvature plot - - + + CmdMeshVertexCurvatureInfo - Mesh - Mesh + Mesh + Mesh - Curvature info - Kromming info + Curvature info + Kromming info - Information about curvature - Informatie over kromming + Information about curvature + Informatie over kromming - - + + MeshGui::DlgEvaluateMesh - &Help - &Help + &Help + &Help - F1 - F1 + F1 + F1 - &Close - &Sluiten + &Close + &Sluiten - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Mesh information + Mesh information + Mesh information - No information - Geen informatie + No information + Geen informatie - Number of points: - Aantal punten: + Number of points: + Aantal punten: - Number of edges: - Aantal randen: + Number of edges: + Aantal randen: - Refresh - Verversen + Refresh + Verversen - Analyze - Analyseren + Analyze + Analyseren - Repair - Reparatie + Repair + Reparatie - Orientation - Oriëntatie + Orientation + Oriëntatie - Degenerated faces - Degenerated faces + Degenerated faces + Degenerated faces - Face indices - Vlakindexen + Face indices + Vlakindexen - Number of faces: - Aantal vlakken: + Number of faces: + Aantal vlakken: - Duplicated faces - Dubbele vlakken + Duplicated faces + Dubbele vlakken - Duplicated points - dubbele punten + Duplicated points + dubbele punten - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - Zelf-doorsnijdingen + Self-intersections + Zelf-doorsnijdingen - All above tests together - Alle bovenstaande tests samen + All above tests together + Alle bovenstaande tests samen - Repetitive repair - Repetitive repair + Repetitive repair + Repetitive repair - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - Folds on surface - Folds on surface + Folds on surface + Folds on surface - - + + MeshGui::DlgEvaluateMeshImp - No information - Geen informatie + No information + Geen informatie - Invalid neighbour indices - Invalid neighbour indices + Invalid neighbour indices + Invalid neighbour indices - Invalid face indices - Invalid face indices + Invalid face indices + Invalid face indices - Invalid point indices - Invalid point indices + Invalid point indices + Invalid point indices - Multiple point indices - Multiple point indices + Multiple point indices + Multiple point indices - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Cannot remove non-manifolds + Cannot remove non-manifolds + Cannot remove non-manifolds - No selection - Geen selectie + No selection + Geen selectie - No flipped normals - No flipped normals + No flipped normals + No flipped normals - %1 flipped normals - %1 flipped normals + %1 flipped normals + %1 flipped normals - No non-manifolds - No non-manifolds + No non-manifolds + No non-manifolds - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - Geen ongeldige indices + No invalid indices + Geen ongeldige indices - No degenerations - No degenerations + No degenerations + No degenerations - %1 degenerated faces - %1 degenerated faces + %1 degenerated faces + %1 degenerated faces - No duplicated faces - Geen gedupliceerde vlakken + No duplicated faces + Geen gedupliceerde vlakken - %1 duplicated faces - %1 dubbele vlakken + %1 duplicated faces + %1 dubbele vlakken - No duplicated points - Geen dubbele punten + No duplicated points + Geen dubbele punten - Duplicated points - dubbele punten + Duplicated points + dubbele punten - Orientation - Oriëntatie + Orientation + Oriëntatie - Indices - Indexen + Indices + Indexen - Degenerations - Degenerations + Degenerations + Degenerations - Duplicated faces - Dubbele vlakken + Duplicated faces + Dubbele vlakken - No self-intersections - No self-intersections + No self-intersections + No self-intersections - Self-intersections - Zelf-doorsnijdingen + Self-intersections + Zelf-doorsnijdingen - Mesh repair - Mesh repair + Mesh repair + Mesh repair - Flipped normals found - Gespiegelde normalen gevonden + Flipped normals found + Gespiegelde normalen gevonden - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - No folds on surface - Geen plooien op het oppervlak + No folds on surface + Geen plooien op het oppervlak - %1 folds on surface - 1% plooien op het oppervlak + %1 folds on surface + 1% plooien op het oppervlak - Folds - Plooien + Folds + Plooien - - + + MeshGui::DlgRegularSolid - Regular Solid - Regular Solid + Regular Solid + Regular Solid - &Create - &Maken + &Create + &Maken - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Sl&uiten + Cl&ose + Sl&uiten - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solid: + Solid: + Solid: - Cube - Kubus + Cube + Kubus - Cylinder - Cilinder + Cylinder + Cilinder - Cone - Kegel + Cone + Kegel - Sphere - Bol + Sphere + Bol - Ellipsoid - Ellipsoïde + Ellipsoid + Ellipsoïde - Torus - Torus + Torus + Torus - Height: - Hoogte: + Height: + Hoogte: - Length: - Lengte: + Length: + Lengte: - Width: - Breedte: + Width: + Breedte: - Radius: - Straal: + Radius: + Straal: - Closed - Gesloten + Closed + Gesloten - Sampling: - Sampling: + Sampling: + Sampling: - Edge length: - Randlengte: + Edge length: + Randlengte: - Radius 1: - Straal 1: + Radius 1: + Straal 1: - Radius 2: - Straal 2: + Radius 2: + Straal 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Maak %1 + Create %1 + Maak %1 - No active document - Geen actief document + No active document + Geen actief document - - + + MeshGui::DlgSettingsMeshView - Mesh view - Mesh view + Mesh view + Mesh view - Two-side rendering - Twee-zijdig rendering + Two-side rendering + Twee-zijdig rendering - Backface color - Achtervlak kleur + Backface color + Achtervlak kleur - Smoothing - Vloeiend maken + Smoothing + Vloeiend maken - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Crease angle + Crease angle + Crease angle - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Definieer normaal per vertex + Define normal per vertex + Definieer normaal per vertex + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Het definiëren van normalen per vertex heet ook wel<span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwijl het definieren van normalen per vlak wordt genoemd</span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Het definiëren van normalen per vertex heet ook wel<span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwijl het definieren van normalen per vlak wordt genoemd</span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Standaardweergave voor nieuwe rasters - Default appearance for new meshes - Standaardweergave voor nieuwe rasters + Default line color + Standaardlijnkleur - Default line color - Standaardlijnkleur + Mesh transparency + Raster-transparantie - Mesh transparency - Raster-transparantie + Default mesh color + Standaard rasterkleur - Default mesh color - Standaard rasterkleur + Show bounding-box for highlighted or selected meshes + Toon omsluitende doos voor gemarkeerde of geselecteerde raster - Show bounding-box for highlighted or selected meshes - Toon omsluitende doos voor gemarkeerde of geselecteerde raster + Line transparency + Lijn transparantie - - Line transparency - Lijn transparantie - - - + + MeshGui::DlgSmoothing - Smoothing - Vloeiend maken + Smoothing + Vloeiend maken - Method - Methode + Method + Methode - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Iteraties: + Iterations: + Iteraties: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Driehoek toevoegen + Add triangle + Driehoek toevoegen - Flip normal - Normaal spiegelen + Flip normal + Normaal spiegelen - Clear - Wissen + Clear + Wissen - Finish - Voltooien + Finish + Voltooien - - + + MeshGui::RemoveComponents - Remove components - Verwijder componenten + Remove components + Verwijder componenten - Select - Selecteer + Select + Selecteer - Select whole component - Selecteer gehele component + Select whole component + Selecteer gehele component - Pick triangle - Kies driehoek + Pick triangle + Kies driehoek - < faces than - < vlakken dan + < faces than + < vlakken dan - Region - Sectie + Region + Sectie - Components - Onderdelen + Components + Onderdelen - All - Alle + All + Alle - Deselect - Deselecteer + Deselect + Deselecteer - Deselect whole component - Deselecteer gehele component + Deselect whole component + Deselecteer gehele component - > faces than - > vlakken dan + > faces than + > vlakken dan - Region options - Region options + Region options + Region options - Respect only triangles with normals facing screen - Respecteren alleen driehoeken met normalen naar het scherm toe + Respect only triangles with normals facing screen + Respecteren alleen driehoeken met normalen naar het scherm toe - Respect only visible triangles - Respect alleen zichtbaar driehoeken + Respect only visible triangles + Respect alleen zichtbaar driehoeken - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cilinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Bol + + + MeshGui::TaskRemoveComponents - Delete - Verwijderen + Delete + Verwijderen - Invert - Omkeren + Invert + Omkeren - - + + QDockWidget - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - - + + QObject - Import mesh - Import mesh + Import mesh + Import mesh - Export mesh - Export mesh + Export mesh + Export mesh - Solid Mesh - Solid Mesh + Solid Mesh + Solid Mesh - Boundings - Boundings + Boundings + Boundings - Fill holes - Vul gaten + Fill holes + Vul gaten - Fill holes with maximum number of edges: - Vul de gaten met maximum aantal randen: + Fill holes with maximum number of edges: + Vul de gaten met maximum aantal randen: - Binary STL (*.stl) - Binaire STL (*.stl) + Binary STL (*.stl) + Binaire STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Binary Mesh (*.bms) + Binary Mesh (*.bms) + Binary Mesh (*.bms) - Alias Mesh (*.obj) - Alias Mesh (*.obj) + Alias Mesh (*.obj) + Alias Mesh (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii(*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii(*.iv) - All Files (*.*) - Alle bestanden (*.*) + All Files (*.*) + Alle bestanden (*.*) - ASCII STL (*.stl) - ASCII STL (*. stl) + ASCII STL (*.stl) + ASCII STL (*. stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Gecomprimeerde VRML 2.0 (*.WRZ) + Compressed VRML 2.0 (*.wrz) + Gecomprimeerde VRML 2.0 (*.WRZ) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python module def (*.py) + Python module def (*.py) + Python module def (*.py) - Meshing Tolerance - Meshing Tolerance + Meshing Tolerance + Meshing Tolerance - Enter tolerance for meshing geometry: - Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: + Enter tolerance for meshing geometry: - The mesh '%1' is a solid. - The mesh '%1' is a solid. + The mesh '%1' is a solid. + The mesh '%1' is a solid. - The mesh '%1' is not a solid. - The mesh '%1' is not a solid. + The mesh '%1' is not a solid. + The mesh '%1' is not a solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punten: %1, Randen: %2 Vlakken: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punten: %1, Randen: %2 Vlakken: %3] - Leave info mode - Info modus verlaten + Leave info mode + Info modus verlaten - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Gatvulmodus verlaten + Leave hole-filling mode + Gatvulmodus verlaten - Leave removal mode - Verwijdermodus verlaten + Leave removal mode + Verwijdermodus verlaten - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object-bestandsindeling (*.off) + Object File Format (*.off) + Object-bestandsindeling (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Verwijder geselecteerde vlakken + Delete selected faces + Verwijder geselecteerde vlakken - Clear selected faces - Opheffen geselecteerde vlakken + Clear selected faces + Opheffen geselecteerde vlakken - Annotation - Aantekening + Annotation + Aantekening - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analyseren + Analyze + Analyseren - Boolean - Boolean + Boolean + Boolean - &Meshes - &Meshes + &Meshes + &Meshes - Mesh tools - Mesh tools + Mesh tools + Mesh tools - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_no.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_no.ts index 53d0b14af..1ee1090b7 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_no.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_no.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Nett + Mesh + Nett - Add triangle - Legg til triangel + Add triangle + Legg til triangel - Add triangle manually to a mesh - Legg triangel manuelt til et nett + Add triangle manually to a mesh + Legg triangel manuelt til et nett - - + + CmdMeshBoundingBox - Mesh - Nett + Mesh + Nett - Boundings info... - Rammeinfo... + Boundings info... + Rammeinfo... - Shows the boundings of the selected mesh - Viser ramme for valgt nett + Shows the boundings of the selected mesh + Viser ramme for valgt nett - - + + CmdMeshBuildRegularSolid - Mesh - Nett + Mesh + Nett - Regular solid... - Vanlig solid... + Regular solid... + Vanlig solid... - Builds a regular solid - Bygger en vanlig solid + Builds a regular solid + Bygger en vanlig solid - - + + CmdMeshDemolding - Interactive demolding direction - Interaktive avstøpningsretning + Interactive demolding direction + Interaktive avstøpningsretning - Mesh - Nett + Mesh + Nett - - + + CmdMeshDifference - Mesh - Nett + Mesh + Nett - Difference - Differanse + Difference + Differanse - - + + CmdMeshEvaluateFacet - Mesh - Nett + Mesh + Nett - Face info - Flateinfo + Face info + Flateinfo - Information about face - Informasjon om falte + Information about face + Informasjon om falte - - + + CmdMeshEvaluateSolid - Mesh - Nett + Mesh + Nett - Check solid mesh - Sjekk solid nett + Check solid mesh + Sjekk solid nett - Checks whether the mesh is a solid - Kontrollerer om nettet er en solid + Checks whether the mesh is a solid + Kontrollerer om nettet er en solid - - + + CmdMeshEvaluation - Mesh - Nett + Mesh + Nett - Opens a dialog to analyze and repair a mesh - Ã…pner en dialog for Ã¥ analysere og reparere et nett + Opens a dialog to analyze and repair a mesh + Ã…pner en dialog for Ã¥ analysere og reparere et nett - Evaluate && Repair mesh... - Evaluer og reparer nett... + Evaluate && Repair mesh... + Evaluer og reparer nett... - - + + CmdMeshExMakeMesh - Mesh - Nett + Mesh + Nett - Make a Box - Lag en boks + Make a Box + Lag en boks - - + + CmdMeshExMakeTool - Mesh - Nett + Mesh + Nett - Make a Tool - Lag et verktøy + Make a Tool + Lag et verktøy - - + + CmdMeshExMakeUnion - Mesh - Nett + Mesh + Nett - Make Union - Lag sammenføyning + Make Union + Lag sammenføyning - - + + CmdMeshExport - Mesh - Nett + Mesh + Nett - Export mesh... - Eksporter nett... + Export mesh... + Eksporter nett... - Exports a mesh to file - Eksporterer et nett til fil + Exports a mesh to file + Eksporterer et nett til fil - - + + CmdMeshFillInteractiveHole - Mesh - Nett + Mesh + Nett - Close hole - Lukk hull + Close hole + Lukk hull - Close holes interactively - Lukk hull interaktivt + Close holes interactively + Lukk hull interaktivt - - + + CmdMeshFillupHoles - Mesh - Nett + Mesh + Nett - Fill holes... - Fyll hull... + Fill holes... + Fyll hull... - Fill holes of the mesh - Fyll hull i nettet + Fill holes of the mesh + Fyll hull i nettet - - + + CmdMeshFlipNormals - Mesh - Nett + Mesh + Nett - Flip normals - Vend normaler + Flip normals + Vend normaler - Flips the normals of the mesh - Vender normaler pÃ¥ nettet + Flips the normals of the mesh + Vender normaler pÃ¥ nettet - - + + CmdMeshFromGeometry - Mesh - Nett + Mesh + Nett - Create mesh from geometry... - Lag nett av geometri... + Create mesh from geometry... + Lag nett av geometri... - Create mesh from the selected geometry - Lag nett fra valgt geometri + Create mesh from the selected geometry + Lag nett fra valgt geometri - - + + CmdMeshHarmonizeNormals - Mesh - Nett + Mesh + Nett - Harmonize normals - Harmoniser normaler + Harmonize normals + Harmoniser normaler - Harmonizes the normals of the mesh - Harmoniserer normaler i nett + Harmonizes the normals of the mesh + Harmoniserer normaler i nett - - + + CmdMeshImport - Mesh - Nett + Mesh + Nett - Import mesh... - Importer nett... + Import mesh... + Importer nett... - Imports a mesh from file - Importerer et nett fra fil + Imports a mesh from file + Importerer et nett fra fil - - + + CmdMeshIntersection - Mesh - Nett + Mesh + Nett - Intersection - Kryssningspunkt + Intersection + Kryssningspunkt - - + + CmdMeshPolyCut - Mesh - Nett + Mesh + Nett - Cut mesh - Klipp ut nett + Cut mesh + Klipp ut nett - Cuts a mesh with a picked polygon - Klipper ut et nett med en valgt polygon + Cuts a mesh with a picked polygon + Klipper ut et nett med en valgt polygon - - + + CmdMeshPolySegm - Mesh - Nett + Mesh + Nett - Make segment - Lag segment + Make segment + Lag segment - Creates a mesh segment - Lager et nettsegment + Creates a mesh segment + Lager et nettsegment - - + + CmdMeshPolySelect - Mesh - Nett + Mesh + Nett - Select mesh - Velg nett + Select mesh + Velg nett - Select an area of the mesh - Velg et omrÃ¥de i nettet + Select an area of the mesh + Velg et omrÃ¥de i nettet - - + + CmdMeshPolySplit - Mesh - Nett + Mesh + Nett - Split mesh - Del nett + Split mesh + Del nett - Splits a mesh into two meshes - Deler et nett i to + Splits a mesh into two meshes + Deler et nett i to - - + + + CmdMeshPolyTrim + + Mesh + Nett + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Nett + Mesh + Nett - Remove components by hand... - Fjern elementer for hÃ¥nd... + Remove components by hand... + Fjern elementer for hÃ¥nd... - Mark a component to remove it from the mesh - Velg et element Ã¥ fjerne fra nettet + Mark a component to remove it from the mesh + Velg et element Ã¥ fjerne fra nettet - - + + CmdMeshRemoveComponents - Mesh - Nett + Mesh + Nett - Remove components... - Fjern elementer... + Remove components... + Fjern elementer... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Nett + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Nett + Mesh + Nett - Smooth... - Jevn ut... + Smooth... + Jevn ut... - Smooth the selected meshes - Jevn ut valgte nett + Smooth the selected meshes + Jevn ut valgte nett - - + + CmdMeshToolMesh - Mesh - Nett + Mesh + Nett - Segment by tool mesh - Segment av nettverktøyet + Segment by tool mesh + Segment av nettverktøyet - Creates a segment from a given tool mesh - Oppretter et segment fra et gitt nettverktøy + Creates a segment from a given tool mesh + Oppretter et segment fra et gitt nettverktøy - - + + CmdMeshTransform - Mesh - Nett + Mesh + Nett - Transform mesh - Transformer nett + Transform mesh + Transformer nett - Rotate or move a mesh - Roter eller flytt et net + Rotate or move a mesh + Roter eller flytt et net - - + + CmdMeshUnion - Mesh - Nett + Mesh + Nett - Union - Sammenføy + Union + Sammenføy - - + + CmdMeshVertexCurvature - Mesh - Nett + Mesh + Nett - Calculates the curvature of the vertices of a mesh - Beregner krumningen rundt noder i et nett + Calculates the curvature of the vertices of a mesh + Beregner krumningen rundt noder i et nett - Curvature plot - Krummingsplot + Curvature plot + Krummingsplot - - + + CmdMeshVertexCurvatureInfo - Mesh - Nett + Mesh + Nett - Curvature info - Krummingsinfo + Curvature info + Krummingsinfo - Information about curvature - Informasjon om krumning + Information about curvature + Informasjon om krumning - - + + MeshGui::DlgEvaluateMesh - &Help - &Hjelp + &Help + &Hjelp - F1 - F1 + F1 + F1 - &Close - &Lukk + &Close + &Lukk - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Nettinformasjon + Mesh information + Nettinformasjon - No information - Ingen informasjon + No information + Ingen informasjon - Number of points: - Antall punkter: + Number of points: + Antall punkter: - Number of edges: - Antall kanter: + Number of edges: + Antall kanter: - Refresh - Oppdater + Refresh + Oppdater - Analyze - Analyser + Analyze + Analyser - Repair - Reparer + Repair + Reparer - Orientation - Orientering + Orientation + Orientering - Degenerated faces - Degenererte flater + Degenerated faces + Degenererte flater - Face indices - Flateindekser + Face indices + Flateindekser - Number of faces: - Antall flater: + Number of faces: + Antall flater: - Duplicated faces - Dupliserte flater + Duplicated faces + Dupliserte flater - Duplicated points - Dupliserte punkter + Duplicated points + Dupliserte punkter - Non-manifolds - Ã…pne objekter + Non-manifolds + Ã…pne objekter - Self-intersections - Selfkryssende + Self-intersections + Selfkryssende - All above tests together - Alle ovennevnte tester sammen + All above tests together + Alle ovennevnte tester sammen - Repetitive repair - Repeterende reparasjon + Repetitive repair + Repeterende reparasjon - Evaluate & Repair Mesh - Evaluer og reparer nett + Evaluate & Repair Mesh + Evaluer og reparer nett - Folds on surface - Folder pÃ¥ overflaten + Folds on surface + Folder pÃ¥ overflaten - - + + MeshGui::DlgEvaluateMeshImp - No information - Ingen informasjon + No information + Ingen informasjon - Invalid neighbour indices - Ugyldige naboindekser + Invalid neighbour indices + Ugyldige naboindekser - Invalid face indices - Ugyldige flateindekser + Invalid face indices + Ugyldige flateindekser - Invalid point indices - Ugyldige punktindekser + Invalid point indices + Ugyldige punktindekser - Multiple point indices - Flere punktindekser + Multiple point indices + Flere punktindekser - Non-manifolds - Ã…pne objekter + Non-manifolds + Ã…pne objekter - Cannot remove non-manifolds - Kan ikke fjerne Ã¥pne objekter + Cannot remove non-manifolds + Kan ikke fjerne Ã¥pne objekter - No selection - Ingen valg + No selection + Ingen valg - No flipped normals - Ingen omvendte normaler + No flipped normals + Ingen omvendte normaler - %1 flipped normals - %1 omvendte normaler + %1 flipped normals + %1 omvendte normaler - No non-manifolds - Ingen Ã¥pne objekter + No non-manifolds + Ingen Ã¥pne objekter - %1 non-manifolds - %1 Ã¥pne objekter + %1 non-manifolds + %1 Ã¥pne objekter - No invalid indices - Ingen ugyldige indekser + No invalid indices + Ingen ugyldige indekser - No degenerations - Ingen degenerasjoner + No degenerations + Ingen degenerasjoner - %1 degenerated faces - %1 degenererte flater + %1 degenerated faces + %1 degenererte flater - No duplicated faces - Ingen dupliserte flater + No duplicated faces + Ingen dupliserte flater - %1 duplicated faces - %1 duplisert flate + %1 duplicated faces + %1 duplisert flate - No duplicated points - Ingen dupliserte punkter + No duplicated points + Ingen dupliserte punkter - Duplicated points - Dupliserte punkter + Duplicated points + Dupliserte punkter - Orientation - Orientering + Orientation + Orientering - Indices - Indekser + Indices + Indekser - Degenerations - Degenerasjoner + Degenerations + Degenerasjoner - Duplicated faces - Dupliserte flater + Duplicated faces + Dupliserte flater - No self-intersections - Ingen selvkryssende + No self-intersections + Ingen selvkryssende - Self-intersections - Selfkryssende + Self-intersections + Selfkryssende - Mesh repair - Nettreparasjon + Mesh repair + Nettreparasjon - Flipped normals found - Omvendte normaler funnet + Flipped normals found + Omvendte normaler funnet - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Sjekk mislyktes pÃ¥ grunn av folder pÃ¥ overflaten. Kjør kommandoen for Ã¥ reparere folder første + Sjekk mislyktes pÃ¥ grunn av folder pÃ¥ overflaten. Kjør kommandoen for Ã¥ reparere folder første - No folds on surface - Ingen folder pÃ¥ overflaten + No folds on surface + Ingen folder pÃ¥ overflaten - %1 folds on surface - %1 folder pÃ¥ overflaten + %1 folds on surface + %1 folder pÃ¥ overflaten - Folds - Folder + Folds + Folder - - + + MeshGui::DlgRegularSolid - Regular Solid - Standard solid + Regular Solid + Standard solid - &Create - &Lag + &Create + &Lag - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - L&ukk + Cl&ose + L&ukk - Alt+O - Alt + O + Alt+O + Alt + O - Solid: - Solid: + Solid: + Solid: - Cube - Cube + Cube + Cube - Cylinder - Sylinder + Cylinder + Sylinder - Cone - Kjegle + Cone + Kjegle - Sphere - Sfære + Sphere + Sfære - Ellipsoid - Ellipsoide + Ellipsoid + Ellipsoide - Torus - Torus + Torus + Torus - Height: - Høyde: + Height: + Høyde: - Length: - Lengde: + Length: + Lengde: - Width: - Bredde: + Width: + Bredde: - Radius: - Radius: + Radius: + Radius: - Closed - Lukket + Closed + Lukket - Sampling: - Prøvetaking: + Sampling: + Prøvetaking: - Edge length: - Kantlengde: + Edge length: + Kantlengde: - Radius 1: - Radius 1: + Radius 1: + Radius 1: - Radius 2: - Radius 2: + Radius 2: + Radius 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Lag %1 + Create %1 + Lag %1 - No active document - Ingen aktive dokumenter + No active document + Ingen aktive dokumenter - - + + MeshGui::DlgSettingsMeshView - Mesh view - Nett visning + Mesh view + Nett visning - Two-side rendering - Tosidet presentasjonsgjengivelse + Two-side rendering + Tosidet presentasjonsgjengivelse - Backface color - Bakflatefarge + Backface color + Bakflatefarge - Smoothing - Utjevning + Smoothing + Utjevning - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Dette er den minste vinkelen mellom to flater hvor normaler blir kalkulert for flateskyggelegging. </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hvis vinkelen pÃ¥ normalene til to nabo flater er mindre enn vinkel pÃ¥ brett, vil flatene bli jevnt skyggelagt rundt felles kant.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Dette er den minste vinkelen mellom to flater hvor normaler blir kalkulert for flateskyggelegging. </p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hvis vinkelen pÃ¥ normalene til to nabo flater er mindre enn vinkel pÃ¥ brett, vil flatene bli jevnt skyggelagt rundt felles kant.</p></body></html> - Crease angle - Vinkel pÃ¥ brett + Crease angle + Vinkel pÃ¥ brett - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flatskygginging/Phong skyggelegging </span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definerer utseende pÃ¥ overflater.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ved flatskyggelegging blir ikke overflatenormaler definert per node. Dette gir et urealistisk utseende pÃ¥ kurvede flater. Phongskyggelegging gir et jevnere resultat. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hvis valgt blir Phongskyggelegging brukt. Hvis ikke blir flatskyggelegging brukt.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flatskygginging/Phong skyggelegging </span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definerer utseende pÃ¥ overflater.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ved flatskyggelegging blir ikke overflatenormaler definert per node. Dette gir et urealistisk utseende pÃ¥ kurvede flater. Phongskyggelegging gir et jevnere resultat. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Hvis valgt blir Phongskyggelegging brukt. Hvis ikke blir flatskyggelegging brukt.</p></body></html> - Define normal per vertex - Definer normal per node + Define normal per vertex + Definer normal per node + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ã… definere normaler per node kalles <span style=" font-style:italic;">Phong skyggelegging </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mens Ã¥ definere normaler per flate kalles </span>flateskyggelegging<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ã… definere normaler per node kalles <span style=" font-style:italic;">Phong skyggelegging </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mens Ã¥ definere normaler per flate kalles </span>flateskyggelegging<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Standardutseende for nye nett - Default appearance for new meshes - Standardutseende for nye nett + Default line color + Standard linefarge - Default line color - Standard linefarge + Mesh transparency + Gjennomsiktighet for nett - Mesh transparency - Gjennomsiktighet for nett + Default mesh color + Standardnettfarge - Default mesh color - Standardnettfarge + Show bounding-box for highlighted or selected meshes + Vis rammeboks for uthevet eller valgt nett - Show bounding-box for highlighted or selected meshes - Vis rammeboks for uthevet eller valgt nett + Line transparency + Gjennomsiktighet for linje - - Line transparency - Gjennomsiktighet for linje - - - + + MeshGui::DlgSmoothing - Smoothing - Utjevning + Smoothing + Utjevning - Method - Metode + Method + Metode - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Gjentakelser: + Iterations: + Gjentakelser: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Legg til triangel + Add triangle + Legg til triangel - Flip normal - Vend normal + Flip normal + Vend normal - Clear - Tøm + Clear + Tøm - Finish - Fullfør + Finish + Fullfør - - + + MeshGui::RemoveComponents - Remove components - Fjern elementer + Remove components + Fjern elementer - Select - Velg + Select + Velg - Select whole component - Velg hele elementet + Select whole component + Velg hele elementet - Pick triangle - Velg triangel + Pick triangle + Velg triangel - < faces than - < flater enn + < faces than + < flater enn - Region - Region + Region + Region - Components - Elementer + Components + Elementer - All - Alle + All + Alle - Deselect - Velg bort + Deselect + Velg bort - Deselect whole component - Velg bort hele elementet + Deselect whole component + Velg bort hele elementet - > faces than - > flater enn + > faces than + > flater enn - Region options - OmrÃ¥dealternativer + Region options + OmrÃ¥dealternativer - Respect only triangles with normals facing screen - Ta bare hensyn til triangler med normaler vendt mot skjermen + Respect only triangles with normals facing screen + Ta bare hensyn til triangler med normaler vendt mot skjermen - Respect only visible triangles - Ta bare hensyn til synlige triangler + Respect only visible triangles + Ta bare hensyn til synlige triangler - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Sylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sfære + + + MeshGui::TaskRemoveComponents - Delete - Slett + Delete + Slett - Invert - Inverter + Invert + Inverter - - + + QDockWidget - Evaluate & Repair Mesh - Evaluer og reparer nett + Evaluate & Repair Mesh + Evaluer og reparer nett - - + + QObject - Import mesh - Importer nett + Import mesh + Importer nett - Export mesh - Eksporter nett + Export mesh + Eksporter nett - Solid Mesh - Solid nett + Solid Mesh + Solid nett - Boundings - Rammer + Boundings + Rammer - Fill holes - Fyll hull + Fill holes + Fyll hull - Fill holes with maximum number of edges: - Fyll hull med maksimalt antall kanter: + Fill holes with maximum number of edges: + Fyll hull med maksimalt antall kanter: - Binary STL (*.stl) - Binære STL (*.stl) + Binary STL (*.stl) + Binære STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Binære nett (*.bms) + Binary Mesh (*.bms) + Binære nett (*.bms) - Alias Mesh (*.obj) - Alias nett (*.obj) + Alias Mesh (*.obj) + Alias nett (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*. iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*. iv) - All Files (*.*) - Alle filer (*.*) + All Files (*.*) + Alle filer (*.*) - ASCII STL (*.stl) - ASCII STL (*. STL) + ASCII STL (*.stl) + ASCII STL (*. STL) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Komprimert VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Komprimert VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python modul def (*.py) + Python module def (*.py) + Python modul def (*.py) - Meshing Tolerance - Toleranse for nett + Meshing Tolerance + Toleranse for nett - Enter tolerance for meshing geometry: - Angi toleranse for nettgeometri: + Enter tolerance for meshing geometry: + Angi toleranse for nettgeometri: - The mesh '%1' is a solid. - Nett '%1' er solid. + The mesh '%1' is a solid. + Nett '%1' er solid. - The mesh '%1' is not a solid. - Nett '%1' er ikke solid. + The mesh '%1' is not a solid. + Nett '%1' er ikke solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Maks=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punkter: %1, Kanter: %2 Flater: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punkter: %1, Kanter: %2 Flater: %3] - Leave info mode - Forlat infomodus + Leave info mode + Forlat infomodus - Index: %1 - Indeks: %1 + Index: %1 + Indeks: %1 - Leave hole-filling mode - Forlat hullfyllingsmodus + Leave hole-filling mode + Forlat hullfyllingsmodus - Leave removal mode - Forlat fjerningsmodus + Leave removal mode + Forlat fjerningsmodus - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Alle nett filer (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Alle nett filer (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*. ply) + Stanford Polygon (*.ply) + Stanford Polygon (*. ply) - Object File Format (*.off) - Objekt filformat (*. off) + Object File Format (*.off) + Objekt filformat (*. off) - Standford Polygon (*.ply) - Stanford Polygon (*. ply) + Standford Polygon (*.ply) + Stanford Polygon (*. ply) - Delete selected faces - Slett valgte flater + Delete selected faces + Slett valgte flater - Clear selected faces - Fjern valgte flater + Clear selected faces + Fjern valgte flater - Annotation - Merknad + Annotation + Merknad - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analyser + Analyze + Analyser - Boolean - Boolsk + Boolean + Boolsk - &Meshes - &Nett + &Meshes + &Nett - Mesh tools - Nettverktøy + Mesh tools + Nettverktøy - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_pl.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_pl.ts index 04a4d15ba..51b4e394a 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_pl.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_pl.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - siatka + Mesh + siatka - Add triangle - dodaj trójkÄ…t + Add triangle + dodaj trójkÄ…t - Add triangle manually to a mesh - dodaj trójkÄ…t do siatki + Add triangle manually to a mesh + dodaj trójkÄ…t do siatki - - + + CmdMeshBoundingBox - Mesh - siatka + Mesh + siatka - Boundings info... - granice info + Boundings info... + granice info - Shows the boundings of the selected mesh - Shows the boundings of the selected mesh + Shows the boundings of the selected mesh + Shows the boundings of the selected mesh - - + + CmdMeshBuildRegularSolid - Mesh - siatka + Mesh + siatka - Regular solid... - prymityw + Regular solid... + prymityw - Builds a regular solid - wstaw prymityw + Builds a regular solid + wstaw prymityw - - + + CmdMeshDemolding - Interactive demolding direction - Interactive demolding direction + Interactive demolding direction + Interactive demolding direction - Mesh - siatka + Mesh + siatka - - + + CmdMeshDifference - Mesh - siatka + Mesh + siatka - Difference - Różnica + Difference + Różnica - - + + CmdMeshEvaluateFacet - Mesh - siatka + Mesh + siatka - Face info - Dane fasetki + Face info + Dane fasetki - Information about face - Informacja o fasetce + Information about face + Informacja o fasetce - - + + CmdMeshEvaluateSolid - Mesh - siatka + Mesh + siatka - Check solid mesh - Sprawdź siatkÄ™ solid + Check solid mesh + Sprawdź siatkÄ™ solid - Checks whether the mesh is a solid - Sprawdza czy siatka jest solidem + Checks whether the mesh is a solid + Sprawdza czy siatka jest solidem - - + + CmdMeshEvaluation - Mesh - siatka + Mesh + siatka - Opens a dialog to analyze and repair a mesh - Okno dialogowe analizy i naprawy siatki + Opens a dialog to analyze and repair a mesh + Okno dialogowe analizy i naprawy siatki - Evaluate && Repair mesh... - RozwiÅ„ && Napraw siatkÄ™ + Evaluate && Repair mesh... + RozwiÅ„ && Napraw siatkÄ™ - - + + CmdMeshExMakeMesh - Mesh - siatka + Mesh + siatka - Make a Box - Make a Box + Make a Box + Make a Box - - + + CmdMeshExMakeTool - Mesh - siatka + Mesh + siatka - Make a Tool - Make a Tool + Make a Tool + Make a Tool - - + + CmdMeshExMakeUnion - Mesh - siatka + Mesh + siatka - Make Union - Make Union + Make Union + Make Union - - + + CmdMeshExport - Mesh - siatka + Mesh + siatka - Export mesh... - Eksport siatki... + Export mesh... + Eksport siatki... - Exports a mesh to file - Eksport siatki do pliku + Exports a mesh to file + Eksport siatki do pliku - - + + CmdMeshFillInteractiveHole - Mesh - siatka + Mesh + siatka - Close hole - Zamknij otwór + Close hole + Zamknij otwór - Close holes interactively - Zamknij otwory interaktywnie + Close holes interactively + Zamknij otwory interaktywnie - - + + CmdMeshFillupHoles - Mesh - siatka + Mesh + siatka - Fill holes... - Zamknij otwory... + Fill holes... + Zamknij otwory... - Fill holes of the mesh - Zamknij otwory w siatce + Fill holes of the mesh + Zamknij otwory w siatce - - + + CmdMeshFlipNormals - Mesh - siatka + Mesh + siatka - Flip normals - Odwróć 'normalne' + Flip normals + Odwróć 'normalne' - Flips the normals of the mesh - Odwróć 'normalne' siatki + Flips the normals of the mesh + Odwróć 'normalne' siatki - - + + CmdMeshFromGeometry - Mesh - siatka + Mesh + siatka - Create mesh from geometry... - Utwórz siatkÄ™ z elementów geometrii... + Create mesh from geometry... + Utwórz siatkÄ™ z elementów geometrii... - Create mesh from the selected geometry - Utwórz siatkÄ™ z zaznaczonych elementów geometrii + Create mesh from the selected geometry + Utwórz siatkÄ™ z zaznaczonych elementów geometrii - - + + CmdMeshHarmonizeNormals - Mesh - siatka + Mesh + siatka - Harmonize normals - PorzÄ…dkuj normalne + Harmonize normals + PorzÄ…dkuj normalne - Harmonizes the normals of the mesh - PorzÄ…dkuje 'normaln'e siatki + Harmonizes the normals of the mesh + PorzÄ…dkuje 'normaln'e siatki - - + + CmdMeshImport - Mesh - siatka + Mesh + siatka - Import mesh... - Import siatki... + Import mesh... + Import siatki... - Imports a mesh from file - Import siatki z pliku + Imports a mesh from file + Import siatki z pliku - - + + CmdMeshIntersection - Mesh - siatka + Mesh + siatka - Intersection - PrzeciÄ™cie + Intersection + PrzeciÄ™cie - - + + CmdMeshPolyCut - Mesh - siatka + Mesh + siatka - Cut mesh - Przytnij siatkÄ™ + Cut mesh + Przytnij siatkÄ™ - Cuts a mesh with a picked polygon - Przytnij siatkÄ™ zaznaczonym wielokÄ…tem + Cuts a mesh with a picked polygon + Przytnij siatkÄ™ zaznaczonym wielokÄ…tem - - + + CmdMeshPolySegm - Mesh - siatka + Mesh + siatka - Make segment - Utwórz segment + Make segment + Utwórz segment - Creates a mesh segment - Tworzy segment siatki + Creates a mesh segment + Tworzy segment siatki - - + + CmdMeshPolySelect - Mesh - siatka + Mesh + siatka - Select mesh - Zaznacz siatkÄ™ + Select mesh + Zaznacz siatkÄ™ - Select an area of the mesh - Zaznacz fragment siatki + Select an area of the mesh + Zaznacz fragment siatki - - + + CmdMeshPolySplit - Mesh - siatka + Mesh + siatka - Split mesh - Rozdziel siatkÄ™ + Split mesh + Rozdziel siatkÄ™ - Splits a mesh into two meshes - Rozdziel siatkÄ™ na dwoje + Splits a mesh into two meshes + Rozdziel siatkÄ™ na dwoje - - + + + CmdMeshPolyTrim + + Mesh + siatka + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - siatka + Mesh + siatka - Remove components by hand... - UsuÅ„ fragmenty rÄ™cznie... + Remove components by hand... + UsuÅ„ fragmenty rÄ™cznie... - Mark a component to remove it from the mesh - Zaznacz fragment do usuniÄ™cia z siatki + Mark a component to remove it from the mesh + Zaznacz fragment do usuniÄ™cia z siatki - - + + CmdMeshRemoveComponents - Mesh - siatka + Mesh + siatka - Remove components... - UsuÅ„ skÅ‚adniki... + Remove components... + UsuÅ„ skÅ‚adniki... - Remove topologic independent components from the mesh - Kasuj topologiÄ™ niezależnÄ… od siatki + Remove topologic independent components from the mesh + Kasuj topologiÄ™ niezależnÄ… od siatki - - + + + CmdMeshSegmentation + + Mesh + siatka + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - siatka + Mesh + siatka - Smooth... - WygÅ‚adź... + Smooth... + WygÅ‚adź... - Smooth the selected meshes - WygÅ‚adź zaznaczone siatki + Smooth the selected meshes + WygÅ‚adź zaznaczone siatki - - + + CmdMeshToolMesh - Mesh - siatka + Mesh + siatka - Segment by tool mesh - Segment by tool mesh + Segment by tool mesh + Segment by tool mesh - Creates a segment from a given tool mesh - Creates a segment from a given tool mesh + Creates a segment from a given tool mesh + Creates a segment from a given tool mesh - - + + CmdMeshTransform - Mesh - siatka + Mesh + siatka - Transform mesh - Przekształć siatkÄ™ + Transform mesh + Przekształć siatkÄ™ - Rotate or move a mesh - Obróć lub przesuÅ„ siatkÄ™ + Rotate or move a mesh + Obróć lub przesuÅ„ siatkÄ™ - - + + CmdMeshUnion - Mesh - siatka + Mesh + siatka - Union - Połączenie + Union + Połączenie - - + + CmdMeshVertexCurvature - Mesh - siatka + Mesh + siatka - Calculates the curvature of the vertices of a mesh - Oblicza krzywiznÄ™ wierzchoÅ‚ków siatki + Calculates the curvature of the vertices of a mesh + Oblicza krzywiznÄ™ wierzchoÅ‚ków siatki - Curvature plot - Curvature plot + Curvature plot + Curvature plot - - + + CmdMeshVertexCurvatureInfo - Mesh - siatka + Mesh + siatka - Curvature info - Informacja o krzywiźnie + Curvature info + Informacja o krzywiźnie - Information about curvature - Information about curvature + Information about curvature + Information about curvature - - + + MeshGui::DlgEvaluateMesh - &Help - &Pomoc + &Help + &Pomoc - F1 - F1 + F1 + F1 - &Close - Zamknij + &Close + Zamknij - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Informacja o siatce + Mesh information + Informacja o siatce - No information - Brak danych + No information + Brak danych - Number of points: - Ilość punktów: + Number of points: + Ilość punktów: - Number of edges: - Ilość krawÄ™dzi: + Number of edges: + Ilość krawÄ™dzi: - Refresh - OdÅ›wież + Refresh + OdÅ›wież - Analyze - Analizuj + Analyze + Analizuj - Repair - Napraw + Repair + Napraw - Orientation - Orientacja + Orientation + Orientacja - Degenerated faces - Fasetki znieksztaÅ‚cone + Degenerated faces + Fasetki znieksztaÅ‚cone - Face indices - Face indices + Face indices + Face indices - Number of faces: - Ilość fasetek: + Number of faces: + Ilość fasetek: - Duplicated faces - Zduplikowane fasetki + Duplicated faces + Zduplikowane fasetki - Duplicated points - Zduplikowane punkty + Duplicated points + Zduplikowane punkty - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - SamoprzeciÄ™cia + Self-intersections + SamoprzeciÄ™cia - All above tests together - All above tests together + All above tests together + All above tests together - Repetitive repair - Powtórna naprawa + Repetitive repair + Powtórna naprawa - Evaluate & Repair Mesh - RozwiÅ„ & napraw siatkÄ™ + Evaluate & Repair Mesh + RozwiÅ„ & napraw siatkÄ™ - Folds on surface - ZagiÄ™cia na pÅ‚aszczyźnie + Folds on surface + ZagiÄ™cia na pÅ‚aszczyźnie - - + + MeshGui::DlgEvaluateMeshImp - No information - Brak danych + No information + Brak danych - Invalid neighbour indices - Invalid neighbour indices + Invalid neighbour indices + Invalid neighbour indices - Invalid face indices - Invalid face indices + Invalid face indices + Invalid face indices - Invalid point indices - Invalid point indices + Invalid point indices + Invalid point indices - Multiple point indices - Multiple point indices + Multiple point indices + Multiple point indices - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Cannot remove non-manifolds + Cannot remove non-manifolds + Cannot remove non-manifolds - No selection - Brak wyboru + No selection + Brak wyboru - No flipped normals - Brak odwróconych 'normalnych' + No flipped normals + Brak odwróconych 'normalnych' - %1 flipped normals - %1 odwrócone normalne + %1 flipped normals + %1 odwrócone normalne - No non-manifolds - No non-manifolds + No non-manifolds + No non-manifolds - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - No invalid indices + No invalid indices + No invalid indices - No degenerations - Brak znieksztaÅ‚ceÅ„ + No degenerations + Brak znieksztaÅ‚ceÅ„ - %1 degenerated faces - %1 degenerated faces + %1 degenerated faces + %1 degenerated faces - No duplicated faces - No duplicated faces + No duplicated faces + No duplicated faces - %1 duplicated faces - %1 duplicated faces + %1 duplicated faces + %1 duplicated faces - No duplicated points - Brak zduplikowanych punktów + No duplicated points + Brak zduplikowanych punktów - Duplicated points - Zduplikowane punkty + Duplicated points + Zduplikowane punkty - Orientation - Orientacja + Orientation + Orientacja - Indices - Indices + Indices + Indices - Degenerations - ZnieksztaÅ‚cenia + Degenerations + ZnieksztaÅ‚cenia - Duplicated faces - Zduplikowane fasetki + Duplicated faces + Zduplikowane fasetki - No self-intersections - Brak samoprzecięć + No self-intersections + Brak samoprzecięć - Self-intersections - SamoprzeciÄ™cia + Self-intersections + SamoprzeciÄ™cia - Mesh repair - Napraw siatkÄ™ + Mesh repair + Napraw siatkÄ™ - Flipped normals found - Znaleziono odwrócone 'normalne' + Flipped normals found + Znaleziono odwrócone 'normalne' - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Błąd sprawdzania z powodu zagięć na powierzchni. Wykonaj najpierw naprawÄ™ zagięć. + Błąd sprawdzania z powodu zagięć na powierzchni. Wykonaj najpierw naprawÄ™ zagięć. - No folds on surface - Brak zagięć na pÅ‚aszczyźnie + No folds on surface + Brak zagięć na pÅ‚aszczyźnie - %1 folds on surface - %1 folds on surface + %1 folds on surface + %1 folds on surface - Folds - ZagiÄ™cia + Folds + ZagiÄ™cia - - + + MeshGui::DlgRegularSolid - Regular Solid - BryÅ‚a podstawowa + Regular Solid + BryÅ‚a podstawowa - &Create - &Utwórz + &Create + &Utwórz - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - ZAMKNIJ + Cl&ose + ZAMKNIJ - Alt+O - Alt + O + Alt+O + Alt + O - Solid: - Lity + Solid: + Lity - Cube - Kostka + Cube + Kostka - Cylinder - Cylinder + Cylinder + Cylinder - Cone - Stożek + Cone + Stożek - Sphere - Kula + Sphere + Kula - Ellipsoid - Elipsoida + Ellipsoid + Elipsoida - Torus - torus + Torus + torus - Height: - Wysokość: + Height: + Wysokość: - Length: - DÅ‚ugość: + Length: + DÅ‚ugość: - Width: - Szerokość: + Width: + Szerokość: - Radius: - PromieÅ„: + Radius: + PromieÅ„: - Closed - ZamkniÄ™ty + Closed + ZamkniÄ™ty - Sampling: - Próbkowanie: + Sampling: + Próbkowanie: - Edge length: - DÅ‚ugość krawÄ™dzi: + Edge length: + DÅ‚ugość krawÄ™dzi: - Radius 1: - PromieÅ„ 1: + Radius 1: + PromieÅ„ 1: - Radius 2: - PromieÅ„ 2: + Radius 2: + PromieÅ„ 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Utwórz %1 + Create %1 + Utwórz %1 - No active document - Brak aktywnego dokumentu + No active document + Brak aktywnego dokumentu - - + + MeshGui::DlgSettingsMeshView - Mesh view - Widok siatki + Mesh view + Widok siatki - Two-side rendering - Rendering dwustronny + Two-side rendering + Rendering dwustronny - Backface color - Backface color + Backface color + Backface color - Smoothing - WygÅ‚adzanie + Smoothing + WygÅ‚adzanie - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Crease angle + Crease angle + Crease angle - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Zdefiniuj 'normalnÄ…' wierzchoÅ‚ka + Define normal per vertex + Zdefiniuj 'normalnÄ…' wierzchoÅ‚ka + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + DomyÅ›lny wyglÄ…d nowych siatek - Default appearance for new meshes - DomyÅ›lny wyglÄ…d nowych siatek + Default line color + DomyÅ›lny kolor linii - Default line color - DomyÅ›lny kolor linii + Mesh transparency + Przezroczystość siatki - Mesh transparency - Przezroczystość siatki + Default mesh color + DomyÅ›lny kolor siatki - Default mesh color - DomyÅ›lny kolor siatki + Show bounding-box for highlighted or selected meshes + Pokaż kontener dla podÅ›wietlenia lub wyboru - Show bounding-box for highlighted or selected meshes - Pokaż kontener dla podÅ›wietlenia lub wyboru + Line transparency + PrzejrzystoÅ›ci linii - - Line transparency - PrzejrzystoÅ›ci linii - - - + + MeshGui::DlgSmoothing - Smoothing - WygÅ‚adzanie + Smoothing + WygÅ‚adzanie - Method - Metoda + Method + Metoda - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - parametr + Parameter + parametr - Iterations: - iteracje: + Iterations: + iteracje: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - dodaj trójkÄ…t + Add triangle + dodaj trójkÄ…t - Flip normal - odwróć + Flip normal + odwróć - Clear - Wyczyść + Clear + Wyczyść - Finish - ZakoÅ„cz + Finish + ZakoÅ„cz - - + + MeshGui::RemoveComponents - Remove components - usuÅ„ elementy + Remove components + usuÅ„ elementy - Select - Wybierz + Select + Wybierz - Select whole component - zaznacz wszystkie trójkÄ…ty + Select whole component + zaznacz wszystkie trójkÄ…ty - Pick triangle - wybierz trójkÄ…t + Pick triangle + wybierz trójkÄ…t - < faces than - <powierzchnie niż + < faces than + <powierzchnie niż - Region - region + Region + region - Components - komponenty + Components + komponenty - All - Wszystkie + All + Wszystkie - Deselect - odznacz + Deselect + odznacz - Deselect whole component - odznacz wszystkie komponenty + Deselect whole component + odznacz wszystkie komponenty - > faces than - powierzchnie niż + > faces than + powierzchnie niż - Region options - opcje regionalne + Region options + opcje regionalne - Respect only triangles with normals facing screen - akceptuj tylko trójkÄ…ty zwrócone stronÄ… zewnÄ™trznÄ… + Respect only triangles with normals facing screen + akceptuj tylko trójkÄ…ty zwrócone stronÄ… zewnÄ™trznÄ… - Respect only visible triangles - akceptuj tylko widoczne trójkÄ…ty + Respect only visible triangles + akceptuj tylko widoczne trójkÄ…ty - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Kula + + + MeshGui::TaskRemoveComponents - Delete - UsuÅ„ + Delete + UsuÅ„ - Invert - przeciwny + Invert + przeciwny - - + + QDockWidget - Evaluate & Repair Mesh - RozwiÅ„ & napraw siatkÄ™ + Evaluate & Repair Mesh + RozwiÅ„ & napraw siatkÄ™ - - + + QObject - Import mesh - Import siatki + Import mesh + Import siatki - Export mesh - Eksport siatki + Export mesh + Eksport siatki - Solid Mesh - Siatka solid + Solid Mesh + Siatka solid - Boundings - Boundings + Boundings + Boundings - Fill holes - Zamknij otwory + Fill holes + Zamknij otwory - Fill holes with maximum number of edges: - Zamknij otwory max. iloÅ›ciÄ… krawÄ™dzi: + Fill holes with maximum number of edges: + Zamknij otwory max. iloÅ›ciÄ… krawÄ™dzi: - Binary STL (*.stl) - Binarny STL (*.stl) + Binary STL (*.stl) + Binarny STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*. ast) + ASCII STL (*.ast) + ASCII STL (*. ast) - Binary Mesh (*.bms) - Siatka binarna (*.bms) + Binary Mesh (*.bms) + Siatka binarna (*.bms) - Alias Mesh (*.obj) - Siatka Alias (*.obj) + Alias Mesh (*.obj) + Siatka Alias (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*. iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*. iv) - All Files (*.*) - Wszystkie pliki (*.*) + All Files (*.*) + Wszystkie pliki (*.*) - ASCII STL (*.stl) - ASCII STL (*. stl) + ASCII STL (*.stl) + ASCII STL (*. stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*. wrl *. vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*. wrl *. vrml) - Compressed VRML 2.0 (*.wrz) - Skompresowany VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Skompresowany VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*. nas *. bdf) + Nastran (*.nas *.bdf) + Nastran (*. nas *. bdf) - Python module def (*.py) - ModuÅ‚ Python def (*.py) + Python module def (*.py) + ModuÅ‚ Python def (*.py) - Meshing Tolerance - Tolerancja siatki + Meshing Tolerance + Tolerancja siatki - Enter tolerance for meshing geometry: - Podaj tolerancjÄ™ dla geometrii siatki: + Enter tolerance for meshing geometry: + Podaj tolerancjÄ™ dla geometrii siatki: - The mesh '%1' is a solid. - The mesh '%1' is a solid. + The mesh '%1' is a solid. + The mesh '%1' is a solid. - The mesh '%1' is not a solid. - The mesh '%1' is not a solid. + The mesh '%1' is not a solid. + The mesh '%1' is not a solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] - Leave info mode - Opuść tryb informacji + Leave info mode + Opuść tryb informacji - Index: %1 - Indeks :%1 + Index: %1 + Indeks :%1 - Leave hole-filling mode - Opuść tryb zamykania otworów + Leave hole-filling mode + Opuść tryb zamykania otworów - Leave removal mode - Opuść tryb kasowania + Leave removal mode + Opuść tryb kasowania - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Wszystkie pliki siatki (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Wszystkie pliki siatki (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Polygon Stanford (*. ply) + Stanford Polygon (*.ply) + Polygon Stanford (*. ply) - Object File Format (*.off) - Format pliku Object (off *.) + Object File Format (*.off) + Format pliku Object (off *.) - Standford Polygon (*.ply) - Polygon Stanford (*. ply) + Standford Polygon (*.ply) + Polygon Stanford (*. ply) - Delete selected faces - UsuÅ„ zaznaczone fasetki + Delete selected faces + UsuÅ„ zaznaczone fasetki - Clear selected faces - Wyczyść zaznaczone fasetki + Clear selected faces + Wyczyść zaznaczone fasetki - Annotation - Adnotacja + Annotation + Adnotacja - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analizuj + Analyze + Analizuj - Boolean - Boolean + Boolean + Boolean - &Meshes - siatki + &Meshes + siatki - Mesh tools - narzÄ™dzia siatki + Mesh tools + narzÄ™dzia siatki - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_pt.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_pt.ts index 3ded0e4c9..5e18c9209 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_pt.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_pt.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Malha + Mesh + Malha - Add triangle - Adicionar triângulo + Add triangle + Adicionar triângulo - Add triangle manually to a mesh - Adicionar triângulo manualmente a uma malha + Add triangle manually to a mesh + Adicionar triângulo manualmente a uma malha - - + + CmdMeshBoundingBox - Mesh - Malha + Mesh + Malha - Boundings info... - Info caixa de volume... + Boundings info... + Info caixa de volume... - Shows the boundings of the selected mesh - Mostra a caixa de volume da malha selecionada + Shows the boundings of the selected mesh + Mostra a caixa de volume da malha selecionada - - + + CmdMeshBuildRegularSolid - Mesh - Malha + Mesh + Malha - Regular solid... - Sólido regular ... + Regular solid... + Sólido regular ... - Builds a regular solid - Cria um sólido regular + Builds a regular solid + Cria um sólido regular - - + + CmdMeshDemolding - Interactive demolding direction - Direção de desmoldagem interativa + Interactive demolding direction + Direção de desmoldagem interativa - Mesh - Malha + Mesh + Malha - - + + CmdMeshDifference - Mesh - Malha + Mesh + Malha - Difference - Diferença + Difference + Diferença - - + + CmdMeshEvaluateFacet - Mesh - Malha + Mesh + Malha - Face info - Info face + Face info + Info face - Information about face - Informações sobre a face + Information about face + Informações sobre a face - - + + CmdMeshEvaluateSolid - Mesh - Malha + Mesh + Malha - Check solid mesh - Verificar malha sólida + Check solid mesh + Verificar malha sólida - Checks whether the mesh is a solid - Verifica se a malha é um sólido + Checks whether the mesh is a solid + Verifica se a malha é um sólido - - + + CmdMeshEvaluation - Mesh - Malha + Mesh + Malha - Opens a dialog to analyze and repair a mesh - Abre uma janela para analisar e consertar uma malha + Opens a dialog to analyze and repair a mesh + Abre uma janela para analisar e consertar uma malha - Evaluate && Repair mesh... - Avaliar && consertar malha... + Evaluate && Repair mesh... + Avaliar && consertar malha... - - + + CmdMeshExMakeMesh - Mesh - Malha + Mesh + Malha - Make a Box - Fazer uma caixa + Make a Box + Fazer uma caixa - - + + CmdMeshExMakeTool - Mesh - Malha + Mesh + Malha - Make a Tool - Fazer uma ferramenta + Make a Tool + Fazer uma ferramenta - - + + CmdMeshExMakeUnion - Mesh - Malha + Mesh + Malha - Make Union - Fazer União + Make Union + Fazer União - - + + CmdMeshExport - Mesh - Malha + Mesh + Malha - Export mesh... - Exportar malha... + Export mesh... + Exportar malha... - Exports a mesh to file - Exporta uma malha para um arquivo + Exports a mesh to file + Exporta uma malha para um arquivo - - + + CmdMeshFillInteractiveHole - Mesh - Malha + Mesh + Malha - Close hole - Fechar furo + Close hole + Fechar furo - Close holes interactively - Fechar furos interativamente + Close holes interactively + Fechar furos interativamente - - + + CmdMeshFillupHoles - Mesh - Malha + Mesh + Malha - Fill holes... - Preencher furos... + Fill holes... + Preencher furos... - Fill holes of the mesh - Preencher furos na malha + Fill holes of the mesh + Preencher furos na malha - - + + CmdMeshFlipNormals - Mesh - Malha + Mesh + Malha - Flip normals - Inverter normais + Flip normals + Inverter normais - Flips the normals of the mesh - Inverte as normais da malha + Flips the normals of the mesh + Inverte as normais da malha - - + + CmdMeshFromGeometry - Mesh - Malha + Mesh + Malha - Create mesh from geometry... - Criar malha a partir de geometria... + Create mesh from geometry... + Criar malha a partir de geometria... - Create mesh from the selected geometry - Criar uma malha a partir da geometria selecionada + Create mesh from the selected geometry + Criar uma malha a partir da geometria selecionada - - + + CmdMeshHarmonizeNormals - Mesh - Malha + Mesh + Malha - Harmonize normals - Harmonizar as normais + Harmonize normals + Harmonizar as normais - Harmonizes the normals of the mesh - Harmoniza as normais da malha + Harmonizes the normals of the mesh + Harmoniza as normais da malha - - + + CmdMeshImport - Mesh - Malha + Mesh + Malha - Import mesh... - Importar malha... + Import mesh... + Importar malha... - Imports a mesh from file - Importa uma malha a partir de um arquivo + Imports a mesh from file + Importa uma malha a partir de um arquivo - - + + CmdMeshIntersection - Mesh - Malha + Mesh + Malha - Intersection - Intersecção + Intersection + Intersecção - - + + CmdMeshPolyCut - Mesh - Malha + Mesh + Malha - Cut mesh - Cortar malha + Cut mesh + Cortar malha - Cuts a mesh with a picked polygon - Corta uma malha com um polígono escolhido + Cuts a mesh with a picked polygon + Corta uma malha com um polígono escolhido - - + + CmdMeshPolySegm - Mesh - Malha + Mesh + Malha - Make segment - Fazer um segmento + Make segment + Fazer um segmento - Creates a mesh segment - Criar um segmento de malha + Creates a mesh segment + Criar um segmento de malha - - + + CmdMeshPolySelect - Mesh - Malha + Mesh + Malha - Select mesh - Selecione uma malha + Select mesh + Selecione uma malha - Select an area of the mesh - Selecione uma área da malha + Select an area of the mesh + Selecione uma área da malha - - + + CmdMeshPolySplit - Mesh - Malha + Mesh + Malha - Split mesh - Dividir uma malha + Split mesh + Dividir uma malha - Splits a mesh into two meshes - Dividir uma malha em duas + Splits a mesh into two meshes + Dividir uma malha em duas - - + + + CmdMeshPolyTrim + + Mesh + Malha + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Malha + Mesh + Malha - Remove components by hand... - Remover componentes manualmente... + Remove components by hand... + Remover componentes manualmente... - Mark a component to remove it from the mesh - Marcar um componente para ser removido da malha + Mark a component to remove it from the mesh + Marcar um componente para ser removido da malha - - + + CmdMeshRemoveComponents - Mesh - Malha + Mesh + Malha - Remove components... - Remover componentes... + Remove components... + Remover componentes... - Remove topologic independent components from the mesh - Remover componentes topológicos independentes da malha + Remove topologic independent components from the mesh + Remover componentes topológicos independentes da malha - - + + + CmdMeshSegmentation + + Mesh + Malha + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Malha + Mesh + Malha - Smooth... - Suavizar... + Smooth... + Suavizar... - Smooth the selected meshes - Suavizar as malhas selecionadas + Smooth the selected meshes + Suavizar as malhas selecionadas - - + + CmdMeshToolMesh - Mesh - Malha + Mesh + Malha - Segment by tool mesh - Segmentar por malha ferramenta + Segment by tool mesh + Segmentar por malha ferramenta - Creates a segment from a given tool mesh - Cria um segmento usando uma determinada malha como ferramenta + Creates a segment from a given tool mesh + Cria um segmento usando uma determinada malha como ferramenta - - + + CmdMeshTransform - Mesh - Malha + Mesh + Malha - Transform mesh - Transformar malha + Transform mesh + Transformar malha - Rotate or move a mesh - Girar ou mover uma malha + Rotate or move a mesh + Girar ou mover uma malha - - + + CmdMeshUnion - Mesh - Malha + Mesh + Malha - Union - União + Union + União - - + + CmdMeshVertexCurvature - Mesh - Malha + Mesh + Malha - Calculates the curvature of the vertices of a mesh - Calcula a curvatura dos vértices de uma malha + Calculates the curvature of the vertices of a mesh + Calcula a curvatura dos vértices de uma malha - Curvature plot - Traçado de curvatura + Curvature plot + Traçado de curvatura - - + + CmdMeshVertexCurvatureInfo - Mesh - Malha + Mesh + Malha - Curvature info - Info curvatura + Curvature info + Info curvatura - Information about curvature - Informações sobre a curvatura + Information about curvature + Informações sobre a curvatura - - + + MeshGui::DlgEvaluateMesh - &Help - A&juda + &Help + A&juda - F1 - F1 + F1 + F1 - &Close - &Fechar + &Close + &Fechar - Alt+C - Alt+F + Alt+C + Alt+F - Mesh information - Informação da malha + Mesh information + Informação da malha - No information - Sem Informação + No information + Sem Informação - Number of points: - Número de pontos: + Number of points: + Número de pontos: - Number of edges: - Número de arestas: + Number of edges: + Número de arestas: - Refresh - Atualizar + Refresh + Atualizar - Analyze - Analisar + Analyze + Analisar - Repair - Consertar + Repair + Consertar - Orientation - Orientação + Orientation + Orientação - Degenerated faces - Faces degeneradas + Degenerated faces + Faces degeneradas - Face indices - Ãndices de faces + Face indices + Ãndices de faces - Number of faces: - Número de faces: + Number of faces: + Número de faces: - Duplicated faces - Faces duplicadas + Duplicated faces + Faces duplicadas - Duplicated points - Pontos duplicados + Duplicated points + Pontos duplicados - Non-manifolds - Não-manifolds + Non-manifolds + Não-manifolds - Self-intersections - Auto-intersecções + Self-intersections + Auto-intersecções - All above tests together - Todos os testes acima juntos + All above tests together + Todos os testes acima juntos - Repetitive repair - Conserto repetitiva + Repetitive repair + Conserto repetitiva - Evaluate & Repair Mesh - Avaliar & consertar malha + Evaluate & Repair Mesh + Avaliar & consertar malha - Folds on surface - Dobras na superfície + Folds on surface + Dobras na superfície - - + + MeshGui::DlgEvaluateMeshImp - No information - Sem Informação + No information + Sem Informação - Invalid neighbour indices - Ãndices de vizinhos inválidos + Invalid neighbour indices + Ãndices de vizinhos inválidos - Invalid face indices - Ãndices de face inválidos + Invalid face indices + Ãndices de face inválidos - Invalid point indices - Ãndices de ponto inválidos + Invalid point indices + Ãndices de ponto inválidos - Multiple point indices - Vários índices de pontos + Multiple point indices + Vários índices de pontos - Non-manifolds - Não-manifolds + Non-manifolds + Não-manifolds - Cannot remove non-manifolds - Não é possível remover não-manifolds + Cannot remove non-manifolds + Não é possível remover não-manifolds - No selection - Nenhuma seleção + No selection + Nenhuma seleção - No flipped normals - Nenhuma normal invertida + No flipped normals + Nenhuma normal invertida - %1 flipped normals - %1 normais invertidas + %1 flipped normals + %1 normais invertidas - No non-manifolds - Nenhum não-manifold + No non-manifolds + Nenhum não-manifold - %1 non-manifolds - %1 não-manifolds + %1 non-manifolds + %1 não-manifolds - No invalid indices - Nenhum índice inválido + No invalid indices + Nenhum índice inválido - No degenerations - Nenhuma degeneração + No degenerations + Nenhuma degeneração - %1 degenerated faces - %1 faces degeneradas + %1 degenerated faces + %1 faces degeneradas - No duplicated faces - Nenhuma face duplicada + No duplicated faces + Nenhuma face duplicada - %1 duplicated faces - %1 faces duplicadas + %1 duplicated faces + %1 faces duplicadas - No duplicated points - Nenhum ponto duplicado + No duplicated points + Nenhum ponto duplicado - Duplicated points - Pontos duplicados + Duplicated points + Pontos duplicados - Orientation - Orientação + Orientation + Orientação - Indices - Ãndices + Indices + Ãndices - Degenerations - Degenerações + Degenerations + Degenerações - Duplicated faces - Faces duplicadas + Duplicated faces + Faces duplicadas - No self-intersections - Nenhuma auto-intersecção + No self-intersections + Nenhuma auto-intersecção - Self-intersections - Auto-intersecções + Self-intersections + Auto-intersecções - Mesh repair - Conserto de malha + Mesh repair + Conserto de malha - Flipped normals found - Foram encontradas normais invertidas + Flipped normals found + Foram encontradas normais invertidas - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - A verificação falhou devido a dobras na superfície. Por favor, execute primeiro o comando "consertar dobras" + A verificação falhou devido a dobras na superfície. Por favor, execute primeiro o comando "consertar dobras" - No folds on surface - Nenhuma dobra na superfície + No folds on surface + Nenhuma dobra na superfície - %1 folds on surface - %1 dobras na superfície + %1 folds on surface + %1 dobras na superfície - Folds - Dobras + Folds + Dobras - - + + MeshGui::DlgRegularSolid - Regular Solid - Sólido regular + Regular Solid + Sólido regular - &Create - &Criar + &Create + &Criar - Alt+C - Alt+F + Alt+C + Alt+F - Cl&ose - &Fechar + Cl&ose + &Fechar - Alt+O - Alt+F + Alt+O + Alt+F - Solid: - Sólido: + Solid: + Sólido: - Cube - Cubo + Cube + Cubo - Cylinder - Cilindro + Cylinder + Cilindro - Cone - Cone + Cone + Cone - Sphere - Esfera + Sphere + Esfera - Ellipsoid - Elipsóide + Ellipsoid + Elipsóide - Torus - Toro + Torus + Toro - Height: - Altura: + Height: + Altura: - Length: - Comprimento: + Length: + Comprimento: - Width: - Largura: + Width: + Largura: - Radius: - Raio: + Radius: + Raio: - Closed - Fechado + Closed + Fechado - Sampling: - Amostragem: + Sampling: + Amostragem: - Edge length: - Comprimento da aresta: + Edge length: + Comprimento da aresta: - Radius 1: - Raio 1: + Radius 1: + Raio 1: - Radius 2: - Raio 2: + Radius 2: + Raio 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Criar %1 + Create %1 + Criar %1 - No active document - Nenhum documento ativo + No active document + Nenhum documento ativo - - + + MeshGui::DlgSettingsMeshView - Mesh view - Vista de malhas + Mesh view + Vista de malhas - Two-side rendering - Renderização de dois lados + Two-side rendering + Renderização de dois lados - Backface color - Core de faces traseiras + Backface color + Core de faces traseiras - Smoothing - Suavização + Smoothing + Suavização - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Este é o menor ângulo entre duas faces onde será usado o sombreamento plano.</p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> se o ângulo entre as normais de duas faces vizinhas é menor do que o ângulo de vincos, as faces serão suavizadas ao redor de sua borda comum.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> Este é o menor ângulo entre duas faces onde será usado o sombreamento plano.</p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> se o ângulo entre as normais de duas faces vizinhas é menor do que o ângulo de vincos, as faces serão suavizadas ao redor de sua borda comum.</p></body></html> - Crease angle - Ângulo dos vincos + Crease angle + Ângulo dos vincos - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style="font-weight:600;"> flat sombreamento de sombreamento/Phong</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> define a aparência de superfícies.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> com sombreamento plano as normais da superfície não são definidas por vértice, o que leva a uma aparência irreal para superfícies curvas. Use sombreamento Phong para uma aparência mais suave.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> se essa opção for definida, o sombreamento Phong será usado, se estiver desactivado o sombreamento plano será usado.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style="font-weight:600;"> flat sombreamento de sombreamento/Phong</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> define a aparência de superfícies.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> com sombreamento plano as normais da superfície não são definidas por vértice, o que leva a uma aparência irreal para superfícies curvas. Use sombreamento Phong para uma aparência mais suave.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> se essa opção for definida, o sombreamento Phong será usado, se estiver desactivado o sombreamento plano será usado.</p></body></html> - Define normal per vertex - Definir normal por vértice + Define normal per vertex + Definir normal por vértice + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Sugestão</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Definir as normais por vértice é também chamado <span style=" font-style:italic;">sombreamento Phong</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">enquanto define as normais por face é chamado de</span> sombreamento <span style=" font-style:normal;">plano.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Sugestão</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Definir as normais por vértice é também chamado <span style=" font-style:italic;">sombreamento Phong</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">enquanto define as normais por face é chamado de</span> sombreamento <span style=" font-style:normal;">plano.</span> </p></body></html> + Default appearance for new meshes + Aparência padrão para novas malhas - Default appearance for new meshes - Aparência padrão para novas malhas + Default line color + Cor de linha padrão - Default line color - Cor de linha padrão + Mesh transparency + Transparência de malha - Mesh transparency - Transparência de malha + Default mesh color + Cor padrão de malha - Default mesh color - Cor padrão de malha + Show bounding-box for highlighted or selected meshes + Mostrar caixa de volume para malhas destacadas ou selecionadas - Show bounding-box for highlighted or selected meshes - Mostrar caixa de volume para malhas destacadas ou selecionadas + Line transparency + Transparência das linhas - - Line transparency - Transparência das linhas - - - + + MeshGui::DlgSmoothing - Smoothing - Suavização + Smoothing + Suavização - Method - Método + Method + Método - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parâmetro + Parameter + Parâmetro - Iterations: - Iterações: + Iterations: + Iterações: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Adicionar triângulo + Add triangle + Adicionar triângulo - Flip normal - Inverter normais + Flip normal + Inverter normais - Clear - Limpar + Clear + Limpar - Finish - Concluir + Finish + Concluir - - + + MeshGui::RemoveComponents - Remove components - Remover componentes + Remove components + Remover componentes - Select - Selecione + Select + Selecione - Select whole component - Selecione o componente inteiro + Select whole component + Selecione o componente inteiro - Pick triangle - Escolha um triângulo + Pick triangle + Escolha um triângulo - < faces than - < faces do que + < faces than + < faces do que - Region - Região + Region + Região - Components - Componentes + Components + Componentes - All - Todos + All + Todos - Deselect - Deselecionar + Deselect + Deselecionar - Deselect whole component - Desmarcar componente inteiro + Deselect whole component + Desmarcar componente inteiro - > faces than - > faces do que + > faces than + > faces do que - Region options - Opções de região + Region options + Opções de região - Respect only triangles with normals facing screen - Respeitar somente com triângulos com normais direcionadas para a tela + Respect only triangles with normals facing screen + Respeitar somente com triângulos com normais direcionadas para a tela - Respect only visible triangles - Respeitar apenas triângulos visíveis + Respect only visible triangles + Respeitar apenas triângulos visíveis - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cilindro + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Esfera + + + MeshGui::TaskRemoveComponents - Delete - Excluir + Delete + Excluir - Invert - Inverter + Invert + Inverter - - + + QDockWidget - Evaluate & Repair Mesh - Avaliar & consertar malha + Evaluate & Repair Mesh + Avaliar & consertar malha - - + + QObject - Import mesh - Importar malha + Import mesh + Importar malha - Export mesh - Exportar malha + Export mesh + Exportar malha - Solid Mesh - Malha sólida + Solid Mesh + Malha sólida - Boundings - Caixa de volume + Boundings + Caixa de volume - Fill holes - Preencher furos + Fill holes + Preencher furos - Fill holes with maximum number of edges: - Preenche buracos com um número máximo de arestas: + Fill holes with maximum number of edges: + Preenche buracos com um número máximo de arestas: - Binary STL (*.stl) - STL binário (*.stl) + Binary STL (*.stl) + STL binário (*.stl) - ASCII STL (*.ast) - STL ASCII (*.ast) + ASCII STL (*.ast) + STL ASCII (*.ast) - Binary Mesh (*.bms) - Malha binária (*.bms) + Binary Mesh (*.bms) + Malha binária (*.bms) - Alias Mesh (*.obj) - Malha Alias (*.obj) + Alias Mesh (*.obj) + Malha Alias (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Todos os arquivos (*.*) + All Files (*.*) + Todos os arquivos (*.*) - ASCII STL (*.stl) - STL ASCII (*.stl) + ASCII STL (*.stl) + STL ASCII (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - VRML 2.0 comprimido (*.wrz) + Compressed VRML 2.0 (*.wrz) + VRML 2.0 comprimido (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Modulo do python (*.py) + Python module def (*.py) + Modulo do python (*.py) - Meshing Tolerance - Tolerância de malhagem + Meshing Tolerance + Tolerância de malhagem - Enter tolerance for meshing geometry: - Digite tolerância para a malhagem de geometria: + Enter tolerance for meshing geometry: + Digite tolerância para a malhagem de geometria: - The mesh '%1' is a solid. - A malha '%1' é um sólido. + The mesh '%1' is a solid. + A malha '%1' é um sólido. - The mesh '%1' is not a solid. - A malha '%1' não é um sólido. + The mesh '%1' is not a solid. + A malha '%1' não é um sólido. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Pontos: %1, Arestas: %2 Faces: %3] + [Points: %1, Edges: %2 Faces: %3] + [Pontos: %1, Arestas: %2 Faces: %3] - Leave info mode - Sair do modo de info + Leave info mode + Sair do modo de info - Index: %1 - Ãndice: %1 + Index: %1 + Ãndice: %1 - Leave hole-filling mode - Sair do modo de preenchimento de furos + Leave hole-filling mode + Sair do modo de preenchimento de furos - Leave removal mode - Sair do modo de remoção + Leave removal mode + Sair do modo de remoção - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Todos os arquivos de malha (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Todos os arquivos de malha (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Excluir as faces selecionadas + Delete selected faces + Excluir as faces selecionadas - Clear selected faces - Limpar as faces selecionadas + Clear selected faces + Limpar as faces selecionadas - Annotation - Anotação + Annotation + Anotação - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analisar + Analyze + Analisar - Boolean - Booleanas + Boolean + Booleanas - &Meshes - &Malhas + &Meshes + &Malhas - Mesh tools - Ferramentas de malha + Mesh tools + Ferramentas de malha - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ru.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ru.ts index 061c67d7d..58bc0ae17 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_ru.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_ru.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Сеть + Mesh + Сеть - Add triangle - Добавить треугольник + Add triangle + Добавить треугольник - Add triangle manually to a mesh - Добавить треугольник в Ñетку вручную + Add triangle manually to a mesh + Добавить треугольник в Ñетку вручную - - + + CmdMeshBoundingBox - Mesh - Сеть + Mesh + Сеть - Boundings info... - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñтруктуре... + Boundings info... + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñтруктуре... - Shows the boundings of the selected mesh - Показывает Ñтруктуру выбранной Ñетки + Shows the boundings of the selected mesh + Показывает Ñтруктуру выбранной Ñетки - - + + CmdMeshBuildRegularSolid - Mesh - Сеть + Mesh + Сеть - Regular solid... - Правлю твердое ... + Regular solid... + Правлю твердое ... - Builds a regular solid - ПоÑтроение правильного твердого тела + Builds a regular solid + ПоÑтроение правильного твердого тела - - + + CmdMeshDemolding - Interactive demolding direction - Интерактивное Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ð¸ из формы + Interactive demolding direction + Интерактивное Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ð¸ из формы - Mesh - Сеть + Mesh + Сеть - - + + CmdMeshDifference - Mesh - Сеть + Mesh + Сеть - Difference - РазноÑть + Difference + РазноÑть - - + + CmdMeshEvaluateFacet - Mesh - Сеть + Mesh + Сеть - Face info - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поверхноÑти + Face info + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поверхноÑти - Information about face - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поверхноÑти + Information about face + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ поверхноÑти - - + + CmdMeshEvaluateSolid - Mesh - Сеть + Mesh + Сеть - Check solid mesh - Проверить прочноÑть Ñетки + Check solid mesh + Проверить прочноÑть Ñетки - Checks whether the mesh is a solid - ПроверÑет, тверда ли Ñетка + Checks whether the mesh is a solid + ПроверÑет, тверда ли Ñетка - - + + CmdMeshEvaluation - Mesh - Сеть + Mesh + Сеть - Opens a dialog to analyze and repair a mesh - Открывает диалог Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° и ремонта Ñети + Opens a dialog to analyze and repair a mesh + Открывает диалог Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð° и ремонта Ñети - Evaluate && Repair mesh... - Оценить и ремонтировать Ñетку... + Evaluate && Repair mesh... + Оценить и ремонтировать Ñетку... - - + + CmdMeshExMakeMesh - Mesh - Сеть + Mesh + Сеть - Make a Box - Создать параллелепипед + Make a Box + Создать параллелепипед - - + + CmdMeshExMakeTool - Mesh - Сеть + Mesh + Сеть - Make a Tool - Создать инÑтрумент + Make a Tool + Создать инÑтрумент - - + + CmdMeshExMakeUnion - Mesh - Сеть + Mesh + Сеть - Make Union - Создать объединение + Make Union + Создать объединение - - + + CmdMeshExport - Mesh - Сеть + Mesh + Сеть - Export mesh... - ЭкÑпорт Ñети... + Export mesh... + ЭкÑпорт Ñети... - Exports a mesh to file - ЭкÑпорт Ñети в файл + Exports a mesh to file + ЭкÑпорт Ñети в файл - - + + CmdMeshFillInteractiveHole - Mesh - Сеть + Mesh + Сеть - Close hole - Закрыть отверÑтие + Close hole + Закрыть отверÑтие - Close holes interactively - Закрыть отверÑÑ‚Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ + Close holes interactively + Закрыть отверÑÑ‚Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ - - + + CmdMeshFillupHoles - Mesh - Сеть + Mesh + Сеть - Fill holes... - Закрыть отверÑÑ‚Ð¸Ñ ... + Fill holes... + Закрыть отверÑÑ‚Ð¸Ñ ... - Fill holes of the mesh - Закрыть отверÑÑ‚Ð¸Ñ Ñетки + Fill holes of the mesh + Закрыть отверÑÑ‚Ð¸Ñ Ñетки - - + + CmdMeshFlipNormals - Mesh - Сеть + Mesh + Сеть - Flip normals - Сменить направление нормалей на противоположное + Flip normals + Сменить направление нормалей на противоположное - Flips the normals of the mesh - Сменить направление нормалей Ñети на противоположное + Flips the normals of the mesh + Сменить направление нормалей Ñети на противоположное - - + + CmdMeshFromGeometry - Mesh - Сеть + Mesh + Сеть - Create mesh from geometry... - Создать Ñеть по геометрии ... + Create mesh from geometry... + Создать Ñеть по геометрии ... - Create mesh from the selected geometry - Создание Ñети из выбранного геометрии + Create mesh from the selected geometry + Создание Ñети из выбранного геометрии - - + + CmdMeshHarmonizeNormals - Mesh - Сеть + Mesh + Сеть - Harmonize normals - СоглаÑование нормалей + Harmonize normals + СоглаÑование нормалей - Harmonizes the normals of the mesh - СоглаÑует нормали Ñети + Harmonizes the normals of the mesh + СоглаÑует нормали Ñети - - + + CmdMeshImport - Mesh - Сеть + Mesh + Сеть - Import mesh... - Импорт Ñети... + Import mesh... + Импорт Ñети... - Imports a mesh from file - Импорт Ñети из файла + Imports a mesh from file + Импорт Ñети из файла - - + + CmdMeshIntersection - Mesh - Сеть + Mesh + Сеть - Intersection - ПереÑечение + Intersection + ПереÑечение - - + + CmdMeshPolyCut - Mesh - Сеть + Mesh + Сеть - Cut mesh - Обрезать Ñеть + Cut mesh + Обрезать Ñеть - Cuts a mesh with a picked polygon - Обрезать Ñеть, выбранным многоугольником + Cuts a mesh with a picked polygon + Обрезать Ñеть, выбранным многоугольником - - + + CmdMeshPolySegm - Mesh - Сеть + Mesh + Сеть - Make segment - Создать Ñегмент + Make segment + Создать Ñегмент - Creates a mesh segment - Создает Ñегмент Ñетки + Creates a mesh segment + Создает Ñегмент Ñетки - - + + CmdMeshPolySelect - Mesh - Сеть + Mesh + Сеть - Select mesh - Выберите Ñеть + Select mesh + Выберите Ñеть - Select an area of the mesh - Выберите облаÑть Ñетки + Select an area of the mesh + Выберите облаÑть Ñетки - - + + CmdMeshPolySplit - Mesh - Сеть + Mesh + Сеть - Split mesh - Разделить Ñети + Split mesh + Разделить Ñети - Splits a mesh into two meshes - РазделÑет Ñетку на две Ñетки + Splits a mesh into two meshes + РазделÑет Ñетку на две Ñетки - - + + + CmdMeshPolyTrim + + Mesh + Сеть + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Сеть + Mesh + Сеть - Remove components by hand... - Удалить компоненты вручную ... + Remove components by hand... + Удалить компоненты вручную ... - Mark a component to remove it from the mesh - Пометьте компонент Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· Ñетки + Mark a component to remove it from the mesh + Пометьте компонент Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· Ñетки - - + + CmdMeshRemoveComponents - Mesh - Сеть + Mesh + Сеть - Remove components... - Удалить компоненты... + Remove components... + Удалить компоненты... - Remove topologic independent components from the mesh - Удалить топологичеÑки-незавиÑимые компоненты из Ñетки + Remove topologic independent components from the mesh + Удалить топологичеÑки-незавиÑимые компоненты из Ñетки - - + + + CmdMeshSegmentation + + Mesh + Сеть + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Сеть + Mesh + Сеть - Smooth... - Сгладить ... + Smooth... + Сгладить ... - Smooth the selected meshes - Сгладить, выбранные Ñети + Smooth the selected meshes + Сгладить, выбранные Ñети - - + + CmdMeshToolMesh - Mesh - Сеть + Mesh + Сеть - Segment by tool mesh - ЧаÑть инÑтрумента Ñетки + Segment by tool mesh + ЧаÑть инÑтрумента Ñетки - Creates a segment from a given tool mesh - Создает Ñегмент из данного инÑтрумента Ñети + Creates a segment from a given tool mesh + Создает Ñегмент из данного инÑтрумента Ñети - - + + CmdMeshTransform - Mesh - Сеть + Mesh + Сеть - Transform mesh - Преобразование Ñетки + Transform mesh + Преобразование Ñетки - Rotate or move a mesh - Поворот или перемещение Ñетки + Rotate or move a mesh + Поворот или перемещение Ñетки - - + + CmdMeshUnion - Mesh - Сеть + Mesh + Сеть - Union - Объединение + Union + Объединение - - + + CmdMeshVertexCurvature - Mesh - Сеть + Mesh + Сеть - Calculates the curvature of the vertices of a mesh - ВычиÑлÑет кривизну вершин Ñетки + Calculates the curvature of the vertices of a mesh + ВычиÑлÑет кривизну вершин Ñетки - Curvature plot - Кривой учаÑток + Curvature plot + Кривой учаÑток - - + + CmdMeshVertexCurvatureInfo - Mesh - Сеть + Mesh + Сеть - Curvature info - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ кривизне + Curvature info + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ кривизне - Information about curvature - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ кривизне + Information about curvature + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ кривизне - - + + MeshGui::DlgEvaluateMesh - &Help - & Справки + &Help + & Справки - F1 - F1 + F1 + F1 - &Close - & Закрыть + &Close + & Закрыть - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñети + Mesh information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ Ñети - No information - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует + No information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует - Number of points: - КоличеÑтво точек: + Number of points: + КоличеÑтво точек: - Number of edges: - КоличеÑтво ребер: + Number of edges: + КоличеÑтво ребер: - Refresh - Обновить + Refresh + Обновить - Analyze - Ðнализировать + Analyze + Ðнализировать - Repair - Ремонт + Repair + Ремонт - Orientation - ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ + Orientation + ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - Degenerated faces - УхудшившийÑÑ Ð»Ð¸Ñ†Ð° + Degenerated faces + УхудшившийÑÑ Ð»Ð¸Ñ†Ð° - Face indices - ИндекÑÑ‹ лица + Face indices + ИндекÑÑ‹ лица - Number of faces: - КоличеÑтво лиц: + Number of faces: + КоличеÑтво лиц: - Duplicated faces - ПовторÑющиеÑÑ Ð»Ð¸Ñ†Ð° + Duplicated faces + ПовторÑющиеÑÑ Ð»Ð¸Ñ†Ð° - Duplicated points - ПовторÑющиеÑÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ + Duplicated points + ПовторÑющиеÑÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ - Non-manifolds - ÐžÐ´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ + Non-manifolds + ÐžÐ´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ - Self-intersections - СамопереÑеченые + Self-intersections + СамопереÑеченые - All above tests together - ИÑпользоват вмеÑте вÑе указанные выше теÑты + All above tests together + ИÑпользоват вмеÑте вÑе указанные выше теÑты - Repetitive repair - Серийный ремонт + Repetitive repair + Серийный ремонт - Evaluate & Repair Mesh - Оценить и ремонтировать Ñетку + Evaluate & Repair Mesh + Оценить и ремонтировать Ñетку - Folds on surface - Складки на поверхноÑти + Folds on surface + Складки на поверхноÑти - - + + MeshGui::DlgEvaluateMeshImp - No information - Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует + No information + Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ñ‚ÑутÑтвует - Invalid neighbour indices - Ðеверные ÑоÑеди указателей + Invalid neighbour indices + Ðеверные ÑоÑеди указателей - Invalid face indices - Ðеверные индекÑÑ‹ граней + Invalid face indices + Ðеверные индекÑÑ‹ граней - Invalid point indices - Ðеверные индекÑÑ‹ точки + Invalid point indices + Ðеверные индекÑÑ‹ точки - Multiple point indices - СоÑтавные указатели точек + Multiple point indices + СоÑтавные указатели точек - Non-manifolds - ÐžÐ´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ + Non-manifolds + ÐžÐ´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ - Cannot remove non-manifolds - Ðе могу удалить Ð¾Ð´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ + Cannot remove non-manifolds + Ðе могу удалить Ð¾Ð´Ð½Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ - No selection - Ðет выбора + No selection + Ðет выбора - No flipped normals - Перевернутых нормалей нет + No flipped normals + Перевернутых нормалей нет - %1 flipped normals - %1 перевернуть нормали + %1 flipped normals + %1 перевернуть нормали - No non-manifolds - Ðет однообразий + No non-manifolds + Ðет однообразий - %1 non-manifolds - %1 однообразный + %1 non-manifolds + %1 однообразный - No invalid indices - Ðет недейÑтвительных индекÑов + No invalid indices + Ðет недейÑтвительных индекÑов - No degenerations - Ðе вырождать + No degenerations + Ðе вырождать - %1 degenerated faces - %1 выродившиеÑÑ Ð³Ñ€Ð°Ð½Ð¸ + %1 degenerated faces + %1 выродившиеÑÑ Ð³Ñ€Ð°Ð½Ð¸ - No duplicated faces - Ðет дублировать грани + No duplicated faces + Ðет дублировать грани - %1 duplicated faces - %1 дублирующиеÑÑ Ð³Ñ€Ð°Ð½Ð¸ + %1 duplicated faces + %1 дублирующиеÑÑ Ð³Ñ€Ð°Ð½Ð¸ - No duplicated points - Ðет дублировать точки + No duplicated points + Ðет дублировать точки - Duplicated points - ПовторÑющиеÑÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ + Duplicated points + ПовторÑющиеÑÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ - Orientation - ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ + Orientation + ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ - Indices - ИндекÑÑ‹ + Indices + ИндекÑÑ‹ - Degenerations - Ð£Ñ…ÑƒÐ´ÑˆÐµÐ½Ð¸Ñ + Degenerations + Ð£Ñ…ÑƒÐ´ÑˆÐµÐ½Ð¸Ñ - Duplicated faces - ПовторÑющиеÑÑ Ð»Ð¸Ñ†Ð° + Duplicated faces + ПовторÑющиеÑÑ Ð»Ð¸Ñ†Ð° - No self-intersections - Ðе ÑамопереÑечений + No self-intersections + Ðе ÑамопереÑечений - Self-intersections - СамопереÑеченые + Self-intersections + СамопереÑеченые - Mesh repair - Ремонт Ñетки + Mesh repair + Ремонт Ñетки - Flipped normals found - Ðайдены перевёрнутые нормали + Flipped normals found + Ðайдены перевёрнутые нормали - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Ðе удалоÑÑŒ проверить из-за Ñкладок на поверхноÑти. Сначала запуÑтите команду Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ Ñкладок + Ðе удалоÑÑŒ проверить из-за Ñкладок на поверхноÑти. Сначала запуÑтите команду Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ Ñкладок - No folds on surface - Ðет Ñкладок на поверхноÑти + No folds on surface + Ðет Ñкладок на поверхноÑти - %1 folds on surface - %1 Ñкладки на поверхноÑти + %1 folds on surface + %1 Ñкладки на поверхноÑти - Folds - Складки + Folds + Складки - - + + MeshGui::DlgRegularSolid - Regular Solid - Правильное геометричеÑкое тело + Regular Solid + Правильное геометричеÑкое тело - &Create - & Создать + &Create + & Создать - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Закрыть + Cl&ose + Закрыть - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Правильные: + Solid: + Правильные: - Cube - Куб + Cube + Куб - Cylinder - Цилиндр + Cylinder + Цилиндр - Cone - ÐšÐ¾Ð½ÑƒÑ + Cone + ÐšÐ¾Ð½ÑƒÑ - Sphere - Сфера + Sphere + Сфера - Ellipsoid - ЭллипÑоид + Ellipsoid + ЭллипÑоид - Torus - Тор + Torus + Тор - Height: - Ð’Ñ‹Ñота: + Height: + Ð’Ñ‹Ñота: - Length: - Длина: + Length: + Длина: - Width: - Ширина: + Width: + Ширина: - Radius: - РадиуÑ: + Radius: + РадиуÑ: - Closed - Закрыто + Closed + Закрыто - Sampling: - Выборка: + Sampling: + Выборка: - Edge length: - Длина кромки: + Edge length: + Длина кромки: - Radius 1: - Ð Ð°Ð´Ð¸ÑƒÑ 1: + Radius 1: + Ð Ð°Ð´Ð¸ÑƒÑ 1: - Radius 2: - Ð Ð°Ð´Ð¸ÑƒÑ 2: + Radius 2: + Ð Ð°Ð´Ð¸ÑƒÑ 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Создать %1 + Create %1 + Создать %1 - No active document - Ðет активного документа + No active document + Ðет активного документа - - + + MeshGui::DlgSettingsMeshView - Mesh view - ПроÑмотр в виде Ñетки + Mesh view + ПроÑмотр в виде Ñетки - Two-side rendering - ДвуÑтороннее отображение + Two-side rendering + ДвуÑтороннее отображение - Backface color - Цвет оборотной Ñтороны + Backface color + Цвет оборотной Ñтороны - Smoothing - Размытие + Smoothing + Размытие - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Угол Ñгиба + Crease angle + Угол Ñгиба - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Определить нормаль Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ вершины + Define normal per vertex + Определить нормаль Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ вершины + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Внешний вид новых Ñеток по умолчанию - Default appearance for new meshes - Внешний вид новых Ñеток по умолчанию + Default line color + Цвет линии по умолчанию - Default line color - Цвет линии по умолчанию + Mesh transparency + ПрозрачноÑть Ñетки - Mesh transparency - ПрозрачноÑть Ñетки + Default mesh color + Цвет Ñетки по умолчанию - Default mesh color - Цвет Ñетки по умолчанию + Show bounding-box for highlighted or selected meshes + Показать ограничивающий прÑмоугольник Ð´Ð»Ñ Ð¿Ð¾Ð´Ñвеченных или выбранных Ñеток - Show bounding-box for highlighted or selected meshes - Показать ограничивающий прÑмоугольник Ð´Ð»Ñ Ð¿Ð¾Ð´Ñвеченных или выбранных Ñеток + Line transparency + ПрозрачноÑть линии - - Line transparency - ПрозрачноÑть линии - - - + + MeshGui::DlgSmoothing - Smoothing - Размытие + Smoothing + Размытие - Method - Метод + Method + Метод - Taubin - Таубин + Taubin + Таубин - Laplace - ЛаплаÑа + Laplace + ЛаплаÑа - Parameter - Параметр + Parameter + Параметр - Iterations: - Итерации: + Iterations: + Итерации: - Lambda: - ЛÑмбда: + Lambda: + ЛÑмбда: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Добавить треугольник + Add triangle + Добавить треугольник - Flip normal - Ðаправить нормаль в противоположную Ñторону + Flip normal + Ðаправить нормаль в противоположную Ñторону - Clear - ОчиÑтить + Clear + ОчиÑтить - Finish - Завершить + Finish + Завершить - - + + MeshGui::RemoveComponents - Remove components - Удалить компоненты + Remove components + Удалить компоненты - Select - Выбрать + Select + Выбрать - Select whole component - Выбрать вÑе компоненты + Select whole component + Выбрать вÑе компоненты - Pick triangle - Подобрать треугольник + Pick triangle + Подобрать треугольник - < faces than - < faces than + < faces than + < faces than - Region - Регион + Region + Регион - Components - Компоненты + Components + Компоненты - All - Ð’Ñе + All + Ð’Ñе - Deselect - СнÑть выделение + Deselect + СнÑть выделение - Deselect whole component - СнÑть выделение вÑе компоненты + Deselect whole component + СнÑть выделение вÑе компоненты - > faces than - > наружное покрытие + > faces than + > наружное покрытие - Region options - Параметры региона + Region options + Параметры региона - Respect only triangles with normals facing screen - Привилегировать треугольники Ñ Ð½Ð°Ñ€ÑƒÐ¶Ð½Ñ‹Ð¼ покрытием + Respect only triangles with normals facing screen + Привилегировать треугольники Ñ Ð½Ð°Ñ€ÑƒÐ¶Ð½Ñ‹Ð¼ покрытием - Respect only visible triangles - Уважать только видимые треугольники + Respect only visible triangles + Уважать только видимые треугольники - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Цилиндр + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Сфера + + + MeshGui::TaskRemoveComponents - Delete - Удалить + Delete + Удалить - Invert - Инвертировать + Invert + Инвертировать - - + + QDockWidget - Evaluate & Repair Mesh - Оценить и ремонтировать Ñетку + Evaluate & Repair Mesh + Оценить и ремонтировать Ñетку - - + + QObject - Import mesh - Импорт Ñети + Import mesh + Импорт Ñети - Export mesh - ЭкÑпорт Ñети + Export mesh + ЭкÑпорт Ñети - Solid Mesh - ÐŸÑ€Ð¾Ñ‡Ð½Ð°Ñ Ñетка + Solid Mesh + ÐŸÑ€Ð¾Ñ‡Ð½Ð°Ñ Ñетка - Boundings - ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ + Boundings + ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ - Fill holes - Закрыть отверÑÑ‚Ð¸Ñ + Fill holes + Закрыть отверÑÑ‚Ð¸Ñ - Fill holes with maximum number of edges: - Заполнить отверÑÑ‚Ð¸Ñ Ñ Ð¼Ð°ÐºÑимальным чиÑлом ребер: + Fill holes with maximum number of edges: + Заполнить отверÑÑ‚Ð¸Ñ Ñ Ð¼Ð°ÐºÑимальным чиÑлом ребер: - Binary STL (*.stl) - Двоичный STL (*.stl) + Binary STL (*.stl) + Двоичный STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Двоичный Ñетки (*.bms) + Binary Mesh (*.bms) + Двоичный Ñетки (*.bms) - Alias Mesh (*.obj) - ПÑевдонимные Ñетки (*.obj) + Alias Mesh (*.obj) + ПÑевдонимные Ñетки (*.obj) - Inventor V2.1 ascii (*.iv) - Изобретатель V2.1 ascii (* .iv) + Inventor V2.1 ascii (*.iv) + Изобретатель V2.1 ascii (* .iv) - All Files (*.*) - Ð’Ñе файлы (*.*) + All Files (*.*) + Ð’Ñе файлы (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - Сжатый VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Сжатый VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python module def (*.py) + Python module def (*.py) + Python module def (*.py) - Meshing Tolerance - Возможное отклонение Ñетки + Meshing Tolerance + Возможное отклонение Ñетки - Enter tolerance for meshing geometry: - Введите возможное отклонение Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ð¸: + Enter tolerance for meshing geometry: + Введите возможное отклонение Ð´Ð»Ñ ÑлиÑÐ½Ð¸Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ð¸: - The mesh '%1' is a solid. - Сетка '%1' прочнаÑ. + The mesh '%1' is a solid. + Сетка '%1' прочнаÑ. - The mesh '%1' is not a solid. - Сетка '%1' не прочнаÑ. + The mesh '%1' is not a solid. + Сетка '%1' не прочнаÑ. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Пунктов: %1, Ребер: %2 Лиц: %3] + [Points: %1, Edges: %2 Faces: %3] + [Пунктов: %1, Ребер: %2 Лиц: %3] - Leave info mode - Выйти из информационного режима + Leave info mode + Выйти из информационного режима - Index: %1 - ИндекÑ: %1 + Index: %1 + ИндекÑ: %1 - Leave hole-filling mode - Выйти из режима Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ€Ñтий + Leave hole-filling mode + Выйти из режима Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ€Ñтий - Leave removal mode - Выйти из режима ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ + Leave removal mode + Выйти из режима ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Ð’Ñе файлы Ñеток (*.stl *.ast *.bms *.obj * .ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Ð’Ñе файлы Ñеток (*.stl *.ast *.bms *.obj * .ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Удалить выбранные лица + Delete selected faces + Удалить выбранные лица - Clear selected faces - ОчиÑтить выбранные грани + Clear selected faces + ОчиÑтить выбранные грани - Annotation - ÐÐ½Ð½Ð¾Ñ‚Ð°Ñ†Ð¸Ñ + Annotation + ÐÐ½Ð½Ð¾Ñ‚Ð°Ñ†Ð¸Ñ - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Ðнализировать + Analyze + Ðнализировать - Boolean - Булевый + Boolean + Булевый - &Meshes - & Сетки + &Meshes + & Сетки - Mesh tools - ИнÑтрументы Ñетки + Mesh tools + ИнÑтрументы Ñетки - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_se.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_se.ts index b3b57649f..dcb22227b 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_se.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_se.ts @@ -1,1122 +1,1203 @@ - - + + CmdMeshAddFacet - Mesh - Nät + Mesh + Nät - Add triangle - Addera triangel + Add triangle + Addera triangel - Add triangle manually to a mesh - Addera triangel manuellt till ett nät + Add triangle manually to a mesh + Addera triangel manuellt till ett nät - - + + CmdMeshBoundingBox - Mesh - Nät + Mesh + Nät - Boundings info... - Begränsningsinfo... + Boundings info... + Begränsningsinfo... - Shows the boundings of the selected mesh - Visar begränsningarna pÃ¥ det valda nätet + Shows the boundings of the selected mesh + Visar begränsningarna pÃ¥ det valda nätet - - + + CmdMeshBuildRegularSolid - Mesh - Nät + Mesh + Nät - Regular solid... - Reguljär solid... + Regular solid... + Reguljär solid... - Builds a regular solid - Skapar en reguljär solid + Builds a regular solid + Skapar en reguljär solid - - + + CmdMeshDemolding - Interactive demolding direction - Interaktiv avformningsriktning + Interactive demolding direction + Interaktiv avformningsriktning - Mesh - Nät + Mesh + Nät - - + + CmdMeshDifference - Mesh - Nät + Mesh + Nät - Difference - Skillnad + Difference + Skillnad - - + + CmdMeshEvaluateFacet - Mesh - Nät + Mesh + Nät - Face info - Ytinformation + Face info + Ytinformation - Information about face - Information om yta + Information about face + Information om yta - - + + CmdMeshEvaluateSolid - Mesh - Nät + Mesh + Nät - Check solid mesh - Kontrolera solidnät + Check solid mesh + Kontrolera solidnät - Checks whether the mesh is a solid - Kontrollerar om nätet är en solid + Checks whether the mesh is a solid + Kontrollerar om nätet är en solid - - + + CmdMeshEvaluation - Mesh - Nät + Mesh + Nät - Opens a dialog to analyze and repair a mesh - Öppnar en dialog för att analysera och reparera ett nät + Opens a dialog to analyze and repair a mesh + Öppnar en dialog för att analysera och reparera ett nät - Evaluate && Repair mesh... - Utvärdera && reparera nät... + Evaluate && Repair mesh... + Utvärdera && reparera nät... - - + + CmdMeshExMakeMesh - Mesh - Nät + Mesh + Nät - Make a Box - Gör en lÃ¥da + Make a Box + Gör en lÃ¥da - - + + CmdMeshExMakeTool - Mesh - Nät + Mesh + Nät - Make a Tool - Gör ett verktyg + Make a Tool + Gör ett verktyg - - + + CmdMeshExMakeUnion - Mesh - Nät + Mesh + Nät - Make Union - Gör en förening + Make Union + Gör en förening - - + + CmdMeshExport - Mesh - Nät + Mesh + Nät - Export mesh... - Exportera nät... + Export mesh... + Exportera nät... - Exports a mesh to file - Exporterar ett nät till fil + Exports a mesh to file + Exporterar ett nät till fil - - + + CmdMeshFillInteractiveHole - Mesh - Nät + Mesh + Nät - Close hole - Stäng hÃ¥l + Close hole + Stäng hÃ¥l - Close holes interactively - Stäng hÃ¥l interaktivt + Close holes interactively + Stäng hÃ¥l interaktivt - - + + CmdMeshFillupHoles - Mesh - Nät + Mesh + Nät - Fill holes... - Fyll hÃ¥l... + Fill holes... + Fyll hÃ¥l... - Fill holes of the mesh - Fyll nätets hÃ¥l + Fill holes of the mesh + Fyll nätets hÃ¥l - - + + CmdMeshFlipNormals - Mesh - Nät + Mesh + Nät - Flip normals - Invertera normaler + Flip normals + Invertera normaler - Flips the normals of the mesh - Invertera nätets normaler + Flips the normals of the mesh + Invertera nätets normaler - - + + CmdMeshFromGeometry - Mesh - Nät + Mesh + Nät - Create mesh from geometry... - Skapa nät frÃ¥n geometri... + Create mesh from geometry... + Skapa nät frÃ¥n geometri... - Create mesh from the selected geometry - Skapa nät frÃ¥n den valda geometrin + Create mesh from the selected geometry + Skapa nät frÃ¥n den valda geometrin - - + + CmdMeshHarmonizeNormals - Mesh - Nät + Mesh + Nät - Harmonize normals - Anpassa normaler + Harmonize normals + Anpassa normaler - Harmonizes the normals of the mesh - Anpassa nätets normaler + Harmonizes the normals of the mesh + Anpassa nätets normaler - - + + CmdMeshImport - Mesh - Nät + Mesh + Nät - Import mesh... - Importera nät... + Import mesh... + Importera nät... - Imports a mesh from file - Importerar ett nät frÃ¥n fil + Imports a mesh from file + Importerar ett nät frÃ¥n fil - - + + CmdMeshIntersection - Mesh - Nät + Mesh + Nät - Intersection - Skärning + Intersection + Skärning - - + + CmdMeshPolyCut - Mesh - Nät + Mesh + Nät - Cut mesh - Klipp nät + Cut mesh + Klipp nät - Cuts a mesh with a picked polygon - Klipper ett nät med en vald polygon + Cuts a mesh with a picked polygon + Klipper ett nät med en vald polygon - - + + CmdMeshPolySegm - Mesh - Nät + Mesh + Nät - Make segment - Skapa segment + Make segment + Skapa segment - Creates a mesh segment - Skapar ett nätsegment + Creates a mesh segment + Skapar ett nätsegment - - + + CmdMeshPolySelect - Mesh - Nät + Mesh + Nät - Select mesh - Välj nät + Select mesh + Välj nät - Select an area of the mesh - Markera ett omrÃ¥de i nätet + Select an area of the mesh + Markera ett omrÃ¥de i nätet - - + + CmdMeshPolySplit - Mesh - Nät + Mesh + Nät - Split mesh - Dela nät + Split mesh + Dela nät - Splits a mesh into two meshes - Delar ett nät till tvÃ¥ nät + Splits a mesh into two meshes + Delar ett nät till tvÃ¥ nät - - + + + CmdMeshPolyTrim + + Mesh + Nät + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Nät + Mesh + Nät - Remove components by hand... - Ta bort komponenter för hand... + Remove components by hand... + Ta bort komponenter för hand... - Mark a component to remove it from the mesh - Markera en komponent för att ta bort den frÃ¥n nätet + Mark a component to remove it from the mesh + Markera en komponent för att ta bort den frÃ¥n nätet - - + + CmdMeshRemoveComponents - Mesh - Nät + Mesh + Nät - Remove components... - Ta bort komponenter... + Remove components... + Ta bort komponenter... - Remove topologic independent components from the mesh - Ta bort topologiskt oberoende komponenter frÃ¥n nätet + Remove topologic independent components from the mesh + Ta bort topologiskt oberoende komponenter frÃ¥n nätet - - + + + CmdMeshSegmentation + + Mesh + Nät + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Nät + Mesh + Nät - Smooth... - Jämna ut... + Smooth... + Jämna ut... - Smooth the selected meshes - Jämna ut de valda näten + Smooth the selected meshes + Jämna ut de valda näten - - + + CmdMeshToolMesh - Mesh - Nät + Mesh + Nät - Segment by tool mesh - Segmentera + Segment by tool mesh + Segmentera - Creates a segment from a given tool mesh - Skapar ett segment frÃ¥n ett givet verktygsnät + Creates a segment from a given tool mesh + Skapar ett segment frÃ¥n ett givet verktygsnät - - + + CmdMeshTransform - Mesh - Nät + Mesh + Nät - Transform mesh - Transformera nät + Transform mesh + Transformera nät - Rotate or move a mesh - Rotera eller flytta ett nät + Rotate or move a mesh + Rotera eller flytta ett nät - - + + CmdMeshUnion - Mesh - Nät + Mesh + Nät - Union - Förening + Union + Förening - - + + CmdMeshVertexCurvature - Mesh - Nät + Mesh + Nät - Calculates the curvature of the vertices of a mesh - Beräknar hörnens krökning pÃ¥ ett nät + Calculates the curvature of the vertices of a mesh + Beräknar hörnens krökning pÃ¥ ett nät - Curvature plot - Krökningsplott + Curvature plot + Krökningsplott - - + + CmdMeshVertexCurvatureInfo - Mesh - Nät + Mesh + Nät - Curvature info - Krökningsinfo + Curvature info + Krökningsinfo - Information about curvature - Information om krökning + Information about curvature + Information om krökning - - + + MeshGui::DlgEvaluateMesh - &Help - &Hjälp + &Help + &Hjälp - F1 - F1 + F1 + F1 - &Close - &Stäng + &Close + &Stäng - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Nätinformation + Mesh information + Nätinformation - No information - Ingen Information + No information + Ingen Information - Number of points: - Antal punkter: + Number of points: + Antal punkter: - Number of edges: - Antal kanter: + Number of edges: + Antal kanter: - Refresh - Ladda om + Refresh + Ladda om - Analyze - Analysera + Analyze + Analysera - Repair - Reparera + Repair + Reparera - Orientation - Orientering + Orientation + Orientering - Degenerated faces - Degenererade ytor + Degenerated faces + Degenererade ytor - Face indices - Ytindex + Face indices + Ytindex - Number of faces: - Antal ytor: + Number of faces: + Antal ytor: - Duplicated faces - Duplicerade ytor + Duplicated faces + Duplicerade ytor - Duplicated points - Duplicerade punkter + Duplicated points + Duplicerade punkter - Non-manifolds - Icke-mÃ¥ngfalder + Non-manifolds + Icke-mÃ¥ngfalder - Self-intersections - Självskärningar + Self-intersections + Självskärningar - All above tests together - Alla ovanstÃ¥ende test tillsammans + All above tests together + Alla ovanstÃ¥ende test tillsammans - Repetitive repair - Upprepad reparation + Repetitive repair + Upprepad reparation - Evaluate & Repair Mesh - Utvärdera & reparera Nät + Evaluate & Repair Mesh + Utvärdera & reparera Nät - Folds on surface - Veck pÃ¥ ytan + Folds on surface + Veck pÃ¥ ytan - - + + MeshGui::DlgEvaluateMeshImp - No information - Ingen Information + No information + Ingen Information - Invalid neighbour indices - Ogiltiga grannindex + Invalid neighbour indices + Ogiltiga grannindex - Invalid face indices - Ogiltiga ytindex + Invalid face indices + Ogiltiga ytindex - Invalid point indices - Ogiltiga punktindex + Invalid point indices + Ogiltiga punktindex - Multiple point indices - Multipla punktindex + Multiple point indices + Multipla punktindex - Non-manifolds - Icke-mÃ¥ngfalder + Non-manifolds + Icke-mÃ¥ngfalder - Cannot remove non-manifolds - Kan inte ta bort icke-mÃ¥ngfalder + Cannot remove non-manifolds + Kan inte ta bort icke-mÃ¥ngfalder - No selection - Inget val + No selection + Inget val - No flipped normals - Inga inverterade normaler + No flipped normals + Inga inverterade normaler - %1 flipped normals - %1 inverterade normaler + %1 flipped normals + %1 inverterade normaler - No non-manifolds - Inga icke-mÃ¥ngfalder + No non-manifolds + Inga icke-mÃ¥ngfalder - %1 non-manifolds - %1 icke-mÃ¥ngfalder + %1 non-manifolds + %1 icke-mÃ¥ngfalder - No invalid indices - Ingen ogiltig index + No invalid indices + Ingen ogiltig index - No degenerations - Inga degenerationer + No degenerations + Inga degenerationer - %1 degenerated faces - %1 degenererade ytor + %1 degenerated faces + %1 degenererade ytor - No duplicated faces - Inga duplicerade ytor + No duplicated faces + Inga duplicerade ytor - %1 duplicated faces - %1 duplicerade ytor + %1 duplicated faces + %1 duplicerade ytor - No duplicated points - Inga duplicerade punkter + No duplicated points + Inga duplicerade punkter - Duplicated points - Duplicerade punkter + Duplicated points + Duplicerade punkter - Orientation - Orientering + Orientation + Orientering - Indices - Index + Indices + Index - Degenerations - Degenerationer + Degenerations + Degenerationer - Duplicated faces - Duplicerade ytor + Duplicated faces + Duplicerade ytor - No self-intersections - Inga självskärningar + No self-intersections + Inga självskärningar - Self-intersections - Självskärningar + Self-intersections + Självskärningar - Mesh repair - Nätreparation + Mesh repair + Nätreparation - Flipped normals found - Vända normaler hittades + Flipped normals found + Vända normaler hittades - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Kontroll misslyckades pÃ¥ grund av veck pÃ¥ ytan. Kör kommandot för att reparera veck först + Kontroll misslyckades pÃ¥ grund av veck pÃ¥ ytan. Kör kommandot för att reparera veck först - No folds on surface - Inga veck pÃ¥ ytan + No folds on surface + Inga veck pÃ¥ ytan - %1 folds on surface - %1 veck pÃ¥ ytan + %1 folds on surface + %1 veck pÃ¥ ytan - Folds - Veck + Folds + Veck - - + + MeshGui::DlgRegularSolid - Regular Solid - Reguljär solid + Regular Solid + Reguljär solid - &Create - &Skapa + &Create + &Skapa - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - S&täng + Cl&ose + S&täng - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solid: + Solid: + Solid: - Cube - Kub + Cube + Kub - Cylinder - Cylinder + Cylinder + Cylinder - Cone - Kon + Cone + Kon - Sphere - Sfär + Sphere + Sfär - Ellipsoid - Ellipsoid + Ellipsoid + Ellipsoid - Torus - Torus + Torus + Torus - Height: - Höjd: + Height: + Höjd: - Length: - Längd: + Length: + Längd: - Width: - Bredd: + Width: + Bredd: - Radius: - Radie: + Radius: + Radie: - Closed - Stängd + Closed + Stängd - Sampling: - Skanning: + Sampling: + Skanning: - Edge length: - Kantlängd: + Edge length: + Kantlängd: - Radius 1: - Radie 1: + Radius 1: + Radie 1: - Radius 2: - Radie 2: + Radius 2: + Radie 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Skapa %1 + Create %1 + Skapa %1 - No active document - Inget aktivt dokument + No active document + Inget aktivt dokument - - + + MeshGui::DlgSettingsMeshView - Mesh view - Nätvy + Mesh view + Nätvy - Two-side rendering - TvÃ¥-sidig rendering + Two-side rendering + TvÃ¥-sidig rendering - Backface color - Bakgrundsfärg + Backface color + Bakgrundsfärg - Smoothing - Utjämning + Smoothing + Utjämning - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Detta är den minsta vinkeln mellan tvÃ¥ ytor där normalerna beräknas för att göra platt skuggning.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om vinkeln mellan normalerna pÃ¥ tvÃ¥ intilliggande ytor är mindre än veckvinkeln, sÃ¥ kommer ytorna att mjukskuggas runt deras gemensamma kant.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Detta är den minsta vinkeln mellan tvÃ¥ ytor där normalerna beräknas för att göra platt skuggning.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om vinkeln mellan normalerna pÃ¥ tvÃ¥ intilliggande ytor är mindre än veckvinkeln, sÃ¥ kommer ytorna att mjukskuggas runt deras gemensamma kant.</p></body></html> - Crease angle - Veckvinkel + Crease angle + Veckvinkel - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Platt skuggning/Phong skuggning</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definierar ytornas utseende.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Med plattskuggning sÃ¥ är ytnormalerna inte definierade för hörn som leder till ett onaturligt utseende för kurvade ytor, emedan Phong skuggning leder till ett mjukare utseende. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om detta alternativ är valt sÃ¥ används Phong skuggning,annars sÃ¥ används plattskuggning.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Platt skuggning/Phong skuggning</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definierar ytornas utseende.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Med plattskuggning sÃ¥ är ytnormalerna inte definierade för hörn som leder till ett onaturligt utseende för kurvade ytor, emedan Phong skuggning leder till ett mjukare utseende. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Om detta alternativ är valt sÃ¥ används Phong skuggning,annars sÃ¥ används plattskuggning.</p></body></html> - Define normal per vertex - Definiera normaler för hörn + Define normal per vertex + Definiera normaler för hörn + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Tips</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiera normaler för hörn kallas ocksÃ¥<span style=" font-style:italic;">Phong skuggning</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">medan definition av normaler för yta kallas</span>Plattskuggning<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Tips</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiera normaler för hörn kallas ocksÃ¥<span style=" font-style:italic;">Phong skuggning</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">medan definition av normaler för yta kallas</span>Plattskuggning<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Standardutseende för nya nät - Default appearance for new meshes - Standardutseende för nya nät + Default line color + Standard linjefärg - Default line color - Standard linjefärg + Mesh transparency + Nät transparens - Mesh transparency - Nät transparens + Default mesh color + Standard nät färg - Default mesh color - Standard nät färg + Show bounding-box for highlighted or selected meshes + Visa markeringsram för markerade eller valda nät - Show bounding-box for highlighted or selected meshes - Visa markeringsram för markerade eller valda nät + Line transparency + Linjegenomskinlighet - - Line transparency - Linjegenomskinlighet - - - + + MeshGui::DlgSmoothing - Smoothing - Utjämning + Smoothing + Utjämning - Method - Metod + Method + Metod - Taubin - Taubin + Taubin + Taubin - Laplace - Laplace + Laplace + Laplace - Parameter - Parameter + Parameter + Parameter - Iterations: - Iterationer: + Iterations: + Iterationer: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Addera triangel + Add triangle + Addera triangel - Flip normal - Vänd normal + Flip normal + Vänd normal - Clear - Rensa + Clear + Rensa - Finish - Slutför + Finish + Slutför - - + + MeshGui::RemoveComponents - Remove components - Ta bort komponenter + Remove components + Ta bort komponenter - Select - Välj + Select + Välj - Select whole component - Välj hela komponenten + Select whole component + Välj hela komponenten - Pick triangle - Markera triangel + Pick triangle + Markera triangel - < faces than - < ytor än + < faces than + < ytor än - Region - OmrÃ¥de + Region + OmrÃ¥de - Components - Komponenter + Components + Komponenter - All - Alla + All + Alla - Deselect - Avmarkera + Deselect + Avmarkera - Deselect whole component - Avmarkera hela komponenten + Deselect whole component + Avmarkera hela komponenten - > faces than - > ytor än + > faces than + > ytor än - Region options - Region alternativ + Region options + Region alternativ - Respect only triangles with normals facing screen - Respekt endast trianglar med normaler vända mot skärmen + Respect only triangles with normals facing screen + Respekt endast trianglar med normaler vända mot skärmen - Respect only visible triangles - Respektera endast synliga trianglar + Respect only visible triangles + Respektera endast synliga trianglar - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Cylinder + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Sfär + + + MeshGui::TaskRemoveComponents - Delete - Radera + Delete + Radera - Invert - Invertera + Invert + Invertera - - + + QDockWidget - Evaluate & Repair Mesh - Utvärdera & reparera Nät + Evaluate & Repair Mesh + Utvärdera & reparera Nät - - + + QObject - Import mesh - Importera nät + Import mesh + Importera nät - Export mesh - Exportera nät + Export mesh + Exportera nät - Solid Mesh - Solid nät + Solid Mesh + Solid nät - Boundings - Gränser + Boundings + Gränser - Fill holes - Fyll hÃ¥l + Fill holes + Fyll hÃ¥l - Fill holes with maximum number of edges: - Fyll hÃ¥l med maximalt antal kanter: + Fill holes with maximum number of edges: + Fyll hÃ¥l med maximalt antal kanter: - Binary STL (*.stl) - Binär STL (*.stl) + Binary STL (*.stl) + Binär STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Nät-Binärformat (*.bms) + Binary Mesh (*.bms) + Nät-Binärformat (*.bms) - Alias Mesh (*.obj) - Alias Mesh (*.obj) + Alias Mesh (*.obj) + Alias Mesh (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Alla Filer (*.*) + All Files (*.*) + Alla Filer (*.*) - ASCII STL (*.stl) - ASCII STL (*.STL) + ASCII STL (*.stl) + ASCII STL (*.STL) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.WRL *.VRML) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.WRL *.VRML) - Compressed VRML 2.0 (*.wrz) - Komprimerad VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + Komprimerad VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.NAS *.BDF) + Nastran (*.nas *.bdf) + Nastran (*.NAS *.BDF) - Python module def (*.py) - Python-modul def (*.py) + Python module def (*.py) + Python-modul def (*.py) - Meshing Tolerance - Nät tolerans + Meshing Tolerance + Nät tolerans - Enter tolerance for meshing geometry: - Mata in tolerans för nätning av geometri: + Enter tolerance for meshing geometry: + Mata in tolerans för nätning av geometri: - The mesh '%1' is a solid. - Nätet '%1' är en solid. + The mesh '%1' is a solid. + Nätet '%1' är en solid. - The mesh '%1' is not a solid. - Nätet '%1' är ingen solid. + The mesh '%1' is not a solid. + Nätet '%1' är ingen solid. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Punkter: %1, Kanter: %2 Ytor: %3] + [Points: %1, Edges: %2 Faces: %3] + [Punkter: %1, Kanter: %2 Ytor: %3] - Leave info mode - Lämna info läge + Leave info mode + Lämna info läge - Index: %1 - Index: %1 + Index: %1 + Index: %1 - Leave hole-filling mode - Lämna hÃ¥lfyllningsläge + Leave hole-filling mode + Lämna hÃ¥lfyllningsläge - Leave removal mode - Lämna borttagningsläge + Leave removal mode + Lämna borttagningsläge - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Alla Nät-filer (*.STL *.ast *.BMS *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Alla Nät-filer (*.STL *.ast *.BMS *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Objekt-filformat (* .off) + Object File Format (*.off) + Objekt-filformat (* .off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Ta bort markerade ytor + Delete selected faces + Ta bort markerade ytor - Clear selected faces - Rensa valda ytor + Clear selected faces + Rensa valda ytor - Annotation - Annotering + Annotation + Annotering - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Analysera + Analyze + Analysera - Boolean - Boolesk + Boolean + Boolesk - &Meshes - &Nät + &Meshes + &Nät - Mesh tools - Nätverktyg + Mesh tools + Nätverktyg - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_uk.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_uk.ts index 622a0bbc6..6bf756941 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_uk.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_uk.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Add triangle - Додати трикутник + Add triangle + Додати трикутник - Add triangle manually to a mesh - Вручну додати трикутник до Ñітки + Add triangle manually to a mesh + Вручну додати трикутник до Ñітки - - + + CmdMeshBoundingBox - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Boundings info... - Boundings info... + Boundings info... + Boundings info... - Shows the boundings of the selected mesh - Shows the boundings of the selected mesh + Shows the boundings of the selected mesh + Shows the boundings of the selected mesh - - + + CmdMeshBuildRegularSolid - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Regular solid... - Regular solid... + Regular solid... + Regular solid... - Builds a regular solid - Builds a regular solid + Builds a regular solid + Builds a regular solid - - + + CmdMeshDemolding - Interactive demolding direction - Interactive demolding direction + Interactive demolding direction + Interactive demolding direction - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - - + + CmdMeshDifference - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Difference - Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ + Difference + Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ - - + + CmdMeshEvaluateFacet - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Face info - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ грань + Face info + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ грань - Information about face - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ грань + Information about face + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ грань - - + + CmdMeshEvaluateSolid - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Check solid mesh - Перевірити ÑуцільніÑть Ñітки + Check solid mesh + Перевірити ÑуцільніÑть Ñітки - Checks whether the mesh is a solid - Перевірити чи Ñітка Ñуцільна + Checks whether the mesh is a solid + Перевірити чи Ñітка Ñуцільна - - + + CmdMeshEvaluation - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Opens a dialog to analyze and repair a mesh - Відкриває діалог Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ та ремонту Ñітки + Opens a dialog to analyze and repair a mesh + Відкриває діалог Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ та ремонту Ñітки - Evaluate && Repair mesh... - Оцінка та Ремонт Ñітки... + Evaluate && Repair mesh... + Оцінка та Ремонт Ñітки... - - + + CmdMeshExMakeMesh - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Make a Box - Зробити Коробку + Make a Box + Зробити Коробку - - + + CmdMeshExMakeTool - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Make a Tool - Зробити ІнÑтрумент + Make a Tool + Зробити ІнÑтрумент - - + + CmdMeshExMakeUnion - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Make Union - Зробити ÐžÐ±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ + Make Union + Зробити ÐžÐ±â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ - - + + CmdMeshExport - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Export mesh... - ЕкÑпорт Ñітки... + Export mesh... + ЕкÑпорт Ñітки... - Exports a mesh to file - ЕкÑпорт Ñітки до файлу + Exports a mesh to file + ЕкÑпорт Ñітки до файлу - - + + CmdMeshFillInteractiveHole - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Close hole - Закрити отвір + Close hole + Закрити отвір - Close holes interactively - Close holes interactively + Close holes interactively + Close holes interactively - - + + CmdMeshFillupHoles - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Fill holes... - Fill holes... + Fill holes... + Fill holes... - Fill holes of the mesh - Fill holes of the mesh + Fill holes of the mesh + Fill holes of the mesh - - + + CmdMeshFlipNormals - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Flip normals - Flip normals + Flip normals + Flip normals - Flips the normals of the mesh - Flips the normals of the mesh + Flips the normals of the mesh + Flips the normals of the mesh - - + + CmdMeshFromGeometry - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Create mesh from geometry... - Створити Ñітку з геометрії ... + Create mesh from geometry... + Створити Ñітку з геометрії ... - Create mesh from the selected geometry - Створити Ñітку з обраної геометрії + Create mesh from the selected geometry + Створити Ñітку з обраної геометрії - - + + CmdMeshHarmonizeNormals - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Harmonize normals - Узгодити нормалі + Harmonize normals + Узгодити нормалі - Harmonizes the normals of the mesh - Узгодити нормалі Ñітки + Harmonizes the normals of the mesh + Узгодити нормалі Ñітки - - + + CmdMeshImport - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Import mesh... - Імпорт Ñітки... + Import mesh... + Імпорт Ñітки... - Imports a mesh from file - Імпорт Ñітки з файлу + Imports a mesh from file + Імпорт Ñітки з файлу - - + + CmdMeshIntersection - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Intersection - Перетин + Intersection + Перетин - - + + CmdMeshPolyCut - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Cut mesh - Вирізати Ñітку + Cut mesh + Вирізати Ñітку - Cuts a mesh with a picked polygon - Вирізати Ñітку з обраного багатокутника + Cuts a mesh with a picked polygon + Вирізати Ñітку з обраного багатокутника - - + + CmdMeshPolySegm - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Make segment - Зробити Ñегмент + Make segment + Зробити Ñегмент - Creates a mesh segment - Creates a mesh segment + Creates a mesh segment + Creates a mesh segment - - + + CmdMeshPolySelect - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Select mesh - Вибір Ñітки + Select mesh + Вибір Ñітки - Select an area of the mesh - Вибрати облаÑть Ñітки + Select an area of the mesh + Вибрати облаÑть Ñітки - - + + CmdMeshPolySplit - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Split mesh - Розбити Ñітку + Split mesh + Розбити Ñітку - Splits a mesh into two meshes - Splits a mesh into two meshes + Splits a mesh into two meshes + Splits a mesh into two meshes - - + + + CmdMeshPolyTrim + + Mesh + Сітка(Меш) + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Remove components by hand... - Remove components by hand... + Remove components by hand... + Remove components by hand... - Mark a component to remove it from the mesh - Mark a component to remove it from the mesh + Mark a component to remove it from the mesh + Mark a component to remove it from the mesh - - + + CmdMeshRemoveComponents - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Remove components... - Remove components... + Remove components... + Remove components... - Remove topologic independent components from the mesh - Remove topologic independent components from the mesh + Remove topologic independent components from the mesh + Remove topologic independent components from the mesh - - + + + CmdMeshSegmentation + + Mesh + Сітка(Меш) + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Smooth... - Smooth... + Smooth... + Smooth... - Smooth the selected meshes - Smooth the selected meshes + Smooth the selected meshes + Smooth the selected meshes - - + + CmdMeshToolMesh - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Segment by tool mesh - Сегмент з інÑтрументу Ñітки + Segment by tool mesh + Сегмент з інÑтрументу Ñітки - Creates a segment from a given tool mesh - Створює Ñегмент від даного інÑтрументу Ñітки + Creates a segment from a given tool mesh + Створює Ñегмент від даного інÑтрументу Ñітки - - + + CmdMeshTransform - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Transform mesh - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñітки + Transform mesh + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñітки - Rotate or move a mesh - ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñітки + Rotate or move a mesh + ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñітки - - + + CmdMeshUnion - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Union - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ + Union + Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ - - + + CmdMeshVertexCurvature - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Calculates the curvature of the vertices of a mesh - Розрахунок Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÐµÑ€ÑˆÐ¸Ð½ Ñітка + Calculates the curvature of the vertices of a mesh + Розрахунок Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÐµÑ€ÑˆÐ¸Ð½ Ñітка - Curvature plot - ДілÑнка Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ + Curvature plot + ДілÑнка Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ - - + + CmdMeshVertexCurvatureInfo - Mesh - Сітка(Меш) + Mesh + Сітка(Меш) - Curvature info - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ + Curvature info + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ - Information about curvature - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ + Information about curvature + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ - - + + MeshGui::DlgEvaluateMesh - &Help - &Допомога + &Help + &Допомога - F1 - F1 + F1 + F1 - &Close - &Закрити + &Close + &Закрити - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ñітку + Mesh information + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ Ñітку - No information - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´ÑÑƒÑ‚Ð½Ñ + No information + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´ÑÑƒÑ‚Ð½Ñ - Number of points: - КількіÑть точок: + Number of points: + КількіÑть точок: - Number of edges: - КількіÑть ребер: + Number of edges: + КількіÑть ребер: - Refresh - Оновити + Refresh + Оновити - Analyze - Ðналізувати + Analyze + Ðналізувати - Repair - Ремонтувати + Repair + Ремонтувати - Orientation - Orientation + Orientation + Orientation - Degenerated faces - Degenerated faces + Degenerated faces + Degenerated faces - Face indices - Face indices + Face indices + Face indices - Number of faces: - Number of faces: + Number of faces: + Number of faces: - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Self-intersections - Self-intersections + Self-intersections + Self-intersections - All above tests together - All above tests together + All above tests together + All above tests together - Repetitive repair - Repetitive repair + Repetitive repair + Repetitive repair - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - Folds on surface - Складки на поверхні + Folds on surface + Складки на поверхні - - + + MeshGui::DlgEvaluateMeshImp - No information - Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´ÑÑƒÑ‚Ð½Ñ + No information + Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´ÑÑƒÑ‚Ð½Ñ - Invalid neighbour indices - Хибні ÑуÑідні індекÑи + Invalid neighbour indices + Хибні ÑуÑідні індекÑи - Invalid face indices - Хибний Ñ–Ð½Ð´ÐµÐºÑ Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ плану + Invalid face indices + Хибний Ñ–Ð½Ð´ÐµÐºÑ Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ плану - Invalid point indices - Хибний Ñ–Ð½Ð´ÐµÐºÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ + Invalid point indices + Хибний Ñ–Ð½Ð´ÐµÐºÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ - Multiple point indices - Multiple point indices + Multiple point indices + Multiple point indices - Non-manifolds - Non-manifolds + Non-manifolds + Non-manifolds - Cannot remove non-manifolds - Cannot remove non-manifolds + Cannot remove non-manifolds + Cannot remove non-manifolds - No selection - Ðічого не вибрано + No selection + Ðічого не вибрано - No flipped normals - No flipped normals + No flipped normals + No flipped normals - %1 flipped normals - %1 flipped normals + %1 flipped normals + %1 flipped normals - No non-manifolds - No non-manifolds + No non-manifolds + No non-manifolds - %1 non-manifolds - %1 non-manifolds + %1 non-manifolds + %1 non-manifolds - No invalid indices - Ðевірні індекÑи відÑутні + No invalid indices + Ðевірні індекÑи відÑутні - No degenerations - Погіршені грані відÑутні + No degenerations + Погіршені грані відÑутні - %1 degenerated faces - %1 погіршених граней + %1 degenerated faces + %1 погіршених граней - No duplicated faces - Дубльовані грані відÑутні + No duplicated faces + Дубльовані грані відÑутні - %1 duplicated faces - %1 дубльованих граней + %1 duplicated faces + %1 дубльованих граней - No duplicated points - Дубльовані точки відÑутні + No duplicated points + Дубльовані точки відÑутні - Duplicated points - Duplicated points + Duplicated points + Duplicated points - Orientation - Orientation + Orientation + Orientation - Indices - ІндекÑи + Indices + ІндекÑи - Degenerations - ÐŸÐ¾Ð³Ñ–Ñ€ÑˆÐµÐ½Ð½Ñ + Degenerations + ÐŸÐ¾Ð³Ñ–Ñ€ÑˆÐµÐ½Ð½Ñ - Duplicated faces - Duplicated faces + Duplicated faces + Duplicated faces - No self-intersections - Самоперетин відÑутній + No self-intersections + Самоперетин відÑутній - Self-intersections - Self-intersections + Self-intersections + Self-intersections - Mesh repair - Ремонт Ñітки + Mesh repair + Ремонт Ñітки - Flipped normals found - Flipped normals found + Flipped normals found + Flipped normals found - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - No folds on surface - No folds on surface + No folds on surface + No folds on surface - %1 folds on surface - %1 folds on surface + %1 folds on surface + %1 folds on surface - Folds - Складки + Folds + Складки - - + + MeshGui::DlgRegularSolid - Regular Solid - Правильне геометричне тіло + Regular Solid + Правильне геометричне тіло - &Create - &Створити + &Create + &Створити - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - Закрити + Cl&ose + Закрити - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - Solid: + Solid: + Solid: - Cube - Куб + Cube + Куб - Cylinder - Циліндр + Cylinder + Циліндр - Cone - ÐšÐ¾Ð½ÑƒÑ + Cone + ÐšÐ¾Ð½ÑƒÑ - Sphere - Сфера + Sphere + Сфера - Ellipsoid - ЕліпÑоїд + Ellipsoid + ЕліпÑоїд - Torus - Тор + Torus + Тор - Height: - ВиÑота: + Height: + ВиÑота: - Length: - Довжина: + Length: + Довжина: - Width: - Ширина: + Width: + Ширина: - Radius: - РадіуÑ: + Radius: + РадіуÑ: - Closed - Закрито + Closed + Закрито - Sampling: - Вибірка: + Sampling: + Вибірка: - Edge length: - Довжина краю: + Edge length: + Довжина краю: - Radius 1: - Ð Ð°Ð´Ñ–ÑƒÑ 1: + Radius 1: + Ð Ð°Ð´Ñ–ÑƒÑ 1: - Radius 2: - Ð Ð°Ð´Ñ–ÑƒÑ 2: + Radius 2: + Ð Ð°Ð´Ñ–ÑƒÑ 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - Створити %1 + Create %1 + Створити %1 - No active document - Ðемає активного документу + No active document + Ðемає активного документу - - + + MeshGui::DlgSettingsMeshView - Mesh view - ВиглÑд Ñітки + Mesh view + ВиглÑд Ñітки - Two-side rendering - Дво-ÑÑ‚Ð¾Ñ€Ð¾Ð½Ð½Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð° + Two-side rendering + Дво-ÑÑ‚Ð¾Ñ€Ð¾Ð½Ð½Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð° - Backface color - Колір зворотньої Ñторони + Backface color + Колір зворотньої Ñторони - Smoothing - Ð—Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ + Smoothing + Ð—Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - Crease angle - Кут згину + Crease angle + Кут згину - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - Define normal per vertex - Визначити нормаль Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— вершини + Define normal per vertex + Визначити нормаль Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— вершини + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + Default appearance for new meshes + Стандартний виглÑд Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… Ñіток - Default appearance for new meshes - Стандартний виглÑд Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… Ñіток + Default line color + Стандартний колір лінії - Default line color - Стандартний колір лінії + Mesh transparency + ПрозоріÑть Ñітки - Mesh transparency - ПрозоріÑть Ñітки + Default mesh color + Стандартний колір Ñітки - Default mesh color - Стандартний колір Ñітки + Show bounding-box for highlighted or selected meshes + Показувати прÑмокутник Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñвічених чи обраних Ñіток - Show bounding-box for highlighted or selected meshes - Показувати прÑмокутник Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñвічених чи обраних Ñіток + Line transparency + ПрозоріÑть лінії - - Line transparency - ПрозоріÑть лінії - - - + + MeshGui::DlgSmoothing - Smoothing - Ð—Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ + Smoothing + Ð—Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ - Method - Метод + Method + Метод - Taubin - Таубіна + Taubin + Таубіна - Laplace - ЛаплаÑа + Laplace + ЛаплаÑа - Parameter - Параметр + Parameter + Параметр - Iterations: - Ітерації: + Iterations: + Ітерації: - Lambda: - ЛÑмбда: + Lambda: + ЛÑмбда: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - Додати трикутник + Add triangle + Додати трикутник - Flip normal - Flip normal + Flip normal + Flip normal - Clear - ОчиÑтити + Clear + ОчиÑтити - Finish - Завершити + Finish + Завершити - - + + MeshGui::RemoveComponents - Remove components - Видалити компоненти + Remove components + Видалити компоненти - Select - Вибрати + Select + Вибрати - Select whole component - Вибрати вÑÑ– компоненти + Select whole component + Вибрати вÑÑ– компоненти - Pick triangle - Вибрати трикутник + Pick triangle + Вибрати трикутник - < faces than - < faces than + < faces than + < faces than - Region - ОблаÑть + Region + ОблаÑть - Components - Компоненти + Components + Компоненти - All - Ð’Ñе + All + Ð’Ñе - Deselect - ЗнÑти Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ + Deselect + ЗнÑти Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ - Deselect whole component - ЗнÑти Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð· уÑÑ–Ñ… компонентів + Deselect whole component + ЗнÑти Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð· уÑÑ–Ñ… компонентів - > faces than - > faces than + > faces than + > faces than - Region options - Параметри облаÑті + Region options + Параметри облаÑті - Respect only triangles with normals facing screen - Поважати лише трикутники з нормалÑми на передньому плані + Respect only triangles with normals facing screen + Поважати лише трикутники з нормалÑми на передньому плані - Respect only visible triangles - Поважати лише видимі трикутники + Respect only visible triangles + Поважати лише видимі трикутники - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + Циліндр + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + Сфера + + + MeshGui::TaskRemoveComponents - Delete - Видалити + Delete + Видалити - Invert - Інвертувати + Invert + Інвертувати - - + + QDockWidget - Evaluate & Repair Mesh - Evaluate & Repair Mesh + Evaluate & Repair Mesh + Evaluate & Repair Mesh - - + + QObject - Import mesh - Імпорт Ñітки + Import mesh + Імпорт Ñітки - Export mesh - ЕкÑпорт Ñітки + Export mesh + ЕкÑпорт Ñітки - Solid Mesh - Суцільна Ñітка + Solid Mesh + Суцільна Ñітка - Boundings - Boundings + Boundings + Boundings - Fill holes - Заповнити отвори + Fill holes + Заповнити отвори - Fill holes with maximum number of edges: - Заповнити отвори з макÑимальною кількіÑтю ребер: + Fill holes with maximum number of edges: + Заповнити отвори з макÑимальною кількіÑтю ребер: - Binary STL (*.stl) - Двійкові STL (*.stl) + Binary STL (*.stl) + Двійкові STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - Двійкова Ñітка (*.bms) + Binary Mesh (*.bms) + Двійкова Ñітка (*.bms) - Alias Mesh (*.obj) - ПÑевдоніми Сітки (*.obj) + Alias Mesh (*.obj) + ПÑевдоніми Сітки (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - Ð’ÑÑ– файли (*.*) + All Files (*.*) + Ð’ÑÑ– файли (*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - СтиÑнутий VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + СтиÑнутий VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Модуль Python def (*.py) + Python module def (*.py) + Модуль Python def (*.py) - Meshing Tolerance - Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñітки + Meshing Tolerance + Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñітки - Enter tolerance for meshing geometry: - Введіть Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ— Ñітки: + Enter tolerance for meshing geometry: + Введіть Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ— Ñітки: - The mesh '%1' is a solid. - Сітка '%1' Ñ” Ñуцільною. + The mesh '%1' is a solid. + Сітка '%1' Ñ” Ñуцільною. - The mesh '%1' is not a solid. - Сітка '%1' не Ñуцільна. + The mesh '%1' is not a solid. + Сітка '%1' не Ñуцільна. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Мін=<%1,%2,%3> + Мін=<%1,%2,%3> МакÑ=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [Точок: %1, Ребер: %2 Граней: %3] + [Points: %1, Edges: %2 Faces: %3] + [Точок: %1, Ребер: %2 Граней: %3] - Leave info mode - Leave info mode + Leave info mode + Leave info mode - Index: %1 - ІндекÑ: %1 + Index: %1 + ІндекÑ: %1 - Leave hole-filling mode - Leave hole-filling mode + Leave hole-filling mode + Leave hole-filling mode - Leave removal mode - Leave removal mode + Leave removal mode + Leave removal mode - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - Ð’ÑÑ– файли Ñіток(мешу) (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + Ð’ÑÑ– файли Ñіток(мешу) (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - Stanford Polygon (*.ply) + Stanford Polygon (*.ply) + Stanford Polygon (*.ply) - Object File Format (*.off) - Object File Format (*.off) + Object File Format (*.off) + Object File Format (*.off) - Standford Polygon (*.ply) - Standford Polygon (*.ply) + Standford Polygon (*.ply) + Standford Polygon (*.ply) - Delete selected faces - Знищити обрані грані + Delete selected faces + Знищити обрані грані - Clear selected faces - ОчиÑтити обрані грані + Clear selected faces + ОчиÑтити обрані грані - Annotation - ÐÐ½Ð¾Ñ‚Ð°Ñ†Ñ–Ñ + Annotation + ÐÐ½Ð¾Ñ‚Ð°Ñ†Ñ–Ñ - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - Ðналізувати + Analyze + Ðналізувати - Boolean - Логічне + Boolean + Логічне - &Meshes - &Сітки(Mesh) + &Meshes + &Сітки(Mesh) - Mesh tools - ІнÑтрументи Ð´Ð»Ñ Ñітки + Mesh tools + ІнÑтрументи Ð´Ð»Ñ Ñітки - + diff --git a/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh.ts b/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh.ts index c15222c56..edcc10202 100644 --- a/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh.ts +++ b/src/Mod/Mesh/Gui/Resources/translations/Mesh_zh.ts @@ -1,1123 +1,1204 @@ - - + + CmdMeshAddFacet - Mesh - 网格 + Mesh + 网格 - Add triangle - 增加三角形 + Add triangle + 增加三角形 - Add triangle manually to a mesh - 手动给网格添加三角形 + Add triangle manually to a mesh + 手动给网格添加三角形 - - + + CmdMeshBoundingBox - Mesh - 网格 + Mesh + 网格 - Boundings info... - 边界信æ¯... + Boundings info... + 边界信æ¯... - Shows the boundings of the selected mesh - 显示所选网格的边界 + Shows the boundings of the selected mesh + 显示所选网格的边界 - - + + CmdMeshBuildRegularSolid - Mesh - 网格 + Mesh + 网格 - Regular solid... - åˆæ³•实体... + Regular solid... + åˆæ³•实体... - Builds a regular solid - å»ºç«‹åˆæ³•实体 + Builds a regular solid + å»ºç«‹åˆæ³•实体 - - + + CmdMeshDemolding - Interactive demolding direction - 交互å¼è„±æ¨¡æ–¹å‘ + Interactive demolding direction + 交互å¼è„±æ¨¡æ–¹å‘ - Mesh - 网格 + Mesh + 网格 - - + + CmdMeshDifference - Mesh - 网格 + Mesh + 网格 - Difference - 差集 + Difference + 差集 - - + + CmdMeshEvaluateFacet - Mesh - 网格 + Mesh + 网格 - Face info - 表é¢ä¿¡æ¯ + Face info + 表é¢ä¿¡æ¯ - Information about face - 表é¢ä¿¡æ¯ + Information about face + 表é¢ä¿¡æ¯ - - + + CmdMeshEvaluateSolid - Mesh - 网格 + Mesh + 网格 - Check solid mesh - 检查实体网格 + Check solid mesh + 检查实体网格 - Checks whether the mesh is a solid - 检查网格是å¦ä¸ºå®žä½“ + Checks whether the mesh is a solid + 检查网格是å¦ä¸ºå®žä½“ - - + + CmdMeshEvaluation - Mesh - 网格 + Mesh + 网格 - Opens a dialog to analyze and repair a mesh - æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,分æžå¹¶ä¿®å¤ç½‘æ ¼ + Opens a dialog to analyze and repair a mesh + æ‰“å¼€ä¸€ä¸ªå¯¹è¯æ¡†,分æžå¹¶ä¿®å¤ç½‘æ ¼ - Evaluate && Repair mesh... - 检测 && ä¿®å¤ç½‘æ ¼... + Evaluate && Repair mesh... + 检测 && ä¿®å¤ç½‘æ ¼... - - + + CmdMeshExMakeMesh - Mesh - 网格 + Mesh + 网格 - Make a Box - 创建框 + Make a Box + 创建框 - - + + CmdMeshExMakeTool - Mesh - 网格 + Mesh + 网格 - Make a Tool - 创建工具 + Make a Tool + 创建工具 - - + + CmdMeshExMakeUnion - Mesh - 网格 + Mesh + 网格 - Make Union - åˆé›† + Make Union + åˆé›† - - + + CmdMeshExport - Mesh - 网格 + Mesh + 网格 - Export mesh... - 导出网格... + Export mesh... + 导出网格... - Exports a mesh to file - 导出网格到文件 + Exports a mesh to file + 导出网格到文件 - - + + CmdMeshFillInteractiveHole - Mesh - 网格 + Mesh + 网格 - Close hole - 关闭孔 + Close hole + 关闭孔 - Close holes interactively - 交互å¼å…³é—­å­” + Close holes interactively + 交互å¼å…³é—­å­” - - + + CmdMeshFillupHoles - Mesh - 网格 + Mesh + 网格 - Fill holes... - å¡«å……å­”... + Fill holes... + å¡«å……å­”... - Fill holes of the mesh - 填充网格孔 + Fill holes of the mesh + 填充网格孔 - - + + CmdMeshFlipNormals - Mesh - 网格 + Mesh + 网格 - Flip normals - 翻转法线 + Flip normals + 翻转法线 - Flips the normals of the mesh - 翻转网格法线 + Flips the normals of the mesh + 翻转网格法线 - - + + CmdMeshFromGeometry - Mesh - 网格 + Mesh + 网格 - Create mesh from geometry... - 从几何体创建网格... + Create mesh from geometry... + 从几何体创建网格... - Create mesh from the selected geometry - 从选定的几何体创建网格 + Create mesh from the selected geometry + 从选定的几何体创建网格 - - + + CmdMeshHarmonizeNormals - Mesh - 网格 + Mesh + 网格 - Harmonize normals - 统一法线 + Harmonize normals + 统一法线 - Harmonizes the normals of the mesh - 平滑网格法线 + Harmonizes the normals of the mesh + 平滑网格法线 - - + + CmdMeshImport - Mesh - 网格 + Mesh + 网格 - Import mesh... - 导入网格... + Import mesh... + 导入网格... - Imports a mesh from file - 从文件中导入网格 + Imports a mesh from file + 从文件中导入网格 - - + + CmdMeshIntersection - Mesh - 网格 + Mesh + 网格 - Intersection - 交集 + Intersection + 交集 - - + + CmdMeshPolyCut - Mesh - 网格 + Mesh + 网格 - Cut mesh - 切割网格 + Cut mesh + 切割网格 - Cuts a mesh with a picked polygon - 使用多边形切割网格 + Cuts a mesh with a picked polygon + 使用多边形切割网格 - - + + CmdMeshPolySegm - Mesh - 网格 + Mesh + 网格 - Make segment - 创建片段 + Make segment + 创建片段 - Creates a mesh segment - 创建网格 + Creates a mesh segment + 创建网格 - - + + CmdMeshPolySelect - Mesh - 网格 + Mesh + 网格 - Select mesh - 选择网格 + Select mesh + 选择网格 - Select an area of the mesh - 选择网格的一个区域 + Select an area of the mesh + 选择网格的一个区域 - - + + CmdMeshPolySplit - Mesh - 网格 + Mesh + 网格 - Split mesh - 拆分网格 + Split mesh + 拆分网格 - Splits a mesh into two meshes - 拆分æˆä¸¤ä¸ªç½‘æ ¼ + Splits a mesh into two meshes + 拆分æˆä¸¤ä¸ªç½‘æ ¼ - - + + + CmdMeshPolyTrim + + Mesh + 网格 + + + Trim mesh + + + + Trims a mesh with a picked polygon + + + + CmdMeshRemoveCompByHand - Mesh - 网格 + Mesh + 网格 - Remove components by hand... - 手动删除组件... + Remove components by hand... + 手动删除组件... - Mark a component to remove it from the mesh - 标记è¦ä»Žç½‘格中删除组件 + Mark a component to remove it from the mesh + 标记è¦ä»Žç½‘格中删除组件 - - + + CmdMeshRemoveComponents - Mesh - 网格 + Mesh + 网格 - Remove components... - 删除组件... + Remove components... + 删除组件... - Remove topologic independent components from the mesh - 从网格中删除拓扑独立部件 + Remove topologic independent components from the mesh + 从网格中删除拓扑独立部件 - - + + + CmdMeshSegmentation + + Mesh + 网格 + + + Create mesh segments... + + + + Create mesh segments + + + + CmdMeshSmoothing - Mesh - 网格 + Mesh + 网格 - Smooth... - 平滑... + Smooth... + 平滑... - Smooth the selected meshes - 平滑选定的网格 + Smooth the selected meshes + 平滑选定的网格 - - + + CmdMeshToolMesh - Mesh - 网格 + Mesh + 网格 - Segment by tool mesh - 网格工具 + Segment by tool mesh + 网格工具 - Creates a segment from a given tool mesh - 从给定网格工具创建 + Creates a segment from a given tool mesh + 从给定网格工具创建 - - + + CmdMeshTransform - Mesh - 网格 + Mesh + 网格 - Transform mesh - å˜æ¢ç½‘æ ¼ + Transform mesh + å˜æ¢ç½‘æ ¼ - Rotate or move a mesh - 旋转或移动网格 + Rotate or move a mesh + 旋转或移动网格 - - + + CmdMeshUnion - Mesh - 网格 + Mesh + 网格 - Union - 并集 + Union + 并集 - - + + CmdMeshVertexCurvature - Mesh - 网格 + Mesh + 网格 - Calculates the curvature of the vertices of a mesh - 计算网格顶点的曲率 + Calculates the curvature of the vertices of a mesh + 计算网格顶点的曲率 - Curvature plot - 曲率图 + Curvature plot + 曲率图 - - + + CmdMeshVertexCurvatureInfo - Mesh - 网格 + Mesh + 网格 - Curvature info - æ›²çŽ‡ä¿¡æ¯ + Curvature info + æ›²çŽ‡ä¿¡æ¯ - Information about curvature - æ›²çŽ‡ä¿¡æ¯ + Information about curvature + æ›²çŽ‡ä¿¡æ¯ - - + + MeshGui::DlgEvaluateMesh - &Help - 帮助(&H) + &Help + 帮助(&H) - F1 - F1 + F1 + F1 - &Close - 关闭(&C) + &Close + 关闭(&C) - Alt+C - Alt+C + Alt+C + Alt+C - Mesh information - ç½‘æ ¼ä¿¡æ¯ + Mesh information + ç½‘æ ¼ä¿¡æ¯ - No information - æ— ä¿¡æ¯ + No information + æ— ä¿¡æ¯ - Number of points: - 点数: + Number of points: + 点数: - Number of edges: - 边数: + Number of edges: + 边数: - Refresh - 刷新 + Refresh + 刷新 - Analyze - åˆ†æž + Analyze + åˆ†æž - Repair - ä¿®å¤ + Repair + ä¿®å¤ - Orientation - æ–¹å‘ + Orientation + æ–¹å‘ - Degenerated faces - é€€åŒ–çš„é¢ + Degenerated faces + é€€åŒ–çš„é¢ - Face indices - è¡¨é¢æŒ‡æ•° + Face indices + è¡¨é¢æŒ‡æ•° - Number of faces: - 颿•°: + Number of faces: + 颿•°: - Duplicated faces - é‡å¤é¢ + Duplicated faces + é‡å¤é¢ - Duplicated points - é‡å¤ç‚¹ + Duplicated points + é‡å¤ç‚¹ - Non-manifolds - éžæµå½¢ + Non-manifolds + éžæµå½¢ - Self-intersections - 自干涉 + Self-intersections + 自干涉 - All above tests together - 测试以上所有 + All above tests together + 测试以上所有 - Repetitive repair - é‡å¤çš„ä¿®å¤ + Repetitive repair + é‡å¤çš„ä¿®å¤ - Evaluate & Repair Mesh - 检测 & ä¿®å¤ç½‘æ ¼ + Evaluate & Repair Mesh + 检测 & ä¿®å¤ç½‘æ ¼ - Folds on surface - è¡¨é¢æŠ˜å  + Folds on surface + è¡¨é¢æŠ˜å  - - + + MeshGui::DlgEvaluateMeshImp - No information - æ— ä¿¡æ¯ + No information + æ— ä¿¡æ¯ - Invalid neighbour indices - 无相邻指数 + Invalid neighbour indices + 无相邻指数 - Invalid face indices - æ— æ•ˆçš„é¢æŒ‡æ•° + Invalid face indices + æ— æ•ˆçš„é¢æŒ‡æ•° - Invalid point indices - 无效点指数 + Invalid point indices + 无效点指数 - Multiple point indices - 多点指数 + Multiple point indices + 多点指数 - Non-manifolds - éžæµå½¢ + Non-manifolds + éžæµå½¢ - Cannot remove non-manifolds - ä¸èƒ½åˆ é™¤éžæµå½¢ + Cannot remove non-manifolds + ä¸èƒ½åˆ é™¤éžæµå½¢ - No selection - 无选择 + No selection + 无选择 - No flipped normals - 无翻转法线 + No flipped normals + 无翻转法线 - %1 flipped normals - %1 翻转法线 + %1 flipped normals + %1 翻转法线 - No non-manifolds - æ— éžæµå½¢ + No non-manifolds + æ— éžæµå½¢ - %1 non-manifolds - éžæµå½¢ %1 + %1 non-manifolds + éžæµå½¢ %1 - No invalid indices - 没有无效指数 + No invalid indices + 没有无效指数 - No degenerations - 无退化 + No degenerations + 无退化 - %1 degenerated faces - é€€åŒ–é¢ %1 + %1 degenerated faces + é€€åŒ–é¢ %1 - No duplicated faces - æ— é‡å¤é¢ + No duplicated faces + æ— é‡å¤é¢ - %1 duplicated faces - é‡å¤é¢ %1 + %1 duplicated faces + é‡å¤é¢ %1 - No duplicated points - æ— é‡å¤ç‚¹ + No duplicated points + æ— é‡å¤ç‚¹ - Duplicated points - é‡å¤ç‚¹ + Duplicated points + é‡å¤ç‚¹ - Orientation - æ–¹å‘ + Orientation + æ–¹å‘ - Indices - 指数 + Indices + 指数 - Degenerations - 退化 + Degenerations + 退化 - Duplicated faces - é‡å¤é¢ + Duplicated faces + é‡å¤é¢ - No self-intersections - 无自干涉 + No self-intersections + 无自干涉 - Self-intersections - 自干涉 + Self-intersections + 自干涉 - Mesh repair - ä¿®å¤ç½‘æ ¼ + Mesh repair + ä¿®å¤ç½‘æ ¼ - Flipped normals found - å‘现翻转法线 + Flipped normals found + å‘现翻转法线 - Check failed due to folds on the surface. + Check failed due to folds on the surface. Please run the command to repair folds first - ç”±äºŽè¡¨é¢æŠ˜å æµ‹è¯•失败. + ç”±äºŽè¡¨é¢æŠ˜å æµ‹è¯•失败. 请先è¿è¡Œå‘½ä»¤ä¿®å¤æŠ˜å  - No folds on surface - 颿— æŠ˜å  + No folds on surface + 颿— æŠ˜å  - %1 folds on surface - é¢æŠ˜å  %1 + %1 folds on surface + é¢æŠ˜å  %1 - Folds - æŠ˜å  + Folds + æŠ˜å  - - + + MeshGui::DlgRegularSolid - Regular Solid - åˆæ³•实体 + Regular Solid + åˆæ³•实体 - &Create - 创建(&C) + &Create + 创建(&C) - Alt+C - Alt+C + Alt+C + Alt+C - Cl&ose - 关闭(&O) + Cl&ose + 关闭(&O) - Alt+O - Alt+O + Alt+O + Alt+O - Solid: - 实体: + Solid: + 实体: - Cube - 立方体 + Cube + 立方体 - Cylinder - 圆柱体 + Cylinder + 圆柱体 - Cone - 圆锥体 + Cone + 圆锥体 - Sphere - çƒä½“ + Sphere + çƒä½“ - Ellipsoid - 椭圆体 + Ellipsoid + 椭圆体 - Torus - 圆环 + Torus + 圆环 - Height: - 高度: + Height: + 高度: - Length: - 长度: + Length: + 长度: - Width: - 宽度: + Width: + 宽度: - Radius: - åŠå¾„: + Radius: + åŠå¾„: - Closed - 关闭 + Closed + 关闭 - Sampling: - 采样: + Sampling: + 采样: - Edge length: - 边长: + Edge length: + 边长: - Radius 1: - åŠå¾„ 1: + Radius 1: + åŠå¾„ 1: - Radius 2: - åŠå¾„ 2: + Radius 2: + åŠå¾„ 2: - - + + MeshGui::DlgRegularSolidImp - Create %1 - 创建 %1 + Create %1 + 创建 %1 - No active document - 无活动文档 + No active document + 无活动文档 - - + + MeshGui::DlgSettingsMeshView - Mesh view - 网格视图 + Mesh view + 网格视图 - Two-side rendering - åŒä¾§å‘ˆçް + Two-side rendering + åŒä¾§å‘ˆçް - Backface color - 背é¢é¢œè‰² + Backface color + 背é¢é¢œè‰² - Smoothing - 平滑 + Smoothing + 平滑 - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> - <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 这是最å°çš„è§’åº¦ä¹‹é—´ä¸¤é¢æ³•线获得旨在åšå¹³åº•纹。</p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> å¦‚æžœä¹‹é—´çš„ä¸¤ä¸ªé‚»è¿‘è¡¨é¢æ³•线的角度å°äºŽçš±çš„角度脸上将周围常è§çš„边缘 smoothshaded</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">This is the smallest angle between two faces where normals get calculated to do flat shading.</p><p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If the angle between the normals of two neighbouring faces is less than the crease angle, the faces will be smoothshaded around their common edge.</p></body></html> + <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 这是最å°çš„è§’åº¦ä¹‹é—´ä¸¤é¢æ³•线获得旨在åšå¹³åº•纹。</p><p style="margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> å¦‚æžœä¹‹é—´çš„ä¸¤ä¸ªé‚»è¿‘è¡¨é¢æ³•线的角度å°äºŽçš±çš„角度脸上将周围常è§çš„边缘 smoothshaded</p></body></html> - Crease angle - 抗皱角 + Crease angle + 抗皱角 - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> - <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 平底纹/海防底纹</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 定义外观的表é¢ã€‚</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> ä¸å®šä¹‰æ¯ä¸ªé¡¶ç‚¹å•é¢é˜´å½±ä¸Žè¡¨é¢æ³•线,将导致ä¸çœŸå®žçš„å¤–è§‚çš„æ›²é¢æ—¶ï¼Œå¦‚果使用多é¢é˜´å½±ä¼šå¾—到更平滑的外观。</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 如果设置此选项则使用多é¢é˜´å½±ï¼Œå¦åˆ™ä½¿ç”¨å•é¢é˜´å½±ã€‚</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defines the appearance of surfaces.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">If this option is set Phong shading is used, if it is unset flat shading is used.</p></body></html> + <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 平底纹/海防底纹</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 定义外观的表é¢ã€‚</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> ä¸å®šä¹‰æ¯ä¸ªé¡¶ç‚¹å•é¢é˜´å½±ä¸Žè¡¨é¢æ³•线,将导致ä¸çœŸå®žçš„å¤–è§‚çš„æ›²é¢æ—¶ï¼Œå¦‚果使用多é¢é˜´å½±ä¼šå¾—到更平滑的外观。</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> 如果设置此选项则使用多é¢é˜´å½±ï¼Œå¦åˆ™ä½¿ç”¨å•é¢é˜´å½±ã€‚</p></body></html> - Define normal per vertex - 定义æ¯ä¸ªå¸¸è§„顶点 + Define normal per vertex + 定义æ¯ä¸ªå¸¸è§„顶点 + + + ° + ° - ° - ° + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">暗示</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">æ¯ä¸ªé¡¶ç‚¹çš„æ³•线的定义也被称为<span style=" font-style:italic;">Phong光照</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">åŒæ—¶ç¡®å®šæ¯ä¸ªé¢çš„æ³•线称为</span>平阴影<span style=" font-style:normal;">。</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">暗示</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">æ¯ä¸ªé¡¶ç‚¹çš„æ³•线的定义也被称为<span style=" font-style:italic;">Phong光照</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">åŒæ—¶ç¡®å®šæ¯ä¸ªé¢çš„æ³•线称为</span>平阴影<span style=" font-style:normal;">。</span> </p></body></html> + Default appearance for new meshes + 新网格默认外观 - Default appearance for new meshes - 新网格默认外观 + Default line color + 默认线æ¡é¢œè‰² - Default line color - 默认线æ¡é¢œè‰² + Mesh transparency + ç½‘æ ¼é€æ˜Žåº¦ - Mesh transparency - ç½‘æ ¼é€æ˜Žåº¦ + Default mesh color + 默认网格颜色 - Default mesh color - 默认网格颜色 + Show bounding-box for highlighted or selected meshes + 显示高亮或选中网格的边界框 - Show bounding-box for highlighted or selected meshes - 显示高亮或选中网格的边界框 + Line transparency + 线æ¡é€æ˜Žåº¦ - - Line transparency - 线æ¡é€æ˜Žåº¦ - - - + + MeshGui::DlgSmoothing - Smoothing - 平滑 + Smoothing + 平滑 - Method - 方法 + Method + 方法 - Taubin - Taubin + Taubin + Taubin - Laplace - 拉普拉斯 + Laplace + 拉普拉斯 - Parameter - 傿•° + Parameter + 傿•° - Iterations: - 迭代: + Iterations: + 迭代: - Lambda: - Lambda: + Lambda: + Lambda: - Mu: - Mu: + Mu: + Mu: - - + + MeshGui::MeshFaceAddition - Add triangle - 增加三角形 + Add triangle + 增加三角形 - Flip normal - 翻转法线 + Flip normal + 翻转法线 - Clear - 清除 + Clear + 清除 - Finish - å®Œæˆ + Finish + å®Œæˆ - - + + MeshGui::RemoveComponents - Remove components - 删除组件 + Remove components + 删除组件 - Select - 选择 + Select + 选择 - Select whole component - 选择整个组件 + Select whole component + 选择整个组件 - Pick triangle - 拾å–三角形 + Pick triangle + 拾å–三角形 - < faces than - < é¢ + < faces than + < é¢ - Region - 区域 + Region + 区域 - Components - 组件 + Components + 组件 - All - 全部 + All + 全部 - Deselect - å–æ¶ˆé€‰å®š + Deselect + å–æ¶ˆé€‰å®š - Deselect whole component - å–æ¶ˆé€‰æ‹©æ•´ä¸ªç»„ä»¶ + Deselect whole component + å–æ¶ˆé€‰æ‹©æ•´ä¸ªç»„ä»¶ - > faces than - >é¢ + > faces than + >é¢ - Region options - 区域选项 + Region options + 区域选项 - Respect only triangles with normals facing screen - 仅考虑å±å¹•常规法线三角形 + Respect only triangles with normals facing screen + 仅考虑å±å¹•常规法线三角形 - Respect only visible triangles - 仅考虑å¯è§ä¸‰è§’å½¢ + Respect only visible triangles + 仅考虑å¯è§ä¸‰è§’å½¢ - - + + + MeshGui::Segmentation + + Mesh segmentation + + + + Smooth mesh + + + + Plane + + + + Tolerance + + + + Minumum number of faces + + + + Cylinder + 圆柱体 + + + Radius + + + + Tolerance (Flat) + + + + Tolerance (Curved) + + + + Minimum number of faces + + + + Sphere + çƒä½“ + + + MeshGui::TaskRemoveComponents - Delete - 删除 + Delete + 删除 - Invert - å转 + Invert + å转 - - + + QDockWidget - Evaluate & Repair Mesh - 检测 & ä¿®å¤ç½‘æ ¼ + Evaluate & Repair Mesh + 检测 & ä¿®å¤ç½‘æ ¼ - - + + QObject - Import mesh - 导入网格 + Import mesh + 导入网格 - Export mesh - 导出网格 + Export mesh + 导出网格 - Solid Mesh - 实体网格 + Solid Mesh + 实体网格 - Boundings - 边界 + Boundings + 边界 - Fill holes - å¡«å……å­” + Fill holes + å¡«å……å­” - Fill holes with maximum number of edges: - 使用最大边数填充孔: + Fill holes with maximum number of edges: + 使用最大边数填充孔: - Binary STL (*.stl) - 二进制 STL (*.stl) + Binary STL (*.stl) + 二进制 STL (*.stl) - ASCII STL (*.ast) - ASCII STL (*.ast) + ASCII STL (*.ast) + ASCII STL (*.ast) - Binary Mesh (*.bms) - 二进制网格 (*.bms) + Binary Mesh (*.bms) + 二进制网格 (*.bms) - Alias Mesh (*.obj) - Alias网格 (*.obj) + Alias Mesh (*.obj) + Alias网格 (*.obj) - Inventor V2.1 ascii (*.iv) - Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) + Inventor V2.1 ascii (*.iv) - All Files (*.*) - 所有文件(*.*) + All Files (*.*) + 所有文件(*.*) - ASCII STL (*.stl) - ASCII STL (*.stl) + ASCII STL (*.stl) + ASCII STL (*.stl) - VRML V2.0 (*.wrl *.vrml) - VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) + VRML V2.0 (*.wrl *.vrml) - Compressed VRML 2.0 (*.wrz) - 压缩 VRML 2.0 (*.wrz) + Compressed VRML 2.0 (*.wrz) + 压缩 VRML 2.0 (*.wrz) - Nastran (*.nas *.bdf) - Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) + Nastran (*.nas *.bdf) - Python module def (*.py) - Python 模å—定义 (*.py) + Python module def (*.py) + Python 模å—定义 (*.py) - Meshing Tolerance - 网格化公差 + Meshing Tolerance + 网格化公差 - Enter tolerance for meshing geometry: - 输入网格化几何体公差: + Enter tolerance for meshing geometry: + 输入网格化几何体公差: - The mesh '%1' is a solid. - 网格'%1'是实体. + The mesh '%1' is a solid. + 网格'%1'是实体. - The mesh '%1' is not a solid. - 网格 '%1' 䏿˜¯å®žä½“. + The mesh '%1' is not a solid. + 网格 '%1' 䏿˜¯å®žä½“. - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - Min=<%1,%2,%3> + Min=<%1,%2,%3> Max=<%4,%5,%6> - [Points: %1, Edges: %2 Faces: %3] - [点: %1, è¾¹: %2 é¢: %3] + [Points: %1, Edges: %2 Faces: %3] + [点: %1, è¾¹: %2 é¢: %3] - Leave info mode - é€€å‡ºæŸ¥è¯¢æ¨¡å¼ + Leave info mode + é€€å‡ºæŸ¥è¯¢æ¨¡å¼ - Index: %1 - 索引: %1 + Index: %1 + 索引: %1 - Leave hole-filling mode - é€€å‡ºå­”å¡«å……æ¨¡å¼ + Leave hole-filling mode + é€€å‡ºå­”å¡«å……æ¨¡å¼ - Leave removal mode - é€€å‡ºåˆ é™¤æ¨¡å¼ + Leave removal mode + é€€å‡ºåˆ é™¤æ¨¡å¼ - All Mesh Files (*.stl *.ast *.bms *.obj *.ply) - 所有网格文件 (*.stl *.ast *.bms *.obj *.ply) + All Mesh Files (*.stl *.ast *.bms *.obj *.ply) + 所有网格文件 (*.stl *.ast *.bms *.obj *.ply) - Stanford Polygon (*.ply) - æ–¯å¦ç¦å¤šè¾¹å½¢ (*.ply) + Stanford Polygon (*.ply) + æ–¯å¦ç¦å¤šè¾¹å½¢ (*.ply) - Object File Format (*.off) - å¯¹è±¡æ–‡ä»¶æ ¼å¼ (*.off) + Object File Format (*.off) + å¯¹è±¡æ–‡ä»¶æ ¼å¼ (*.off) - Standford Polygon (*.ply) - æ–¯å¦ç¦å¤šè¾¹å½¢ (*.ply) + Standford Polygon (*.ply) + æ–¯å¦ç¦å¤šè¾¹å½¢ (*.ply) - Delete selected faces - åˆ é™¤é€‰å®šçš„é¢ + Delete selected faces + åˆ é™¤é€‰å®šçš„é¢ - Clear selected faces - æ¸…é™¤é€‰ä¸­çš„é¢ + Clear selected faces + æ¸…é™¤é€‰ä¸­çš„é¢ - Annotation - 注释 + Annotation + 注释 - - + + All Mesh Files (*.stl *.ast *.bms *.obj *.off *.ply) + + + + Workbench - Analyze - åˆ†æž + Analyze + åˆ†æž - Boolean - 布尔值 + Boolean + 布尔值 - &Meshes - 网格(&M) + &Meshes + 网格(&M) - Mesh tools - 网格工具 + Mesh tools + 网格工具 - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_af.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_af.ts index 61658705c..420d92965 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_af.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_af.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Maas + + Mesh + Maas - Create mesh from shape... - Skep 'n maas van die vorm ... + + Create mesh from shape... + Skep 'n maas van die vorm ... - Tessellate shape - Tesselleer die vorm + + Tessellate shape + Tesselleer die vorm - - + + MeshPartGui::Tessellation - - Tessellation - Tessellasie + + Tessellation + Tessellasie - Shapes - Vorms + + Shapes + Vorms - Settings - Instellings + + Settings + Instellings - Surface deviation: - Oppervlakafwyking: + + Surface deviation: + Oppervlakafwyking: - Max. edge length: - Maks kantlengte: + + Max. edge length: + Maks kantlengte: - - Select a shape for meshing, first. - Kies eers 'n vorm om te omskep in 'n maas. + + Select a shape for meshing, first. + Kies eers 'n vorm om te omskep in 'n maas. - No such document '%1'. - Dokument bestaan nie '%1'. + + No such document '%1'. + Dokument bestaan nie '%1'. - - + + Workbench - - MeshPart - MaasOnderdeel + + MeshPart + MaasOnderdeel - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_de.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_de.ts index c0bedcc3a..72cd685a5 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_de.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_de.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Netz + + Mesh + Netz - Create mesh from shape... - Netz aus Form erstellen... + + Create mesh from shape... + Netz aus Form erstellen... - Tessellate shape - Form tessellieren + + Tessellate shape + Form tessellieren - - + + MeshPartGui::Tessellation - - Tessellation - Tessellierung + + Tessellation + Tessellierung - Shapes - Formen + + Shapes + Formen - Settings - Einstellungen + + Settings + Einstellungen - Surface deviation: - Flächenabweichung: + + Surface deviation: + Flächenabweichung: - Max. edge length: - Max. Kantenlänge: + + Max. edge length: + Max. Kantenlänge: - - Select a shape for meshing, first. - Wählen Sie zuerst eine Form für die Vernetzung. + + Select a shape for meshing, first. + Wählen Sie zuerst eine Form für die Vernetzung. - No such document '%1'. - Es gibt kein Dokument "%1". + + No such document '%1'. + Es gibt kein Dokument "%1". - - + + Workbench - - MeshPart - Netz-Formteil + + MeshPart + Netz-Formteil - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es.ts index c2ce81210..2a5f375e0 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_es.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Malla + + Mesh + Malla - Create mesh from shape... - Crear malla de forma ... + + Create mesh from shape... + Crear malla de forma ... - Tessellate shape - Teselar forma + + Tessellate shape + Teselar forma - - + + MeshPartGui::Tessellation - - Tessellation - Teselado + + Tessellation + Teselado - Shapes - Formas + + Shapes + Formas - Settings - Opciones + + Settings + Opciones - Surface deviation: - Superficie de desviación: + + Surface deviation: + Superficie de desviación: - Max. edge length: - Longitud máx. de la arista: + + Max. edge length: + Longitud máx. de la arista: - - Select a shape for meshing, first. - Seleccione primero una forma para el mallado. + + Select a shape for meshing, first. + Seleccione primero una forma para el mallado. - No such document '%1'. - '%1' No es un documento. + + No such document '%1'. + '%1' No es un documento. - - + + Workbench - - MeshPart - MeshPart + + MeshPart + MeshPart - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fi.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fi.ts index 6d118768c..0dc7a09ca 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fi.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fi.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Mesh + + Mesh + Mesh - Create mesh from shape... - Create mesh from shape... + + Create mesh from shape... + Create mesh from shape... - Tessellate shape - Tessellate shape + + Tessellate shape + Tessellate shape - - + + MeshPartGui::Tessellation - - Tessellation - Tessellation + + Tessellation + Tessellation - Shapes - Shapes + + Shapes + Shapes - Settings - Settings + + Settings + Settings - Surface deviation: - Surface deviation: + + Surface deviation: + Surface deviation: - Max. edge length: - Max. edge length: + + Max. edge length: + Max. edge length: - - Select a shape for meshing, first. - Select a shape for meshing, first. + + Select a shape for meshing, first. + Select a shape for meshing, first. - No such document '%1'. - No such document '%1'. + + No such document '%1'. + No such document '%1'. - - + + Workbench - - MeshPart - VerkotaOsa + + MeshPart + VerkotaOsa - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fr.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fr.ts index ecdf153b1..f2648826d 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fr.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_fr.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Maillage + + Mesh + Maillage - Create mesh from shape... - Créer un maillage à partir d'une forme... + + Create mesh from shape... + Créer un maillage à partir d'une forme... - Tessellate shape - Tessellation de la forme + + Tessellate shape + Tessellation de la forme - - + + MeshPartGui::Tessellation - - Tessellation - Tessellation + + Tessellation + Tessellation - Shapes - Formes + + Shapes + Formes - Settings - Réglages + + Settings + Réglages - Surface deviation: - Déviation de surface : + + Surface deviation: + Déviation de surface : - Max. edge length: - Longueur maximale d'arête : + + Max. edge length: + Longueur maximale d'arête : - - Select a shape for meshing, first. - Sélectionner d'abord une forme pour le maillage. + + Select a shape for meshing, first. + Sélectionner d'abord une forme pour le maillage. - No such document '%1'. - Aucun document '%1'. + + No such document '%1'. + Aucun document '%1'. - - + + Workbench - - MeshPart - Maillage + + MeshPart + Maillage - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hr.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hr.ts index 979e96929..f39f3fefb 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hr.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hr.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Mreža + + Mesh + Mreža - Create mesh from shape... - Stvori mrežu od oblika ... + + Create mesh from shape... + Stvori mrežu od oblika ... - Tessellate shape - Pretvori oblik u mrežu + + Tessellate shape + Pretvori oblik u mrežu - - + + MeshPartGui::Tessellation - - Tessellation - Mozaik + + Tessellation + Mozaik - Shapes - Oblici + + Shapes + Oblici - Settings - Postavke + + Settings + Postavke - Surface deviation: - Odstupanje povrÅ¡ine: + + Surface deviation: + Odstupanje povrÅ¡ine: - Max. edge length: - Max. duljina ruba: + + Max. edge length: + Max. duljina ruba: - - Select a shape for meshing, first. - Prvo daberite oblik za umrežavanje. + + Select a shape for meshing, first. + Prvo daberite oblik za umrežavanje. - No such document '%1'. - Ne postoji takav dokument '%1'. + + No such document '%1'. + Ne postoji takav dokument '%1'. - - + + Workbench - - MeshPart - Mrežasti Oblik + + MeshPart + Mrežasti Oblik - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hu.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hu.ts index 5432b3269..85f64b7ab 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hu.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_hu.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Hálós test + + Mesh + Hálós test - Create mesh from shape... - Hálós test létrehozása alakzatból + + Create mesh from shape... + Hálós test létrehozása alakzatból - Tessellate shape - Mozaik alakja + + Tessellate shape + Mozaik alakja - - + + MeshPartGui::Tessellation - - Tessellation - Mozaik + + Tessellation + Mozaik - Shapes - Alakzatok + + Shapes + Alakzatok - Settings - Beállítások + + Settings + Beállítások - Surface deviation: - Felületi eltérés: + + Surface deviation: + Felületi eltérés: - Max. edge length: - Max. él hossz: + + Max. edge length: + Max. él hossz: - - Select a shape for meshing, first. - Válassza ki a formát kapcsolás elÅ‘tt. + + Select a shape for meshing, first. + Válassza ki a formát kapcsolás elÅ‘tt. - No such document '%1'. - Nincs ilyen dokumentum '%1'. + + No such document '%1'. + Nincs ilyen dokumentum '%1'. - - + + Workbench - - MeshPart - RészekKapcsolása + + MeshPart + RészekKapcsolása - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_it.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_it.ts index dc355719c..c09c23fd8 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_it.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_it.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Mesh + + Mesh + Mesh - Create mesh from shape... - Crea una mesh da una forma ... + + Create mesh from shape... + Crea una mesh da una forma ... - Tessellate shape - Forma della tassellazione + + Tessellate shape + Forma della tassellazione - - + + MeshPartGui::Tessellation - - Tessellation - Tassellazione + + Tessellation + Tassellazione - Shapes - Forme + + Shapes + Forme - Settings - Impostazioni + + Settings + Impostazioni - Surface deviation: - Deviazione di superficie: + + Surface deviation: + Deviazione di superficie: - Max. edge length: - Massima lunghezza del bordo: + + Max. edge length: + Massima lunghezza del bordo: - - Select a shape for meshing, first. - Selezionare prima una forma per il meshing. + + Select a shape for meshing, first. + Selezionare prima una forma per il meshing. - No such document '%1'. - Non esiste nessun documento '%1'. + + No such document '%1'. + Non esiste nessun documento '%1'. - - + + Workbench - - MeshPart - MeshPart + + MeshPart + MeshPart - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ja.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ja.ts index 1fe3c908d..f3b7f272b 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ja.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ja.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Mesh + + Mesh + Mesh - Create mesh from shape... - Create mesh from shape... + + Create mesh from shape... + Create mesh from shape... - Tessellate shape - Tessellate shape + + Tessellate shape + Tessellate shape - - + + MeshPartGui::Tessellation - - Tessellation - Tessellation + + Tessellation + Tessellation - Shapes - Shapes + + Shapes + Shapes - Settings - Settings + + Settings + Settings - Surface deviation: - Surface deviation: + + Surface deviation: + Surface deviation: - Max. edge length: - Max. edge length: + + Max. edge length: + Max. edge length: - - Select a shape for meshing, first. - Select a shape for meshing, first. + + Select a shape for meshing, first. + Select a shape for meshing, first. - No such document '%1'. - No such document '%1'. + + No such document '%1'. + No such document '%1'. - - + + Workbench - - MeshPart - MeshPart + + MeshPart + MeshPart - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts index 0a6f49b80..d605a0d1d 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_nl.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Mesh + + Mesh + Mesh - Create mesh from shape... - Create mesh from shape... + + Create mesh from shape... + Create mesh from shape... - Tessellate shape - Tessellate shape + + Tessellate shape + Tessellate shape - - + + MeshPartGui::Tessellation - - Tessellation - Tessellation + + Tessellation + Tessellation - Shapes - Vormen + + Shapes + Vormen - Settings - Instellingen + + Settings + Instellingen - Surface deviation: - Oppervlakte-afwijking: + + Surface deviation: + Oppervlakte-afwijking: - Max. edge length: - Max. randlengte: + + Max. edge length: + Max. randlengte: - - Select a shape for meshing, first. - Selecteer eerst een vorm voor rasteren + + Select a shape for meshing, first. + Selecteer eerst een vorm voor rasteren - No such document '%1'. - Geen dergelijk document '%1'. + + No such document '%1'. + Geen dergelijk document '%1'. - - + + Workbench - - MeshPart - Net-onderdeel + + MeshPart + Net-onderdeel - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_no.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_no.ts index b0bacbeea..d57d38dbe 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_no.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_no.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Nett + + Mesh + Nett - Create mesh from shape... - Lag nett fra figur... + + Create mesh from shape... + Lag nett fra figur... - Tessellate shape - Tessellér figur + + Tessellate shape + Tessellér figur - - + + MeshPartGui::Tessellation - - Tessellation - Tessellasjon + + Tessellation + Tessellasjon - Shapes - Figurer + + Shapes + Figurer - Settings - Innstillinger + + Settings + Innstillinger - Surface deviation: - Overflateavvik: + + Surface deviation: + Overflateavvik: - Max. edge length: - Maks kantlengde: + + Max. edge length: + Maks kantlengde: - - Select a shape for meshing, first. - Velg en figur Ã¥ gjøre om til nett først. + + Select a shape for meshing, first. + Velg en figur Ã¥ gjøre om til nett først. - No such document '%1'. - Ingen slike dokument '%1'. + + No such document '%1'. + Ingen slike dokument '%1'. - - + + Workbench - - MeshPart - Nettkomponent + + MeshPart + Nettkomponent - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pl.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pl.ts index d3f1194a7..64805dbca 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pl.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pl.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - siatka + + Mesh + siatka - Create mesh from shape... - Utwórz siatkÄ™ z obwiedni... + + Create mesh from shape... + Utwórz siatkÄ™ z obwiedni... - Tessellate shape - Tesselacja obwiedni + + Tessellate shape + Tesselacja obwiedni - - + + MeshPartGui::Tessellation - - Tessellation - Tesselacja + + Tessellation + Tesselacja - Shapes - KsztaÅ‚ty + + Shapes + KsztaÅ‚ty - Settings - Ustawienia + + Settings + Ustawienia - Surface deviation: - Odchylenie powierzchni + + Surface deviation: + Odchylenie powierzchni - Max. edge length: - Max. DÅ‚ugość krawÄ™dzi: + + Max. edge length: + Max. DÅ‚ugość krawÄ™dzi: - - Select a shape for meshing, first. - Zaznacz najpierw obwiedniÄ™ w celu utworzenia siatki + + Select a shape for meshing, first. + Zaznacz najpierw obwiedniÄ™ w celu utworzenia siatki - No such document '%1'. - Brak dokumentu '%1'. + + No such document '%1'. + Brak dokumentu '%1'. - - + + Workbench - - MeshPart - SkÅ‚adnik_Siatki + + MeshPart + SkÅ‚adnik_Siatki - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pt.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pt.ts index f5eb0a81a..572ac32de 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pt.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_pt.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Malha + + Mesh + Malha - Create mesh from shape... - Criar malha a partir de uma forma... + + Create mesh from shape... + Criar malha a partir de uma forma... - Tessellate shape - Paginar forma + + Tessellate shape + Paginar forma - - + + MeshPartGui::Tessellation - - Tessellation - Paginação + + Tessellation + Paginação - Shapes - Formas + + Shapes + Formas - Settings - Configurações + + Settings + Configurações - Surface deviation: - Desvio de superfície: + + Surface deviation: + Desvio de superfície: - Max. edge length: - Comprimento máximo da aresta: + + Max. edge length: + Comprimento máximo da aresta: - - Select a shape for meshing, first. - Selecione primeiro uma forma para malhagem. + + Select a shape for meshing, first. + Selecione primeiro uma forma para malhagem. - No such document '%1'. - Não há tal documento '%1'. + + No such document '%1'. + Não há tal documento '%1'. - - + + Workbench - - MeshPart - MeshPart + + MeshPart + MeshPart - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ru.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ru.ts index c65b7918c..bbd9421a2 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ru.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_ru.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Сетка + + Mesh + Сетка - Create mesh from shape... - Создайте Ñетку из фигуры... + + Create mesh from shape... + Создайте Ñетку из фигуры... - Tessellate shape - Мозаика из фигуры + + Tessellate shape + Мозаика из фигуры - - + + MeshPartGui::Tessellation - - Tessellation - Мозаика + + Tessellation + Мозаика - Shapes - Фигуры + + Shapes + Фигуры - Settings - ÐаÑтройки + + Settings + ÐаÑтройки - Surface deviation: - Отклонение поверхноÑти: + + Surface deviation: + Отклонение поверхноÑти: - Max. edge length: - МакÑ. длина ребра: + + Max. edge length: + МакÑ. длина ребра: - - Select a shape for meshing, first. - Сначала выберите форму Ð´Ð»Ñ ÑлиÑниÑ. + + Select a shape for meshing, first. + Сначала выберите форму Ð´Ð»Ñ ÑлиÑниÑ. - No such document '%1'. - Ðет такого документа '%1'. + + No such document '%1'. + Ðет такого документа '%1'. - - + + Workbench - - MeshPart - Деталь Сетки + + MeshPart + Деталь Сетки - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_se.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_se.ts index a97fbadb7..d234e6259 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_se.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_se.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Nät + + Mesh + Nät - Create mesh from shape... - Skapa nät frÃ¥n form... + + Create mesh from shape... + Skapa nät frÃ¥n form... - Tessellate shape - Tessellera form + + Tessellate shape + Tessellera form - - + + MeshPartGui::Tessellation - - Tessellation - Tessellering + + Tessellation + Tessellering - Shapes - Former + + Shapes + Former - Settings - Inställningar + + Settings + Inställningar - Surface deviation: - Ytavvikelse: + + Surface deviation: + Ytavvikelse: - Max. edge length: - Max. kantlängd: + + Max. edge length: + Max. kantlängd: - - Select a shape for meshing, first. - Markera en form för nät, först. + + Select a shape for meshing, first. + Markera en form för nät, först. - No such document '%1'. - Inget sÃ¥dant dokument '%1'. + + No such document '%1'. + Inget sÃ¥dant dokument '%1'. - - + + Workbench - - MeshPart - NätDel + + MeshPart + NätDel - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_uk.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_uk.ts index ce49b26e7..196de66c6 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_uk.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_uk.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - Сітка + + Mesh + Сітка - Create mesh from shape... - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñітки з форми ... + + Create mesh from shape... + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñітки з форми ... - Tessellate shape - ТеÑелÑÑ†Ñ–Ñ Ñ„Ð¾Ñ€Ð¼Ð¸ + + Tessellate shape + ТеÑелÑÑ†Ñ–Ñ Ñ„Ð¾Ñ€Ð¼Ð¸ - - + + MeshPartGui::Tessellation - - Tessellation - ТеÑелÑÑ†Ñ–Ñ + + Tessellation + ТеÑелÑÑ†Ñ–Ñ - Shapes - Форми + + Shapes + Форми - Settings - Параметри + + Settings + Параметри - Surface deviation: - ÐŸÐ¾Ð²ÐµÑ€Ñ…Ð½Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ: + + Surface deviation: + ÐŸÐ¾Ð²ÐµÑ€Ñ…Ð½Ñ Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ: - Max. edge length: - МакÑ. довжина ребра: + + Max. edge length: + МакÑ. довжина ребра: - - Select a shape for meshing, first. - Спочатку оберіть форму Ð´Ð»Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ. + + Select a shape for meshing, first. + Спочатку оберіть форму Ð´Ð»Ñ Ð·Ð»Ð¸Ñ‚Ñ‚Ñ. - No such document '%1'. - Документ '%1' не знайдено. + + No such document '%1'. + Документ '%1' не знайдено. - - + + Workbench - - MeshPart - ЧаÑтина Сітки + + MeshPart + ЧаÑтина Сітки - + diff --git a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh.ts b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh.ts index c5551c7c5..89439185c 100644 --- a/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh.ts +++ b/src/Mod/MeshPart/Gui/Resources/translations/MeshPart_zh.ts @@ -1,61 +1,68 @@ - - + + CmdMeshPartMesher - - Mesh - 网格 + + Mesh + 网格 - Create mesh from shape... - 从形体创建网格... + + Create mesh from shape... + 从形体创建网格... - Tessellate shape - 细分形状 + + Tessellate shape + 细分形状 - - + + MeshPartGui::Tessellation - - Tessellation - 曲é¢ç»†åˆ† + + Tessellation + 曲é¢ç»†åˆ† - Shapes - 形状 + + Shapes + 形状 - Settings - 设置 + + Settings + 设置 - Surface deviation: - 表é¢åå·®: + + Surface deviation: + 表é¢åå·®: - Max. edge length: - 最大边长: + + Max. edge length: + 最大边长: - - Select a shape for meshing, first. - 请先选择需è¦ç½‘格化的形状. + + Select a shape for meshing, first. + 请先选择需è¦ç½‘格化的形状. - No such document '%1'. - 无此文档 '%1'。 + + No such document '%1'. + 无此文档 '%1'。 - - + + Workbench - - MeshPart - 网格零件 + + MeshPart + 网格零件 - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_af.ts b/src/Mod/Part/Gui/Resources/translations/Part_af.ts index 7e034fc77..147699943 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_af.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_af.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Blokbeskrywing + + Block definition + Blokbeskrywing - First limit - Eerste beperking + + First limit + Eerste beperking - Type: - Soort: + + + Type: + Soort: - mm - mm + + + mm + mm - Length: - Lengte: + + + Length: + Lengte: - Dimension - Dimensie + + + Dimension + Dimensie - Up to next - Op na die volgende + + + Up to next + Op na die volgende - Up to last - Op na die laaste + + + Up to last + Op na die laaste - Up to plane - Op na die tekenvlak + + + Up to plane + Op na die tekenvlak - Up to face - Op na die voorwerpvlak + + + Up to face + Op na die voorwerpvlak - Limit: - Beperking: + + + Limit: + Beperking: - No selection - Geen keuse + + + + + No selection + Geen keuse - Profile - Profiel + + Profile + Profiel - Selection: - Keuse: + + Selection: + Keuse: - Reverse - Keer om + + Reverse + Keer om - Both sides - Beide kante + + Both sides + Beide kante - Second limit - Tweede beperking + + Second limit + Tweede beperking - Direction - Rigting + + Direction + Rigting - Perpendicular to sketch - Loodreg op die skets + + Perpendicular to sketch + Loodreg op die skets - Reference - Verwysing + + Reference + Verwysing - Apply - Pas toe + + Apply + Pas toe - Cancel - Kanselleer + + Cancel + Kanselleer - OK - Goed + + OK + Goed - - + + CmdPartBoolean - - Part - Onderdeel + + Part + Onderdeel - Boolean... - Boolese... + + Boolean... + Boolese... - Run a boolean operation with two shapes selected - Begin 'n booleaanse verwerking met twee gekose vorms + + Run a boolean operation with two shapes selected + Begin 'n booleaanse verwerking met twee gekose vorms - - + + CmdPartBox - - Part - Onderdeel + + Part + Onderdeel - Box - Boks + + Box + Boks - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - Onderdeel + + Part + Onderdeel - Box fix 1 - Boksfiksering 1 + + Box fix 1 + Boksfiksering 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - Onderdeel + + Part + Onderdeel - Box fix 2 - Boksfiksering 2 + + Box fix 2 + Boksfiksering 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - Onderdeel + + Part + Onderdeel - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + Onderdeel + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Onderdeel + + Part + Onderdeel - Intersection - Snyding + + Intersection + Snyding - Make an intersection of two shapes - Make an intersection of two shapes + + Make an intersection of two shapes + Make an intersection of two shapes - - + + CmdPartCone - - Part - Onderdeel + + Part + Onderdeel - Cone - Keël + + Cone + Keël - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - Onderdeel + + Part + Onderdeel - Cross-sections... - Deursnitte... + + Cross-sections... + Deursnitte... - Cross-sections - Deursnitte + + Cross-sections + Deursnitte - - + + CmdPartCut - Part - Onderdeel + + Part + Onderdeel - Cut - Knip + + Cut + Knip - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - Onderdeel + + Part + Onderdeel - Create a Cylinder - Skep 'n silinder + + Create a Cylinder + Skep 'n silinder - Cylinder - Silinder + + Cylinder + Silinder - - + + CmdPartExport - - Part - Onderdeel + + Part + Onderdeel - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - Onderdeel + + Part + Onderdeel - Extrude... - Strek... + + Extrude... + Strek... - Extrude a selected sketch - Strek 'n gekose skets + + Extrude a selected sketch + Strek 'n gekose skets - - + + CmdPartFillet - Part - Onderdeel + + Part + Onderdeel - Fillet... - Ronding... + + Fillet... + Ronding... - Fillet the selected edges of a shape - Rond die gekose kante van 'n vorm + + Fillet the selected edges of a shape + Rond die gekose kante van 'n vorm - - + + CmdPartFuse - Part - Onderdeel + + Part + Onderdeel - Union - Vereniging + + Union + Vereniging - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - Onderdeel + + Part + Onderdeel - Imports a CAD file - Voer 'n CAD-lêer in + + Imports a CAD file + Voer 'n CAD-lêer in - Import CAD... - Voer CAD in... + + Import CAD... + Voer CAD in... - - + + CmdPartImportCurveNet - Part - Onderdeel + + Part + Onderdeel - Import a curve network - Voer 'n kurwenetwerk in + + Import a curve network + Voer 'n kurwenetwerk in - Import curve network... - Voer 'n kurwenetwerk in... + + Import curve network... + Voer 'n kurwenetwerk in... - - + + CmdPartLoft - Part - Onderdeel + + Part + Onderdeel - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Onderdeel + + Part + Onderdeel - Convert to solid - Verander na soliede vorm + + Convert to solid + Verander na soliede vorm - Create solid from a shell or compound - Skep 'n soliede vorm van 'n skil of saamgestelde vorm + + Create solid from a shell or compound + Skep 'n soliede vorm van 'n skil of saamgestelde vorm - - + + CmdPartMirror - Part - Onderdeel + + Part + Onderdeel - Mirroring... - Weerspieëling... + + Mirroring... + Weerspieëling... - Mirroring a selected shape - Spieël 'n gekose vorm + + Mirroring a selected shape + Spieël 'n gekose vorm - - + + CmdPartPickCurveNet - Part - Onderdeel + + Part + Onderdeel - Pick curve network - Kies kurwenetwerk + + Pick curve network + Kies kurwenetwerk - Pick a curve network - Kies kurwenetwerk + + Pick a curve network + Kies kurwenetwerk - - + + CmdPartPrimitives - Part - Onderdeel + + Part + Onderdeel - Create primitives... - Skep primitiewe vorms... + + Create primitives... + Skep primitiewe vorms... - Creation of parametrized geometric primitives - Skepping van gedefinieerde primitiewe vorms + + Creation of parametrized geometric primitives + Skepping van gedefinieerde primitiewe vorms - - + + + CmdPartRefineShape + + + Part + Onderdeel + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Onderdeel + + Part + Onderdeel - Reverse shapes - Omgekeerde vorms + + Reverse shapes + Omgekeerde vorms - Reverse orientation of shapes - Omgekeerde oriëntasie van vorms + + Reverse orientation of shapes + Omgekeerde oriëntasie van vorms - - + + CmdPartRevolve - Part - Onderdeel + + Part + Onderdeel - Revolve... - Roteer... + + Revolve... + Roteer... - Revolve a selected shape - Draai 'n gekose vorm + + Revolve a selected shape + Draai 'n gekose vorm - - + + CmdPartRuledSurface - Part - Onderdeel + + Part + Onderdeel - Create ruled surface - Skep 'n reëloppervlak + + Create ruled surface + Skep 'n reëloppervlak - Create a ruled surface from two curves - Skep 'n reëloppervlak van twee kurwes + + Create a ruled surface from two curves + Skep 'n reëloppervlak van twee kurwes - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - Onderdeel + + Part + Onderdeel - Section - Snyding + + Section + Snyding - - + + CmdPartShapeFromMesh - - Part - Onderdeel + + Part + Onderdeel - Create shape from mesh... - Skep vorm van maas ... + + Create shape from mesh... + Skep vorm van maas ... - Create shape from selected mesh object - Skep vorm van gekose maasvoorwerp + + Create shape from selected mesh object + Skep vorm van gekose maasvoorwerp - - + + CmdPartSimpleCopy - Part - Onderdeel + + Part + Onderdeel - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Onderdeel + + Part + Onderdeel - Create Cylinder... - Skep Silinder ... + + Create Cylinder... + Skep Silinder ... - Create a Cylinder - Skep 'n silinder + + Create a Cylinder + Skep 'n silinder - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - Onderdeel + + Part + Onderdeel - Sphere - Sfeer + + Sphere + Sfeer - - + + + CmdPartSweep + + + Part + Onderdeel + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - Onderdeel + + Part + Onderdeel - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Kies eers 'n vorm om te strek. + Select a shape for extrusion, first. + Kies eers 'n vorm om te strek. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Kies eers 'n vorm om te roteer. + Select a shape for revolution, first. + Kies eers 'n vorm om te roteer. - - + + DlgSettings3DViewPart - Deviation - Afwyking + Deviation + Afwyking - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Die keuse van 'n te klein afwyking veroorsaak dat die tessellasie langer vat, en sodoende word die program gevries of vertraag. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Die keuse van 'n te klein afwyking veroorsaak dat die tessellasie langer vat, en sodoende word die program gevries of vertraag. - - + + PartGui::CrossSections - - Cross sections - Deursnitte + + Cross sections + Deursnitte - Guiding plane - Gidsvlak + + Guiding plane + Gidsvlak - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Posisie: + + Position: + Posisie: - Sections - Snitte + + Sections + Snitte - On both sides - Aan beide kante + + On both sides + Aan beide kante - Count - Tel + + Count + Tel - Distance: - Afstand: + + Distance: + Afstand: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boolese verwerking + + Boolean Operation + Boolese verwerking - Second shape - Tweede vorm + + Second shape + Tweede vorm - First shape - Eerste vorm + + First shape + Eerste vorm - Boolean operation - Boolese verwerking + + Boolean operation + Boolese verwerking - Section - Snyding + + Section + Snyding - Difference - Verskil + + Difference + Verskil - Union - Vereniging + + Union + Vereniging - Intersection - Snyding + + Intersection + Snyding - - Cannot perform a boolean operation with the same shape - Kan nie 'n Booleaanse verwerking doen met dieselfde vorm nie + + Cannot perform a boolean operation with the same shape + Kan nie 'n Booleaanse verwerking doen met dieselfde vorm nie - - Solids - Soliede vorms + + + Solids + Soliede vorms - Shells - Skille + + + Shells + Skille - Compounds - Saamgestelde vorms + + + Compounds + Saamgestelde vorms - Faces - Vlakke + + + Faces + Vlakke - Swap selection - Ruil seleksie uit + + Swap selection + Ruil seleksie uit - - Select a shape on the left side, first - Kies eers 'n vorm aan die linkerkant + + Select a shape on the left side, first + Kies eers 'n vorm aan die linkerkant - Select a shape on the right side, first - Kies eers 'n vorm aan die regterkant + + Select a shape on the right side, first + Kies eers 'n vorm aan die regterkant - No active document available - Geen aktiewe dokument beskikbaar nie + + No active document available + Geen aktiewe dokument beskikbaar nie - One of the selected objects doesn't exist anymore - Een van die gekose voorwerpe bestaan nie meer nie + + One of the selected objects doesn't exist anymore + Een van die gekose voorwerpe bestaan nie meer nie - Performing union on non-solids is not possible - Vereniging van nie-soliede is nie moontlik nie + + Performing union on non-solids is not possible + Vereniging van nie-soliede is nie moontlik nie - Performing intersection on non-solids is not possible - Snyding van nie-soliede is nie moontlik nie + + Performing intersection on non-solids is not possible + Snyding van nie-soliede is nie moontlik nie - Performing difference on non-solids is not possible - Verskilberekening is nie moontlik met nie-soliede nie + + Performing difference on non-solids is not possible + Verskilberekening is nie moontlik met nie-soliede nie - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Strek + + Extrude + Strek - Direction - Rigting + + Direction + Rigting - Along normal - Langs normaallyn + + Along normal + Langs normaallyn - Length: - Lengte: + + Length: + Lengte: - 3D view - 3D view + + 3D view + 3D view - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - Vorm + + Create solid + Create solid - - + + Taper outward angle + - X: - X: + + Shape + Vorm - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Kies eers 'n vorm om te strek. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Kies eers 'n vorm om te strek. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Rond kante + + Fillet Edges + Rond kante - Fillet Parameter - Rondparameter + + Fillet Parameter + Rondparameter - Radius: - Radius: + + Radius: + Radius: - Fillet type: - Rondingstipe: + + Fillet type: + Rondingstipe: - Constant Radius - Konstante Radius + + Constant Radius + Konstante Radius - Variable Radius - Veranderlike Radius + + Variable Radius + Veranderlike Radius - Shape - Vorm + + Shape + Vorm - Selected shape: - Gekose vorm: + + Selected shape: + Gekose vorm: - No selection - Geen keuse + + No selection + Geen keuse - - Edges to fillet - Kante om te rond + + Edges to fillet + Kante om te rond - Start radius - Beginradius + + + Start radius + Beginradius - End radius - Eindradius + + End radius + Eindradius - Radius - Radius + + Radius + Radius - No edge selected - Geen kant gekies nie + + No edge selected + Geen kant gekies nie - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Geen kant is gekies te rond nie. + Geen kant is gekies te rond nie. Kies ten minste een kant. - - All - Alle + + All + Alle - None - Geen + + None + Geen - - Edge%1 - Kant %1 + + + Edge%1 + Kant %1 - No shape selected - Geen vorm gekies nie + + No shape selected + Geen vorm gekies nie - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Geen geldige vorm is gekies nie. -Kies eers 'n geldige vorm in die vallys. + Geen geldige vorm is gekies nie. +Kies eers 'n geldige vorm in die vallys. - - + + PartGui::DlgPartBox - - Box definition - Boksbeskrywing + + Box definition + Boksbeskrywing - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Kanselleer + + Cancel + Kanselleer - OK - Goed + + OK + Goed - Size: - Grootte: + + Size: + Grootte: - Height: - Hoogte: + + Height: + Hoogte: - Width: - Wydte: + + Width: + Wydte: - Length: - Lengte: + + Length: + Lengte: - Position: - Posisie: + + Position: + Posisie: - Direction: - Rigting: + + Direction: + Rigting: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Silinderbeskrywing + + Cylinder definition + Silinderbeskrywing - Parameter - Parameter + + Parameter + Parameter - Height: - Hoogte: + + Height: + Hoogte: - Radius: - Radius: + + Radius: + Radius: - Position: - Posisie: + + Position: + Posisie: - Direction: - Rigting: + + Direction: + Rigting: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - Goed + + OK + Goed - Cancel - Kanselleer + + Cancel + Kanselleer - - + + PartGui::DlgPartImportIges - - IGES input file - IGES invoerlêer + + IGES input file + IGES invoerlêer - ... - ... + + ... + ... - Cancel - Kanselleer + + Cancel + Kanselleer - OK - Goed + + OK + Goed - File Name - Lêernaam + + File Name + Lêernaam - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Alle lêers (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Alle lêers (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Kanselleer + + Cancel + Kanselleer - OK - Goed + + OK + Goed - Step input file - STEP invoerlêer + + Step input file + STEP invoerlêer - File Name - Lêernaam + + File Name + Lêernaam - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Alle lêers (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Alle lêers (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Primitiewe vorms + + Geometric Primitives + Primitiewe vorms - Primitive - Primitiewe vorm + Primitive + Primitiewe vorm - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - Sirkel + + Circle + Sirkel - Vertex - Vertex + Vertex + Vertex - Position - Posisie + Position + Posisie - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Rigting: + Direction: + Rigting: - Y: - Y: + + + + Y: + Y: - Plane - Tekenvlak + + Plane + Tekenvlak - Box - Boks + + Box + Boks - Cylinder - Silinder + + Cylinder + Silinder - Cone - Keël + + Cone + Keël - Sphere - Sfeer + + Sphere + Sfeer - Ellipsoid - Ellipsoïed + + Ellipsoid + Ellipsoïed - Torus - Torus + + Torus + Torus - Parameter - Parameter + + Ellipse + - Width: - Wydte: + + Point + - Length: - Lengte: + + Line + - Height: - Hoogte: + + Parameter + Parameter - Angle: - Hoek: + + + Width: + Wydte: - Radius: - Radius: + + + Length: + Lengte: - Radius 1: - Radius 1: + + + + + Height: + Hoogte: - Radius 2: - Radius 2: + + + + Angle: + Hoek: - U parametric: - U parametriese: + + + + + Radius: + Radius: - V parametric: - V parametriese: + + + + Radius 1: + Radius 1: - &Create - &Skep + + + + Radius 2: + Radius 2: - Alt+C - Alt+C + + + + U parametric: + U parametriese: - Cl&ose - &Maak toe + + + + V parametric: + V parametriese: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Skep %1 + + Y min/max: + - No active document - Geen aktiewe dokument + + Z min/max: + - - Pitch: - Styghoek: + + X2 min/max: + - Helix - Heliks + + Z2 min/max: + - 3D View - 3D-aansig + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Skep + + + Alt+C + Alt+C + + + Cl&ose + &Maak toe + + + Alt+O + Alt+O + + + + + + Create %1 + Skep %1 + + + + No active document + Geen aktiewe dokument + + + + Pitch: + Styghoek: + + + + Helix + Heliks + + + 3D View + 3D-aansig + + + PartGui::DlgRevolution - - Revolve - Roteer + + Revolve + Roteer - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Hoek: + + Angle: + Hoek: - Z: - Z: + + Z: + Z: - Axis: - As: + + Axis: + As: - Shape - Vorm + + Shape + Vorm - - Select a shape for revolution, first. - Kies eers 'n vorm om te roteer. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Kies eers 'n vorm om te roteer. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Kyk na akkuraatheid/prestasie + + View accuracy / Performance + Kyk na akkuraatheid/prestasie - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Met behulp van hoë gehalte normaallyne + + Using high-quality normals + Met behulp van hoë gehalte normaallyne - This will slow down render speed but will lead to nicer results - Dit sal die verwerkingsspoed benadeel, maar sal lei tot beter resultate + + This will slow down render speed but will lead to nicer results + Dit sal die verwerkingsspoed benadeel, maar sal lei tot beter resultate - Defines the appearance of surfaces - Definieer die voorkoms van oppervlaktes + + Defines the appearance of surfaces + Definieer die voorkoms van oppervlaktes - Shape view - Vormaansig + + Shape view + Vormaansig - Tessellation - Mosaïekwerk + + Tessellation + Mosaïekwerk - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Platskadu/Phong-skadu</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Met platskadus word die oppervlaknormale nie gedefinieer per hoekpunt nie. Dit lei tot 'n onwerklike voorkoms vir gekurwe oppervlakke, terwyl Phong-skadus 'n gladder voorkoms gee. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indien hierdie opsie nie geaktiveer is nie, word Phong-skadus gebruik, anders word platskadus gebruik.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Platskadu/Phong-skadu</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Met platskadus word die oppervlaknormale nie gedefinieer per hoekpunt nie. Dit lei tot 'n onwerklike voorkoms vir gekurwe oppervlakke, terwyl Phong-skadus 'n gladder voorkoms gee. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indien hierdie opsie nie geaktiveer is nie, word Phong-skadus gebruik, anders word platskadus gebruik.</p></body></html> - Do not define normal per vertex - Definieer nie 'n normaallyn per hoekpunt nie + + Do not define normal per vertex + Definieer nie 'n normaallyn per hoekpunt nie - Defines the deviation of tessellation to the actual surface - Definieer die afwyking van mosaïekwerk van die werklike oppervlakte + + Defines the deviation of tessellation to the actual surface + Definieer die afwyking van mosaïekwerk van die werklike oppervlakte - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mosaïekwerk</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definieer die maksimum afwyking van die mosaïekverwerkte maas van die oppervlak. Hoe kleiner die waarde is, hoe stadiger die verwerkingsspoed en hoe beter die voorkoms.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mosaïekwerk</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definieer die maksimum afwyking van die mosaïekverwerkte maas van die oppervlak. Hoe kleiner die waarde is, hoe stadiger die verwerkingsspoed en hoe beter die voorkoms.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiëring van die normaallyne per hoekpunt word ook genoem <span style=" font-style:italic;">Phong-skaduïng</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">en definiëring van die normaallyne per vlak noem ons </span>Platskaduïng<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definiëring van die normaallyne per hoekpunt word ook genoem <span style=" font-style:italic;">Phong-skaduïng</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">en definiëring van die normaallyne per vlak noem ons </span>Platskaduïng<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hoë kwaliteit normaallyne</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hierdie sal die verwerkingsspoed stadiger maak, maar sal lei tot beter resultate.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hoë kwaliteit normaallyne</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hierdie sal die verwerkingsspoed stadiger maak, maar sal lei tot beter resultate.</p></body></html> - Maximum deviation depending on the model bounding box - Maksimum afwyking hang af van die model limietboks + + Maximum deviation depending on the model bounding box + Maksimum afwyking hang af van die model limietboks - % - % + + % + % - - Deviation - Afwyking + + Deviation + Afwyking - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Die keuse van 'n te klein afwyking veroorsaak dat die tessellasie langer vat, en sodoende word die program gevries of vertraag. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Die keuse van 'n te klein afwyking veroorsaak dat die tessellasie langer vat, en sodoende word die program gevries of vertraag. - - + + PartGui::DlgSettingsGeneral - - General - Algemeen + + General + Algemeen - Export - Voer uit + + Export + Voer uit - Millimeter - Millimeter + + Millimeter + Millimeter - Meter - Meter + + Meter + Meter - Inch - Duim + + Inch + Duim - Units for export of STEP/IGES - Eenhede vir uitvoer van STEP/IGES + + Units for export of STEP/IGES + Eenhede vir uitvoer van STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Posisie + + + + 3D View + 3D-aansig + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Weerspieëling + + Mirroring + Weerspieëling - Shapes - Vorms + + Shapes + Vorms - Mirror plane: - Spieëlvlak: + + Mirror plane: + Spieëlvlak: - XY plane - XY-vlak + + XY plane + XY-vlak - XZ plane - XZ-vlak + + XZ plane + XZ-vlak - YZ plane - YZ-vlak + + YZ plane + YZ-vlak - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Kies eers 'n vorm om te weerspieël. + + Select a shape for mirroring, first. + Kies eers 'n vorm om te weerspieël. - No such document '%1'. - Geen so 'n dokument '%1' nie. + + No such document '%1'. + Geen so 'n dokument '%1' nie. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Verkeerde keuse + + + + + + Wrong selection + Verkeerde keuse - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Select two or more faces + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Select two or more faces - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Select adjacent faces + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Select adjacent faces - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Waarde + Value + Waarde - Special - Special + Special + Special - Command - Bevel + Command + Bevel - Stretch - Stretch + Stretch + Stretch - Move - Verskuif + Move + Verskuif - Rotate - Roteer + Rotate + Roteer - Offset - Verplasing + Offset + Verplasing - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Faces: + + Faces: + Faces: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Skuif na regs + Move right + Skuif na regs - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Beweeg die gekose item een vlak neer.</b><p>Dit sal ook die vlak van die oueritem verander.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Beweeg die gekose item een vlak neer.</b><p>Dit sal ook die vlak van die oueritem verander.</p> - Move left - Skuif na links + Move left + Skuif na links - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Beweeg die gekose item een vlak op.</b><p>Dit sal ook die vlak van die oueritem verander.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Beweeg die gekose item een vlak op.</b><p>Dit sal ook die vlak van die oueritem verander.</p> - Move up - Skuif op + Move up + Skuif op - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Beweeg die gekose item op.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Beweeg die gekose item op.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> - Move down - Skuif neer + Move down + Skuif neer - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Beweeg die gekose item neer.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Beweeg die gekose item neer.</b><p>Die item sal geskuif word binne die hiërargie vlak.</p> - Create solid - Create solid + + Create solid + Create solid - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Skep + + Create + Skep - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Create solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Verkeerde keuse + + + + + + Wrong selection + Verkeerde keuse - Select two shapes please. - Kies twee vorms asseblief. + + + Select two shapes please. + Kies twee vorms asseblief. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Alle CAD-lêers (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Alle CAD-lêers (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Alle lêers (*.*) + + + + All Files (*.*) + Alle lêers (*.*) - - Sewing Tolerance - Naaitolerans + + Sewing Tolerance + Naaitolerans - Enter tolerance for sewing shape: - Gee toleransvlak vir naaivorm: + + Enter tolerance for sewing shape: + Gee toleransvlak vir naaivorm: - - Edit mirror plane - Wysig spieëlvlak + + Edit mirror plane + Wysig spieëlvlak - Transform - Transformeer + + Edit chamfer edges + - - Part design - Onderdeelontwerp + Transform + Transformeer - - Select two shapes or more, please. - Kies twee of meer vorms, asseblief. + + + Part design + Onderdeelontwerp - You have to select either two edges or two wires. - Jy moet óf twee kante óf twee drade te kies. + + + Select two shapes or more, please. + Kies twee of meer vorms, asseblief. - - Edit fillet edges - Wysig snitkante + + You have to select either two edges or two wires. + Jy moet óf twee kante óf twee drade te kies. - - Set colors... - Set colors... + + Edit fillet edges + Wysig snitkante - - + + + Set colors... + Set colors... + + + Workbench - - &Part - &Onderdeel + + &Part + &Onderdeel - &Simple - &Eenvoudig + + &Simple + &Eenvoudig - &Parametric - &Parametries + + &Parametric + &Parametries - Part tools - Onderdeelgereedskap + + Part tools + Onderdeelgereedskap - Solids - Soliede vorms + + Solids + Soliede vorms - Boolean - Boolese + + Boolean + Boolese - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_de.ts b/src/Mod/Part/Gui/Resources/translations/Part_de.ts index fa525b947..bae37780b 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_de.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_de.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Blockdefinition + + Block definition + Blockdefinition - First limit - Erster Grenzwert + + First limit + Erster Grenzwert - Type: - Typ: + + + Type: + Typ: - mm - mm + + + mm + mm - Length: - Länge: + + + Length: + Länge: - Dimension - Abmessung + + + Dimension + Abmessung - Up to next - Weiter zum Nächsten + + + Up to next + Weiter zum Nächsten - Up to last - Weiter zum Letzten + + + Up to last + Weiter zum Letzten - Up to plane - Weiter zur Ebene + + + Up to plane + Weiter zur Ebene - Up to face - Bis zu Oberfläche + + + Up to face + Bis zu Oberfläche - Limit: - Grenze: + + + Limit: + Grenze: - No selection - Keine Auswahl + + + + + No selection + Keine Auswahl - Profile - Profil + + Profile + Profil - Selection: - Auswahl: + + Selection: + Auswahl: - Reverse - Umkehren + + Reverse + Umkehren - Both sides - Beide Seiten + + Both sides + Beide Seiten - Second limit - Zweite Begrenzung + + Second limit + Zweite Begrenzung - Direction - Richtung + + Direction + Richtung - Perpendicular to sketch - Senkrecht zur Skizze + + Perpendicular to sketch + Senkrecht zur Skizze - Reference - Referenz + + Reference + Referenz - Apply - Anwenden + + Apply + Anwenden - Cancel - Abbrechen + + Cancel + Abbrechen - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Formteil + + Part + Formteil - Boolean... - Boolesche Operation... + + Boolean... + Boolesche Operation... - Run a boolean operation with two shapes selected - Eine boolesche Operation mit zwei ausgewählten Formen durchführen + + Run a boolean operation with two shapes selected + Eine boolesche Operation mit zwei ausgewählten Formen durchführen - - + + CmdPartBox - - Part - Formteil + + Part + Formteil - Box - Quader + + Box + Quader - Create a box solid - Erstellt einen Quader + + Create a box solid + Erstellt einen Quader - - + + CmdPartBox2 - - Part - Formteil + + Part + Formteil - Box fix 1 - Box fix 1 + + Box fix 1 + Box fix 1 - Create a box solid without dialog - Erstellt einen Quader ohne Dialog + + Create a box solid without dialog + Erstellt einen Quader ohne Dialog - - + + CmdPartBox3 - Part - Formteil + + Part + Formteil - Box fix 2 - Box fix 2 + + Box fix 2 + Box fix 2 - Create a box solid without dialog - Erstellt einen Quader ohne Dialog + + Create a box solid without dialog + Erstellt einen Quader ohne Dialog - - + + CmdPartBuilder - Part - Formteil + + Part + Formteil - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + Formteil + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Formteil + + Part + Formteil - Intersection - Überschneidung + + Intersection + Überschneidung - Make an intersection of two shapes - Überschneidet zwei Formen + + Make an intersection of two shapes + Überschneidet zwei Formen - - + + CmdPartCone - - Part - Formteil + + Part + Formteil - Cone - Kegel + + Cone + Kegel - Create a cone solid - Erstellt einen Kegel + + Create a cone solid + Erstellt einen Kegel - - + + CmdPartCrossSections - - Part - Formteil + + Part + Formteil - Cross-sections... - Schnitte... + + Cross-sections... + Schnitte... - Cross-sections - Schnitte + + Cross-sections + Schnitte - - + + CmdPartCut - Part - Formteil + + Part + Formteil - Cut - Ausschneiden + + Cut + Ausschneiden - Make a cut of two shapes - Schneidet zwei Formen + + Make a cut of two shapes + Schneidet zwei Formen - - + + CmdPartCylinder - - Part - Formteil + + Part + Formteil - Create a Cylinder - Einen Zylinder erstellen + + Create a Cylinder + Einen Zylinder erstellen - Cylinder - Zylinder + + Cylinder + Zylinder - - + + CmdPartExport - - Part - Formteil + + Part + Formteil - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - Formteil + + Part + Formteil - Extrude... - Extrudieren... + + Extrude... + Extrudieren... - Extrude a selected sketch - Extrudieren einer ausgewählten Skizze + + Extrude a selected sketch + Extrudieren einer ausgewählten Skizze - - + + CmdPartFillet - Part - Formteil + + Part + Formteil - Fillet... - Abrunden... + + Fillet... + Abrunden... - Fillet the selected edges of a shape - Die ausgewählten Kanten einer Form abrunden + + Fillet the selected edges of a shape + Die ausgewählten Kanten einer Form abrunden - - + + CmdPartFuse - Part - Formteil + + Part + Formteil - Union - Vereinigung + + Union + Vereinigung - Make a union of several shapes - Vereinigt mehrere Formen + + Make a union of several shapes + Vereinigt mehrere Formen - - + + CmdPartImport - Part - Formteil + + Part + Formteil - Imports a CAD file - Importiert eine CAD-Datei + + Imports a CAD file + Importiert eine CAD-Datei - Import CAD... - CAD importieren ... + + Import CAD... + CAD importieren ... - - + + CmdPartImportCurveNet - Part - Formteil + + Part + Formteil - Import a curve network - Ein Kurvennetzwerk importieren + + Import a curve network + Ein Kurvennetzwerk importieren - Import curve network... - Kurvennetzwerk importieren... + + Import curve network... + Kurvennetzwerk importieren... - - + + CmdPartLoft - Part - Formteil + + Part + Formteil - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Formteil + + Part + Formteil - Convert to solid - Festkörper erzeugen + + Convert to solid + Festkörper erzeugen - Create solid from a shell or compound - Festkörper aus Hülle oder Flächenverbund erzeugen + + Create solid from a shell or compound + Festkörper aus Hülle oder Flächenverbund erzeugen - - + + CmdPartMirror - Part - Formteil + + Part + Formteil - Mirroring... - Spiegelung... + + Mirroring... + Spiegelung... - Mirroring a selected shape - Spiegelung einer ausgewählten Form + + Mirroring a selected shape + Spiegelung einer ausgewählten Form - - + + CmdPartPickCurveNet - Part - Formteil + + Part + Formteil - Pick curve network - Kurvennetzwerk auswählen + + Pick curve network + Kurvennetzwerk auswählen - Pick a curve network - Ein Kurvennetzwerk auswählen + + Pick a curve network + Ein Kurvennetzwerk auswählen - - + + CmdPartPrimitives - Part - Formteil + + Part + Formteil - Create primitives... - Grundkörper erstellen... + + Create primitives... + Grundkörper erstellen... - Creation of parametrized geometric primitives - Erstellung von parametrisierten geometrischen Grundkörpern + + Creation of parametrized geometric primitives + Erstellung von parametrisierten geometrischen Grundkörpern - - + + + CmdPartRefineShape + + + Part + Formteil + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Formteil + + Part + Formteil - Reverse shapes - Formen umkehren + + Reverse shapes + Formen umkehren - Reverse orientation of shapes - Orientierung von Formen umkehren + + Reverse orientation of shapes + Orientierung von Formen umkehren - - + + CmdPartRevolve - Part - Formteil + + Part + Formteil - Revolve... - Drehen... + + Revolve... + Drehen... - Revolve a selected shape - Drehen einer ausgewählten Form + + Revolve a selected shape + Drehen einer ausgewählten Form - - + + CmdPartRuledSurface - Part - Formteil + + Part + Formteil - Create ruled surface - Regelfläche erzeugen + + Create ruled surface + Regelfläche erzeugen - Create a ruled surface from two curves - Regelfläche aus zwei Kurven erzeugen + + Create a ruled surface from two curves + Regelfläche aus zwei Kurven erzeugen - - + + CmdPartSection - Make a section of two shapes - Schnitt von zwei Formen erzeugen + + Make a section of two shapes + Schnitt von zwei Formen erzeugen - Part - Formteil + + Part + Formteil - Section - Ausschnitt + + Section + Ausschnitt - - + + CmdPartShapeFromMesh - - Part - Formteil + + Part + Formteil - Create shape from mesh... - Form aus Dreiecksnetz erstellen... + + Create shape from mesh... + Form aus Dreiecksnetz erstellen... - Create shape from selected mesh object - Form aus selektiertem Dreiecksnetz erstellen + + Create shape from selected mesh object + Form aus selektiertem Dreiecksnetz erstellen - - + + CmdPartSimpleCopy - Part - Formteil + + Part + Formteil - Create simple copy - Einfache Kopie erstellen + + Create simple copy + Einfache Kopie erstellen - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Formteil + + Part + Formteil - Create Cylinder... - Zylinder erstellen... + + Create Cylinder... + Zylinder erstellen... - Create a Cylinder - Einen Zylinder erstellen + + Create a Cylinder + Einen Zylinder erstellen - - + + CmdPartSphere - - Create a sphere solid - Erstellt eine Kugel + + Create a sphere solid + Erstellt eine Kugel - Part - Formteil + + Part + Formteil - Sphere - Kugel + + Sphere + Kugel - - + + + CmdPartSweep + + + Part + Formteil + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Erstellt einen Torus + + Create a torus solid + Erstellt einen Torus - Part - Formteil + + Part + Formteil - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Wählen Sie zuerst eine Form zum extrudieren. + Select a shape for extrusion, first. + Wählen Sie zuerst eine Form zum extrudieren. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Select a shape for revolution, first. + Select a shape for revolution, first. + Select a shape for revolution, first. - - + + DlgSettings3DViewPart - Deviation - Deviation + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Schnitte + + Cross sections + Schnitte - Guiding plane - Führungsebene + + Guiding plane + Führungsebene - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Position: + + Position: + Position: - Sections - Abschnitte + + Sections + Abschnitte - On both sides - Beidseitig + + On both sides + Beidseitig - Count - Anzahl + + Count + Anzahl - Distance: - Entfernung: + + Distance: + Entfernung: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boolesche Operation + + Boolean Operation + Boolesche Operation - Second shape - Zweite Form + + Second shape + Zweite Form - First shape - Erste Form + + First shape + Erste Form - Boolean operation - Boolesche Operation + + Boolean operation + Boolesche Operation - Section - Ausschnitt + + Section + Ausschnitt - Difference - Differenz + + Difference + Differenz - Union - Vereinigung + + Union + Vereinigung - Intersection - Überschneidung + + Intersection + Überschneidung - - Cannot perform a boolean operation with the same shape - Kann eine boolesche Operation mit der gleichen Form nicht ausführen + + Cannot perform a boolean operation with the same shape + Kann eine boolesche Operation mit der gleichen Form nicht ausführen - - Solids - Festkörper + + + Solids + Festkörper - Shells - Hülle + + + Shells + Hülle - Compounds - Flächenverbünde + + + Compounds + Flächenverbünde - Faces - Flächen + + + Faces + Flächen - Swap selection - Auswahl umkehren + + Swap selection + Auswahl umkehren - - Select a shape on the left side, first - Zuerst Form auf der linken Seite auswählen + + Select a shape on the left side, first + Zuerst Form auf der linken Seite auswählen - Select a shape on the right side, first - Zuerst Form auf der rechten Seite auswählen + + Select a shape on the right side, first + Zuerst Form auf der rechten Seite auswählen - No active document available - Kein aktives Dokument verfügbar + + No active document available + Kein aktives Dokument verfügbar - One of the selected objects doesn't exist anymore - Eines der ausgewählten Objekte existiert nicht mehr + + One of the selected objects doesn't exist anymore + Eines der ausgewählten Objekte existiert nicht mehr - Performing union on non-solids is not possible - Vereinigung von Nicht-Festkörpern nicht möglich + + Performing union on non-solids is not possible + Vereinigung von Nicht-Festkörpern nicht möglich - Performing intersection on non-solids is not possible - Überschneidung von Nicht-Festkörpern nicht möglich + + Performing intersection on non-solids is not possible + Überschneidung von Nicht-Festkörpern nicht möglich - Performing difference on non-solids is not possible - Differenz von Nicht-Festkörpern nicht möglich + + Performing difference on non-solids is not possible + Differenz von Nicht-Festkörpern nicht möglich - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extrudieren + + Extrude + Extrudieren - Direction - Richtung + + Direction + Richtung - Along normal - Entlang der Normalen + + Along normal + Entlang der Normalen - Length: - Länge: + + Length: + Länge: - 3D view - 3D-Ansicht + + 3D view + 3D-Ansicht - Note:This option works for planes only - Achtung: Diese Option wird nur für Ebenen verwendet + + Note:This option works for planes only + Achtung: Diese Option wird nur für Ebenen verwendet - Shape - Form + + Create solid + Create solid - - + + Taper outward angle + - X: - X: + + Shape + Form - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Wählen Sie zuerst eine Form zum extrudieren. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Wählen Sie zuerst eine Form zum extrudieren. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Kanten abrunden + + Fillet Edges + Kanten abrunden - Fillet Parameter - Ausrundungsparameter + + Fillet Parameter + Ausrundungsparameter - Radius: - Radius: + + Radius: + Radius: - Fillet type: - Ausrundungs-Typ: + + Fillet type: + Ausrundungs-Typ: - Constant Radius - Konstanter Radius + + Constant Radius + Konstanter Radius - Variable Radius - Variabler Radius + + Variable Radius + Variabler Radius - Shape - Form + + Shape + Form - Selected shape: - Ausgewählte Form: + + Selected shape: + Ausgewählte Form: - No selection - Keine Auswahl + + No selection + Keine Auswahl - - Edges to fillet - Kanten zum Abrunden + + Edges to fillet + Kanten zum Abrunden - Start radius - Start-Radius + + + Start radius + Start-Radius - End radius - End-Radius + + End radius + End-Radius - Radius - Radius + + Radius + Radius - No edge selected - Keine Kante ausgewählt + + No edge selected + Keine Kante ausgewählt - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Kein Kantengebilde zum Abrunden markiert. + Kein Kantengebilde zum Abrunden markiert. Bitte markieren Sie zuerst ein oder mehrere Kantengebilde. - - All - Alle + + All + Alle - None - Keine + + None + Keine - - Edge%1 - Kante%1 + + + Edge%1 + Kante%1 - No shape selected - Keine Form gewählt + + No shape selected + Keine Form gewählt - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Keine gültige Form gewählt. + Keine gültige Form gewählt. Bitte wählen Sie eine gültige Form im Dropdown-Feld. - - + + PartGui::DlgPartBox - - Box definition - Box-Definition + + Box definition + Box-Definition - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Abbrechen + + Cancel + Abbrechen - OK - OK + + OK + OK - Size: - Größe: + + Size: + Größe: - Height: - Höhe: + + Height: + Höhe: - Width: - Breite: + + Width: + Breite: - Length: - Länge: + + Length: + Länge: - Position: - Position: + + Position: + Position: - Direction: - Richtung: + + Direction: + Richtung: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Zylinder-Definition + + Cylinder definition + Zylinder-Definition - Parameter - Parameter + + Parameter + Parameter - Height: - Höhe: + + Height: + Höhe: - Radius: - Radius: + + Radius: + Radius: - Position: - Position: + + Position: + Position: - Direction: - Richtung: + + Direction: + Richtung: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Abbrechen + + Cancel + Abbrechen - - + + PartGui::DlgPartImportIges - - IGES input file - IGES-Eingabedatei + + IGES input file + IGES-Eingabedatei - ... - ... + + ... + ... - Cancel - Abbrechen + + Cancel + Abbrechen - OK - OK + + OK + OK - File Name - Dateiname + + File Name + Dateiname - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Alle Dateien (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Alle Dateien (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Abbrechen + + Cancel + Abbrechen - OK - OK + + OK + OK - Step input file - STEP-Eingabedatei + + Step input file + STEP-Eingabedatei - File Name - Dateiname + + File Name + Dateiname - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);; Alle Dateien (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);; Alle Dateien (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometrische Grundkörper + + Geometric Primitives + Geometrische Grundkörper - Primitive - Grundkörper + Primitive + Grundkörper - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - Kreis + + Circle + Kreis - Vertex - Vertex + Vertex + Vertex - Position - Position + Position + Position - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Richtung: + Direction: + Richtung: - Y: - Y: + + + + Y: + Y: - Plane - Ebene + + Plane + Ebene - Box - Quader + + Box + Quader - Cylinder - Zylinder + + Cylinder + Zylinder - Cone - Kegel + + Cone + Kegel - Sphere - Kugel + + Sphere + Kugel - Ellipsoid - Ellipsoid + + Ellipsoid + Ellipsoid - Torus - Torus + + Torus + Torus - Parameter - Parameter + + Ellipse + - Width: - Breite: + + Point + - Length: - Länge: + + Line + - Height: - Höhe: + + Parameter + Parameter - Angle: - Winkel: + + + Width: + Breite: - Radius: - Radius: + + + Length: + Länge: - Radius 1: - Radius 1: + + + + + Height: + Höhe: - Radius 2: - Radius 2: + + + + Angle: + Winkel: - U parametric: - U Parameter: + + + + + Radius: + Radius: - V parametric: - V Parameter: + + + + Radius 1: + Radius 1: - &Create - &Erstellen + + + + Radius 2: + Radius 2: - Alt+C - Alt+C + + + + U parametric: + U Parameter: - Cl&ose - Sch&ließen + + + + V parametric: + V Parameter: - Alt+O - Alt+O + + X min/max: + - - Create %1 - %1 erstellen + + Y min/max: + - No active document - Kein aktives Dokument + + Z min/max: + - - Pitch: - Pitch: + + X2 min/max: + - Helix - Helix + + Z2 min/max: + - 3D View - 3D-Ansicht + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Erstellen + + + Alt+C + Alt+C + + + Cl&ose + Sch&ließen + + + Alt+O + Alt+O + + + + + + Create %1 + %1 erstellen + + + + No active document + Kein aktives Dokument + + + + Pitch: + Pitch: + + + + Helix + Helix + + + 3D View + 3D-Ansicht + + + PartGui::DlgRevolution - - Revolve - Umdrehung + + Revolve + Umdrehung - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Winkel: + + Angle: + Winkel: - Z: - Z: + + Z: + Z: - Axis: - Achse: + + Axis: + Achse: - Shape - Form + + Shape + Form - - Select a shape for revolution, first. - Select a shape for revolution, first. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Select a shape for revolution, first. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Anzeigen der Genauigkeit / Performanz + + View accuracy / Performance + Anzeigen der Genauigkeit / Performanz - View smoothing - Glättung + + View smoothing + Glättung - Using high-quality normals - Hochwertige Normalen benutzen + + Using high-quality normals + Hochwertige Normalen benutzen - This will slow down render speed but will lead to nicer results - Dies verlangsamt die Render-Geschwindigkeit, führt aber zu schöneren Ergebnissen + + This will slow down render speed but will lead to nicer results + Dies verlangsamt die Render-Geschwindigkeit, führt aber zu schöneren Ergebnissen - Defines the appearance of surfaces - Definiert das Aussehen von Oberflächen + + Defines the appearance of surfaces + Definiert das Aussehen von Oberflächen - Shape view - Form-Ansicht + + Shape view + Form-Ansicht - Tessellation - Tessellierung + + Tessellation + Tessellierung - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat-Shading/Phong-Shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Bei Flat-Shading werden die Flächennormalen nicht pro Vertex gesetzt, was zu unnatürlichem Aussehen führen kann, während Phong-Shading zu glatterem Aussehen führt. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Falls diese Option nicht gesetzt ist, wird Phong-Shading verwendet, andernfalls wird Flat-Shading verwendet.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat-Shading/Phong-Shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Bei Flat-Shading werden die Flächennormalen nicht pro Vertex gesetzt, was zu unnatürlichem Aussehen führen kann, während Phong-Shading zu glatterem Aussehen führt. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Falls diese Option nicht gesetzt ist, wird Phong-Shading verwendet, andernfalls wird Flat-Shading verwendet.</p></body></html> - Do not define normal per vertex - Flächennormale nicht per Vertex setzen + + Do not define normal per vertex + Flächennormale nicht per Vertex setzen - Defines the deviation of tessellation to the actual surface - Definiert die Abweichung des Mosaiks auf der aktuellen Oberfläche + + Defines the deviation of tessellation to the actual surface + Definiert die Abweichung des Mosaiks auf der aktuellen Oberfläche - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellierung</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Setzt die maximale Abweichung der tessellierten Fläche zur CAD-Fläche. Je niedriger der Wert desto langamer die Darstellungsgeschwindigkeit und schöner die Darstellung.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellierung</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Setzt die maximale Abweichung der tessellierten Fläche zur CAD-Fläche. Je niedriger der Wert desto langamer die Darstellungsgeschwindigkeit und schöner die Darstellung.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hinweis</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Die Angabe der Normalen per Vertex wird auch <span style=" font-style:italic;">Phong shading</span> genannt,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">während die Angabe der Normalen pro Fläche </span>Flat shading<span style=" font-style:normal;"> gennant wird.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hinweis</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Die Angabe der Normalen per Vertex wird auch <span style=" font-style:italic;">Phong shading</span> genannt,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">während die Angabe der Normalen pro Fläche </span>Flat shading<span style=" font-style:normal;"> gennant wird.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hochqualitative Normalen</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dies verringert die Darstellungsgeschwindigkeit aber führt zu schöneren Ergebnissen.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Hochqualitative Normalen</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dies verringert die Darstellungsgeschwindigkeit aber führt zu schöneren Ergebnissen.</p></body></html> - Maximum deviation depending on the model bounding box - Setzt die maximale Abweichung abhängig von der Modell-Bounding-Box + + Maximum deviation depending on the model bounding box + Setzt die maximale Abweichung abhängig von der Modell-Bounding-Box - % - % + + % + % - - Deviation - Deviation + + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Allgemein + + General + Allgemein - Export - Exportieren + + Export + Exportieren - Millimeter - Millimeter + + Millimeter + Millimeter - Meter - Meter + + Meter + Meter - Inch - Zoll + + Inch + Zoll - Units for export of STEP/IGES - Einheiten für den Export von STEP/IGES + + Units for export of STEP/IGES + Einheiten für den Export von STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Position + + + + 3D View + 3D-Ansicht + + + PartGui::LoftWidget - - Too few elements - Zu wenig Elemente + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Zu wenig Elemente + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Spiegelung + + Mirroring + Spiegelung - Shapes - Formen + + Shapes + Formen - Mirror plane: - Spiegelebene: + + Mirror plane: + Spiegelebene: - XY plane - XY-Ebene + + XY plane + XY-Ebene - XZ plane - XZ-Ebene + + XZ plane + XZ-Ebene - YZ plane - YZ-Ebene + + YZ plane + YZ-Ebene - Base point: - Basispunkt: + + Base point: + Basispunkt: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Wählen Sie zuerst eine Form für die Spiegelung. + + Select a shape for mirroring, first. + Wählen Sie zuerst eine Form für die Spiegelung. - No such document '%1'. - Kein derartiges Dokument "%1". + + No such document '%1'. + Kein derartiges Dokument "%1". - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Falsche Auswahl + + + + + + Wrong selection + Falsche Auswahl - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Select two or more faces + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Select two or more faces - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Select adjacent faces + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Select adjacent faces - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Zu wenig Elemente + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Wert + Value + Wert - Special - Special + Special + Special - Command - Befehl + Command + Befehl - Stretch - Stretch + Stretch + Stretch - Move - Verschieben + Move + Verschieben - Rotate - Drehen + Rotate + Drehen - Offset - Versetzen + Offset + Versetzen - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Faces: + + Faces: + Faces: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Nach rechts verschieben + Move right + Nach rechts verschieben - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Ausgewähltes Element um eine Stufe nach unten verschieben.</b><p>Das verändert auch die Stufe des Vaterelements.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Ausgewähltes Element um eine Stufe nach unten verschieben.</b><p>Das verändert auch die Stufe des Vaterelements.</p> - Move left - Nach links verschieben + Move left + Nach links verschieben - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Ausgewähltes Element um eine Stufe nach oben verschieben.</b><p>Das verändert auch die Stufe des Vaterelements.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Ausgewähltes Element um eine Stufe nach oben verschieben.</b><p>Das verändert auch die Stufe des Vaterelements.</p> - Move up - Noch oben verschieben + Move up + Noch oben verschieben - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Ausgewähltes Element nach oben verschieben.</b><p>Das Element wird innerhalb der Hierarchiestufe verschoben.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Ausgewähltes Element nach oben verschieben.</b><p>Das Element wird innerhalb der Hierarchiestufe verschoben.</p> - Move down - Nache unten verschieben + Move down + Nache unten verschieben - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Ausgewähltes Element nach unten verschieben.</b><p>Das Element wird innerhalb der Hierarchiestufe verschoben.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Ausgewähltes Element nach unten verschieben.</b><p>Das Element wird innerhalb der Hierarchiestufe verschoben.</p> - Create solid - Create solid + + Create solid + Create solid - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Erstellen + + Create + Erstellen - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Create solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Falsche Auswahl + + + + + + Wrong selection + Falsche Auswahl - Select two shapes please. - Wählen Sie bitte zwei Formen. + + + Select two shapes please. + Wählen Sie bitte zwei Formen. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Alle CAD-Dateien (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Alle CAD-Dateien (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Alle Dateien (*.*) + + + + All Files (*.*) + Alle Dateien (*.*) - - Sewing Tolerance - Toleranz + + Sewing Tolerance + Toleranz - Enter tolerance for sewing shape: - Geben Sie die Toleranz zum Vernähen ein: + + Enter tolerance for sewing shape: + Geben Sie die Toleranz zum Vernähen ein: - - Edit mirror plane - Spiegelebene bearbeiten + + Edit mirror plane + Spiegelebene bearbeiten - Transform - Transformieren + + Edit chamfer edges + - - Part design - Part design + Transform + Transformieren - - Select two shapes or more, please. - Wählen Sie bitte zwei oder mehrere Formen aus. + + + Part design + Part design - You have to select either two edges or two wires. - Wählen Sie entweder zwei Kanten oder zwei Drahtgitter aus. + + + Select two shapes or more, please. + Wählen Sie bitte zwei oder mehrere Formen aus. - - Edit fillet edges - Abgerundete Kanten bearbeiten + + You have to select either two edges or two wires. + Wählen Sie entweder zwei Kanten oder zwei Drahtgitter aus. - - Set colors... - Farben setzen... + + Edit fillet edges + Abgerundete Kanten bearbeiten - - + + + Set colors... + Farben setzen... + + + Workbench - - &Part - &Formteil + + &Part + &Formteil - &Simple - Ein&fach + + &Simple + Ein&fach - &Parametric - &Parametrisch + + &Parametric + &Parametrisch - Part tools - Formteil-Werkzeuge + + Part tools + Formteil-Werkzeuge - Solids - Festkörper + + Solids + Festkörper - Boolean - Boolsche Operation + + Boolean + Boolsche Operation - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_es.ts b/src/Mod/Part/Gui/Resources/translations/Part_es.ts index b7f914194..533b69224 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_es.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_es.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - Bloque de definición + + Block definition + Bloque de definición - First limit - Primer límite + + First limit + Primer límite - Type: - Tipo: + + + Type: + Tipo: - mm - mm + + + mm + mm - Length: - Longitud: + + + Length: + Longitud: - Dimension - Cota + + + Dimension + Cota - Up to next - Cerca del siguiente + + + Up to next + Cerca del siguiente - Up to last - Cerca del último + + + Up to last + Cerca del último - Up to plane - Cerca del plano + + + Up to plane + Cerca del plano - Up to face - Cerca de la cara + + + Up to face + Cerca de la cara - Limit: - Límite: + + + Limit: + Límite: - No selection - Ninguna selección + + + + + No selection + Ninguna selección - Profile - Perfil + + Profile + Perfil - Selection: - Selección: + + Selection: + Selección: - Reverse - Invertir + + Reverse + Invertir - Both sides - Ambos lados + + Both sides + Ambos lados - Second limit - Segundo límite + + Second limit + Segundo límite - Direction - Dirección + + Direction + Dirección - Perpendicular to sketch - Perpendicular para esbozar + + Perpendicular to sketch + Perpendicular para esbozar - Reference - Referencia + + Reference + Referencia - Apply - Aplicar + + Apply + Aplicar - Cancel - Cancelar + + Cancel + Cancelar - OK - Aceptar + + OK + Aceptar - - + + CmdPartBoolean - - Part - Pieza + + Part + Pieza - Boolean... - Booleano... + + Boolean... + Booleano... - Run a boolean operation with two shapes selected - Ejecuta una operación booleana con dos formas seleccionadas + + Run a boolean operation with two shapes selected + Ejecuta una operación booleana con dos formas seleccionadas - - + + CmdPartBox - - Part - Pieza + + Part + Pieza - Box - Caja + + Box + Caja - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - Pieza + + Part + Pieza - Box fix 1 - Fijar prisma 1 + + Box fix 1 + Fijar prisma 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - Pieza + + Part + Pieza - Box fix 2 - Fijar prisma 2 + + Box fix 2 + Fijar prisma 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - Pieza + + Part + Pieza - Shape builder... - Generador de forma... + + Shape builder... + Generador de forma... - Advanced utility to create shapes - Utilidad avanzada para crear formas + + Advanced utility to create shapes + Utilidad avanzada para crear formas - - + + + CmdPartChamfer + + + Part + Pieza + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Pieza + + Part + Pieza - Intersection - Intersección + + Intersection + Intersección - Make an intersection of two shapes - Hacer una intersección de dos formas + + Make an intersection of two shapes + Hacer una intersección de dos formas - - + + CmdPartCone - - Part - Pieza + + Part + Pieza - Cone - Cono + + Cone + Cono - Create a cone solid - Crear un cono sólido + + Create a cone solid + Crear un cono sólido - - + + CmdPartCrossSections - - Part - Pieza + + Part + Pieza - Cross-sections... - Cortes transversales... + + Cross-sections... + Cortes transversales... - Cross-sections - Cortes transversales + + Cross-sections + Cortes transversales - - + + CmdPartCut - Part - Pieza + + Part + Pieza - Cut - Cortar + + Cut + Cortar - Make a cut of two shapes - Hacer un corte de dos formas + + Make a cut of two shapes + Hacer un corte de dos formas - - + + CmdPartCylinder - - Part - Pieza + + Part + Pieza - Create a Cylinder - Crear un cilindro + + Create a Cylinder + Crear un cilindro - Cylinder - Cilindro + + Cylinder + Cilindro - - + + CmdPartExport - - Part - Pieza + + Part + Pieza - Export CAD... - Exportar CAD... + + Export CAD... + Exportar CAD... - Exports to a CAD file - Exporta a un archivo CAD + + Exports to a CAD file + Exporta a un archivo CAD - - + + CmdPartExtrude - Part - Pieza + + Part + Pieza - Extrude... - Estruir... + + Extrude... + Estruir... - Extrude a selected sketch - Estruye el croquis seleccionado + + Extrude a selected sketch + Estruye el croquis seleccionado - - + + CmdPartFillet - Part - Pieza + + Part + Pieza - Fillet... - Redondeo... + + Fillet... + Redondeo... - Fillet the selected edges of a shape - Redondea los bordes seleccionados de una forma + + Fillet the selected edges of a shape + Redondea los bordes seleccionados de una forma - - + + CmdPartFuse - Part - Pieza + + Part + Pieza - Union - Unión + + Union + Unión - Make a union of several shapes - Hacer una unión de varias formas + + Make a union of several shapes + Hacer una unión de varias formas - - + + CmdPartImport - Part - Pieza + + Part + Pieza - Imports a CAD file - Importa un archivo de CAD + + Imports a CAD file + Importa un archivo de CAD - Import CAD... - Importar CAD... + + Import CAD... + Importar CAD... - - + + CmdPartImportCurveNet - Part - Pieza + + Part + Pieza - Import a curve network - Importa una red de curvas + + Import a curve network + Importa una red de curvas - Import curve network... - Importa una red de curvas... + + Import curve network... + Importa una red de curvas... - - + + CmdPartLoft - Part - Pieza + + Part + Pieza - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Pieza + + Part + Pieza - Convert to solid - Convertir a sólido + + Convert to solid + Convertir a sólido - Create solid from a shell or compound - Crear sólidos desde un shell o un compuesto + + Create solid from a shell or compound + Crear sólidos desde un shell o un compuesto - - + + CmdPartMirror - Part - Pieza + + Part + Pieza - Mirroring... - Duplicar... + + Mirroring... + Duplicar... - Mirroring a selected shape - Duplicación de una forma seleccionada + + Mirroring a selected shape + Duplicación de una forma seleccionada - - + + CmdPartPickCurveNet - Part - Pieza + + Part + Pieza - Pick curve network - Designe una red de curvas + + Pick curve network + Designe una red de curvas - Pick a curve network - Designa una red de curvas + + Pick a curve network + Designa una red de curvas - - + + CmdPartPrimitives - Part - Pieza + + Part + Pieza - Create primitives... - Crear primitivas... + + Create primitives... + Crear primitivas... - Creation of parametrized geometric primitives - Creación de primitivas geométricas paramétricas + + Creation of parametrized geometric primitives + Creación de primitivas geométricas paramétricas - - + + + CmdPartRefineShape + + + Part + Pieza + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Pieza + + Part + Pieza - Reverse shapes - Invertir formas + + Reverse shapes + Invertir formas - Reverse orientation of shapes - Invertir la orientación de las formas + + Reverse orientation of shapes + Invertir la orientación de las formas - - + + CmdPartRevolve - Part - Pieza + + Part + Pieza - Revolve... - Girar... + + Revolve... + Girar... - Revolve a selected shape - Girar una forma seleccionada + + Revolve a selected shape + Girar una forma seleccionada - - + + CmdPartRuledSurface - Part - Pieza + + Part + Pieza - Create ruled surface - Crear superficie reglada + + Create ruled surface + Crear superficie reglada - Create a ruled surface from two curves - Crear una superficie reglada a partir de dos curvas + + Create a ruled surface from two curves + Crear una superficie reglada a partir de dos curvas - - + + CmdPartSection - Make a section of two shapes - Hacer una sección de dos formas + + Make a section of two shapes + Hacer una sección de dos formas - Part - Pieza + + Part + Pieza - Section - Sección + + Section + Sección - - + + CmdPartShapeFromMesh - - Part - Pieza + + Part + Pieza - Create shape from mesh... - Crear forma de malla... + + Create shape from mesh... + Crear forma de malla... - Create shape from selected mesh object - Crear la forma del objeto de malla seleccionada + + Create shape from selected mesh object + Crear la forma del objeto de malla seleccionada - - + + CmdPartSimpleCopy - Part - Pieza + + Part + Pieza - Create simple copy - Crear copia simple + + Create simple copy + Crear copia simple - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Pieza + + Part + Pieza - Create Cylinder... - Crear cilindro... + + Create Cylinder... + Crear cilindro... - Create a Cylinder - Crear un cilindro + + Create a Cylinder + Crear un cilindro - - + + CmdPartSphere - - Create a sphere solid - Crear una esfera sólida + + Create a sphere solid + Crear una esfera sólida - Part - Pieza + + Part + Pieza - Sphere - Esfera + + Sphere + Esfera - - + + + CmdPartSweep + + + Part + Pieza + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Crear un toroide sólido + + Create a torus solid + Crear un toroide sólido - Part - Pieza + + Part + Pieza - Torus - Toro + + Torus + Toro - - + + DlgExtrusion - Select a shape for extrusion, first. - Seleccione una forma para la extrusión, en primer lugar. + Select a shape for extrusion, first. + Seleccione una forma para la extrusión, en primer lugar. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Primero seleccione una forma de revolución. + Select a shape for revolution, first. + Primero seleccione una forma de revolución. - - + + DlgSettings3DViewPart - Deviation - Desviación + Deviation + Desviación - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Seleccionando una desviación demasiado pequeña causa que la teselación tome un valor más grande, pudiendo congelar o ralentizar la GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Seleccionando una desviación demasiado pequeña causa que la teselación tome un valor más grande, pudiendo congelar o ralentizar la GUI. - - + + PartGui::CrossSections - - Cross sections - Cortes transversales + + Cross sections + Cortes transversales - Guiding plane - Plano de rector + + Guiding plane + Plano de rector - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Posición: + + Position: + Posición: - Sections - Secciones + + Sections + Secciones - On both sides - A ambos lados + + On both sides + A ambos lados - Count - Count + + Count + Count - Distance: - Distancia: + + Distance: + Distancia: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Operación booleana + + Boolean Operation + Operación booleana - Second shape - Segunda forma + + Second shape + Segunda forma - First shape - Primera forma + + First shape + Primera forma - Boolean operation - Operación booleana + + Boolean operation + Operación booleana - Section - Sección + + Section + Sección - Difference - Diferencia + + Difference + Diferencia - Union - Unión + + Union + Unión - Intersection - Intersección + + Intersection + Intersección - - Cannot perform a boolean operation with the same shape - No es posible realizar una operación booleana con la misma forma + + Cannot perform a boolean operation with the same shape + No es posible realizar una operación booleana con la misma forma - - Solids - Sólidos + + + Solids + Sólidos - Shells - Shells + + + Shells + Shells - Compounds - Compuestos + + + Compounds + Compuestos - Faces - Caras + + + Faces + Caras - Swap selection - Intercambiar selección + + Swap selection + Intercambiar selección - - Select a shape on the left side, first - Seleccione primero una forma en el lado izquierdo, + + Select a shape on the left side, first + Seleccione primero una forma en el lado izquierdo, - Select a shape on the right side, first - Seleccione primero una forma en el lado derecho, + + Select a shape on the right side, first + Seleccione primero una forma en el lado derecho, - No active document available - Ningún documento activo disponible + + No active document available + Ningún documento activo disponible - One of the selected objects doesn't exist anymore - Uno de los objetos seleccionados ya no existe + + One of the selected objects doesn't exist anymore + Uno de los objetos seleccionados ya no existe - Performing union on non-solids is not possible - No es posible realizar la Unión en no sólidos + + Performing union on non-solids is not possible + No es posible realizar la Unión en no sólidos - Performing intersection on non-solids is not possible - No es posible realizar la intersección en no sólidos + + Performing intersection on non-solids is not possible + No es posible realizar la intersección en no sólidos - Performing difference on non-solids is not possible - No es posible realizar la diferencia en no sólidos + + Performing difference on non-solids is not possible + No es posible realizar la diferencia en no sólidos - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extrusión + + Extrude + Extrusión - Direction - Dirección + + Direction + Dirección - Along normal - A lo largo de la normal + + Along normal + A lo largo de la normal - Length: - Longitud: + + Length: + Longitud: - 3D view - Vista 3D + + 3D view + Vista 3D - Note:This option works for planes only - Nota: Esta opción funciona solo para planos + + Note:This option works for planes only + Nota: Esta opción funciona solo para planos - Shape - Forma + + Create solid + Crear sólido - - (Vacio) + + Taper outward angle + - X: - X: + + Shape + Forma - Z: - Z: + + (Vacio) - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Seleccione una forma para la extrusión, en primer lugar. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Seleccione una forma para la extrusión, en primer lugar. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Redondear bordes + + Fillet Edges + Redondear bordes - Fillet Parameter - Parámetro de redondeo + + Fillet Parameter + Parámetro de redondeo - Radius: - Radio: + + Radius: + Radio: - Fillet type: - Tipo de redondeo: + + Fillet type: + Tipo de redondeo: - Constant Radius - Radio constante + + Constant Radius + Radio constante - Variable Radius - Radio variable + + Variable Radius + Radio variable - Shape - Forma + + Shape + Forma - Selected shape: - Figura seleccionada: + + Selected shape: + Figura seleccionada: - No selection - Ninguna selección + + No selection + Ninguna selección - - Edges to fillet - Bordes a redondear + + Edges to fillet + Bordes a redondear - Start radius - Radio inicial + + + Start radius + Radio inicial - End radius - Radio final + + End radius + Radio final - Radius - Radio + + Radius + Radio - No edge selected - Ningún borde seleccionado + + No edge selected + Ningún borde seleccionado - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Ninguna entidad de borde está marcada para redondear. + Ninguna entidad de borde está marcada para redondear. Por favor seleccione una o más entidades de borde primero. - - All - Todo + + All + Todo - None - Nada + + None + Nada - - Edge%1 - Lado %1 + + + Edge%1 + Lado %1 - No shape selected - No hay forma seleccionada + + No shape selected + No hay forma seleccionada - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - No se ha seleccionado ninguna forma válida. Por favor, primero seleccione una forma válida en el cuadro desplegable. + No se ha seleccionado ninguna forma válida. Por favor, primero seleccione una forma válida en el cuadro desplegable. - - + + PartGui::DlgPartBox - - Box definition - Definición de prisma + + Box definition + Definición de prisma - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Cancelar + + Cancel + Cancelar - OK - Aceptar + + OK + Aceptar - Size: - Tamaño: + + Size: + Tamaño: - Height: - Altura: + + Height: + Altura: - Width: - Ancho: + + Width: + Ancho: - Length: - Longitud: + + Length: + Longitud: - Position: - Posición: + + Position: + Posición: - Direction: - Dirección: + + Direction: + Dirección: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Definición de cilindro + + Cylinder definition + Definición de cilindro - Parameter - Parámetro + + Parameter + Parámetro - Height: - Altura: + + Height: + Altura: - Radius: - Radio: + + Radius: + Radio: - Position: - Posición: + + Position: + Posición: - Direction: - Dirección: + + Direction: + Dirección: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - Aceptar + + OK + Aceptar - Cancel - Cancelar + + Cancel + Cancelar - - + + PartGui::DlgPartImportIges - - IGES input file - Archivo de entrada IGES + + IGES input file + Archivo de entrada IGES - ... - ... + + ... + ... - Cancel - Cancelar + + Cancel + Cancelar - OK - Aceptar + + OK + Aceptar - File Name - Nombre de archivo + + File Name + Nombre de archivo - - (Vacio) + + (Vacio) - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Todos los archivos (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Todos los archivos (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Cancelar + + Cancel + Cancelar - OK - Aceptar + + OK + Aceptar - Step input file - Archivo de entrada Step + + Step input file + Archivo de entrada Step - File Name - Nombre de archivo + + File Name + Nombre de archivo - - (Vacio) + + (Vacio) - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Todos los archivos (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Todos los archivos (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Primitivas geométricas + + Geometric Primitives + Primitivas geométricas - Primitive - primitiva + Primitive + primitiva - X min - X mín + X min + X mín - x max - x máx + x max + x máx - Y min - Y mín + Y min + Y mín - Y max - Y máx + Y max + Y máx - Z min - Z mín + Z min + Z mín - Z max - Z máx + Z max + Z máx - X2 min - X2 mín + X2 min + X2 mín - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - Valor del eje X: + X Axis Value: + Valor del eje X: - Y Axis Value: - Valor del eje Y: + Y Axis Value: + Valor del eje Y: - Z Axis Value: - Valor del eje Z: + Z Axis Value: + Valor del eje Z: - Wedge - Wedge + + Wedge + Wedge - Circle - Circunferencia + + Circle + Circunferencia - Vertex - Vertex + Vertex + Vertex - Position - Posición + Position + Posición - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Dirección: + Direction: + Dirección: - Y: - Y: + + + + Y: + Y: - Plane - Plano + + Plane + Plano - Box - Caja + + Box + Caja - Cylinder - Cilindro + + Cylinder + Cilindro - Cone - Cono + + Cone + Cono - Sphere - Esfera + + Sphere + Esfera - Ellipsoid - Elipsoide + + Ellipsoid + Elipsoide - Torus - Toro + + Torus + Toro - Parameter - Parámetro + + Ellipse + - Width: - Ancho: + + Point + - Length: - Longitud: + + Line + - Height: - Altura: + + Parameter + Parámetro - Angle: - Ãngulo: + + + Width: + Ancho: - Radius: - Radio: + + + Length: + Longitud: - Radius 1: - Radio 1: + + + + + Height: + Altura: - Radius 2: - Radio 2: + + + + Angle: + Ãngulo: - U parametric: - U paramétrica: + + + + + Radius: + Radio: - V parametric: - V paramétrica: + + + + Radius 1: + Radio 1: - &Create - &Crear + + + + Radius 2: + Radio 2: - Alt+C - Alt+C + + + + U parametric: + U paramétrica: - Cl&ose - &Cerrar + + + + V parametric: + V paramétrica: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Crear %1 + + Y min/max: + - No active document - Ningún documento activo + + Z min/max: + - - Pitch: - Tono: + + X2 min/max: + - Helix - Hélice + + Z2 min/max: + - 3D View - Vista 3D + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Crear + + + Alt+C + Alt+C + + + Cl&ose + &Cerrar + + + Alt+O + Alt+O + + + + + + Create %1 + Crear %1 + + + + No active document + Ningún documento activo + + + + Pitch: + Tono: + + + + Helix + Hélice + + + 3D View + Vista 3D + + + PartGui::DlgRevolution - - Revolve - Girar + + Revolve + Girar - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Ãngulo: + + Angle: + Ãngulo: - Z: - Z: + + Z: + Z: - Axis: - Eje: + + Axis: + Eje: - Shape - Forma + + Shape + Forma - - Select a shape for revolution, first. - Primero seleccione una forma de revolución. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Primero seleccione una forma de revolución. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Vista Precisión / Rendimiento + + View accuracy / Performance + Vista Precisión / Rendimiento - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Utilizar normales de alta calidad + + Using high-quality normals + Utilizar normales de alta calidad - This will slow down render speed but will lead to nicer results - Esto ralentizará la velocidad de render pero proporcionará mejores resultados + + This will slow down render speed but will lead to nicer results + Esto ralentizará la velocidad de render pero proporcionará mejores resultados - Defines the appearance of surfaces - Define la apariencia de las superficies + + Defines the appearance of surfaces + Define la apariencia de las superficies - Shape view - Vista forma + + Shape view + Vista forma - Tessellation - Teselado + + Tessellation + Teselado - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Sombreado plano/Sombreado Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Con sombreado plano las normales de la superficie no están definidas por vértice lo que conlleva a una apariencia no real para las superficies curvas mientras que utilizando el sombreado Phong se consigue una apariencia más suavizada. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Si esta opción no está activada se utilizará el sombreado Phon y si está activadase utilizará el sombreado plano.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Sombreado plano/Sombreado Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Con sombreado plano las normales de la superficie no están definidas por vértice lo que conlleva a una apariencia no real para las superficies curvas mientras que utilizando el sombreado Phong se consigue una apariencia más suavizada. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Si esta opción no está activada se utilizará el sombreado Phon y si está activadase utilizará el sombreado plano.</p></body></html> - Do not define normal per vertex - No definir la normal por vértice + + Do not define normal per vertex + No definir la normal por vértice - Defines the deviation of tessellation to the actual surface - Define la desviación del teselado de la superfice actual + + Defines the deviation of tessellation to the actual surface + Define la desviación del teselado de la superfice actual - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Teselado</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defin e la desviación máxima del teselado de la malla de la superficie. El menor valor es el renderizado más lento en velocidad y el mejor en apariencia.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Teselado</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defin e la desviación máxima del teselado de la malla de la superficie. El menor valor es el renderizado más lento en velocidad y el mejor en apariencia.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">La definición de las normales por vértice también se llama <span style=" font-style:italic;">Sombreado Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mientras que la definición de las normales por cara también se llama </span>Sombreado plano<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">La definición de las normales por vértice también se llama <span style=" font-style:italic;">Sombreado Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mientras que la definición de las normales por cara también se llama </span>Sombreado plano<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normales de alta calidad</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Esto ralentizará la velocidad del render pero permitirá mejores resultados.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normales de alta calidad</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Esto ralentizará la velocidad del render pero permitirá mejores resultados.</p></body></html> - Maximum deviation depending on the model bounding box - Desviación máxima según el modelo de cuadro delimitador + + Maximum deviation depending on the model bounding box + Desviación máxima según el modelo de cuadro delimitador - % - % + + % + % - - Deviation - Desviación + + Deviation + Desviación - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Seleccionando una desviación demasiado pequeña causa que la teselación tome un valor más grande, pudiendo congelar o ralentizar la GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Seleccionando una desviación demasiado pequeña causa que la teselación tome un valor más grande, pudiendo congelar o ralentizar la GUI. - - + + PartGui::DlgSettingsGeneral - - General - General + + General + General - Export - Exportar + + Export + Exportar - Millimeter - Milímetro + + Millimeter + Milímetro - Meter - Metro + + Meter + Metro - Inch - Pulgada + + Inch + Pulgada - Units for export of STEP/IGES - Unidades para exportar a STEP/IGES + + Units for export of STEP/IGES + Unidades para exportar a STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Posición + + + + 3D View + Vista 3D + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Duplicar + + Mirroring + Duplicar - Shapes - Formas + + Shapes + Formas - Mirror plane: - Espejo plano: + + Mirror plane: + Espejo plano: - XY plane - Plano XY + + XY plane + Plano XY - XZ plane - Plano XZ + + XZ plane + Plano XZ - YZ plane - Plano YZ + + YZ plane + Plano YZ - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Primero seleccione una forma de creación de reflejo. + + Select a shape for mirroring, first. + Primero seleccione una forma de creación de reflejo. - No such document '%1'. - Ningún documento '%1'. + + No such document '%1'. + Ningún documento '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Selección incorrecta + + + + + + Wrong selection + Selección incorrecta - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Seleccione dos o más caras + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Seleccione dos o más caras - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Seleccione un conjunto cerrado de bordes + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Seleccione las caras adyacentes + + Select a closed set of edges + Seleccione un conjunto cerrado de bordes - All shape types can be selected - Se pueden seleccionar todos los tipos de forma + + Select adjacent faces + Seleccione las caras adyacentes - - + + + All shape types can be selected + Se pueden seleccionar todos los tipos de forma + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Valor + Value + Valor - Special - Special + Special + Special - Command - Comando + Command + Comando - Stretch - Stretch + Stretch + Stretch - Move - Mover + Move + Mover - Rotate - Girar + Rotate + Girar - Offset - Equidistancia + Offset + Equidistancia - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Haga clic en las caras en la vista 3D para seleccionarlos. + + Click on the faces in the 3d view to select them. + Haga clic en las caras en la vista 3D para seleccionarlos. - Faces: - Caras: + + Faces: + Caras: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Mover a la derecha + Move right + Mover a la derecha - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Mueva el elemento seleccionado un nivel hacia abajo.</b><p>Esto también cambiará el nivel del elemento padre.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Mueva el elemento seleccionado un nivel hacia abajo.</b><p>Esto también cambiará el nivel del elemento padre.</p> - Move left - Mover a la izquierda + Move left + Mover a la izquierda - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mueva el elemento seleccionado un nivel hacia arriba.</b><p>Esto también cambiará el nivel del elemento padre.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mueva el elemento seleccionado un nivel hacia arriba.</b><p>Esto también cambiará el nivel del elemento padre.</p> - Move up - Mover hacia arriba + Move up + Mover hacia arriba - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mueva el elemento seleccionado hacia arriba.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mueva el elemento seleccionado hacia arriba.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> - Move down - Mover hacia abajo + Move down + Mover hacia abajo - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mueva el elemento seleccionado hacia abajo.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mueva el elemento seleccionado hacia abajo.</b><p>El elemento se moverá dentro del nivel de jerarquía.</p> - Create solid - Crear sólido + + Create solid + Crear sólido - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Crear forma + + + Create shape + Crear forma - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Crear + + Create + Crear - All faces - Todas las caras + + All faces + Todas las caras - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Crear sólido + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Selección incorrecta + + + + + + Wrong selection + Selección incorrecta - Select two shapes please. - Seleccione dos formas por favor. + + + Select two shapes please. + Seleccione dos formas por favor. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Todos los archivos de CAD (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Todos los archivos de CAD (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Todos los archivos (*.*) + + + + All Files (*.*) + Todos los archivos (*.*) - - Sewing Tolerance - Tolerancia del modo coser + + Sewing Tolerance + Tolerancia del modo coser - Enter tolerance for sewing shape: - Introduzca la tolerancia para forma cosida: + + Enter tolerance for sewing shape: + Introduzca la tolerancia para forma cosida: - - Edit mirror plane - Editar plano de simetría + + Edit mirror plane + Editar plano de simetría - Transform - Transformar + + Edit chamfer edges + - - Part design - Diseño de piezas + Transform + Transformar - - Select two shapes or more, please. - Seleccione dos o más formas, por favor. + + + Part design + Diseño de piezas - You have to select either two edges or two wires. - Tiene que seleccionar dos aristas o dos alambres. + + + Select two shapes or more, please. + Seleccione dos o más formas, por favor. - - Edit fillet edges - Editar aristas redondeadas + + You have to select either two edges or two wires. + Tiene que seleccionar dos aristas o dos alambres. - - Set colors... - Ajustar colores... + + Edit fillet edges + Editar aristas redondeadas - - + + + Set colors... + Ajustar colores... + + + Workbench - - &Part - &Pieza + + &Part + &Pieza - &Simple - &Simple + + &Simple + &Simple - &Parametric - &Paramétrico + + &Parametric + &Paramétrico - Part tools - Herramientas de pieza + + Part tools + Herramientas de pieza - Solids - Sólidos + + Solids + Sólidos - Boolean - Booleano + + Boolean + Booleano - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_fi.ts b/src/Mod/Part/Gui/Resources/translations/Part_fi.ts index 43b960994..f1853d536 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_fi.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_fi.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Lohkon määrittely + + Block definition + Lohkon määrittely - First limit - Ensimmäinen raja + + First limit + Ensimmäinen raja - Type: - Tyyppi: + + + Type: + Tyyppi: - mm - mm + + + mm + mm - Length: - Pituus: + + + Length: + Pituus: - Dimension - Mitta + + + Dimension + Mitta - Up to next - Ylös seuraavaan + + + Up to next + Ylös seuraavaan - Up to last - Ylös viimeiseen + + + Up to last + Ylös viimeiseen - Up to plane - Ylös tasoon + + + Up to plane + Ylös tasoon - Up to face - Ylös pintaan + + + Up to face + Ylös pintaan - Limit: - Raja: + + + Limit: + Raja: - No selection - Ei valintaa + + + + + No selection + Ei valintaa - Profile - Profiili + + Profile + Profiili - Selection: - Valinta: + + Selection: + Valinta: - Reverse - Käänteinen + + Reverse + Käänteinen - Both sides - Molemmat puolet + + Both sides + Molemmat puolet - Second limit - Toinen raja + + Second limit + Toinen raja - Direction - Suunta + + Direction + Suunta - Perpendicular to sketch - Kohtisuorassa luonnokseen nähden + + Perpendicular to sketch + Kohtisuorassa luonnokseen nähden - Reference - Viittaus + + Reference + Viittaus - Apply - Käytä + + Apply + Käytä - Cancel - Peruuta + + Cancel + Peruuta - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - osa + + Part + osa - Boolean... - Boolean... + + Boolean... + Boolean... - Run a boolean operation with two shapes selected - Suorita boolean toiminto kahdella valitulla muodolla + + Run a boolean operation with two shapes selected + Suorita boolean toiminto kahdella valitulla muodolla - - + + CmdPartBox - - Part - osa + + Part + osa - Box - Laatikko + + Box + Laatikko - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - osa + + Part + osa - Box fix 1 - Laatikon 1 kiinnitys + + Box fix 1 + Laatikon 1 kiinnitys - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - osa + + Part + osa - Box fix 2 - Laatikon 2 kiinnitys + + Box fix 2 + Laatikon 2 kiinnitys - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - osa + + Part + osa - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + osa + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - osa + + Part + osa - Intersection - Risteys + + Intersection + Risteys - Make an intersection of two shapes - Make an intersection of two shapes + + Make an intersection of two shapes + Make an intersection of two shapes - - + + CmdPartCone - - Part - osa + + Part + osa - Cone - Kartio + + Cone + Kartio - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - osa + + Part + osa - Cross-sections... - Poikkileikkaukset... + + Cross-sections... + Poikkileikkaukset... - Cross-sections - Poikkileikkaukset + + Cross-sections + Poikkileikkaukset - - + + CmdPartCut - Part - osa + + Part + osa - Cut - Leikkaa + + Cut + Leikkaa - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - osa + + Part + osa - Create a Cylinder - Luo Sylinteri + + Create a Cylinder + Luo Sylinteri - Cylinder - Sylinteri + + Cylinder + Sylinteri - - + + CmdPartExport - - Part - osa + + Part + osa - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - osa + + Part + osa - Extrude... - Pursota... + + Extrude... + Pursota... - Extrude a selected sketch - Pursota valittu luonnos + + Extrude a selected sketch + Pursota valittu luonnos - - + + CmdPartFillet - Part - osa + + Part + osa - Fillet... - Pyöristys... + + Fillet... + Pyöristys... - Fillet the selected edges of a shape - Pyöristä muodon valitut särmät + + Fillet the selected edges of a shape + Pyöristä muodon valitut särmät - - + + CmdPartFuse - Part - osa + + Part + osa - Union - Yhdiste + + Union + Yhdiste - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - osa + + Part + osa - Imports a CAD file - Tuo CAD tiedoston + + Imports a CAD file + Tuo CAD tiedoston - Import CAD... - Tuo CAD ... + + Import CAD... + Tuo CAD ... - - + + CmdPartImportCurveNet - Part - osa + + Part + osa - Import a curve network - Tuo käyrä-verkko + + Import a curve network + Tuo käyrä-verkko - Import curve network... - Tuo käyrä-verkko... + + Import curve network... + Tuo käyrä-verkko... - - + + CmdPartLoft - Part - osa + + Part + osa - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - osa + + Part + osa - Convert to solid - Muunnta kiinteäksi + + Convert to solid + Muunnta kiinteäksi - Create solid from a shell or compound - Luo kiinteä kuoresta tai yhdisteestä + + Create solid from a shell or compound + Luo kiinteä kuoresta tai yhdisteestä - - + + CmdPartMirror - Part - osa + + Part + osa - Mirroring... - Peilaus... + + Mirroring... + Peilaus... - Mirroring a selected shape - Valitun muodon peilaus + + Mirroring a selected shape + Valitun muodon peilaus - - + + CmdPartPickCurveNet - Part - osa + + Part + osa - Pick curve network - Valitse käyrä-verkko + + Pick curve network + Valitse käyrä-verkko - Pick a curve network - Valitse käyrä-verkko + + Pick a curve network + Valitse käyrä-verkko - - + + CmdPartPrimitives - Part - osa + + Part + osa - Create primitives... - Luo primitiivit... + + Create primitives... + Luo primitiivit... - Creation of parametrized geometric primitives - Parametrisoitujen geometristen primitiivien luonti + + Creation of parametrized geometric primitives + Parametrisoitujen geometristen primitiivien luonti - - + + + CmdPartRefineShape + + + Part + osa + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - osa + + Part + osa - Reverse shapes - Käänteiset muodot + + Reverse shapes + Käänteiset muodot - Reverse orientation of shapes - Käännä muotojen suunta + + Reverse orientation of shapes + Käännä muotojen suunta - - + + CmdPartRevolve - Part - osa + + Part + osa - Revolve... - Pyöräytä... + + Revolve... + Pyöräytä... - Revolve a selected shape - Valitun muodon pyöräytys + + Revolve a selected shape + Valitun muodon pyöräytys - - + + CmdPartRuledSurface - Part - osa + + Part + osa - Create ruled surface - Create ruled surface + + Create ruled surface + Create ruled surface - Create a ruled surface from two curves - Create a ruled surface from two curves + + Create a ruled surface from two curves + Create a ruled surface from two curves - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - osa + + Part + osa - Section - Leikkaus + + Section + Leikkaus - - + + CmdPartShapeFromMesh - - Part - osa + + Part + osa - Create shape from mesh... - luo muoto verkosta... + + Create shape from mesh... + luo muoto verkosta... - Create shape from selected mesh object - luo muoto valituista verkko kohteista + + Create shape from selected mesh object + luo muoto valituista verkko kohteista - - + + CmdPartSimpleCopy - Part - osa + + Part + osa - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - osa + + Part + osa - Create Cylinder... - Luo sylinteri... + + Create Cylinder... + Luo sylinteri... - Create a Cylinder - Luo Sylinteri + + Create a Cylinder + Luo Sylinteri - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - osa + + Part + osa - Sphere - Pallo(kuori) + + Sphere + Pallo(kuori) - - + + + CmdPartSweep + + + Part + osa + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - osa + + Part + osa - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Valitse pursotettava muoto, ensimmäinen. + Select a shape for extrusion, first. + Valitse pursotettava muoto, ensimmäinen. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Valitse pyöräytysmuoto. + Select a shape for revolution, first. + Valitse pyöräytysmuoto. - - + + DlgSettings3DViewPart - Deviation - Deviation + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Poikkileikkaukset + + Cross sections + Poikkileikkaukset - Guiding plane - Ohjaus taso + + Guiding plane + Ohjaus taso - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Sijainti: + + Position: + Sijainti: - Sections - Leikkaukset + + Sections + Leikkaukset - On both sides - Molemmille puolille + + On both sides + Molemmille puolille - Count - Määrä + + Count + Määrä - Distance: - Etäisyys: + + Distance: + Etäisyys: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boolen operaatio + + Boolean Operation + Boolen operaatio - Second shape - Toinen muoto + + Second shape + Toinen muoto - First shape - Ensimmäinen muoto + + First shape + Ensimmäinen muoto - Boolean operation - Boolen operaatio + + Boolean operation + Boolen operaatio - Section - Leikkaus + + Section + Leikkaus - Difference - Erotus + + Difference + Erotus - Union - Yhdiste + + Union + Yhdiste - Intersection - Risteys + + Intersection + Risteys - - Cannot perform a boolean operation with the same shape - Ei voi suorittaa boolean toimintoa saman muodon kanssa + + Cannot perform a boolean operation with the same shape + Ei voi suorittaa boolean toimintoa saman muodon kanssa - - Solids - Kiinteät + + + Solids + Kiinteät - Shells - Kuoret + + + Shells + Kuoret - Compounds - Yhdisteet + + + Compounds + Yhdisteet - Faces - Pinnat + + + Faces + Pinnat - Swap selection - Vaihda valinta + + Swap selection + Vaihda valinta - - Select a shape on the left side, first - Valitse vasemmanpuolinen muoto + + Select a shape on the left side, first + Valitse vasemmanpuolinen muoto - Select a shape on the right side, first - Valitse oikeanpuolinen muoto + + Select a shape on the right side, first + Valitse oikeanpuolinen muoto - No active document available - Ei aktiivista asiakirjaa saatavilla + + No active document available + Ei aktiivista asiakirjaa saatavilla - One of the selected objects doesn't exist anymore - Yhtä valittua kohdetta ei ole enää + + One of the selected objects doesn't exist anymore + Yhtä valittua kohdetta ei ole enää - Performing union on non-solids is not possible - virtuaalisten kappaleiden yhdistäminen ei ole mahdollista + + Performing union on non-solids is not possible + virtuaalisten kappaleiden yhdistäminen ei ole mahdollista - Performing intersection on non-solids is not possible - virtuaalisten kappaleiden risteys ei ole mahdollinen + + Performing intersection on non-solids is not possible + virtuaalisten kappaleiden risteys ei ole mahdollinen - Performing difference on non-solids is not possible - virtuaalisten kappaleiden erottaminen ei ole mahdollista + + Performing difference on non-solids is not possible + virtuaalisten kappaleiden erottaminen ei ole mahdollista - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Pursota + + Extrude + Pursota - Direction - Suunta + + Direction + Suunta - Along normal - Normaali pitkin + + Along normal + Normaali pitkin - Length: - Pituus: + + Length: + Pituus: - 3D view - 3D view + + 3D view + 3D view - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - Muoto + + Create solid + Create solid - - + + Taper outward angle + - X: - x: + + Shape + Muoto - Z: - Z: + + - Y: - Y: + + X: + x: - - Select a shape for extrusion, first. - Valitse pursotettava muoto, ensimmäinen. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Valitse pursotettava muoto, ensimmäinen. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Reunojen pyöristys + + Fillet Edges + Reunojen pyöristys - Fillet Parameter - Pyäristys parametri + + Fillet Parameter + Pyäristys parametri - Radius: - Säde: + + Radius: + Säde: - Fillet type: - Pyöristys tyyppi: + + Fillet type: + Pyöristys tyyppi: - Constant Radius - Jatkuva Säde + + Constant Radius + Jatkuva Säde - Variable Radius - Muuttuva Säde + + Variable Radius + Muuttuva Säde - Shape - Muoto + + Shape + Muoto - Selected shape: - Valittu muoto: + + Selected shape: + Valittu muoto: - No selection - Ei valintaa + + No selection + Ei valintaa - - Edges to fillet - pyöristettävät reunat + + Edges to fillet + pyöristettävät reunat - Start radius - Säteen alku + + + Start radius + Säteen alku - End radius - Säteen loppu + + End radius + Säteen loppu - Radius - Säde + + Radius + Säde - No edge selected - Ei valittua reunaa + + No edge selected + Ei valittua reunaa - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Reuna kokonaisuutta ei ole valittu pyöristykseen. + Reuna kokonaisuutta ei ole valittu pyöristykseen. Ole hyvä valitse yksi tai useampi reuna kokonaisuus. - - All - kaikki + + All + kaikki - None - Ei mitään + + None + Ei mitään - - Edge%1 - Reuna %1 + + + Edge%1 + Reuna %1 - No shape selected - Ei valittua muotoa + + No shape selected + Ei valittua muotoa - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Kelvollista muotoa ei ole valittu. + Kelvollista muotoa ei ole valittu. Ole hyvä ja valitse kelvollinen muoto alas veto laatikosta. - - + + PartGui::DlgPartBox - - Box definition - Laatikon määrittely + + Box definition + Laatikon määrittely - X: - x: + + X: + x: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Peruuta + + Cancel + Peruuta - OK - OK + + OK + OK - Size: - Koko: + + Size: + Koko: - Height: - Korkeus: + + Height: + Korkeus: - Width: - Leveys: + + Width: + Leveys: - Length: - Pituus: + + Length: + Pituus: - Position: - Sijainti: + + Position: + Sijainti: - Direction: - Suunta: + + Direction: + Suunta: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Sylinterin määritelmä + + Cylinder definition + Sylinterin määritelmä - Parameter - Parametri + + Parameter + Parametri - Height: - Korkeus: + + Height: + Korkeus: - Radius: - Säde: + + Radius: + Säde: - Position: - Sijainti: + + Position: + Sijainti: - Direction: - Suunta: + + Direction: + Suunta: - X: - x: + + X: + x: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Peruuta + + Cancel + Peruuta - - + + PartGui::DlgPartImportIges - - IGES input file - IGES syötetiedosto + + IGES input file + IGES syötetiedosto - ... - ... + + ... + ... - Cancel - Peruuta + + Cancel + Peruuta - OK - OK + + OK + OK - File Name - Tiedostonimi + + File Name + Tiedostonimi - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*. IGS *. iges); Kaikki tiedostot (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*. IGS *. iges); Kaikki tiedostot (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Peruuta + + Cancel + Peruuta - OK - OK + + OK + OK - Step input file - STEP syöttötiedosto + + Step input file + STEP syöttötiedosto - File Name - Tiedostonimi + + File Name + Tiedostonimi - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*. STP *. askel), Kaikki tiedostot (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*. STP *. askel), Kaikki tiedostot (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometrinen primitiivi + + Geometric Primitives + Geometrinen primitiivi - Primitive - Primitiivi + Primitive + Primitiivi - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - Ympyrä + + Circle + Ympyrä - Vertex - Vertex + Vertex + Vertex - Position - Sijainti + Position + Sijainti - Z: - Z: + + + + Z: + Z: - X: - x: + + + + X: + x: - Direction: - Suunta: + Direction: + Suunta: - Y: - Y: + + + + Y: + Y: - Plane - Taso + + Plane + Taso - Box - Laatikko + + Box + Laatikko - Cylinder - Sylinteri + + Cylinder + Sylinteri - Cone - Kartio + + Cone + Kartio - Sphere - Pallo(kuori) + + Sphere + Pallo(kuori) - Ellipsoid - Ellipsoidi + + Ellipsoid + Ellipsoidi - Torus - Torus + + Torus + Torus - Parameter - Parametri + + Ellipse + - Width: - Leveys: + + Point + - Length: - Pituus: + + Line + - Height: - Korkeus: + + Parameter + Parametri - Angle: - Kulma: + + + Width: + Leveys: - Radius: - Säde: + + + Length: + Pituus: - Radius 1: - Säde 1: + + + + + Height: + Korkeus: - Radius 2: - Säde 2: + + + + Angle: + Kulma: - U parametric: - U parametrinen: + + + + + Radius: + Säde: - V parametric: - V parametrinen: + + + + Radius 1: + Säde 1: - &Create - &Luo + + + + Radius 2: + Säde 2: - Alt+C - Alt + C + + + + U parametric: + U parametrinen: - Cl&ose - Sulje + + + + V parametric: + V parametrinen: - Alt+O - Alt + O + + X min/max: + - - Create %1 - Luo %1 + + Y min/max: + - No active document - Ei aktiivista dokumenttia + + Z min/max: + - - Pitch: - Kaltevuus: + + X2 min/max: + - Helix - Kierre + + Z2 min/max: + - 3D View - 3D-näkymä + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Luo + + + Alt+C + Alt + C + + + Cl&ose + Sulje + + + Alt+O + Alt + O + + + + + + Create %1 + Luo %1 + + + + No active document + Ei aktiivista dokumenttia + + + + Pitch: + Kaltevuus: + + + + Helix + Kierre + + + 3D View + 3D-näkymä + + + PartGui::DlgRevolution - - Revolve - Pyöräytä + + Revolve + Pyöräytä - Y: - Y: + + Y: + Y: - X: - x: + + X: + x: - Angle: - Kulma: + + Angle: + Kulma: - Z: - Z: + + Z: + Z: - Axis: - Akseli: + + Axis: + Akseli: - Shape - Muoto + + Shape + Muoto - - Select a shape for revolution, first. - Valitse pyöräytysmuoto. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Valitse pyöräytysmuoto. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Näytä tarkkuus / suorituskyky + + View accuracy / Performance + Näytä tarkkuus / suorituskyky - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Käytetään korkea-laatuisia vakioita + + Using high-quality normals + Käytetään korkea-laatuisia vakioita - This will slow down render speed but will lead to nicer results - Tämä hidastaa renderöinti nopeutta mutta johtaa hienompiin tuloksiin + + This will slow down render speed but will lead to nicer results + Tämä hidastaa renderöinti nopeutta mutta johtaa hienompiin tuloksiin - Defines the appearance of surfaces - Määrittelee pintojen ulkomuodon + + Defines the appearance of surfaces + Määrittelee pintojen ulkomuodon - Shape view - Muoto näkymä + + Shape view + Muoto näkymä - Tessellation - Mosaiikki + + Tessellation + Mosaiikki - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Flat shading / Phong shading</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Kun tasainen varjostus pinta normaalit ei ole määritelty per piste, joka johtaa epätodellinen ulkoasun kaarevien pintojen käytön aikana Phong shading johtaa pehmeämpi ulkonäkö. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Jos tämä vaihtoehto on katkaistu Phong shading käytetään, jos se on asetettu tasainen varjostus on käytetty. </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Flat shading / Phong shading</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Kun tasainen varjostus pinta normaalit ei ole määritelty per piste, joka johtaa epätodellinen ulkoasun kaarevien pintojen käytön aikana Phong shading johtaa pehmeämpi ulkonäkö. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Jos tämä vaihtoehto on katkaistu Phong shading käytetään, jos se on asetettu tasainen varjostus on käytetty. </p></body></html> - Do not define normal per vertex - Älä määrittele normaalia kärkipisteeseen + + Do not define normal per vertex + Älä määrittele normaalia kärkipisteeseen - Defines the deviation of tessellation to the actual surface - Mosaiikin poikkeama määritellään todelliseen pintaan + + Defines the deviation of tessellation to the actual surface + Mosaiikin poikkeama määritellään todelliseen pintaan - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Tessellation</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Määrittää suurin poikkeama mosaiikki silmän pintaan. Pienempi arvo on hitaampi tehdä nopeutta ja mukavampaa ulkoasua.</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Tessellation</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Määrittää suurin poikkeama mosaiikki silmän pintaan. Pienempi arvo on hitaampi tehdä nopeutta ja mukavampaa ulkoasua.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Vihje</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Määrittely normaalit per piste kutsutaan myös <span style=" font-style:italic;">Phong shading</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">samalla kun määritellään normaalien kohti edessä on nimeltään</span> Flat <span style=" font-style:normal;">shading.</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Vihje</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Määrittely normaalit per piste kutsutaan myös <span style=" font-style:italic;">Phong shading</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">samalla kun määritellään normaalien kohti edessä on nimeltään</span> Flat <span style=" font-style:normal;">shading.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Laadukas normaalit</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Tämä hidastaa tehdä nopeasti, mutta johtaa mukavampaa tuloksiin. </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Laadukas normaalit</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Tämä hidastaa tehdä nopeasti, mutta johtaa mukavampaa tuloksiin. </p></body></html> - Maximum deviation depending on the model bounding box - Mallin laatikon maksimi poikkeama + + Maximum deviation depending on the model bounding box + Mallin laatikon maksimi poikkeama - % - % + + % + % - - Deviation - Deviation + + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Yleiset + + General + Yleiset - Export - Vie + + Export + Vie - Millimeter - Millimetri + + Millimeter + Millimetri - Meter - Metri + + Meter + Metri - Inch - Tuuma + + Inch + Tuuma - Units for export of STEP/IGES - Yksiköt STEP / IGES vientiin + + Units for export of STEP/IGES + Yksiköt STEP / IGES vientiin - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Sijainti + + + + 3D View + 3D-näkymä + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Peilaus + + Mirroring + Peilaus - Shapes - Muodot + + Shapes + Muodot - Mirror plane: - Peilaustaso: + + Mirror plane: + Peilaustaso: - XY plane - XY-taso + + XY plane + XY-taso - XZ plane - XZ taso + + XZ plane + XZ taso - YZ plane - YZ taso + + YZ plane + YZ taso - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - Y + + y + Y - z - z + + z + z - - Select a shape for mirroring, first. - Valitse muoto peilausta varten, ensimmäinen. + + Select a shape for mirroring, first. + Valitse muoto peilausta varten, ensimmäinen. - No such document '%1'. - Ei tällaista asiakirjaa ´%1´. + + No such document '%1'. + Ei tällaista asiakirjaa ´%1´. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Väärä valinta + + + + + + Wrong selection + Väärä valinta - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Select two or more faces + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Select two or more faces - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Select adjacent faces + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Select adjacent faces - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Arvo + Value + Arvo - Special - Special + Special + Special - Command - Komento + Command + Komento - Stretch - Stretch + Stretch + Stretch - Move - Move + Move + Move - Rotate - Rotate + Rotate + Rotate - Offset - Offset + Offset + Offset - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Faces: + + Faces: + Faces: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Siirrä oikealle + Move right + Siirrä oikealle - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - Move left - Siirrä vasemmalle + Move left + Siirrä vasemmalle - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - Move up - Siirrä ylös + Move up + Siirrä ylös - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - Move down - Siirrä alas + Move down + Siirrä alas - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - Create solid - Create solid + + Create solid + Create solid - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Luo + + Create + Luo - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Create solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Väärä valinta + + + + + + Wrong selection + Väärä valinta - Select two shapes please. - Valitse kaksi muotoa kiitos. + + + Select two shapes please. + Valitse kaksi muotoa kiitos. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Kaikki CAD-tiedostot (*. STP *. askel *. IGS *. iges *. BRP *. brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Kaikki CAD-tiedostot (*. STP *. askel *. IGS *. iges *. BRP *. brep) - STEP (*.stp *.step) - STEP (*. STP *. vaihe) + + + + STEP (*.stp *.step) + STEP (*. STP *. vaihe) - IGES (*.igs *.iges) - IGES (*. IGS *. iges) + + + + IGES (*.igs *.iges) + IGES (*. IGS *. iges) - BREP (*.brp *.brep) - BREP (*. BRP *. brep) + + + + BREP (*.brp *.brep) + BREP (*. BRP *. brep) - All Files (*.*) - Kaikki tiedostot (*.*) + + + + All Files (*.*) + Kaikki tiedostot (*.*) - - Sewing Tolerance - Kiinnitys toleranssi + + Sewing Tolerance + Kiinnitys toleranssi - Enter tolerance for sewing shape: - Anna toleranssi kiinnitys muodolle: + + Enter tolerance for sewing shape: + Anna toleranssi kiinnitys muodolle: - - Edit mirror plane - Muokkaa peilaustasoa + + Edit mirror plane + Muokkaa peilaustasoa - Transform - muunna + + Edit chamfer edges + - - Part design - Osa suunnittelu + Transform + muunna - - Select two shapes or more, please. - Select two shapes or more, please. + + + Part design + Osa suunnittelu - You have to select either two edges or two wires. - You have to select either two edges or two wires. + + + Select two shapes or more, please. + Select two shapes or more, please. - - Edit fillet edges - Edit fillet edges + + You have to select either two edges or two wires. + You have to select either two edges or two wires. - - Set colors... - Set colors... + + Edit fillet edges + Edit fillet edges - - + + + Set colors... + Set colors... + + + Workbench - - &Part - osa + + &Part + osa - &Simple - Yksinkertainen + + &Simple + Yksinkertainen - &Parametric - &Parametrinen + + &Parametric + &Parametrinen - Part tools - Osa työkalut + + Part tools + Osa työkalut - Solids - Kiinteät + + Solids + Kiinteät - Boolean - Boolean + + Boolean + Boolean - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_fr.ts b/src/Mod/Part/Gui/Resources/translations/Part_fr.ts index 9c39190fb..7860aeb17 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_fr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_fr.ts @@ -1,1872 +1,2520 @@ - - + + BlockDefinition - - Block definition - Définition de bloc + + Block definition + Définition de bloc - First limit - Première limite + + First limit + Première limite - Type: - Type : + + + Type: + Type : - mm - mm + + + mm + mm - Length: - Longueur : + + + Length: + Longueur : - Dimension - Dimension + + + Dimension + Dimension - Up to next - Jusqu'au suivant + + + Up to next + Jusqu'au suivant - Up to last - Jusqu'au dernier + + + Up to last + Jusqu'au dernier - Up to plane - Jusqu'au plan + + + Up to plane + Jusqu'au plan - Up to face - Jusqu'à la face + + + Up to face + Jusqu'à la face - Limit: - Limite : + + + Limit: + Limite : - No selection - Aucune sélection + + + + + No selection + Aucune sélection - Profile - Profil + + Profile + Profil - Selection: - Sélection : + + Selection: + Sélection : - Reverse - Inverser + + Reverse + Inverser - Both sides - Deux directions + + Both sides + Deux directions - Second limit - Deuxième limite + + Second limit + Deuxième limite - Direction - Direction + + Direction + Direction - Perpendicular to sketch - Perpendiculaire à l'esquisse + + Perpendicular to sketch + Perpendiculaire à l'esquisse - Reference - Référence + + Reference + Référence - Apply - Appliquer + + Apply + Appliquer - Cancel - Annuler + + Cancel + Annuler - OK - Valider + + OK + Valider - - + + CmdPartBoolean - - Part - Pièce + + Part + Pièce - Boolean... - Opération booléenne... + + Boolean... + Opération booléenne... - Run a boolean operation with two shapes selected - Exécuter une opération booléenne sur deux formes sélectionnées + + Run a boolean operation with two shapes selected + Exécuter une opération booléenne sur deux formes sélectionnées - - + + CmdPartBox - - Part - Pièce + + Part + Pièce - Box - Boîte + + Box + Boîte - Create a box solid - Créer une boîte solide + + Create a box solid + Créer une boîte solide - - + + CmdPartBox2 - - Part - Pièce + + Part + Pièce - Box fix 1 - Boîte correctif 1 + + Box fix 1 + Boîte correctif 1 - Create a box solid without dialog - Créer une boîte solide sans boîte de dialogue + + Create a box solid without dialog + Créer une boîte solide sans boîte de dialogue - - + + CmdPartBox3 - Part - Pièce + + Part + Pièce - Box fix 2 - Boîte correctif 2 + + Box fix 2 + Boîte correctif 2 - Create a box solid without dialog - Créer une boîte solide sans boîte de dialogue + + Create a box solid without dialog + Créer une boîte solide sans boîte de dialogue - - + + CmdPartBuilder - Part - Pièce + + Part + Pièce - Shape builder... - Générateur de forme... + + Shape builder... + Générateur de forme... - Advanced utility to create shapes - Utilitaire avancé de création de formes + + Advanced utility to create shapes + Utilitaire avancé de création de formes - - + + + CmdPartChamfer + + + Part + Pièce + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Pièce + + Part + Pièce - Intersection - Intersection + + Intersection + Intersection - Make an intersection of two shapes - Exécuter une intersection entre deux formes + + Make an intersection of two shapes + Exécuter une intersection entre deux formes - - + + CmdPartCone - - Part - Pièce + + Part + Pièce - Cone - Cône + + Cone + Cône - Create a cone solid - Créer un solide conique + + Create a cone solid + Créer un solide conique - - + + CmdPartCrossSections - - Part - Pièce + + Part + Pièce - Cross-sections... - Coupes... + + Cross-sections... + Coupes... - Cross-sections - Coupes + + Cross-sections + Coupes - - + + CmdPartCut - Part - Pièce + + Part + Pièce - Cut - Soustraction + + Cut + Soustraction - Make a cut of two shapes - Exécuter une soustraction sur deux formes + + Make a cut of two shapes + Exécuter une soustraction sur deux formes - - + + CmdPartCylinder - - Part - Pièce + + Part + Pièce - Create a Cylinder - Créer un cylindre + + Create a Cylinder + Créer un cylindre - Cylinder - Cylindre + + Cylinder + Cylindre - - + + CmdPartExport - - Part - Pièce + + Part + Pièce - Export CAD... - Exportation CAO... + + Export CAD... + Exportation CAO... - Exports to a CAD file - Exporte vers un fichier dans un format de CAO + + Exports to a CAD file + Exporte vers un fichier dans un format de CAO - - + + CmdPartExtrude - Part - Pièce + + Part + Pièce - Extrude... - Extrusion... + + Extrude... + Extrusion... - Extrude a selected sketch - Extrusion d'une esquisse sélectionnée + + Extrude a selected sketch + Extrusion d'une esquisse sélectionnée - - + + CmdPartFillet - Part - Pièce + + Part + Pièce - Fillet... - Congé... + + Fillet... + Congé... - Fillet the selected edges of a shape - Créer un congé sur les arêtes sélectionnées d'une forme + + Fillet the selected edges of a shape + Créer un congé sur les arêtes sélectionnées d'une forme - - + + CmdPartFuse - Part - Pièce + + Part + Pièce - Union - Union + + Union + Union - Make a union of several shapes - Exécuter l'union de plusieurs formes + + Make a union of several shapes + Exécuter l'union de plusieurs formes - - + + CmdPartImport - Part - Pièce + + Part + Pièce - Imports a CAD file - Importe un fichier CAO + + Imports a CAD file + Importe un fichier CAO - Import CAD... - Importation CAO... + + Import CAD... + Importation CAO... - - + + CmdPartImportCurveNet - Part - Pièce + + Part + Pièce - Import a curve network - Importer un réseau de courbes + + Import a curve network + Importer un réseau de courbes - Import curve network... - Importer réseau de courbes... + + Import curve network... + Importer réseau de courbes... - - + + CmdPartLoft - Part - Pièce + + Part + Pièce - Loft... - Lissage... + + Loft... + Lissage... - Advanced utility to lofts - Utilitaire avancé de lissages + + Utility to loft + - - + + Advanced utility to lofts + Utilitaire avancé de lissages + + + CmdPartMakeSolid - Part - Pièce + + Part + Pièce - Convert to solid - Convertir en solide + + Convert to solid + Convertir en solide - Create solid from a shell or compound - Créer un solide à partir d'une coque ou d'un composé + + Create solid from a shell or compound + Créer un solide à partir d'une coque ou d'un composé - - + + CmdPartMirror - Part - Pièce + + Part + Pièce - Mirroring... - Mise en miroir... + + Mirroring... + Mise en miroir... - Mirroring a selected shape - Mise en miroir de la forme sélectionnée + + Mirroring a selected shape + Mise en miroir de la forme sélectionnée - - + + CmdPartPickCurveNet - Part - Pièce + + Part + Pièce - Pick curve network - Choisir un réseau de courbes + + Pick curve network + Choisir un réseau de courbes - Pick a curve network - Choisir un réseau de courbes + + Pick a curve network + Choisir un réseau de courbes - - + + CmdPartPrimitives - Part - Pièce + + Part + Pièce - Create primitives... - Créer des primitives... + + Create primitives... + Créer des primitives... - Creation of parametrized geometric primitives - Création de primitives géométriques paramétrées + + Creation of parametrized geometric primitives + Création de primitives géométriques paramétrées - - + + + CmdPartRefineShape + + + Part + Pièce + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Pièce + + Part + Pièce - Reverse shapes - Formes inversées + + Reverse shapes + Formes inversées - Reverse orientation of shapes - Inverser l'orientation des formes + + Reverse orientation of shapes + Inverser l'orientation des formes - - + + CmdPartRevolve - Part - Pièce + + Part + Pièce - Revolve... - Révolution... + + Revolve... + Révolution... - Revolve a selected shape - Révolutionner une forme sélectionnée + + Revolve a selected shape + Révolutionner une forme sélectionnée - - + + CmdPartRuledSurface - Part - Pièce + + Part + Pièce - Create ruled surface - Créer une surface réglée + + Create ruled surface + Créer une surface réglée - Create a ruled surface from two curves - Créer une surface réglée à partir de deux courbes + + Create a ruled surface from two curves + Créer une surface réglée à partir de deux courbes - - + + CmdPartSection - Make a section of two shapes - Faire une section de deux formes + + Make a section of two shapes + Faire une section de deux formes - Part - Pièce + + Part + Pièce - Section - Section + + Section + Section - - + + CmdPartShapeFromMesh - - Part - Pièce + + Part + Pièce - Create shape from mesh... - Créer la forme à partir d'un maillage... + + Create shape from mesh... + Créer la forme à partir d'un maillage... - Create shape from selected mesh object - Créer une forme à partir du maillage sélectionné + + Create shape from selected mesh object + Créer une forme à partir du maillage sélectionné - - + + CmdPartSimpleCopy - Part - Pièce + + Part + Pièce - Create simple copy - Créer une copie simple + + Create simple copy + Créer une copie simple - Create a simple non-parametric copy - Créer une copie simple non-paramétrique + + Create a simple non-parametric copy + Créer une copie simple non-paramétrique - - + + CmdPartSimpleCylinder - Part - Pièce + + Part + Pièce - Create Cylinder... - Créer un cylindre... + + Create Cylinder... + Créer un cylindre... - Create a Cylinder - Créer un cylindre + + Create a Cylinder + Créer un cylindre - - + + CmdPartSphere - - Create a sphere solid - Créer un solide sphérique + + Create a sphere solid + Créer un solide sphérique - Part - Pièce + + Part + Pièce - Sphere - Sphère + + Sphere + Sphère - - + + + CmdPartSweep + + + Part + Pièce + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Créer un solide toroïdal + + Create a torus solid + Créer un solide toroïdal - Part - Pièce + + Part + Pièce - Torus - Tore + + Torus + Tore - - + + DlgExtrusion - Select a shape for extrusion, first. - Sélectionnez d'abord une forme pour l'extrusion. + Select a shape for extrusion, first. + Sélectionnez d'abord une forme pour l'extrusion. - The document '%1' doesn't exist. - Document « %1 » inexistant. + The document '%1' doesn't exist. + Document « %1 » inexistant. - - + + DlgRevolution - Select a shape for revolution, first. - Sélectionnez d'abord une forme à révolutionner. + Select a shape for revolution, first. + Sélectionnez d'abord une forme à révolutionner. - - + + DlgSettings3DViewPart - Deviation - Déviation + Deviation + Déviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Définir une déviation de tessellation trop faible peut ralentir ou geler l'interface. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Définir une déviation de tessellation trop faible peut ralentir ou geler l'interface. - - + + PartGui::CrossSections - - Cross sections - Coupes + + Cross sections + Coupes - Guiding plane - Plan directeur + + Guiding plane + Plan directeur - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Position : + + Position: + Position : - Sections - Sections + + Sections + Sections - On both sides - Des deux côtés + + On both sides + Des deux côtés - Count - Nombre + + Count + Nombre - Distance: - Distance : + + Distance: + Distance : - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Opération booléenne + + Boolean Operation + Opération booléenne - Second shape - Deuxième forme + + Second shape + Deuxième forme - First shape - Première forme + + First shape + Première forme - Boolean operation - Opération booléenne + + Boolean operation + Opération booléenne - Section - Section + + Section + Section - Difference - Différence + + Difference + Différence - Union - Union + + Union + Union - Intersection - Intersection + + Intersection + Intersection - - Cannot perform a boolean operation with the same shape - Impossible d'effectuer une opération booléenne sur une seule forme + + Cannot perform a boolean operation with the same shape + Impossible d'effectuer une opération booléenne sur une seule forme - - Solids - Solides + + + Solids + Solides - Shells - Coques + + + Shells + Coques - Compounds - Composés + + + Compounds + Composés - Faces - Faces + + + Faces + Faces - Swap selection - Changement de sélection + + Swap selection + Changement de sélection - - Select a shape on the left side, first - Sélectionner d'abord une forme sur le côté gauche + + Select a shape on the left side, first + Sélectionner d'abord une forme sur le côté gauche - Select a shape on the right side, first - Sélectionner d'abord une forme sur le côté droit + + Select a shape on the right side, first + Sélectionner d'abord une forme sur le côté droit - No active document available - Aucun document actif disponible + + No active document available + Aucun document actif disponible - One of the selected objects doesn't exist anymore - Un des objets sélectionnés n'existe plus + + One of the selected objects doesn't exist anymore + Un des objets sélectionnés n'existe plus - Performing union on non-solids is not possible - L'union de formes non-solides n'est pas possible + + Performing union on non-solids is not possible + L'union de formes non-solides n'est pas possible - Performing intersection on non-solids is not possible - L'intersection de formes non-solides n'est pas possible + + Performing intersection on non-solids is not possible + L'intersection de formes non-solides n'est pas possible - Performing difference on non-solids is not possible - La soustraction de formes non-solides n'est pas possible + + Performing difference on non-solids is not possible + La soustraction de formes non-solides n'est pas possible - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extruder + + Extrude + Extruder - Direction - Direction + + Direction + Direction - Along normal - Le long de la normale + + Along normal + Le long de la normale - Length: - Longueur : + + Length: + Longueur : - 3D view - Vue 3D + + 3D view + Vue 3D - Note:This option works for planes only - Remarque : cette option ne fonctionne que pour les plans + + Note:This option works for planes only + Remarque : cette option ne fonctionne que pour les plans - Shape - Forme + + Create solid + Créer le solide - - + + Taper outward angle + - X: - X : + + Shape + Forme - Z: - Z : + + - Y: - Y : + + X: + X : - - Select a shape for extrusion, first. - Sélectionnez d'abord une forme pour l'extrusion. + + Z: + Z : - The document '%1' doesn't exist. - Document « %1 » inexistant. + + Y: + Y : - - + + + Select a shape for extrusion, first. + Sélectionnez d'abord une forme pour l'extrusion. + + + + The document '%1' doesn't exist. + Document « %1 » inexistant. + + + PartGui::DlgFilletEdges - - Fillet Edges - Congés des arêtes + + Fillet Edges + Congés des arêtes - Fillet Parameter - Paramètres de congé + + Fillet Parameter + Paramètres de congé - Radius: - Rayon : + + Radius: + Rayon : - Fillet type: - Type de congé : + + Fillet type: + Type de congé : - Constant Radius - Rayon constant + + Constant Radius + Rayon constant - Variable Radius - Rayon variable + + Variable Radius + Rayon variable - Shape - Forme + + Shape + Forme - Selected shape: - Forme sélectionnée : + + Selected shape: + Forme sélectionnée : - No selection - Aucune sélection + + No selection + Aucune sélection - - Edges to fillet - Congé sur arêtes + + Edges to fillet + Congé sur arêtes - Start radius - Rayon initial + + + Start radius + Rayon initial - End radius - Rayon final + + End radius + Rayon final - Radius - Rayon + + Radius + Rayon - No edge selected - Aucune arête sélectionnée + + No edge selected + Aucune arête sélectionnée - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Aucune arête n'est sélectionnée pour le congé. Veuillez d'abord cocher une ou plusieurs arêtes. + Aucune arête n'est sélectionnée pour le congé. Veuillez d'abord cocher une ou plusieurs arêtes. - - All - Tous + + All + Tous - None - Aucun + + None + Aucun - - Edge%1 - Arête%1 + + + Edge%1 + Arête%1 - No shape selected - Aucune forme sélectionnée + + No shape selected + Aucune forme sélectionnée - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Aucune forme valide n'est sélectionnée. Veuillez sélectionner d'abord une forme valide dans le menu déroulant. + Aucune forme valide n'est sélectionnée. Veuillez sélectionner d'abord une forme valide dans le menu déroulant. - - + + PartGui::DlgPartBox - - Box definition - Définition de boîte + + Box definition + Définition de boîte - X: - X : + + X: + X : - Z: - Z : + + Z: + Z : - Y: - Y : + + Y: + Y : - Cancel - Annuler + + Cancel + Annuler - OK - Valider + + OK + Valider - Size: - Taille : + + Size: + Taille : - Height: - Hauteur : + + Height: + Hauteur : - Width: - Largeur : + + Width: + Largeur : - Length: - Longueur : + + Length: + Longueur : - Position: - Position : + + Position: + Position : - Direction: - Direction : + + Direction: + Direction : - - + + PartGui::DlgPartCylinder - - Cylinder definition - Définition du cylindre + + Cylinder definition + Définition du cylindre - Parameter - Paramètre + + Parameter + Paramètre - Height: - Hauteur : + + Height: + Hauteur : - Radius: - Rayon : + + Radius: + Rayon : - Position: - Position : + + Position: + Position : - Direction: - Direction : + + Direction: + Direction : - X: - X : + + X: + X : - Z: - Z : + + Z: + Z : - Y: - Y : + + Y: + Y : - OK - Valider + + OK + Valider - Cancel - Annuler + + Cancel + Annuler - - + + PartGui::DlgPartImportIges - - IGES input file - Fichier d'entrée IGES + + IGES input file + Fichier d'entrée IGES - ... - ... + + ... + ... - Cancel - Annuler + + Cancel + Annuler - OK - Valider + + OK + Valider - File Name - Nom du fichier + + File Name + Nom du fichier - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.IGES);; Tous les fichiers (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.IGES);; Tous les fichiers (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Annuler + + Cancel + Annuler - OK - Valider + + OK + Valider - Step input file - Fichier d'entrée STEP + + Step input file + Fichier d'entrée STEP - File Name - Nom du fichier + + File Name + Nom du fichier - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);; Tous les fichiers (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);; Tous les fichiers (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Primitives géométriques + + Geometric Primitives + Primitives géométriques - Primitive - Primitive + Primitive + Primitive - X min - X min + X min + X min - x max - X max + x max + X max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 pour cyl. + Angle - 0 for cyl + Angle - 0 pour cyl. - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - Valeur d'axe X : + X Axis Value: + Valeur d'axe X : - Y Axis Value: - Valeur d'axe Y : + Y Axis Value: + Valeur d'axe Y : - Z Axis Value: - Valeur d'axe Z : + Z Axis Value: + Valeur d'axe Z : - Wedge - Prisme + + Wedge + Prisme - Circle - Cercle + + Circle + Cercle - Vertex - Sommet + Vertex + Sommet - Position - Position + Position + Position - Z: - Z : + + + + Z: + Z : - X: - X : + + + + X: + X : - Direction: - Direction : + Direction: + Direction : - Y: - Y : + + + + Y: + Y : - Plane - Plan + + Plane + Plan - Box - Boîte + + Box + Boîte - Cylinder - Cylindre + + Cylinder + Cylindre - Cone - Cône + + Cone + Cône - Sphere - Sphère + + Sphere + Sphère - Ellipsoid - Ellipsoïde + + Ellipsoid + Ellipsoïde - Torus - Tore + + Torus + Tore - Parameter - Paramètre + + Ellipse + - Width: - Largeur : + + Point + - Length: - Longueur : + + Line + - Height: - Hauteur : + + Parameter + Paramètre - Angle: - Angle : + + + Width: + Largeur : - Radius: - Rayon : + + + Length: + Longueur : - Radius 1: - Rayon 1 : + + + + + Height: + Hauteur : - Radius 2: - Rayon 2 : + + + + Angle: + Angle : - U parametric: - U paramétrique : + + + + + Radius: + Rayon : - V parametric: - V paramétrique : + + + + Radius 1: + Rayon 1 : - &Create - &Créer + + + + Radius 2: + Rayon 2 : - Alt+C - Alt + C + + + + U parametric: + U paramétrique : - Cl&ose - Fer&mer + + + + V parametric: + V paramétrique : - Alt+O - Alt + O + + X min/max: + - - Create %1 - Créer %1 + + Y min/max: + - No active document - Aucun document actif + + Z min/max: + - - Pitch: - Axe de tangage : + + X2 min/max: + - Helix - Hélice + + Z2 min/max: + - 3D View - Vue 3D + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Créer + + + Alt+C + Alt + C + + + Cl&ose + Fer&mer + + + Alt+O + Alt + O + + + + + + Create %1 + Créer %1 + + + + No active document + Aucun document actif + + + + Pitch: + Axe de tangage : + + + + Helix + Hélice + + + 3D View + Vue 3D + + + PartGui::DlgRevolution - - Revolve - Révolution + + Revolve + Révolution - Y: - Y : + + Y: + Y : - X: - X : + + X: + X : - Angle: - Angle : + + Angle: + Angle : - Z: - Z : + + Z: + Z : - Axis: - Axe : + + Axis: + Axe : - Shape - Forme + + Shape + Forme - - Select a shape for revolution, first. - Sélectionnez d'abord une forme à révolutionner. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Sélectionnez d'abord une forme à révolutionner. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Précision d'affichage / performance + + View accuracy / Performance + Précision d'affichage / performance - View smoothing - Lissage de la vue + + View smoothing + Lissage de la vue - Using high-quality normals - Utiliser normales de haute qualité + + Using high-quality normals + Utiliser normales de haute qualité - This will slow down render speed but will lead to nicer results - Ceci ralentira la vitesse de rendu, mais donnera de meilleurs résultats + + This will slow down render speed but will lead to nicer results + Ceci ralentira la vitesse de rendu, mais donnera de meilleurs résultats - Defines the appearance of surfaces - Définit l'apparence des surfaces + + Defines the appearance of surfaces + Définit l'apparence des surfaces - Shape view - Vue de la forme + + Shape view + Vue de la forme - Tessellation - Tessellation + + Tessellation + Tessellation - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Ombrage plat/Ombrage Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Avec l'ombrage plat, les normales à la surface ne sont pas définies par vertex, ce qui conduit à une apparence irréelle pour les surfaces courbes, alors que l'ombrage Phong produit une apparence plus lissée. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Si l'option n'est pas sélectionnée, l'ombrage Phong est utilisé. Sinon, l'ombrage plat sera utilisé.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Ombrage plat/Ombrage Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Avec l'ombrage plat, les normales à la surface ne sont pas définies par vertex, ce qui conduit à une apparence irréelle pour les surfaces courbes, alors que l'ombrage Phong produit une apparence plus lissée. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Si l'option n'est pas sélectionnée, l'ombrage Phong est utilisé. Sinon, l'ombrage plat sera utilisé.</p></body></html> - Do not define normal per vertex - Ne pas définir les normales par vertex + + Do not define normal per vertex + Ne pas définir les normales par vertex - Defines the deviation of tessellation to the actual surface - Définit la déviation de tessellation à la surface réelle + + Defines the deviation of tessellation to the actual surface + Définit la déviation de tessellation à la surface réelle - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Tessellation</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Définit la déviation maximum de la structure en tessellation par rapport à la surface. Plus la valeur est petite, plus la vitesse de rendu est lente et le rendu lissé.</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Tessellation</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Définit la déviation maximum de la structure en tessellation par rapport à la surface. Plus la valeur est petite, plus la vitesse de rendu est lente et le rendu lissé.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Remarque</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Définir les normales par vertex est aussi appelé <span style=" font-style:italic;">ombrage Phong</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">alors que définir les normales par face est appelé </span>ombrage plat<span style=" font-style:normal;">.</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">Remarque</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> Définir les normales par vertex est aussi appelé <span style=" font-style:italic;">ombrage Phong</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">alors que définir les normales par face est appelé </span>ombrage plat<span style=" font-style:normal;">.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normales de haute qualité</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Cela ralentit la vitesse de rendu, mais produit de meilleurs résultats.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normales de haute qualité</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Cela ralentit la vitesse de rendu, mais produit de meilleurs résultats.</p></body></html> - Maximum deviation depending on the model bounding box - L'écart maximal suivant la boîte englobant le modèle + + Maximum deviation depending on the model bounding box + L'écart maximal suivant la boîte englobant le modèle - % - % + + % + % - - Deviation - Déviation + + Deviation + Déviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Définir une déviation de tessellation trop faible peut ralentir ou geler l'interface. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Définir une déviation de tessellation trop faible peut ralentir ou geler l'interface. - - + + PartGui::DlgSettingsGeneral - - General - Général + + General + Général - Export - Exporter + + Export + Exporter - Millimeter - Millimètre + + Millimeter + Millimètre - Meter - Mètre + + Meter + Mètre - Inch - Pouce + + Inch + Pouce - Units for export of STEP/IGES - Unités pour l'exportation de STEP / IGES + + Units for export of STEP/IGES + Unités pour l'exportation de STEP / IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Position + + + + 3D View + Vue 3D + + + PartGui::LoftWidget - - Too few elements - Trop peu d'éléments + + + Vertex/Wire + Sommet/Fil - At least two vertices or wires are required. - Au moins deux sommets ou fils sont nécessaires. + + + Loft + Lissage - - + + + Too few elements + Trop peu d'éléments + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Au moins deux sommets ou fils sont nécessaires. + + + PartGui::Mirroring - - Mirroring - Mise en miroir + + Mirroring + Mise en miroir - Shapes - Formes + + Shapes + Formes - Mirror plane: - Plan miroir : + + Mirror plane: + Plan miroir : - XY plane - Plan XY + + XY plane + Plan XY - XZ plane - Plan XZ + + XZ plane + Plan XZ - YZ plane - Plan YZ + + YZ plane + Plan YZ - Base point: - Point de départ : + + Base point: + Point de départ : - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Sélectionner d'abord une forme à mettre en miroir. + + Select a shape for mirroring, first. + Sélectionner d'abord une forme à mettre en miroir. - No such document '%1'. - Aucun document '%1'. + + No such document '%1'. + Aucun document '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Sélection invalide + + + + + + Wrong selection + Sélection invalide - Select two vertices - Sélectionnez deux sommets + + + Select two vertices + Sélectionnez deux sommets - Select three or more edges - Sélectionnez au moins trois arêtes + Select three or more edges + Sélectionnez au moins trois arêtes - Select two or more faces - Sélectionnez au moins deux faces + + Select one or more edges + - Select only one part object - Sélectionnez seulement un objet pièce + + Select two or more faces + Sélectionnez au moins deux faces - Select two vertices to create an edge - Sélectionner deux sommets pour créer une arête + + Select only one part object + Sélectionnez seulement un objet pièce - Select a closed set of edges - Sélectionner un ensemble fermé d'arêtes + + Select two vertices to create an edge + Sélectionner deux sommets pour créer une arête - Select adjacent faces - Sélectionner les faces adjacentes + + Select a closed set of edges + Sélectionner un ensemble fermé d'arêtes - All shape types can be selected - Tous les types de forme peuvent être sélectionnés + + Select adjacent faces + Sélectionner les faces adjacentes - - + + + All shape types can be selected + Tous les types de forme peuvent être sélectionnés + + + + PartGui::SweepWidget + + + + Vertex/Wire + Sommet/Fil + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Trop peu d'éléments + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Truc + Hint + Truc - Select Control. - Sélectionnez un contrôle. + Select Control. + Sélectionnez un contrôle. - Control - Contrôle + Control + Contrôle - Dynamic - Dynamique + Dynamic + Dynamique - Align - Aligner + Align + Aligner - Value - Valeur + Value + Valeur - Special - Spécial + Special + Spécial - Command - Commande + Command + Commande - Stretch - Étirer + Stretch + Étirer - Move - Déplacer + Move + Déplacer - Rotate - Pivoter + Rotate + Pivoter - Offset - Décalage + Offset + Décalage - Orient - Orienter + Orient + Orienter - Match - Faire correspondre + Match + Faire correspondre - Surround - Environnant + Surround + Environnant - dummy - factice + dummy + factice - X Axis - Axe X + X Axis + Axe X - Y Axis - Axe Y + Y Axis + Axe Y - Z Axis - Axe Z + Z Axis + Axe Z - Increment - Incrément + Increment + Incrément - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Faites glisser les flèches pour étirer la boîte par incrément + Drag arrows to stretch box by increment + Faites glisser les flèches pour étirer la boîte par incrément - Drag arrows to move box by increment - Faites glisser les flèches pour déplacer la boîte par incrément + Drag arrows to move box by increment + Faites glisser les flèches pour déplacer la boîte par incrément - Not implemented yet - Pas encore implémenté + Not implemented yet + Pas encore implémenté - Drag arrows to offset checked axes by increment - Faites glisser les flèches pour déplacer les axes marqués par incrément + Drag arrows to offset checked axes by increment + Faites glisser les flèches pour déplacer les axes marqués par incrément - Select dragger for stretch by align - Sélectionnez un marqueur pour étirer par alignement + Select dragger for stretch by align + Sélectionnez un marqueur pour étirer par alignement - Select dragger for move by align - Sélectionnez un marqueur pour déplacer para alignement + Select dragger for move by align + Sélectionnez un marqueur pour déplacer para alignement - Select dragger for stretch by value - Sélectionnez le marqueur pour étirer par valeur + Select dragger for stretch by value + Sélectionnez le marqueur pour étirer par valeur - Select dragger for move by value - Sélectionnez un marqueur pour déplacer par valeur + Select dragger for move by value + Sélectionnez un marqueur pour déplacer par valeur - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Entrez une valeur + Enter Value + Entrez une valeur - Select box to match - Sélectionnez une boîte à faire correspondre + Select box to match + Sélectionnez une boîte à faire correspondre - Select a point - Sélectionnez un point + Select a point + Sélectionnez un point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Sélectionnez un marqueur pour aligner + Select dragger to align + Sélectionnez un marqueur pour aligner - Select dragger to modify - Sélectionnez un marqueur pour modifier + Select dragger to modify + Sélectionnez un marqueur pour modifier - - + + PartGui::TaskFaceColors - - Set color per face - Définir la couleur des faces + + Set color per face + Définir la couleur des faces - Click on the faces in the 3d view to select them. - Cliquer sur les faces dans la vue 3D pour les sélectionner. + + Click on the faces in the 3d view to select them. + Cliquer sur les faces dans la vue 3D pour les sélectionner. - Faces: - Faces : + + Faces: + Faces : - Set to default - Définir par défaut + + Set to default + Définir par défaut - - + + PartGui::TaskLoft - - Loft - Lissage + + Loft + Lissage - Vertex/Wire - Sommet/Fil + Vertex/Wire + Sommet/Fil - Move right - Déplacer vers la droite + Move right + Déplacer vers la droite - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Descendre l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Descendre l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> - Move left - Déplacer vers la gauche + Move left + Déplacer vers la gauche - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Monter l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Monter l'élément sélectionné d'un niveau.</b><p>Cela changera aussi le niveau de l'élément parent.</p> - Move up - Déplacer vers le haut + Move up + Déplacer vers le haut - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Monter l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Monter l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> - Move down - Déplacer vers le bas + Move down + Déplacer vers le bas - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Descendre l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Descendre l'élément sélectionné d'un niveau.</b><p>L'élément sera déplacé au sein du niveau de hiérarchie.</p> - Create solid - Créer le solide + + Create solid + Créer le solide - Ruled surface - Surface réglée + + Ruled surface + Surface réglée - - + + PartGui::TaskShapeBuilder - - Create shape - Créer la forme + + + Create shape + Créer la forme - Edge from vertices - Arête à partir de sommets + + Edge from vertices + Arête à partir de sommets - Face from edges - Face à partir d'arêtes + + Face from edges + Face à partir d'arêtes - Planar - Planaire + + Planar + Planaire - Shell from faces - Coque à partir de faces + + Shell from faces + Coque à partir de faces - Solid from shell - Solide depuis une coque + + Solid from shell + Solide depuis une coque - Create - Créer + + Create + Créer - All faces - Toutes les faces + + All faces + Toutes les faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Créer le solide + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Sélection invalide + + + + + + Wrong selection + Sélection invalide - Select two shapes please. - Veuillez sélectionner deux formes. + + + Select two shapes please. + Veuillez sélectionner deux formes. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Tous les fichiers CAO (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Tous les fichiers CAO (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp * .step) + + + + STEP (*.stp *.step) + STEP (*.stp * .step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Tous les fichiers (*.*) + + + + All Files (*.*) + Tous les fichiers (*.*) - - Sewing Tolerance - Tolérance de couture + + Sewing Tolerance + Tolérance de couture - Enter tolerance for sewing shape: - Saisir la tolérance pour coudre la forme : + + Enter tolerance for sewing shape: + Saisir la tolérance pour coudre la forme : - - Edit mirror plane - Éditer le plan du miroir + + Edit mirror plane + Éditer le plan du miroir - Transform - Transformer + + Edit chamfer edges + - - Part design - Conception de pièces + Transform + Transformer - - Select two shapes or more, please. - Veuillez sélectionner au moins deux formes. + + + Part design + Conception de pièces - You have to select either two edges or two wires. - Vous devez sélectionner deux arêtes ou deux fils. + + + Select two shapes or more, please. + Veuillez sélectionner au moins deux formes. - - Edit fillet edges - Modifier les congés d'arête + + You have to select either two edges or two wires. + Vous devez sélectionner deux arêtes ou deux fils. - - Set colors... - Définir les couleurs... + + Edit fillet edges + Modifier les congés d'arête - - + + + Set colors... + Définir les couleurs... + + + Workbench - - &Part - &Pièce + + &Part + &Pièce - &Simple - &Simple + + &Simple + &Simple - &Parametric - &Paramétrique + + &Parametric + &Paramétrique - Part tools - Outils de pièces + + Part tools + Outils de pièces - Solids - Solides + + Solids + Solides - Boolean - Booléen + + Boolean + Booléen - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_hr.ts b/src/Mod/Part/Gui/Resources/translations/Part_hr.ts index d1a049330..c15cd8a11 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_hr.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_hr.ts @@ -1,1872 +1,2520 @@ - - + + BlockDefinition - - Block definition - Definicija bloka + + Block definition + Definicija bloka - First limit - Prva granica + + First limit + Prva granica - Type: - Vrsta: + + + Type: + Vrsta: - mm - mm + + + mm + mm - Length: - Duljina: + + + Length: + Duljina: - Dimension - Dimenzija + + + Dimension + Dimenzija - Up to next - Do sljedećeg + + + Up to next + Do sljedećeg - Up to last - Do posljednjeg + + + Up to last + Do posljednjeg - Up to plane - Do plohe + + + Up to plane + Do plohe - Up to face - Do stranice + + + Up to face + Do stranice - Limit: - Granica: + + + Limit: + Granica: - No selection - Bez izbora + + + + + No selection + Bez izbora - Profile - Profil + + Profile + Profil - Selection: - Odabrano: + + Selection: + Odabrano: - Reverse - Obrnuto + + Reverse + Obrnuto - Both sides - Obje strane + + Both sides + Obje strane - Second limit - Druga granica + + Second limit + Druga granica - Direction - Smjer + + Direction + Smjer - Perpendicular to sketch - Okomito na skicu + + Perpendicular to sketch + Okomito na skicu - Reference - Referenca + + Reference + Referenca - Apply - Primijeni + + Apply + Primijeni - Cancel - Otkaži + + Cancel + Otkaži - OK - U redu + + OK + U redu - - + + CmdPartBoolean - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Boolean... - Booleova ... + + Boolean... + Booleova ... - Run a boolean operation with two shapes selected - IzvrÅ¡i booleovu operaciju sa odabrana dva oblika + + Run a boolean operation with two shapes selected + IzvrÅ¡i booleovu operaciju sa odabrana dva oblika - - + + CmdPartBox - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Box - Kutija + + Box + Kutija - Create a box solid - Napravi kvadar + + Create a box solid + Napravi kvadar - - + + CmdPartBox2 - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Box fix 1 - Blok popravak 1 + + Box fix 1 + Blok popravak 1 - Create a box solid without dialog - Napravi kvadar bez dijaloga + + Create a box solid without dialog + Napravi kvadar bez dijaloga - - + + CmdPartBox3 - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Box fix 2 - Blok popravak 2 + + Box fix 2 + Blok popravak 2 - Create a box solid without dialog - Napravi kvadar bez dijaloga + + Create a box solid without dialog + Napravi kvadar bez dijaloga - - + + CmdPartBuilder - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Shape builder... - Graditelj oblika ... + + Shape builder... + Graditelj oblika ... - Advanced utility to create shapes - Napredni alat za izradu oblika + + Advanced utility to create shapes + Napredni alat za izradu oblika - - + + + CmdPartChamfer + + + Part + Geometrijsko tijelo + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Intersection - Presjek + + Intersection + Presjek - Make an intersection of two shapes - Napravite presjek dva oblika + + Make an intersection of two shapes + Napravite presjek dva oblika - - + + CmdPartCone - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Cone - Stožac + + Cone + Stožac - Create a cone solid - Napravi stožasto tijelo + + Create a cone solid + Napravi stožasto tijelo - - + + CmdPartCrossSections - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Cross-sections... - Presjeci... + + Cross-sections... + Presjeci... - Cross-sections - Presjeci + + Cross-sections + Presjeci - - + + CmdPartCut - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Cut - IsjeÄak + + Cut + IsjeÄak - Make a cut of two shapes - Napravi izrez dva oblika + + Make a cut of two shapes + Napravi izrez dva oblika - - + + CmdPartCylinder - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create a Cylinder - Napravi Cilindar + + Create a Cylinder + Napravi Cilindar - Cylinder - Cilindar + + Cylinder + Cilindar - - + + CmdPartExport - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Export CAD... - Izvezi CAD ... + + Export CAD... + Izvezi CAD ... - Exports to a CAD file - Izvoz u CAD datoteku + + Exports to a CAD file + Izvoz u CAD datoteku - - + + CmdPartExtrude - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Extrude... - Izvuci ... + + Extrude... + Izvuci ... - Extrude a selected sketch - Izvuci odabranu skicu + + Extrude a selected sketch + Izvuci odabranu skicu - - + + CmdPartFillet - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Fillet... - Zaobli ... + + Fillet... + Zaobli ... - Fillet the selected edges of a shape - Zaobli odabrane rubove oblika + + Fillet the selected edges of a shape + Zaobli odabrane rubove oblika - - + + CmdPartFuse - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Union - Unija + + Union + Unija - Make a union of several shapes - Napravi uniju nekoliko oblika + + Make a union of several shapes + Napravi uniju nekoliko oblika - - + + CmdPartImport - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Imports a CAD file - UÄitaj CAD datoteku + + Imports a CAD file + UÄitaj CAD datoteku - Import CAD... - UÄitaj CAD ... + + Import CAD... + UÄitaj CAD ... - - + + CmdPartImportCurveNet - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Import a curve network - Uvoz krivulje mreže + + Import a curve network + Uvoz krivulje mreže - Import curve network... - Uvoz krivulje mreže... + + Import curve network... + Uvoz krivulje mreže... - - + + CmdPartLoft - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Loft... - Tuba... + + Loft... + Tuba... - Advanced utility to lofts - Napredni alati za tube + + Utility to loft + - - + + Advanced utility to lofts + Napredni alati za tube + + + CmdPartMakeSolid - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Convert to solid - Pretvori u Ävrsto tijelo + + Convert to solid + Pretvori u Ävrsto tijelo - Create solid from a shell or compound - Napravi tijelo tijela iz ljuske ili skupine + + Create solid from a shell or compound + Napravi tijelo tijela iz ljuske ili skupine - - + + CmdPartMirror - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Mirroring... - Zrcaljenje ... + + Mirroring... + Zrcaljenje ... - Mirroring a selected shape - Zrcaljenje odabranog oblika + + Mirroring a selected shape + Zrcaljenje odabranog oblika - - + + CmdPartPickCurveNet - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Pick curve network - Odaberite krivulju mreža + + Pick curve network + Odaberite krivulju mreža - Pick a curve network - Odaberite krivulju mreža + + Pick a curve network + Odaberite krivulju mreža - - + + CmdPartPrimitives - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create primitives... - Napravi primitive ... + + Create primitives... + Napravi primitive ... - Creation of parametrized geometric primitives - Stvaranje parametriziranih geometrijskih primitiva + + Creation of parametrized geometric primitives + Stvaranje parametriziranih geometrijskih primitiva - - + + + CmdPartRefineShape + + + Part + Geometrijsko tijelo + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Reverse shapes - Zamijeni oblike + + Reverse shapes + Zamijeni oblike - Reverse orientation of shapes - Obrnutia orijentacija oblika + + Reverse orientation of shapes + Obrnutia orijentacija oblika - - + + CmdPartRevolve - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Revolve... - Oblik generiran okretanjem ... + + Revolve... + Oblik generiran okretanjem ... - Revolve a selected shape - Generiraj oblik okretanjem + + Revolve a selected shape + Generiraj oblik okretanjem - - + + CmdPartRuledSurface - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create ruled surface - Napravi glavnu povrÅ¡inu + + Create ruled surface + Napravi glavnu povrÅ¡inu - Create a ruled surface from two curves - Napravi glavnu povrÅ¡inu od dvije krivulje + + Create a ruled surface from two curves + Napravi glavnu povrÅ¡inu od dvije krivulje - - + + CmdPartSection - Make a section of two shapes - Napravi sekciju dva oblika + + Make a section of two shapes + Napravi sekciju dva oblika - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Section - OdsjeÄak + + Section + OdsjeÄak - - + + CmdPartShapeFromMesh - - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create shape from mesh... - Napravi oblik iz mreže ... + + Create shape from mesh... + Napravi oblik iz mreže ... - Create shape from selected mesh object - Napravi oblik iz odabranog MESHa + + Create shape from selected mesh object + Napravi oblik iz odabranog MESHa - - + + CmdPartSimpleCopy - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create simple copy - Napravite jednostavnu kopiju + + Create simple copy + Napravite jednostavnu kopiju - Create a simple non-parametric copy - Napravite jednostavnu neparametarsku kopiju + + Create a simple non-parametric copy + Napravite jednostavnu neparametarsku kopiju - - + + CmdPartSimpleCylinder - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Create Cylinder... - Napravi Cilindar ... + + Create Cylinder... + Napravi Cilindar ... - Create a Cylinder - Napravi Cilindar + + Create a Cylinder + Napravi Cilindar - - + + CmdPartSphere - - Create a sphere solid - Napravi sferu + + Create a sphere solid + Napravi sferu - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Sphere - Kugla + + Sphere + Kugla - - + + + CmdPartSweep + + + Part + Geometrijsko tijelo + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Napravi okruglo ispupÄenje na stubu + + Create a torus solid + Napravi okruglo ispupÄenje na stubu - Part - Geometrijsko tijelo + + Part + Geometrijsko tijelo - Torus - Zavojnica + + Torus + Zavojnica - - + + DlgExtrusion - Select a shape for extrusion, first. - Prvo odaberite oblik za ekstruziju. + Select a shape for extrusion, first. + Prvo odaberite oblik za ekstruziju. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Prvo odaberite oblik. + Select a shape for revolution, first. + Prvo odaberite oblik. - - + + DlgSettings3DViewPart - Deviation - Odstupanje + Deviation + Odstupanje - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Postavljanje premalene devijacije uzrokuje smrzavanje ili usporava korisniÄko suÄelje. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Postavljanje premalene devijacije uzrokuje smrzavanje ili usporava korisniÄko suÄelje. - - + + PartGui::CrossSections - - Cross sections - Presjeci + + Cross sections + Presjeci - Guiding plane - Vodeća povrÅ¡ina + + Guiding plane + Vodeća povrÅ¡ina - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Položaj: + + Position: + Položaj: - Sections - Odjeljci + + Sections + Odjeljci - On both sides - S obje strane + + On both sides + S obje strane - Count - Broj + + Count + Broj - Distance: - Udaljenost: + + Distance: + Udaljenost: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Booleove operacije + + Boolean Operation + Booleove operacije - Second shape - Drugi oblik + + Second shape + Drugi oblik - First shape - Prvi oblik + + First shape + Prvi oblik - Boolean operation - Booleova operacija + + Boolean operation + Booleova operacija - Section - OdsjeÄak + + Section + OdsjeÄak - Difference - Razlika + + Difference + Razlika - Union - Unija + + Union + Unija - Intersection - Presjek + + Intersection + Presjek - - Cannot perform a boolean operation with the same shape - Ne možete izvesti operaciju s istim oblikom + + Cannot perform a boolean operation with the same shape + Ne možete izvesti operaciju s istim oblikom - - Solids - Tijela + + + Solids + Tijela - Shells - OmotaÄi + + + Shells + OmotaÄi - Compounds - Spojevi + + + Compounds + Spojevi - Faces - Plohe + + + Faces + Plohe - Swap selection - Zamijeni odabir + + Swap selection + Zamijeni odabir - - Select a shape on the left side, first - Prvo odaberite oblik na lijevoj strani + + Select a shape on the left side, first + Prvo odaberite oblik na lijevoj strani - Select a shape on the right side, first - Prvo odaberite oblik na desnoj strani + + Select a shape on the right side, first + Prvo odaberite oblik na desnoj strani - No active document available - Nema aktivnog dostupnog dokumenta + + No active document available + Nema aktivnog dostupnog dokumenta - One of the selected objects doesn't exist anymore - Jedan od odabranih objekata viÅ¡e ne postoji + + One of the selected objects doesn't exist anymore + Jedan od odabranih objekata viÅ¡e ne postoji - Performing union on non-solids is not possible - Nije moguće izvoÄ‘enje spajanja na objektima koji nisu tijela + + Performing union on non-solids is not possible + Nije moguće izvoÄ‘enje spajanja na objektima koji nisu tijela - Performing intersection on non-solids is not possible - Nije moguće izvoÄ‘enje prejeka na objektima koji nisu tijela + + Performing intersection on non-solids is not possible + Nije moguće izvoÄ‘enje prejeka na objektima koji nisu tijela - Performing difference on non-solids is not possible - Nije moguće izvoÄ‘enje razlike na objektima koji nisu tijela + + Performing difference on non-solids is not possible + Nije moguće izvoÄ‘enje razlike na objektima koji nisu tijela - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Izvuceno + + Extrude + Izvuceno - Direction - Smjer + + Direction + Smjer - Along normal - Uz normalu + + Along normal + Uz normalu - Length: - Duljina: + + Length: + Duljina: - 3D view - 3D prikaz + + 3D view + 3D prikaz - Note:This option works for planes only - Napomena: Ova opcija radi samo za ravnine + + Note:This option works for planes only + Napomena: Ova opcija radi samo za ravnine - Shape - Oblik + + Create solid + Napravi Ävrsto tijelo - - + + Taper outward angle + - X: - X: + + Shape + Oblik - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Prvo odaberite oblik za ekstruziju. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Prvo odaberite oblik za ekstruziju. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Zaobli rubove + + Fillet Edges + Zaobli rubove - Fillet Parameter - Parametar zaobljenja + + Fillet Parameter + Parametar zaobljenja - Radius: - Radijus: + + Radius: + Radijus: - Fillet type: - Tip zaobljenja: + + Fillet type: + Tip zaobljenja: - Constant Radius - Konstantan Radius + + Constant Radius + Konstantan Radius - Variable Radius - Promjenjivi polumjer + + Variable Radius + Promjenjivi polumjer - Shape - Oblik + + Shape + Oblik - Selected shape: - Odabrani oblik: + + Selected shape: + Odabrani oblik: - No selection - Bez izbora + + No selection + Bez izbora - - Edges to fillet - Zaobli rubove + + Edges to fillet + Zaobli rubove - Start radius - PoÄetni radijus + + + Start radius + PoÄetni radijus - End radius - Krajnji radijus + + End radius + Krajnji radijus - Radius - Polumjer + + Radius + Polumjer - No edge selected - Nema odabranih rubova + + No edge selected + Nema odabranih rubova - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Nema rubova za zaobliti. Molimo prvo oznaÄite jedan ili viÅ¡e rubova. + Nema rubova za zaobliti. Molimo prvo oznaÄite jedan ili viÅ¡e rubova. - - All - Sve + + All + Sve - None - Nijedan + + None + Nijedan - - Edge%1 - Rub%1 + + + Edge%1 + Rub%1 - No shape selected - Nema odabranih oblika + + No shape selected + Nema odabranih oblika - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nije odabran vanljan oblik. Molimo odaberite valjan oblik u padajućem okviru. + Nije odabran vanljan oblik. Molimo odaberite valjan oblik u padajućem okviru. - - + + PartGui::DlgPartBox - - Box definition - Definicija kutije + + Box definition + Definicija kutije - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Otkaži + + Cancel + Otkaži - OK - U redu + + OK + U redu - Size: - VeliÄina: + + Size: + VeliÄina: - Height: - Visina: + + Height: + Visina: - Width: - Å irina: + + Width: + Å irina: - Length: - Duljina: + + Length: + Duljina: - Position: - Položaj: + + Position: + Položaj: - Direction: - Smjer: + + Direction: + Smjer: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Definiranje cilindra + + Cylinder definition + Definiranje cilindra - Parameter - Parametar + + Parameter + Parametar - Height: - Visina: + + Height: + Visina: - Radius: - Radijus: + + Radius: + Radijus: - Position: - Položaj: + + Position: + Položaj: - Direction: - Smjer: + + Direction: + Smjer: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - U redu + + OK + U redu - Cancel - Otkaži + + Cancel + Otkaži - - + + PartGui::DlgPartImportIges - - IGES input file - IGES ulazna datoteka + + IGES input file + IGES ulazna datoteka - ... - ... + + ... + ... - Cancel - Otkaži + + Cancel + Otkaži - OK - U redu + + OK + U redu - File Name - Naziv datoteke + + File Name + Naziv datoteke - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Sve Datoteke (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Sve Datoteke (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Otkaži + + Cancel + Otkaži - OK - U redu + + OK + U redu - Step input file - STEP ulazna datoteka + + Step input file + STEP ulazna datoteka - File Name - Naziv datoteke + + File Name + Naziv datoteke - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Sve Datoteke (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Sve Datoteke (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometrijski primitivi + + Geometric Primitives + Geometrijski primitivi - Primitive - Primitiv + Primitive + Primitiv - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Kut - 0 za cil + Angle - 0 for cyl + Kut - 0 za cil - Angle0 - Kut0 + Angle0 + Kut0 - Angle1 - Kut1 + Angle1 + Kut1 - X Axis Value: - Vrijednost na X osi : + X Axis Value: + Vrijednost na X osi : - Y Axis Value: - Vrijednost na Y osi : + Y Axis Value: + Vrijednost na Y osi : - Z Axis Value: - Vrijednost na Z osi: + Z Axis Value: + Vrijednost na Z osi: - Wedge - Klin + + Wedge + Klin - Circle - Krug + + Circle + Krug - Vertex - Vrh + Vertex + Vrh - Position - Položaj + Position + Položaj - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Smjer: + Direction: + Smjer: - Y: - Y: + + + + Y: + Y: - Plane - PovrÅ¡ina + + Plane + PovrÅ¡ina - Box - Kutija + + Box + Kutija - Cylinder - Cilindar + + Cylinder + Cilindar - Cone - Stožac + + Cone + Stožac - Sphere - Kugla + + Sphere + Kugla - Ellipsoid - Elipsoid + + Ellipsoid + Elipsoid - Torus - Zavojnica + + Torus + Zavojnica - Parameter - Parametar + + Ellipse + - Width: - Å irina: + + Point + - Length: - Duljina: + + Line + - Height: - Visina: + + Parameter + Parametar - Angle: - Kut: + + + Width: + Å irina: - Radius: - Radijus: + + + Length: + Duljina: - Radius 1: - Polumjer 1: + + + + + Height: + Visina: - Radius 2: - Polumjer 2: + + + + Angle: + Kut: - U parametric: - U parametarski: + + + + + Radius: + Radijus: - V parametric: - V parametarski: + + + + Radius 1: + Polumjer 1: - &Create - Napravi + + + + Radius 2: + Polumjer 2: - Alt+C - Alt + C + + + + U parametric: + U parametarski: - Cl&ose - Zatvori + + + + V parametric: + V parametarski: - Alt+O - Alt + O + + X min/max: + - - Create %1 - Napravi %1 + + Y min/max: + - No active document - Nema aktivnog dokumenta + + Z min/max: + - - Pitch: - Vrh: + + X2 min/max: + - Helix - Spirala + + Z2 min/max: + - 3D View - 3D Prikaz + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + Napravi + + + Alt+C + Alt + C + + + Cl&ose + Zatvori + + + Alt+O + Alt + O + + + + + + Create %1 + Napravi %1 + + + + No active document + Nema aktivnog dokumenta + + + + Pitch: + Vrh: + + + + Helix + Spirala + + + 3D View + 3D Prikaz + + + PartGui::DlgRevolution - - Revolve - Oblik generiran okretanjem + + Revolve + Oblik generiran okretanjem - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Kut: + + Angle: + Kut: - Z: - Z: + + Z: + Z: - Axis: - Os: + + Axis: + Os: - Shape - Oblik + + Shape + Oblik - - Select a shape for revolution, first. - Prvo odaberite oblik. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Prvo odaberite oblik. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Pregled toÄnosti / Performanse + + View accuracy / Performance + Pregled toÄnosti / Performanse - View smoothing - Pregled izglaÄ‘ivanja + + View smoothing + Pregled izglaÄ‘ivanja - Using high-quality normals - KoriÅ¡tenje visoko kvalitetnih normala + + Using high-quality normals + KoriÅ¡tenje visoko kvalitetnih normala - This will slow down render speed but will lead to nicer results - To će usporiti brzinu rendera, ali će dovesti do boljeg rezultata + + This will slow down render speed but will lead to nicer results + To će usporiti brzinu rendera, ali će dovesti do boljeg rezultata - Defines the appearance of surfaces - OdreÄ‘uje izgled povrÅ¡ina + + Defines the appearance of surfaces + OdreÄ‘uje izgled povrÅ¡ina - Shape view - Izgled oblika + + Shape view + Izgled oblika - Tessellation - Mozaik + + Tessellation + Mozaik - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - Do not define normal per vertex - Ne definirati normalu po vrhu + + Do not define normal per vertex + Ne definirati normalu po vrhu - Defines the deviation of tessellation to the actual surface - OdreÄ‘uje odstupanje od mozaika i stvarne povrÅ¡ine + + Defines the deviation of tessellation to the actual surface + OdreÄ‘uje odstupanje od mozaika i stvarne povrÅ¡ine - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - Maksimalno odstupanje ovisno o graniÄnom okviru modela + + Maximum deviation depending on the model bounding box + Maksimalno odstupanje ovisno o graniÄnom okviru modela - % - % + + % + % - - Deviation - Odstupanje + + Deviation + Odstupanje - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Postavljanje premalene devijacije uzrokuje smrzavanje ili usporava korisniÄko suÄelje. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Postavljanje premalene devijacije uzrokuje smrzavanje ili usporava korisniÄko suÄelje. - - + + PartGui::DlgSettingsGeneral - - General - Općenito + + General + Općenito - Export - Izvoz + + Export + Izvoz - Millimeter - Milimetar + + Millimeter + Milimetar - Meter - Metar + + Meter + Metar - Inch - Palac + + Inch + Palac - Units for export of STEP/IGES - Jedinice za izvoz STEP / IGES + + Units for export of STEP/IGES + Jedinice za izvoz STEP / IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Položaj + + + + 3D View + 3D Prikaz + + + PartGui::LoftWidget - - Too few elements - Premalo elemenata + + + Vertex/Wire + Vrh/Žica - At least two vertices or wires are required. - Najmanje dva vrha ili žice su obavezne. + + + Loft + Tuba - - + + + Too few elements + Premalo elemenata + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Najmanje dva vrha ili žice su obavezne. + + + PartGui::Mirroring - - Mirroring - Zrcaljenje + + Mirroring + Zrcaljenje - Shapes - Oblici + + Shapes + Oblici - Mirror plane: - PovrÅ¡ina zrcaljenja: + + Mirror plane: + PovrÅ¡ina zrcaljenja: - XY plane - XY ravnina + + XY plane + XY ravnina - XZ plane - Xz ravnina + + XZ plane + Xz ravnina - YZ plane - YZ ravnina + + YZ plane + YZ ravnina - Base point: - Bazna toÄka: + + Base point: + Bazna toÄka: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Prvo odaberite oblik za zrcaljenje. + + Select a shape for mirroring, first. + Prvo odaberite oblik za zrcaljenje. - No such document '%1'. - Ne postoji takav dokument '%1'. + + No such document '%1'. + Ne postoji takav dokument '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - PogreÅ¡an odabir + + + + + + Wrong selection + PogreÅ¡an odabir - Select two vertices - Odaberite dva vrha + + + Select two vertices + Odaberite dva vrha - Select three or more edges - Odaberite tri ili viÅ¡e rubova + Select three or more edges + Odaberite tri ili viÅ¡e rubova - Select two or more faces - Odaberite dvije ili viÅ¡e povrÅ¡ina + + Select one or more edges + - Select only one part object - Odaberite samo jedan Ävrsti objekt + + Select two or more faces + Odaberite dvije ili viÅ¡e povrÅ¡ina - Select two vertices to create an edge - Odaberite dva vrha za stvaranje ruba + + Select only one part object + Odaberite samo jedan Ävrsti objekt - Select a closed set of edges - Odaberite zatvoren skup bridova + + Select two vertices to create an edge + Odaberite dva vrha za stvaranje ruba - Select adjacent faces - Odaberite susjedne plohu + + Select a closed set of edges + Odaberite zatvoren skup bridova - All shape types can be selected - Sve vrste oblika se mogu odabrati + + Select adjacent faces + Odaberite susjedne plohu - - + + + All shape types can be selected + Sve vrste oblika se mogu odabrati + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vrh/Žica + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Premalo elemenata + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Vrijednost + Value + Vrijednost - Special - Special + Special + Special - Command - Naredba + Command + Naredba - Stretch - Stretch + Stretch + Stretch - Move - Pomicanje + Move + Pomicanje - Rotate - Rotiraj + Rotate + Rotiraj - Offset - Pomak + Offset + Pomak - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Postavi boju po pojedinoj plohi + + Set color per face + Postavi boju po pojedinoj plohi - Click on the faces in the 3d view to select them. - Kliknite na plohe u 3D pogledu da bi ih odabrali. + + Click on the faces in the 3d view to select them. + Kliknite na plohe u 3D pogledu da bi ih odabrali. - Faces: - Plohe: + + Faces: + Plohe: - Set to default - Postavi na zadanu vrijednost + + Set to default + Postavi na zadanu vrijednost - - + + PartGui::TaskLoft - - Loft - Tuba + + Loft + Tuba - Vertex/Wire - Vrh/Žica + Vertex/Wire + Vrh/Žica - Move right - Pomakni desno + Move right + Pomakni desno - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>PremjeÅ¡tanje odabrane stavke jednu razinu prema dolje.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>PremjeÅ¡tanje odabrane stavke jednu razinu prema dolje.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> - Move left - Pomakni lijevo + Move left + Pomakni lijevo - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>PremjeÅ¡tanje odabrane stavke jednu razinu gore.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>PremjeÅ¡tanje odabrane stavke jednu razinu gore.</b> <p> To će takoÄ‘er promijeniti razinu roditelja stavke. </p> - Move up - Pomakni gore + Move up + Pomakni gore - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>PremjeÅ¡tanje odabrane stavke gore.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>PremjeÅ¡tanje odabrane stavke gore.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> - Move down - Pomakni dolje + Move down + Pomakni dolje - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>PremjeÅ¡tanje odabrane stavke prema dolje.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>PremjeÅ¡tanje odabrane stavke prema dolje.</b> <p> Jedinica će biti premjeÅ¡tena unutar razine hijerarhije. </p> - Create solid - Napravi Ävrsto tijelo + + Create solid + Napravi Ävrsto tijelo - Ruled surface - Ravne povrÅ¡ine + + Ruled surface + Ravne povrÅ¡ine - - + + PartGui::TaskShapeBuilder - - Create shape - Napravi oblik + + + Create shape + Napravi oblik - Edge from vertices - Rub iz vrhova + + Edge from vertices + Rub iz vrhova - Face from edges - Ploha iz rubova + + Face from edges + Ploha iz rubova - Planar - Planar + + Planar + Planar - Shell from faces - Ljuska iz ploha + + Shell from faces + Ljuska iz ploha - Solid from shell - ÄŒvrsto tijelo iz ljuske + + Solid from shell + ÄŒvrsto tijelo iz ljuske - Create - Stvoriti + + Create + Stvoriti - All faces - Sve plohe + + All faces + Sve plohe - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Napravi Ävrsto tijelo + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - PogreÅ¡an odabir + + + + + + Wrong selection + PogreÅ¡an odabir - Select two shapes please. - Molim odaberite dva oblika. + + + Select two shapes please. + Molim odaberite dva oblika. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Sve CAD datoteke (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Sve CAD datoteke (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.step *.stp) + + + + STEP (*.stp *.step) + STEP (*.step *.stp) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Sve datoteke (*.*) + + + + All Files (*.*) + Sve datoteke (*.*) - - Sewing Tolerance - Tolerancija za Å¡ivanje + + Sewing Tolerance + Tolerancija za Å¡ivanje - Enter tolerance for sewing shape: - Unesite tolerancije za Å¡ivanje oblika: + + Enter tolerance for sewing shape: + Unesite tolerancije za Å¡ivanje oblika: - - Edit mirror plane - Uredi povrÅ¡inu zrcaljenja + + Edit mirror plane + Uredi povrÅ¡inu zrcaljenja - Transform - Transformirati + + Edit chamfer edges + - - Part design - Dizajn Tijela + Transform + Transformirati - - Select two shapes or more, please. - Odaberite dva ili viÅ¡e oblika, molim. + + + Part design + Dizajn Tijela - You have to select either two edges or two wires. - Trebate odabrati bilo dvije oÅ¡trice ili dvije žice. + + + Select two shapes or more, please. + Odaberite dva ili viÅ¡e oblika, molim. - - Edit fillet edges - Uredi zaobljene rubove + + You have to select either two edges or two wires. + Trebate odabrati bilo dvije oÅ¡trice ili dvije žice. - - Set colors... - Postavljanje boje ... + + Edit fillet edges + Uredi zaobljene rubove - - + + + Set colors... + Postavljanje boje ... + + + Workbench - - &Part - Tijelo + + &Part + Tijelo - &Simple - Jednostavan + + &Simple + Jednostavan - &Parametric - Parametarski + + &Parametric + Parametarski - Part tools - Alati za manipulaciju sa tijelima + + Part tools + Alati za manipulaciju sa tijelima - Solids - Tijela + + Solids + Tijela - Boolean - Booleova + + Boolean + Booleova - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_hu.ts b/src/Mod/Part/Gui/Resources/translations/Part_hu.ts index 5b8c4cf1e..993cc3738 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_hu.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_hu.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Block meghatározása + + Block definition + Block meghatározása - First limit - ElsÅ‘ határérték + + First limit + ElsÅ‘ határérték - Type: - Típus: + + + Type: + Típus: - mm - mm + + + mm + mm - Length: - Hossz: + + + Length: + Hossz: - Dimension - Méret + + + Dimension + Méret - Up to next - KövetkezÅ‘ig + + + Up to next + KövetkezÅ‘ig - Up to last - ElÅ‘zÅ‘ig + + + Up to last + ElÅ‘zÅ‘ig - Up to plane - Síkig + + + Up to plane + Síkig - Up to face - Felületig + + + Up to face + Felületig - Limit: - Határérték: + + + Limit: + Határérték: - No selection - Nincs kijelölés + + + + + No selection + Nincs kijelölés - Profile - Profil + + Profile + Profil - Selection: - Kijelölés: + + Selection: + Kijelölés: - Reverse - Fordított + + Reverse + Fordított - Both sides - Mindkét oldalon + + Both sides + Mindkét oldalon - Second limit - Második határérték + + Second limit + Második határérték - Direction - Irány + + Direction + Irány - Perpendicular to sketch - MerÅ‘leges a vázlatra + + Perpendicular to sketch + MerÅ‘leges a vázlatra - Reference - Referencia + + Reference + Referencia - Apply - Alkalmaz + + Apply + Alkalmaz - Cancel - Mégse + + Cancel + Mégse - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Alkatrész + + Part + Alkatrész - Boolean... - Logikai... + + Boolean... + Logikai... - Run a boolean operation with two shapes selected - Logikai művelet végrehajtása a két kijelölt alakzaton + + Run a boolean operation with two shapes selected + Logikai művelet végrehajtása a két kijelölt alakzaton - - + + CmdPartBox - - Part - Alkatrész + + Part + Alkatrész - Box - Doboz + + Box + Doboz - Create a box solid - Hozzon létre egy doboz szilárdtestet + + Create a box solid + Hozzon létre egy doboz szilárdtestet - - + + CmdPartBox2 - - Part - Alkatrész + + Part + Alkatrész - Box fix 1 - Rögzített doboz 1 + + Box fix 1 + Rögzített doboz 1 - Create a box solid without dialog - Hozzon létre egy doboz szilárd testet párbeszéd nélkül + + Create a box solid without dialog + Hozzon létre egy doboz szilárd testet párbeszéd nélkül - - + + CmdPartBox3 - Part - Alkatrész + + Part + Alkatrész - Box fix 2 - Rögzített doboz 2 + + Box fix 2 + Rögzített doboz 2 - Create a box solid without dialog - Hozzon létre egy doboz szilárd testet párbeszéd nélkül + + Create a box solid without dialog + Hozzon létre egy doboz szilárd testet párbeszéd nélkül - - + + CmdPartBuilder - Part - Alkatrész + + Part + Alkatrész - Shape builder... - Alak építÅ‘ ... + + Shape builder... + Alak építÅ‘ ... - Advanced utility to create shapes - Forma létrehozó fejlett eszköz + + Advanced utility to create shapes + Forma létrehozó fejlett eszköz - - + + + CmdPartChamfer + + + Part + Alkatrész + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Alkatrész + + Part + Alkatrész - Intersection - Metszet + + Intersection + Metszet - Make an intersection of two shapes - Készíts egy keresztezÅ‘dés két alakzattal + + Make an intersection of two shapes + Készíts egy keresztezÅ‘dés két alakzattal - - + + CmdPartCone - - Part - Alkatrész + + Part + Alkatrész - Cone - Kúp + + Cone + Kúp - Create a cone solid - Hozzon létre egy kúp testet + + Create a cone solid + Hozzon létre egy kúp testet - - + + CmdPartCrossSections - - Part - Alkatrész + + Part + Alkatrész - Cross-sections... - Keresztmetszet... + + Cross-sections... + Keresztmetszet... - Cross-sections - Keresztmetszet + + Cross-sections + Keresztmetszet - - + + CmdPartCut - Part - Alkatrész + + Part + Alkatrész - Cut - Kivágás + + Cut + Kivágás - Make a cut of two shapes - Készíts egy vágás a két alakzattal + + Make a cut of two shapes + Készíts egy vágás a két alakzattal - - + + CmdPartCylinder - - Part - Alkatrész + + Part + Alkatrész - Create a Cylinder - Henger létrehozása + + Create a Cylinder + Henger létrehozása - Cylinder - Henger + + Cylinder + Henger - - + + CmdPartExport - - Part - Alkatrész + + Part + Alkatrész - Export CAD... - Export CAD ... + + Export CAD... + Export CAD ... - Exports to a CAD file - CAD fájlok exportálása + + Exports to a CAD file + CAD fájlok exportálása - - + + CmdPartExtrude - Part - Alkatrész + + Part + Alkatrész - Extrude... - Kihúzás... + + Extrude... + Kihúzás... - Extrude a selected sketch - Kiválasztott vázlat kihúzása + + Extrude a selected sketch + Kiválasztott vázlat kihúzása - - + + CmdPartFillet - Part - Alkatrész + + Part + Alkatrész - Fillet... - Lekerekítés... + + Fillet... + Lekerekítés... - Fillet the selected edges of a shape - Egy alakzat kiválasztott éleinek lekerekítése + + Fillet the selected edges of a shape + Egy alakzat kiválasztott éleinek lekerekítése - - + + CmdPartFuse - Part - Alkatrész + + Part + Alkatrész - Union - Egyesítés + + Union + Egyesítés - Make a union of several shapes - Készíts egy uniót több formához + + Make a union of several shapes + Készíts egy uniót több formához - - + + CmdPartImport - Part - Alkatrész + + Part + Alkatrész - Imports a CAD file - CAD-fájl importálása + + Imports a CAD file + CAD-fájl importálása - Import CAD... - CAD import + + Import CAD... + CAD import - - + + CmdPartImportCurveNet - Part - Alkatrész + + Part + Alkatrész - Import a curve network - Görbe hálózat importálása + + Import a curve network + Görbe hálózat importálása - Import curve network... - Görbe hálózat importálás... + + Import curve network... + Görbe hálózat importálás... - - + + CmdPartLoft - Part - Alkatrész + + Part + Alkatrész - Loft... - Szint ... + + Loft... + Szint ... - Advanced utility to lofts - Speciális segédprogram szintekhez + + Utility to loft + - - + + Advanced utility to lofts + Speciális segédprogram szintekhez + + + CmdPartMakeSolid - Part - Alkatrész + + Part + Alkatrész - Convert to solid - Konvertálás szilárd testté + + Convert to solid + Konvertálás szilárd testté - Create solid from a shell or compound - Hozzon létre egy alakzatot szilárd héjból vagy összetettbÅ‘l + + Create solid from a shell or compound + Hozzon létre egy alakzatot szilárd héjból vagy összetettbÅ‘l - - + + CmdPartMirror - Part - Alkatrész + + Part + Alkatrész - Mirroring... - Tükrözés... + + Mirroring... + Tükrözés... - Mirroring a selected shape - A kijelölt alakzat tükrözése + + Mirroring a selected shape + A kijelölt alakzat tükrözése - - + + CmdPartPickCurveNet - Part - Alkatrész + + Part + Alkatrész - Pick curve network - Válasszon görbét + + Pick curve network + Válasszon görbét - Pick a curve network - Válasszon egy görbét + + Pick a curve network + Válasszon egy görbét - - + + CmdPartPrimitives - Part - Alkatrész + + Part + Alkatrész - Create primitives... - Primitívek létrehozása... + + Create primitives... + Primitívek létrehozása... - Creation of parametrized geometric primitives - Paraméteres geometriai primitívek létrehozása + + Creation of parametrized geometric primitives + Paraméteres geometriai primitívek létrehozása - - + + + CmdPartRefineShape + + + Part + Alkatrész + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Alkatrész + + Part + Alkatrész - Reverse shapes - Fordított alakzat + + Reverse shapes + Fordított alakzat - Reverse orientation of shapes - Alakzat irányának megfordítása + + Reverse orientation of shapes + Alakzat irányának megfordítása - - + + CmdPartRevolve - Part - Alkatrész + + Part + Alkatrész - Revolve... - Forgatás + + Revolve... + Forgatás - Revolve a selected shape - Kijelölt alakzat forgatása + + Revolve a selected shape + Kijelölt alakzat forgatása - - + + CmdPartRuledSurface - Part - Alkatrész + + Part + Alkatrész - Create ruled surface - Zárható felület létrehozása + + Create ruled surface + Zárható felület létrehozása - Create a ruled surface from two curves - Hozzon létre egy zárható felületet két görbével + + Create a ruled surface from two curves + Hozzon létre egy zárható felületet két görbével - - + + CmdPartSection - Make a section of two shapes - Szakasz készítése két alakzattal + + Make a section of two shapes + Szakasz készítése két alakzattal - Part - Alkatrész + + Part + Alkatrész - Section - Szakasz + + Section + Szakasz - - + + CmdPartShapeFromMesh - - Part - Alkatrész + + Part + Alkatrész - Create shape from mesh... - Alakzat létrehozása hálóból... + + Create shape from mesh... + Alakzat létrehozása hálóból... - Create shape from selected mesh object - Alakzat létrehozása a kijelölt háló objektumból + + Create shape from selected mesh object + Alakzat létrehozása a kijelölt háló objektumból - - + + CmdPartSimpleCopy - Part - Alkatrész + + Part + Alkatrész - Create simple copy - Készítsen egyszerű másolást + + Create simple copy + Készítsen egyszerű másolást - Create a simple non-parametric copy - Hozzon létre egy egyszerű, nem parametrikus másolatot + + Create a simple non-parametric copy + Hozzon létre egy egyszerű, nem parametrikus másolatot - - + + CmdPartSimpleCylinder - Part - Alkatrész + + Part + Alkatrész - Create Cylinder... - Henger létrehozása... + + Create Cylinder... + Henger létrehozása... - Create a Cylinder - Henger létrehozása + + Create a Cylinder + Henger létrehozása - - + + CmdPartSphere - - Create a sphere solid - Hozzon létre egy szilárdgömb testet + + Create a sphere solid + Hozzon létre egy szilárdgömb testet - Part - Alkatrész + + Part + Alkatrész - Sphere - Gömb + + Sphere + Gömb - - + + + CmdPartSweep + + + Part + Alkatrész + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Hozzon létre egy tórusz testet + + Create a torus solid + Hozzon létre egy tórusz testet - Part - Alkatrész + + Part + Alkatrész - Torus - Tórusz + + Torus + Tórusz - - + + DlgExtrusion - Select a shape for extrusion, first. - Select a shape for extrusion, first. + Select a shape for extrusion, first. + Select a shape for extrusion, first. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Select a shape for revolution, first. + Select a shape for revolution, first. + Select a shape for revolution, first. - - + + DlgSettings3DViewPart - Deviation - Eltérés + Deviation + Eltérés - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Keresztmetszet + + Cross sections + Keresztmetszet - Guiding plane - Irányadó sík + + Guiding plane + Irányadó sík - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Helyzet: + + Position: + Helyzet: - Sections - Szakaszok + + Sections + Szakaszok - On both sides - Mindkét oldalon + + On both sides + Mindkét oldalon - Count - Számol + + Count + Számol - Distance: - Távolság: + + Distance: + Távolság: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Logikai művelet + + Boolean Operation + Logikai művelet - Second shape - Második alakzat + + Second shape + Második alakzat - First shape - ElsÅ‘ alakzat + + First shape + ElsÅ‘ alakzat - Boolean operation - Logikai művelet + + Boolean operation + Logikai művelet - Section - Szakasz + + Section + Szakasz - Difference - Különbség + + Difference + Különbség - Union - Egyesítés + + Union + Egyesítés - Intersection - Metszet + + Intersection + Metszet - - Cannot perform a boolean operation with the same shape - Nem tud végrehajtani logikai művelet az azonos alakzaton + + Cannot perform a boolean operation with the same shape + Nem tud végrehajtani logikai művelet az azonos alakzaton - - Solids - Szilárd testek + + + Solids + Szilárd testek - Shells - Héjjak + + + Shells + Héjjak - Compounds - Összeállítások + + + Compounds + Összeállítások - Faces - Felületek + + + Faces + Felületek - Swap selection - Kijelölés csere + + Swap selection + Kijelölés csere - - Select a shape on the left side, first - ElÅ‘ször bal oldalon jelölje ki az alakzatot + + Select a shape on the left side, first + ElÅ‘ször bal oldalon jelölje ki az alakzatot - Select a shape on the right side, first - ElÅ‘ször jobb oldalon jelölje ki az alakzatot + + Select a shape on the right side, first + ElÅ‘ször jobb oldalon jelölje ki az alakzatot - No active document available - Nincs elérhetÅ‘ aktív dokumentum + + No active document available + Nincs elérhetÅ‘ aktív dokumentum - One of the selected objects doesn't exist anymore - Az egyik kijelölt objektum nem létezik + + One of the selected objects doesn't exist anymore + Az egyik kijelölt objektum nem létezik - Performing union on non-solids is not possible - Nem szilárd testek egységesítése nem lehetséges + + Performing union on non-solids is not possible + Nem szilárd testek egységesítése nem lehetséges - Performing intersection on non-solids is not possible - Nem szilárd test metszése nem lehetséges + + Performing intersection on non-solids is not possible + Nem szilárd test metszése nem lehetséges - Performing difference on non-solids is not possible - Nem szilárd test kivonása egymásból nem lehetséges + + Performing difference on non-solids is not possible + Nem szilárd test kivonása egymásból nem lehetséges - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Kihúzás + + Extrude + Kihúzás - Direction - Irány + + Direction + Irány - Along normal - Normál mentén + + Along normal + Normál mentén - Length: - Hossz: + + Length: + Hossz: - 3D view - 3D nézet + + 3D view + 3D nézet - Note:This option works for planes only - Megjegyzés: Ez a beállítás csak a tervezés módban használható + + Note:This option works for planes only + Megjegyzés: Ez a beállítás csak a tervezés módban használható - Shape - Alakzat + + Create solid + Szilárd test létrehozása - - Program infó + + Taper outward angle + - X: - X: + + Shape + Alakzat - Z: - Z: + + Program infó - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Select a shape for extrusion, first. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Select a shape for extrusion, first. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Élkerekítés + + Fillet Edges + Élkerekítés - Fillet Parameter - Lekerekítés paraméter + + Fillet Parameter + Lekerekítés paraméter - Radius: - Sugár: + + Radius: + Sugár: - Fillet type: - Fájltípus: + + Fillet type: + Fájltípus: - Constant Radius - Ãllandó sugárral + + Constant Radius + Ãllandó sugárral - Variable Radius - Változó sugárral + + Variable Radius + Változó sugárral - Shape - Alakzat + + Shape + Alakzat - Selected shape: - Kiválasztott alakzat: + + Selected shape: + Kiválasztott alakzat: - No selection - Nincs kijelölés + + No selection + Nincs kijelölés - - Edges to fillet - LekerekítendÅ‘ élek + + Edges to fillet + LekerekítendÅ‘ élek - Start radius - Kezdeti sugár + + + Start radius + Kezdeti sugár - End radius - Vég sugár + + End radius + Vég sugár - Radius - Sugár + + Radius + Sugár - No edge selected - Nincs kiválasztott él + + No edge selected + Nincs kiválasztott él - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Egyetlen élet sem választott ki. + Egyetlen élet sem választott ki. Kérem, válasszon ki legalább egyet! - - All - Minden + + All + Minden - None - Nincs + + None + Nincs - - Edge%1 - Él%1 + + + Edge%1 + Él%1 - No shape selected - Nincs kijelölve alakzat + + No shape selected + Nincs kijelölve alakzat - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nem érvényes alakzat van kijelölve. Kérjük, elÅ‘ször válasszon egy érvényes alakzatot a legördülÅ‘ listában. + Nem érvényes alakzat van kijelölve. Kérjük, elÅ‘ször válasszon egy érvényes alakzatot a legördülÅ‘ listában. - - + + PartGui::DlgPartBox - - Box definition - Doboz meghatározás + + Box definition + Doboz meghatározás - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Mégse + + Cancel + Mégse - OK - OK + + OK + OK - Size: - Méret: + + Size: + Méret: - Height: - Magasság: + + Height: + Magasság: - Width: - Szélesség: + + Width: + Szélesség: - Length: - Hossz: + + Length: + Hossz: - Position: - Helyzet: + + Position: + Helyzet: - Direction: - Irány: + + Direction: + Irány: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Henger meghatározása + + Cylinder definition + Henger meghatározása - Parameter - Paraméter + + Parameter + Paraméter - Height: - Magasság: + + Height: + Magasság: - Radius: - Sugár: + + Radius: + Sugár: - Position: - Helyzet: + + Position: + Helyzet: - Direction: - Irány: + + Direction: + Irány: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Mégse + + Cancel + Mégse - - + + PartGui::DlgPartImportIges - - IGES input file - IGES bemeneti fájl + + IGES input file + IGES bemeneti fájl - ... - ... + + ... + ... - Cancel - Mégse + + Cancel + Mégse - OK - OK + + OK + OK - File Name - Fájlnév + + File Name + Fájlnév - - Program infó + + Program infó - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Minden fájl (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Minden fájl (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Mégse + + Cancel + Mégse - OK - OK + + OK + OK - Step input file - Step bemeneti fájl + + Step input file + Step bemeneti fájl - File Name - Fájlnév + + File Name + Fájlnév - - Program infó + + Program infó - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Minden fájl (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Minden fájl (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometriai primitívek + + Geometric Primitives + Geometriai primitívek - Primitive - Primitív + Primitive + Primitív - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Szög - 0 cyl + Angle - 0 for cyl + Szög - 0 cyl - Angle0 - Szög0 + Angle0 + Szög0 - Angle1 - Szög1 + Angle1 + Szög1 - X Axis Value: - X tengely értéke: + X Axis Value: + X tengely értéke: - Y Axis Value: - Y tengely értéke: + Y Axis Value: + Y tengely értéke: - Z Axis Value: - Z tengely értéke: + Z Axis Value: + Z tengely értéke: - Wedge - Ék + + Wedge + Ék - Circle - Kör + + Circle + Kör - Vertex - Csúcs + Vertex + Csúcs - Position - Pozíció + Position + Pozíció - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Irány: + Direction: + Irány: - Y: - Y: + + + + Y: + Y: - Plane - Sík + + Plane + Sík - Box - Doboz + + Box + Doboz - Cylinder - Henger + + Cylinder + Henger - Cone - Kúp + + Cone + Kúp - Sphere - Gömb + + Sphere + Gömb - Ellipsoid - Ellipszoid + + Ellipsoid + Ellipszoid - Torus - Tórusz + + Torus + Tórusz - Parameter - Paraméter + + Ellipse + - Width: - Szélesség: + + Point + - Length: - Hossz: + + Line + - Height: - Magasság: + + Parameter + Paraméter - Angle: - Szög: + + + Width: + Szélesség: - Radius: - Sugár: + + + Length: + Hossz: - Radius 1: - Sugár 1: + + + + + Height: + Magasság: - Radius 2: - Sugár 2: + + + + Angle: + Szög: - U parametric: - U paraméter: + + + + + Radius: + Sugár: - V parametric: - V paraméter: + + + + Radius 1: + Sugár 1: - &Create - Létrehozás + + + + Radius 2: + Sugár 2: - Alt+C - Alt+C + + + + U parametric: + U paraméter: - Cl&ose - Bezár + + + + V parametric: + V paraméter: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Létrehozás %1 + + Y min/max: + - No active document - Nincs aktív dokumentum + + Z min/max: + - - Pitch: - Döntés: + + X2 min/max: + - Helix - Csigavonal + + Z2 min/max: + - 3D View - 3D-nézet + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + Létrehozás + + + Alt+C + Alt+C + + + Cl&ose + Bezár + + + Alt+O + Alt+O + + + + + + Create %1 + Létrehozás %1 + + + + No active document + Nincs aktív dokumentum + + + + Pitch: + Döntés: + + + + Helix + Csigavonal + + + 3D View + 3D-nézet + + + PartGui::DlgRevolution - - Revolve - Forgatás + + Revolve + Forgatás - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Szög: + + Angle: + Szög: - Z: - Z: + + Z: + Z: - Axis: - Tengely: + + Axis: + Tengely: - Shape - Alakzat + + Shape + Alakzat - - Select a shape for revolution, first. - Select a shape for revolution, first. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Select a shape for revolution, first. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Pontosság/teljesítmény nézet + + View accuracy / Performance + Pontosság/teljesítmény nézet - View smoothing - Simítás nézet + + View smoothing + Simítás nézet - Using high-quality normals - Magas-minÅ‘ségű normák használata + + Using high-quality normals + Magas-minÅ‘ségű normák használata - This will slow down render speed but will lead to nicer results - Ez lassítja a fordítás sebességét, de szebb eredményhez vezet + + This will slow down render speed but will lead to nicer results + Ez lassítja a fordítás sebességét, de szebb eredményhez vezet - Defines the appearance of surfaces - Meghatározza a felületek megjelenését + + Defines the appearance of surfaces + Meghatározza a felületek megjelenését - Shape view - Alakzat-nézet + + Shape view + Alakzat-nézet - Tessellation - Csempézés + + Tessellation + Csempézés - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> <span style="font-weight:600;"> Lapos árnyalás/Phong-árnyalás</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> A lapos árnyékolással a felszíni normákat nem vertexek határozzák meg, amely ahhoz vezet, hogy a hajlított felületek irreálisak, míg a Phong árnyalás simább megjelenést biztosít.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;">, ha ez a beállítás nem beállított akkor a Phong-árnyalást használja, ha értéke beállított, akkor a sima árnyalás van használtban.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> <span style="font-weight:600;"> Lapos árnyalás/Phong-árnyalás</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> A lapos árnyékolással a felszíni normákat nem vertexek határozzák meg, amely ahhoz vezet, hogy a hajlított felületek irreálisak, míg a Phong árnyalás simább megjelenést biztosít.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;">, ha ez a beállítás nem beállított akkor a Phong-árnyalást használja, ha értéke beállított, akkor a sima árnyalás van használtban.</p></body></html> - Do not define normal per vertex - Normál esetben ne vertexbe határozza meg + + Do not define normal per vertex + Normál esetben ne vertexbe határozza meg - Defines the deviation of tessellation to the actual surface - Meghatározza a mozaik eltérését az aktuális felületre vonatkozólag + + Defines the deviation of tessellation to the actual surface + Meghatározza a mozaik eltérését az aktuális felületre vonatkozólag - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Meghatározza a mozaik háló testre vonatkozó maximum eltérését. Minél kisebb az érték, annál lasúbb a renderelés sebessége és szebb a végeredmény.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Meghatározza a mozaik háló testre vonatkozó maximum eltérését. Minél kisebb az érték, annál lasúbb a renderelés sebessége és szebb a végeredmény.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A normálisok vertexként való megjelenítését úgy is nevezik, hogy<span style=" font-style:italic;">Phong árnyékolás</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">A normálisok vertexként való megjelenítését úgy is nevezik, hogy<span style=" font-style:italic;">Phong árnyékolás</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ez a renderelést lelassítja, + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ez a renderelést lelassítja, de szebb végeredményt ad.</p></body></html> - Maximum deviation depending on the model bounding box - Legnagyobb eltérés a modell határolókeretétÅ‘l függ + + Maximum deviation depending on the model bounding box + Legnagyobb eltérés a modell határolókeretétÅ‘l függ - % - % + + % + % - - Deviation - Eltérés + + Deviation + Eltérés - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Ãltalános + + General + Ãltalános - Export - Export + + Export + Export - Millimeter - Milliméter + + Millimeter + Milliméter - Meter - Méter + + Meter + Méter - Inch - Hüvelyk + + Inch + Hüvelyk - Units for export of STEP/IGES - Az STEP/IGES exportban használt egységek + + Units for export of STEP/IGES + Az STEP/IGES exportban használt egységek - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Pozíció + + + + 3D View + 3D-nézet + + + PartGui::LoftWidget - - Too few elements - Túl kevés elem + + + Vertex/Wire + Vertex / Vonal - At least two vertices or wires are required. - Legalább két csúcs, illetve vonal szükséges. + + + Loft + Szint - - + + + Too few elements + Túl kevés elem + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Legalább két csúcs, illetve vonal szükséges. + + + PartGui::Mirroring - - Mirroring - Tükrözés + + Mirroring + Tükrözés - Shapes - Alakzatok + + Shapes + Alakzatok - Mirror plane: - Tükör sík: + + Mirror plane: + Tükör sík: - XY plane - XY sík + + XY plane + XY sík - XZ plane - XZ sík + + XZ plane + XZ sík - YZ plane - YZ síkban + + YZ plane + YZ síkban - Base point: - Alap pont: + + Base point: + Alap pont: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Tükrözéshez elÅ‘szÅ‘r a formát válassza ki. + + Select a shape for mirroring, first. + Tükrözéshez elÅ‘szÅ‘r a formát válassza ki. - No such document '%1'. - Nincs ilyen dokumentum '%1'. + + No such document '%1'. + Nincs ilyen dokumentum '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Hibás kijelölés + + + + + + Wrong selection + Hibás kijelölés - Select two vertices - Válasszon ki a két csúcsot + + + Select two vertices + Válasszon ki a két csúcsot - Select three or more edges - Válasszon ki a három vagy több élet + Select three or more edges + Válasszon ki a három vagy több élet - Select two or more faces - Válasszon ki a két vagy több felületet + + Select one or more edges + - Select only one part object - Válasszon ki a csak egy tárgy részt + + Select two or more faces + Válasszon ki a két vagy több felületet - Select two vertices to create an edge - Válasszon ki a két csúcsot egy él létrehozásához + + Select only one part object + Válasszon ki a csak egy tárgy részt - Select a closed set of edges - Válasszon ki egy zárt él halmazt + + Select two vertices to create an edge + Válasszon ki a két csúcsot egy él létrehozásához - Select adjacent faces - Válasszon ki szomszédos felületeket + + Select a closed set of edges + Válasszon ki egy zárt él halmazt - All shape types can be selected - Minden alakzat kiválasztható + + Select adjacent faces + Válasszon ki szomszédos felületeket - - + + + All shape types can be selected + Minden alakzat kiválasztható + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex / Vonal + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Túl kevés elem + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Érték + Value + Érték - Special - Special + Special + Special - Command - Parancs + Command + Parancs - Stretch - Stretch + Stretch + Stretch - Move - Mozgat + Move + Mozgat - Rotate - Forgatás + Rotate + Forgatás - Offset - Eltolás + Offset + Eltolás - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Szín beállítása egy felületre + + Set color per face + Szín beállítása egy felületre - Click on the faces in the 3d view to select them. - Kattints a 3D nézetben a felületekre a kijelöléshez. + + Click on the faces in the 3d view to select them. + Kattints a 3D nézetben a felületekre a kijelöléshez. - Faces: - Felületek: + + Faces: + Felületek: - Set to default - Az alapértelmezett beállítása + + Set to default + Az alapértelmezett beállítása - - + + PartGui::TaskLoft - - Loft - Szint + + Loft + Szint - Vertex/Wire - Vertex / Vonal + Vertex/Wire + Vertex / Vonal - Move right - Mozgatás jobbra + Move right + Mozgatás jobbra - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> - Move left - Mozgatás balra + Move left + Mozgatás balra - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mozgasd a kiválasztott elemet egy szinttel lejjebb.</b><p>Ez a meglévÅ‘ elemet szintjét is megváltoztatja.</p> - Move up - Mozgatás felfelé + Move up + Mozgatás felfelé - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> - Move down - Mozgatás lefelé + Move down + Mozgatás lefelé - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Mozgasd a kiválasztott elemet lejjebb.</b><p>Az elem a hierarchia szinten lesz mozgatva.</p> - Create solid - Szilárd test létrehozása + + Create solid + Szilárd test létrehozása - Ruled surface - Döntött felület + + Ruled surface + Döntött felület - - + + PartGui::TaskShapeBuilder - - Create shape - Alakzat létrehozása + + + Create shape + Alakzat létrehozása - Edge from vertices - Csúcsok élei + + Edge from vertices + Csúcsok élei - Face from edges - Felületek élekbÅ‘l + + Face from edges + Felületek élekbÅ‘l - Planar - Planar + + Planar + Planar - Shell from faces - Héjjak felületekbÅ‘l + + Shell from faces + Héjjak felületekbÅ‘l - Solid from shell - Szilárd testek felületekbÅ‘l + + Solid from shell + Szilárd testek felületekbÅ‘l - Create - Létrehozás + + Create + Létrehozás - All faces - Minden felület + + All faces + Minden felület - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Szilárd test létrehozása + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Hibás kijelölés + + + + + + Wrong selection + Hibás kijelölés - Select two shapes please. - Két alakzatot jelöljön ki. + + + Select two shapes please. + Két alakzatot jelöljön ki. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Minden CAD Fájl (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Minden CAD Fájl (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Minden fájl (*.*) + + + + All Files (*.*) + Minden fájl (*.*) - - Sewing Tolerance - Varró tolerancia + + Sewing Tolerance + Varró tolerancia - Enter tolerance for sewing shape: - Adja meg a varrás alakja toleranciáját: + + Enter tolerance for sewing shape: + Adja meg a varrás alakja toleranciáját: - - Edit mirror plane - Tükrözési sík szerkesztése + + Edit mirror plane + Tükrözési sík szerkesztése - Transform - Ãtalakítás + + Edit chamfer edges + - - Part design - Alkatrész tervezés + Transform + Ãtalakítás - - Select two shapes or more, please. - Kérem válasszon ki a két alakzatot vagy többet. + + + Part design + Alkatrész tervezés - You have to select either two edges or two wires. - Választani kell két élet, vagy két hálót. + + + Select two shapes or more, please. + Kérem válasszon ki a két alakzatot vagy többet. - - Edit fillet edges - Kijelölt élek szerkesztése + + You have to select either two edges or two wires. + Választani kell két élet, vagy két hálót. - - Set colors... - Színek beállítása... + + Edit fillet edges + Kijelölt élek szerkesztése - - + + + Set colors... + Színek beállítása... + + + Workbench - - &Part - Rész + + &Part + Rész - &Simple - Egyszerű + + &Simple + Egyszerű - &Parametric - Változós + + &Parametric + Változós - Part tools - Rész eszközök + + Part tools + Rész eszközök - Solids - Szilárd testek + + Solids + Szilárd testek - Boolean - Logikai érték + + Boolean + Logikai érték - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_it.ts b/src/Mod/Part/Gui/Resources/translations/Part_it.ts index 832bb8cd2..bd980fa47 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_it.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_it.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Definizione blocco + + Block definition + Definizione blocco - First limit - Primo limite + + First limit + Primo limite - Type: - Tipo: + + + Type: + Tipo: - mm - mm + + + mm + mm - Length: - Lunghezza: + + + Length: + Lunghezza: - Dimension - Dimensione + + + Dimension + Dimensione - Up to next - Fino al prossimo + + + Up to next + Fino al prossimo - Up to last - Fino all'ultimo + + + Up to last + Fino all'ultimo - Up to plane - Fino al piano + + + Up to plane + Fino al piano - Up to face - Fino alla faccia + + + Up to face + Fino alla faccia - Limit: - Limite: + + + Limit: + Limite: - No selection - Nessuna selezione + + + + + No selection + Nessuna selezione - Profile - Profilo + + Profile + Profilo - Selection: - Selezione: + + Selection: + Selezione: - Reverse - Inverti + + Reverse + Inverti - Both sides - Entrambi i lati + + Both sides + Entrambi i lati - Second limit - Secondo limite + + Second limit + Secondo limite - Direction - Direzione + + Direction + Direzione - Perpendicular to sketch - Perpendicolare allo sketch + + Perpendicular to sketch + Perpendicolare allo sketch - Reference - Riferimento + + Reference + Riferimento - Apply - Applica + + Apply + Applica - Cancel - Annulla + + Cancel + Annulla - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Parte + + Part + Parte - Boolean... - Operazione booleana... + + Boolean... + Operazione booleana... - Run a boolean operation with two shapes selected - Esegue un'operazione booleana tra le due forme selezionate + + Run a boolean operation with two shapes selected + Esegue un'operazione booleana tra le due forme selezionate - - + + CmdPartBox - - Part - Parte + + Part + Parte - Box - Prisma + + Box + Prisma - Create a box solid - Crea un prisma solido + + Create a box solid + Crea un prisma solido - - + + CmdPartBox2 - - Part - Parte + + Part + Parte - Box fix 1 - Fissa prisma 1 + + Box fix 1 + Fissa prisma 1 - Create a box solid without dialog - Crea una prisma solido senza finestra di dialogo + + Create a box solid without dialog + Crea una prisma solido senza finestra di dialogo - - + + CmdPartBox3 - Part - Parte + + Part + Parte - Box fix 2 - Fissa prisma 2 + + Box fix 2 + Fissa prisma 2 - Create a box solid without dialog - Crea una prisma solido senza finestra di dialogo + + Create a box solid without dialog + Crea una prisma solido senza finestra di dialogo - - + + CmdPartBuilder - Part - Parte + + Part + Parte - Shape builder... - Generatore di forma... + + Shape builder... + Generatore di forma... - Advanced utility to create shapes - Utilità avanzate per creare forme + + Advanced utility to create shapes + Utilità avanzate per creare forme - - + + + CmdPartChamfer + + + Part + Parte + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Parte + + Part + Parte - Intersection - Intersezione + + Intersection + Intersezione - Make an intersection of two shapes - Esegue un'intersezione di due forme + + Make an intersection of two shapes + Esegue un'intersezione di due forme - - + + CmdPartCone - - Part - Parte + + Part + Parte - Cone - Cono + + Cone + Cono - Create a cone solid - Crea un cono solido + + Create a cone solid + Crea un cono solido - - + + CmdPartCrossSections - - Part - Parte + + Part + Parte - Cross-sections... - Sezioni... + + Cross-sections... + Sezioni... - Cross-sections - Sezioni + + Cross-sections + Sezioni - - + + CmdPartCut - Part - Parte + + Part + Parte - Cut - Taglia + + Cut + Taglia - Make a cut of two shapes - Esegue un taglio di due forme + + Make a cut of two shapes + Esegue un taglio di due forme - - + + CmdPartCylinder - - Part - Parte + + Part + Parte - Create a Cylinder - Crea un cilindro + + Create a Cylinder + Crea un cilindro - Cylinder - Cilindro + + Cylinder + Cilindro - - + + CmdPartExport - - Part - Parte + + Part + Parte - Export CAD... - Esporta CAD... + + Export CAD... + Esporta CAD... - Exports to a CAD file - Esportazione in un file CAD + + Exports to a CAD file + Esportazione in un file CAD - - + + CmdPartExtrude - Part - Parte + + Part + Parte - Extrude... - Estrudi... + + Extrude... + Estrudi... - Extrude a selected sketch - Estrude uno schizzo selezionato + + Extrude a selected sketch + Estrude uno schizzo selezionato - - + + CmdPartFillet - Part - Parte + + Part + Parte - Fillet... - Raccordo... + + Fillet... + Raccordo... - Fillet the selected edges of a shape - Raccorda gli spigoli di una forma selezionati + + Fillet the selected edges of a shape + Raccorda gli spigoli di una forma selezionati - - + + CmdPartFuse - Part - Parte + + Part + Parte - Union - Unione + + Union + Unione - Make a union of several shapes - Esegue un'unione di varie forme + + Make a union of several shapes + Esegue un'unione di varie forme - - + + CmdPartImport - Part - Parte + + Part + Parte - Imports a CAD file - Importa un file CAD + + Imports a CAD file + Importa un file CAD - Import CAD... - Importa CAD... + + Import CAD... + Importa CAD... - - + + CmdPartImportCurveNet - Part - Parte + + Part + Parte - Import a curve network - Importa una rete di curve + + Import a curve network + Importa una rete di curve - Import curve network... - Importa una rete di curve... + + Import curve network... + Importa una rete di curve... - - + + CmdPartLoft - Part - Parte + + Part + Parte - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Utilità avanzate per lofts + + Utility to loft + - - + + Advanced utility to lofts + Utilità avanzate per lofts + + + CmdPartMakeSolid - Part - Parte + + Part + Parte - Convert to solid - Converti in solido + + Convert to solid + Converti in solido - Create solid from a shell or compound - Crea solido da un guscio o un composto + + Create solid from a shell or compound + Crea solido da un guscio o un composto - - + + CmdPartMirror - Part - Parte + + Part + Parte - Mirroring... - Specchia... + + Mirroring... + Specchia... - Mirroring a selected shape - Specchia una forma selezionata + + Mirroring a selected shape + Specchia una forma selezionata - - + + CmdPartPickCurveNet - Part - Parte + + Part + Parte - Pick curve network - Specifica rete di curve + + Pick curve network + Specifica rete di curve - Pick a curve network - Specifica una rete di curve + + Pick a curve network + Specifica una rete di curve - - + + CmdPartPrimitives - Part - Parte + + Part + Parte - Create primitives... - Crea primitive... + + Create primitives... + Crea primitive... - Creation of parametrized geometric primitives - Creazione di primitive geometriche parametrizzate + + Creation of parametrized geometric primitives + Creazione di primitive geometriche parametrizzate - - + + + CmdPartRefineShape + + + Part + Parte + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Parte + + Part + Parte - Reverse shapes - Inverti forme + + Reverse shapes + Inverti forme - Reverse orientation of shapes - Inverte l'orientamento delle forme + + Reverse orientation of shapes + Inverte l'orientamento delle forme - - + + CmdPartRevolve - Part - Parte + + Part + Parte - Revolve... - Rivoluziona... + + Revolve... + Rivoluziona... - Revolve a selected shape - Rivoluziona una forma selezionata + + Revolve a selected shape + Rivoluziona una forma selezionata - - + + CmdPartRuledSurface - Part - Parte + + Part + Parte - Create ruled surface - Creare la superficie rigata + + Create ruled surface + Creare la superficie rigata - Create a ruled surface from two curves - Crea una superficie rigata da due curve + + Create a ruled surface from two curves + Crea una superficie rigata da due curve - - + + CmdPartSection - Make a section of two shapes - Esegue una sezione di due forme + + Make a section of two shapes + Esegue una sezione di due forme - Part - Parte + + Part + Parte - Section - Sezione + + Section + Sezione - - + + CmdPartShapeFromMesh - - Part - Parte + + Part + Parte - Create shape from mesh... - Crea forma da mesh... + + Create shape from mesh... + Crea forma da mesh... - Create shape from selected mesh object - Crea forma dall'oggetto mesh selezionato + + Create shape from selected mesh object + Crea forma dall'oggetto mesh selezionato - - + + CmdPartSimpleCopy - Part - Parte + + Part + Parte - Create simple copy - Crea una copia semplice + + Create simple copy + Crea una copia semplice - Create a simple non-parametric copy - Crea una copia semplice non parametrica + + Create a simple non-parametric copy + Crea una copia semplice non parametrica - - + + CmdPartSimpleCylinder - Part - Parte + + Part + Parte - Create Cylinder... - Crea cilindro... + + Create Cylinder... + Crea cilindro... - Create a Cylinder - Crea un cilindro + + Create a Cylinder + Crea un cilindro - - + + CmdPartSphere - - Create a sphere solid - Crea una sfera solida + + Create a sphere solid + Crea una sfera solida - Part - Parte + + Part + Parte - Sphere - Sfera + + Sphere + Sfera - - + + + CmdPartSweep + + + Part + Parte + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Crea un toro solido + + Create a torus solid + Crea un toro solido - Part - Parte + + Part + Parte - Torus - Toro + + Torus + Toro - - + + DlgExtrusion - Select a shape for extrusion, first. - Seleziona prima una forma da estrudere. + Select a shape for extrusion, first. + Seleziona prima una forma da estrudere. - The document '%1' doesn't exist. - Il documento '%1' non esiste. + The document '%1' doesn't exist. + Il documento '%1' non esiste. - - + + DlgRevolution - Select a shape for revolution, first. - Seleziona prima una forma per la rivoluzione. + Select a shape for revolution, first. + Seleziona prima una forma per la rivoluzione. - - + + DlgSettings3DViewPart - Deviation - Deviazione + Deviation + Deviazione - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - L'impostazione di una deviazione troppo piccola provoca la richiesta di più tempo per la tassellazione e quindi blocca o rallenta la GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + L'impostazione di una deviazione troppo piccola provoca la richiesta di più tempo per la tassellazione e quindi blocca o rallenta la GUI. - - + + PartGui::CrossSections - - Cross sections - Sezioni + + Cross sections + Sezioni - Guiding plane - Piano guida + + Guiding plane + Piano guida - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Posizione: + + Position: + Posizione: - Sections - Sezioni + + Sections + Sezioni - On both sides - Su entrambi i lati + + On both sides + Su entrambi i lati - Count - Conta + + Count + Conta - Distance: - Distanza: + + Distance: + Distanza: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Operazione booleana + + Boolean Operation + Operazione booleana - Second shape - Seconda forma + + Second shape + Seconda forma - First shape - Prima forma + + First shape + Prima forma - Boolean operation - Operazione booleana + + Boolean operation + Operazione booleana - Section - Sezione + + Section + Sezione - Difference - Differenza + + Difference + Differenza - Union - Unione + + Union + Unione - Intersection - Intersezione + + Intersection + Intersezione - - Cannot perform a boolean operation with the same shape - Non è possibile effettuare una operazione booleana con la stessa forma + + Cannot perform a boolean operation with the same shape + Non è possibile effettuare una operazione booleana con la stessa forma - - Solids - Solidi + + + Solids + Solidi - Shells - Gusci + + + Shells + Gusci - Compounds - Solidi composti + + + Compounds + Solidi composti - Faces - Facce + + + Faces + Facce - Swap selection - Inverti selezione + + Swap selection + Inverti selezione - - Select a shape on the left side, first - Seleziona prima una forma sul lato sinistro + + Select a shape on the left side, first + Seleziona prima una forma sul lato sinistro - Select a shape on the right side, first - Seleziona prima una forma sul lato destro + + Select a shape on the right side, first + Seleziona prima una forma sul lato destro - No active document available - Nessun documento attivo disponibile + + No active document available + Nessun documento attivo disponibile - One of the selected objects doesn't exist anymore - Uno degli oggetti selezionati non esiste più + + One of the selected objects doesn't exist anymore + Uno degli oggetti selezionati non esiste più - Performing union on non-solids is not possible - Non è possibile eseguire l'unione su oggetti non solidi + + Performing union on non-solids is not possible + Non è possibile eseguire l'unione su oggetti non solidi - Performing intersection on non-solids is not possible - Non è possibile eseguire l'intersezione su oggetti non solidi + + Performing intersection on non-solids is not possible + Non è possibile eseguire l'intersezione su oggetti non solidi - Performing difference on non-solids is not possible - Non è possibile eseguire la differenza su oggetti non solidi + + Performing difference on non-solids is not possible + Non è possibile eseguire la differenza su oggetti non solidi - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Estrudi + + Extrude + Estrudi - Direction - Direzione + + Direction + Direzione - Along normal - Lungo la normale + + Along normal + Lungo la normale - Length: - Lunghezza: + + Length: + Lunghezza: - 3D view - Vista 3D + + 3D view + Vista 3D - Note:This option works for planes only - Nota: questa opzione funziona solo per i piani + + Note:This option works for planes only + Nota: questa opzione funziona solo per i piani - Shape - Forma + + Create solid + Crea solido - - + + Taper outward angle + - X: - X: + + Shape + Forma - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Seleziona prima una forma da estrudere. + + Z: + Z: - The document '%1' doesn't exist. - Il documento '%1' non esiste. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Seleziona prima una forma da estrudere. + + + + The document '%1' doesn't exist. + Il documento '%1' non esiste. + + + PartGui::DlgFilletEdges - - Fillet Edges - Raccorda spigoli + + Fillet Edges + Raccorda spigoli - Fillet Parameter - Parametri raccordo + + Fillet Parameter + Parametri raccordo - Radius: - Raggio: + + Radius: + Raggio: - Fillet type: - Tipo di raccordo: + + Fillet type: + Tipo di raccordo: - Constant Radius - Raggio costante + + Constant Radius + Raggio costante - Variable Radius - Raggio variabile + + Variable Radius + Raggio variabile - Shape - Forma + + Shape + Forma - Selected shape: - Forma selezionata: + + Selected shape: + Forma selezionata: - No selection - Nessuna selezione + + No selection + Nessuna selezione - - Edges to fillet - Spigoli da raccordare + + Edges to fillet + Spigoli da raccordare - Start radius - Raggio iniziale + + + Start radius + Raggio iniziale - End radius - Raggio finale + + End radius + Raggio finale - Radius - Raggio + + Radius + Raggio - No edge selected - Nessuno spigolo selezionato + + No edge selected + Nessuno spigolo selezionato - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Nessuna entità spigolo è stata assegnata da raccordare. + Nessuna entità spigolo è stata assegnata da raccordare. Assegnare una o più entità raccordo prima. - - All - Tutto + + All + Tutto - None - Nessuno + + None + Nessuno - - Edge%1 - Spigoli %1 + + + Edge%1 + Spigoli %1 - No shape selected - Nessuna forma selezionata + + No shape selected + Nessuna forma selezionata - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nessuna forma valida è stat selezionata. + Nessuna forma valida è stat selezionata. Seleziona prima una forma valida dal menu a tendina. - - + + PartGui::DlgPartBox - - Box definition - Definizione prisma + + Box definition + Definizione prisma - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Annulla + + Cancel + Annulla - OK - OK + + OK + OK - Size: - Dimensione: + + Size: + Dimensione: - Height: - Altezza: + + Height: + Altezza: - Width: - Larghezza: + + Width: + Larghezza: - Length: - Lunghezza: + + Length: + Lunghezza: - Position: - Posizione: + + Position: + Posizione: - Direction: - Direzione: + + Direction: + Direzione: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Definizione cilindro + + Cylinder definition + Definizione cilindro - Parameter - Parametro + + Parameter + Parametro - Height: - Altezza: + + Height: + Altezza: - Radius: - Raggio: + + Radius: + Raggio: - Position: - Posizione: + + Position: + Posizione: - Direction: - Direzione: + + Direction: + Direzione: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Annulla + + Cancel + Annulla - - + + PartGui::DlgPartImportIges - - IGES input file - File input IGES + + IGES input file + File input IGES - ... - ... + + ... + ... - Cancel - Annulla + + Cancel + Annulla - OK - OK + + OK + OK - File Name - Nome file + + File Name + Nome file - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Tutti i File (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Tutti i File (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Annulla + + Cancel + Annulla - OK - OK + + OK + OK - Step input file - File input Step + + Step input file + File input Step - File Name - Nome file + + File Name + Nome file - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Tutti i File (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Tutti i File (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Primitive geometriche + + Geometric Primitives + Primitive geometriche - Primitive - Primitiva + Primitive + Primitiva - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angolo - 0 per cyl + Angle - 0 for cyl + Angolo - 0 per cyl - Angle0 - Angolo0 + Angle0 + Angolo0 - Angle1 - Angolo1 + Angle1 + Angolo1 - X Axis Value: - Valore asse X: + X Axis Value: + Valore asse X: - Y Axis Value: - Valore asse Y: + Y Axis Value: + Valore asse Y: - Z Axis Value: - Valore asse Z: + Z Axis Value: + Valore asse Z: - Wedge - Cuneo + + Wedge + Cuneo - Circle - Cerchio + + Circle + Cerchio - Vertex - Vertice + Vertex + Vertice - Position - Posizione + Position + Posizione - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Direzione: + Direction: + Direzione: - Y: - Y: + + + + Y: + Y: - Plane - Piano + + Plane + Piano - Box - Prisma + + Box + Prisma - Cylinder - Cilindro + + Cylinder + Cilindro - Cone - Cono + + Cone + Cono - Sphere - Sfera + + Sphere + Sfera - Ellipsoid - Ellissoide + + Ellipsoid + Ellissoide - Torus - Toro + + Torus + Toro - Parameter - Parametro + + Ellipse + - Width: - Larghezza: + + Point + - Length: - Lunghezza: + + Line + - Height: - Altezza: + + Parameter + Parametro - Angle: - Angolo: + + + Width: + Larghezza: - Radius: - Raggio: + + + Length: + Lunghezza: - Radius 1: - Raggio 1: + + + + + Height: + Altezza: - Radius 2: - Raggio 2: + + + + Angle: + Angolo: - U parametric: - Parametro U: + + + + + Radius: + Raggio: - V parametric: - Parametro V: + + + + Radius 1: + Raggio 1: - &Create - &Crea + + + + Radius 2: + Raggio 2: - Alt+C - Alt+C + + + + U parametric: + Parametro U: - Cl&ose - C&hiudi + + + + V parametric: + Parametro V: - Alt+O - Alt+H + + X min/max: + - - Create %1 - Crea %1 + + Y min/max: + - No active document - Nessun documento attivo + + Z min/max: + - - Pitch: - Passo: + + X2 min/max: + - Helix - Elica + + Z2 min/max: + - 3D View - Vista 3D + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Crea + + + Alt+C + Alt+C + + + Cl&ose + C&hiudi + + + Alt+O + Alt+H + + + + + + Create %1 + Crea %1 + + + + No active document + Nessun documento attivo + + + + Pitch: + Passo: + + + + Helix + Elica + + + 3D View + Vista 3D + + + PartGui::DlgRevolution - - Revolve - Rivoluziona + + Revolve + Rivoluziona - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Angolo: + + Angle: + Angolo: - Z: - Z: + + Z: + Z: - Axis: - Assi: + + Axis: + Assi: - Shape - Forma + + Shape + Forma - - Select a shape for revolution, first. - Seleziona prima una forma per la rivoluzione. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Seleziona prima una forma per la rivoluzione. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Vista Precisione / Performance + + View accuracy / Performance + Vista Precisione / Performance - View smoothing - Vista piatta + + View smoothing + Vista piatta - Using high-quality normals - Usare normali di alta qualità + + Using high-quality normals + Usare normali di alta qualità - This will slow down render speed but will lead to nicer results - Questo rallenterà la velocità di render ma si otterranno risultati migliori + + This will slow down render speed but will lead to nicer results + Questo rallenterà la velocità di render ma si otterranno risultati migliori - Defines the appearance of surfaces - Definisce l'estetica della superfici + + Defines the appearance of surfaces + Definisce l'estetica della superfici - Shape view - Visualizzazione della figura + + Shape view + Visualizzazione della figura - Tessellation - Tassellazione + + Tessellation + Tassellazione - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Ombreggiatura piatta/Ombreggiatura Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Con l'ombreggiatura piatta le superfici normali non sono definite con il vertice risultano con una estetica non reale per superfici curve mentre usando l'ombreggiatura Phong shading risulta un'estetica più liscia. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Se questa opzione non è selezionata, verrà usata l'ombreggiatura Phong. Se selezionata verrà usata l'ombreggiatura piatta.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Ombreggiatura piatta/Ombreggiatura Phong</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Con l'ombreggiatura piatta le superfici normali non sono definite con il vertice risultano con una estetica non reale per superfici curve mentre usando l'ombreggiatura Phong shading risulta un'estetica più liscia. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Se questa opzione non è selezionata, verrà usata l'ombreggiatura Phong. Se selezionata verrà usata l'ombreggiatura piatta.</p></body></html> - Do not define normal per vertex - Non definire le normali per i vertici + + Do not define normal per vertex + Non definire le normali per i vertici - Defines the deviation of tessellation to the actual surface - Definisce la deviazione della tassellazione della superficie attuale + + Defines the deviation of tessellation to the actual surface + Definisce la deviazione della tassellazione della superficie attuale - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tassellazione</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definisce la massima deviazione della mesh tassellata della superficie. Più piccolo è il valore più lenta sarà la velocità di render e migliore sarà l'estetica.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tassellazione</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definisce la massima deviazione della mesh tassellata della superficie. Più piccolo è il valore più lenta sarà la velocità di render e migliore sarà l'estetica.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definire le normali ai vertici è anche chiamato <span style=" font-style:italic;">Ombreggiatura Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mentre definire le normali alle facce è chiamato </span>Ombreggiatura piatta<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definire le normali ai vertici è anche chiamato <span style=" font-style:italic;">Ombreggiatura Phong</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mentre definire le normali alle facce è chiamato </span>Ombreggiatura piatta<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normali di alta qualità</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Questo rallenterà la velocità di render ma si otterranno risultati migliori.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Normali di alta qualità</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Questo rallenterà la velocità di render ma si otterranno risultati migliori.</p></body></html> - Maximum deviation depending on the model bounding box - Massima deviazione dipendente dal riquadro di delimitazione del modello + + Maximum deviation depending on the model bounding box + Massima deviazione dipendente dal riquadro di delimitazione del modello - % - % + + % + % - - Deviation - Deviazione + + Deviation + Deviazione - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - L'impostazione di una deviazione troppo piccola provoca la richiesta di più tempo per la tassellazione e quindi blocca o rallenta la GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + L'impostazione di una deviazione troppo piccola provoca la richiesta di più tempo per la tassellazione e quindi blocca o rallenta la GUI. - - + + PartGui::DlgSettingsGeneral - - General - Generale + + General + Generale - Export - Esporta + + Export + Esporta - Millimeter - Millimetro + + Millimeter + Millimetro - Meter - Metro + + Meter + Metro - Inch - Pollice + + Inch + Pollice - Units for export of STEP/IGES - Unità per l'esportazione STEP/IGES + + Units for export of STEP/IGES + Unità per l'esportazione STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Posizione + + + + 3D View + Vista 3D + + + PartGui::LoftWidget - - Too few elements - Troppo pochi elementi + + + Vertex/Wire + Vertice/Wire - At least two vertices or wires are required. - Sono necessari almeno due vertici o wire. + + + Loft + Loft - - + + + Too few elements + Troppo pochi elementi + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Sono necessari almeno due vertici o wire. + + + PartGui::Mirroring - - Mirroring - Specchia + + Mirroring + Specchia - Shapes - Forme + + Shapes + Forme - Mirror plane: - Piano di specchiatura: + + Mirror plane: + Piano di specchiatura: - XY plane - Piano XY + + XY plane + Piano XY - XZ plane - Piano XZ + + XZ plane + Piano XZ - YZ plane - Piano YZ + + YZ plane + Piano YZ - Base point: - Punto base: + + Base point: + Punto base: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Seleziona prima una forma da specchiare. + + Select a shape for mirroring, first. + Seleziona prima una forma da specchiare. - No such document '%1'. - Non esiste nessun documento '%1'. + + No such document '%1'. + Non esiste nessun documento '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Selezione errata + + + + + + Wrong selection + Selezione errata - Select two vertices - Seleziona due vertici + + + Select two vertices + Seleziona due vertici - Select three or more edges - Seleziona tre o più spigoli + Select three or more edges + Seleziona tre o più spigoli - Select two or more faces - Seleziona due o più facce + + Select one or more edges + - Select only one part object - Seleziona un solo oggetto parte + + Select two or more faces + Seleziona due o più facce - Select two vertices to create an edge - Seleziona due vertici per creare uno spigolo + + Select only one part object + Seleziona un solo oggetto parte - Select a closed set of edges - Selezionare un insieme chiuso di spigoli + + Select two vertices to create an edge + Seleziona due vertici per creare uno spigolo - Select adjacent faces - Seleziona facce adiacenti + + Select a closed set of edges + Selezionare un insieme chiuso di spigoli - All shape types can be selected - Tutti i tipi di forma possono essere selezionati + + Select adjacent faces + Seleziona facce adiacenti - - + + + All shape types can be selected + Tutti i tipi di forma possono essere selezionati + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertice/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Troppo pochi elementi + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Valore + Value + Valore - Special - Special + Special + Special - Command - Comando + Command + Comando - Stretch - Stretch + Stretch + Stretch - Move - Sposta + Move + Sposta - Rotate - Ruota + Rotate + Ruota - Offset - Offset + Offset + Offset - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Imposta colore per faccia + + Set color per face + Imposta colore per faccia - Click on the faces in the 3d view to select them. - Clicca sulle facce nella vista 3D per selezionarle. + + Click on the faces in the 3d view to select them. + Clicca sulle facce nella vista 3D per selezionarle. - Faces: - Facce: + + Faces: + Facce: - Set to default - Imposta al valore predefinito + + Set to default + Imposta al valore predefinito - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertice/Wire + Vertex/Wire + Vertice/Wire - Move right - Sposta verso destra + Move right + Sposta verso destra - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Sposta l'elemento selezionato un livello in basso.</b><p>Questo cambierà anche il livello degli elementi padre.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Sposta l'elemento selezionato un livello in basso.</b><p>Questo cambierà anche il livello degli elementi padre.</p> - Move left - Sposta verso sinistra + Move left + Sposta verso sinistra - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Sposta l'elemento selezionato un livello in alto.</b><p>Questo cambierà anche il livello degli elementi padre.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Sposta l'elemento selezionato un livello in alto.</b><p>Questo cambierà anche il livello degli elementi padre.</p> - Move up - Spostare verso l'alto + Move up + Spostare verso l'alto - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> - Move down - Sposta verso il basso + Move down + Sposta verso il basso - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Sposta l'elemento selezionato in basso</b><p>L'elemento verrà spostato all'interno del livello di gerarchia.</p> - Create solid - Crea solido + + Create solid + Crea solido - Ruled surface - Superficie rigata + + Ruled surface + Superficie rigata - - + + PartGui::TaskShapeBuilder - - Create shape - Crea forma + + + Create shape + Crea forma - Edge from vertices - Spigolo da vertici + + Edge from vertices + Spigolo da vertici - Face from edges - Faccia da spigoli + + Face from edges + Faccia da spigoli - Planar - Planare + + Planar + Planare - Shell from faces - Shell da facce + + Shell from faces + Shell da facce - Solid from shell - Solido da shell + + Solid from shell + Solido da shell - Create - Crea + + Create + Crea - All faces - Tutte le facce + + All faces + Tutte le facce - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Crea solido + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Selezione errata + + + + + + Wrong selection + Selezione errata - Select two shapes please. - Selezionare due forme. + + + Select two shapes please. + Selezionare due forme. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Tutti i file CAD (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Tutti i file CAD (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Tutti i File (*.*) + + + + All Files (*.*) + Tutti i File (*.*) - - Sewing Tolerance - Tolleranza di cucitura + + Sewing Tolerance + Tolleranza di cucitura - Enter tolerance for sewing shape: - Inserisci la tolleranza per la forma di cucitura: + + Enter tolerance for sewing shape: + Inserisci la tolleranza per la forma di cucitura: - - Edit mirror plane - Modifica il piano di specchiatura + + Edit mirror plane + Modifica il piano di specchiatura - Transform - Trasforma + + Edit chamfer edges + - - Part design - Progettazione parte + Transform + Trasforma - - Select two shapes or more, please. - Selezionare due o più forme, per favore. + + + Part design + Progettazione parte - You have to select either two edges or two wires. - È necessario selezionare due spigoli o due wire. + + + Select two shapes or more, please. + Selezionare due o più forme, per favore. - - Edit fillet edges - Modifica gli spigoli raccordati + + You have to select either two edges or two wires. + È necessario selezionare due spigoli o due wire. - - Set colors... - Imposta colori... + + Edit fillet edges + Modifica gli spigoli raccordati - - + + + Set colors... + Imposta colori... + + + Workbench - - &Part - &Parte + + &Part + &Parte - &Simple - &Semplice + + &Simple + &Semplice - &Parametric - &Parametrico + + &Parametric + &Parametrico - Part tools - Strumenti Parte + + Part tools + Strumenti Parte - Solids - Solidi + + Solids + Solidi - Boolean - Operazione booleana + + Boolean + Operazione booleana - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ja.ts b/src/Mod/Part/Gui/Resources/translations/Part_ja.ts index e23de27d3..753674db8 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ja.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ja.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Block definition + + Block definition + Block definition - First limit - First limit + + First limit + First limit - Type: - Type: + + + Type: + Type: - mm - mm + + + mm + mm - Length: - Length: + + + Length: + Length: - Dimension - 寸法 + + + Dimension + 寸法 - Up to next - Up to next + + + Up to next + Up to next - Up to last - Up to last + + + Up to last + Up to last - Up to plane - Up to plane + + + Up to plane + Up to plane - Up to face - Up to face + + + Up to face + Up to face - Limit: - Limit: + + + Limit: + Limit: - No selection - No selection + + + + + No selection + No selection - Profile - プロファイル + + Profile + プロファイル - Selection: - Selection: + + Selection: + Selection: - Reverse - Reverse + + Reverse + Reverse - Both sides - ä¸¡å´ + + Both sides + ä¸¡å´ - Second limit - Second limit + + Second limit + Second limit - Direction - æ–¹å‘ + + Direction + æ–¹å‘ - Perpendicular to sketch - スケッãƒã«åž‚ç›´ + + Perpendicular to sketch + スケッãƒã«åž‚ç›´ - Reference - Reference + + Reference + Reference - Apply - é©ç”¨ã™ã‚‹ + + Apply + é©ç”¨ã™ã‚‹ - Cancel - キャンセル + + Cancel + キャンセル - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Boolean... - ブーリアン演算... + + Boolean... + ブーリアン演算... - Run a boolean operation with two shapes selected - é¸æŠžã•れãŸäºŒã¤ã®å›³å½¢ã®ãƒ–ーリアン演算を実行ã—ã¾ã™ + + Run a boolean operation with two shapes selected + é¸æŠžã•れãŸäºŒã¤ã®å›³å½¢ã®ãƒ–ーリアン演算を実行ã—ã¾ã™ - - + + CmdPartBox - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Box - Box + + Box + Box - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Box fix 1 - Box fix 1 + + Box fix 1 + Box fix 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - éƒ¨å“ + + Part + éƒ¨å“ - Box fix 2 - Box fix 2 + + Box fix 2 + Box fix 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - éƒ¨å“ + + Part + éƒ¨å“ - Shape builder... - 形状ビルダー... + + Shape builder... + 形状ビルダー... - Advanced utility to create shapes - 高度ãªå›³å½¢ä½œæˆãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ + + Advanced utility to create shapes + 高度ãªå›³å½¢ä½œæˆãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ - - + + + CmdPartChamfer + + + Part + éƒ¨å“ + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - éƒ¨å“ + + Part + éƒ¨å“ - Intersection - Intersection + + Intersection + Intersection - Make an intersection of two shapes - 二ã¤ã®å›³å½¢ã®äº¤ç‚¹ã‚’ä½œæˆ + + Make an intersection of two shapes + 二ã¤ã®å›³å½¢ã®äº¤ç‚¹ã‚’ä½œæˆ - - + + CmdPartCone - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Cone - Cone + + Cone + Cone - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Cross-sections... - æ–­é¢... + + Cross-sections... + æ–­é¢... - Cross-sections - æ–­é¢ + + Cross-sections + æ–­é¢ - - + + CmdPartCut - Part - éƒ¨å“ + + Part + éƒ¨å“ - Cut - 切りå–り + + Cut + 切りå–り - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create a Cylinder - å††æŸ±ã‚’ä½œæˆ + + Create a Cylinder + å††æŸ±ã‚’ä½œæˆ - Cylinder - Cylinder + + Cylinder + Cylinder - - + + CmdPartExport - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Export CAD... - CAD をエクスãƒãƒ¼ãƒˆ... + + Export CAD... + CAD をエクスãƒãƒ¼ãƒˆ... - Exports to a CAD file - CADファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ + + Exports to a CAD file + CADファイルã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ - - + + CmdPartExtrude - Part - éƒ¨å“ + + Part + éƒ¨å“ - Extrude... - 押ã—出ã—... + + Extrude... + 押ã—出ã—... - Extrude a selected sketch - Extrude a selected sketch + + Extrude a selected sketch + Extrude a selected sketch - - + + CmdPartFillet - Part - éƒ¨å“ + + Part + éƒ¨å“ - Fillet... - フィレット... + + Fillet... + フィレット... - Fillet the selected edges of a shape - Fillet the selected edges of a shape + + Fillet the selected edges of a shape + Fillet the selected edges of a shape - - + + CmdPartFuse - Part - éƒ¨å“ + + Part + éƒ¨å“ - Union - Union + + Union + Union - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - éƒ¨å“ + + Part + éƒ¨å“ - Imports a CAD file - CADファイルをインãƒãƒ¼ãƒˆ + + Imports a CAD file + CADファイルをインãƒãƒ¼ãƒˆ - Import CAD... - Import CAD... + + Import CAD... + Import CAD... - - + + CmdPartImportCurveNet - Part - éƒ¨å“ + + Part + éƒ¨å“ - Import a curve network - Import a curve network + + Import a curve network + Import a curve network - Import curve network... - Import curve network... + + Import curve network... + Import curve network... - - + + CmdPartLoft - Part - éƒ¨å“ + + Part + éƒ¨å“ - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - éƒ¨å“ + + Part + éƒ¨å“ - Convert to solid - ソリッドã«å¤‰æ› + + Convert to solid + ソリッドã«å¤‰æ› - Create solid from a shell or compound - Create solid from a shell or compound + + Create solid from a shell or compound + Create solid from a shell or compound - - + + CmdPartMirror - Part - éƒ¨å“ + + Part + éƒ¨å“ - Mirroring... - ミラーリング... + + Mirroring... + ミラーリング... - Mirroring a selected shape - é¸æŠžã—ãŸå›³å½¢ã‚’ミラーリング + + Mirroring a selected shape + é¸æŠžã—ãŸå›³å½¢ã‚’ミラーリング - - + + CmdPartPickCurveNet - Part - éƒ¨å“ + + Part + éƒ¨å“ - Pick curve network - Pick curve network + + Pick curve network + Pick curve network - Pick a curve network - Pick a curve network + + Pick a curve network + Pick a curve network - - + + CmdPartPrimitives - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create primitives... - プリミティブを作æˆ... + + Create primitives... + プリミティブを作æˆ... - Creation of parametrized geometric primitives - Creation of parametrized geometric primitives + + Creation of parametrized geometric primitives + Creation of parametrized geometric primitives - - + + + CmdPartRefineShape + + + Part + éƒ¨å“ + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - éƒ¨å“ + + Part + éƒ¨å“ - Reverse shapes - 図形をå転 + + Reverse shapes + 図形をå転 - Reverse orientation of shapes - Reverse orientation of shapes + + Reverse orientation of shapes + Reverse orientation of shapes - - + + CmdPartRevolve - Part - éƒ¨å“ + + Part + éƒ¨å“ - Revolve... - 回転... + + Revolve... + 回転... - Revolve a selected shape - é¸æŠžã—ãŸå›³å½¢ã‚’回転 + + Revolve a selected shape + é¸æŠžã—ãŸå›³å½¢ã‚’回転 - - + + CmdPartRuledSurface - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create ruled surface - Create ruled surface + + Create ruled surface + Create ruled surface - Create a ruled surface from two curves - Create a ruled surface from two curves + + Create a ruled surface from two curves + Create a ruled surface from two curves - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - éƒ¨å“ + + Part + éƒ¨å“ - Section - Section + + Section + Section - - + + CmdPartShapeFromMesh - - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create shape from mesh... - メッシュã‹ã‚‰å½¢çŠ¶ã‚’ä½œæˆ... + + Create shape from mesh... + メッシュã‹ã‚‰å½¢çŠ¶ã‚’ä½œæˆ... - Create shape from selected mesh object - Create shape from selected mesh object + + Create shape from selected mesh object + Create shape from selected mesh object - - + + CmdPartSimpleCopy - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - éƒ¨å“ + + Part + éƒ¨å“ - Create Cylinder... - 円柱を作æˆ... + + Create Cylinder... + 円柱を作æˆ... - Create a Cylinder - å††æŸ±ã‚’ä½œæˆ + + Create a Cylinder + å††æŸ±ã‚’ä½œæˆ - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - éƒ¨å“ + + Part + éƒ¨å“ - Sphere - Sphere + + Sphere + Sphere - - + + + CmdPartSweep + + + Part + éƒ¨å“ + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - éƒ¨å“ + + Part + éƒ¨å“ - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Select a shape for extrusion, first. + Select a shape for extrusion, first. + Select a shape for extrusion, first. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Select a shape for revolution, first. + Select a shape for revolution, first. + Select a shape for revolution, first. - - + + DlgSettings3DViewPart - Deviation - Deviation + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - æ–­é¢ + + Cross sections + æ–­é¢ - Guiding plane - Guiding plane + + Guiding plane + Guiding plane - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - ä½ç½®: + + Position: + ä½ç½®: - Sections - Sections + + Sections + Sections - On both sides - On both sides + + On both sides + On both sides - Count - Count + + Count + Count - Distance: - è·é›¢: + + Distance: + è·é›¢: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - ブール演算 + + Boolean Operation + ブール演算 - Second shape - 2番目ã®å›³å½¢ + + Second shape + 2番目ã®å›³å½¢ - First shape - 最åˆã®å›³å½¢ + + First shape + 最åˆã®å›³å½¢ - Boolean operation - ブール演算 + + Boolean operation + ブール演算 - Section - Section + + Section + Section - Difference - Difference + + Difference + Difference - Union - Union + + Union + Union - Intersection - Intersection + + Intersection + Intersection - - Cannot perform a boolean operation with the same shape - Cannot perform a boolean operation with the same shape + + Cannot perform a boolean operation with the same shape + Cannot perform a boolean operation with the same shape - - Solids - ソリッド + + + Solids + ソリッド - Shells - Shells + + + Shells + Shells - Compounds - Compounds + + + Compounds + Compounds - Faces - é¢ + + + Faces + é¢ - Swap selection - Swap selection + + Swap selection + Swap selection - - Select a shape on the left side, first - 最åˆã«å·¦å´ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ + + Select a shape on the left side, first + 最åˆã«å·¦å´ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ - Select a shape on the right side, first - 最åˆã«å³å´ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ + + Select a shape on the right side, first + 最åˆã«å³å´ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ - No active document available - 利用å¯èƒ½ãªã‚¢ã‚¯ãƒ†ã‚£ãƒ–ドキュメントã¯ã‚りã¾ã›ã‚“ã§ã—㟠+ + No active document available + 利用å¯èƒ½ãªã‚¢ã‚¯ãƒ†ã‚£ãƒ–ドキュメントã¯ã‚りã¾ã›ã‚“ã§ã—㟠- One of the selected objects doesn't exist anymore - é¸æŠžã—ãŸã‚ªãƒ–ジェクトã¯ã‚‚ã†å­˜åœ¨ã—ã¾ã›ã‚“ + + One of the selected objects doesn't exist anymore + é¸æŠžã—ãŸã‚ªãƒ–ジェクトã¯ã‚‚ã†å­˜åœ¨ã—ã¾ã›ã‚“ - Performing union on non-solids is not possible - Performing union on non-solids is not possible + + Performing union on non-solids is not possible + Performing union on non-solids is not possible - Performing intersection on non-solids is not possible - Performing intersection on non-solids is not possible + + Performing intersection on non-solids is not possible + Performing intersection on non-solids is not possible - Performing difference on non-solids is not possible - Performing difference on non-solids is not possible + + Performing difference on non-solids is not possible + Performing difference on non-solids is not possible - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extrude + + Extrude + Extrude - Direction - æ–¹å‘ + + Direction + æ–¹å‘ - Along normal - Along normal + + Along normal + Along normal - Length: - Length: + + Length: + Length: - 3D view - 3Dビュー + + 3D view + 3Dビュー - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - 図形 + + Create solid + ã‚½ãƒªãƒƒãƒ‰ä½œæˆ - - + + Taper outward angle + - X: - X: + + Shape + 図形 - Z: - z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Select a shape for extrusion, first. + + Z: + z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Select a shape for extrusion, first. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Fillet Edges + + Fillet Edges + Fillet Edges - Fillet Parameter - Fillet Parameter + + Fillet Parameter + Fillet Parameter - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - Fillet type: - フィレットã®ç¨®é¡ž: + + Fillet type: + フィレットã®ç¨®é¡ž: - Constant Radius - Constant Radius + + Constant Radius + Constant Radius - Variable Radius - Variable Radius + + Variable Radius + Variable Radius - Shape - 図形 + + Shape + 図形 - Selected shape: - Selected shape: + + Selected shape: + Selected shape: - No selection - No selection + + No selection + No selection - - Edges to fillet - Edges to fillet + + Edges to fillet + Edges to fillet - Start radius - Start radius + + + Start radius + Start radius - End radius - End radius + + End radius + End radius - Radius - åŠå¾„ + + Radius + åŠå¾„ - No edge selected - エッジãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ + + No edge selected + エッジãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - No edge entity is checked to fillet. + No edge entity is checked to fillet. Please check one or more edge entities first. - - All - ã™ã¹ã¦ + + All + ã™ã¹ã¦ - None - ãªã— + + None + ãªã— - - Edge%1 - Edge%1 + + + Edge%1 + Edge%1 - No shape selected - 図形ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ + + No shape selected + 図形ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - - + + PartGui::DlgPartBox - - Box definition - Box definition + + Box definition + Box definition - X: - X: + + X: + X: - Z: - z: + + Z: + z: - Y: - Y: + + Y: + Y: - Cancel - キャンセル + + Cancel + キャンセル - OK - OK + + OK + OK - Size: - サイズ: + + Size: + サイズ: - Height: - Height: + + Height: + Height: - Width: - 幅: + + Width: + 幅: - Length: - Length: + + Length: + Length: - Position: - ä½ç½®: + + Position: + ä½ç½®: - Direction: - Direction: + + Direction: + Direction: - - + + PartGui::DlgPartCylinder - - Cylinder definition - 円柱ã®å®šç¾© + + Cylinder definition + 円柱ã®å®šç¾© - Parameter - パラメータ + + Parameter + パラメータ - Height: - Height: + + Height: + Height: - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - Position: - ä½ç½®: + + Position: + ä½ç½®: - Direction: - Direction: + + Direction: + Direction: - X: - X: + + X: + X: - Z: - z: + + Z: + z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - キャンセル + + Cancel + キャンセル - - + + PartGui::DlgPartImportIges - - IGES input file - IGES input file + + IGES input file + IGES input file - ... - ... + + ... + ... - Cancel - キャンセル + + Cancel + キャンセル - OK - OK + + OK + OK - File Name - File Name + + File Name + File Name - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES(*.IGS *.IGES);;ã™ã¹ã¦ã®ãƒ•ァイル(*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES(*.IGS *.IGES);;ã™ã¹ã¦ã®ãƒ•ァイル(*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - キャンセル + + Cancel + キャンセル - OK - OK + + OK + OK - Step input file - Step input file + + Step input file + Step input file - File Name - File Name + + File Name + File Name - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;All Files (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;All Files (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometric Primitives + + Geometric Primitives + Geometric Primitives - Primitive - プリミティブ + Primitive + プリミティブ - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X軸ã®å€¤ï¼š + X Axis Value: + X軸ã®å€¤ï¼š - Y Axis Value: - Y軸ã®å€¤ï¼š + Y Axis Value: + Y軸ã®å€¤ï¼š - Z Axis Value: - Z軸ã®å€¤ï¼š + Z Axis Value: + Z軸ã®å€¤ï¼š - Wedge - Wedge + + Wedge + Wedge - Circle - 円 + + Circle + 円 - Vertex - 頂点 + Vertex + 頂点 - Position - Position + Position + Position - Z: - z: + + + + Z: + z: - X: - X: + + + + X: + X: - Direction: - Direction: + Direction: + Direction: - Y: - Y: + + + + Y: + Y: - Plane - Plane + + Plane + Plane - Box - Box + + Box + Box - Cylinder - Cylinder + + Cylinder + Cylinder - Cone - Cone + + Cone + Cone - Sphere - Sphere + + Sphere + Sphere - Ellipsoid - Ellipsoid + + Ellipsoid + Ellipsoid - Torus - Torus + + Torus + Torus - Parameter - パラメータ + + Ellipse + - Width: - 幅: + + Point + - Length: - Length: + + Line + - Height: - Height: + + Parameter + パラメータ - Angle: - 角度: + + + Width: + 幅: - Radius: - åŠå¾„: + + + Length: + Length: - Radius 1: - åŠå¾„ 1: + + + + + Height: + Height: - Radius 2: - åŠå¾„ 2: + + + + Angle: + 角度: - U parametric: - U parametric: + + + + + Radius: + åŠå¾„: - V parametric: - V parametric: + + + + Radius 1: + åŠå¾„ 1: - &Create - &Create + + + + Radius 2: + åŠå¾„ 2: - Alt+C - Alt+C + + + + U parametric: + U parametric: - Cl&ose - é–‰ã˜ã‚‹(&O) + + + + V parametric: + V parametric: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Create %1 + + Y min/max: + - No active document - No active document + + Z min/max: + - - Pitch: - Pitch: + + X2 min/max: + - Helix - 螺旋 + + Z2 min/max: + - 3D View - 3D 表示 + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Create + + + Alt+C + Alt+C + + + Cl&ose + é–‰ã˜ã‚‹(&O) + + + Alt+O + Alt+O + + + + + + Create %1 + Create %1 + + + + No active document + No active document + + + + Pitch: + Pitch: + + + + Helix + 螺旋 + + + 3D View + 3D 表示 + + + PartGui::DlgRevolution - - Revolve - 回転 + + Revolve + 回転 - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - 角度: + + Angle: + 角度: - Z: - z: + + Z: + z: - Axis: - 軸: + + Axis: + 軸: - Shape - 図形 + + Shape + 図形 - - Select a shape for revolution, first. - Select a shape for revolution, first. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Select a shape for revolution, first. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - View accuracy / Performance + + View accuracy / Performance + View accuracy / Performance - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Using high-quality normals + + Using high-quality normals + Using high-quality normals - This will slow down render speed but will lead to nicer results - This will slow down render speed but will lead to nicer results + + This will slow down render speed but will lead to nicer results + This will slow down render speed but will lead to nicer results - Defines the appearance of surfaces - Defines the appearance of surfaces + + Defines the appearance of surfaces + Defines the appearance of surfaces - Shape view - 図形ビュー + + Shape view + 図形ビュー - Tessellation - Tessellation + + Tessellation + Tessellation - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - Do not define normal per vertex - Do not define normal per vertex + + Do not define normal per vertex + Do not define normal per vertex - Defines the deviation of tessellation to the actual surface - Defines the deviation of tessellation to the actual surface + + Defines the deviation of tessellation to the actual surface + Defines the deviation of tessellation to the actual surface - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">ヒント</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">頂点ã”ã¨ã«æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯<span style=" font-style:italic;">フォンシェーディング</span>ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">ã¾ãŸã€é¢ã”ã¨ã®æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯</span>フラットシェーディング<span style=" font-style:normal;">ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™ã€‚</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">ヒント</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">頂点ã”ã¨ã«æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯<span style=" font-style:italic;">フォンシェーディング</span>ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">ã¾ãŸã€é¢ã”ã¨ã®æ³•線を定義ã™ã‚‹æ–¹æ³•ã¯</span>フラットシェーディング<span style=" font-style:normal;">ã¨å‘¼ã°ã‚Œã¦ã„ã¾ã™ã€‚</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - Maximum deviation depending on the model bounding box + + Maximum deviation depending on the model bounding box + Maximum deviation depending on the model bounding box - % - % + + % + % - - Deviation - Deviation + + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - 標準 + + General + 標準 - Export - エクスãƒãƒ¼ãƒˆ + + Export + エクスãƒãƒ¼ãƒˆ - Millimeter - ミリメートル + + Millimeter + ミリメートル - Meter - メートル + + Meter + メートル - Inch - インム+ + Inch + インム- Units for export of STEP/IGES - Units for export of STEP/IGES + + Units for export of STEP/IGES + Units for export of STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Position + + + + 3D View + 3D 表示 + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + 頂点/連線 - At least two vertices or wires are required. - å°‘ãªãã¨ã‚‚二ã¤ã®é ‚点ã‹é€£ç·šãŒå¿…è¦ã§ã™ã€‚ + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + å°‘ãªãã¨ã‚‚二ã¤ã®é ‚点ã‹é€£ç·šãŒå¿…è¦ã§ã™ã€‚ + + + PartGui::Mirroring - - Mirroring - ミラーリング + + Mirroring + ミラーリング - Shapes - Shapes + + Shapes + Shapes - Mirror plane: - Mirror plane: + + Mirror plane: + Mirror plane: - XY plane - XYå¹³é¢ + + XY plane + XYå¹³é¢ - XZ plane - XZå¹³é¢ + + XZ plane + XZå¹³é¢ - YZ plane - YZå¹³é¢ + + YZ plane + YZå¹³é¢ - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - 最åˆã«ãƒŸãƒ©ãƒ¼ãƒªãƒ³ã‚°ã®ãŸã‚ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ + + Select a shape for mirroring, first. + 最åˆã«ãƒŸãƒ©ãƒ¼ãƒªãƒ³ã‚°ã®ãŸã‚ã®å›³å½¢ã‚’é¸æŠžã—ã¾ã™ - No such document '%1'. - No such document '%1'. + + No such document '%1'. + No such document '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select two vertices - 二ã¤ã®é ‚ç‚¹ã‚’é¸æŠž + + + Select two vertices + 二ã¤ã®é ‚ç‚¹ã‚’é¸æŠž - Select three or more edges - 三ã¤ä»¥ä¸Šã®ã‚¨ãƒƒã‚¸ã‚’é¸æŠž + Select three or more edges + 三ã¤ä»¥ä¸Šã®ã‚¨ãƒƒã‚¸ã‚’é¸æŠž - Select two or more faces - 二ã¤ä»¥ä¸Šã®é¢ã‚’é¸æŠž + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + 二ã¤ä»¥ä¸Šã®é¢ã‚’é¸æŠž - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - 隣接ã™ã‚‹é¢ã‚’é¸æŠž + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + 隣接ã™ã‚‹é¢ã‚’é¸æŠž - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + 頂点/連線 + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - 値 + Value + 値 - Special - Special + Special + Special - Command - コマンド + Command + コマンド - Stretch - Stretch + Stretch + Stretch - Move - 移動 + Move + 移動 - Rotate - 回転 + Rotate + 回転 - Offset - オフセット + Offset + オフセット - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - é¢ã”ã¨ã®è‰²ã®è¨­å®š + + Set color per face + é¢ã”ã¨ã®è‰²ã®è¨­å®š - Click on the faces in the 3d view to select them. - ãã‚Œã‚‰ã‚’é¸æŠžã™ã‚‹ã«ã¯ã€3Dビューã§é¢ã‚’クリックã—ã¦ãã ã•ã„。 + + Click on the faces in the 3d view to select them. + ãã‚Œã‚‰ã‚’é¸æŠžã™ã‚‹ã«ã¯ã€3Dビューã§é¢ã‚’クリックã—ã¦ãã ã•ã„。 - Faces: - é¢: + + Faces: + é¢: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - 頂点/連線 + Vertex/Wire + 頂点/連線 - Move right - å³ã¸ç§»å‹• + Move right + å³ã¸ç§»å‹• - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>é¸æŠžã—ãŸé …ç›®1ã¤ä¸‹ã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>é¸æŠžã—ãŸé …ç›®1ã¤ä¸‹ã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> - Move left - å·¦ã¸ç§»å‹• + Move left + å·¦ã¸ç§»å‹• - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>é¸æŠžã—ãŸé …目を1ã¤ä¸Šã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>é¸æŠžã—ãŸé …目を1ã¤ä¸Šã®ãƒ¬ãƒ™ãƒ«ã«ç§»å‹•ã—ã¾ã™ã€‚</b> <p>ã“れã¯ã€è¦ªé …ç›®ã®ãƒ¬ãƒ™ãƒ«ã‚‚変更ã—ã¾ã™ã€‚ </p> - Move up - 上ã¸ç§»å‹• + Move up + 上ã¸ç§»å‹• - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>é¸æŠžã•れãŸé …目を上ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>é¸æŠžã•れãŸé …目を上ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> - Move down - 下ã¸ç§»å‹• + Move down + 下ã¸ç§»å‹• - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>é¸æŠžã•れãŸé …目を下ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>é¸æŠžã•れãŸé …目を下ã¸ç§»å‹•ã—ã¾ã™ã€‚</b> <p>é …ç›®ã¯éšŽå±¤ãƒ¬ãƒ™ãƒ«å†…ã§ç§»å‹•ã•れã¾ã™ã€‚ </p> - Create solid - ã‚½ãƒªãƒƒãƒ‰ä½œæˆ + + Create solid + ã‚½ãƒªãƒƒãƒ‰ä½œæˆ - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - ä½œæˆ + + Create + ä½œæˆ - All faces - ã™ã¹ã¦ã®é¢ + + All faces + ã™ã¹ã¦ã®é¢ - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + ã‚½ãƒªãƒƒãƒ‰ä½œæˆ + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select two shapes please. - Select two shapes please. + + + Select two shapes please. + Select two shapes please. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + + + + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - - Sewing Tolerance - Sewing Tolerance + + Sewing Tolerance + Sewing Tolerance - Enter tolerance for sewing shape: - Enter tolerance for sewing shape: + + Enter tolerance for sewing shape: + Enter tolerance for sewing shape: - - Edit mirror plane - Edit mirror plane + + Edit mirror plane + Edit mirror plane - Transform - å¤‰æ› + + Edit chamfer edges + - - Part design - Part design + Transform + å¤‰æ› - - Select two shapes or more, please. - 二ã¤ä»¥ä¸Šã®å›³å½¢ã‚’é¸æŠžã—ã¦ãã ã•ã„. + + + Part design + Part design - You have to select either two edges or two wires. - You have to select either two edges or two wires. + + + Select two shapes or more, please. + 二ã¤ä»¥ä¸Šã®å›³å½¢ã‚’é¸æŠžã—ã¦ãã ã•ã„. - - Edit fillet edges - フィレットエッジを編集 + + You have to select either two edges or two wires. + You have to select either two edges or two wires. - - Set colors... - 色を設定... + + Edit fillet edges + フィレットエッジを編集 - - + + + Set colors... + 色を設定... + + + Workbench - - &Part - 部å“(&p) + + &Part + 部å“(&p) - &Simple - &Simple + + &Simple + &Simple - &Parametric - &Parametric + + &Parametric + &Parametric - Part tools - 部å“ツール + + Part tools + 部å“ツール - Solids - ソリッド + + Solids + ソリッド - Boolean - Boolean + + Boolean + Boolean - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_nl.ts b/src/Mod/Part/Gui/Resources/translations/Part_nl.ts index 99e22b40e..7ec5699f0 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_nl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_nl.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - Blok-definitie + + Block definition + Blok-definitie - First limit - Eerste limiet + + First limit + Eerste limiet - Type: - Type: + + + Type: + Type: - mm - mm + + + mm + mm - Length: - Lengte: + + + Length: + Lengte: - Dimension - Afmeting + + + Dimension + Afmeting - Up to next - Naar de volgende + + + Up to next + Naar de volgende - Up to last - Naar de laatste + + + Up to last + Naar de laatste - Up to plane - Naar vlak + + + Up to plane + Naar vlak - Up to face - Naar oppervlak + + + Up to face + Naar oppervlak - Limit: - Limiet: + + + Limit: + Limiet: - No selection - Geen selectie + + + + + No selection + Geen selectie - Profile - Profiel + + Profile + Profiel - Selection: - Selectie: + + Selection: + Selectie: - Reverse - Omdraaien + + Reverse + Omdraaien - Both sides - Beide kanten + + Both sides + Beide kanten - Second limit - Tweede limiet + + Second limit + Tweede limiet - Direction - Richting + + Direction + Richting - Perpendicular to sketch - Perpendicular to sketch + + Perpendicular to sketch + Perpendicular to sketch - Reference - Referentie + + Reference + Referentie - Apply - Toepassen + + Apply + Toepassen - Cancel - Annuleren + + Cancel + Annuleren - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Component + + Part + Component - Boolean... - Boolean... + + Boolean... + Boolean... - Run a boolean operation with two shapes selected - Een Booleaanse bewerking uitvoeren met twee geselecteerde vormen + + Run a boolean operation with two shapes selected + Een Booleaanse bewerking uitvoeren met twee geselecteerde vormen - - + + CmdPartBox - - Part - Component + + Part + Component - Box - Blok + + Box + Blok - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - Component + + Part + Component - Box fix 1 - Blok positie 1 + + Box fix 1 + Blok positie 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - Component + + Part + Component - Box fix 2 - Blok positie 2 + + Box fix 2 + Blok positie 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - Component + + Part + Component - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + Component + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Component + + Part + Component - Intersection - Snijpunt + + Intersection + Snijpunt - Make an intersection of two shapes - Make an intersection of two shapes + + Make an intersection of two shapes + Make an intersection of two shapes - - + + CmdPartCone - - Part - Component + + Part + Component - Cone - Kegel + + Cone + Kegel - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - Component + + Part + Component - Cross-sections... - Dwarsdoorsneden... + + Cross-sections... + Dwarsdoorsneden... - Cross-sections - Dwarsdoorsneden + + Cross-sections + Dwarsdoorsneden - - + + CmdPartCut - Part - Component + + Part + Component - Cut - Snijden + + Cut + Snijden - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - Component + + Part + Component - Create a Cylinder - Maak een cilinder + + Create a Cylinder + Maak een cilinder - Cylinder - Cilinder + + Cylinder + Cilinder - - + + CmdPartExport - - Part - Component + + Part + Component - Export CAD... - Exporteer CAD... + + Export CAD... + Exporteer CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - Component + + Part + Component - Extrude... - Uitrekken... + + Extrude... + Uitrekken... - Extrude a selected sketch - Een geselecteerde schets extruderen + + Extrude a selected sketch + Een geselecteerde schets extruderen - - + + CmdPartFillet - Part - Component + + Part + Component - Fillet... - Afronden... + + Fillet... + Afronden... - Fillet the selected edges of a shape - Rond de geselecteerde randen van een vorm af + + Fillet the selected edges of a shape + Rond de geselecteerde randen van een vorm af - - + + CmdPartFuse - Part - Component + + Part + Component - Union - Verbinden + + Union + Verbinden - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - Component + + Part + Component - Imports a CAD file - Importeert een CAD-bestand + + Imports a CAD file + Importeert een CAD-bestand - Import CAD... - Import CAD... + + Import CAD... + Import CAD... - - + + CmdPartImportCurveNet - Part - Component + + Part + Component - Import a curve network - Importeer een gekromd raster + + Import a curve network + Importeer een gekromd raster - Import curve network... - Importeer een gekromd raster... + + Import curve network... + Importeer een gekromd raster... - - + + CmdPartLoft - Part - Component + + Part + Component - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Component + + Part + Component - Convert to solid - Converteren naar volumemodel + + Convert to solid + Converteren naar volumemodel - Create solid from a shell or compound - Create solid from a shell or compound + + Create solid from a shell or compound + Create solid from a shell or compound - - + + CmdPartMirror - Part - Component + + Part + Component - Mirroring... - Spiegelen... + + Mirroring... + Spiegelen... - Mirroring a selected shape - Spiegelen van een geselecteerde vorm + + Mirroring a selected shape + Spiegelen van een geselecteerde vorm - - + + CmdPartPickCurveNet - Part - Component + + Part + Component - Pick curve network - Kies een gekromd raster + + Pick curve network + Kies een gekromd raster - Pick a curve network - Kies een gekromd raster + + Pick a curve network + Kies een gekromd raster - - + + CmdPartPrimitives - Part - Component + + Part + Component - Create primitives... - Maak primitieven... + + Create primitives... + Maak primitieven... - Creation of parametrized geometric primitives - Het maken van geparametriseerde geometrische primitieven + + Creation of parametrized geometric primitives + Het maken van geparametriseerde geometrische primitieven - - + + + CmdPartRefineShape + + + Part + Component + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Component + + Part + Component - Reverse shapes - Omkeren van vormen + + Reverse shapes + Omkeren van vormen - Reverse orientation of shapes - Omgekeerde oriëntatie van vormen + + Reverse orientation of shapes + Omgekeerde oriëntatie van vormen - - + + CmdPartRevolve - Part - Component + + Part + Component - Revolve... - Revolve... + + Revolve... + Revolve... - Revolve a selected shape - Revolve a selected shape + + Revolve a selected shape + Revolve a selected shape - - + + CmdPartRuledSurface - Part - Component + + Part + Component - Create ruled surface - Create ruled surface + + Create ruled surface + Create ruled surface - Create a ruled surface from two curves - Create a ruled surface from two curves + + Create a ruled surface from two curves + Create a ruled surface from two curves - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - Component + + Part + Component - Section - Deel + + Section + Deel - - + + CmdPartShapeFromMesh - - Part - Component + + Part + Component - Create shape from mesh... - Create shape from mesh... + + Create shape from mesh... + Create shape from mesh... - Create shape from selected mesh object - Create shape from selected mesh object + + Create shape from selected mesh object + Create shape from selected mesh object - - + + CmdPartSimpleCopy - Part - Component + + Part + Component - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Component + + Part + Component - Create Cylinder... - Maak Cilinder... + + Create Cylinder... + Maak Cilinder... - Create a Cylinder - Maak een cilinder + + Create a Cylinder + Maak een cilinder - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - Component + + Part + Component - Sphere - Bol + + Sphere + Bol - - + + + CmdPartSweep + + + Part + Component + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - Component + + Part + Component - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Selecteer eerst een vorm voor extrusie. + Select a shape for extrusion, first. + Selecteer eerst een vorm voor extrusie. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Selecteer eerst een vorm om te roteren. + Select a shape for revolution, first. + Selecteer eerst een vorm om te roteren. - - + + DlgSettings3DViewPart - Deviation - Deviation + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Cross sections + + Cross sections + Cross sections - Guiding plane - Guiding plane + + Guiding plane + Guiding plane - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Positie: + + Position: + Positie: - Sections - Sections + + Sections + Sections - On both sides - Aan beide zijden + + On both sides + Aan beide zijden - Count - Tellen + + Count + Tellen - Distance: - Afstand: + + Distance: + Afstand: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boleaanse bewerkingen + + Boolean Operation + Boleaanse bewerkingen - Second shape - Tweede vorm + + Second shape + Tweede vorm - First shape - Eerste vorm + + First shape + Eerste vorm - Boolean operation - Boleaanse operatie + + Boolean operation + Boleaanse operatie - Section - Deel + + Section + Deel - Difference - verschil + + Difference + verschil - Union - Verbinden + + Union + Verbinden - Intersection - Snijpunt + + Intersection + Snijpunt - - Cannot perform a boolean operation with the same shape - Kan een booleaanse bewerking niet uit te voeren met dezelfde vorm + + Cannot perform a boolean operation with the same shape + Kan een booleaanse bewerking niet uit te voeren met dezelfde vorm - - Solids - Volumemodel + + + Solids + Volumemodel - Shells - Shells + + + Shells + Shells - Compounds - Compounds + + + Compounds + Compounds - Faces - Vlakken + + + Faces + Vlakken - Swap selection - Wissel selectie + + Swap selection + Wissel selectie - - Select a shape on the left side, first - Selecteer eerst een vorm aan de linkerkant + + Select a shape on the left side, first + Selecteer eerst een vorm aan de linkerkant - Select a shape on the right side, first - Selecteer eerst een vorm aan de rechterkant + + Select a shape on the right side, first + Selecteer eerst een vorm aan de rechterkant - No active document available - Geen actief document beschikbaar + + No active document available + Geen actief document beschikbaar - One of the selected objects doesn't exist anymore - Eén van de geselecteerde objecten bestaat niet meer + + One of the selected objects doesn't exist anymore + Eén van de geselecteerde objecten bestaat niet meer - Performing union on non-solids is not possible - Performing union on non-solids is not possible + + Performing union on non-solids is not possible + Performing union on non-solids is not possible - Performing intersection on non-solids is not possible - Performing intersection on non-solids is not possible + + Performing intersection on non-solids is not possible + Performing intersection on non-solids is not possible - Performing difference on non-solids is not possible - Performing difference on non-solids is not possible + + Performing difference on non-solids is not possible + Performing difference on non-solids is not possible - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Uitrekken + + Extrude + Uitrekken - Direction - Richting + + Direction + Richting - Along normal - Langs de normaal + + Along normal + Langs de normaal - Length: - Lengte: + + Length: + Lengte: - 3D view - 3D view + + 3D view + 3D view - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - Vorm + + Create solid + Maak een volumemodel - - '' + + Taper outward angle + - X: - X: + + Shape + Vorm - Z: - Z: + + '' - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Selecteer eerst een vorm voor extrusie. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Selecteer eerst een vorm voor extrusie. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Kanten afronden + + Fillet Edges + Kanten afronden - Fillet Parameter - Afrond-parameter + + Fillet Parameter + Afrond-parameter - Radius: - Straal: + + Radius: + Straal: - Fillet type: - Afrond-type: + + Fillet type: + Afrond-type: - Constant Radius - Constante radius + + Constant Radius + Constante radius - Variable Radius - Variabele radius + + Variable Radius + Variabele radius - Shape - Vorm + + Shape + Vorm - Selected shape: - Geselecteerde vorm: + + Selected shape: + Geselecteerde vorm: - No selection - Geen selectie + + No selection + Geen selectie - - Edges to fillet - Af te ronden kanten + + Edges to fillet + Af te ronden kanten - Start radius - Start-radius + + + Start radius + Start-radius - End radius - Eind-radius + + End radius + Eind-radius - Radius - Radius + + Radius + Radius - No edge selected - Geen kant geselecteerd + + No edge selected + Geen kant geselecteerd - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Geen rand is geselecteerd om af te ronden. + Geen rand is geselecteerd om af te ronden. Gelieve eerst één of meerdere randen te selecteren. - - All - Alles + + All + Alles - None - Geen + + None + Geen - - Edge%1 - Rand %1 + + + Edge%1 + Rand %1 - No shape selected - Geen vorm geselecteerd + + No shape selected + Geen vorm geselecteerd - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Geen geldige vorm geselecteerd. Selecteer eerst een geldige vorm in het uitklap-scherm. + Geen geldige vorm geselecteerd. Selecteer eerst een geldige vorm in het uitklap-scherm. - - + + PartGui::DlgPartBox - - Box definition - Blok-definitie + + Box definition + Blok-definitie - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Annuleren + + Cancel + Annuleren - OK - OK + + OK + OK - Size: - Grootte: + + Size: + Grootte: - Height: - Hoogte: + + Height: + Hoogte: - Width: - Breedte: + + Width: + Breedte: - Length: - Lengte: + + Length: + Lengte: - Position: - Positie: + + Position: + Positie: - Direction: - Richting: + + Direction: + Richting: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Cilinder-definitie + + Cylinder definition + Cilinder-definitie - Parameter - Parameter + + Parameter + Parameter - Height: - Hoogte: + + Height: + Hoogte: - Radius: - Straal: + + Radius: + Straal: - Position: - Positie: + + Position: + Positie: - Direction: - Richting: + + Direction: + Richting: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Annuleren + + Cancel + Annuleren - - + + PartGui::DlgPartImportIges - - IGES input file - IGES-invoer bestand + + IGES input file + IGES-invoer bestand - ... - ... + + ... + ... - Cancel - Annuleren + + Cancel + Annuleren - OK - OK + + OK + OK - File Name - Bestandsnaam + + File Name + Bestandsnaam - - '' + + '' - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES(*.igs *.iges);;Alle bestanden(*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES(*.igs *.iges);;Alle bestanden(*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Annuleren + + Cancel + Annuleren - OK - OK + + OK + OK - Step input file - Step input-bestand + + Step input file + Step input-bestand - File Name - Bestandsnaam + + File Name + Bestandsnaam - - '' + + '' - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP(*.stp *.step);;Alle bestanden(*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP(*.stp *.step);;Alle bestanden(*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometrische primitieven + + Geometric Primitives + Geometrische primitieven - Primitive - Primitieve + Primitive + Primitieve - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Hoek - 0 voor cil + Angle - 0 for cyl + Hoek - 0 voor cil - Angle0 - Hoek0 + Angle0 + Hoek0 - Angle1 - Hoek1 + Angle1 + Hoek1 - X Axis Value: - X-as Waarde: + X Axis Value: + X-as Waarde: - Y Axis Value: - Y-as Waarde: + Y Axis Value: + Y-as Waarde: - Z Axis Value: - Z-as Waarde: + Z Axis Value: + Z-as Waarde: - Wedge - Wig + + Wedge + Wig - Circle - Cirkel + + Circle + Cirkel - Vertex - Vertex + Vertex + Vertex - Position - Positie + Position + Positie - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Richting: + Direction: + Richting: - Y: - Y: + + + + Y: + Y: - Plane - Vlak + + Plane + Vlak - Box - Blok + + Box + Blok - Cylinder - Cilinder + + Cylinder + Cilinder - Cone - Kegel + + Cone + Kegel - Sphere - Bol + + Sphere + Bol - Ellipsoid - Ellipsoïde + + Ellipsoid + Ellipsoïde - Torus - Torus + + Torus + Torus - Parameter - Parameter + + Ellipse + - Width: - Breedte: + + Point + - Length: - Lengte: + + Line + - Height: - Hoogte: + + Parameter + Parameter - Angle: - Hoek: + + + Width: + Breedte: - Radius: - Straal: + + + Length: + Lengte: - Radius 1: - Straal 1: + + + + + Height: + Hoogte: - Radius 2: - Straal 2: + + + + Angle: + Hoek: - U parametric: - U-parameter: + + + + + Radius: + Straal: - V parametric: - V-parameter: + + + + Radius 1: + Straal 1: - &Create - &Maken + + + + Radius 2: + Straal 2: - Alt+C - Alt+C + + + + U parametric: + U-parameter: - Cl&ose - &Sluiten + + + + V parametric: + V-parameter: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Maak %1 + + Y min/max: + - No active document - Geen actief document + + Z min/max: + - - Pitch: - Steiging: + + X2 min/max: + - Helix - Helix + + Z2 min/max: + - 3D View - 3D-aanzicht + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Maken + + + Alt+C + Alt+C + + + Cl&ose + &Sluiten + + + Alt+O + Alt+O + + + + + + Create %1 + Maak %1 + + + + No active document + Geen actief document + + + + Pitch: + Steiging: + + + + Helix + Helix + + + 3D View + 3D-aanzicht + + + PartGui::DlgRevolution - - Revolve - Draaien + + Revolve + Draaien - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Hoek: + + Angle: + Hoek: - Z: - Z: + + Z: + Z: - Axis: - Assen: + + Axis: + Assen: - Shape - Vorm + + Shape + Vorm - - Select a shape for revolution, first. - Selecteer eerst een vorm om te roteren. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Selecteer eerst een vorm om te roteren. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Bekijk nauwkeurigheid/prestatie + + View accuracy / Performance + Bekijk nauwkeurigheid/prestatie - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Met behulp van hoge-kwaliteit normalen + + Using high-quality normals + Met behulp van hoge-kwaliteit normalen - This will slow down render speed but will lead to nicer results - Dit zal de render-snelheid verlagen maar leiden tot mooiere resultaten + + This will slow down render speed but will lead to nicer results + Dit zal de render-snelheid verlagen maar leiden tot mooiere resultaten - Defines the appearance of surfaces - Bepaalt het uiterlijk van oppervlakken + + Defines the appearance of surfaces + Bepaalt het uiterlijk van oppervlakken - Shape view - Vorm-aanzicht + + Shape view + Vorm-aanzicht - Tessellation - Mozaïekwerk + + Tessellation + Mozaïekwerk - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Bij flat shading worden de oppervlaktenormalen niet bepaald per vertex wat leidt tot onrealistische weergave bij gebogen oppervlakten terwijl Phong shading leidt tot een gladder voorkomen. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indien deze optie uitgezet wordt Phong shading gebruikt, anders wordt flat shading gebruikt.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Bij flat shading worden de oppervlaktenormalen niet bepaald per vertex wat leidt tot onrealistische weergave bij gebogen oppervlakten terwijl Phong shading leidt tot een gladder voorkomen. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Indien deze optie uitgezet wordt Phong shading gebruikt, anders wordt flat shading gebruikt.</p></body></html> - Do not define normal per vertex - Definieer geen normaal per vertex + + Do not define normal per vertex + Definieer geen normaal per vertex - Defines the deviation of tessellation to the actual surface - Defines the deviation of tessellation to the actual surface + + Defines the deviation of tessellation to the actual surface + Defines the deviation of tessellation to the actual surface - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Het definiëren van normalen per vertex heet ook wel<span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwijl het definieren van normalen per vlak wordt genoemd</span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Het definiëren van normalen per vertex heet ook wel<span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">terwijl het definieren van normalen per vlak wordt genoemd</span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - Maximum deviation depending on the model bounding box + + Maximum deviation depending on the model bounding box + Maximum deviation depending on the model bounding box - % - % + + % + % - - Deviation - Deviation + + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Algemeen + + General + Algemeen - Export - Exporteren + + Export + Exporteren - Millimeter - Millimeter + + Millimeter + Millimeter - Meter - Meter + + Meter + Meter - Inch - Inch + + Inch + Inch - Units for export of STEP/IGES - Eenheden voor de export naar STEP/IGES + + Units for export of STEP/IGES + Eenheden voor de export naar STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Positie + + + + 3D View + 3D-aanzicht + + + PartGui::LoftWidget - - Too few elements - Te weinig elementen + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - Ten minste twee hoekpunten of draden zijn vereist. + + + Loft + Loft - - + + + Too few elements + Te weinig elementen + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Ten minste twee hoekpunten of draden zijn vereist. + + + PartGui::Mirroring - - Mirroring - Spiegelen + + Mirroring + Spiegelen - Shapes - Vormen + + Shapes + Vormen - Mirror plane: - Spiegelvlak: + + Mirror plane: + Spiegelvlak: - XY plane - XY-vlak + + XY plane + XY-vlak - XZ plane - XZ-vlak + + XZ plane + XZ-vlak - YZ plane - YZ-vlak + + YZ plane + YZ-vlak - Base point: - Basispunt: + + Base point: + Basispunt: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Selecteer eerst een vorm om te spiegelen. + + Select a shape for mirroring, first. + Selecteer eerst een vorm om te spiegelen. - No such document '%1'. - Geen dergelijk document '%1'. + + No such document '%1'. + Geen dergelijk document '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Verkeerde selectie + + + + + + Wrong selection + Verkeerde selectie - Select two vertices - Selecteer twee hoekpunten + + + Select two vertices + Selecteer twee hoekpunten - Select three or more edges - Selecteer drie of meer randen + Select three or more edges + Selecteer drie of meer randen - Select two or more faces - Selecteer twee of meer vlakken + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Selecteer twee of meer vlakken - Select two vertices to create an edge - Selecteer twee hoekpunten om een ​​rand te creëren + + Select only one part object + Select only one part object - Select a closed set of edges - Selecteer een gesloten set van randen + + Select two vertices to create an edge + Selecteer twee hoekpunten om een ​​rand te creëren - Select adjacent faces - Selecteer aangrenzende vlakken + + Select a closed set of edges + Selecteer een gesloten set van randen - All shape types can be selected - Alle vorm types kunnen geselecteerd worden + + Select adjacent faces + Selecteer aangrenzende vlakken - - + + + All shape types can be selected + Alle vorm types kunnen geselecteerd worden + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Te weinig elementen + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Waarde + Value + Waarde - Special - Special + Special + Special - Command - Commando + Command + Commando - Stretch - Stretch + Stretch + Stretch - Move - Verplaatsen + Move + Verplaatsen - Rotate - Draaien + Rotate + Draaien - Offset - Verplaatsing + Offset + Verplaatsing - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Stel kleur per vlak in + + Set color per face + Stel kleur per vlak in - Click on the faces in the 3d view to select them. - Klik op de vlakken in de 3D-weergave om ze te selecteren. + + Click on the faces in the 3d view to select them. + Klik op de vlakken in de 3D-weergave om ze te selecteren. - Faces: - Vlakken: + + Faces: + Vlakken: - Set to default - Ingesteld als standaard + + Set to default + Ingesteld als standaard - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Naar rechts verplaatsen + Move right + Naar rechts verplaatsen - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Verplaats het geselecteerde item één niveau naar beneden.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Verplaats het geselecteerde item één niveau naar beneden.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> - Move left - Naar links verplaatsen + Move left + Naar links verplaatsen - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Verplaats het geselecteerde item één niveau omhoog.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Verplaats het geselecteerde item één niveau omhoog.</b> <p>Dit verandert ook het niveau van het bovenliggende item.</p> - Move up - Naar boven verplaatsen + Move up + Naar boven verplaatsen - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Verplaats het geselecteerde item omlaag.</b><p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Verplaats het geselecteerde item omlaag.</b><p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> - Move down - Naar beneden verplaatsen + Move down + Naar beneden verplaatsen - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Verplaats het geselecteerde item omlaag.</b> <p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Verplaats het geselecteerde item omlaag.</b> <p>Het item wordt verplaatst binnen het hiërarchie niveau.</p> - Create solid - Maak een volumemodel + + Create solid + Maak een volumemodel - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Aanmaken + + Create + Aanmaken - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Maak een volumemodel + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Verkeerde selectie + + + + + + Wrong selection + Verkeerde selectie - Select two shapes please. - Selecteer twee vormen alstublieft. + + + Select two shapes please. + Selecteer twee vormen alstublieft. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Alle CAD-bestanden (*.stp *.step *.igs *.iges *.brep *.brp) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Alle CAD-bestanden (*.stp *.step *.igs *.iges *.brep *.brp) - STEP (*.stp *.step) - STEP(*.stp *.step) + + + + STEP (*.stp *.step) + STEP(*.stp *.step) - IGES (*.igs *.iges) - IGES(*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES(*.igs *.iges) - BREP (*.brp *.brep) - BREP(*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP(*.brp *.brep) - All Files (*.*) - Alle bestanden (*.*) + + + + All Files (*.*) + Alle bestanden (*.*) - - Sewing Tolerance - Sewing Tolerance + + Sewing Tolerance + Sewing Tolerance - Enter tolerance for sewing shape: - Enter tolerance for sewing shape: + + Enter tolerance for sewing shape: + Enter tolerance for sewing shape: - - Edit mirror plane - Bewerk spiegelvlak + + Edit mirror plane + Bewerk spiegelvlak - Transform - Transformeren + + Edit chamfer edges + - - Part design - Onderdeel-ontwerp + Transform + Transformeren - - Select two shapes or more, please. - Selecteer twee of meer vormen, alstublieft. + + + Part design + Onderdeel-ontwerp - You have to select either two edges or two wires. - Je moet of twee randen of twee draden selecteren. + + + Select two shapes or more, please. + Selecteer twee of meer vormen, alstublieft. - - Edit fillet edges - Afgeronde randen bewerken + + You have to select either two edges or two wires. + Je moet of twee randen of twee draden selecteren. - - Set colors... - Set colors... + + Edit fillet edges + Afgeronde randen bewerken - - + + + Set colors... + Set colors... + + + Workbench - - &Part - &Component + + &Part + &Component - &Simple - &Eenvoudig + + &Simple + &Eenvoudig - &Parametric - &Parametrisch + + &Parametric + &Parametrisch - Part tools - Component-gereedschap + + Part tools + Component-gereedschap - Solids - Volumemodel + + Solids + Volumemodel - Boolean - Boolean + + Boolean + Boolean - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_no.ts b/src/Mod/Part/Gui/Resources/translations/Part_no.ts index 18ec893b2..cbe1bc6a6 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_no.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_no.ts @@ -1,1872 +1,2520 @@ - - + + BlockDefinition - - Block definition - Blokkdefinisjon + + Block definition + Blokkdefinisjon - First limit - Første grense + + First limit + Første grense - Type: - Type: + + + Type: + Type: - mm - mm + + + mm + mm - Length: - Lengde: + + + Length: + Lengde: - Dimension - Dimensjon + + + Dimension + Dimensjon - Up to next - Opp til neste + + + Up to next + Opp til neste - Up to last - Opp til siste + + + Up to last + Opp til siste - Up to plane - Opp til plan + + + Up to plane + Opp til plan - Up to face - Opp til flate + + + Up to face + Opp til flate - Limit: - Grense: + + + Limit: + Grense: - No selection - Ingen valg + + + + + No selection + Ingen valg - Profile - Profil + + Profile + Profil - Selection: - Utvalg: + + Selection: + Utvalg: - Reverse - Omvendt + + Reverse + Omvendt - Both sides - Begge sider + + Both sides + Begge sider - Second limit - Andre grense + + Second limit + Andre grense - Direction - Retning + + Direction + Retning - Perpendicular to sketch - Vinkelrett pÃ¥ skisse + + Perpendicular to sketch + Vinkelrett pÃ¥ skisse - Reference - Referanse + + Reference + Referanse - Apply - Bruk + + Apply + Bruk - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Komponent + + Part + Komponent - Boolean... - Boolsk... + + Boolean... + Boolsk... - Run a boolean operation with two shapes selected - Kjør en boolsk operasjon med to valgte komponenter + + Run a boolean operation with two shapes selected + Kjør en boolsk operasjon med to valgte komponenter - - + + CmdPartBox - - Part - Komponent + + Part + Komponent - Box - Boks + + Box + Boks - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - Komponent + + Part + Komponent - Box fix 1 - Boks fiks 1 + + Box fix 1 + Boks fiks 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - Komponent + + Part + Komponent - Box fix 2 - Boks fiks 2 + + Box fix 2 + Boks fiks 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - Komponent + + Part + Komponent - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + Komponent + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Komponent + + Part + Komponent - Intersection - Krysningspunkt + + Intersection + Krysningspunkt - Make an intersection of two shapes - Make an intersection of two shapes + + Make an intersection of two shapes + Make an intersection of two shapes - - + + CmdPartCone - - Part - Komponent + + Part + Komponent - Cone - Kjegle + + Cone + Kjegle - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - Komponent + + Part + Komponent - Cross-sections... - Tverrsnitt... + + Cross-sections... + Tverrsnitt... - Cross-sections - Tverrsnitt + + Cross-sections + Tverrsnitt - - + + CmdPartCut - Part - Komponent + + Part + Komponent - Cut - Klipp ut + + Cut + Klipp ut - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - Komponent + + Part + Komponent - Create a Cylinder - Lag en sylinder + + Create a Cylinder + Lag en sylinder - Cylinder - Sylinder + + Cylinder + Sylinder - - + + CmdPartExport - - Part - Komponent + + Part + Komponent - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - Komponent + + Part + Komponent - Extrude... - Ekstruder... + + Extrude... + Ekstruder... - Extrude a selected sketch - Ekstruder valgt skisse + + Extrude a selected sketch + Ekstruder valgt skisse - - + + CmdPartFillet - Part - Komponent + + Part + Komponent - Fillet... - Avrunding... + + Fillet... + Avrunding... - Fillet the selected edges of a shape - Avrund valgte kanter pÃ¥ en figur + + Fillet the selected edges of a shape + Avrund valgte kanter pÃ¥ en figur - - + + CmdPartFuse - Part - Komponent + + Part + Komponent - Union - Sammenføy + + Union + Sammenføy - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - Komponent + + Part + Komponent - Imports a CAD file - Importerer en CAD-fil + + Imports a CAD file + Importerer en CAD-fil - Import CAD... - Importer CAD... + + Import CAD... + Importer CAD... - - + + CmdPartImportCurveNet - Part - Komponent + + Part + Komponent - Import a curve network - Importer et kurvenettverk + + Import a curve network + Importer et kurvenettverk - Import curve network... - Importer kurvenettverk... + + Import curve network... + Importer kurvenettverk... - - + + CmdPartLoft - Part - Komponent + + Part + Komponent - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Komponent + + Part + Komponent - Convert to solid - Konverter til solid + + Convert to solid + Konverter til solid - Create solid from a shell or compound - Lag solid fra et skall eller sammensatt + + Create solid from a shell or compound + Lag solid fra et skall eller sammensatt - - + + CmdPartMirror - Part - Komponent + + Part + Komponent - Mirroring... - Speiling... + + Mirroring... + Speiling... - Mirroring a selected shape - Speiler en valgt figur + + Mirroring a selected shape + Speiler en valgt figur - - + + CmdPartPickCurveNet - Part - Komponent + + Part + Komponent - Pick curve network - Velg kurvenettverk + + Pick curve network + Velg kurvenettverk - Pick a curve network - Velg kurvenettverk + + Pick a curve network + Velg kurvenettverk - - + + CmdPartPrimitives - Part - Komponent + + Part + Komponent - Create primitives... - Lag primitiver... + + Create primitives... + Lag primitiver... - Creation of parametrized geometric primitives - Opprettelse av parametrisert geometriske primitiver + + Creation of parametrized geometric primitives + Opprettelse av parametrisert geometriske primitiver - - + + + CmdPartRefineShape + + + Part + Komponent + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Komponent + + Part + Komponent - Reverse shapes - Reverser figurer + + Reverse shapes + Reverser figurer - Reverse orientation of shapes - Reverser orientering pÃ¥ figurer + + Reverse orientation of shapes + Reverser orientering pÃ¥ figurer - - + + CmdPartRevolve - Part - Komponent + + Part + Komponent - Revolve... - Dreining... + + Revolve... + Dreining... - Revolve a selected shape - Drei en valgt figur + + Revolve a selected shape + Drei en valgt figur - - + + CmdPartRuledSurface - Part - Komponent + + Part + Komponent - Create ruled surface - Lag en linjert overflate + + Create ruled surface + Lag en linjert overflate - Create a ruled surface from two curves - Lag en linjert overflate av to kurver + + Create a ruled surface from two curves + Lag en linjert overflate av to kurver - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - Komponent + + Part + Komponent - Section - Seksjon + + Section + Seksjon - - + + CmdPartShapeFromMesh - - Part - Komponent + + Part + Komponent - Create shape from mesh... - Lag figur av nett... + + Create shape from mesh... + Lag figur av nett... - Create shape from selected mesh object - Lag figur av valgte nett + + Create shape from selected mesh object + Lag figur av valgte nett - - + + CmdPartSimpleCopy - Part - Komponent + + Part + Komponent - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Komponent + + Part + Komponent - Create Cylinder... - Lag sylinder... + + Create Cylinder... + Lag sylinder... - Create a Cylinder - Lag en sylinder + + Create a Cylinder + Lag en sylinder - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - Komponent + + Part + Komponent - Sphere - Sfære + + Sphere + Sfære - - + + + CmdPartSweep + + + Part + Komponent + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - Komponent + + Part + Komponent - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Velg en figur for ekstrudering først. + Select a shape for extrusion, first. + Velg en figur for ekstrudering først. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Merke en figur for revolusjon først. + Select a shape for revolution, first. + Merke en figur for revolusjon først. - - + + DlgSettings3DViewPart - Deviation - Avvik + Deviation + Avvik - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Innstillinger med for lite avvik gjør tessellasjon tidkrevende. Derav fryser eller bremses GUI ned. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Innstillinger med for lite avvik gjør tessellasjon tidkrevende. Derav fryser eller bremses GUI ned. - - + + PartGui::CrossSections - - Cross sections - Tverrsnitt + + Cross sections + Tverrsnitt - Guiding plane - Veiledende plan + + Guiding plane + Veiledende plan - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Posisjon: + + Position: + Posisjon: - Sections - Seksjoner + + Sections + Seksjoner - On both sides - PÃ¥ begge sider + + On both sides + PÃ¥ begge sider - Count - Antall + + Count + Antall - Distance: - Avstand: + + Distance: + Avstand: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boolsk Operasjon + + Boolean Operation + Boolsk Operasjon - Second shape - Andre figur + + Second shape + Andre figur - First shape - Første figur + + First shape + Første figur - Boolean operation - Boolsk operasjon + + Boolean operation + Boolsk operasjon - Section - Seksjon + + Section + Seksjon - Difference - Differanse + + Difference + Differanse - Union - Sammenføy + + Union + Sammenføy - Intersection - Krysningspunkt + + Intersection + Krysningspunkt - - Cannot perform a boolean operation with the same shape - Kan ikke utføre en boolsk operasjon med samme figur + + Cannot perform a boolean operation with the same shape + Kan ikke utføre en boolsk operasjon med samme figur - - Solids - Solide + + + Solids + Solide - Shells - Skall + + + Shells + Skall - Compounds - Sammensatte + + + Compounds + Sammensatte - Faces - Flater + + + Faces + Flater - Swap selection - Vend om utvalg + + Swap selection + Vend om utvalg - - Select a shape on the left side, first - Velg en figur pÃ¥ venstre side først + + Select a shape on the left side, first + Velg en figur pÃ¥ venstre side først - Select a shape on the right side, first - Velg en figur pÃ¥ høyre side først + + Select a shape on the right side, first + Velg en figur pÃ¥ høyre side først - No active document available - Ingen aktive dokumenter tilgjengelig + + No active document available + Ingen aktive dokumenter tilgjengelig - One of the selected objects doesn't exist anymore - Et av de valgte objektene eksisterer ikke lenger + + One of the selected objects doesn't exist anymore + Et av de valgte objektene eksisterer ikke lenger - Performing union on non-solids is not possible - Ã… utføre sammenføyning pÃ¥ objekter som ikke er solide er umulig + + Performing union on non-solids is not possible + Ã… utføre sammenføyning pÃ¥ objekter som ikke er solide er umulig - Performing intersection on non-solids is not possible - Ã… utføre fellesseksjon pÃ¥ objekter som ikke er solide er umulig + + Performing intersection on non-solids is not possible + Ã… utføre fellesseksjon pÃ¥ objekter som ikke er solide er umulig - Performing difference on non-solids is not possible - Utføre differanse pÃ¥ objekter som ikke er solide er umulig + + Performing difference on non-solids is not possible + Utføre differanse pÃ¥ objekter som ikke er solide er umulig - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Ekstruder + + Extrude + Ekstruder - Direction - Retning + + Direction + Retning - Along normal - Langs med normal + + Along normal + Langs med normal - Length: - Lengde: + + Length: + Lengde: - 3D view - 3D view + + 3D view + 3D view - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - Figur + + Create solid + Create solid - - + + Taper outward angle + - X: - X: + + Shape + Figur - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Velg en figur for ekstrudering først. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Velg en figur for ekstrudering først. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Avrund kanter + + Fillet Edges + Avrund kanter - Fillet Parameter - Avrundingsparameter + + Fillet Parameter + Avrundingsparameter - Radius: - Radius: + + Radius: + Radius: - Fillet type: - Avrundingstype: + + Fillet type: + Avrundingstype: - Constant Radius - Fast radius + + Constant Radius + Fast radius - Variable Radius - Variabel radius + + Variable Radius + Variabel radius - Shape - Figur + + Shape + Figur - Selected shape: - Valgt figur: + + Selected shape: + Valgt figur: - No selection - Ingen valg + + No selection + Ingen valg - - Edges to fillet - Kanter Ã¥ avrunde + + Edges to fillet + Kanter Ã¥ avrunde - Start radius - Startradius + + + Start radius + Startradius - End radius - Sluttradius + + End radius + Sluttradius - Radius - Radius + + Radius + Radius - No edge selected - Ingen kant er valgt + + No edge selected + Ingen kant er valgt - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Ingen kanter merket for avrunding. Merk én eller fler kanter først. + Ingen kanter merket for avrunding. Merk én eller fler kanter først. - - All - Alle + + All + Alle - None - Ingen + + None + Ingen - - Edge%1 - Kant%1 + + + Edge%1 + Kant%1 - No shape selected - Ingen valgt figur + + No shape selected + Ingen valgt figur - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ingen gyldig figur er valgt. Vennligst velg en gyldig figur i rullgardina først. + Ingen gyldig figur er valgt. Vennligst velg en gyldig figur i rullgardina først. - - + + PartGui::DlgPartBox - - Box definition - Boksdefinisjon + + Box definition + Boksdefinisjon - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - Size: - Størrelse: + + Size: + Størrelse: - Height: - Høyde: + + Height: + Høyde: - Width: - Bredde: + + Width: + Bredde: - Length: - Lengde: + + Length: + Lengde: - Position: - Posisjon: + + Position: + Posisjon: - Direction: - Retning: + + Direction: + Retning: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Sylinderdefinisjon + + Cylinder definition + Sylinderdefinisjon - Parameter - Parameter + + Parameter + Parameter - Height: - Høyde: + + Height: + Høyde: - Radius: - Radius: + + Radius: + Radius: - Position: - Posisjon: + + Position: + Posisjon: - Direction: - Retning: + + Direction: + Retning: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Avbryt + + Cancel + Avbryt - - + + PartGui::DlgPartImportIges - - IGES input file - IGES inndatafil + + IGES input file + IGES inndatafil - ... - ... + + ... + ... - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - File Name - Filnavn + + File Name + Filnavn - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Alle filer (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Alle filer (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - Step input file - STEP-inndatafil + + Step input file + STEP-inndatafil - File Name - Filnavn + + File Name + Filnavn - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Alle filer (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Alle filer (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometriske primitiver + + Geometric Primitives + Geometriske primitiver - Primitive - Primitiv + Primitive + Primitiv - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - Sirkel + + Circle + Sirkel - Vertex - Vertex + Vertex + Vertex - Position - Posisjon + Position + Posisjon - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Retning: + Direction: + Retning: - Y: - Y: + + + + Y: + Y: - Plane - Plan + + Plane + Plan - Box - Boks + + Box + Boks - Cylinder - Sylinder + + Cylinder + Sylinder - Cone - Kjegle + + Cone + Kjegle - Sphere - Sfære + + Sphere + Sfære - Ellipsoid - Ellipsoide + + Ellipsoid + Ellipsoide - Torus - Torus + + Torus + Torus - Parameter - Parameter + + Ellipse + - Width: - Bredde: + + Point + - Length: - Lengde: + + Line + - Height: - Høyde: + + Parameter + Parameter - Angle: - Vinkel: + + + Width: + Bredde: - Radius: - Radius: + + + Length: + Lengde: - Radius 1: - Radius 1: + + + + + Height: + Høyde: - Radius 2: - Radius 2: + + + + Angle: + Vinkel: - U parametric: - U parametrisk: + + + + + Radius: + Radius: - V parametric: - V parametrisk: + + + + Radius 1: + Radius 1: - &Create - &Lag + + + + Radius 2: + Radius 2: - Alt+C - Alt+C + + + + U parametric: + U parametrisk: - Cl&ose - L&ukk + + + + V parametric: + V parametrisk: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Lag %1 + + Y min/max: + - No active document - Ingen aktive dokumenter + + Z min/max: + - - Pitch: - Pitch: + + X2 min/max: + - Helix - Heliks + + Z2 min/max: + - 3D View - 3D-visning + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Lag + + + Alt+C + Alt+C + + + Cl&ose + L&ukk + + + Alt+O + Alt+O + + + + + + Create %1 + Lag %1 + + + + No active document + Ingen aktive dokumenter + + + + Pitch: + Pitch: + + + + Helix + Heliks + + + 3D View + 3D-visning + + + PartGui::DlgRevolution - - Revolve - Dreining + + Revolve + Dreining - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Vinkel: + + Angle: + Vinkel: - Z: - Z: + + Z: + Z: - Axis: - Akse: + + Axis: + Akse: - Shape - Figur + + Shape + Figur - - Select a shape for revolution, first. - Merke en figur for revolusjon først. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Merke en figur for revolusjon først. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Vis nøyaktighet / ytelse + + View accuracy / Performance + Vis nøyaktighet / ytelse - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Bruker høykvalitets normaler + + Using high-quality normals + Bruker høykvalitets normaler - This will slow down render speed but will lead to nicer results - Dette vil sinke hastighet pÃ¥ presentasjongjengivelse men vil føre til bedre resultater + + This will slow down render speed but will lead to nicer results + Dette vil sinke hastighet pÃ¥ presentasjongjengivelse men vil føre til bedre resultater - Defines the appearance of surfaces - Definerer utseendet pÃ¥ overflater + + Defines the appearance of surfaces + Definerer utseendet pÃ¥ overflater - Shape view - Figur visning + + Shape view + Figur visning - Tessellation - Tessellasjon + + Tessellation + Tessellasjon - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Enkel/ kompleks skyggelegging</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ved enkel skyggelegging blir ikke oveflatenormalene definert per node. Dette fører til et midre realistisk utseende for kurvede overflater enn ved kompleks skyggelegging. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Merk for kompleks skyggelegging. Hvis ikke blir enkel skyggelegging brukt.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Enkel/ kompleks skyggelegging</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ved enkel skyggelegging blir ikke oveflatenormalene definert per node. Dette fører til et midre realistisk utseende for kurvede overflater enn ved kompleks skyggelegging. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Merk for kompleks skyggelegging. Hvis ikke blir enkel skyggelegging brukt.</p></body></html> - Do not define normal per vertex - Ikke definerer normal per node + + Do not define normal per vertex + Ikke definerer normal per node - Defines the deviation of tessellation to the actual surface - Definerer avvik for tessellasjon pÃ¥ selve overflaten + + Defines the deviation of tessellation to the actual surface + Definerer avvik for tessellasjon pÃ¥ selve overflaten - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellasjon</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definerer maksimum avik fra tessellert nett til overflate. Desto mindre verdi desto tregere fart pÃ¥ presentasjongjengivelse men penere utseende.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellasjon</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definerer maksimum avik fra tessellert nett til overflate. Desto mindre verdi desto tregere fart pÃ¥ presentasjongjengivelse men penere utseende.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ã… definere normaler per node blir og kalt <span style=" font-style:italic;">Phongskyggelegging (kompleks) </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mens Ã¥ definere normalene per flate blir kalt </span>Flateskyggelegging (enkel)<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Ã… definere normaler per node blir og kalt <span style=" font-style:italic;">Phongskyggelegging (kompleks) </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">mens Ã¥ definere normalene per flate blir kalt </span>Flateskyggelegging (enkel)<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Høykvalitets normaler</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dette vil sinke hastighet pÃ¥ presentasjongjengivelse men vil føre til bedre resultater.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Høykvalitets normaler</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Dette vil sinke hastighet pÃ¥ presentasjongjengivelse men vil føre til bedre resultater.</p></body></html> - Maximum deviation depending on the model bounding box - Maksimalt avvik avhenger av modellrammeboksen + + Maximum deviation depending on the model bounding box + Maksimalt avvik avhenger av modellrammeboksen - % - % + + % + % - - Deviation - Avvik + + Deviation + Avvik - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Innstillinger med for lite avvik gjør tessellasjon tidkrevende. Derav fryser eller bremses GUI ned. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Innstillinger med for lite avvik gjør tessellasjon tidkrevende. Derav fryser eller bremses GUI ned. - - + + PartGui::DlgSettingsGeneral - - General - Generelle + + General + Generelle - Export - Eksporter + + Export + Eksporter - Millimeter - Millimeter + + Millimeter + Millimeter - Meter - Meter + + Meter + Meter - Inch - Tommer + + Inch + Tommer - Units for export of STEP/IGES - Enheter for eksport av STEP/ IGES + + Units for export of STEP/IGES + Enheter for eksport av STEP/ IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Posisjon + + + + 3D View + 3D-visning + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Speiling + + Mirroring + Speiling - Shapes - Figurer + + Shapes + Figurer - Mirror plane: - Speilplan: + + Mirror plane: + Speilplan: - XY plane - XY plan + + XY plane + XY plan - XZ plane - XZ plan + + XZ plane + XZ plan - YZ plane - YZ plan + + YZ plane + YZ plan - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Velg en figur for speiling først. + + Select a shape for mirroring, first. + Velg en figur for speiling først. - No such document '%1'. - Ingen slike dokument '%1'. + + No such document '%1'. + Ingen slike dokument '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Feil valg + + + + + + Wrong selection + Feil valg - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Select two or more faces + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Select two or more faces - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Select adjacent faces + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Select adjacent faces - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Verdi + Value + Verdi - Special - Special + Special + Special - Command - Kommando + Command + Kommando - Stretch - Stretch + Stretch + Stretch - Move - Flytt + Move + Flytt - Rotate - Roter + Rotate + Roter - Offset - Avsetting + Offset + Avsetting - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Faces: + + Faces: + Faces: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - Flytt til høyre + Move right + Flytt til høyre - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Flytt det valgte elementet ett nivÃ¥ ned.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Flytt det valgte elementet ett nivÃ¥ ned.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> - Move left - Flytt til venstre + Move left + Flytt til venstre - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Flytt det valgte elementet ett nivÃ¥ opp.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Flytt det valgte elementet ett nivÃ¥ opp.</b> <p> Dette vil ogsÃ¥ endre nivÃ¥et pÃ¥ overordnet element. </p> - Move up - Flytt opp + Move up + Flytt opp - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytt det valgte elementet opp.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytt det valgte elementet opp.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> - Move down - Flytt ned + Move down + Flytt ned - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytt det valgte elementet ned.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytt det valgte elementet ned.</b> <p> Elementet vil bli flyttet innenfor hierarkinivÃ¥et. </p> - Create solid - Create solid + + Create solid + Create solid - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Lag + + Create + Lag - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Create solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Feil valg + + + + + + Wrong selection + Feil valg - Select two shapes please. - Velg to figurer takk. + + + Select two shapes please. + Velg to figurer takk. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Alle CAD-filer (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Alle CAD-filer (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Alle filer (*.*) + + + + All Files (*.*) + Alle filer (*.*) - - Sewing Tolerance - Sømtoleranse + + Sewing Tolerance + Sømtoleranse - Enter tolerance for sewing shape: - Angi toleranse for sømform: + + Enter tolerance for sewing shape: + Angi toleranse for sømform: - - Edit mirror plane - Rediger speilplan + + Edit mirror plane + Rediger speilplan - Transform - Transformer + + Edit chamfer edges + - - Part design - Komponentdesign + Transform + Transformer - - Select two shapes or more, please. - Velg to figurer eller mer, takk. + + + Part design + Komponentdesign - You have to select either two edges or two wires. - Du mÃ¥ velge to kanter eller to trÃ¥der. + + + Select two shapes or more, please. + Velg to figurer eller mer, takk. - - Edit fillet edges - Rediger avrundingskanter + + You have to select either two edges or two wires. + Du mÃ¥ velge to kanter eller to trÃ¥der. - - Set colors... - Set colors... + + Edit fillet edges + Rediger avrundingskanter - - + + + Set colors... + Set colors... + + + Workbench - - &Part - &Komponent + + &Part + &Komponent - &Simple - &Enkel + + &Simple + &Enkel - &Parametric - &Parametrisk + + &Parametric + &Parametrisk - Part tools - Komponentverktøy + + Part tools + Komponentverktøy - Solids - Solide + + Solids + Solide - Boolean - Boolsk + + Boolean + Boolsk - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_pl.ts b/src/Mod/Part/Gui/Resources/translations/Part_pl.ts index bb7e6c366..acc0932b7 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_pl.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_pl.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Definicja bloku + + Block definition + Definicja bloku - First limit - Pierwsze ograniczenie + + First limit + Pierwsze ograniczenie - Type: - Typ: + + + Type: + Typ: - mm - mm + + + mm + mm - Length: - DÅ‚ugość: + + + Length: + DÅ‚ugość: - Dimension - Wymiar + + + Dimension + Wymiar - Up to next - Do nastÄ™pnego + + + Up to next + Do nastÄ™pnego - Up to last - Do ostatniego + + + Up to last + Do ostatniego - Up to plane - Do pÅ‚aszczyzny + + + Up to plane + Do pÅ‚aszczyzny - Up to face - Do fasetki + + + Up to face + Do fasetki - Limit: - Limit: + + + Limit: + Limit: - No selection - Brak wyboru + + + + + No selection + Brak wyboru - Profile - Profil + + Profile + Profil - Selection: - Selection: + + Selection: + Selection: - Reverse - Odwróć + + Reverse + Odwróć - Both sides - Obie strony + + Both sides + Obie strony - Second limit - Drugie ograniczenie + + Second limit + Drugie ograniczenie - Direction - Kierunek + + Direction + Kierunek - Perpendicular to sketch - Perpendicular to sketch + + Perpendicular to sketch + Perpendicular to sketch - Reference - Reference + + Reference + Reference - Apply - Zastosuj + + Apply + Zastosuj - Cancel - Anuluj + + Cancel + Anuluj - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Część + + Part + Część - Boolean... - Boolean ... + + Boolean... + Boolean ... - Run a boolean operation with two shapes selected - Wykonaj operacjÄ™ boolean na 2 zaznaczonych obwiedniach + + Run a boolean operation with two shapes selected + Wykonaj operacjÄ™ boolean na 2 zaznaczonych obwiedniach - - + + CmdPartBox - - Part - Część + + Part + Część - Box - Box + + Box + Box - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - Część + + Part + Część - Box fix 1 - Box fix 1 + + Box fix 1 + Box fix 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - Część + + Part + Część - Box fix 2 - Box fix 2 + + Box fix 2 + Box fix 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - Część + + Part + Część - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + Część + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Część + + Part + Część - Intersection - PrzeciÄ™cie + + Intersection + PrzeciÄ™cie - Make an intersection of two shapes - Utwórz przeciÄ™cie 2 obwiedni + + Make an intersection of two shapes + Utwórz przeciÄ™cie 2 obwiedni - - + + CmdPartCone - - Part - Część + + Part + Część - Cone - Stożek + + Cone + Stożek - Create a cone solid - Utwórz stożek + + Create a cone solid + Utwórz stożek - - + + CmdPartCrossSections - - Part - Część + + Part + Część - Cross-sections... - Cross-sections... + + Cross-sections... + Cross-sections... - Cross-sections - Cross-sections + + Cross-sections + Cross-sections - - + + CmdPartCut - Part - Część + + Part + Część - Cut - Wytnij + + Cut + Wytnij - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - Część + + Part + Część - Create a Cylinder - Utwórz Cylinder + + Create a Cylinder + Utwórz Cylinder - Cylinder - Cylinder + + Cylinder + Cylinder - - + + CmdPartExport - - Part - Część + + Part + Część - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Eksport do pliku CAD + + Exports to a CAD file + Eksport do pliku CAD - - + + CmdPartExtrude - Part - Część + + Part + Część - Extrude... - WyciÄ…gniÄ™cie ... + + Extrude... + WyciÄ…gniÄ™cie ... - Extrude a selected sketch - WyciÄ…gnij wybrany szkic + + Extrude a selected sketch + WyciÄ…gnij wybrany szkic - - + + CmdPartFillet - Part - Część + + Part + Część - Fillet... - Fillet... + + Fillet... + Fillet... - Fillet the selected edges of a shape - Fillet the selected edges of a shape + + Fillet the selected edges of a shape + Fillet the selected edges of a shape - - + + CmdPartFuse - Part - Część + + Part + Część - Union - Połączenie + + Union + Połączenie - Make a union of several shapes - Utwórz sumÄ™ kilku obwiedni + + Make a union of several shapes + Utwórz sumÄ™ kilku obwiedni - - + + CmdPartImport - Part - Część + + Part + Część - Imports a CAD file - Importuje plik CAD + + Imports a CAD file + Importuje plik CAD - Import CAD... - Import CAD ... + + Import CAD... + Import CAD ... - - + + CmdPartImportCurveNet - Part - Część + + Part + Część - Import a curve network - Import a curve network + + Import a curve network + Import a curve network - Import curve network... - Import curve network... + + Import curve network... + Import curve network... - - + + CmdPartLoft - Part - Część + + Part + Część - Loft... - WyciÄ…gnij... + + Loft... + WyciÄ…gnij... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - Część + + Part + Część - Convert to solid - Convert to solid + + Convert to solid + Convert to solid - Create solid from a shell or compound - Create solid from a shell or compound + + Create solid from a shell or compound + Create solid from a shell or compound - - + + CmdPartMirror - Part - Część + + Part + Część - Mirroring... - Mirroring... + + Mirroring... + Mirroring... - Mirroring a selected shape - Mirroring a selected shape + + Mirroring a selected shape + Mirroring a selected shape - - + + CmdPartPickCurveNet - Part - Część + + Part + Część - Pick curve network - Pick curve network + + Pick curve network + Pick curve network - Pick a curve network - Pick a curve network + + Pick a curve network + Pick a curve network - - + + CmdPartPrimitives - Part - Część + + Part + Część - Create primitives... - Create primitives... + + Create primitives... + Create primitives... - Creation of parametrized geometric primitives - Creation of parametrized geometric primitives + + Creation of parametrized geometric primitives + Creation of parametrized geometric primitives - - + + + CmdPartRefineShape + + + Part + Część + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Część + + Part + Część - Reverse shapes - Reverse shapes + + Reverse shapes + Reverse shapes - Reverse orientation of shapes - Reverse orientation of shapes + + Reverse orientation of shapes + Reverse orientation of shapes - - + + CmdPartRevolve - Part - Część + + Part + Część - Revolve... - Revolve... + + Revolve... + Revolve... - Revolve a selected shape - Revolve a selected shape + + Revolve a selected shape + Revolve a selected shape - - + + CmdPartRuledSurface - Part - Część + + Part + Część - Create ruled surface - Create ruled surface + + Create ruled surface + Create ruled surface - Create a ruled surface from two curves - Create a ruled surface from two curves + + Create a ruled surface from two curves + Create a ruled surface from two curves - - + + CmdPartSection - Make a section of two shapes - Utwórz przekrój 2 obwiedni + + Make a section of two shapes + Utwórz przekrój 2 obwiedni - Part - Część + + Part + Część - Section - Sekcja + + Section + Sekcja - - + + CmdPartShapeFromMesh - - Part - Część + + Part + Część - Create shape from mesh... - Create shape from mesh... + + Create shape from mesh... + Create shape from mesh... - Create shape from selected mesh object - Create shape from selected mesh object + + Create shape from selected mesh object + Create shape from selected mesh object - - + + CmdPartSimpleCopy - Part - Część + + Part + Część - Create simple copy - Utwórz kopiÄ™ + + Create simple copy + Utwórz kopiÄ™ - Create a simple non-parametric copy - Utwórz nieparametrycznÄ… kopiÄ™ + + Create a simple non-parametric copy + Utwórz nieparametrycznÄ… kopiÄ™ - - + + CmdPartSimpleCylinder - Part - Część + + Part + Część - Create Cylinder... - Utwórz Cylinder ... + + Create Cylinder... + Utwórz Cylinder ... - Create a Cylinder - Utwórz Cylinder + + Create a Cylinder + Utwórz Cylinder - - + + CmdPartSphere - - Create a sphere solid - Utwórz sferÄ™ + + Create a sphere solid + Utwórz sferÄ™ - Part - Część + + Part + Część - Sphere - Kula + + Sphere + Kula - - + + + CmdPartSweep + + + Part + Część + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Utwórz torus + + Create a torus solid + Utwórz torus - Part - Część + + Part + Część - Torus - torus + + Torus + torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Select a shape for extrusion, first. + Select a shape for extrusion, first. + Select a shape for extrusion, first. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Select a shape for revolution, first. + Select a shape for revolution, first. + Select a shape for revolution, first. - - + + DlgSettings3DViewPart - Deviation - Deviation + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Cross sections + + Cross sections + Cross sections - Guiding plane - Guiding plane + + Guiding plane + Guiding plane - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Pozycja: + + Position: + Pozycja: - Sections - Sections + + Sections + Sections - On both sides - On both sides + + On both sides + On both sides - Count - Count + + Count + Count - Distance: - Distance: + + Distance: + Distance: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Operacja Logiczna + + Boolean Operation + Operacja Logiczna - Second shape - Drugi ksztaÅ‚t + + Second shape + Drugi ksztaÅ‚t - First shape - Pierwszy ksztaÅ‚t + + First shape + Pierwszy ksztaÅ‚t - Boolean operation - Operacja logiczna + + Boolean operation + Operacja logiczna - Section - Sekcja + + Section + Sekcja - Difference - Różnica + + Difference + Różnica - Union - Połączenie + + Union + Połączenie - Intersection - PrzeciÄ™cie + + Intersection + PrzeciÄ™cie - - Cannot perform a boolean operation with the same shape - Nie można wykonać operacji boolean na tym samym ksztaÅ‚cie + + Cannot perform a boolean operation with the same shape + Nie można wykonać operacji boolean na tym samym ksztaÅ‚cie - - Solids - Solids + + + Solids + Solids - Shells - Shells + + + Shells + Shells - Compounds - Compounds + + + Compounds + Compounds - Faces - Faces + + + Faces + Faces - Swap selection - Swap selection + + Swap selection + Swap selection - - Select a shape on the left side, first - Select a shape on the left side, first + + Select a shape on the left side, first + Select a shape on the left side, first - Select a shape on the right side, first - Select a shape on the right side, first + + Select a shape on the right side, first + Select a shape on the right side, first - No active document available - No active document available + + No active document available + No active document available - One of the selected objects doesn't exist anymore - One of the selected objects doesn't exist anymore + + One of the selected objects doesn't exist anymore + One of the selected objects doesn't exist anymore - Performing union on non-solids is not possible - Performing union on non-solids is not possible + + Performing union on non-solids is not possible + Performing union on non-solids is not possible - Performing intersection on non-solids is not possible - Performing intersection on non-solids is not possible + + Performing intersection on non-solids is not possible + Performing intersection on non-solids is not possible - Performing difference on non-solids is not possible - Performing difference on non-solids is not possible + + Performing difference on non-solids is not possible + Performing difference on non-solids is not possible - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - WyciÄ…gniÄ™cie + + Extrude + WyciÄ…gniÄ™cie - Direction - Kierunek + + Direction + Kierunek - Along normal - WzdÅ‚uż normalnej + + Along normal + WzdÅ‚uż normalnej - Length: - DÅ‚ugość: + + Length: + DÅ‚ugość: - 3D view - Widok 3D + + 3D view + Widok 3D - Note:This option works for planes only - Uwaga: opcja dziaÅ‚a wyłącznie dla pÅ‚aszczyzn + + Note:This option works for planes only + Uwaga: opcja dziaÅ‚a wyłącznie dla pÅ‚aszczyzn - Shape - KsztaÅ‚t + + Create solid + Utwórz bryłę - - + + Taper outward angle + - X: - X: + + Shape + KsztaÅ‚t - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Select a shape for extrusion, first. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Select a shape for extrusion, first. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Fillet Edges + + Fillet Edges + Fillet Edges - Fillet Parameter - Fillet Parameter + + Fillet Parameter + Fillet Parameter - Radius: - PromieÅ„: + + Radius: + PromieÅ„: - Fillet type: - Fillet type: + + Fillet type: + Fillet type: - Constant Radius - StaÅ‚y promieÅ„ + + Constant Radius + StaÅ‚y promieÅ„ - Variable Radius - Zmienny promieÅ„ + + Variable Radius + Zmienny promieÅ„ - Shape - KsztaÅ‚t + + Shape + KsztaÅ‚t - Selected shape: - Zaznaczono ksztaÅ‚t: + + Selected shape: + Zaznaczono ksztaÅ‚t: - No selection - Brak wyboru + + No selection + Brak wyboru - - Edges to fillet - Edges to fillet + + Edges to fillet + Edges to fillet - Start radius - PoczÄ…tek promienia + + + Start radius + PoczÄ…tek promienia - End radius - Koniec promienia + + End radius + Koniec promienia - Radius - PromieÅ„ + + Radius + PromieÅ„ - No edge selected - Nie zaznaczono krawÄ™dzi + + No edge selected + Nie zaznaczono krawÄ™dzi - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - No edge entity is checked to fillet. + No edge entity is checked to fillet. Please check one or more edge entities first. - - All - Wszystkie + + All + Wszystkie - None - Brak + + None + Brak - - Edge%1 - Edge%1 + + + Edge%1 + Edge%1 - No shape selected - Brak wybranych ksztaÅ‚tów + + No shape selected + Brak wybranych ksztaÅ‚tów - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - - + + PartGui::DlgPartBox - - Box definition - Box definition + + Box definition + Box definition - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Anuluj + + Cancel + Anuluj - OK - OK + + OK + OK - Size: - Rozmiar: + + Size: + Rozmiar: - Height: - Wysokość: + + Height: + Wysokość: - Width: - Szerokość: + + Width: + Szerokość: - Length: - DÅ‚ugość: + + Length: + DÅ‚ugość: - Position: - Pozycja: + + Position: + Pozycja: - Direction: - Kierunek: + + Direction: + Kierunek: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Cylinder definition + + Cylinder definition + Cylinder definition - Parameter - Parametr + + Parameter + Parametr - Height: - Wysokość: + + Height: + Wysokość: - Radius: - PromieÅ„: + + Radius: + PromieÅ„: - Position: - Pozycja: + + Position: + Pozycja: - Direction: - Kierunek: + + Direction: + Kierunek: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Anuluj + + Cancel + Anuluj - - + + PartGui::DlgPartImportIges - - IGES input file - IGES input file + + IGES input file + IGES input file - ... - ... + + ... + ... - Cancel - Anuluj + + Cancel + Anuluj - OK - OK + + OK + OK - File Name - Nazwa pliku + + File Name + Nazwa pliku - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;All Files (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;All Files (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Anuluj + + Cancel + Anuluj - OK - OK + + OK + OK - Step input file - Step input file + + Step input file + Step input file - File Name - Nazwa pliku + + File Name + Nazwa pliku - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;All Files (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;All Files (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometric Primitives + + Geometric Primitives + Geometric Primitives - Primitive - Primitive + Primitive + Primitive - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - OkrÄ…g + + Circle + OkrÄ…g - Vertex - WierzchoÅ‚ek + Vertex + WierzchoÅ‚ek - Position - Position + Position + Position - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Kierunek: + Direction: + Kierunek: - Y: - Y: + + + + Y: + Y: - Plane - Plan + + Plane + Plan - Box - Box + + Box + Box - Cylinder - Cylinder + + Cylinder + Cylinder - Cone - Stożek + + Cone + Stożek - Sphere - Kula + + Sphere + Kula - Ellipsoid - Elipsoida + + Ellipsoid + Elipsoida - Torus - torus + + Torus + torus - Parameter - Parametr + + Ellipse + - Width: - Szerokość: + + Point + - Length: - DÅ‚ugość: + + Line + - Height: - Wysokość: + + Parameter + Parametr - Angle: - KÄ…t: + + + Width: + Szerokość: - Radius: - PromieÅ„: + + + Length: + DÅ‚ugość: - Radius 1: - PromieÅ„ 1: + + + + + Height: + Wysokość: - Radius 2: - PromieÅ„ 2: + + + + Angle: + KÄ…t: - U parametric: - U parametric: + + + + + Radius: + PromieÅ„: - V parametric: - V parametric: + + + + Radius 1: + PromieÅ„ 1: - &Create - &Utwórz + + + + Radius 2: + PromieÅ„ 2: - Alt+C - Alt + C + + + + U parametric: + U parametric: - Cl&ose - ZAMKNIJ + + + + V parametric: + V parametric: - Alt+O - Alt + O + + X min/max: + - - Create %1 - Utwórz %1 + + Y min/max: + - No active document - Brak aktywnego dokumentu + + Z min/max: + - - Pitch: - Pitch: + + X2 min/max: + - Helix - Helix + + Z2 min/max: + - 3D View - Widok 3D + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Utwórz + + + Alt+C + Alt + C + + + Cl&ose + ZAMKNIJ + + + Alt+O + Alt + O + + + + + + Create %1 + Utwórz %1 + + + + No active document + Brak aktywnego dokumentu + + + + Pitch: + Pitch: + + + + Helix + Helix + + + 3D View + Widok 3D + + + PartGui::DlgRevolution - - Revolve - Revolve + + Revolve + Revolve - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - KÄ…t: + + Angle: + KÄ…t: - Z: - Z: + + Z: + Z: - Axis: - OÅ›: + + Axis: + OÅ›: - Shape - KsztaÅ‚t + + Shape + KsztaÅ‚t - - Select a shape for revolution, first. - Select a shape for revolution, first. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Select a shape for revolution, first. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - View accuracy / Performance + + View accuracy / Performance + View accuracy / Performance - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - Using high-quality normals + + Using high-quality normals + Using high-quality normals - This will slow down render speed but will lead to nicer results - This will slow down render speed but will lead to nicer results + + This will slow down render speed but will lead to nicer results + This will slow down render speed but will lead to nicer results - Defines the appearance of surfaces - Defines the appearance of surfaces + + Defines the appearance of surfaces + Defines the appearance of surfaces - Shape view - Shape view + + Shape view + Shape view - Tessellation - Tesselacja + + Tessellation + Tesselacja - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - Do not define normal per vertex - Do not define normal per vertex + + Do not define normal per vertex + Do not define normal per vertex - Defines the deviation of tessellation to the actual surface - Defines the deviation of tessellation to the actual surface + + Defines the deviation of tessellation to the actual surface + Defines the deviation of tessellation to the actual surface - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - Maximum deviation depending on the model bounding box + + Maximum deviation depending on the model bounding box + Maximum deviation depending on the model bounding box - % - % + + % + % - - Deviation - Deviation + + Deviation + Deviation - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Ogólne + + General + Ogólne - Export - Export + + Export + Export - Millimeter - Milimetr + + Millimeter + Milimetr - Meter - Metr + + Meter + Metr - Inch - Cal + + Inch + Cal - Units for export of STEP/IGES - Units for export of STEP/IGES + + Units for export of STEP/IGES + Units for export of STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Position + + + + 3D View + Widok 3D + + + PartGui::LoftWidget - - Too few elements - Zbyt maÅ‚o elementów + + + Vertex/Wire + Utwórz obwiedniÄ™ - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Zbyt maÅ‚o elementów + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Mirroring + + Mirroring + Mirroring - Shapes - KsztaÅ‚ty + + Shapes + KsztaÅ‚ty - Mirror plane: - Mirror plane: + + Mirror plane: + Mirror plane: - XY plane - PÅ‚aszczyzna XY + + XY plane + PÅ‚aszczyzna XY - XZ plane - PÅ‚aszczyzna XZ + + XZ plane + PÅ‚aszczyzna XZ - YZ plane - PÅ‚aszczyzna YZ + + YZ plane + PÅ‚aszczyzna YZ - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Select a shape for mirroring, first. + + Select a shape for mirroring, first. + Select a shape for mirroring, first. - No such document '%1'. - Brak dokumentu '%1'. + + No such document '%1'. + Brak dokumentu '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select two vertices - Zaznacz 2 wierzchoÅ‚ki + + + Select two vertices + Zaznacz 2 wierzchoÅ‚ki - Select three or more edges - Zaznacz 3 lub wiÄ™cej KrawÄ™dzi + Select three or more edges + Zaznacz 3 lub wiÄ™cej KrawÄ™dzi - Select two or more faces - Zaznacz 2 lub wiÄ™cej fasetek + + Select one or more edges + - Select only one part object - Zaznacz tylko część obiektu + + Select two or more faces + Zaznacz 2 lub wiÄ™cej fasetek - Select two vertices to create an edge - Aby utworzyć KrawÄ™dź zaznacz 2 wierzchoÅ‚ki + + Select only one part object + Zaznacz tylko część obiektu - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Aby utworzyć KrawÄ™dź zaznacz 2 wierzchoÅ‚ki - Select adjacent faces - Zaznacz sÄ…siednie fasetki + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - Można zaznaczyć wszystkie rodzaje obwiedni + + Select adjacent faces + Zaznacz sÄ…siednie fasetki - - + + + All shape types can be selected + Można zaznaczyć wszystkie rodzaje obwiedni + + + + PartGui::SweepWidget + + + + Vertex/Wire + Utwórz obwiedniÄ™ + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Zbyt maÅ‚o elementów + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Wartość + Value + Wartość - Special - Special + Special + Special - Command - Polecenie + Command + Polecenie - Stretch - Stretch + Stretch + Stretch - Move - PrzesuÅ„ + Move + PrzesuÅ„ - Rotate - Obróć + Rotate + Obróć - Offset - Offset + Offset + Offset - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Ustaw kolor wg. fasetki + + Set color per face + Ustaw kolor wg. fasetki - Click on the faces in the 3d view to select them. - Aby wybrać fasetki zaznacz je w Widoku 3D + + Click on the faces in the 3d view to select them. + Aby wybrać fasetki zaznacz je w Widoku 3D - Faces: - Fasetki: + + Faces: + Fasetki: - Set to default - Ustaw domyÅ›lne + + Set to default + Ustaw domyÅ›lne - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Utwórz obwiedniÄ™ + Vertex/Wire + Utwórz obwiedniÄ™ - Move right - PrzesuÅ„ w prawo + Move right + PrzesuÅ„ w prawo - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> - Move left - PrzesuÅ„ w lewo + Move left + PrzesuÅ„ w lewo - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Przenosi zaznaczony element o jeden poziom w dół.</b> <p> Zmieniony zostanie także poziom pozycji nadrzÄ™dnej. </p> - Move up - PrzesuÅ„ w górÄ™ + Move up + PrzesuÅ„ w górÄ™ - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> - Move down - PrzenieÅ› w dół + Move down + PrzenieÅ› w dół - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Przenosi zaznaczony element w dół.</b> <p> Element zostanie przesuniÄ™ty w poziomie hierarchii. </p> - Create solid - Utwórz bryłę + + Create solid + Utwórz bryłę - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Utwórz obwiedniÄ™ + + + Create shape + Utwórz obwiedniÄ™ - Edge from vertices - KrawÄ™dź z wierzchoÅ‚ków + + Edge from vertices + KrawÄ™dź z wierzchoÅ‚ków - Face from edges - Fasetka z wierzchoÅ‚ków + + Face from edges + Fasetka z wierzchoÅ‚ków - Planar - Planar + + Planar + Planar - Shell from faces - PowÅ‚oka z fasetek + + Shell from faces + PowÅ‚oka z fasetek - Solid from shell - BryÅ‚a z powÅ‚oki + + Solid from shell + BryÅ‚a z powÅ‚oki - Create - Utwórz + + Create + Utwórz - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Utwórz bryłę + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select two shapes please. - Select two shapes please. + + + Select two shapes please. + Select two shapes please. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Wszystkie pliki (*.*) + + + + All Files (*.*) + Wszystkie pliki (*.*) - - Sewing Tolerance - Sewing Tolerance + + Sewing Tolerance + Sewing Tolerance - Enter tolerance for sewing shape: - Enter tolerance for sewing shape: + + Enter tolerance for sewing shape: + Enter tolerance for sewing shape: - - Edit mirror plane - Edit mirror plane + + Edit mirror plane + Edit mirror plane - Transform - Przekształć + + Edit chamfer edges + - - Part design - Projektowanie części + Transform + Przekształć - - Select two shapes or more, please. - Wybierz dwa lub wiÄ™cej kszaÅ‚tów, proszÄ™. + + + Part design + Projektowanie części - You have to select either two edges or two wires. - You have to select either two edges or two wires. + + + Select two shapes or more, please. + Wybierz dwa lub wiÄ™cej kszaÅ‚tów, proszÄ™. - - Edit fillet edges - Edit fillet edges + + You have to select either two edges or two wires. + You have to select either two edges or two wires. - - Set colors... - Ustaw kolory... + + Edit fillet edges + Edit fillet edges - - + + + Set colors... + Ustaw kolory... + + + Workbench - - &Part - &Part + + &Part + &Part - &Simple - &Simple + + &Simple + &Simple - &Parametric - &Parametric + + &Parametric + &Parametric - Part tools - Part tools + + Part tools + Part tools - Solids - Solids + + Solids + Solids - Boolean - Boolean + + Boolean + Boolean - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_pt.ts b/src/Mod/Part/Gui/Resources/translations/Part_pt.ts index 471d0973f..0fbb7f43c 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_pt.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_pt.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - Definição de bloco + + Block definition + Definição de bloco - First limit - Primeiro limite + + First limit + Primeiro limite - Type: - Tipo: + + + Type: + Tipo: - mm - mm + + + mm + mm - Length: - Comprimento: + + + Length: + Comprimento: - Dimension - Dimensão + + + Dimension + Dimensão - Up to next - Até o próximo + + + Up to next + Até o próximo - Up to last - Até o último + + + Up to last + Até o último - Up to plane - Até ao plano + + + Up to plane + Até ao plano - Up to face - Até a face + + + Up to face + Até a face - Limit: - Limite: + + + Limit: + Limite: - No selection - Sem seleção + + + + + No selection + Sem seleção - Profile - Perfil + + Profile + Perfil - Selection: - Seleção: + + Selection: + Seleção: - Reverse - Inverter + + Reverse + Inverter - Both sides - Ambos os lados + + Both sides + Ambos os lados - Second limit - Segundo limite + + Second limit + Segundo limite - Direction - Direção + + Direction + Direção - Perpendicular to sketch - Perpendicular ao esboço + + Perpendicular to sketch + Perpendicular ao esboço - Reference - Referência + + Reference + Referência - Apply - Aplicar + + Apply + Aplicar - Cancel - Cancelar + + Cancel + Cancelar - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Part + + Part + Part - Boolean... - Booleanas... + + Boolean... + Booleanas... - Run a boolean operation with two shapes selected - Executar uma operação booleana com duas formas selecionadas + + Run a boolean operation with two shapes selected + Executar uma operação booleana com duas formas selecionadas - - + + CmdPartBox - - Part - Part + + Part + Part - Box - Caixa + + Box + Caixa - Create a box solid - Criar uma caixa sólida + + Create a box solid + Criar uma caixa sólida - - + + CmdPartBox2 - - Part - Part + + Part + Part - Box fix 1 - Correção de caixa 1 + + Box fix 1 + Correção de caixa 1 - Create a box solid without dialog - Criar uma caixa sólida sem diálogo + + Create a box solid without dialog + Criar uma caixa sólida sem diálogo - - + + CmdPartBox3 - Part - Part + + Part + Part - Box fix 2 - Correção de caixa 2 + + Box fix 2 + Correção de caixa 2 - Create a box solid without dialog - Criar uma caixa sólida sem diálogo + + Create a box solid without dialog + Criar uma caixa sólida sem diálogo - - + + CmdPartBuilder - Part - Part + + Part + Part - Shape builder... - Construtor de forma... + + Shape builder... + Construtor de forma... - Advanced utility to create shapes - Utilitário avançado para criar formas + + Advanced utility to create shapes + Utilitário avançado para criar formas - - + + + CmdPartChamfer + + + Part + Part + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Part + + Part + Part - Intersection - Intersecção + + Intersection + Intersecção - Make an intersection of two shapes - Fazer uma interseção entre duas formas + + Make an intersection of two shapes + Fazer uma interseção entre duas formas - - + + CmdPartCone - - Part - Part + + Part + Part - Cone - Cone + + Cone + Cone - Create a cone solid - Criar um cone sólido + + Create a cone solid + Criar um cone sólido - - + + CmdPartCrossSections - - Part - Part + + Part + Part - Cross-sections... - Secções transversais... + + Cross-sections... + Secções transversais... - Cross-sections - Secções transversais + + Cross-sections + Secções transversais - - + + CmdPartCut - Part - Part + + Part + Part - Cut - Recortar + + Cut + Recortar - Make a cut of two shapes - Fazer um recorte entre duas formas + + Make a cut of two shapes + Fazer um recorte entre duas formas - - + + CmdPartCylinder - - Part - Part + + Part + Part - Create a Cylinder - Criar um cilindro + + Create a Cylinder + Criar um cilindro - Cylinder - Cilindro + + Cylinder + Cilindro - - + + CmdPartExport - - Part - Part + + Part + Part - Export CAD... - Exportar CAD ... + + Export CAD... + Exportar CAD ... - Exports to a CAD file - Exporta para um arquivo CAD + + Exports to a CAD file + Exporta para um arquivo CAD - - + + CmdPartExtrude - Part - Part + + Part + Part - Extrude... - Extrusão... + + Extrude... + Extrusão... - Extrude a selected sketch - Extrusão de um esboço selecionado + + Extrude a selected sketch + Extrusão de um esboço selecionado - - + + CmdPartFillet - Part - Part + + Part + Part - Fillet... - Filete... + + Fillet... + Filete... - Fillet the selected edges of a shape - Cria um filete nas arestas selecionadas de uma forma + + Fillet the selected edges of a shape + Cria um filete nas arestas selecionadas de uma forma - - + + CmdPartFuse - Part - Part + + Part + Part - Union - União + + Union + União - Make a union of several shapes - Fazer uma união com várias formas + + Make a union of several shapes + Fazer uma união com várias formas - - + + CmdPartImport - Part - Part + + Part + Part - Imports a CAD file - Importar um arquivo CAD + + Imports a CAD file + Importar um arquivo CAD - Import CAD... - Importar CAD... + + Import CAD... + Importar CAD... - - + + CmdPartImportCurveNet - Part - Part + + Part + Part - Import a curve network - Importar uma rede de curvas + + Import a curve network + Importar uma rede de curvas - Import curve network... - Importar uma rede de curvas... + + Import curve network... + Importar uma rede de curvas... - - + + CmdPartLoft - Part - Part + + Part + Part - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Utilitário avançado para lofts + + Utility to loft + - - + + Advanced utility to lofts + Utilitário avançado para lofts + + + CmdPartMakeSolid - Part - Part + + Part + Part - Convert to solid - Converter em sólido + + Convert to solid + Converter em sólido - Create solid from a shell or compound - Criar sólidos a partir de uma casca ou composto + + Create solid from a shell or compound + Criar sólidos a partir de uma casca ou composto - - + + CmdPartMirror - Part - Part + + Part + Part - Mirroring... - Espelho... + + Mirroring... + Espelho... - Mirroring a selected shape - Espelhar uma forma selecionada + + Mirroring a selected shape + Espelhar uma forma selecionada - - + + CmdPartPickCurveNet - Part - Part + + Part + Part - Pick curve network - Selecione uma rede de curvas + + Pick curve network + Selecione uma rede de curvas - Pick a curve network - Selecione uma rede de curvas + + Pick a curve network + Selecione uma rede de curvas - - + + CmdPartPrimitives - Part - Part + + Part + Part - Create primitives... - Criar primitivas... + + Create primitives... + Criar primitivas... - Creation of parametrized geometric primitives - Criação de primitivas geométricas paramétricas + + Creation of parametrized geometric primitives + Criação de primitivas geométricas paramétricas - - + + + CmdPartRefineShape + + + Part + Part + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Part + + Part + Part - Reverse shapes - Inverter formas + + Reverse shapes + Inverter formas - Reverse orientation of shapes - Inverter a orientação de formas + + Reverse orientation of shapes + Inverter a orientação de formas - - + + CmdPartRevolve - Part - Part + + Part + Part - Revolve... - Revolver... + + Revolve... + Revolver... - Revolve a selected shape - Revolve uma forma selecionada + + Revolve a selected shape + Revolve uma forma selecionada - - + + CmdPartRuledSurface - Part - Part + + Part + Part - Create ruled surface - Criar superfície regrada + + Create ruled surface + Criar superfície regrada - Create a ruled surface from two curves - Criar uma superfície regrada a partir de duas curvas + + Create a ruled surface from two curves + Criar uma superfície regrada a partir de duas curvas - - + + CmdPartSection - Make a section of two shapes - Fazer uma seção com duas formas + + Make a section of two shapes + Fazer uma seção com duas formas - Part - Part + + Part + Part - Section - Seção + + Section + Seção - - + + CmdPartShapeFromMesh - - Part - Part + + Part + Part - Create shape from mesh... - Criar uma forma a partir de uma malha... + + Create shape from mesh... + Criar uma forma a partir de uma malha... - Create shape from selected mesh object - Cria uma forma a partir de uma malha selecionada + + Create shape from selected mesh object + Cria uma forma a partir de uma malha selecionada - - + + CmdPartSimpleCopy - Part - Part + + Part + Part - Create simple copy - Criar uma cópia simple + + Create simple copy + Criar uma cópia simple - Create a simple non-parametric copy - Criar uma cópia simples não-paramétrica + + Create a simple non-parametric copy + Criar uma cópia simples não-paramétrica - - + + CmdPartSimpleCylinder - Part - Part + + Part + Part - Create Cylinder... - Criar cilindro ... + + Create Cylinder... + Criar cilindro ... - Create a Cylinder - Criar um cilindro + + Create a Cylinder + Criar um cilindro - - + + CmdPartSphere - - Create a sphere solid - Criar uma esfera sólida + + Create a sphere solid + Criar uma esfera sólida - Part - Part + + Part + Part - Sphere - Esfera + + Sphere + Esfera - - + + + CmdPartSweep + + + Part + Part + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Criar um toro sólido + + Create a torus solid + Criar um toro sólido - Part - Part + + Part + Part - Torus - Toro + + Torus + Toro - - + + DlgExtrusion - Select a shape for extrusion, first. - Selecione uma forma de extrusão primeiro. + Select a shape for extrusion, first. + Selecione uma forma de extrusão primeiro. - The document '%1' doesn't exist. - O documento '%1' não existe. + The document '%1' doesn't exist. + O documento '%1' não existe. - - + + DlgRevolution - Select a shape for revolution, first. - Selecione uma forma de revolução primeiro. + Select a shape for revolution, first. + Selecione uma forma de revolução primeiro. - - + + DlgSettings3DViewPart - Deviation - Desvio + Deviation + Desvio - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Definir um desvio muito pequeno faz a paginação tomar muito tempo e a interface ficar mais lento ou até congelar. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Definir um desvio muito pequeno faz a paginação tomar muito tempo e a interface ficar mais lento ou até congelar. - - + + PartGui::CrossSections - - Cross sections - Secções transversais + + Cross sections + Secções transversais - Guiding plane - Plano guia + + Guiding plane + Plano guia - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Posição: + + Position: + Posição: - Sections - Seções + + Sections + Seções - On both sides - Em ambos os lados + + On both sides + Em ambos os lados - Count - Quantidade + + Count + Quantidade - Distance: - Distância: + + Distance: + Distância: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Operação Booleana + + Boolean Operation + Operação Booleana - Second shape - Segunda forma + + Second shape + Segunda forma - First shape - Primeira forma + + First shape + Primeira forma - Boolean operation - Operação Booleana + + Boolean operation + Operação Booleana - Section - Seção + + Section + Seção - Difference - Diferença + + Difference + Diferença - Union - União + + Union + União - Intersection - Intersecção + + Intersection + Intersecção - - Cannot perform a boolean operation with the same shape - Não é possível executar uma operação booleana com a mesma forma + + Cannot perform a boolean operation with the same shape + Não é possível executar uma operação booleana com a mesma forma - - Solids - Sólidos + + + Solids + Sólidos - Shells - Cascas + + + Shells + Cascas - Compounds - Compostos + + + Compounds + Compostos - Faces - Faces + + + Faces + Faces - Swap selection - Trocar seleção + + Swap selection + Trocar seleção - - Select a shape on the left side, first - Selecione uma forma do lado esquerdo, primeiro + + Select a shape on the left side, first + Selecione uma forma do lado esquerdo, primeiro - Select a shape on the right side, first - Selecione uma forma no lado direito, primeiro + + Select a shape on the right side, first + Selecione uma forma no lado direito, primeiro - No active document available - Nenhum documento ativo disponível + + No active document available + Nenhum documento ativo disponível - One of the selected objects doesn't exist anymore - Um dos objetos selecionados não existe mais + + One of the selected objects doesn't exist anymore + Um dos objetos selecionados não existe mais - Performing union on non-solids is not possible - Não é possível executar união em objetos não solidos + + Performing union on non-solids is not possible + Não é possível executar união em objetos não solidos - Performing intersection on non-solids is not possible - Não é possível executar interseção em não sólidos + + Performing intersection on non-solids is not possible + Não é possível executar interseção em não sólidos - Performing difference on non-solids is not possible - Não é possível executar diferença em não-sólidos + + Performing difference on non-solids is not possible + Não é possível executar diferença em não-sólidos - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extrusão + + Extrude + Extrusão - Direction - Direção + + Direction + Direção - Along normal - Ao longo da normal + + Along normal + Ao longo da normal - Length: - Comprimento: + + Length: + Comprimento: - 3D view - Vista 3D + + 3D view + Vista 3D - Note:This option works for planes only - Nota: Esta opção funciona somente com planos + + Note:This option works for planes only + Nota: Esta opção funciona somente com planos - Shape - Forma + + Create solid + Criar um sólido - - + + Taper outward angle + - X: - X: + + Shape + Forma - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Selecione uma forma de extrusão primeiro. + + Z: + Z: - The document '%1' doesn't exist. - O documento '%1' não existe. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Selecione uma forma de extrusão primeiro. + + + + The document '%1' doesn't exist. + O documento '%1' não existe. + + + PartGui::DlgFilletEdges - - Fillet Edges - Filete em arestas + + Fillet Edges + Filete em arestas - Fillet Parameter - Parâmetro do filete + + Fillet Parameter + Parâmetro do filete - Radius: - Raio: + + Radius: + Raio: - Fillet type: - Tipo de filete: + + Fillet type: + Tipo de filete: - Constant Radius - Raio constante + + Constant Radius + Raio constante - Variable Radius - Raio variável + + Variable Radius + Raio variável - Shape - Forma + + Shape + Forma - Selected shape: - Forma selecionada: + + Selected shape: + Forma selecionada: - No selection - Sem seleção + + No selection + Sem seleção - - Edges to fillet - Arestas a filetar + + Edges to fillet + Arestas a filetar - Start radius - Raio inicial + + + Start radius + Raio inicial - End radius - Raio final + + End radius + Raio final - Radius - Raio + + Radius + Raio - No edge selected - Nenhuma aresta selecionada + + No edge selected + Nenhuma aresta selecionada - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Nenhuma aresta está marcada para fazer um filete. + Nenhuma aresta está marcada para fazer um filete. Selecione uma ou mais arestas primeiro. - - All - Todos + + All + Todos - None - Nenhum + + None + Nenhum - - Edge%1 - Aresta %1 + + + Edge%1 + Aresta %1 - No shape selected - Nenhuma forma selecionada + + No shape selected + Nenhuma forma selecionada - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nenhuma forma válida é selecionada. Selecione primeiro uma forma válida na caixa drop-down. + Nenhuma forma válida é selecionada. Selecione primeiro uma forma válida na caixa drop-down. - - + + PartGui::DlgPartBox - - Box definition - Definição de caixa + + Box definition + Definição de caixa - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Cancelar + + Cancel + Cancelar - OK - OK + + OK + OK - Size: - Tamanho: + + Size: + Tamanho: - Height: - Altura: + + Height: + Altura: - Width: - Largura: + + Width: + Largura: - Length: - Comprimento: + + Length: + Comprimento: - Position: - Posição: + + Position: + Posição: - Direction: - Direção: + + Direction: + Direção: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Definição de cilindro + + Cylinder definition + Definição de cilindro - Parameter - Parâmetro + + Parameter + Parâmetro - Height: - Altura: + + Height: + Altura: - Radius: - Raio: + + Radius: + Raio: - Position: - Posição: + + Position: + Posição: - Direction: - Direção: + + Direction: + Direção: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Cancelar + + Cancel + Cancelar - - + + PartGui::DlgPartImportIges - - IGES input file - Arquivo de entrada IGES + + IGES input file + Arquivo de entrada IGES - ... - ... + + ... + ... - Cancel - Cancelar + + Cancel + Cancelar - OK - OK + + OK + OK - File Name - Nome do arquivo + + File Name + Nome do arquivo - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);; Todos os arquivos (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);; Todos os arquivos (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Cancelar + + Cancel + Cancelar - OK - OK + + OK + OK - Step input file - Arquivo de entrada STEP + + Step input file + Arquivo de entrada STEP - File Name - Nome do arquivo + + File Name + Nome do arquivo - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);; Todos os arquivos (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);; Todos os arquivos (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Primitivas geométricas + + Geometric Primitives + Primitivas geométricas - Primitive - Primitiva + Primitive + Primitiva - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Ângulo - 0 para cyl + Angle - 0 for cyl + Ângulo - 0 para cyl - Angle0 - Ângulo0 + Angle0 + Ângulo0 - Angle1 - Ângulo1 + Angle1 + Ângulo1 - X Axis Value: - Valor do eixo X: + X Axis Value: + Valor do eixo X: - Y Axis Value: - Valor do eixo Y: + Y Axis Value: + Valor do eixo Y: - Z Axis Value: - Valor do eixo Z: + Z Axis Value: + Valor do eixo Z: - Wedge - Cunha + + Wedge + Cunha - Circle - Círculo + + Circle + Círculo - Vertex - Vértice + Vertex + Vértice - Position - Posição + Position + Posição - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Direção: + Direction: + Direção: - Y: - Y: + + + + Y: + Y: - Plane - Plano + + Plane + Plano - Box - Caixa + + Box + Caixa - Cylinder - Cilindro + + Cylinder + Cilindro - Cone - Cone + + Cone + Cone - Sphere - Esfera + + Sphere + Esfera - Ellipsoid - Elipsóide + + Ellipsoid + Elipsóide - Torus - Toro + + Torus + Toro - Parameter - Parâmetro + + Ellipse + - Width: - Largura: + + Point + - Length: - Comprimento: + + Line + - Height: - Altura: + + Parameter + Parâmetro - Angle: - Ângulo: + + + Width: + Largura: - Radius: - Raio: + + + Length: + Comprimento: - Radius 1: - Raio 1: + + + + + Height: + Altura: - Radius 2: - Raio 2: + + + + Angle: + Ângulo: - U parametric: - U paramétrico: + + + + + Radius: + Raio: - V parametric: - V paramétrico: + + + + Radius 1: + Raio 1: - &Create - &Criar + + + + Radius 2: + Raio 2: - Alt+C - Alt + C + + + + U parametric: + U paramétrico: - Cl&ose - &Fechar + + + + V parametric: + V paramétrico: - Alt+O - Alt + F + + X min/max: + - - Create %1 - Criar %1 + + Y min/max: + - No active document - Nenhum documento ativo + + Z min/max: + - - Pitch: - Inclinação: + + X2 min/max: + - Helix - Hélice + + Z2 min/max: + - 3D View - Vista 3D + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Criar + + + Alt+C + Alt + C + + + Cl&ose + &Fechar + + + Alt+O + Alt + F + + + + + + Create %1 + Criar %1 + + + + No active document + Nenhum documento ativo + + + + Pitch: + Inclinação: + + + + Helix + Hélice + + + 3D View + Vista 3D + + + PartGui::DlgRevolution - - Revolve - Revolver + + Revolve + Revolver - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Ângulo: + + Angle: + Ângulo: - Z: - Z: + + Z: + Z: - Axis: - Eixo: + + Axis: + Eixo: - Shape - Forma + + Shape + Forma - - Select a shape for revolution, first. - Selecione uma forma de revolução primeiro. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Selecione uma forma de revolução primeiro. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Precisão da vista / Desempenho + + View accuracy / Performance + Precisão da vista / Desempenho - View smoothing - Alisamento de vista + + View smoothing + Alisamento de vista - Using high-quality normals - Usar normais de alta qualidade + + Using high-quality normals + Usar normais de alta qualidade - This will slow down render speed but will lead to nicer results - Isto irá reduzir a velocidade da renderização, mas vai levar a resultados melhores + + This will slow down render speed but will lead to nicer results + Isto irá reduzir a velocidade da renderização, mas vai levar a resultados melhores - Defines the appearance of surfaces - Define a aparência das superfícies + + Defines the appearance of surfaces + Define a aparência das superfícies - Shape view - Modo de exibição de formas + + Shape view + Modo de exibição de formas - Tessellation - Mosaico + + Tessellation + Mosaico - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Flat shading usa normais definidas por vertex, dando uma aparência não realística das curvas, enquanto phong shading da uma aparência melhor </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Se esta opção estiver marcada, o flat shading será usado, senão será usado o phong shading.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Flat shading usa normais definidas por vertex, dando uma aparência não realística das curvas, enquanto phong shading da uma aparência melhor </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Se esta opção estiver marcada, o flat shading será usado, senão será usado o phong shading.</p></body></html> - Do not define normal per vertex - Não definir normais por vertex + + Do not define normal per vertex + Não definir normais por vertex - Defines the deviation of tessellation to the actual surface - Define o desvio de mosaico em relação a superfície real + + Defines the deviation of tessellation to the actual surface + Define o desvio de mosaico em relação a superfície real - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Mosaico</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Define o desvio máximo da malha mosaico em relação a superfície. O menor o valor, menor será a velocidade e melhor a aparência.</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Mosaico</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style=" font-weight:400;">Define o desvio máximo da malha mosaico em relação a superfície. O menor o valor, menor será a velocidade e melhor a aparência.</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style="font-weight:600;"> Dica</span></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> definir os normals por vértice é também chamado de <span style="font-style:italic;"> sombreamento de Phong (phong shading)</span></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> sombreamento simples <span style="font-style:normal;"> enquanto definir os normals por face é chamado</span> sombreamento plano (flat shading)<span style="font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style="font-weight:600;"> Dica</span></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt;"> definir os normals por vértice é também chamado de <span style="font-style:italic;"> sombreamento de Phong (phong shading)</span></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> sombreamento simples <span style="font-style:normal;"> enquanto definir os normals por face é chamado</span> sombreamento plano (flat shading)<span style="font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Alta qualidade normais</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Isto irá reduzir a velocidade da renderização, mas vai levar a resultados melhores. </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">Alta qualidade normais</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Isto irá reduzir a velocidade da renderização, mas vai levar a resultados melhores. </p></body></html> - Maximum deviation depending on the model bounding box - Desvio máximo dependendo da caixa de volume + + Maximum deviation depending on the model bounding box + Desvio máximo dependendo da caixa de volume - % - % + + % + % - - Deviation - Desvio + + Deviation + Desvio - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Definir um desvio muito pequeno faz a paginação tomar muito tempo e a interface ficar mais lento ou até congelar. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Definir um desvio muito pequeno faz a paginação tomar muito tempo e a interface ficar mais lento ou até congelar. - - + + PartGui::DlgSettingsGeneral - - General - Geral + + General + Geral - Export - Exportação + + Export + Exportação - Millimeter - Milímetro + + Millimeter + Milímetro - Meter - Metro + + Meter + Metro - Inch - Polegada + + Inch + Polegada - Units for export of STEP/IGES - Unidades para a exportação no formato STEP / IGES + + Units for export of STEP/IGES + Unidades para a exportação no formato STEP / IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Posição + + + + 3D View + Vista 3D + + + PartGui::LoftWidget - - Too few elements - Muito poucos elementos + + + Vertex/Wire + Vértice/arame - At least two vertices or wires are required. - Pelo menos dois vértices ou arames são necessários. + + + Loft + Loft - - + + + Too few elements + Muito poucos elementos + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Pelo menos dois vértices ou arames são necessários. + + + PartGui::Mirroring - - Mirroring - Espelho + + Mirroring + Espelho - Shapes - Formas + + Shapes + Formas - Mirror plane: - Plano de espelho: + + Mirror plane: + Plano de espelho: - XY plane - Plano XY + + XY plane + Plano XY - XZ plane - Plano XZ + + XZ plane + Plano XZ - YZ plane - Plano YZ + + YZ plane + Plano YZ - Base point: - Ponto de base: + + Base point: + Ponto de base: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Selecione uma forma para espelhar primeiro. + + Select a shape for mirroring, first. + Selecione uma forma para espelhar primeiro. - No such document '%1'. - Não há tal documento '%1'. + + No such document '%1'. + Não há tal documento '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Seleção errada + + + + + + Wrong selection + Seleção errada - Select two vertices - Selecione dois vértices + + + Select two vertices + Selecione dois vértices - Select three or more edges - Selecione três ou mais arestas + Select three or more edges + Selecione três ou mais arestas - Select two or more faces - Selecione duas ou mais faces + + Select one or more edges + - Select only one part object - Selecione apenas um objeto parte + + Select two or more faces + Selecione duas ou mais faces - Select two vertices to create an edge - Selecione dois vértices para criar uma aresta + + Select only one part object + Selecione apenas um objeto parte - Select a closed set of edges - Selecionar um conjunto fechado de arestas + + Select two vertices to create an edge + Selecione dois vértices para criar uma aresta - Select adjacent faces - Selecione faces adjacentes + + Select a closed set of edges + Selecionar um conjunto fechado de arestas - All shape types can be selected - Todos os tipos de formas podem ser selecionados + + Select adjacent faces + Selecione faces adjacentes - - + + + All shape types can be selected + Todos os tipos de formas podem ser selecionados + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vértice/arame + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Muito poucos elementos + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Dica + Hint + Dica - Select Control. - Selecione o controle. + Select Control. + Selecione o controle. - Control - Controle + Control + Controle - Dynamic - Dinâmico + Dynamic + Dinâmico - Align - Alinhar + Align + Alinhar - Value - Valor + Value + Valor - Special - Especial + Special + Especial - Command - Comando + Command + Comando - Stretch - Extender + Stretch + Extender - Move - Mover + Move + Mover - Rotate - Rotacionar + Rotate + Rotacionar - Offset - Offset + Offset + Offset - Orient - Orientar + Orient + Orientar - Match - Combinar + Match + Combinar - Surround - Cercar + Surround + Cercar - dummy - dummy + dummy + dummy - X Axis - Eixo X + X Axis + Eixo X - Y Axis - Eixo Y + Y Axis + Eixo Y - Z Axis - Eixo Z + Z Axis + Eixo Z - Increment - Incremento + Increment + Incremento - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Arraste as setas para esticar a caixa por incremento + Drag arrows to stretch box by increment + Arraste as setas para esticar a caixa por incremento - Drag arrows to move box by increment - Arraste as setas para deslocar a caixa por incremento + Drag arrows to move box by increment + Arraste as setas para deslocar a caixa por incremento - Not implemented yet - Ainda não foi implementado + Not implemented yet + Ainda não foi implementado - Drag arrows to offset checked axes by increment - Arraste as setas para deslocar os eixos marcados por incremento + Drag arrows to offset checked axes by increment + Arraste as setas para deslocar os eixos marcados por incremento - Select dragger for stretch by align - Selecione o arrastador para esticar por alinhamento + Select dragger for stretch by align + Selecione o arrastador para esticar por alinhamento - Select dragger for move by align - Selecione o arrastador para deslocar por alinhamento + Select dragger for move by align + Selecione o arrastador para deslocar por alinhamento - Select dragger for stretch by value - Selecione o arrastador para esticar por valor + Select dragger for stretch by value + Selecione o arrastador para esticar por valor - Select dragger for move by value - Selecione o arrastador para deslocar por valor + Select dragger for move by value + Selecione o arrastador para deslocar por valor - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Inserir um valor + Enter Value + Inserir um valor - Select box to match - Selecione uma caixa para combinar + Select box to match + Selecione uma caixa para combinar - Select a point - Selecione um ponto + Select a point + Selecione um ponto - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Selecione o arrastador para alinhar + Select dragger to align + Selecione o arrastador para alinhar - Select dragger to modify - Selecione o arrastador para modificar + Select dragger to modify + Selecione o arrastador para modificar - - + + PartGui::TaskFaceColors - - Set color per face - Definir cores por face + + Set color per face + Definir cores por face - Click on the faces in the 3d view to select them. - Clique nas faces desejadas na vista 3D para selecioná-las. + + Click on the faces in the 3d view to select them. + Clique nas faces desejadas na vista 3D para selecioná-las. - Faces: - Faces: + + Faces: + Faces: - Set to default - Definir como padrão + + Set to default + Definir como padrão - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vértice/arame + Vertex/Wire + Vértice/arame - Move right - Mover para a direita + Move right + Mover para a direita - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Move o item selecionado um nível abaixo.</b> <p> Isso também irá alterar o nível do item pai. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Move o item selecionado um nível abaixo.</b> <p> Isso também irá alterar o nível do item pai. </p> - Move left - Mover para a esquerda + Move left + Mover para a esquerda - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Mover o item selecionado um nível acima.</b> <p> Isso também irá alterar o nível do item pai. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Mover o item selecionado um nível acima.</b> <p> Isso também irá alterar o nível do item pai. </p> - Move up - Mover para cima + Move up + Mover para cima - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move o item selecionado para cima.</b> <p> O item será movido dentro do nível de hierarquia. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move o item selecionado para cima.</b> <p> O item será movido dentro do nível de hierarquia. </p> - Move down - Move para baixo + Move down + Move para baixo - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move o item selecionado para baixo.</b> <p> O item será movido dentro do nível de hierarquia. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move o item selecionado para baixo.</b> <p> O item será movido dentro do nível de hierarquia. </p> - Create solid - Criar um sólido + + Create solid + Criar um sólido - Ruled surface - Superfície regrada + + Ruled surface + Superfície regrada - - + + PartGui::TaskShapeBuilder - - Create shape - Criar uma forma + + + Create shape + Criar uma forma - Edge from vertices - Uma aresta a partir de vértices + + Edge from vertices + Uma aresta a partir de vértices - Face from edges - Uma face a partir de arestas + + Face from edges + Uma face a partir de arestas - Planar - Planar + + Planar + Planar - Shell from faces - Uma casca a partir de faces + + Shell from faces + Uma casca a partir de faces - Solid from shell - Um sólido a partir de uma casca + + Solid from shell + Um sólido a partir de uma casca - Create - Criar + + Create + Criar - All faces - Todas as faces + + All faces + Todas as faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Criar um sólido + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Seleção errada + + + + + + Wrong selection + Seleção errada - Select two shapes please. - Selecione duas formas, por favor. + + + Select two shapes please. + Selecione duas formas, por favor. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Todos os arquivos CAD (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Todos os arquivos CAD (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Todos os arquivos (*.*) + + + + All Files (*.*) + Todos os arquivos (*.*) - - Sewing Tolerance - Tolerância de costura + + Sewing Tolerance + Tolerância de costura - Enter tolerance for sewing shape: - Digite a tolerância para costura de forma: + + Enter tolerance for sewing shape: + Digite a tolerância para costura de forma: - - Edit mirror plane - Editar o plano de espelho + + Edit mirror plane + Editar o plano de espelho - Transform - Transformar + + Edit chamfer edges + - - Part design - Design de partes + Transform + Transformar - - Select two shapes or more, please. - Selecione dois ou mais formas, por favor. + + + Part design + Design de partes - You have to select either two edges or two wires. - Você deve selecionar duas arestas ou dois cabos. + + + Select two shapes or more, please. + Selecione dois ou mais formas, por favor. - - Edit fillet edges - Modificar arestas filetadas + + You have to select either two edges or two wires. + Você deve selecionar duas arestas ou dois cabos. - - Set colors... - Definir cores... + + Edit fillet edges + Modificar arestas filetadas - - + + + Set colors... + Definir cores... + + + Workbench - - &Part - &Part + + &Part + &Part - &Simple - &Simples + + &Simple + &Simples - &Parametric - &Paramétrico + + &Parametric + &Paramétrico - Part tools - Ferramentas de parte + + Part tools + Ferramentas de parte - Solids - Sólidos + + Solids + Sólidos - Boolean - Booleanas + + Boolean + Booleanas - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_ru.ts b/src/Mod/Part/Gui/Resources/translations/Part_ru.ts index a7b9e6103..5f632972b 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_ru.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_ru.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - Определение блока + + Block definition + Определение блока - First limit - Первое ограничение + + First limit + Первое ограничение - Type: - Тип: + + + Type: + Тип: - mm - мм + + + mm + мм - Length: - Длина: + + + Length: + Длина: - Dimension - Размер + + + Dimension + Размер - Up to next - До Ñледующего + + + Up to next + До Ñледующего - Up to last - До поÑледнего + + + Up to last + До поÑледнего - Up to plane - До плоÑкоÑти + + + Up to plane + До плоÑкоÑти - Up to face - До грани + + + Up to face + До грани - Limit: - Ограничение: + + + Limit: + Ограничение: - No selection - Ðичего не выбрано + + + + + No selection + Ðичего не выбрано - Profile - Профиль + + Profile + Профиль - Selection: - Выделение: + + Selection: + Выделение: - Reverse - Развернуть + + Reverse + Развернуть - Both sides - Ð’ обе Ñтороны + + Both sides + Ð’ обе Ñтороны - Second limit - Второе ограничение + + Second limit + Второе ограничение - Direction - Ðаправление + + Direction + Ðаправление - Perpendicular to sketch - ПерпендикулÑрно ÑÑкизу + + Perpendicular to sketch + ПерпендикулÑрно ÑÑкизу - Reference - СÑылка + + Reference + СÑылка - Apply - Применить + + Apply + Применить - Cancel - Отмена + + Cancel + Отмена - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Деталь + + Part + Деталь - Boolean... - Булев... + + Boolean... + Булев... - Run a boolean operation with two shapes selected - Выполнить булеву операцию Ñ Ð´Ð²ÑƒÐ¼Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼Ð¸ формами + + Run a boolean operation with two shapes selected + Выполнить булеву операцию Ñ Ð´Ð²ÑƒÐ¼Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼Ð¸ формами - - + + CmdPartBox - - Part - Деталь + + Part + Деталь - Box - Куб + + Box + Куб - Create a box solid - Создать твердотельный параллелепипед + + Create a box solid + Создать твердотельный параллелепипед - - + + CmdPartBox2 - - Part - Деталь + + Part + Деталь - Box fix 1 - Поле иÑправление 1 + + Box fix 1 + Поле иÑправление 1 - Create a box solid without dialog - Создать твердотельный параллелепипед без диалога + + Create a box solid without dialog + Создать твердотельный параллелепипед без диалога - - + + CmdPartBox3 - Part - Деталь + + Part + Деталь - Box fix 2 - Поле иÑправление 2 + + Box fix 2 + Поле иÑправление 2 - Create a box solid without dialog - Создать твердотельный параллелепипед без диалога + + Create a box solid without dialog + Создать твердотельный параллелепипед без диалога - - + + CmdPartBuilder - Part - Деталь + + Part + Деталь - Shape builder... - ПоÑтроитель форм ... + + Shape builder... + ПоÑтроитель форм ... - Advanced utility to create shapes - РаÑширенный утилита Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼ + + Advanced utility to create shapes + РаÑширенный утилита Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð¾Ñ€Ð¼ - - + + + CmdPartChamfer + + + Part + Деталь + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Деталь + + Part + Деталь - Intersection - ПереÑечение + + Intersection + ПереÑечение - Make an intersection of two shapes - Создать переÑечение двух форм + + Make an intersection of two shapes + Создать переÑечение двух форм - - + + CmdPartCone - - Part - Деталь + + Part + Деталь - Cone - ÐšÐ¾Ð½ÑƒÑ + + Cone + ÐšÐ¾Ð½ÑƒÑ - Create a cone solid - Создать твердотельный ÐºÐ¾Ð½ÑƒÑ + + Create a cone solid + Создать твердотельный ÐºÐ¾Ð½ÑƒÑ - - + + CmdPartCrossSections - - Part - Деталь + + Part + Деталь - Cross-sections... - Поперечные ÑечениÑ... + + Cross-sections... + Поперечные ÑечениÑ... - Cross-sections - Поперечные ÑÐµÑ‡ÐµÐ½Ð¸Ñ + + Cross-sections + Поперечные ÑÐµÑ‡ÐµÐ½Ð¸Ñ - - + + CmdPartCut - Part - Деталь + + Part + Деталь - Cut - Обрезать + + Cut + Обрезать - Make a cut of two shapes - Выполнить обрезку двух фигур + + Make a cut of two shapes + Выполнить обрезку двух фигур - - + + CmdPartCylinder - - Part - Деталь + + Part + Деталь - Create a Cylinder - Создайте цилиндр + + Create a Cylinder + Создайте цилиндр - Cylinder - Цилиндр + + Cylinder + Цилиндр - - + + CmdPartExport - - Part - Деталь + + Part + Деталь - Export CAD... - ЭкÑпорт в CAD ... + + Export CAD... + ЭкÑпорт в CAD ... - Exports to a CAD file - ЭкÑпорт в файл CAD + + Exports to a CAD file + ЭкÑпорт в файл CAD - - + + CmdPartExtrude - Part - Деталь + + Part + Деталь - Extrude... - Выдавить ... + + Extrude... + Выдавить ... - Extrude a selected sketch - Выдавить выбранный ÑÑкиз + + Extrude a selected sketch + Выдавить выбранный ÑÑкиз - - + + CmdPartFillet - Part - Деталь + + Part + Деталь - Fillet... - Скругление... + + Fillet... + Скругление... - Fillet the selected edges of a shape - Cкругление выбранного ÐºÑ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹ + + Fillet the selected edges of a shape + Cкругление выбранного ÐºÑ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹ - - + + CmdPartFuse - Part - Деталь + + Part + Деталь - Union - Объединение + + Union + Объединение - Make a union of several shapes - Создать объединение неÑкольких фигур + + Make a union of several shapes + Создать объединение неÑкольких фигур - - + + CmdPartImport - Part - Деталь + + Part + Деталь - Imports a CAD file - Импортировать CAD-файл + + Imports a CAD file + Импортировать CAD-файл - Import CAD... - Импорт CAD... + + Import CAD... + Импорт CAD... - - + + CmdPartImportCurveNet - Part - Деталь + + Part + Деталь - Import a curve network - Импортировать кривую Ñети + + Import a curve network + Импортировать кривую Ñети - Import curve network... - Импортировать кривую Ñети... + + Import curve network... + Импортировать кривую Ñети... - - + + CmdPartLoft - Part - Деталь + + Part + Деталь - Loft... - Лофт... + + Loft... + Лофт... - Advanced utility to lofts - РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð° Ð´Ð»Ñ Ð»Ð¾Ñ„Ñ‚Ð° + + Utility to loft + - - + + Advanced utility to lofts + РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð° Ð´Ð»Ñ Ð»Ð¾Ñ„Ñ‚Ð° + + + CmdPartMakeSolid - Part - Деталь + + Part + Деталь - Convert to solid - Преобразовать в твердые + + Convert to solid + Преобразовать в твердые - Create solid from a shell or compound - Создание формы из оболочки или ÑоÑтавных + + Create solid from a shell or compound + Создание формы из оболочки или ÑоÑтавных - - + + CmdPartMirror - Part - Деталь + + Part + Деталь - Mirroring... - Зеркальное отображение... + + Mirroring... + Зеркальное отображение... - Mirroring a selected shape - Зеркальное отображение выбранной фигуры + + Mirroring a selected shape + Зеркальное отображение выбранной фигуры - - + + CmdPartPickCurveNet - Part - Деталь + + Part + Деталь - Pick curve network - Выберите кривую Ñети + + Pick curve network + Выберите кривую Ñети - Pick a curve network - Выберите кривую Ñети + + Pick a curve network + Выберите кривую Ñети - - + + CmdPartPrimitives - Part - Деталь + + Part + Деталь - Create primitives... - Создать примитивы... + + Create primitives... + Создать примитивы... - Creation of parametrized geometric primitives - Создание параметризованных геометричеÑких примитивов + + Creation of parametrized geometric primitives + Создание параметризованных геометричеÑких примитивов - - + + + CmdPartRefineShape + + + Part + Деталь + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Деталь + + Part + Деталь - Reverse shapes - ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð° + + Reverse shapes + ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð° - Reverse orientation of shapes - ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñ„Ð¸Ð³ÑƒÑ€Ñ‹ + + Reverse orientation of shapes + ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¾Ñ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ñ„Ð¸Ð³ÑƒÑ€Ñ‹ - - + + CmdPartRevolve - Part - Деталь + + Part + Деталь - Revolve... - Вращать... + + Revolve... + Вращать... - Revolve a selected shape - Вращать выбранную фигуру + + Revolve a selected shape + Вращать выбранную фигуру - - + + CmdPartRuledSurface - Part - Деталь + + Part + Деталь - Create ruled surface - Создать линейчатую ​​поверхноÑть + + Create ruled surface + Создать линейчатую ​​поверхноÑть - Create a ruled surface from two curves - Создать линейчатую ​​поверхноÑть из двух кривых + + Create a ruled surface from two curves + Создать линейчатую ​​поверхноÑть из двух кривых - - + + CmdPartSection - Make a section of two shapes - Сделать Ñечение из двух форм + + Make a section of two shapes + Сделать Ñечение из двух форм - Part - Деталь + + Part + Деталь - Section - Раздел + + Section + Раздел - - + + CmdPartShapeFromMesh - - Part - Деталь + + Part + Деталь - Create shape from mesh... - Создание формы из Ñетки ... + + Create shape from mesh... + Создание формы из Ñетки ... - Create shape from selected mesh object - Создание формы из выбранного объекта Ñетки + + Create shape from selected mesh object + Создание формы из выбранного объекта Ñетки - - + + CmdPartSimpleCopy - Part - Деталь + + Part + Деталь - Create simple copy - Создать проÑтую копию + + Create simple copy + Создать проÑтую копию - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - Деталь + + Part + Деталь - Create Cylinder... - Создайте цилиндр ... + + Create Cylinder... + Создайте цилиндр ... - Create a Cylinder - Создайте цилиндр + + Create a Cylinder + Создайте цилиндр - - + + CmdPartSphere - - Create a sphere solid - Создать твердотельную Ñферу + + Create a sphere solid + Создать твердотельную Ñферу - Part - Деталь + + Part + Деталь - Sphere - Сфера + + Sphere + Сфера - - + + + CmdPartSweep + + + Part + Деталь + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Создать твердотельный тор + + Create a torus solid + Создать твердотельный тор - Part - Деталь + + Part + Деталь - Torus - Тор + + Torus + Тор - - + + DlgExtrusion - Select a shape for extrusion, first. - Сначала выберите фигуру Ð´Ð»Ñ ÑкÑтрузии. + Select a shape for extrusion, first. + Сначала выберите фигуру Ð´Ð»Ñ ÑкÑтрузии. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Сначала выберите фигуру Ð´Ð»Ñ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ð¸. + Select a shape for revolution, first. + Сначала выберите фигуру Ð´Ð»Ñ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ð¸. - - + + DlgSettings3DViewPart - Deviation - Отклонение + Deviation + Отклонение - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Поперечные ÑÐµÑ‡ÐµÐ½Ð¸Ñ + + Cross sections + Поперечные ÑÐµÑ‡ÐµÐ½Ð¸Ñ - Guiding plane - Ð’ÐµÐ´ÑƒÑ‰Ð°Ñ Ð¿Ñ€Ð¾ÐµÐºÑ†Ð¸Ñ + + Guiding plane + Ð’ÐµÐ´ÑƒÑ‰Ð°Ñ Ð¿Ñ€Ð¾ÐµÐºÑ†Ð¸Ñ - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - РаÑположение: + + Position: + РаÑположение: - Sections - Разделы + + Sections + Разделы - On both sides - С обеих Ñторон + + On both sides + С обеих Ñторон - Count - Итог + + Count + Итог - Distance: - РаÑÑтоÑние: + + Distance: + РаÑÑтоÑние: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Булева Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ + + Boolean Operation + Булева Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ - Second shape - Ð’Ñ‚Ð¾Ñ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° + + Second shape + Ð’Ñ‚Ð¾Ñ€Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° - First shape - ÐŸÐµÑ€Ð²Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° + + First shape + ÐŸÐµÑ€Ð²Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° - Boolean operation - Булева Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ + + Boolean operation + Булева Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ - Section - Раздел + + Section + Раздел - Difference - РазноÑть + + Difference + РазноÑть - Union - Объединение + + Union + Объединение - Intersection - ПереÑечение + + Intersection + ПереÑечение - - Cannot perform a boolean operation with the same shape - Ðевозможно выполнить булеву операцию Ñ Ñ‚Ð¾Ð¹ же формой + + Cannot perform a boolean operation with the same shape + Ðевозможно выполнить булеву операцию Ñ Ñ‚Ð¾Ð¹ же формой - - Solids - МаÑÑивы + + + Solids + МаÑÑивы - Shells - Оболочки + + + Shells + Оболочки - Compounds - Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ + + + Compounds + Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ - Faces - Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ + + + Faces + Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - Swap selection - Выбор Ñвопа + + Swap selection + Выбор Ñвопа - - Select a shape on the left side, first - Сначала выберите фигуру на левой Ñтороне + + Select a shape on the left side, first + Сначала выберите фигуру на левой Ñтороне - Select a shape on the right side, first - Сначала выберите фигуру Ñправа + + Select a shape on the right side, first + Сначала выберите фигуру Ñправа - No active document available - Ðет доÑтупного активного документа + + No active document available + Ðет доÑтупного активного документа - One of the selected objects doesn't exist anymore - Один из выбранных объектов больше не ÑущеÑтвует + + One of the selected objects doesn't exist anymore + Один из выбранных объектов больше не ÑущеÑтвует - Performing union on non-solids is not possible - Выполнение Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ + + Performing union on non-solids is not possible + Выполнение Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ - Performing intersection on non-solids is not possible - Выполнение переÑÐµÑ‡ÐµÐ½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ + + Performing intersection on non-solids is not possible + Выполнение переÑÐµÑ‡ÐµÐ½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ - Performing difference on non-solids is not possible - Выполнение Ð²Ñ‹Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ + + Performing difference on non-solids is not possible + Выполнение Ð²Ñ‹Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñ Ð±ÐµÐ· твердых тел не предÑтавлÑетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ‹Ð¼ - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Выдавить + + Extrude + Выдавить - Direction - Ðаправление + + Direction + Ðаправление - Along normal - Вдоль нормали + + Along normal + Вдоль нормали - Length: - Длина: + + Length: + Длина: - 3D view - 3D вид + + 3D view + 3D вид - Note:This option works for planes only - Примечание: Эта Ð¾Ð¿Ñ†Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ только Ð´Ð»Ñ Ð¿Ð»Ð¾ÑкоÑтей + + Note:This option works for planes only + Примечание: Эта Ð¾Ð¿Ñ†Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÐµÑ‚ только Ð´Ð»Ñ Ð¿Ð»Ð¾ÑкоÑтей - Shape - Форма + + Create solid + Создать твердое тело - - * + + Taper outward angle + - X: - X: + + Shape + Форма - Z: - Z: + + * - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Сначала выберите фигуру Ð´Ð»Ñ ÑкÑтрузии. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Сначала выберите фигуру Ð´Ð»Ñ ÑкÑтрузии. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Скруглить ребра + + Fillet Edges + Скруглить ребра - Fillet Parameter - Параветр ÑÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ + + Fillet Parameter + Параветр ÑÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ - Radius: - РадиуÑ: + + Radius: + РадиуÑ: - Fillet type: - Тип ленты: + + Fillet type: + Тип ленты: - Constant Radius - ПоÑтоÑнный Ñ€Ð°Ð´Ð¸ÑƒÑ + + Constant Radius + ПоÑтоÑнный Ñ€Ð°Ð´Ð¸ÑƒÑ - Variable Radius - Переменный Ñ€Ð°Ð´Ð¸ÑƒÑ + + Variable Radius + Переменный Ñ€Ð°Ð´Ð¸ÑƒÑ - Shape - Форма + + Shape + Форма - Selected shape: - Ð’Ñ‹Ð´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð°: + + Selected shape: + Ð’Ñ‹Ð´ÐµÐ»ÐµÐ½Ð½Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ð°: - No selection - Ðичего не выбрано + + No selection + Ðичего не выбрано - - Edges to fillet - Ребера Ð´Ð»Ñ ÑÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ + + Edges to fillet + Ребера Ð´Ð»Ñ ÑÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ - Start radius - Ðачальный Ñ€Ð°Ð´Ð¸ÑƒÑ + + + Start radius + Ðачальный Ñ€Ð°Ð´Ð¸ÑƒÑ - End radius - Конечный Ñ€Ð°Ð´Ð¸ÑƒÑ + + End radius + Конечный Ñ€Ð°Ð´Ð¸ÑƒÑ - Radius - Ð Ð°Ð´Ð¸ÑƒÑ + + Radius + Ð Ð°Ð´Ð¸ÑƒÑ - No edge selected - Ðет выбранных ребер + + No edge selected + Ðет выбранных ребер - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - ÐÐµÐ»ÑŒÐ·Ñ Ñгладить краÑ. + ÐÐµÐ»ÑŒÐ·Ñ Ñгладить краÑ. ПожалуйÑта, выберите обьект Ð´Ð»Ñ ÑглаживаниÑ. - - All - Ð’Ñе + + All + Ð’Ñе - None - Ðичего + + None + Ðичего - - Edge%1 - Грань%1 + + + Edge%1 + Грань%1 - No shape selected - Профиль не выбран + + No shape selected + Профиль не выбран - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - ДопуÑтимый профиль не выбран. ПожалуйÑта Ñначала выберите допуÑтимый профиль в выпадающем ÑпиÑке. + ДопуÑтимый профиль не выбран. ПожалуйÑта Ñначала выберите допуÑтимый профиль в выпадающем ÑпиÑке. - - + + PartGui::DlgPartBox - - Box definition - Определение параллелепипеда + + Box definition + Определение параллелепипеда - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Отмена + + Cancel + Отмена - OK - OK + + OK + OK - Size: - Размер: + + Size: + Размер: - Height: - Ð’Ñ‹Ñота: + + Height: + Ð’Ñ‹Ñота: - Width: - Ширина: + + Width: + Ширина: - Length: - Длина: + + Length: + Длина: - Position: - РаÑположение: + + Position: + РаÑположение: - Direction: - Ðаправление: + + Direction: + Ðаправление: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Определение цилиндра + + Cylinder definition + Определение цилиндра - Parameter - Параметр + + Parameter + Параметр - Height: - Ð’Ñ‹Ñота: + + Height: + Ð’Ñ‹Ñота: - Radius: - РадиуÑ: + + Radius: + РадиуÑ: - Position: - РаÑположение: + + Position: + РаÑположение: - Direction: - Ðаправление: + + Direction: + Ðаправление: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Отмена + + Cancel + Отмена - - + + PartGui::DlgPartImportIges - - IGES input file - Входной файл IGES + + IGES input file + Входной файл IGES - ... - ... + + ... + ... - Cancel - Отмена + + Cancel + Отмена - OK - OK + + OK + OK - File Name - Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° + + File Name + Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° - - * + + * - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Ð’Ñе файлы (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Ð’Ñе файлы (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Отмена + + Cancel + Отмена - OK - OK + + OK + OK - Step input file - Шаг входного файла + + Step input file + Шаг входного файла - File Name - Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° + + File Name + Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° - - * + + * - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Ð’Ñе файлы (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Ð’Ñе файлы (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - ГеометричеÑкие примитивы + + Geometric Primitives + ГеометричеÑкие примитивы - Primitive - Примитив + Primitive + Примитив - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Угол0 + Angle0 + Угол0 - Angle1 - Угол1 + Angle1 + Угол1 - X Axis Value: - Значение на оÑи X: + X Axis Value: + Значение на оÑи X: - Y Axis Value: - Значение на оÑи Y: + Y Axis Value: + Значение на оÑи Y: - Z Axis Value: - Значение на оÑи Z: + Z Axis Value: + Значение на оÑи Z: - Wedge - Wedge + + Wedge + Wedge - Circle - ОкружноÑть + + Circle + ОкружноÑть - Vertex - Вершина + Vertex + Вершина - Position - ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ + Position + ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Ðаправление: + Direction: + Ðаправление: - Y: - Y: + + + + Y: + Y: - Plane - ПлоÑкоÑть + + Plane + ПлоÑкоÑть - Box - Куб + + Box + Куб - Cylinder - Цилиндр + + Cylinder + Цилиндр - Cone - ÐšÐ¾Ð½ÑƒÑ + + Cone + ÐšÐ¾Ð½ÑƒÑ - Sphere - Сфера + + Sphere + Сфера - Ellipsoid - ЭллипÑоид + + Ellipsoid + ЭллипÑоид - Torus - Тор + + Torus + Тор - Parameter - Параметр + + Ellipse + - Width: - Ширина: + + Point + - Length: - Длина: + + Line + - Height: - Ð’Ñ‹Ñота: + + Parameter + Параметр - Angle: - Угол: + + + Width: + Ширина: - Radius: - РадиуÑ: + + + Length: + Длина: - Radius 1: - Ð Ð°Ð´Ð¸ÑƒÑ 1: + + + + + Height: + Ð’Ñ‹Ñота: - Radius 2: - Ð Ð°Ð´Ð¸ÑƒÑ 2: + + + + Angle: + Угол: - U parametric: - ПараметричеÑкий U: + + + + + Radius: + РадиуÑ: - V parametric: - ПараметричеÑкий V: + + + + Radius 1: + Ð Ð°Ð´Ð¸ÑƒÑ 1: - &Create - &Создать + + + + Radius 2: + Ð Ð°Ð´Ð¸ÑƒÑ 2: - Alt+C - Alt + C + + + + U parametric: + ПараметричеÑкий U: - Cl&ose - Зак&рыть + + + + V parametric: + ПараметричеÑкий V: - Alt+O - Alt + O + + X min/max: + - - Create %1 - Создать %1 + + Y min/max: + - No active document - Ðет активного документа + + Z min/max: + - - Pitch: - Шаг: + + X2 min/max: + - Helix - Спираль + + Z2 min/max: + - 3D View - 3D Вид + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Создать + + + Alt+C + Alt + C + + + Cl&ose + Зак&рыть + + + Alt+O + Alt + O + + + + + + Create %1 + Создать %1 + + + + No active document + Ðет активного документа + + + + Pitch: + Шаг: + + + + Helix + Спираль + + + 3D View + 3D Вид + + + PartGui::DlgRevolution - - Revolve - ВращатьÑÑ + + Revolve + ВращатьÑÑ - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Угол: + + Angle: + Угол: - Z: - Z: + + Z: + Z: - Axis: - ОÑÑŒ: + + Axis: + ОÑÑŒ: - Shape - Форма + + Shape + Форма - - Select a shape for revolution, first. - Сначала выберите фигуру Ð´Ð»Ñ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ð¸. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Сначала выберите фигуру Ð´Ð»Ñ Ñ€ÐµÐ²Ð¾Ð»ÑŽÑ†Ð¸Ð¸. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Оценить точноÑть / характериÑтики + + View accuracy / Performance + Оценить точноÑть / характериÑтики - View smoothing - ПоÑмотреть ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ + + View smoothing + ПоÑмотреть ÑÐ³Ð»Ð°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ - Using high-quality normals - ИÑпользование выÑококачеÑтвенных нормалей + + Using high-quality normals + ИÑпользование выÑококачеÑтвенных нормалей - This will slow down render speed but will lead to nicer results - Это будет замедлÑть ÑкороÑть визуализации, но приведет к лучшему результату + + This will slow down render speed but will lead to nicer results + Это будет замедлÑть ÑкороÑть визуализации, но приведет к лучшему результату - Defines the appearance of surfaces - Определить внешний вид поверхноÑтей + + Defines the appearance of surfaces + Определить внешний вид поверхноÑтей - Shape view - Форма предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ + + Shape view + Форма предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - Tessellation - Мозаика + + Tessellation + Мозаика - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - Do not define normal per vertex - Ðе определÑйте нормалей каждой вершины + + Do not define normal per vertex + Ðе определÑйте нормалей каждой вершины - Defines the deviation of tessellation to the actual surface - ОпределÑет отклонение теÑÑелÑции к Ñамой поверхноÑти + + Defines the deviation of tessellation to the actual surface + ОпределÑет отклонение теÑÑелÑции к Ñамой поверхноÑти - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - МакÑимальное отклонение в завиÑимоÑти от ограничительной рамки модели + + Maximum deviation depending on the model bounding box + МакÑимальное отклонение в завиÑимоÑти от ограничительной рамки модели - % - % + + % + % - - Deviation - Отклонение + + Deviation + Отклонение - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Главный + + General + Главный - Export - ЭкÑпорт + + Export + ЭкÑпорт - Millimeter - Миллиметр + + Millimeter + Миллиметр - Meter - Метр + + Meter + Метр - Inch - Дюйм + + Inch + Дюйм - Units for export of STEP/IGES - Единиц Ð´Ð»Ñ ÑкÑпорта STEP/IGES + + Units for export of STEP/IGES + Единиц Ð´Ð»Ñ ÑкÑпорта STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ + + + + 3D View + 3D Вид + + + PartGui::LoftWidget - - Too few elements - Слишком мало Ñлементов + + + Vertex/Wire + Вершина/проволока - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Лофт - - + + + Too few elements + Слишком мало Ñлементов + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Зеркальное отображение + + Mirroring + Зеркальное отображение - Shapes - Формы + + Shapes + Формы - Mirror plane: - Ð—ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑть: + + Mirror plane: + Ð—ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑть: - XY plane - ПлоÑкоÑть XY + + XY plane + ПлоÑкоÑть XY - XZ plane - ПлоÑкоÑть XZ + + XZ plane + ПлоÑкоÑть XZ - YZ plane - ПлоÑкоÑть YZ + + YZ plane + ПлоÑкоÑть YZ - Base point: - Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°: + + Base point: + Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°: - x - x + + x + x - y - у + + y + у - z - z + + z + z - - Select a shape for mirroring, first. - Сначала выберите фигуру Ð´Ð»Ñ Ð·ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ отображениÑ. + + Select a shape for mirroring, first. + Сначала выберите фигуру Ð´Ð»Ñ Ð·ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ отображениÑ. - No such document '%1'. - Ðет такого документа'%1'. + + No such document '%1'. + Ðет такого документа'%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Ðеправильный выбор + + + + + + Wrong selection + Ðеправильный выбор - Select two vertices - Выберите две вершины + + + Select two vertices + Выберите две вершины - Select three or more edges - Выберите три или более ребра + Select three or more edges + Выберите три или более ребра - Select two or more faces - Выберите две или более грани + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Выберите две или более грани - Select two vertices to create an edge - Выберите две вершины Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ±Ñ€Ð° + + Select only one part object + Select only one part object - Select a closed set of edges - Выберите ребра, образующие замкнутый контур + + Select two vertices to create an edge + Выберите две вершины Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ±Ñ€Ð° - Select adjacent faces - Выберите Ñмежные грани + + Select a closed set of edges + Выберите ребра, образующие замкнутый контур - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Выберите Ñмежные грани - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Вершина/проволока + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Слишком мало Ñлементов + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Значение + Value + Значение - Special - Special + Special + Special - Command - Команда + Command + Команда - Stretch - Stretch + Stretch + Stretch - Move - Перемещение + Move + Перемещение - Rotate - Повернуть + Rotate + Повернуть - Offset - Смещение + Offset + Смещение - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - УÑтановить цвет Ð´Ð»Ñ Ð³Ñ€Ð°Ð½Ð¸ + + Set color per face + УÑтановить цвет Ð´Ð»Ñ Ð³Ñ€Ð°Ð½Ð¸ - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Грани: + + Faces: + Грани: - Set to default - УÑтановить по умолчанию + + Set to default + УÑтановить по умолчанию - - + + PartGui::TaskLoft - - Loft - Лофт + + Loft + Лофт - Vertex/Wire - Вершина/проволока + Vertex/Wire + Вершина/проволока - Move right - Перейти вправо + Move right + Перейти вправо - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> - Move left - Перейти влево + Move left + Перейти влево - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Перемещение выбранного Ñлемента на один уровень вниз.</b> <p> Это повлечет за Ñобой изменение ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÑкого Ñлемента. </p> - Move up - ПеремеÑтить вверх + Move up + ПеремеÑтить вверх - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - Move down - ПеремеÑтить вниз + Move down + ПеремеÑтить вниз - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - Create solid - Создать твердое тело + + Create solid + Создать твердое тело - Ruled surface - ПоверхноÑть по закону + + Ruled surface + ПоверхноÑть по закону - - + + PartGui::TaskShapeBuilder - - Create shape - Создать форму + + + Create shape + Создать форму - Edge from vertices - Ребро по вершинам + + Edge from vertices + Ребро по вершинам - Face from edges - Грань из ребер + + Face from edges + Грань из ребер - Planar - ПлоÑкий + + Planar + ПлоÑкий - Shell from faces - Оболочка из граней + + Shell from faces + Оболочка из граней - Solid from shell - Твердое тело из оболочки + + Solid from shell + Твердое тело из оболочки - Create - Создать + + Create + Создать - All faces - Ð’Ñе грани + + All faces + Ð’Ñе грани - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Создать твердое тело + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Ðеправильный выбор + + + + + + Wrong selection + Ðеправильный выбор - Select two shapes please. - Выберите две формы пожалуйÑта. + + + Select two shapes please. + Выберите две формы пожалуйÑта. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Ð’Ñе CAD-файлы (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Ð’Ñе CAD-файлы (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Ð’Ñе файлы (*.*) + + + + All Files (*.*) + Ð’Ñе файлы (*.*) - - Sewing Tolerance - ДопуÑк на Ñшивку + + Sewing Tolerance + ДопуÑк на Ñшивку - Enter tolerance for sewing shape: - Введите допуÑтимоÑть Ð´Ð»Ñ ÑˆÐ¸Ñ‚ÑŒÑ Ñ„Ð¾Ñ€Ð¼Ñ‹: + + Enter tolerance for sewing shape: + Введите допуÑтимоÑть Ð´Ð»Ñ ÑˆÐ¸Ñ‚ÑŒÑ Ñ„Ð¾Ñ€Ð¼Ñ‹: - - Edit mirror plane - Редактировать плоÑкоÑть зеркала + + Edit mirror plane + Редактировать плоÑкоÑть зеркала - Transform - Преобразовать + + Edit chamfer edges + - - Part design - Дизайн детали + Transform + Преобразовать - - Select two shapes or more, please. - ПожалуйÑта выберите неÑколько форм. + + + Part design + Дизайн детали - You have to select either two edges or two wires. - Ð’Ñ‹ должны выбрать два ребра или две линии. + + + Select two shapes or more, please. + ПожалуйÑта выберите неÑколько форм. - - Edit fillet edges - Изменение краев ленты + + You have to select either two edges or two wires. + Ð’Ñ‹ должны выбрать два ребра или две линии. - - Set colors... - УÑтановите цвета ... + + Edit fillet edges + Изменение краев ленты - - + + + Set colors... + УÑтановите цвета ... + + + Workbench - - &Part - Деталь + + &Part + Деталь - &Simple - ПроÑтой + + &Simple + ПроÑтой - &Parametric - ПараметричеÑкий + + &Parametric + ПараметричеÑкий - Part tools - ЧаÑть ÑредÑтв + + Part tools + ЧаÑть ÑредÑтв - Solids - МаÑÑивы + + Solids + МаÑÑивы - Boolean - Булевый + + Boolean + Булевый - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_se.ts b/src/Mod/Part/Gui/Resources/translations/Part_se.ts index 7387fb468..e79bf4546 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_se.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_se.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - Block definition + + Block definition + Block definition - First limit - Första begränsningen + + First limit + Första begränsningen - Type: - Typ: + + + Type: + Typ: - mm - mm + + + mm + mm - Length: - Längd: + + + Length: + Längd: - Dimension - Dimension + + + Dimension + Dimension - Up to next - Upp till nästa + + + Up to next + Upp till nästa - Up to last - Upp till sista + + + Up to last + Upp till sista - Up to plane - Upp till plan + + + Up to plane + Upp till plan - Up to face - Upp till yta + + + Up to face + Upp till yta - Limit: - Begränsning: + + + Limit: + Begränsning: - No selection - Inget val + + + + + No selection + Inget val - Profile - Profil + + Profile + Profil - Selection: - markering: + + Selection: + markering: - Reverse - Omvänd + + Reverse + Omvänd - Both sides - BÃ¥da sidor + + Both sides + BÃ¥da sidor - Second limit - Andra begränsningen + + Second limit + Andra begränsningen - Direction - Riktning + + Direction + Riktning - Perpendicular to sketch - Vinkelrätt mot skiss + + Perpendicular to sketch + Vinkelrätt mot skiss - Reference - Referens + + Reference + Referens - Apply - Verkställ + + Apply + Verkställ - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - - + + CmdPartBoolean - - Part - Detalj + + Part + Detalj - Boolean... - Boolesk... + + Boolean... + Boolesk... - Run a boolean operation with two shapes selected - Kör en boolesk operation med tvÃ¥ valda former + + Run a boolean operation with two shapes selected + Kör en boolesk operation med tvÃ¥ valda former - - + + CmdPartBox - - Part - Detalj + + Part + Detalj - Box - LÃ¥da + + Box + LÃ¥da - Create a box solid - Skapa en lÃ¥dsolid + + Create a box solid + Skapa en lÃ¥dsolid - - + + CmdPartBox2 - - Part - Detalj + + Part + Detalj - Box fix 1 - Kub fix 1 + + Box fix 1 + Kub fix 1 - Create a box solid without dialog - Skapa en lÃ¥dsolid utan dialogruta + + Create a box solid without dialog + Skapa en lÃ¥dsolid utan dialogruta - - + + CmdPartBox3 - Part - Detalj + + Part + Detalj - Box fix 2 - Kub fix 2 + + Box fix 2 + Kub fix 2 - Create a box solid without dialog - Skapa en lÃ¥dsolid utan dialogruta + + Create a box solid without dialog + Skapa en lÃ¥dsolid utan dialogruta - - + + CmdPartBuilder - Part - Detalj + + Part + Detalj - Shape builder... - form byggare ... + + Shape builder... + form byggare ... - Advanced utility to create shapes - Avancerade verktyg för att skapa former + + Advanced utility to create shapes + Avancerade verktyg för att skapa former - - + + + CmdPartChamfer + + + Part + Detalj + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - Detalj + + Part + Detalj - Intersection - Skärning + + Intersection + Skärning - Make an intersection of two shapes - Gör en skärning mellan tvÃ¥ former + + Make an intersection of two shapes + Gör en skärning mellan tvÃ¥ former - - + + CmdPartCone - - Part - Detalj + + Part + Detalj - Cone - Kon + + Cone + Kon - Create a cone solid - Skapa en kon solid + + Create a cone solid + Skapa en kon solid - - + + CmdPartCrossSections - - Part - Detalj + + Part + Detalj - Cross-sections... - Tvärsnitt... + + Cross-sections... + Tvärsnitt... - Cross-sections - Tvärsnitt + + Cross-sections + Tvärsnitt - - + + CmdPartCut - Part - Detalj + + Part + Detalj - Cut - Klipp + + Cut + Klipp - Make a cut of two shapes - Gör ett klipp med tvÃ¥ former + + Make a cut of two shapes + Gör ett klipp med tvÃ¥ former - - + + CmdPartCylinder - - Part - Detalj + + Part + Detalj - Create a Cylinder - Skapa en Cylinder + + Create a Cylinder + Skapa en Cylinder - Cylinder - Cylinder + + Cylinder + Cylinder - - + + CmdPartExport - - Part - Detalj + + Part + Detalj - Export CAD... - Exportera CAD ... + + Export CAD... + Exportera CAD ... - Exports to a CAD file - Exporterar till en CAD-fil + + Exports to a CAD file + Exporterar till en CAD-fil - - + + CmdPartExtrude - Part - Detalj + + Part + Detalj - Extrude... - Extrudera... + + Extrude... + Extrudera... - Extrude a selected sketch - Extrudera en vald skiss + + Extrude a selected sketch + Extrudera en vald skiss - - + + CmdPartFillet - Part - Detalj + + Part + Detalj - Fillet... - Fasning... + + Fillet... + Fasning... - Fillet the selected edges of a shape - Fasa av de valda kanterna pÃ¥ en form + + Fillet the selected edges of a shape + Fasa av de valda kanterna pÃ¥ en form - - + + CmdPartFuse - Part - Detalj + + Part + Detalj - Union - Förening + + Union + Förening - Make a union of several shapes - Gör en förening av flera former + + Make a union of several shapes + Gör en förening av flera former - - + + CmdPartImport - Part - Detalj + + Part + Detalj - Imports a CAD file - Importerar en CAD-fil + + Imports a CAD file + Importerar en CAD-fil - Import CAD... - Importera CAD... + + Import CAD... + Importera CAD... - - + + CmdPartImportCurveNet - Part - Detalj + + Part + Detalj - Import a curve network - Importera ett kurvnät + + Import a curve network + Importera ett kurvnät - Import curve network... - Importera kurvnät... + + Import curve network... + Importera kurvnät... - - + + CmdPartLoft - Part - Detalj + + Part + Detalj - Loft... - Loft ... + + Loft... + Loft ... - Advanced utility to lofts - Avancerade verktyg för loft + + Utility to loft + - - + + Advanced utility to lofts + Avancerade verktyg för loft + + + CmdPartMakeSolid - Part - Detalj + + Part + Detalj - Convert to solid - Konvertera till solid + + Convert to solid + Konvertera till solid - Create solid from a shell or compound - Skapa en solid frÃ¥n ett skal eller en sammansättning + + Create solid from a shell or compound + Skapa en solid frÃ¥n ett skal eller en sammansättning - - + + CmdPartMirror - Part - Detalj + + Part + Detalj - Mirroring... - Spegling... + + Mirroring... + Spegling... - Mirroring a selected shape - Spegling av en markerad form + + Mirroring a selected shape + Spegling av en markerad form - - + + CmdPartPickCurveNet - Part - Detalj + + Part + Detalj - Pick curve network - Välj kurvnät + + Pick curve network + Välj kurvnät - Pick a curve network - Välj ett kurvnät + + Pick a curve network + Välj ett kurvnät - - + + CmdPartPrimitives - Part - Detalj + + Part + Detalj - Create primitives... - Skapa primitiver... + + Create primitives... + Skapa primitiver... - Creation of parametrized geometric primitives - Skapa parametriserade geometriska primitiver + + Creation of parametrized geometric primitives + Skapa parametriserade geometriska primitiver - - + + + CmdPartRefineShape + + + Part + Detalj + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - Detalj + + Part + Detalj - Reverse shapes - Omvända former + + Reverse shapes + Omvända former - Reverse orientation of shapes - Omvänd orientering av former + + Reverse orientation of shapes + Omvänd orientering av former - - + + CmdPartRevolve - Part - Detalj + + Part + Detalj - Revolve... - Rotera... + + Revolve... + Rotera... - Revolve a selected shape - Rotera en vald form + + Revolve a selected shape + Rotera en vald form - - + + CmdPartRuledSurface - Part - Detalj + + Part + Detalj - Create ruled surface - Skapa styrd yta + + Create ruled surface + Skapa styrd yta - Create a ruled surface from two curves - Skapa en styrd yta frÃ¥n tvÃ¥ kurvor + + Create a ruled surface from two curves + Skapa en styrd yta frÃ¥n tvÃ¥ kurvor - - + + CmdPartSection - Make a section of two shapes - Gör ett tvärsnitt av tvÃ¥ former + + Make a section of two shapes + Gör ett tvärsnitt av tvÃ¥ former - Part - Detalj + + Part + Detalj - Section - Sektionering + + Section + Sektionering - - + + CmdPartShapeFromMesh - - Part - Detalj + + Part + Detalj - Create shape from mesh... - Skapa form frÃ¥n nät ... + + Create shape from mesh... + Skapa form frÃ¥n nät ... - Create shape from selected mesh object - Skapa form frÃ¥n valt nätobjekt + + Create shape from selected mesh object + Skapa form frÃ¥n valt nätobjekt - - + + CmdPartSimpleCopy - Part - Detalj + + Part + Detalj - Create simple copy - Skapa en enkel kopia + + Create simple copy + Skapa en enkel kopia - Create a simple non-parametric copy - Skapa en enkel icke-parametrisk kopia + + Create a simple non-parametric copy + Skapa en enkel icke-parametrisk kopia - - + + CmdPartSimpleCylinder - Part - Detalj + + Part + Detalj - Create Cylinder... - Skapa Cylinder... + + Create Cylinder... + Skapa Cylinder... - Create a Cylinder - Skapa en Cylinder + + Create a Cylinder + Skapa en Cylinder - - + + CmdPartSphere - - Create a sphere solid - Skapa en sfär solid + + Create a sphere solid + Skapa en sfär solid - Part - Detalj + + Part + Detalj - Sphere - Sfär + + Sphere + Sfär - - + + + CmdPartSweep + + + Part + Detalj + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Skapa en torus solid + + Create a torus solid + Skapa en torus solid - Part - Detalj + + Part + Detalj - Torus - Torus + + Torus + Torus - - + + DlgExtrusion - Select a shape for extrusion, first. - Välj en form för extrudering först. + Select a shape for extrusion, first. + Välj en form för extrudering först. - The document '%1' doesn't exist. - Dokumentet "%1" finns inte. + The document '%1' doesn't exist. + Dokumentet "%1" finns inte. - - + + DlgRevolution - Select a shape for revolution, first. - Välj en form för rotering först. + Select a shape for revolution, first. + Välj en form för rotering först. - - + + DlgSettings3DViewPart - Deviation - Avvikelse + Deviation + Avvikelse - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Att ställa in en för liten avvikelse orsakar tesselleringen att ta längre tid och därmed fryser eller saktar ner det grafiska gränssnittet. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Att ställa in en för liten avvikelse orsakar tesselleringen att ta längre tid och därmed fryser eller saktar ner det grafiska gränssnittet. - - + + PartGui::CrossSections - - Cross sections - Tvärsnitt + + Cross sections + Tvärsnitt - Guiding plane - Vägledande plan + + Guiding plane + Vägledande plan - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - Position: + + Position: + Position: - Sections - Sektionering + + Sections + Sektionering - On both sides - PÃ¥ bÃ¥da sidor + + On both sides + PÃ¥ bÃ¥da sidor - Count - Antal + + Count + Antal - Distance: - AvstÃ¥nd: + + Distance: + AvstÃ¥nd: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Boolesk operation + + Boolean Operation + Boolesk operation - Second shape - Andra formen + + Second shape + Andra formen - First shape - Första formen + + First shape + Första formen - Boolean operation - Boolesk operation + + Boolean operation + Boolesk operation - Section - Sektionering + + Section + Sektionering - Difference - Skillnad + + Difference + Skillnad - Union - Förening + + Union + Förening - Intersection - Skärning + + Intersection + Skärning - - Cannot perform a boolean operation with the same shape - Kan inte utföra en boolesk operation med samma form + + Cannot perform a boolean operation with the same shape + Kan inte utföra en boolesk operation med samma form - - Solids - Solider + + + Solids + Solider - Shells - Skal + + + Shells + Skal - Compounds - Sammansättningar + + + Compounds + Sammansättningar - Faces - Ytor + + + Faces + Ytor - Swap selection - Växla urval + + Swap selection + Växla urval - - Select a shape on the left side, first - Välj en form pÃ¥ vänster sida först + + Select a shape on the left side, first + Välj en form pÃ¥ vänster sida först - Select a shape on the right side, first - Välj en form till höger först + + Select a shape on the right side, first + Välj en form till höger först - No active document available - Inget tillgängligt aktivt dokument + + No active document available + Inget tillgängligt aktivt dokument - One of the selected objects doesn't exist anymore - Ett av de markerade objekten finns inte längre + + One of the selected objects doesn't exist anymore + Ett av de markerade objekten finns inte längre - Performing union on non-solids is not possible - Att utföra förening pÃ¥ icke-solider är inte möjligt + + Performing union on non-solids is not possible + Att utföra förening pÃ¥ icke-solider är inte möjligt - Performing intersection on non-solids is not possible - Att utföra skärning pÃ¥ icke-solider är inte möjligt + + Performing intersection on non-solids is not possible + Att utföra skärning pÃ¥ icke-solider är inte möjligt - Performing difference on non-solids is not possible - Att utföra skillnad pÃ¥ icke-solider är inte möjligt + + Performing difference on non-solids is not possible + Att utföra skillnad pÃ¥ icke-solider är inte möjligt - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Extrudera + + Extrude + Extrudera - Direction - Riktning + + Direction + Riktning - Along normal - Längs normal + + Along normal + Längs normal - Length: - Längd: + + Length: + Längd: - 3D view - 3D vy + + 3D view + 3D vy - Note:This option works for planes only - OBS: Detta alternativ fungerar endast för plan + + Note:This option works for planes only + OBS: Detta alternativ fungerar endast för plan - Shape - Form + + Create solid + Skapa solid - - + + Taper outward angle + - X: - X: + + Shape + Form - Z: - Z: + + - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Välj en form för extrudering först. + + Z: + Z: - The document '%1' doesn't exist. - Dokumentet "%1" finns inte. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Välj en form för extrudering först. + + + + The document '%1' doesn't exist. + Dokumentet "%1" finns inte. + + + PartGui::DlgFilletEdges - - Fillet Edges - Runda av kanter + + Fillet Edges + Runda av kanter - Fillet Parameter - Avrundningsparameter + + Fillet Parameter + Avrundningsparameter - Radius: - Radie: + + Radius: + Radie: - Fillet type: - Avrundningstyp: + + Fillet type: + Avrundningstyp: - Constant Radius - Konstant radie + + Constant Radius + Konstant radie - Variable Radius - Variabel radie + + Variable Radius + Variabel radie - Shape - Form + + Shape + Form - Selected shape: - Vald form: + + Selected shape: + Vald form: - No selection - Inget val + + No selection + Inget val - - Edges to fillet - Kanter att avrunda + + Edges to fillet + Kanter att avrunda - Start radius - Start radie + + + Start radius + Start radie - End radius - Slut radie + + End radius + Slut radie - Radius - Radie + + Radius + Radie - No edge selected - Ingen kant vald + + No edge selected + Ingen kant vald - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Ingen kant är vald för avrundning. + Ingen kant är vald för avrundning. Välj en eller fler kanter först. - - All - Alla + + All + Alla - None - inget + + None + inget - - Edge%1 - Kant%1 + + + Edge%1 + Kant%1 - No shape selected - Ingen form har valts + + No shape selected + Ingen form har valts - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ingen giltig form är markerad. Välj en giltig form i listrutan först. + Ingen giltig form är markerad. Välj en giltig form i listrutan först. - - + + PartGui::DlgPartBox - - Box definition - LÃ¥ddefinition + + Box definition + LÃ¥ddefinition - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - Size: - Storlek: + + Size: + Storlek: - Height: - Höjd: + + Height: + Höjd: - Width: - Bredd: + + Width: + Bredd: - Length: - Längd: + + Length: + Längd: - Position: - Position: + + Position: + Position: - Direction: - Riktning: + + Direction: + Riktning: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Cylinder definition + + Cylinder definition + Cylinder definition - Parameter - Parameter + + Parameter + Parameter - Height: - Höjd: + + Height: + Höjd: - Radius: - Radie: + + Radius: + Radie: - Position: - Position: + + Position: + Position: - Direction: - Riktning: + + Direction: + Riktning: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - OK + + OK + OK - Cancel - Avbryt + + Cancel + Avbryt - - + + PartGui::DlgPartImportIges - - IGES input file - IGES-Inmatningsfil + + IGES input file + IGES-Inmatningsfil - ... - ... + + ... + ... - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - File Name - Filnamn + + File Name + Filnamn - - + + - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Alla filer (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Alla filer (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - Avbryt + + Cancel + Avbryt - OK - OK + + OK + OK - Step input file - Step inmatningsfil + + Step input file + Step inmatningsfil - File Name - Filnamn + + File Name + Filnamn - - + + - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Alla filer (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Alla filer (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Geometriska primitiver + + Geometric Primitives + Geometriska primitiver - Primitive - Primitiv + Primitive + Primitiv - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Vinkel - 0 för cyl + Angle - 0 for cyl + Vinkel - 0 för cyl - Angle0 - Vinkel0 + Angle0 + Vinkel0 - Angle1 - Vinkel1 + Angle1 + Vinkel1 - X Axis Value: - X-Axel Värde: + X Axis Value: + X-Axel Värde: - Y Axis Value: - Y-Axel Värde: + Y Axis Value: + Y-Axel Värde: - Z Axis Value: - Z-Axel Värde: + Z Axis Value: + Z-Axel Värde: - Wedge - Kil + + Wedge + Kil - Circle - Cirkel + + Circle + Cirkel - Vertex - Hörn + Vertex + Hörn - Position - Position + Position + Position - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - Riktning: + Direction: + Riktning: - Y: - Y: + + + + Y: + Y: - Plane - Plan + + Plane + Plan - Box - LÃ¥da + + Box + LÃ¥da - Cylinder - Cylinder + + Cylinder + Cylinder - Cone - Kon + + Cone + Kon - Sphere - Sfär + + Sphere + Sfär - Ellipsoid - Ellipsoid + + Ellipsoid + Ellipsoid - Torus - Torus + + Torus + Torus - Parameter - Parameter + + Ellipse + - Width: - Bredd: + + Point + - Length: - Längd: + + Line + - Height: - Höjd: + + Parameter + Parameter - Angle: - Vinkel: + + + Width: + Bredd: - Radius: - Radie: + + + Length: + Längd: - Radius 1: - Radie 1: + + + + + Height: + Höjd: - Radius 2: - Radie 2: + + + + Angle: + Vinkel: - U parametric: - U parametrisk: + + + + + Radius: + Radie: - V parametric: - V parametrisk: + + + + Radius 1: + Radie 1: - &Create - &Skapa + + + + Radius 2: + Radie 2: - Alt+C - Alt+S + + + + U parametric: + U parametrisk: - Cl&ose - &Stäng + + + + V parametric: + V parametrisk: - Alt+O - Alt+S + + X min/max: + - - Create %1 - Skapa %1 + + Y min/max: + - No active document - Inget aktivt dokument + + Z min/max: + - - Pitch: - Lutning: + + X2 min/max: + - Helix - Helix + + Z2 min/max: + - 3D View - 3D-vy + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + &Skapa + + + Alt+C + Alt+S + + + Cl&ose + &Stäng + + + Alt+O + Alt+S + + + + + + Create %1 + Skapa %1 + + + + No active document + Inget aktivt dokument + + + + Pitch: + Lutning: + + + + Helix + Helix + + + 3D View + 3D-vy + + + PartGui::DlgRevolution - - Revolve - Rotera + + Revolve + Rotera - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Vinkel: + + Angle: + Vinkel: - Z: - Z: + + Z: + Z: - Axis: - Axel: + + Axis: + Axel: - Shape - Form + + Shape + Form - - Select a shape for revolution, first. - Välj en form för rotering först. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Välj en form för rotering först. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - Vynoggrannhet/Prestanda + + View accuracy / Performance + Vynoggrannhet/Prestanda - View smoothing - Visa utjämning + + View smoothing + Visa utjämning - Using high-quality normals - Använda högkvalitetsnormaler + + Using high-quality normals + Använda högkvalitetsnormaler - This will slow down render speed but will lead to nicer results - Detta kommer att sakta ned hastigheten, men kommer att leda till bättre resultat + + This will slow down render speed but will lead to nicer results + Detta kommer att sakta ned hastigheten, men kommer att leda till bättre resultat - Defines the appearance of surfaces - Definierar ytornas utseende + + Defines the appearance of surfaces + Definierar ytornas utseende - Shape view - Formvy + + Shape view + Formvy - Tessellation - Tessellering + + Tessellation + Tessellering - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">plattskuggning/Phong skuggning</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Med plattskuggning sÃ¥ är ytnormalerna inte definierade för hörn vilket leder till ett orealistiskt utseende för kurvade ytor emedan om Phong skuggning ger ett jämnare utseende. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Om detta laternativ inte är valt sÃ¥ används Phong skuggning, om det är valt sÃ¥ används plattskuggning.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">plattskuggning/Phong skuggning</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Med plattskuggning sÃ¥ är ytnormalerna inte definierade för hörn vilket leder till ett orealistiskt utseende för kurvade ytor emedan om Phong skuggning ger ett jämnare utseende. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Om detta laternativ inte är valt sÃ¥ används Phong skuggning, om det är valt sÃ¥ används plattskuggning.</p></body></html> - Do not define normal per vertex - Definiera inte normal för hörn + + Do not define normal per vertex + Definiera inte normal för hörn - Defines the deviation of tessellation to the actual surface - Definierar tesseleringens avvikelse till det egentliga ytan + + Defines the deviation of tessellation to the actual surface + Definierar tesseleringens avvikelse till det egentliga ytan - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mosaik</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definierar den maximala avvikelsen mellan mosaiknätet och ytan. Ju mindre värde, desto lÃ¥ngsammare beräkningshastighet men bättre utseende.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mosaik</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Definierar den maximala avvikelsen mellan mosaiknätet och ytan. Ju mindre värde, desto lÃ¥ngsammare beräkningshastighet men bättre utseende.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Tips</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definition av normaler för hörn kallas även<span style=" font-style:italic;">Phong skuggning</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">medan definition av normaler för yta kallas </span>Plattskuggning<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Tips</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Definition av normaler för hörn kallas även<span style=" font-style:italic;">Phong skuggning</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">medan definition av normaler för yta kallas </span>Plattskuggning<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Högkvalitetsnormaler</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Detta kommer att bromsa beräkningshastigheten men kommer att ge ett snyggare resultat.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Högkvalitetsnormaler</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Detta kommer att bromsa beräkningshastigheten men kommer att ge ett snyggare resultat.</p></body></html> - Maximum deviation depending on the model bounding box - Maximal avvikelse beroende pÃ¥ modellens markeringsram + + Maximum deviation depending on the model bounding box + Maximal avvikelse beroende pÃ¥ modellens markeringsram - % - % + + % + % - - Deviation - Avvikelse + + Deviation + Avvikelse - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Att ställa in en för liten avvikelse orsakar tesselleringen att ta längre tid och därmed fryser eller saktar ner det grafiska gränssnittet. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Att ställa in en för liten avvikelse orsakar tesselleringen att ta längre tid och därmed fryser eller saktar ner det grafiska gränssnittet. - - + + PartGui::DlgSettingsGeneral - - General - Allmänt + + General + Allmänt - Export - Exportera + + Export + Exportera - Millimeter - Millimeter + + Millimeter + Millimeter - Meter - Meter + + Meter + Meter - Inch - Tum + + Inch + Tum - Units for export of STEP/IGES - Enheter för export av STEP / IGES + + Units for export of STEP/IGES + Enheter för export av STEP / IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + Position + + + + 3D View + 3D-vy + + + PartGui::LoftWidget - - Too few elements - För fÃ¥ element + + + Vertex/Wire + Hörn/TrÃ¥d - At least two vertices or wires are required. - Minst tvÃ¥ hörn eller trÃ¥dar krävs. + + + Loft + Loft - - + + + Too few elements + För fÃ¥ element + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + Minst tvÃ¥ hörn eller trÃ¥dar krävs. + + + PartGui::Mirroring - - Mirroring - Spegling + + Mirroring + Spegling - Shapes - Former + + Shapes + Former - Mirror plane: - Speglingsplan: + + Mirror plane: + Speglingsplan: - XY plane - XY plan + + XY plane + XY plan - XZ plane - XZ plan + + XZ plane + XZ plan - YZ plane - YZ plan + + YZ plane + YZ plan - Base point: - Baspunkt: + + Base point: + Baspunkt: - x - x + + x + x - y - Y + + y + Y - z - z + + z + z - - Select a shape for mirroring, first. - Välj en form för spegling först. + + Select a shape for mirroring, first. + Välj en form för spegling först. - No such document '%1'. - Inget sÃ¥dant dokument '%1'. + + No such document '%1'. + Inget sÃ¥dant dokument '%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Fel val + + + + + + Wrong selection + Fel val - Select two vertices - Välj tvÃ¥ hörn + + + Select two vertices + Välj tvÃ¥ hörn - Select three or more edges - Välj tre eller flera kanter + Select three or more edges + Välj tre eller flera kanter - Select two or more faces - Markera tvÃ¥ eller flera ytor + + Select one or more edges + - Select only one part object - Välj bara ett del objekt + + Select two or more faces + Markera tvÃ¥ eller flera ytor - Select two vertices to create an edge - Välj tvÃ¥ hörn för att skapa en kant + + Select only one part object + Välj bara ett del objekt - Select a closed set of edges - Välj en sluten uppsättning av kanter + + Select two vertices to create an edge + Välj tvÃ¥ hörn för att skapa en kant - Select adjacent faces - Välj intilliggande ytor + + Select a closed set of edges + Välj en sluten uppsättning av kanter - All shape types can be selected - Alla formtyper kan väljas + + Select adjacent faces + Välj intilliggande ytor - - + + + All shape types can be selected + Alla formtyper kan väljas + + + + PartGui::SweepWidget + + + + Vertex/Wire + Hörn/TrÃ¥d + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + För fÃ¥ element + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Värde + Value + Värde - Special - Special + Special + Special - Command - Kommando + Command + Kommando - Stretch - Stretch + Stretch + Stretch - Move - Flytta + Move + Flytta - Rotate - Rotera + Rotate + Rotera - Offset - Offset + Offset + Offset - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Sätt färg per yta + + Set color per face + Sätt färg per yta - Click on the faces in the 3d view to select them. - Klicka pÃ¥ ytor i 3d-vyn för att välja dem. + + Click on the faces in the 3d view to select them. + Klicka pÃ¥ ytor i 3d-vyn för att välja dem. - Faces: - Ytor: + + Faces: + Ytor: - Set to default - Ange som standard + + Set to default + Ange som standard - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Hörn/TrÃ¥d + Vertex/Wire + Hörn/TrÃ¥d - Move right - Flytta Ã¥t höger + Move right + Flytta Ã¥t höger - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>Flytta det markerade objektet en nivÃ¥ nedÃ¥t.</b> <p> Detta kommer ocksÃ¥ att ändra nivÃ¥n för föräldraobjektet. </p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>Flytta det markerade objektet en nivÃ¥ nedÃ¥t.</b> <p> Detta kommer ocksÃ¥ att ändra nivÃ¥n för föräldraobjektet. </p> - Move left - Flytta Ã¥t vänster + Move left + Flytta Ã¥t vänster - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>Flytta det markerade objektet en nivÃ¥ upp.</b> <p> Detta kommer ocksÃ¥ att ändra nivÃ¥n för föräldraobjektet. </p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>Flytta det markerade objektet en nivÃ¥ upp.</b> <p> Detta kommer ocksÃ¥ att ändra nivÃ¥n för föräldraobjektet. </p> - Move up - Flytta upp + Move up + Flytta upp - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta det markerade objektet uppÃ¥t.</b> <p> Objektet kommer att flyttas inom hierarkinivÃ¥n. </p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytta det markerade objektet uppÃ¥t.</b> <p> Objektet kommer att flyttas inom hierarkinivÃ¥n. </p> - Move down - Flytta ned + Move down + Flytta ned - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>Flytta det markerade objektet nedÃ¥t.</b> <p> Objektet kommer att flyttas inom hierarkinivÃ¥n. </p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>Flytta det markerade objektet nedÃ¥t.</b> <p> Objektet kommer att flyttas inom hierarkinivÃ¥n. </p> - Create solid - Skapa solid + + Create solid + Skapa solid - Ruled surface - Enkelkrökt yta + + Ruled surface + Enkelkrökt yta - - + + PartGui::TaskShapeBuilder - - Create shape - Skapa form + + + Create shape + Skapa form - Edge from vertices - Kanter frÃ¥n hörn + + Edge from vertices + Kanter frÃ¥n hörn - Face from edges - Ytor frÃ¥n kanter + + Face from edges + Ytor frÃ¥n kanter - Planar - Planär + + Planar + Planär - Shell from faces - Skal frÃ¥n ytor + + Shell from faces + Skal frÃ¥n ytor - Solid from shell - Solid frÃ¥n skal + + Solid from shell + Solid frÃ¥n skal - Create - Skapa + + Create + Skapa - All faces - Alla ytor + + All faces + Alla ytor - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Skapa solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Fel val + + + + + + Wrong selection + Fel val - Select two shapes please. - Välj tvÃ¥ former. + + + Select two shapes please. + Välj tvÃ¥ former. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - Alla CAD filer (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + Alla CAD filer (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.STP *.step) + + + + STEP (*.stp *.step) + STEP (*.STP *.step) - IGES (*.igs *.iges) - IGES (*.IGS *.IGES) + + + + IGES (*.igs *.iges) + IGES (*.IGS *.IGES) - BREP (*.brp *.brep) - BREP (*.BRP *.brep) + + + + BREP (*.brp *.brep) + BREP (*.BRP *.brep) - All Files (*.*) - Alla filer (*.*) + + + + All Files (*.*) + Alla filer (*.*) - - Sewing Tolerance - Sömntolerans + + Sewing Tolerance + Sömntolerans - Enter tolerance for sewing shape: - Ange tolerans för för att sömma ihop formen: + + Enter tolerance for sewing shape: + Ange tolerans för för att sömma ihop formen: - - Edit mirror plane - Redigera speglingsplan + + Edit mirror plane + Redigera speglingsplan - Transform - Omvandla + + Edit chamfer edges + - - Part design - Del design + Transform + Omvandla - - Select two shapes or more, please. - Välj tvÃ¥ figurer eller mer, tack. + + + Part design + Del design - You have to select either two edges or two wires. - Du mÃ¥ste antingen välja tvÃ¥ kanter eller tvÃ¥ trÃ¥dar. + + + Select two shapes or more, please. + Välj tvÃ¥ figurer eller mer, tack. - - Edit fillet edges - Redigera avrundade kanter + + You have to select either two edges or two wires. + Du mÃ¥ste antingen välja tvÃ¥ kanter eller tvÃ¥ trÃ¥dar. - - Set colors... - Ställ in färgerna ... + + Edit fillet edges + Redigera avrundade kanter - - + + + Set colors... + Ställ in färgerna ... + + + Workbench - - &Part - &Del + + &Part + &Del - &Simple - &Enkel + + &Simple + &Enkel - &Parametric - &Parametrisk + + &Parametric + &Parametrisk - Part tools - Del verktyg + + Part tools + Del verktyg - Solids - Solider + + Solids + Solider - Boolean - Boolesk + + Boolean + Boolesk - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_uk.ts b/src/Mod/Part/Gui/Resources/translations/Part_uk.ts index 0fdb44d31..2585773cb 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_uk.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_uk.ts @@ -1,1874 +1,2522 @@ - - + + BlockDefinition - - Block definition - Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ + + Block definition + Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ - First limit - Перше Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + First limit + Перше Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - Type: - Тип: + + + Type: + Тип: - mm - мм + + + mm + мм - Length: - Довжина: + + + Length: + Довжина: - Dimension - Розмір + + + Dimension + Розмір - Up to next - До наÑтупного + + + Up to next + До наÑтупного - Up to last - До оÑтаннього + + + Up to last + До оÑтаннього - Up to plane - До площини + + + Up to plane + До площини - Up to face - До Ð»Ð¸Ñ†Ñ + + + Up to face + До Ð»Ð¸Ñ†Ñ - Limit: - ОбмеженнÑ: + + + Limit: + ОбмеженнÑ: - No selection - Ðічого не вибрано + + + + + No selection + Ðічого не вибрано - Profile - Профіль + + Profile + Профіль - Selection: - Вибір: + + Selection: + Вибір: - Reverse - Ðавпаки + + Reverse + Ðавпаки - Both sides - Обидві Ñторони + + Both sides + Обидві Ñторони - Second limit - Друге Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + Second limit + Друге Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - Direction - ÐапрÑмок + + Direction + ÐапрÑмок - Perpendicular to sketch - ПерпендикулÑрно до еÑкізу + + Perpendicular to sketch + ПерпендикулÑрно до еÑкізу - Reference - ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ + + Reference + ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ - Apply - ЗаÑтоÑувати + + Apply + ЗаÑтоÑувати - Cancel - СкаÑувати + + Cancel + СкаÑувати - OK - Гаразд + + OK + Гаразд - - + + CmdPartBoolean - - Part - ЧаÑтина + + Part + ЧаÑтина - Boolean... - Логічне... + + Boolean... + Логічне... - Run a boolean operation with two shapes selected - Виконати логічну операцію з двома обраними формами + + Run a boolean operation with two shapes selected + Виконати логічну операцію з двома обраними формами - - + + CmdPartBox - - Part - ЧаÑтина + + Part + ЧаÑтина - Box - Коробка + + Box + Коробка - Create a box solid - Create a box solid + + Create a box solid + Create a box solid - - + + CmdPartBox2 - - Part - ЧаÑтина + + Part + ЧаÑтина - Box fix 1 - Box fix 1 + + Box fix 1 + Box fix 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - ЧаÑтина + + Part + ЧаÑтина - Box fix 2 - Box fix 2 + + Box fix 2 + Box fix 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - ЧаÑтина + + Part + ЧаÑтина - Shape builder... - Shape builder... + + Shape builder... + Shape builder... - Advanced utility to create shapes - Advanced utility to create shapes + + Advanced utility to create shapes + Advanced utility to create shapes - - + + + CmdPartChamfer + + + Part + ЧаÑтина + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - ЧаÑтина + + Part + ЧаÑтина - Intersection - Перетин + + Intersection + Перетин - Make an intersection of two shapes - Make an intersection of two shapes + + Make an intersection of two shapes + Make an intersection of two shapes - - + + CmdPartCone - - Part - ЧаÑтина + + Part + ЧаÑтина - Cone - ÐšÐ¾Ð½ÑƒÑ + + Cone + ÐšÐ¾Ð½ÑƒÑ - Create a cone solid - Create a cone solid + + Create a cone solid + Create a cone solid - - + + CmdPartCrossSections - - Part - ЧаÑтина + + Part + ЧаÑтина - Cross-sections... - Поперечні перерізи... + + Cross-sections... + Поперечні перерізи... - Cross-sections - Поперечні перерізи + + Cross-sections + Поперечні перерізи - - + + CmdPartCut - Part - ЧаÑтина + + Part + ЧаÑтина - Cut - Вирізати + + Cut + Вирізати - Make a cut of two shapes - Make a cut of two shapes + + Make a cut of two shapes + Make a cut of two shapes - - + + CmdPartCylinder - - Part - ЧаÑтина + + Part + ЧаÑтина - Create a Cylinder - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ñƒ + + Create a Cylinder + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ñƒ - Cylinder - Циліндр + + Cylinder + Циліндр - - + + CmdPartExport - - Part - ЧаÑтина + + Part + ЧаÑтина - Export CAD... - Export CAD... + + Export CAD... + Export CAD... - Exports to a CAD file - Exports to a CAD file + + Exports to a CAD file + Exports to a CAD file - - + + CmdPartExtrude - Part - ЧаÑтина + + Part + ЧаÑтина - Extrude... - ВидавлюваннÑ... + + Extrude... + ВидавлюваннÑ... - Extrude a selected sketch - Ð’Ð¸Ð´Ð°Ð²Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ еÑкізу + + Extrude a selected sketch + Ð’Ð¸Ð´Ð°Ð²Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ еÑкізу - - + + CmdPartFillet - Part - ЧаÑтина + + Part + ЧаÑтина - Fillet... - ОкругленнÑ... + + Fillet... + ОкругленнÑ... - Fillet the selected edges of a shape - ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ краю форми + + Fillet the selected edges of a shape + ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ краю форми - - + + CmdPartFuse - Part - ЧаÑтина + + Part + ЧаÑтина - Union - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ + + Union + Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ - Make a union of several shapes - Make a union of several shapes + + Make a union of several shapes + Make a union of several shapes - - + + CmdPartImport - Part - ЧаÑтина + + Part + ЧаÑтина - Imports a CAD file - Імпорт файлу CAD + + Imports a CAD file + Імпорт файлу CAD - Import CAD... - Імпорт CAD ... + + Import CAD... + Імпорт CAD ... - - + + CmdPartImportCurveNet - Part - ЧаÑтина + + Part + ЧаÑтина - Import a curve network - Import a curve network + + Import a curve network + Import a curve network - Import curve network... - Import curve network... + + Import curve network... + Import curve network... - - + + CmdPartLoft - Part - ЧаÑтина + + Part + ЧаÑтина - Loft... - Loft... + + Loft... + Loft... - Advanced utility to lofts - Advanced utility to lofts + + Utility to loft + - - + + Advanced utility to lofts + Advanced utility to lofts + + + CmdPartMakeSolid - Part - ЧаÑтина + + Part + ЧаÑтина - Convert to solid - Перетворити в Ñуцільну + + Convert to solid + Перетворити в Ñуцільну - Create solid from a shell or compound - Створити Ñуцільну форму із оболонки чи Ñкладових + + Create solid from a shell or compound + Створити Ñуцільну форму із оболонки чи Ñкладових - - + + CmdPartMirror - Part - ЧаÑтина + + Part + ЧаÑтина - Mirroring... - ВіддзеркаленнÑ... + + Mirroring... + ВіддзеркаленнÑ... - Mirroring a selected shape - Ð’Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ñ— форми + + Mirroring a selected shape + Ð’Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ñ— форми - - + + CmdPartPickCurveNet - Part - ЧаÑтина + + Part + ЧаÑтина - Pick curve network - Pick curve network + + Pick curve network + Pick curve network - Pick a curve network - Pick a curve network + + Pick a curve network + Pick a curve network - - + + CmdPartPrimitives - Part - ЧаÑтина + + Part + ЧаÑтина - Create primitives... - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ‚Ð¸Ð²Ñ–Ð² ... + + Create primitives... + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ‚Ð¸Ð²Ñ–Ð² ... - Creation of parametrized geometric primitives - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… геометричних примітивів + + Creation of parametrized geometric primitives + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ… геометричних примітивів - - + + + CmdPartRefineShape + + + Part + ЧаÑтина + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - ЧаÑтина + + Part + ЧаÑтина - Reverse shapes - Обернути форми + + Reverse shapes + Обернути форми - Reverse orientation of shapes - Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð¾Ñ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñ„Ð¾Ñ€Ð¼ + + Reverse orientation of shapes + Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð¾Ñ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñ„Ð¾Ñ€Ð¼ - - + + CmdPartRevolve - Part - ЧаÑтина + + Part + ЧаÑтина - Revolve... - Обертати... + + Revolve... + Обертати... - Revolve a selected shape - Обертати обрану форму + + Revolve a selected shape + Обертати обрану форму - - + + CmdPartRuledSurface - Part - ЧаÑтина + + Part + ЧаÑтина - Create ruled surface - Create ruled surface + + Create ruled surface + Create ruled surface - Create a ruled surface from two curves - Create a ruled surface from two curves + + Create a ruled surface from two curves + Create a ruled surface from two curves - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - ЧаÑтина + + Part + ЧаÑтина - Section - Ð¡ÐµÐºÑ†Ñ–Ñ + + Section + Ð¡ÐµÐºÑ†Ñ–Ñ - - + + CmdPartShapeFromMesh - - Part - ЧаÑтина + + Part + ЧаÑтина - Create shape from mesh... - Створити форму з Ñітки... + + Create shape from mesh... + Створити форму з Ñітки... - Create shape from selected mesh object - Створити форми з обраної Ñітки (мешу) + + Create shape from selected mesh object + Створити форми з обраної Ñітки (мешу) - - + + CmdPartSimpleCopy - Part - ЧаÑтина + + Part + ЧаÑтина - Create simple copy - Create simple copy + + Create simple copy + Create simple copy - Create a simple non-parametric copy - Create a simple non-parametric copy + + Create a simple non-parametric copy + Create a simple non-parametric copy - - + + CmdPartSimpleCylinder - Part - ЧаÑтина + + Part + ЧаÑтина - Create Cylinder... - Створити циліндр ... + + Create Cylinder... + Створити циліндр ... - Create a Cylinder - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ñƒ + + Create a Cylinder + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ñƒ - - + + CmdPartSphere - - Create a sphere solid - Create a sphere solid + + Create a sphere solid + Create a sphere solid - Part - ЧаÑтина + + Part + ЧаÑтина - Sphere - Сфера + + Sphere + Сфера - - + + + CmdPartSweep + + + Part + ЧаÑтина + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - Create a torus solid + + Create a torus solid + Create a torus solid - Part - ЧаÑтина + + Part + ЧаÑтина - Torus - Тор + + Torus + Тор - - + + DlgExtrusion - Select a shape for extrusion, first. - Select a shape for extrusion, first. + Select a shape for extrusion, first. + Select a shape for extrusion, first. - The document '%1' doesn't exist. - The document '%1' doesn't exist. + The document '%1' doesn't exist. + The document '%1' doesn't exist. - - + + DlgRevolution - Select a shape for revolution, first. - Select a shape for revolution, first. + Select a shape for revolution, first. + Select a shape for revolution, first. - - + + DlgSettings3DViewPart - Deviation - Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ + Deviation + Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::CrossSections - - Cross sections - Поперечні перерізи + + Cross sections + Поперечні перерізи - Guiding plane - Керівна площина + + Guiding plane + Керівна площина - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - ПозиціÑ: + + Position: + ПозиціÑ: - Sections - Секції + + Sections + Секції - On both sides - З обох Ñторін + + On both sides + З обох Ñторін - Count - КількіÑть + + Count + КількіÑть - Distance: - ВідÑтань: + + Distance: + ВідÑтань: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - Логічна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ + + Boolean Operation + Логічна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ - Second shape - Друга форма + + Second shape + Друга форма - First shape - Перша форма + + First shape + Перша форма - Boolean operation - Логічна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ + + Boolean operation + Логічна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ - Section - Ð¡ÐµÐºÑ†Ñ–Ñ + + Section + Ð¡ÐµÐºÑ†Ñ–Ñ - Difference - Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ + + Difference + Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ - Union - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ + + Union + Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ - Intersection - Перетин + + Intersection + Перетин - - Cannot perform a boolean operation with the same shape - Ðеможливо виконати логічну операцію з тією ж формою + + Cannot perform a boolean operation with the same shape + Ðеможливо виконати логічну операцію з тією ж формою - - Solids - Суцільні + + + Solids + Суцільні - Shells - Оболонки + + + Shells + Оболонки - Compounds - Складові + + + Compounds + Складові - Faces - Faces + + + Faces + Faces - Swap selection - Swap selection + + Swap selection + Swap selection - - Select a shape on the left side, first - Select a shape on the left side, first + + Select a shape on the left side, first + Select a shape on the left side, first - Select a shape on the right side, first - Select a shape on the right side, first + + Select a shape on the right side, first + Select a shape on the right side, first - No active document available - No active document available + + No active document available + No active document available - One of the selected objects doesn't exist anymore - One of the selected objects doesn't exist anymore + + One of the selected objects doesn't exist anymore + One of the selected objects doesn't exist anymore - Performing union on non-solids is not possible - Performing union on non-solids is not possible + + Performing union on non-solids is not possible + Performing union on non-solids is not possible - Performing intersection on non-solids is not possible - Performing intersection on non-solids is not possible + + Performing intersection on non-solids is not possible + Performing intersection on non-solids is not possible - Performing difference on non-solids is not possible - Performing difference on non-solids is not possible + + Performing difference on non-solids is not possible + Performing difference on non-solids is not possible - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - Ð’Ð¸Ð´Ð°Ð²Ð»ÑŽÐ²Ð°Ð½Ð½Ñ + + Extrude + Ð’Ð¸Ð´Ð°Ð²Ð»ÑŽÐ²Ð°Ð½Ð½Ñ - Direction - ÐапрÑмок + + Direction + ÐапрÑмок - Along normal - Вздовж нормалі + + Along normal + Вздовж нормалі - Length: - Довжина: + + Length: + Довжина: - 3D view - 3D view + + 3D view + 3D view - Note:This option works for planes only - Note:This option works for planes only + + Note:This option works for planes only + Note:This option works for planes only - Shape - Форма + + Create solid + Create solid - - Про програму + + Taper outward angle + - X: - X: + + Shape + Форма - Z: - Z: + + Про програму - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - Select a shape for extrusion, first. + + Z: + Z: - The document '%1' doesn't exist. - The document '%1' doesn't exist. + + Y: + Y: - - + + + Select a shape for extrusion, first. + Select a shape for extrusion, first. + + + + The document '%1' doesn't exist. + The document '%1' doesn't exist. + + + PartGui::DlgFilletEdges - - Fillet Edges - Закруглити краї + + Fillet Edges + Закруглити краї - Fillet Parameter - Параметри Ð·Ð°ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ + + Fillet Parameter + Параметри Ð·Ð°ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ - Radius: - РадіуÑ: + + Radius: + РадіуÑ: - Fillet type: - Тип закругленнÑ: + + Fillet type: + Тип закругленнÑ: - Constant Radius - ПоÑтійний Ñ€Ð°Ð´Ñ–ÑƒÑ + + Constant Radius + ПоÑтійний Ñ€Ð°Ð´Ñ–ÑƒÑ - Variable Radius - Змінний Ñ€Ð°Ð´Ñ–ÑƒÑ + + Variable Radius + Змінний Ñ€Ð°Ð´Ñ–ÑƒÑ - Shape - Форма + + Shape + Форма - Selected shape: - Обрана форма: + + Selected shape: + Обрана форма: - No selection - Ðічого не вибрано + + No selection + Ðічого не вибрано - - Edges to fillet - Краї Ð´Ð»Ñ Ð·Ð°ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ + + Edges to fillet + Краї Ð´Ð»Ñ Ð·Ð°ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ - Start radius - Початковий Ñ€Ð°Ð´Ñ–ÑƒÑ + + + Start radius + Початковий Ñ€Ð°Ð´Ñ–ÑƒÑ - End radius - Кінцевий Ñ€Ð°Ð´Ñ–ÑƒÑ + + End radius + Кінцевий Ñ€Ð°Ð´Ñ–ÑƒÑ - Radius - Ð Ð°Ð´Ñ–ÑƒÑ + + Radius + Ð Ð°Ð´Ñ–ÑƒÑ - No edge selected - Край не обрано + + No edge selected + Край не обрано - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - Ðе обрано край Ð´Ð»Ñ Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ + Ðе обрано край Ð´Ð»Ñ Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ Ð‘ÑƒÐ´ÑŒ лаÑка, Ñпочатку оберіть один, або більше країв. - - All - Ð’Ñе + + All + Ð’Ñе - None - Ðемає + + None + Ðемає - - Edge%1 - Край%1 + + + Edge%1 + Край%1 - No shape selected - Ðемає обраної форми + + No shape selected + Ðемає обраної форми - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ðе обрано вірної форми + Ðе обрано вірної форми Будь лаÑка, оберіть вірну форму у виринаючому ÑпиÑку. - - + + PartGui::DlgPartBox - - Box definition - Box definition + + Box definition + Box definition - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - СкаÑувати + + Cancel + СкаÑувати - OK - Гаразд + + OK + Гаразд - Size: - Розмір: + + Size: + Розмір: - Height: - ВиÑота: + + Height: + ВиÑота: - Width: - Ширина: + + Width: + Ширина: - Length: - Довжина: + + Length: + Довжина: - Position: - ПозиціÑ: + + Position: + ПозиціÑ: - Direction: - ÐапрÑм: + + Direction: + ÐапрÑм: - - + + PartGui::DlgPartCylinder - - Cylinder definition - Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ð° + + Cylinder definition + Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ð»Ñ–Ð½Ð´Ñ€Ð° - Parameter - Параметр + + Parameter + Параметр - Height: - ВиÑота: + + Height: + ВиÑота: - Radius: - РадіуÑ: + + Radius: + РадіуÑ: - Position: - ПозиціÑ: + + Position: + ПозиціÑ: - Direction: - ÐапрÑм: + + Direction: + ÐапрÑм: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - Гаразд + + OK + Гаразд - Cancel - СкаÑувати + + Cancel + СкаÑувати - - + + PartGui::DlgPartImportIges - - IGES input file - Вхідний файл IGES + + IGES input file + Вхідний файл IGES - ... - ... + + ... + ... - Cancel - СкаÑувати + + Cancel + СкаÑувати - OK - Гаразд + + OK + Гаразд - File Name - Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ + + File Name + Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ - - Про програму + + Про програму - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;Ð’ÑÑ– файли (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;Ð’ÑÑ– файли (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - СкаÑувати + + Cancel + СкаÑувати - OK - Гаразд + + OK + Гаразд - Step input file - Крок вхідного файлу + + Step input file + Крок вхідного файлу - File Name - Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ + + File Name + Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ - - Про програму + + Про програму - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;Ð’ÑÑ– файли (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;Ð’ÑÑ– файли (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - Геометричні примітиви + + Geometric Primitives + Геометричні примітиви - Primitive - Примітив + Primitive + Примітив - X min - X min + X min + X min - x max - x max + x max + x max - Y min - Y min + Y min + Y min - Y max - Y max + Y max + Y max - Z min - Z min + Z min + Z min - Z max - Z max + Z max + Z max - X2 min - X2 min + X2 min + X2 min - X2 max - X2 max + X2 max + X2 max - Z2 min - Z2 min + Z2 min + Z2 min - Z2 max - Z2 max + Z2 max + Z2 max - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - Angle0 + Angle0 + Angle0 - Angle1 - Angle1 + Angle1 + Angle1 - X Axis Value: - X Axis Value: + X Axis Value: + X Axis Value: - Y Axis Value: - Y Axis Value: + Y Axis Value: + Y Axis Value: - Z Axis Value: - Z Axis Value: + Z Axis Value: + Z Axis Value: - Wedge - Wedge + + Wedge + Wedge - Circle - Коло + + Circle + Коло - Vertex - Vertex + Vertex + Vertex - Position - ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ + Position + ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - ÐапрÑм: + Direction: + ÐапрÑм: - Y: - Y: + + + + Y: + Y: - Plane - Площини + + Plane + Площини - Box - Коробка + + Box + Коробка - Cylinder - Циліндр + + Cylinder + Циліндр - Cone - ÐšÐ¾Ð½ÑƒÑ + + Cone + ÐšÐ¾Ð½ÑƒÑ - Sphere - Сфера + + Sphere + Сфера - Ellipsoid - ЕліпÑоїд + + Ellipsoid + ЕліпÑоїд - Torus - Тор + + Torus + Тор - Parameter - Параметр + + Ellipse + - Width: - Ширина: + + Point + - Length: - Довжина: + + Line + - Height: - ВиÑота: + + Parameter + Параметр - Angle: - Кут: + + + Width: + Ширина: - Radius: - РадіуÑ: + + + Length: + Довжина: - Radius 1: - Ð Ð°Ð´Ñ–ÑƒÑ 1: + + + + + Height: + ВиÑота: - Radius 2: - Ð Ð°Ð´Ñ–ÑƒÑ 2: + + + + Angle: + Кут: - U parametric: - U параметричне: + + + + + Radius: + РадіуÑ: - V parametric: - V параметричне: + + + + Radius 1: + Ð Ð°Ð´Ñ–ÑƒÑ 1: - &Create - Створити + + + + Radius 2: + Ð Ð°Ð´Ñ–ÑƒÑ 2: - Alt+C - Alt+C + + + + U parametric: + U параметричне: - Cl&ose - Закрити + + + + V parametric: + V параметричне: - Alt+O - Alt+O + + X min/max: + - - Create %1 - Створити %1 + + Y min/max: + - No active document - Ðемає активного документу + + Z min/max: + - - Pitch: - Крок: + + X2 min/max: + - Helix - Спіраль + + Z2 min/max: + - 3D View - 3D ВиглÑд + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + Створити + + + Alt+C + Alt+C + + + Cl&ose + Закрити + + + Alt+O + Alt+O + + + + + + Create %1 + Створити %1 + + + + No active document + Ðемає активного документу + + + + Pitch: + Крок: + + + + Helix + Спіраль + + + 3D View + 3D ВиглÑд + + + PartGui::DlgRevolution - - Revolve - ОбертатиÑÑ + + Revolve + ОбертатиÑÑ - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - Кут: + + Angle: + Кут: - Z: - Z: + + Z: + Z: - Axis: - ОÑÑ–: + + Axis: + ОÑÑ–: - Shape - Форма + + Shape + Форма - - Select a shape for revolution, first. - Select a shape for revolution, first. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + Select a shape for revolution, first. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - ПереглÑнути точніÑть/характериÑтики + + View accuracy / Performance + ПереглÑнути точніÑть/характериÑтики - View smoothing - View smoothing + + View smoothing + View smoothing - Using high-quality normals - ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÑокоÑкіÑних нормалей + + Using high-quality normals + ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ð¸ÑокоÑкіÑних нормалей - This will slow down render speed but will lead to nicer results - Це буде ÑповільнÑти швидкіÑть візуалізації, але приведе до кращих результатів + + This will slow down render speed but will lead to nicer results + Це буде ÑповільнÑти швидкіÑть візуалізації, але приведе до кращих результатів - Defines the appearance of surfaces - Визначає зовнішній виглÑд поверхонь + + Defines the appearance of surfaces + Визначає зовнішній виглÑд поверхонь - Shape view - ПереглÑд форми + + Shape view + ПереглÑд форми - Tessellation - Мозаїка + + Tessellation + Мозаїка - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - Do not define normal per vertex - Ðе визначайте нормалей Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— вершини + + Do not define normal per vertex + Ðе визначайте нормалей Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— вершини - Defines the deviation of tessellation to the actual surface - Визначає Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñ‚ÐµÑÑелÑції до активної поверхні + + Defines the deviation of tessellation to the actual surface + Визначає Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñ‚ÐµÑÑелÑції до активної поверхні - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - Maximum deviation depending on the model bounding box - Maximum deviation depending on the model bounding box + + Maximum deviation depending on the model bounding box + Maximum deviation depending on the model bounding box - % - % + + % + % - - Deviation - Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ + + Deviation + Ð’Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - - + + PartGui::DlgSettingsGeneral - - General - Загальне + + General + Загальне - Export - ЕкÑпорт + + Export + ЕкÑпорт - Millimeter - Міліметри + + Millimeter + Міліметри - Meter - Метри + + Meter + Метри - Inch - Дюйми + + Inch + Дюйми - Units for export of STEP/IGES - Одиниці Ð´Ð»Ñ ÐµÐºÑпорту STEP/IGES + + Units for export of STEP/IGES + Одиниці Ð´Ð»Ñ ÐµÐºÑпорту STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ + + + + 3D View + 3D ВиглÑд + + + PartGui::LoftWidget - - Too few elements - Too few elements + + + Vertex/Wire + Vertex/Wire - At least two vertices or wires are required. - At least two vertices or wires are required. + + + Loft + Loft - - + + + Too few elements + Too few elements + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + At least two vertices or wires are required. + + + PartGui::Mirroring - - Mirroring - Ð’Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ + + Mirroring + Ð’Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ - Shapes - Форми + + Shapes + Форми - Mirror plane: - Дзеркальна площина: + + Mirror plane: + Дзеркальна площина: - XY plane - Площина XY + + XY plane + Площина XY - XZ plane - Площина XZ + + XZ plane + Площина XZ - YZ plane - Площина YZ + + YZ plane + Площина YZ - Base point: - Base point: + + Base point: + Base point: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - Спочатку виберіть форму Ð´Ð»Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ відображеннÑ. + + Select a shape for mirroring, first. + Спочатку виберіть форму Ð´Ð»Ñ Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ відображеннÑ. - No such document '%1'. - Документ '%1' не знайдено. + + No such document '%1'. + Документ '%1' не знайдено. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - Ðевірний вибір + + + + + + Wrong selection + Ðевірний вибір - Select two vertices - Select two vertices + + + Select two vertices + Select two vertices - Select three or more edges - Select three or more edges + Select three or more edges + Select three or more edges - Select two or more faces - Select two or more faces + + Select one or more edges + - Select only one part object - Select only one part object + + Select two or more faces + Select two or more faces - Select two vertices to create an edge - Select two vertices to create an edge + + Select only one part object + Select only one part object - Select a closed set of edges - Select a closed set of edges + + Select two vertices to create an edge + Select two vertices to create an edge - Select adjacent faces - Select adjacent faces + + Select a closed set of edges + Select a closed set of edges - All shape types can be selected - All shape types can be selected + + Select adjacent faces + Select adjacent faces - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + Vertex/Wire + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + Too few elements + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + Value + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - Special - Special + Special + Special - Command - Команда + Command + Команда - Stretch - Stretch + Stretch + Stretch - Move - ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ + Move + ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ - Rotate - ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ + Rotate + ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ - Offset - Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ + Offset + Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - Set color per face + + Set color per face + Set color per face - Click on the faces in the 3d view to select them. - Click on the faces in the 3d view to select them. + + Click on the faces in the 3d view to select them. + Click on the faces in the 3d view to select them. - Faces: - Faces: + + Faces: + Faces: - Set to default - Set to default + + Set to default + Set to default - - + + PartGui::TaskLoft - - Loft - Loft + + Loft + Loft - Vertex/Wire - Vertex/Wire + Vertex/Wire + Vertex/Wire - Move right - ПереміÑтити праворуч + Move right + ПереміÑтити праворуч - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вниз.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вниз.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> - Move left - ПереміÑтити ліворуч + Move left + ПереміÑтити ліворуч - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вгору.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елемента на один рівень вгору.</b><p>Це також призведе до зміни Ñ€Ñ–Ð²Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького елемента.</p> - Move up - ПереміÑтити вгору + Move up + ПереміÑтити вгору - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>ПереміÑтити обраний елемент вгору.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>ПереміÑтити обраний елемент вгору.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> - Move down - ПереміÑтити вниз + Move down + ПереміÑтити вниз - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>ПереміÑтити обраний елемент вниз.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>ПереміÑтити обраний елемент вниз.</b><p>Елемент буде переміщено в межах ієрархії рівнÑ.</p> - Create solid - Create solid + + Create solid + Create solid - Ruled surface - Ruled surface + + Ruled surface + Ruled surface - - + + PartGui::TaskShapeBuilder - - Create shape - Create shape + + + Create shape + Create shape - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - Planar + + Planar + Planar - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - Створити + + Create + Створити - All faces - All faces + + All faces + All faces - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + Create solid + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - Ðевірний вибір + + + + + + Wrong selection + Ðевірний вибір - Select two shapes please. - Виберіть дві форми, будь лаÑка. + + + Select two shapes please. + Виберіть дві форми, будь лаÑка. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - УÑÑ– файли CAD (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + УÑÑ– файли CAD (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - Ð’ÑÑ– файли (*.*) + + + + All Files (*.*) + Ð’ÑÑ– файли (*.*) - - Sewing Tolerance - Sewing Tolerance + + Sewing Tolerance + Sewing Tolerance - Enter tolerance for sewing shape: - Enter tolerance for sewing shape: + + Enter tolerance for sewing shape: + Enter tolerance for sewing shape: - - Edit mirror plane - Редагувати площину Ð²Ñ–Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ + + Edit mirror plane + Редагувати площину Ð²Ñ–Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ - Transform - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ + + Edit chamfer edges + - - Part design - Дизайн чаÑтини + Transform + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ - - Select two shapes or more, please. - Select two shapes or more, please. + + + Part design + Дизайн чаÑтини - You have to select either two edges or two wires. - You have to select either two edges or two wires. + + + Select two shapes or more, please. + Select two shapes or more, please. - - Edit fillet edges - Редагувати кромку граней + + You have to select either two edges or two wires. + You have to select either two edges or two wires. - - Set colors... - Set colors... + + Edit fillet edges + Редагувати кромку граней - - + + + Set colors... + Set colors... + + + Workbench - - &Part - ЧаÑтина + + &Part + ЧаÑтина - &Simple - &ПроÑте + + &Simple + &ПроÑте - &Parametric - &Параметричне + + &Parametric + &Параметричне - Part tools - ІнÑтрументи деталі + + Part tools + ІнÑтрументи деталі - Solids - Суцільні + + Solids + Суцільні - Boolean - Логічне + + Boolean + Логічне - + diff --git a/src/Mod/Part/Gui/Resources/translations/Part_zh.ts b/src/Mod/Part/Gui/Resources/translations/Part_zh.ts index 57cd7a6d4..a93c94b7e 100644 --- a/src/Mod/Part/Gui/Resources/translations/Part_zh.ts +++ b/src/Mod/Part/Gui/Resources/translations/Part_zh.ts @@ -1,1873 +1,2521 @@ - - + + BlockDefinition - - Block definition - å—定义 + + Block definition + å—定义 - First limit - 第一个é™åˆ¶ + + First limit + 第一个é™åˆ¶ - Type: - 类型: + + + Type: + 类型: - mm - mm + + + mm + mm - Length: - 长度: + + + Length: + 长度: - Dimension - 尺寸标注 + + + Dimension + 尺寸标注 - Up to next - 直到下一个 + + + Up to next + 直到下一个 - Up to last - ç›´åˆ°æœ€åŽ + + + Up to last + ç›´åˆ°æœ€åŽ - Up to plane - ç›´åˆ°å¹³é¢ + + + Up to plane + ç›´åˆ°å¹³é¢ - Up to face - ç›´åˆ°è¡¨é¢ + + + Up to face + ç›´åˆ°è¡¨é¢ - Limit: - é™åˆ¶: + + + Limit: + é™åˆ¶: - No selection - 未选择 + + + + + No selection + 未选择 - Profile - é…置文件 + + Profile + é…置文件 - Selection: - 选择: + + Selection: + 选择: - Reverse - å转 + + Reverse + å转 - Both sides - åŒå‘ + + Both sides + åŒå‘ - Second limit - 第二个é™åˆ¶ + + Second limit + 第二个é™åˆ¶ - Direction - æ–¹å‘ + + Direction + æ–¹å‘ - Perpendicular to sketch - 垂直于è‰å›¾ + + Perpendicular to sketch + 垂直于è‰å›¾ - Reference - å‚考 + + Reference + å‚考 - Apply - 应用 + + Apply + 应用 - Cancel - å–æ¶ˆ + + Cancel + å–æ¶ˆ - OK - 确定 + + OK + 确定 - - + + CmdPartBoolean - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Boolean... - 布尔è¿ç®—... + + Boolean... + 布尔è¿ç®—... - Run a boolean operation with two shapes selected - 对所选的两个形状进行布尔è¿ç®— + + Run a boolean operation with two shapes selected + 对所选的两个形状进行布尔è¿ç®— - - + + CmdPartBox - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Box - 立方体 + + Box + 立方体 - Create a box solid - 创建长方体 + + Create a box solid + 创建长方体 - - + + CmdPartBox2 - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Box fix 1 - 立方体固定 1 + + Box fix 1 + 立方体固定 1 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBox3 - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Box fix 2 - 立方体固定 2 + + Box fix 2 + 立方体固定 2 - Create a box solid without dialog - Create a box solid without dialog + + Create a box solid without dialog + Create a box solid without dialog - - + + CmdPartBuilder - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Shape builder... - 形体构建器... + + Shape builder... + 形体构建器... - Advanced utility to create shapes - 创建形体高级工具 + + Advanced utility to create shapes + 创建形体高级工具 - - + + + CmdPartChamfer + + + Part + é›¶ä»¶ + + + + Chamfer... + + + + + Chamfer the selected edges of a shape + + + + CmdPartCommon - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Intersection - 交集 + + Intersection + 交集 - Make an intersection of two shapes - 两形体求交集 + + Make an intersection of two shapes + 两形体求交集 - - + + CmdPartCone - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Cone - 圆锥体 + + Cone + 圆锥体 - Create a cone solid - 创建圆锥体 + + Create a cone solid + 创建圆锥体 - - + + CmdPartCrossSections - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Cross-sections... - 横截é¢... + + Cross-sections... + 横截é¢... - Cross-sections - æ¨ªæˆªé¢ + + Cross-sections + æ¨ªæˆªé¢ - - + + CmdPartCut - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Cut - 剪切 + + Cut + 剪切 - Make a cut of two shapes - 两形体求差集 + + Make a cut of two shapes + 两形体求差集 - - + + CmdPartCylinder - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create a Cylinder - 创建一个圆柱体 + + Create a Cylinder + 创建一个圆柱体 - Cylinder - 圆柱体 + + Cylinder + 圆柱体 - - + + CmdPartExport - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Export CAD... - 导出CAD... + + Export CAD... + 导出CAD... - Exports to a CAD file - 导出至CAD文件 + + Exports to a CAD file + 导出至CAD文件 - - + + CmdPartExtrude - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Extrude... - 拉伸... + + Extrude... + 拉伸... - Extrude a selected sketch - 挤压选定的è‰ç»˜ + + Extrude a selected sketch + 挤压选定的è‰ç»˜ - - + + CmdPartFillet - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Fillet... - 圆角... + + Fillet... + 圆角... - Fillet the selected edges of a shape - 给选定形体的边倒圆角 + + Fillet the selected edges of a shape + 给选定形体的边倒圆角 - - + + CmdPartFuse - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Union - 并集 + + Union + 并集 - Make a union of several shapes - 多形体求åˆé›† + + Make a union of several shapes + 多形体求åˆé›† - - + + CmdPartImport - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Imports a CAD file - 导入CAD文件 + + Imports a CAD file + 导入CAD文件 - Import CAD... - 导入CAD文件 ... + + Import CAD... + 导入CAD文件 ... - - + + CmdPartImportCurveNet - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Import a curve network - 导入曲线网络 + + Import a curve network + 导入曲线网络 - Import curve network... - 导入曲线网络... + + Import curve network... + 导入曲线网络... - - + + CmdPartLoft - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Loft... - 放样... + + Loft... + 放样... - Advanced utility to lofts - 放样高级工具 + + Utility to loft + - - + + Advanced utility to lofts + 放样高级工具 + + + CmdPartMakeSolid - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Convert to solid - 转化æˆå®žä½“ + + Convert to solid + 转化æˆå®žä½“ - Create solid from a shell or compound - 从命令行或程åºé›†åˆ›å»ºå®žä½“ + + Create solid from a shell or compound + 从命令行或程åºé›†åˆ›å»ºå®žä½“ - - + + CmdPartMirror - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Mirroring... - 镜åƒ... + + Mirroring... + 镜åƒ... - Mirroring a selected shape - 镜åƒé€‰å®šçš„形状 + + Mirroring a selected shape + 镜åƒé€‰å®šçš„形状 - - + + CmdPartPickCurveNet - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Pick curve network - 选择曲线网络 + + Pick curve network + 选择曲线网络 - Pick a curve network - 选择曲线网络 + + Pick a curve network + 选择曲线网络 - - + + CmdPartPrimitives - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create primitives... - 创建图元... + + Create primitives... + 创建图元... - Creation of parametrized geometric primitives - åˆ›å»ºå‚æ•°åŒ–的几何图元 + + Creation of parametrized geometric primitives + åˆ›å»ºå‚æ•°åŒ–的几何图元 - - + + + CmdPartRefineShape + + + Part + é›¶ä»¶ + + + + Refine shape + + + + + Refine the copy of a shape + + + + CmdPartReverseShape - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Reverse shapes - 形状翻转 + + Reverse shapes + 形状翻转 - Reverse orientation of shapes - 翻转形状 + + Reverse orientation of shapes + 翻转形状 - - + + CmdPartRevolve - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Revolve... - 旋转... + + Revolve... + 旋转... - Revolve a selected shape - 旋转所选的形状 + + Revolve a selected shape + 旋转所选的形状 - - + + CmdPartRuledSurface - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create ruled surface - åˆ›å»ºç›´çº¹æ›²é¢ + + Create ruled surface + åˆ›å»ºç›´çº¹æ›²é¢ - Create a ruled surface from two curves - ç”±ä¸¤æ¡æ›²çº¿åˆ›å»ºç›´çº¹æ›²é¢ + + Create a ruled surface from two curves + ç”±ä¸¤æ¡æ›²çº¿åˆ›å»ºç›´çº¹æ›²é¢ - - + + CmdPartSection - Make a section of two shapes - Make a section of two shapes + + Make a section of two shapes + Make a section of two shapes - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Section - æˆªé¢ + + Section + æˆªé¢ - - + + CmdPartShapeFromMesh - - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create shape from mesh... - 从网格中创建形状... + + Create shape from mesh... + 从网格中创建形状... - Create shape from selected mesh object - 从选定的网格对象创建形状 + + Create shape from selected mesh object + 从选定的网格对象创建形状 - - + + CmdPartSimpleCopy - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create simple copy - 创建简å•副本 + + Create simple copy + 创建简å•副本 - Create a simple non-parametric copy - 创建简å•çš„éžå‚数化副本 + + Create a simple non-parametric copy + 创建简å•çš„éžå‚数化副本 - - + + CmdPartSimpleCylinder - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Create Cylinder... - 创建圆柱体... + + Create Cylinder... + 创建圆柱体... - Create a Cylinder - 创建一个圆柱体 + + Create a Cylinder + 创建一个圆柱体 - - + + CmdPartSphere - - Create a sphere solid - 创建çƒä½“ + + Create a sphere solid + 创建çƒä½“ - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Sphere - çƒä½“ + + Sphere + çƒä½“ - - + + + CmdPartSweep + + + Part + é›¶ä»¶ + + + + Sweep... + + + + + Utility to sweep + + + + CmdPartTorus - Create a torus solid - 创建圆环体 + + Create a torus solid + 创建圆环体 - Part - é›¶ä»¶ + + Part + é›¶ä»¶ - Torus - åœ†çŽ¯é¢ + + Torus + åœ†çŽ¯é¢ - - + + DlgExtrusion - Select a shape for extrusion, first. - 请先选择一个形状执行挤压æ“作. + Select a shape for extrusion, first. + 请先选择一个形状执行挤压æ“作. - The document '%1' doesn't exist. - 文件 '%1' ä¸å­˜åœ¨. + The document '%1' doesn't exist. + 文件 '%1' ä¸å­˜åœ¨. - - + + DlgRevolution - Select a shape for revolution, first. - 先选择一个形状æ¥ä¿®æ”¹. + Select a shape for revolution, first. + 先选择一个形状æ¥ä¿®æ”¹. - - + + DlgSettings3DViewPart - Deviation - åå·® + Deviation + åå·® - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - 设置得太å°ä¼šå¯¼è‡´è´´å›¾è€—时过长,切会使GUI界é¢å†»ç»“æˆ–é€Ÿåº¦å‡æ…¢. + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + 设置得太å°ä¼šå¯¼è‡´è´´å›¾è€—时过长,切会使GUI界é¢å†»ç»“æˆ–é€Ÿåº¦å‡æ…¢. - - + + PartGui::CrossSections - - Cross sections - æ¨ªæˆªé¢ + + Cross sections + æ¨ªæˆªé¢ - Guiding plane - å¯¼å¼•é¢ + + Guiding plane + å¯¼å¼•é¢ - XY - XY + + XY + XY - XZ - XZ + + XZ + XZ - YZ - YZ + + YZ + YZ - Position: - ä½ç½®: + + Position: + ä½ç½®: - Sections - æˆªé¢ + + Sections + æˆªé¢ - On both sides - åŒè¾¹ + + On both sides + åŒè¾¹ - Count - 计数 + + Count + 计数 - Distance: - è·ç¦»: + + Distance: + è·ç¦»: - - + + PartGui::DlgBooleanOperation - - Boolean Operation - 布尔è¿ç®— + + Boolean Operation + 布尔è¿ç®— - Second shape - 第二个形状 + + Second shape + 第二个形状 - First shape - 第一个形状 + + First shape + 第一个形状 - Boolean operation - 布尔è¿ç®— + + Boolean operation + 布尔è¿ç®— - Section - æˆªé¢ + + Section + æˆªé¢ - Difference - 差集 + + Difference + 差集 - Union - 并集 + + Union + 并集 - Intersection - 交集 + + Intersection + 交集 - - Cannot perform a boolean operation with the same shape - ä¸èƒ½å¯¹åŒä¸€å½¢çŠ¶ä½œå¸ƒå°”æ“作 + + Cannot perform a boolean operation with the same shape + ä¸èƒ½å¯¹åŒä¸€å½¢çŠ¶ä½œå¸ƒå°”æ“作 - - Solids - 实体 + + + Solids + 实体 - Shells - 壳 + + + Shells + 壳 - Compounds - 组åˆä½“ + + + Compounds + 组åˆä½“ - Faces - é¢ + + + Faces + é¢ - Swap selection - 切æ¢é€‰æ‹© + + Swap selection + 切æ¢é€‰æ‹© - - Select a shape on the left side, first - 线选择左侧形状 + + Select a shape on the left side, first + 线选择左侧形状 - Select a shape on the right side, first - 先选择å³ä¾§å½¢çж + + Select a shape on the right side, first + 先选择å³ä¾§å½¢çж - No active document available - æ— å¯ç”¨æ´»åŠ¨æ–‡æ¡£ + + No active document available + æ— å¯ç”¨æ´»åŠ¨æ–‡æ¡£ - One of the selected objects doesn't exist anymore - 所选对象之一已ä¸å­˜åœ¨ + + One of the selected objects doesn't exist anymore + 所选对象之一已ä¸å­˜åœ¨ - Performing union on non-solids is not possible - 无法对éžå®žä½“执行并集æ“作 + + Performing union on non-solids is not possible + 无法对éžå®žä½“执行并集æ“作 - Performing intersection on non-solids is not possible - 无法对éžå®žä½“进行交集æ“作 + + Performing intersection on non-solids is not possible + 无法对éžå®žä½“进行交集æ“作 - Performing difference on non-solids is not possible - 无法对éžå®žä½“进行差集æ“作 + + Performing difference on non-solids is not possible + 无法对éžå®žä½“进行差集æ“作 - - + + + PartGui::DlgChamferEdges + + + Chamfer Edges + + + + PartGui::DlgExtrusion - - Extrude - 拉伸 + + Extrude + 拉伸 - Direction - æ–¹å‘ + + Direction + æ–¹å‘ - Along normal - æ²¿æ³•å‘ + + Along normal + æ²¿æ³•å‘ - Length: - 长度: + + Length: + 长度: - 3D view - 3D视图 + + 3D view + 3D视图 - Note:This option works for planes only - 注:æ­¤é€‰é¡¹ä»…é€‚ç”¨äºŽå¹³é¢ + + Note:This option works for planes only + 注:æ­¤é€‰é¡¹ä»…é€‚ç”¨äºŽå¹³é¢ - Shape - 形状 + + Create solid + 创建实体 - - 空 + + Taper outward angle + - X: - X: + + Shape + 形状 - Z: - Z: + + 空 - Y: - Y: + + X: + X: - - Select a shape for extrusion, first. - 请先选择一个形状执行挤压æ“作. + + Z: + Z: - The document '%1' doesn't exist. - 文件 '%1' ä¸å­˜åœ¨. + + Y: + Y: - - + + + Select a shape for extrusion, first. + 请先选择一个形状执行挤压æ“作. + + + + The document '%1' doesn't exist. + 文件 '%1' ä¸å­˜åœ¨. + + + PartGui::DlgFilletEdges - - Fillet Edges - 圆角边 + + Fillet Edges + 圆角边 - Fillet Parameter - åœ†è§’å‚æ•° + + Fillet Parameter + åœ†è§’å‚æ•° - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - Fillet type: - 圆角类型: + + Fillet type: + 圆角类型: - Constant Radius - 常数åŠå¾„ + + Constant Radius + 常数åŠå¾„ - Variable Radius - å¯å˜åŠå¾„ + + Variable Radius + å¯å˜åŠå¾„ - Shape - 形状 + + Shape + 形状 - Selected shape: - 所选的形状: + + Selected shape: + 所选的形状: - No selection - 未选择 + + No selection + 未选择 - - Edges to fillet - 倒圆角边 + + Edges to fillet + 倒圆角边 - Start radius - 开始åŠå¾„ + + + Start radius + 开始åŠå¾„ - End radius - 结æŸåŠå¾„ + + End radius + 结æŸåŠå¾„ - Radius - åŠå¾„ + + Radius + åŠå¾„ - No edge selected - 未选定边 + + No edge selected + 未选定边 - No edge entity is checked to fillet. + + No edge entity is checked to fillet. Please check one or more edge entities first. - 为选择倒圆角的实体边. + 为选择倒圆角的实体边. 请先检查一个或多个实体边. - - All - 全部 + + All + 全部 - None - æ—  + + None + æ—  - - Edge%1 - è¾¹ %1 + + + Edge%1 + è¾¹ %1 - No shape selected - 无选定的形状 + + No shape selected + 无选定的形状 - No valid shape is selected. + + No valid shape is selected. Please select a valid shape in the drop-down box first. - 未选中有效形状.请先在下拉框中选择一个有效形状. + 未选中有效形状.请先在下拉框中选择一个有效形状. - - + + PartGui::DlgPartBox - - Box definition - 立方体定义 + + Box definition + 立方体定义 - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - Cancel - å–æ¶ˆ + + Cancel + å–æ¶ˆ - OK - 确定 + + OK + 确定 - Size: - 大å°: + + Size: + 大å°: - Height: - 高度: + + Height: + 高度: - Width: - 宽度: + + Width: + 宽度: - Length: - 长度: + + Length: + 长度: - Position: - ä½ç½®: + + Position: + ä½ç½®: - Direction: - æ–¹å‘: + + Direction: + æ–¹å‘: - - + + PartGui::DlgPartCylinder - - Cylinder definition - 定义圆柱体 + + Cylinder definition + 定义圆柱体 - Parameter - 傿•° + + Parameter + 傿•° - Height: - 高度: + + Height: + 高度: - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - Position: - ä½ç½®: + + Position: + ä½ç½®: - Direction: - æ–¹å‘: + + Direction: + æ–¹å‘: - X: - X: + + X: + X: - Z: - Z: + + Z: + Z: - Y: - Y: + + Y: + Y: - OK - 确定 + + OK + 确定 - Cancel - å–æ¶ˆ + + Cancel + å–æ¶ˆ - - + + PartGui::DlgPartImportIges - - IGES input file - IGES 输入文件 + + IGES input file + IGES 输入文件 - ... - ... + + ... + ... - Cancel - å–æ¶ˆ + + Cancel + å–æ¶ˆ - OK - 确定 + + OK + 确定 - File Name - 文件å + + File Name + 文件å - - 空 + + 空 - - + + PartGui::DlgPartImportIgesImp - - IGES (*.igs *.iges);;All Files (*.*) - IGES (*.igs *.iges);;All Files (*.*) + + IGES (*.igs *.iges);;All Files (*.*) + IGES (*.igs *.iges);;All Files (*.*) - - + + PartGui::DlgPartImportStep - - ... - ... + + ... + ... - Cancel - å–æ¶ˆ + + Cancel + å–æ¶ˆ - OK - 确定 + + OK + 确定 - Step input file - 输入文件步骤 + + Step input file + 输入文件步骤 - File Name - 文件å + + File Name + 文件å - - 空 + + 空 - - + + PartGui::DlgPartImportStepImp - - STEP (*.stp *.step);;All Files (*.*) - STEP (*.stp *.step);;All Files (*.*) + + STEP (*.stp *.step);;All Files (*.*) + STEP (*.stp *.step);;All Files (*.*) - - + + PartGui::DlgPrimitives - - Geometric Primitives - 几何图元 + + Geometric Primitives + 几何图元 - Primitive - 图元 + Primitive + 图元 - X min - X æœ€å° + X min + X æœ€å° - x max - X 最大 + x max + X 最大 - Y min - Y æœ€å° + Y min + Y æœ€å° - Y max - Y 最大 + Y max + Y 最大 - Z min - Z æœ€å° + Z min + Z æœ€å° - Z max - Z 最大 + Z max + Z 最大 - X2 min - X2 æœ€å° + X2 min + X2 æœ€å° - X2 max - X2 最大 + X2 max + X2 最大 - Z2 min - Z2 æœ€å° + Z2 min + Z2 æœ€å° - Z2 max - Z2 最大 + Z2 max + Z2 最大 - Angle - 0 for cyl - Angle - 0 for cyl + Angle - 0 for cyl + Angle - 0 for cyl - Angle0 - 角度0 + Angle0 + 角度0 - Angle1 - 角度1 + Angle1 + 角度1 - X Axis Value: - X轴数值: + X Axis Value: + X轴数值: - Y Axis Value: - Y轴数值: + Y Axis Value: + Y轴数值: - Z Axis Value: - Z轴数值: + Z Axis Value: + Z轴数值: - Wedge - Wedge + + Wedge + Wedge - Circle - 圆 + + Circle + 圆 - Vertex - 顶点 + Vertex + 顶点 - Position - ä½ç½® + Position + ä½ç½® - Z: - Z: + + + + Z: + Z: - X: - X: + + + + X: + X: - Direction: - æ–¹å‘: + Direction: + æ–¹å‘: - Y: - Y: + + + + Y: + Y: - Plane - å¹³é¢ + + Plane + å¹³é¢ - Box - 立方体 + + Box + 立方体 - Cylinder - 圆柱体 + + Cylinder + 圆柱体 - Cone - 圆锥体 + + Cone + 圆锥体 - Sphere - çƒä½“ + + Sphere + çƒä½“ - Ellipsoid - 椭圆体 + + Ellipsoid + 椭圆体 - Torus - åœ†çŽ¯é¢ + + Torus + åœ†çŽ¯é¢ - Parameter - 傿•° + + Ellipse + - Width: - 宽度: + + Point + - Length: - 长度: + + Line + - Height: - 高度: + + Parameter + 傿•° - Angle: - 角度: + + + Width: + 宽度: - Radius: - åŠå¾„: + + + Length: + 长度: - Radius 1: - åŠå¾„ 1: + + + + + Height: + 高度: - Radius 2: - åŠå¾„ 2: + + + + Angle: + 角度: - U parametric: - U 傿•°: + + + + + Radius: + åŠå¾„: - V parametric: - V 傿•°: + + + + Radius 1: + åŠå¾„ 1: - &Create - 创建(&C) + + + + Radius 2: + åŠå¾„ 2: - Alt+C - Alt+C + + + + U parametric: + U 傿•°: - Cl&ose - 关闭(&O) + + + + V parametric: + V 傿•°: - Alt+O - Alt+O + + X min/max: + - - Create %1 - 创建 %1 + + Y min/max: + - No active document - 无活动文档 + + Z min/max: + - - Pitch: - é—´è·: + + X2 min/max: + - Helix - 螺旋体 + + Z2 min/max: + - 3D View - 3D 视图 + + Coordinate system: + - - + + + Right-handed + + + + + Left-handed + + + + + + Angle 1: + + + + + + Angle 2: + + + + + From three points + + + + + Major radius: + + + + + Minor radius: + + + + + End point + + + + + Start point + + + + + &Create + 创建(&C) + + + Alt+C + Alt+C + + + Cl&ose + 关闭(&O) + + + Alt+O + Alt+O + + + + + + Create %1 + 创建 %1 + + + + No active document + 无活动文档 + + + + Pitch: + é—´è·: + + + + Helix + 螺旋体 + + + 3D View + 3D 视图 + + + PartGui::DlgRevolution - - Revolve - 旋转 + + Revolve + 旋转 - Y: - Y: + + Y: + Y: - X: - X: + + X: + X: - Angle: - 角度: + + Angle: + 角度: - Z: - Z: + + Z: + Z: - Axis: - è½´: + + Axis: + è½´: - Shape - 形状 + + Shape + 形状 - - Select a shape for revolution, first. - 先选择一个形状æ¥ä¿®æ”¹. + + Select line in 3D view + - - + + + Select a shape for revolution, first. + 先选择一个形状æ¥ä¿®æ”¹. + + + PartGui::DlgSettings3DViewPart - - View accuracy / Performance - 查看精度/性能 + + View accuracy / Performance + 查看精度/性能 - View smoothing - 平滑视图 + + View smoothing + 平滑视图 - Using high-quality normals - é»˜è®¤ä½¿ç”¨é«˜è´¨é‡ + + Using high-quality normals + é»˜è®¤ä½¿ç”¨é«˜è´¨é‡ - This will slow down render speed but will lead to nicer results - 这会é™ä½Žæ¸²æŸ“速度,但效果会更好 + + This will slow down render speed but will lead to nicer results + 这会é™ä½Žæ¸²æŸ“速度,但效果会更好 - Defines the appearance of surfaces - 定义表é¢å¤–è§‚ + + Defines the appearance of surfaces + 定义表é¢å¤–è§‚ - Shape view - 查看形状 + + Shape view + 查看形状 - Tessellation - 镶嵌 + + Tessellation + 镶嵌 - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果此选项ä¸è®¾ç½®åˆ™å¯ç”¨å¤šé¢é®ç½©æ•ˆæžœï¼Œå¦‚果设置å¯ç”¨å•é¢é®ç½©æ•ˆæžœ.</p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If this option is unset Phong shading is used, if it is set flat shading is used.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Flat shading/Phong shading</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">With flat shading the surface normals are not defined per vertex that leads to a unreal appearance for curved surfaces while using Phong shading leads to a smoother appearance. </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果此选项ä¸è®¾ç½®åˆ™å¯ç”¨å¤šé¢é®ç½©æ•ˆæžœï¼Œå¦‚果设置å¯ç”¨å•é¢é®ç½©æ•ˆæžœ.</p></body></html> - Do not define normal per vertex - ä¸éœ€è¦å®šä¹‰æ¯ä¸€ä¸ªå¸¸è§„顶点 + + Do not define normal per vertex + ä¸éœ€è¦å®šä¹‰æ¯ä¸€ä¸ªå¸¸è§„顶点 - Defines the deviation of tessellation to the actual surface - 定义实际表é¢é•¶åµŒçš„åå·® + + Defines the deviation of tessellation to the actual surface + 定义实际表é¢é•¶åµŒçš„åå·® - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> - <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> 镶嵌</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-weight:600;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style="font-weight:400;"> 定义的表é¢é•¶åµŒç½‘的最大åå·®.值越å°é€Ÿåº¦è¶Šæ…¢,外观也越柔和</span></p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Tessellation</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">Defines the maximum deviation of the tessellated mesh to the surface. The smaller the value is the slower the render speed and the nicer the appearance are.</span></p></body></html> + <html><head><meta name="qrichtext"content="1"/></head> <body style="white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px;"> 镶嵌</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-weight:600;"></p> <p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px;-qt-block-indent:0; text-indent:0px; font-weight:600;"> <span style="font-weight:400;"> 定义的表é¢é•¶åµŒç½‘的最大åå·®.值越å°é€Ÿåº¦è¶Šæ…¢,外观也越柔和</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">暗示</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">æ¯ä¸ªé¡¶ç‚¹çš„æ³•线的定义也被称为<span style=" font-style:italic;">Phong光照</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">åŒæ—¶ç¡®å®šæ¯ä¸ªé¢çš„æ³•线称为</span>平阴影<span style=" font-style:normal;">。</span> </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Hint</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">Defining the normals per vertex is also called <span style=" font-style:italic;">Phong shading</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"><span style=" font-style:normal;">while defining the normals per face is called </span>Flat shading<span style=" font-style:normal;">.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"> <span style=" font-weight:600;">暗示</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">æ¯ä¸ªé¡¶ç‚¹çš„æ³•线的定义也被称为<span style=" font-style:italic;">Phong光照</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; font-style:italic;"> <span style=" font-style:normal;">åŒæ—¶ç¡®å®šæ¯ä¸ªé¢çš„æ³•线称为</span>平阴影<span style=" font-style:normal;">。</span> </p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> - <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">高å“质的法线</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这将å‡ç¼“渲染速度,但会导致更好的结果。 </p></body></html> + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">High-quality normals</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This will slow down render speed but will lead to nicer results.</p></body></html> + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <span style=" font-weight:600;">高å“质的法线</span> </p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">这将å‡ç¼“渲染速度,但会导致更好的结果。 </p></body></html> - Maximum deviation depending on the model bounding box - 最大åå·®å–决于模型边界 + + Maximum deviation depending on the model bounding box + 最大åå·®å–决于模型边界 - % - % + + % + % - - Deviation - åå·® + + Deviation + åå·® - Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. - 设置得太å°ä¼šå¯¼è‡´è´´å›¾è€—时过长,切会使GUI界é¢å†»ç»“æˆ–é€Ÿåº¦å‡æ…¢. + + Setting a too small deviation causes the tessellation to take longerand thus freezes or slows down the GUI. + 设置得太å°ä¼šå¯¼è‡´è´´å›¾è€—时过长,切会使GUI界é¢å†»ç»“æˆ–é€Ÿåº¦å‡æ…¢. - - + + PartGui::DlgSettingsGeneral - - General - 常规 + + General + 常规 - Export - 导出 + + Export + 导出 - Millimeter - 毫米 + + Millimeter + 毫米 - Meter - ç±³ + + Meter + ç±³ - Inch - 英寸 + + Inch + 英寸 - Units for export of STEP/IGES - å•元输出为 STEP/IGES + + Units for export of STEP/IGES + å•元输出为 STEP/IGES - - + + + Model settings + + + + + Automatically refine model after boolean operation + + + + + Automatically check model after boolean operation + + + + + PartGui::FaceColors + + + Face colors + + + + + Do you really want to cancel? + + + + + PartGui::Location + + + Location + + + + + Position + ä½ç½® + + + + 3D View + 3D 视图 + + + PartGui::LoftWidget - - Too few elements - 元素太少 + + + Vertex/Wire + 顶点/线 - At least two vertices or wires are required. - 至少需è¦ä¸¤ä¸ªé¡¶ç‚¹æˆ–线. + + + Loft + 放样 - - + + + Too few elements + 元素太少 + + + + At least two vertices, edges or wires are required. + + + + At least two vertices or wires are required. + 至少需è¦ä¸¤ä¸ªé¡¶ç‚¹æˆ–线. + + + PartGui::Mirroring - - Mirroring - é•œåƒ + + Mirroring + é•œåƒ - Shapes - 形状 + + Shapes + 形状 - Mirror plane: - 镜åƒå¹³é¢: + + Mirror plane: + 镜åƒå¹³é¢: - XY plane - XY å¹³é¢ + + XY plane + XY å¹³é¢ - XZ plane - XZ å¹³é¢ + + XZ plane + XZ å¹³é¢ - YZ plane - YZ å¹³é¢ + + YZ plane + YZ å¹³é¢ - Base point: - 基准点: + + Base point: + 基准点: - x - x + + x + x - y - y + + y + y - z - z + + z + z - - Select a shape for mirroring, first. - è¯·å…ˆé€‰æ‹©ä¸€ä¸ªå½¢çŠ¶æ‰§è¡Œé•œåƒæ“作. + + Select a shape for mirroring, first. + è¯·å…ˆé€‰æ‹©ä¸€ä¸ªå½¢çŠ¶æ‰§è¡Œé•œåƒæ“作. - No such document '%1'. - 找ä¸åˆ°æ–‡æ¡£'%1'. + + No such document '%1'. + 找ä¸åˆ°æ–‡æ¡£'%1'. - - + + PartGui::ShapeBuilderWidget - - Wrong selection - 选择错误 + + + + + + Wrong selection + 选择错误 - Select two vertices - 选择两个顶点 + + + Select two vertices + 选择两个顶点 - Select three or more edges - é€‰æ‹©ä¸‰æ¡æˆ–更多边 + Select three or more edges + é€‰æ‹©ä¸‰æ¡æˆ–更多边 - Select two or more faces - é€‰æ‹©ä¸¤ä¸ªæˆ–æ›´å¤šé¢ + + Select one or more edges + - Select only one part object - 仅选择一个零件对象 + + Select two or more faces + é€‰æ‹©ä¸¤ä¸ªæˆ–æ›´å¤šé¢ - Select two vertices to create an edge - 选择两个顶点创建边 + + Select only one part object + 仅选择一个零件对象 - Select a closed set of edges - 选择一组闭åˆçš„è¾¹ + + Select two vertices to create an edge + 选择两个顶点创建边 - Select adjacent faces - é€‰æ‹©ç›¸é‚»é¢ + + Select a closed set of edges + 选择一组闭åˆçš„è¾¹ - All shape types can be selected - All shape types can be selected + + Select adjacent faces + é€‰æ‹©ç›¸é‚»é¢ - - + + + All shape types can be selected + All shape types can be selected + + + + PartGui::SweepWidget + + + + Vertex/Wire + 顶点/线 + + + + + Sweep + + + + + Sweep path + + + + + Select an edge or wire you want to sweep along. + + + + + Too few elements + 元素太少 + + + + At least one edge or wire is required. + + + + PartGui::TaskDialogEditDynamic - - Hint - Hint + Hint + Hint - Select Control. - Select Control. + Select Control. + Select Control. - Control - Control + Control + Control - Dynamic - Dynamic + Dynamic + Dynamic - Align - Align + Align + Align - Value - 值 + Value + 值 - Special - Special + Special + Special - Command - 命令 + Command + 命令 - Stretch - Stretch + Stretch + Stretch - Move - 移动 + Move + 移动 - Rotate - 旋转 + Rotate + 旋转 - Offset - åç§» + Offset + åç§» - Orient - Orient + Orient + Orient - Match - Match + Match + Match - Surround - Surround + Surround + Surround - dummy - dummy + dummy + dummy - X Axis - X Axis + X Axis + X Axis - Y Axis - Y Axis + Y Axis + Y Axis - Z Axis - Z Axis + Z Axis + Z Axis - Increment - Increment + Increment + Increment - .125 - .125 + .125 + .125 - .500 - .500 + .500 + .500 - 1.000 - 1.000 + 1.000 + 1.000 - 5.000 - 5.000 + 5.000 + 5.000 - 10.000 - 10.000 + 10.000 + 10.000 - Drag arrows to stretch box by increment - Drag arrows to stretch box by increment + Drag arrows to stretch box by increment + Drag arrows to stretch box by increment - Drag arrows to move box by increment - Drag arrows to move box by increment + Drag arrows to move box by increment + Drag arrows to move box by increment - Not implemented yet - Not implemented yet + Not implemented yet + Not implemented yet - Drag arrows to offset checked axes by increment - Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment + Drag arrows to offset checked axes by increment - Select dragger for stretch by align - Select dragger for stretch by align + Select dragger for stretch by align + Select dragger for stretch by align - Select dragger for move by align - Select dragger for move by align + Select dragger for move by align + Select dragger for move by align - Select dragger for stretch by value - Select dragger for stretch by value + Select dragger for stretch by value + Select dragger for stretch by value - Select dragger for move by value - Select dragger for move by value + Select dragger for move by value + Select dragger for move by value - 1.0 - 1.0 + 1.0 + 1.0 - Enter Value - Enter Value + Enter Value + Enter Value - Select box to match - Select box to match + Select box to match + Select box to match - Select a point - Select a point + Select a point + Select a point - 0.0 - 0.0 + 0.0 + 0.0 - Select dragger to align - Select dragger to align + Select dragger to align + Select dragger to align - Select dragger to modify - Select dragger to modify + Select dragger to modify + Select dragger to modify - - + + PartGui::TaskFaceColors - - Set color per face - å•独设置æ¯ä¸ªé¢çš„颜色 + + Set color per face + å•独设置æ¯ä¸ªé¢çš„颜色 - Click on the faces in the 3d view to select them. - 在3D视图中点击表é¢é€‰æ‹©å®ƒä»¬. + + Click on the faces in the 3d view to select them. + 在3D视图中点击表é¢é€‰æ‹©å®ƒä»¬. - Faces: - é¢: + + Faces: + é¢: - Set to default - 设置为默认 + + Set to default + 设置为默认 - - + + PartGui::TaskLoft - - Loft - 放样 + + Loft + 放样 - Vertex/Wire - 顶点/线 + Vertex/Wire + 顶点/线 - Move right - å³ç§» + Move right + å³ç§» - <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> - <b>移动选中对象到下一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> + <b>Move the selected item one level down.</b><p>This will also change the level of the parent item.</p> + <b>移动选中对象到下一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> - Move left - 左移 + Move left + 左移 - <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> - <b>移动选中对象到上一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> + <b>Move the selected item one level up.</b><p>This will also change the level of the parent item.</p> + <b>移动选中对象到上一层级.</b><p>è¿™å°†åŒæ—¶æ”¹å˜çˆ¶çº§å¯¹è±¡.</p> - Move up - 上移 + Move up + 上移 - <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> - <b>上移选中对象.</b><p>仅在层级中移动.</p> + <b>Move the selected item up.</b><p>The item will be moved within the hierarchy level.</p> + <b>上移选中对象.</b><p>仅在层级中移动.</p> - Move down - 下移 + Move down + 下移 - <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> - <b>下移选中对象.</b><p>仅在层级中移动.</p> + <b>Move the selected item down.</b><p>The item will be moved within the hierarchy level.</p> + <b>下移选中对象.</b><p>仅在层级中移动.</p> - Create solid - 创建实体 + + Create solid + 创建实体 - Ruled surface - ç›´çº¹æ›²é¢ + + Ruled surface + ç›´çº¹æ›²é¢ - - + + PartGui::TaskShapeBuilder - - Create shape - 创建形体 + + + Create shape + 创建形体 - Edge from vertices - Edge from vertices + + Edge from vertices + Edge from vertices - Face from edges - Face from edges + + Face from edges + Face from edges - Planar - å¹³é¢ + + Planar + å¹³é¢ - Shell from faces - Shell from faces + + Shell from faces + Shell from faces - Solid from shell - Solid from shell + + Solid from shell + Solid from shell - Create - 创建 + + Create + 创建 - All faces - æ‰€æœ‰é¢ + + All faces + æ‰€æœ‰é¢ - - + + + PartGui::TaskSweep + + + Sweep + + + + + Create solid + 创建实体 + + + + Frenet + + + + + Select one or more profiles and select an edge or wire +in the 3D view for the sweep path. + + + + QObject - - Wrong selection - 选择错误 + + + + + + Wrong selection + 选择错误 - Select two shapes please. - 请选择两个形状. + + + Select two shapes please. + 请选择两个形状. - All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) - 所有 CAD 文件 (*.stp *.step *.igs *.iges *.brp *.brep) + + + + All CAD Files (*.stp *.step *.igs *.iges *.brp *.brep) + 所有 CAD 文件 (*.stp *.step *.igs *.iges *.brp *.brep) - STEP (*.stp *.step) - STEP (*.stp *.step) + + + + STEP (*.stp *.step) + STEP (*.stp *.step) - IGES (*.igs *.iges) - IGES (*.igs *.iges) + + + + IGES (*.igs *.iges) + IGES (*.igs *.iges) - BREP (*.brp *.brep) - BREP (*.brp *.brep) + + + + BREP (*.brp *.brep) + BREP (*.brp *.brep) - All Files (*.*) - 所有文件(*.*) + + + + All Files (*.*) + 所有文件(*.*) - - Sewing Tolerance - ç¼æŽ¥å…¬å·® + + Sewing Tolerance + ç¼æŽ¥å…¬å·® - Enter tolerance for sewing shape: - è¾“å…¥å½¢çŠ¶ç¼æŽ¥çš„å…¬å·®: + + Enter tolerance for sewing shape: + è¾“å…¥å½¢çŠ¶ç¼æŽ¥çš„å…¬å·®: - - Edit mirror plane - 编辑镜åƒå¹³é¢ + + Edit mirror plane + 编辑镜åƒå¹³é¢ - Transform - å˜å½¢ + + Edit chamfer edges + - - Part design - 零件设计 + Transform + å˜å½¢ - - Select two shapes or more, please. - 请选择以上两个形状. + + + Part design + 零件设计 - You have to select either two edges or two wires. - 你必须选择二æ¡è¾¹æˆ–者二个线框. + + + Select two shapes or more, please. + 请选择以上两个形状. - - Edit fillet edges - 编辑圆角边 + + You have to select either two edges or two wires. + 你必须选择二æ¡è¾¹æˆ–者二个线框. - - Set colors... - 设置颜色... + + Edit fillet edges + 编辑圆角边 - - + + + Set colors... + 设置颜色... + + + Workbench - - &Part - é›¶ä»¶(&P) + + &Part + é›¶ä»¶(&P) - &Simple - 简å•(&S) + + &Simple + 简å•(&S) - &Parametric - 傿•°åŒ–(&P) + + &Parametric + 傿•°åŒ–(&P) - Part tools - 零件工具 + + Part tools + 零件工具 - Solids - 实体 + + Solids + 实体 - Boolean - 布尔值 + + Boolean + 布尔值 - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_af.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_af.ts index a739b6466..604e5f177 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_af.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_af.ts @@ -1,462 +1,769 @@ - - + + CmdPartDesignChamfer - - Part - Onderdeel + Part + Onderdeel - Chamfer... - Groef ... + Chamfer... + Groef ... - Chamfer the selected edges of a shape - Groef die gekose kante van 'n vorm + + PartDesign + OnderdeelOntwerp - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Groef die gekose kante van 'n vorm + + + CmdPartDesignFillet - PartDesign - OnderdeelOntwerp + + PartDesign + OnderdeelOntwerp - Fillet - Ronding + + Fillet + Ronding - Make a fillet on an edge, face or body - Skep 'n ronding op 'n rand, vlak of liggaam + + Make a fillet on an edge, face or body + Skep 'n ronding op 'n rand, vlak of liggaam - - + + + CmdPartDesignGroove + + + PartDesign + OnderdeelOntwerp + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - OnderdeelOntwerp + + PartDesign + OnderdeelOntwerp - Pad - Vul + + Pad + Vul - Pad a selected sketch - Vul 'n gekose skets + + Pad a selected sketch + Vul 'n gekose skets - - + + CmdPartDesignPocket - PartDesign - OnderdeelOntwerp + + PartDesign + OnderdeelOntwerp - Pocket - Holte + + Pocket + Holte - create a pocket with the selected sketch - maak 'n holte met die gekose skets + + create a pocket with the selected sketch + maak 'n holte met die gekose skets - - + + CmdPartDesignRevolution - PartDesign - OnderdeelOntwerp + + PartDesign + OnderdeelOntwerp - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Kante om te groef + Edges to chamfer + Kante om te groef - Start distance - Beginafstand + Start distance + Beginafstand - End distance - Eindpuntafstand + End distance + Eindpuntafstand - Edge%1 - Kant%1 + Edge%1 + Kant%1 - Distance - Afstand + Distance + Afstand - No shape selected - Geen vorm gekies nie + No shape selected + Geen vorm gekies nie - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Geen geldige vorm is gekies nie. -Kies eers 'n geldige vorm in die vallys. + Geen geldige vorm is gekies nie. +Kies eers 'n geldige vorm in die vallys. - No edge selected - Geen kant gekies nie + No edge selected + Geen kant gekies nie - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Geen kant is gekies om te groef nie + Geen kant is gekies om te groef nie Kies ten minste een kant. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Groef kante + Chamfer Edges + Groef kante - Shape - Vorm + Shape + Vorm - Selected shape: - Gekose vorm: + Selected shape: + Gekose vorm: - No selection - Geen keuse + No selection + Geen keuse - Chamfer Parameter - Groefparameter + Chamfer Parameter + Groefparameter - All - Almal + All + Almal - None - Geen + None + Geen - Chamfer type: - Groeftipe: + Chamfer type: + Groeftipe: - Constant Distance - Konstante afstand + Constant Distance + Konstante afstand - Variable Distance - Veranderlike Afstand + Variable Distance + Veranderlike Afstand - Distance: - Afstand: + Distance: + Afstand: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Vorm + + + + Size: + Grootte: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Vorm + + Form + Vorm - Radius: - Radius: + + Radius: + Radius: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Vorm + + + + Axis: + As: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Hoek: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Vorm + + Form + Vorm - Type: - Soort: + + Type: + Soort: - Dimension - Dimensioneer + + Dimension + Dimensioneer - Up to last - Op na die laaste + + Up to last + Op na die laaste - Up to first - Up to first + + Up to first + Up to first - Size: - Grootte: + + Size: + Grootte: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Vorm + + Form + Vorm - Type: - Soort: + + Type + - Dimension - Dimensioneer + + Length + Length - Length: - Lengte: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Vertoningsmodus: + Type: + Soort: - Plot mode: - Plotmodus: + + + Dimension + Dimensioneer - Point size: - Puntgrootte: + Length: + Lengte: - Line width: - Lynwydte: + Mirrored extent + Mirrored extent - Transparency: - Deursigtigheid: + + Reversed + Reversed - TaskPadParameters - TaakBlokParameters + Display mode: + Vertoningsmodus: - - Pad parameters - Pad parameters + Plot mode: + Plotmodus: - - + + Point size: + Puntgrootte: + + + Line width: + Lynwydte: + + + Transparency: + Deursigtigheid: + + + TaskPadParameters + TaakBlokParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Vorm + + Form + Vorm - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Vorm + + Form + Vorm - Type: - Soort: + Type: + Soort: - Dimension - Dimensioneer + + Type + - Length - Length + + + Dimension + Dimensioneer - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Vorm + + Form + Vorm - Axis: - As: + + Axis: + As: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Hoek: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Hoek: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Verkeerde keuse + + + + + + + + + + + + + + + + + + + Wrong selection + Verkeerde keuse - Select a sketch or 2D object. - Kies 'n skets of 2D-voorwerp. + + + + + Select a sketch or 2D object. + Kies 'n skets of 2D-voorwerp. - The shape of the selected object is empty. - Die vorm van die gekose item is leeg. + + + + + The shape of the selected object is empty. + Die vorm van die gekose item is leeg. - The shape of the selected object is not a wire. - Die vorm van die gekose item is nie 'n draad nie. + + + + + The shape of the selected object is not a wire. + Die vorm van die gekose item is nie 'n draad nie. - Select an edge, face or body. Only one body is allowed. - Kies 'n rand, vlak of liggaam. Slegs een liggaam word toegelaat. + + + Select an edge, face or body. Only one body is allowed. + Kies 'n rand, vlak of liggaam. Slegs een liggaam word toegelaat. - Wrong object type - Verkeerde voorwerpsoort + + + Wrong object type + Verkeerde voorwerpsoort - Fillet works only on parts - Ronding werk slegs op onderdele + + Fillet works only on parts + Ronding werk slegs op onderdele - No Support - Geen stut + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Geen stut + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Die skets moet 'n stut hê vir die holteëienskap. Doen die skets op 'n vlak. + Die skets moet 'n stut hê vir die holteëienskap. Doen die skets op 'n vlak. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Onderdeelontwerp + + Part Design + Onderdeelontwerp - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts index 2f3c616b8..959d8aa54 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_de.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - Part + Part + Part - Chamfer... - Abschrägung ... + Chamfer... + Abschrägung ... - Chamfer the selected edges of a shape - Die gewählten Kanten einer Form abschrägen + + PartDesign + Teile-Konstruktion - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Die gewählten Kanten einer Form abschrägen + + + CmdPartDesignFillet - PartDesign - Teile-Konstruktion + + PartDesign + Teile-Konstruktion - Fillet - Verrundung + + Fillet + Verrundung - Make a fillet on an edge, face or body - Kante, Fläche oder Körper verrunden + + Make a fillet on an edge, face or body + Kante, Fläche oder Körper verrunden - - + + + CmdPartDesignGroove + + + PartDesign + Teile-Konstruktion + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Teile-Konstruktion + + PartDesign + Teile-Konstruktion - Pad - Block + + Pad + Block - Pad a selected sketch - Selektierte Skizze aufpolstern + + Pad a selected sketch + Selektierte Skizze aufpolstern - - + + CmdPartDesignPocket - PartDesign - Teile-Konstruktion + + PartDesign + Teile-Konstruktion - Pocket - Tasche + + Pocket + Tasche - create a pocket with the selected sketch - Eine Tasche mit der selektierten Skizze erzeugen + + create a pocket with the selected sketch + Eine Tasche mit der selektierten Skizze erzeugen - - + + CmdPartDesignRevolution - PartDesign - Teile-Konstruktion + + PartDesign + Teile-Konstruktion - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Kanten zum Abschrägen + Edges to chamfer + Kanten zum Abschrägen - Start distance - Anfangsabstand + Start distance + Anfangsabstand - End distance - Endabstand + End distance + Endabstand - Edge%1 - Kante%1 + Edge%1 + Kante%1 - Distance - Abstand + Distance + Abstand - No shape selected - Keine Form ausgewählt + No shape selected + Keine Form ausgewählt - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Keine gültige Form gewählt. + Keine gültige Form gewählt. Bitte wählen Sie zuerst eine gültige Form im Dropdown-Feld. - No edge selected - Keine Kante ausgewählt + No edge selected + Keine Kante ausgewählt - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Keine Kanten zum Abschrägen markiert. + Keine Kanten zum Abschrägen markiert. Bitte markieren Sie zuerst ein oder mehrere Kanten. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Kanten abschrägen + Chamfer Edges + Kanten abschrägen - Shape - Form + Shape + Form - Selected shape: - Ausgewählte Form: + Selected shape: + Ausgewählte Form: - No selection - Keine Auswahl + No selection + Keine Auswahl - Chamfer Parameter - Abschräg-Parameter + Chamfer Parameter + Abschräg-Parameter - All - Alles + All + Alles - None - Nichts + None + Nichts - Chamfer type: - Abschrägngsart: + Chamfer type: + Abschrägngsart: - Constant Distance - Konstanter Abstand + Constant Distance + Konstanter Abstand - Variable Distance - Variabler Abstand + Variable Distance + Variabler Abstand - Distance: - Abstand: + Distance: + Abstand: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Form + + + + Size: + Größe: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Form + + Form + Form - Radius: - Radius: + + Radius: + Radius: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Form + + + + Axis: + Achse: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Winkel: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Form + + Form + Form - Type: - Typ: + + Type: + Typ: - Dimension - Abmessung + + Dimension + Abmessung - Up to last - Weiter zum Letzten + + Up to last + Weiter zum Letzten - Up to first - Bis zum ersten + + Up to first + Bis zum ersten - Size: - Größe: + + Size: + Größe: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Form + + Form + Form - Type: - Typ: + + Type + - Dimension - Abmessung + + Length + Length - Length: - Länge: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Anzeigemodus: + Type: + Typ: - Plot mode: - Plot mode: + + + Dimension + Abmessung - Point size: - Punktgröße: + Length: + Länge: - Line width: - Linienbreite: + Mirrored extent + Mirrored extent - Transparency: - Transparenz: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Anzeigemodus: - - Pad parameters - Pad parameters + Plot mode: + Plot mode: - - + + Point size: + Punktgröße: + + + Line width: + Linienbreite: + + + Transparency: + Transparenz: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Form + + Form + Form - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Nummer1: + + Number1: + Nummer1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Nummer2: + + Number2: + Nummer2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Form + + Form + Form - Type: - Typ: + Type: + Typ: - Dimension - Abmessung + + Type + - Length - Length + + + Dimension + Abmessung - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Form + + Form + Form - Axis: - Achse: + + Axis: + Achse: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Winkel: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Winkel: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Falsche Auswahl + + + + + + + + + + + + + + + + + + + Wrong selection + Falsche Auswahl - Select a sketch or 2D object. - Wählen Sie eine Skizze oder ein 2D-Objekt. + + + + + Select a sketch or 2D object. + Wählen Sie eine Skizze oder ein 2D-Objekt. - The shape of the selected object is empty. - Die Form des gewählten Objektes ist leer. + + + + + The shape of the selected object is empty. + Die Form des gewählten Objektes ist leer. - The shape of the selected object is not a wire. - Wählen Sie eine Kante, eine Fläche oder einen Körper. Nur ein Körper ist erlaubt. + + + + + The shape of the selected object is not a wire. + Wählen Sie eine Kante, eine Fläche oder einen Körper. Nur ein Körper ist erlaubt. - Select an edge, face or body. Only one body is allowed. - Wählen Sie eine Kante, eine Fläche oder einen Körper. Nur ein Körper ist erlaubt. + + + Select an edge, face or body. Only one body is allowed. + Wählen Sie eine Kante, eine Fläche oder einen Körper. Nur ein Körper ist erlaubt. - Wrong object type - Falscher Objekt-Typ + + + Wrong object type + Falscher Objekt-Typ - Fillet works only on parts - Rundung funktioniert nur bei Teilen + + Fillet works only on parts + Rundung funktioniert nur bei Teilen - No Support - Keine Auflage + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Keine Auflage + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Die Skizze erfordert eine Auflage für die Tasche. + Die Skizze erfordert eine Auflage für die Tasche. Erstelle die Skizze auf der Fläche. - - Edit pad - Block bearbeiten + + Edit pad + Block bearbeiten - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Möchten Sie diesen Dialog zu schließen? + + + + + + + Do you want to close this dialog? + Möchten Sie diesen Dialog zu schließen? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Teile-Konstruktion + + Part Design + Teile-Konstruktion - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es.ts index 4f2656025..33a9a08b9 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_es.ts @@ -1,460 +1,767 @@ - - + + CmdPartDesignChamfer - - Part - Pieza + Part + Pieza - Chamfer... - Chaflán... + Chamfer... + Chaflán... - Chamfer the selected edges of a shape - Chaflane las aristas seleccionadas de una forma + + PartDesign + Diseño de piezas - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Chaflane las aristas seleccionadas de una forma + + + CmdPartDesignFillet - PartDesign - Diseño de piezas + + PartDesign + Diseño de piezas - Fillet - Redondear + + Fillet + Redondear - Make a fillet on an edge, face or body - Crear un redondeado en una arista, cara o cuerpo + + Make a fillet on an edge, face or body + Crear un redondeado en una arista, cara o cuerpo - - + + + CmdPartDesignGroove + + + PartDesign + Diseño de piezas + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Diseño de piezas + + PartDesign + Diseño de piezas - Pad - Extruir + + Pad + Extruir - Pad a selected sketch - Extruir un dibujo seleccionado + + Pad a selected sketch + Extruir un dibujo seleccionado - - + + CmdPartDesignPocket - PartDesign - Diseño de piezas + + PartDesign + Diseño de piezas - Pocket - Vaciado + + Pocket + Vaciado - create a pocket with the selected sketch - crear un vaciado con el croquis seleccionado + + create a pocket with the selected sketch + crear un vaciado con el croquis seleccionado - - + + CmdPartDesignRevolution - PartDesign - Diseño de piezas + + PartDesign + Diseño de piezas - Revolution - Revolución + + Revolution + Revolución - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Aristas para chaflán + Edges to chamfer + Aristas para chaflán - Start distance - Distancia inicial + Start distance + Distancia inicial - End distance - Distancia final + End distance + Distancia final - Edge%1 - Arista%1 + Edge%1 + Arista%1 - Distance - Distancia + Distance + Distancia - No shape selected - Ninguna forma seleccionada + No shape selected + Ninguna forma seleccionada - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - La forma seleccionada no es válida. Por favor, seleccione primero una forma válida en el cuadro despegar. + La forma seleccionada no es válida. Por favor, seleccione primero una forma válida en el cuadro despegar. - No edge selected - Ninguna arista seleccionada + No edge selected + Ninguna arista seleccionada - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Ninguna entidad de arista se ha comprobado para chaflán. Compruebe primero una o más entidades de arista. + Ninguna entidad de arista se ha comprobado para chaflán. Compruebe primero una o más entidades de arista. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Aristas del chaflán + Chamfer Edges + Aristas del chaflán - Shape - Forma + Shape + Forma - Selected shape: - Forma seleccionada: + Selected shape: + Forma seleccionada: - No selection - Sin selección + No selection + Sin selección - Chamfer Parameter - Parámetro de chaflán + Chamfer Parameter + Parámetro de chaflán - All - Todo + All + Todo - None - Nada + None + Nada - Chamfer type: - Tipo de chaflán: + Chamfer type: + Tipo de chaflán: - Constant Distance - Distancia constante + Constant Distance + Distancia constante - Variable Distance - Distancia variable + Variable Distance + Distancia variable - Distance: - Distancia: + Distance: + Distancia: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Formulario + + + + Size: + Tamaño: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Formulario + + Form + Formulario - Radius: - Radio: + + Radius: + Radio: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Formulario + + + + Axis: + Ejes: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Ãngulo: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Formulario + + Form + Formulario - Type: - Tipo: + + Type: + Tipo: - Dimension - Cota + + Dimension + Cota - Up to last - Cerca del último + + Up to last + Cerca del último - Up to first - Up to first + + Up to first + Up to first - Size: - Tamaño: + + Size: + Tamaño: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Formulario + + Form + Formulario - Type: - Tipo: + + Type + - Dimension - Cota + + Length + Length - Length: - Longitud: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Modo de visualización: + Type: + Tipo: - Plot mode: - Modo de impresión: + + + Dimension + Cota - Point size: - Tamaño de punto: + Length: + Longitud: - Line width: - Grosor de línea: + Mirrored extent + Mirrored extent - Transparency: - Transparencia: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Modo de visualización: - - Pad parameters - Pad parameters + Plot mode: + Modo de impresión: - - + + Point size: + Tamaño de punto: + + + Line width: + Grosor de línea: + + + Transparency: + Transparencia: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Formulario + + Form + Formulario - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Formulario + + Form + Formulario - Type: - Tipo: + Type: + Tipo: - Dimension - Cota + + Type + - Length - Length + + + Dimension + Cota - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Formulario + + Form + Formulario - Axis: - Ejes: + + Axis: + Ejes: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Ãngulo: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Ãngulo: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Selección incorrecta + + + + + + + + + + + + + + + + + + + Wrong selection + Selección incorrecta - Select a sketch or 2D object. - Seleccione un croquis o un objeto 2D. + + + + + Select a sketch or 2D object. + Seleccione un croquis o un objeto 2D. - The shape of the selected object is empty. - La forma del objeto seleccionado está vacía. + + + + + The shape of the selected object is empty. + La forma del objeto seleccionado está vacía. - The shape of the selected object is not a wire. - La forma del objeto seleccionado no es alambrica. + + + + + The shape of the selected object is not a wire. + La forma del objeto seleccionado no es alambrica. - Select an edge, face or body. Only one body is allowed. - Seleccione una arista, cara o cuerpo. Sólo se permite un solo cuerpo. + + + Select an edge, face or body. Only one body is allowed. + Seleccione una arista, cara o cuerpo. Sólo se permite un solo cuerpo. - Wrong object type - Tipo de objeto incorrecto + + + Wrong object type + Tipo de objeto incorrecto - Fillet works only on parts - Redondeado sólo funciona con piezas + + Fillet works only on parts + Redondeado sólo funciona con piezas - No Support - Sin soporte + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Sin soporte + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - El croquis tiene que tener un soporte para la función vaciado. Cree el croquis en una cara. + El croquis tiene que tener un soporte para la función vaciado. Cree el croquis en una cara. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Diseño de pieza + + Part Design + Diseño de pieza - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts index d885517b3..484968ef3 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fi.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - osa + Part + osa - Chamfer... - Chamfer... + Chamfer... + Chamfer... - Chamfer the selected edges of a shape - Chamfer the selected edges of a shape + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Chamfer the selected edges of a shape + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - Fillet + + Fillet + Fillet - Make a fillet on an edge, face or body - Make a fillet on an edge, face or body + + Make a fillet on an edge, face or body + Make a fillet on an edge, face or body - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - Pad + + Pad + Pad - Pad a selected sketch - Pad a selected sketch + + Pad a selected sketch + Pad a selected sketch - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - Pocket + + Pocket + Pocket - create a pocket with the selected sketch - create a pocket with the selected sketch + + create a pocket with the selected sketch + create a pocket with the selected sketch - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Edges to chamfer + Edges to chamfer + Edges to chamfer - Start distance - Start distance + Start distance + Start distance - End distance - End distance + End distance + End distance - Edge%1 - Reuna %1 + Edge%1 + Reuna %1 - Distance - Distance + Distance + Distance - No shape selected - Ei valittua muotoa + No shape selected + Ei valittua muotoa - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Kelvollista muotoa ei ole valittu. + Kelvollista muotoa ei ole valittu. Ole hyvä ja valitse kelvollinen muoto alas veto laatikosta. - No edge selected - Ei valittua reunaa + No edge selected + Ei valittua reunaa - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Chamfer Edges + Chamfer Edges + Chamfer Edges - Shape - Muoto + Shape + Muoto - Selected shape: - Valittu muoto: + Selected shape: + Valittu muoto: - No selection - No selection + No selection + No selection - Chamfer Parameter - Chamfer Parameter + Chamfer Parameter + Chamfer Parameter - All - All + All + All - None - Ei mitään + None + Ei mitään - Chamfer type: - Chamfer type: + Chamfer type: + Chamfer type: - Constant Distance - Constant Distance + Constant Distance + Constant Distance - Variable Distance - Variable Distance + Variable Distance + Variable Distance - Distance: - Etäisyys: + Distance: + Etäisyys: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Lomake + + + + Size: + Koko: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Lomake + + Form + Lomake - Radius: - Radius: + + Radius: + Radius: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Lomake + + + + Axis: + Axis: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Kulma: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Lomake + + Form + Lomake - Type: - Tyyppi: + + Type: + Tyyppi: - Dimension - Mitta + + Dimension + Mitta - Up to last - Ylös viimeiseen + + Up to last + Ylös viimeiseen - Up to first - Up to first + + Up to first + Up to first - Size: - Koko: + + Size: + Koko: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Lomake + + Form + Lomake - Type: - Tyyppi: + + Type + - Dimension - Mitta + + Length + Length - Length: - Length: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Display mode: + Type: + Tyyppi: - Plot mode: - Plot mode: + + + Dimension + Mitta - Point size: - Pistekoko: + Length: + Length: - Line width: - Viivan leveys: + Mirrored extent + Mirrored extent - Transparency: - Läpinäkyvyys: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Display mode: - - Pad parameters - Pad parameters + Plot mode: + Plot mode: - - + + Point size: + Pistekoko: + + + Line width: + Viivan leveys: + + + Transparency: + Läpinäkyvyys: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Lomake + + Form + Lomake - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Lomake + + Form + Lomake - Type: - Tyyppi: + Type: + Tyyppi: - Dimension - Mitta + + Type + - Length - Length + + + Dimension + Mitta - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Lomake + + Form + Lomake - Axis: - Axis: + + Axis: + Axis: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Kulma: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Kulma: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Väärä valinta + + + + + + + + + + + + + + + + + + + Wrong selection + Väärä valinta - Select a sketch or 2D object. - Select a sketch or 2D object. + + + + + Select a sketch or 2D object. + Select a sketch or 2D object. - The shape of the selected object is empty. - The shape of the selected object is empty. + + + + + The shape of the selected object is empty. + The shape of the selected object is empty. - The shape of the selected object is not a wire. - The shape of the selected object is not a wire. + + + + + The shape of the selected object is not a wire. + The shape of the selected object is not a wire. - Select an edge, face or body. Only one body is allowed. - Select an edge, face or body. Only one body is allowed. + + + Select an edge, face or body. Only one body is allowed. + Select an edge, face or body. Only one body is allowed. - Wrong object type - Wrong object type + + + Wrong object type + Wrong object type - Fillet works only on parts - Fillet works only on parts + + Fillet works only on parts + Fillet works only on parts - No Support - No Support + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + No Support + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - The sketch has to have a support for the pocket feature. + The sketch has to have a support for the pocket feature. Create the sketch on a face. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Part Design + + Part Design + Part Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts index 52cd0cfe4..75a11f3c0 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_fr.ts @@ -1,460 +1,767 @@ - - + + CmdPartDesignChamfer - - Part - Pièce + Part + Pièce - Chamfer... - Chanfrein... + Chamfer... + Chanfrein... - Chamfer the selected edges of a shape - Chanfreiner les arêtes sélectionnées d'une forme + + PartDesign + ConceptionPièce - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Chanfreiner les arêtes sélectionnées d'une forme + + + CmdPartDesignFillet - PartDesign - ConceptionPièce + + PartDesign + ConceptionPièce - Fillet - Congé + + Fillet + Congé - Make a fillet on an edge, face or body - Faire un congé sur une arête, une face ou un corps + + Make a fillet on an edge, face or body + Faire un congé sur une arête, une face ou un corps - - + + + CmdPartDesignGroove + + + PartDesign + ConceptionPièce + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - ConceptionPièce + + PartDesign + ConceptionPièce - Pad - Protrusion + + Pad + Protrusion - Pad a selected sketch - Faire une protrusion à partir de l'esquisse sélectionnée + + Pad a selected sketch + Faire une protrusion à partir de l'esquisse sélectionnée - - + + CmdPartDesignPocket - PartDesign - ConceptionPièce + + PartDesign + ConceptionPièce - Pocket - Cavité + + Pocket + Cavité - create a pocket with the selected sketch - Créer une cavité avec l'esquisse sélectionnée + + create a pocket with the selected sketch + Créer une cavité avec l'esquisse sélectionnée - - + + CmdPartDesignRevolution - PartDesign - ConceptionPièce + + PartDesign + ConceptionPièce - Revolution - Révolution + + Revolution + Révolution - Revolve a selected sketch - Révolution d'une esquisse sélectionnée + + Revolve a selected sketch + Révolution d'une esquisse sélectionnée - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Outils de face + + Face tools + Outils de face - Sketch tools - Outils d'esquisse + + Sketch tools + Outils d'esquisse - Create Geometry - Créer géométrie + + Create Geometry + Créer géométrie - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Arêtes à chanfreiner + Edges to chamfer + Arêtes à chanfreiner - Start distance - Distance initiale + Start distance + Distance initiale - End distance - Distance finale + End distance + Distance finale - Edge%1 - Arête %1 + Edge%1 + Arête %1 - Distance - Distance + Distance + Distance - No shape selected - Aucune forme sélectionnée + No shape selected + Aucune forme sélectionnée - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Aucune forme valide n'est sélectionnée. Veuillez d'abord sélectionner une forme valide depuis le menu déroulant. + Aucune forme valide n'est sélectionnée. Veuillez d'abord sélectionner une forme valide depuis le menu déroulant. - No edge selected - Aucune arête sélectionnée + No edge selected + Aucune arête sélectionnée - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Aucune arête n'est sélectionné pour le filetage. Cochez d'abord une ou plusieurs arêtes. + Aucune arête n'est sélectionné pour le filetage. Cochez d'abord une ou plusieurs arêtes. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Chanfreiner des arêtes + Chamfer Edges + Chanfreiner des arêtes - Shape - Forme + Shape + Forme - Selected shape: - Forme sélectionnée : + Selected shape: + Forme sélectionnée : - No selection - Aucune sélection + No selection + Aucune sélection - Chamfer Parameter - Paramètre de chanfrein + Chamfer Parameter + Paramètre de chanfrein - All - Tout + All + Tout - None - Aucun + None + Aucun - Chamfer type: - Type de chanfrein : + Chamfer type: + Type de chanfrein : - Constant Distance - Distance constante + Constant Distance + Distance constante - Variable Distance - Distance variable + Variable Distance + Distance variable - Distance: - Distance : + Distance: + Distance : - - + + + PartDesignGui::TaskChamferParameters + + + Form + Forme + + + + Size: + Taille : + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Erreur de saisie + + Input error + Erreur de saisie - - + + PartDesignGui::TaskFilletParameters - - Form - Forme + + Form + Forme - Radius: - Rayon : + + Radius: + Rayon : - - Fillet parameters - Paramètres de l'arrondi + + Fillet parameters + Paramètres de l'arrondi - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Forme + + + + Axis: + Axe : + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Angle : + + + + Symmetric to plane + + + + + Reversed + Inversé + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Forme + + Form + Forme - Type: - Type : + + Type: + Type : - Dimension - Dimension + + Dimension + Dimension - Up to last - Jusqu'à la dernière face + + Up to last + Jusqu'à la dernière face - Up to first - Jusqu'à la première face + + Up to first + Jusqu'à la première face - Size: - Taille : + + Size: + Taille : - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Forme + + Form + Forme - Type: - Type : + + Type + - Dimension - Dimension + + Length + Longueur - Length: - Longueur : + + Symmetric to plane + - Mirrored extent - Étendue en miroir + + 2nd length + - Reversed - Inversé + + + Face + - Display mode: - Mode d'affichage : + Type: + Type : - Plot mode: - Mode tracé : + + + Dimension + Dimension - Point size: - Taille de point : + Length: + Longueur : - Line width: - Épaisseur de ligne: + Mirrored extent + Étendue en miroir - Transparency: - Transparence : + + Reversed + Inversé - TaskPadParameters - TaskPadParameters + Display mode: + Mode d'affichage : - - Pad parameters - Paramètres de protrusion + Plot mode: + Mode tracé : - - + + Point size: + Taille de point : + + + Line width: + Épaisseur de ligne: + + + Transparency: + Transparence : + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Paramètres de protrusion + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Forme + + Form + Forme - Spacing1: - Espacement1 : + + Spacing1: + Espacement1 : - Number1: - Nombre1 : + + Number1: + Nombre1 : - Second extend - Seconde extension + + Second extend + Seconde extension - Spacing2: - Espacement2 : + + Spacing2: + Espacement2 : - Number2: - Nombre2 : + + Number2: + Nombre2 : - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Forme + + Form + Forme - Type: - Type : + Type: + Type : - Dimension - Dimension + + Type + - Length - Longueur + + + Dimension + Dimension - - Pocket parameters - Paramètres de la poche + + + Face + - - + + + Length + Longueur + + + + Pocket parameters + Paramètres de la poche + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Forme + + Form + Forme - Axis: - Axe : + + Axis: + Axe : - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Angle : + + Symmetric to plane + - - Revolution parameters - Paramètres de la révolution + + Reversed + Inversé - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Angle : + + + + Revolution parameters + Paramètres de la révolution + + + QObject - - Wrong selection - Sélection invalide + + + + + + + + + + + + + + + + + + + Wrong selection + Sélection invalide - Select a sketch or 2D object. - Sélectionnez une esquisse ou un objet 2D. + + + + + Select a sketch or 2D object. + Sélectionnez une esquisse ou un objet 2D. - The shape of the selected object is empty. - La forme de l'objet sélectionné est vide. + + + + + The shape of the selected object is empty. + La forme de l'objet sélectionné est vide. - The shape of the selected object is not a wire. - La forme de l'objet sélectionné n'est pas filaire. + + + + + The shape of the selected object is not a wire. + La forme de l'objet sélectionné n'est pas filaire. - Select an edge, face or body. Only one body is allowed. - Sélectionnez une arête, une face ou un corps. Un seul corps est autorisé. + + + Select an edge, face or body. Only one body is allowed. + Sélectionnez une arête, une face ou un corps. Un seul corps est autorisé. - Wrong object type - Type d'objet incorrect + + + Wrong object type + Type d'objet incorrect - Fillet works only on parts - Le congé s'applique uniquement sur les pièces + + Fillet works only on parts + Le congé s'applique uniquement sur les pièces - No Support - Aucune prise en charge + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Aucune prise en charge + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - L'esquisse doit être supportée pour la fonctionnalité de cavité. Créez l'esquisse sur une face. + L'esquisse doit être supportée pour la fonctionnalité de cavité. Créez l'esquisse sur une face. - - Edit pad - Modifier la protrusion + + Edit pad + Modifier la protrusion - - Edit pocket - Modifier la poche + + + + Edit pocket + Modifier la poche - A dialog is already open in the task panel - Une boîte de dialogue est déjà ouverte dans le panneau des tâches + + + + + + + A dialog is already open in the task panel + Une boîte de dialogue est déjà ouverte dans le panneau des tâches - Do you want to close this dialog? - Voulez-vous fermer cette boîte de dialogue? + + + + + + + Do you want to close this dialog? + Voulez-vous fermer cette boîte de dialogue? - - Edit revolution - Modifier la révolution + + Edit revolution + Modifier la révolution - - + + + Edit Groove + + + + Workbench - - Part Design - Conception de pièces + + Part Design + Conception de pièces - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts index 151e794b8..19074f789 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hr.ts @@ -1,460 +1,767 @@ - - + + CmdPartDesignChamfer - - Part - Tijelo + Part + Tijelo - Chamfer... - Zarubi... + Chamfer... + Zarubi... - Chamfer the selected edges of a shape - Zarubi odabrane rubove, povrÅ¡ine ili tijela + + PartDesign + Oblikovanje tijela - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Zarubi odabrane rubove, povrÅ¡ine ili tijela + + + CmdPartDesignFillet - PartDesign - Oblikovanje tijela + + PartDesign + Oblikovanje tijela - Fillet - Utisni + + Fillet + Utisni - Make a fillet on an edge, face or body - Zaobli rub, povrÅ¡inu ili tijelo + + Make a fillet on an edge, face or body + Zaobli rub, povrÅ¡inu ili tijelo - - + + + CmdPartDesignGroove + + + PartDesign + Oblikovanje tijela + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Oblikovanje tijela + + PartDesign + Oblikovanje tijela - Pad - IzvuÄeni oblik + + Pad + IzvuÄeni oblik - Pad a selected sketch - Izvuci odabranu skicu + + Pad a selected sketch + Izvuci odabranu skicu - - + + CmdPartDesignPocket - PartDesign - Oblikovanje tijela + + PartDesign + Oblikovanje tijela - Pocket - Džep + + Pocket + Džep - create a pocket with the selected sketch - stvoriti džep s odabranom skicom + + create a pocket with the selected sketch + stvoriti džep s odabranom skicom - - + + CmdPartDesignRevolution - PartDesign - Oblikovanje tijela + + PartDesign + Oblikovanje tijela - Revolution - Obrtaj + + Revolution + Obrtaj - Revolve a selected sketch - Kreiraj tijelo obrtanjem skice + + Revolve a selected sketch + Kreiraj tijelo obrtanjem skice - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Alati plohe + + Face tools + Alati plohe - Sketch tools - Alati skice + + Sketch tools + Alati skice - Create Geometry - Napravi geometriju + + Create Geometry + Napravi geometriju - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Rubove za zarubljivanje + Edges to chamfer + Rubove za zarubljivanje - Start distance - PoÄetna udaljenost + Start distance + PoÄetna udaljenost - End distance - Krajnja udaljenosti + End distance + Krajnja udaljenosti - Edge%1 - Rub%1 + Edge%1 + Rub%1 - Distance - Udaljenost + Distance + Udaljenost - No shape selected - Nema odabranog oblika + No shape selected + Nema odabranog oblika - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nije odabran vanljan oblik. Molimo odaberite valjan oblik u padajućem okviru. + Nije odabran vanljan oblik. Molimo odaberite valjan oblik u padajućem okviru. - No edge selected - Nema odabranih rubova + No edge selected + Nema odabranih rubova - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Nije odabran ni jedan rub. Molimo prvo odaberite jedan ili viÅ¡e rubova. + Nije odabran ni jedan rub. Molimo prvo odaberite jedan ili viÅ¡e rubova. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Zarubi stranice + Chamfer Edges + Zarubi stranice - Shape - Oblik + Shape + Oblik - Selected shape: - Odabrani oblik: + Selected shape: + Odabrani oblik: - No selection - Nema odabira + No selection + Nema odabira - Chamfer Parameter - Parametar zarubljenja + Chamfer Parameter + Parametar zarubljenja - All - Sve + All + Sve - None - Nijedan + None + Nijedan - Chamfer type: - Oluk tip: + Chamfer type: + Oluk tip: - Constant Distance - Konstantna Udaljenost + Constant Distance + Konstantna Udaljenost - Variable Distance - Promjenjiva udaljenost + Variable Distance + Promjenjiva udaljenost - Distance: - Udaljenost: + Distance: + Udaljenost: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Obrazac + + + + Size: + VeliÄina: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Obrazac + + Form + Obrazac - Radius: - Polumjer: + + Radius: + Polumjer: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Obrazac + + + + Axis: + Os: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Kut: + + + + Symmetric to plane + + + + + Reversed + Obrnuti + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Obrazac + + Form + Obrazac - Type: - Vrsta: + + Type: + Vrsta: - Dimension - Dimenzija + + Dimension + Dimenzija - Up to last - Do posljednjeg + + Up to last + Do posljednjeg - Up to first - Do prve + + Up to first + Do prve - Size: - VeliÄina: + + Size: + VeliÄina: - - TaskHoleParameters - TaskHoleParametri + + TaskHoleParameters + TaskHoleParametri - - + + PartDesignGui::TaskPadParameters - - Form - Obrazac + + Form + Obrazac - Type: - Vrsta: + + Type + - Dimension - Dimenzija + + Length + Length - Length: - Duljina: + + Symmetric to plane + - Mirrored extent - Mjera zrcaljenja + + 2nd length + - Reversed - Obrnuti + + + Face + - Display mode: - Prikaz: + Type: + Vrsta: - Plot mode: - NaÄin crtanja: + + + Dimension + Dimenzija - Point size: - VeliÄina toÄke: + Length: + Duljina: - Line width: - Å irina linije: + Mirrored extent + Mjera zrcaljenja - Transparency: - Prozirnost: + + Reversed + Obrnuti - TaskPadParameters - TaskPadParameters + Display mode: + Prikaz: - - Pad parameters - Parametri izvuÄenog oblika + Plot mode: + NaÄin crtanja: - - + + Point size: + VeliÄina toÄke: + + + Line width: + Å irina linije: + + + Transparency: + Prozirnost: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Parametri izvuÄenog oblika + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Obrazac + + Form + Obrazac - Spacing1: - Razmak1: + + Spacing1: + Razmak1: - Number1: - Broj1: + + Number1: + Broj1: - Second extend - Drugi kraj + + Second extend + Drugi kraj - Spacing2: - Razmak2: + + Spacing2: + Razmak2: - Number2: - Broj2: + + Number2: + Broj2: - - TaskPatternRectangularParameters - TaskPatternRectangularParametri + + TaskPatternRectangularParameters + TaskPatternRectangularParametri - - + + PartDesignGui::TaskPocketParameters - - Form - Obrazac + + Form + Obrazac - Type: - Vrsta: + Type: + Vrsta: - Dimension - Dimenzija + + Type + - Length - Length + + + Dimension + Dimenzija - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Obrazac + + Form + Obrazac - Axis: - Os: + + Axis: + Os: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Kut: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Obrnuti - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Kut: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - PogreÅ¡an odabir + + + + + + + + + + + + + + + + + + + Wrong selection + PogreÅ¡an odabir - Select a sketch or 2D object. - Odaberite skicu ili 2D objekt. + + + + + Select a sketch or 2D object. + Odaberite skicu ili 2D objekt. - The shape of the selected object is empty. - Oblik odabranog objekta je prazan. + + + + + The shape of the selected object is empty. + Oblik odabranog objekta je prazan. - The shape of the selected object is not a wire. - Oblik odabranog objekta nije žica. + + + + + The shape of the selected object is not a wire. + Oblik odabranog objekta nije žica. - Select an edge, face or body. Only one body is allowed. - Odaberite rub, plohu ili tijelo. Samo jedno tijelo je dozvoljeno. + + + Select an edge, face or body. Only one body is allowed. + Odaberite rub, plohu ili tijelo. Samo jedno tijelo je dozvoljeno. - Wrong object type - PogreÅ¡an tip objekta + + + Wrong object type + PogreÅ¡an tip objekta - Fillet works only on parts - Rubove možete zaobliti samo na tijelima + + Fillet works only on parts + Rubove možete zaobliti samo na tijelima - No Support - Bez podrÅ¡ke + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Bez podrÅ¡ke + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Skica mora imati podrÅ¡ku za udubljenje. Napravite skicu na povrÅ¡ini. + Skica mora imati podrÅ¡ku za udubljenje. Napravite skicu na povrÅ¡ini. - - Edit pad - Uredi izvuÄeni oblik + + Edit pad + Uredi izvuÄeni oblik - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - Dijalog je već otvoren u ploÄi zadataka + + + + + + + A dialog is already open in the task panel + Dijalog je već otvoren u ploÄi zadataka - Do you want to close this dialog? - Želite li zatvoriti ovaj dijalog? + + + + + + + Do you want to close this dialog? + Želite li zatvoriti ovaj dijalog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Oblikovanje tijela + + Part Design + Oblikovanje tijela - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts index c4a31ee34..334d7f02f 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_hu.ts @@ -1,461 +1,768 @@ - - + + CmdPartDesignChamfer - - Part - Rész + Part + Rész - Chamfer... - Letörés ... + Chamfer... + Letörés ... - Chamfer the selected edges of a shape - Az alakzat kijelölt éleinek letörése + + PartDesign + Alkatrész tervezés - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Az alakzat kijelölt éleinek letörése + + + CmdPartDesignFillet - PartDesign - Alkatrész tervezés + + PartDesign + Alkatrész tervezés - Fillet - Lekerekítés + + Fillet + Lekerekítés - Make a fillet on an edge, face or body - Létrehoz egy lekerekítést az élen, felületen vagy testen + + Make a fillet on an edge, face or body + Létrehoz egy lekerekítést az élen, felületen vagy testen - - + + + CmdPartDesignGroove + + + PartDesign + Alkatrész tervezés + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Alkatrész tervezés + + PartDesign + Alkatrész tervezés - Pad - Blokk + + Pad + Blokk - Pad a selected sketch - Blokkba a kiválasztott vázlatot + + Pad a selected sketch + Blokkba a kiválasztott vázlatot - - + + CmdPartDesignPocket - PartDesign - Alkatrész tervezés + + PartDesign + Alkatrész tervezés - Pocket - Zseb + + Pocket + Zseb - create a pocket with the selected sketch - Hozzon létre egy zsebet a kiválasztott vázlattal + + create a pocket with the selected sketch + Hozzon létre egy zsebet a kiválasztott vázlattal - - + + CmdPartDesignRevolution - PartDesign - Alkatrész tervezés + + PartDesign + Alkatrész tervezés - Revolution - Forradalom + + Revolution + Forradalom - Revolve a selected sketch - Esztergáld a kiválasztott vázlatot + + Revolve a selected sketch + Esztergáld a kiválasztott vázlatot - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Felület eszközök + + Face tools + Felület eszközök - Sketch tools - Vázlat eszközök + + Sketch tools + Vázlat eszközök - Create Geometry - Geometria létrehozása + + Create Geometry + Geometria létrehozása - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Élek letörése + Edges to chamfer + Élek letörése - Start distance - Eleje távolság + Start distance + Eleje távolság - End distance - Vége távolsága + End distance + Vége távolsága - Edge%1 - Él %1 + Edge%1 + Él %1 - Distance - Távolság + Distance + Távolság - No shape selected - Nincs alakzat kijelölve + No shape selected + Nincs alakzat kijelölve - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nem érvényes alakzat van kiválasztva. + Nem érvényes alakzat van kiválasztva. Kérjük, elÅ‘ször a legördülÅ‘ listából válasszon egy érvényes alakzatot. - No edge selected - Nincs kijelölve él + No edge selected + Nincs kijelölve él - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - A letöréshez nem lett él létezés ellenÅ‘rzés végezve. EllenÅ‘rizze elÅ‘ször egy vagy több él meglétét. + A letöréshez nem lett él létezés ellenÅ‘rzés végezve. EllenÅ‘rizze elÅ‘ször egy vagy több él meglétét. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Élek letörése + Chamfer Edges + Élek letörése - Shape - Alakzat + Shape + Alakzat - Selected shape: - Kijelölt alakzat: + Selected shape: + Kijelölt alakzat: - No selection - Nincs kijelölés + No selection + Nincs kijelölés - Chamfer Parameter - Letörési Paraméter + Chamfer Parameter + Letörési Paraméter - All - Mind + All + Mind - None - Egyik sem + None + Egyik sem - Chamfer type: - Letörés típusa: + Chamfer type: + Letörés típusa: - Constant Distance - Ãllandó távolság + Constant Distance + Ãllandó távolság - Variable Distance - Változó távolság + Variable Distance + Változó távolság - Distance: - Távolság: + Distance: + Távolság: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Űrlap + + + + Size: + Méret: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Űrlap + + Form + Űrlap - Radius: - Sugár: + + Radius: + Sugár: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Űrlap + + + + Axis: + Tengely: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + DÅ‘lésszög: + + + + Symmetric to plane + + + + + Reversed + Fordított + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Űrlap + + Form + Űrlap - Type: - Típus: + + Type: + Típus: - Dimension - Dimenzió + + Dimension + Dimenzió - Up to last - ElÅ‘zÅ‘ig + + Up to last + ElÅ‘zÅ‘ig - Up to first - Fel a tetejére + + Up to first + Fel a tetejére - Size: - Méret: + + Size: + Méret: - - TaskHoleParameters - TaskHoleParaméterek + + TaskHoleParameters + TaskHoleParaméterek - - + + PartDesignGui::TaskPadParameters - - Form - Űrlap + + Form + Űrlap - Type: - Típus: + + Type + - Dimension - Dimenzió + + Length + Length - Length: - Hossz: + + Symmetric to plane + - Mirrored extent - Tükrözött mértékek + + 2nd length + - Reversed - Fordított + + + Face + - Display mode: - Megjelenítési mód: + Type: + Típus: - Plot mode: - Ãbrázolási mód: + + + Dimension + Dimenzió - Point size: - Pontméret: + Length: + Hossz: - Line width: - Vonalvastagság: + Mirrored extent + Tükrözött mértékek - Transparency: - Ãtlátszóság: + + Reversed + Fordított - TaskPadParameters - FeladatBlokkParaméter + Display mode: + Megjelenítési mód: - - Pad parameters - Pad paraméterek + Plot mode: + Ãbrázolási mód: - - + + Point size: + Pontméret: + + + Line width: + Vonalvastagság: + + + Transparency: + Ãtlátszóság: + + + TaskPadParameters + FeladatBlokkParaméter + + + + Pad parameters + Pad paraméterek + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Űrlap + + Form + Űrlap - Spacing1: - Hehyköz1: + + Spacing1: + Hehyköz1: - Number1: - Szám1: + + Number1: + Szám1: - Second extend - Második értékek + + Second extend + Második értékek - Spacing2: - Szóköz2: + + Spacing2: + Szóköz2: - Number2: - Szám2: + + Number2: + Szám2: - - TaskPatternRectangularParameters - TaskPatternRectangularParaméterek + + TaskPatternRectangularParameters + TaskPatternRectangularParaméterek - - + + PartDesignGui::TaskPocketParameters - - Form - Űrlap + + Form + Űrlap - Type: - Típus: + Type: + Típus: - Dimension - Dimenzió + + Type + - Length - Length + + + Dimension + Dimenzió - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Űrlap + + Form + Űrlap - Axis: - Tengely: + + Axis: + Tengely: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - DÅ‘lésszög: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Fordított - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + DÅ‘lésszög: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Rossz kiválasztás + + + + + + + + + + + + + + + + + + + Wrong selection + Rossz kiválasztás - Select a sketch or 2D object. - Vázlat vagy 2D kijelölése. + + + + + Select a sketch or 2D object. + Vázlat vagy 2D kijelölése. - The shape of the selected object is empty. - Az alakzat, a kijelölt objektumon üres. + + + + + The shape of the selected object is empty. + Az alakzat, a kijelölt objektumon üres. - The shape of the selected object is not a wire. - Az alakzat, a kijelölt objektumon nem vonal. + + + + + The shape of the selected object is not a wire. + Az alakzat, a kijelölt objektumon nem vonal. - Select an edge, face or body. Only one body is allowed. - Egy él, felület vagy test kiválasztása. Csak egy test megengedett. + + + Select an edge, face or body. Only one body is allowed. + Egy él, felület vagy test kiválasztása. Csak egy test megengedett. - Wrong object type - Hibás objektumtípus + + + Wrong object type + Hibás objektumtípus - Fillet works only on parts - Lekerekítés csak az alkatrészeken működik + + Fillet works only on parts + Lekerekítés csak az alkatrészeken működik - No Support - Nem támogatott + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Nem támogatott + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - A vázlatnak támogatnia kell a zseb funkciót. Hozza létre a vázlatot a felületen. + A vázlatnak támogatnia kell a zseb funkciót. Hozza létre a vázlatot a felületen. - - Edit pad - Szerkesztés pad + + Edit pad + Szerkesztés pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - Egy párbeszédablak már nyitva van a feladat panelen + + + + + + + A dialog is already open in the task panel + Egy párbeszédablak már nyitva van a feladat panelen - Do you want to close this dialog? - Biztos be szeretné zárni a párbeszédpanelt? + + + + + + + Do you want to close this dialog? + Biztos be szeretné zárni a párbeszédpanelt? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Alkatrész tervezés + + Part Design + Alkatrész tervezés - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts index 63f9959a0..b35e3d0d6 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_it.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - Parte + Part + Parte - Chamfer... - Smusso... + Chamfer... + Smusso... - Chamfer the selected edges of a shape - Smussa gli spigoli selezionati di una forma + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Smussa gli spigoli selezionati di una forma + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - Raccordo + + Fillet + Raccordo - Make a fillet on an edge, face or body - Crea un raccordo su uno spigolo, una faccia o un corpo + + Make a fillet on an edge, face or body + Crea un raccordo su uno spigolo, una faccia o un corpo - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - Estrusione + + Pad + Estrusione - Pad a selected sketch - Estrude uno schizzo selezionato + + Pad a selected sketch + Estrude uno schizzo selezionato - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - Tasca + + Pocket + Tasca - create a pocket with the selected sketch - Crea una tasca usando lo sketch selezionato + + create a pocket with the selected sketch + Crea una tasca usando lo sketch selezionato - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Rivoluzione + + Revolution + Rivoluzione - Revolve a selected sketch - Crea un solido di rivoluzione da uno sketch selezionato + + Revolve a selected sketch + Crea un solido di rivoluzione da uno sketch selezionato - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Strumenti Faccia + + Face tools + Strumenti Faccia - Sketch tools - Strumenti Sketch + + Sketch tools + Strumenti Sketch - Create Geometry - Crea Geometria + + Create Geometry + Crea Geometria - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Spigoli da smussare + Edges to chamfer + Spigoli da smussare - Start distance - Distanza iniziale + Start distance + Distanza iniziale - End distance - Distanza finale + End distance + Distanza finale - Edge%1 - Spigolo %1 + Edge%1 + Spigolo %1 - Distance - Distanza + Distance + Distanza - No shape selected - Nessuna forma selezionata + No shape selected + Nessuna forma selezionata - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nessuna forma valida è stata selezionata. + Nessuna forma valida è stata selezionata. Seleziona prima una forma valida dal menù a tendina. - No edge selected - Nessuno spigolo selezionato + No edge selected + Nessuno spigolo selezionato - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Nessuna entità spigolo da smussare è stata selezionata + Nessuna entità spigolo da smussare è stata selezionata Selezionare prima una o più entità spigolo. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Smussa spigoli + Chamfer Edges + Smussa spigoli - Shape - Forma + Shape + Forma - Selected shape: - Forma selezionata: + Selected shape: + Forma selezionata: - No selection - Nessuna selezione + No selection + Nessuna selezione - Chamfer Parameter - Parametri di smusso + Chamfer Parameter + Parametri di smusso - All - Tutti + All + Tutti - None - Nessuno + None + Nessuno - Chamfer type: - Tipo di smusso: + Chamfer type: + Tipo di smusso: - Constant Distance - Distanza costante + Constant Distance + Distanza costante - Variable Distance - Distanza variabile + Variable Distance + Distanza variabile - Distance: - Distanza: + Distance: + Distanza: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Modulo + + + + Size: + Dimensione: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Modulo + + Form + Modulo - Radius: - Raggio: + + Radius: + Raggio: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Modulo + + + + Axis: + Asse: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Angolo: + + + + Symmetric to plane + + + + + Reversed + Invertito + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Modulo + + Form + Modulo - Type: - Tipo: + + Type: + Tipo: - Dimension - Quota + + Dimension + Quota - Up to last - Fino all'ultimo + + Up to last + Fino all'ultimo - Up to first - Fino al primo + + Up to first + Fino al primo - Size: - Dimensione: + + Size: + Dimensione: - - TaskHoleParameters - Parametri tasca + + TaskHoleParameters + Parametri tasca - - + + PartDesignGui::TaskPadParameters - - Form - Modulo + + Form + Modulo - Type: - Tipo: + + Type + - Dimension - Quota + + Length + Length - Length: - Lunghezza: + + Symmetric to plane + - Mirrored extent - Estensione specchiata + + 2nd length + - Reversed - Invertito + + + Face + - Display mode: - Modalità di visualizzazione: + Type: + Tipo: - Plot mode: - Modalità di stampa: + + + Dimension + Quota - Point size: - Dimensione punto: + Length: + Lunghezza: - Line width: - Spessore linea: + Mirrored extent + Estensione specchiata - Transparency: - Trasparenza: + + Reversed + Invertito - TaskPadParameters - Parametri Estrusione + Display mode: + Modalità di visualizzazione: - - Pad parameters - Parametri estrusione + Plot mode: + Modalità di stampa: - - + + Point size: + Dimensione punto: + + + Line width: + Spessore linea: + + + Transparency: + Trasparenza: + + + TaskPadParameters + Parametri Estrusione + + + + Pad parameters + Parametri estrusione + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Modulo + + Form + Modulo - Spacing1: - Spaziatura1: + + Spacing1: + Spaziatura1: - Number1: - Numero1: + + Number1: + Numero1: - Second extend - Seconda estensione + + Second extend + Seconda estensione - Spacing2: - Spaziatura2: + + Spacing2: + Spaziatura2: - Number2: - Numero2: + + Number2: + Numero2: - - TaskPatternRectangularParameters - Parametri Serie Rettangolare + + TaskPatternRectangularParameters + Parametri Serie Rettangolare - - + + PartDesignGui::TaskPocketParameters - - Form - Modulo + + Form + Modulo - Type: - Tipo: + Type: + Tipo: - Dimension - Quota + + Type + - Length - Length + + + Dimension + Quota - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Modulo + + Form + Modulo - Axis: - Asse: + + Axis: + Asse: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Angolo: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Invertito - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Angolo: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Selezione errata + + + + + + + + + + + + + + + + + + + Wrong selection + Selezione errata - Select a sketch or 2D object. - Selezionare uno sketch o un oggetto 2D. + + + + + Select a sketch or 2D object. + Selezionare uno sketch o un oggetto 2D. - The shape of the selected object is empty. - La forma dell'oggetto selezionato è vuota. + + + + + The shape of the selected object is empty. + La forma dell'oggetto selezionato è vuota. - The shape of the selected object is not a wire. - La forma dell'oggetto selezionato non è un filo. + + + + + The shape of the selected object is not a wire. + La forma dell'oggetto selezionato non è un filo. - Select an edge, face or body. Only one body is allowed. - Selezionare uno spigolo, una faccia o un corpo. È consentito un solo corpo. + + + Select an edge, face or body. Only one body is allowed. + Selezionare uno spigolo, una faccia o un corpo. È consentito un solo corpo. - Wrong object type - Tipo di oggetto errato + + + Wrong object type + Tipo di oggetto errato - Fillet works only on parts - Il raccordo funziona solo sulle parti + + Fillet works only on parts + Il raccordo funziona solo sulle parti - No Support - Nessun supporto + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Nessun supporto + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Lo sketch deve avere un supporto per la feature di tasca. + Lo sketch deve avere un supporto per la feature di tasca. Creare lo sketch su una faccia. - - Edit pad - Modifica estrusione + + Edit pad + Modifica estrusione - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - Una finestra di dialogo è già aperto nel pannello attività + + + + + + + A dialog is already open in the task panel + Una finestra di dialogo è già aperto nel pannello attività - Do you want to close this dialog? - Vuoi per chiudere questa finestra? + + + + + + + Do you want to close this dialog? + Vuoi per chiudere questa finestra? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Part Design + + Part Design + Part Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts index 6fa3ca8aa..c0b3869d4 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ja.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - éƒ¨å“ + Part + éƒ¨å“ - Chamfer... - é¢å–り... + Chamfer... + é¢å–り... - Chamfer the selected edges of a shape - Chamfer the selected edges of a shape + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Chamfer the selected edges of a shape + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - フィレット + + Fillet + フィレット - Make a fillet on an edge, face or body - Make a fillet on an edge, face or body + + Make a fillet on an edge, face or body + Make a fillet on an edge, face or body - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - Pad + + Pad + Pad - Pad a selected sketch - Pad a selected sketch + + Pad a selected sketch + Pad a selected sketch - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - Pocket + + Pocket + Pocket - create a pocket with the selected sketch - create a pocket with the selected sketch + + create a pocket with the selected sketch + create a pocket with the selected sketch - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Edges to chamfer + Edges to chamfer + Edges to chamfer - Start distance - Start distance + Start distance + Start distance - End distance - End distance + End distance + End distance - Edge%1 - Edge%1 + Edge%1 + Edge%1 - Distance - è·é›¢ + Distance + è·é›¢ - No shape selected - 図形ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ + No shape selected + 図形ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - No edge selected - エッジãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ + No edge selected + エッジãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“ - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Chamfer Edges + Chamfer Edges + Chamfer Edges - Shape - 図形 + Shape + 図形 - Selected shape: - Selected shape: + Selected shape: + Selected shape: - No selection - No selection + No selection + No selection - Chamfer Parameter - é¢å–りパラメータ + Chamfer Parameter + é¢å–りパラメータ - All - ã™ã¹ã¦ + All + ã™ã¹ã¦ - None - ãªã— + None + ãªã— - Chamfer type: - é¢å–りã®ç¨®é¡ž: + Chamfer type: + é¢å–りã®ç¨®é¡ž: - Constant Distance - Constant Distance + Constant Distance + Constant Distance - Variable Distance - å¯å¤‰è·é›¢ + Variable Distance + å¯å¤‰è·é›¢ - Distance: - è·é›¢: + Distance: + è·é›¢: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Form + + + + Size: + サイズ: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Form + + Form + Form - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Form + + + + Axis: + 軸: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + 角度: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Form + + Form + Form - Type: - Type: + + Type: + Type: - Dimension - 寸法 + + Dimension + 寸法 - Up to last - Up to last + + Up to last + Up to last - Up to first - Up to first + + Up to first + Up to first - Size: - サイズ: + + Size: + サイズ: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Form + + Form + Form - Type: - Type: + + Type + - Dimension - 寸法 + + Length + Length - Length: - Length: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - ディスプレイモード: + Type: + Type: - Plot mode: - プロットモード: + + + Dimension + 寸法 - Point size: - 点ã®å¤§ãã•: + Length: + Length: - Line width: - ç·šå¹…: + Mirrored extent + Mirrored extent - Transparency: - 逿˜Žåº¦: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + ディスプレイモード: - - Pad parameters - Pad parameters + Plot mode: + プロットモード: - - + + Point size: + 点ã®å¤§ãã•: + + + Line width: + ç·šå¹…: + + + Transparency: + 逿˜Žåº¦: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Form + + Form + Form - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Form + + Form + Form - Type: - Type: + Type: + Type: - Dimension - 寸法 + + Type + - Length - Length + + + Dimension + 寸法 - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Form + + Form + Form - Axis: - 軸: + + Axis: + 軸: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - 角度: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + 角度: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + + + + + + + + + + + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select a sketch or 2D object. - スケッãƒãƒ»2Dã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’é¸æŠž. + + + + + Select a sketch or 2D object. + スケッãƒãƒ»2Dã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’é¸æŠž. - The shape of the selected object is empty. - The shape of the selected object is empty. + + + + + The shape of the selected object is empty. + The shape of the selected object is empty. - The shape of the selected object is not a wire. - The shape of the selected object is not a wire. + + + + + The shape of the selected object is not a wire. + The shape of the selected object is not a wire. - Select an edge, face or body. Only one body is allowed. - Select an edge, face or body. Only one body is allowed. + + + Select an edge, face or body. Only one body is allowed. + Select an edge, face or body. Only one body is allowed. - Wrong object type - Wrong object type + + + Wrong object type + Wrong object type - Fillet works only on parts - Fillet works only on parts + + Fillet works only on parts + Fillet works only on parts - No Support - No Support + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + No Support + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - The sketch has to have a support for the pocket feature. + The sketch has to have a support for the pocket feature. Create the sketch on a face. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Part Design + + Part Design + Part Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts index 9623175da..8776ea015 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_nl.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - Onderdeel + Part + Onderdeel - Chamfer... - Afschuining ... + Chamfer... + Afschuining ... - Chamfer the selected edges of a shape - Afschuining van de geselecteerde randen van een vorm + + PartDesign + Onderdeel-ontwerp - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Afschuining van de geselecteerde randen van een vorm + + + CmdPartDesignFillet - PartDesign - Onderdeel-ontwerp + + PartDesign + Onderdeel-ontwerp - Fillet - Afronding + + Fillet + Afronding - Make a fillet on an edge, face or body - Maak een filet op een rand, vlak of lichaam + + Make a fillet on an edge, face or body + Maak een filet op een rand, vlak of lichaam - - + + + CmdPartDesignGroove + + + PartDesign + Onderdeel-ontwerp + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Onderdeel-ontwerp + + PartDesign + Onderdeel-ontwerp - Pad - Pad + + Pad + Pad - Pad a selected sketch - Pad a selected sketch + + Pad a selected sketch + Pad a selected sketch - - + + CmdPartDesignPocket - PartDesign - Onderdeel-ontwerp + + PartDesign + Onderdeel-ontwerp - Pocket - Uitsparing + + Pocket + Uitsparing - create a pocket with the selected sketch - Creëer een uitspring met de geselecteerde schets + + create a pocket with the selected sketch + Creëer een uitspring met de geselecteerde schets - - + + CmdPartDesignRevolution - PartDesign - Onderdeel-ontwerp + + PartDesign + Onderdeel-ontwerp - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Randen om af te schuinen + Edges to chamfer + Randen om af te schuinen - Start distance - Start op afstand + Start distance + Start op afstand - End distance - Eindafstand + End distance + Eindafstand - Edge%1 - Rand%1 + Edge%1 + Rand%1 - Distance - Afstand + Distance + Afstand - No shape selected - Geen vorm geselecteerd + No shape selected + Geen vorm geselecteerd - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Geen geldige vorm geselecteerd. + Geen geldige vorm geselecteerd. Selecteer eerst een geldige vorm in het uitklap-scherm. - No edge selected - Geen rand geselecteerd + No edge selected + Geen rand geselecteerd - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Geen rand is geselecteerd om af te ronden. + Geen rand is geselecteerd om af te ronden. Gelieve eerst één of meerdere randen te selecteren. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Afschuinen Randen + Chamfer Edges + Afschuinen Randen - Shape - Vorm + Shape + Vorm - Selected shape: - Geselecteerde vorm: + Selected shape: + Geselecteerde vorm: - No selection - Geen selectie + No selection + Geen selectie - Chamfer Parameter - Afschuin-parameter + Chamfer Parameter + Afschuin-parameter - All - Alle + All + Alle - None - Geen + None + Geen - Chamfer type: - Afschuin type: + Chamfer type: + Afschuin type: - Constant Distance - Constante afstand + Constant Distance + Constante afstand - Variable Distance - Variabele afstand + Variable Distance + Variabele afstand - Distance: - Afstand: + Distance: + Afstand: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Vorm + + + + Size: + Grootte: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Vorm + + Form + Vorm - Radius: - Straal: + + Radius: + Straal: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Vorm + + + + Axis: + Assen: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Hoek: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Vorm + + Form + Vorm - Type: - Type: + + Type: + Type: - Dimension - Afmeting + + Dimension + Afmeting - Up to last - Naar de laatste + + Up to last + Naar de laatste - Up to first - Up to first + + Up to first + Up to first - Size: - Grootte: + + Size: + Grootte: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Vorm + + Form + Vorm - Type: - Type: + + Type + - Dimension - Afmeting + + Length + Length - Length: - Lengte: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Weergavemodus: + Type: + Type: - Plot mode: - Plot modus: + + + Dimension + Afmeting - Point size: - Puntgrootte: + Length: + Lengte: - Line width: - Lijndikte: + Mirrored extent + Mirrored extent - Transparency: - Transparantie: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Weergavemodus: - - Pad parameters - Pad parameters + Plot mode: + Plot modus: - - + + Point size: + Puntgrootte: + + + Line width: + Lijndikte: + + + Transparency: + Transparantie: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Vorm + + Form + Vorm - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Vorm + + Form + Vorm - Type: - Type: + Type: + Type: - Dimension - Afmeting + + Type + - Length - Length + + + Dimension + Afmeting - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Vorm + + Form + Vorm - Axis: - Assen: + + Axis: + Assen: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Hoek: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Hoek: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Verkeerde selectie + + + + + + + + + + + + + + + + + + + Wrong selection + Verkeerde selectie - Select a sketch or 2D object. - Selecteer een schets of 2D-object. + + + + + Select a sketch or 2D object. + Selecteer een schets of 2D-object. - The shape of the selected object is empty. - De vorm van het geselecteerde object is leeg. + + + + + The shape of the selected object is empty. + De vorm van het geselecteerde object is leeg. - The shape of the selected object is not a wire. - De vorm van het geselecteerde object is geen draad. + + + + + The shape of the selected object is not a wire. + De vorm van het geselecteerde object is geen draad. - Select an edge, face or body. Only one body is allowed. - Selecteer een rand, vlak of lichaam. Slechts één lichaam is toegestaan. + + + Select an edge, face or body. Only one body is allowed. + Selecteer een rand, vlak of lichaam. Slechts één lichaam is toegestaan. - Wrong object type - Verkeerde objecttype + + + Wrong object type + Verkeerde objecttype - Fillet works only on parts - Afrondingen werken alleen op onderdelen + + Fillet works only on parts + Afrondingen werken alleen op onderdelen - No Support - Geen ondersteuning + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Geen ondersteuning + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - De schets heeft een ondersteuning voor de uitsparingsfunctie nodig. + De schets heeft een ondersteuning voor de uitsparingsfunctie nodig. Creëer de schets op een vlak. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Onderdelen ontwerp + + Part Design + Onderdelen ontwerp - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_no.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_no.ts index 64c8f7b0d..165088f41 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_no.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_no.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - Komponent + Part + Komponent - Chamfer... - Fas... + Chamfer... + Fas... - Chamfer the selected edges of a shape - Faser valgte kanter pÃ¥ en figur + + PartDesign + Komponentdesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Faser valgte kanter pÃ¥ en figur + + + CmdPartDesignFillet - PartDesign - Komponentdesign + + PartDesign + Komponentdesign - Fillet - Avrunding + + Fillet + Avrunding - Make a fillet on an edge, face or body - Lag avrunding pÃ¥ en kant, flate eller komponent + + Make a fillet on an edge, face or body + Lag avrunding pÃ¥ en kant, flate eller komponent - - + + + CmdPartDesignGroove + + + PartDesign + Komponentdesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Komponentdesign + + PartDesign + Komponentdesign - Pad - Legg ut + + Pad + Legg ut - Pad a selected sketch - Legg ut en valgt skisse + + Pad a selected sketch + Legg ut en valgt skisse - - + + CmdPartDesignPocket - PartDesign - Komponentdesign + + PartDesign + Komponentdesign - Pocket - Lomme + + Pocket + Lomme - create a pocket with the selected sketch - lag en lomme med valgte skisse + + create a pocket with the selected sketch + lag en lomme med valgte skisse - - + + CmdPartDesignRevolution - PartDesign - Komponentdesign + + PartDesign + Komponentdesign - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Kanter som skal fases + Edges to chamfer + Kanter som skal fases - Start distance - Startavstand + Start distance + Startavstand - End distance - Sluttavstand + End distance + Sluttavstand - Edge%1 - Kant%1 + Edge%1 + Kant%1 - Distance - Avstand + Distance + Avstand - No shape selected - Ingen figur er merket + No shape selected + Ingen figur er merket - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ingen gyldig figur er valgt. + Ingen gyldig figur er valgt. Vennligst velg en gyldig figur i rullgardina først. - No edge selected - Ingen kant er valgt + No edge selected + Ingen kant er valgt - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Ingen kanter merket for fasing. + Ingen kanter merket for fasing. Merk en eller flere kanter først. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Fas kanter + Chamfer Edges + Fas kanter - Shape - Figur + Shape + Figur - Selected shape: - Valgt figur: + Selected shape: + Valgt figur: - No selection - Ingen valg + No selection + Ingen valg - Chamfer Parameter - Fasningsparameter + Chamfer Parameter + Fasningsparameter - All - Alle + All + Alle - None - Ingen + None + Ingen - Chamfer type: - Fastype: + Chamfer type: + Fastype: - Constant Distance - Konstant avstand + Constant Distance + Konstant avstand - Variable Distance - Variabel avstand + Variable Distance + Variabel avstand - Distance: - Avstand: + Distance: + Avstand: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Skjema + + + + Size: + Størrelse: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Skjema + + Form + Skjema - Radius: - Radius: + + Radius: + Radius: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Skjema + + + + Axis: + Akse: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Vinkel: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Skjema + + Form + Skjema - Type: - Type: + + Type: + Type: - Dimension - Dimensjon + + Dimension + Dimensjon - Up to last - Opp til siste + + Up to last + Opp til siste - Up to first - Up to first + + Up to first + Up to first - Size: - Størrelse: + + Size: + Størrelse: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Skjema + + Form + Skjema - Type: - Type: + + Type + - Dimension - Dimensjon + + Length + Length - Length: - Lengde: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Visningsmodus: + Type: + Type: - Plot mode: - Plottmodus: + + + Dimension + Dimensjon - Point size: - Punktstørrelse: + Length: + Lengde: - Line width: - Linjebredde: + Mirrored extent + Mirrored extent - Transparency: - Gjennomsiktighet: + + Reversed + Reversed - TaskPadParameters - Oppgavepadparametere + Display mode: + Visningsmodus: - - Pad parameters - Pad parameters + Plot mode: + Plottmodus: - - + + Point size: + Punktstørrelse: + + + Line width: + Linjebredde: + + + Transparency: + Gjennomsiktighet: + + + TaskPadParameters + Oppgavepadparametere + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Skjema + + Form + Skjema - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Skjema + + Form + Skjema - Type: - Type: + Type: + Type: - Dimension - Dimensjon + + Type + - Length - Length + + + Dimension + Dimensjon - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Skjema + + Form + Skjema - Axis: - Akse: + + Axis: + Akse: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Vinkel: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Vinkel: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Feil valg + + + + + + + + + + + + + + + + + + + Wrong selection + Feil valg - Select a sketch or 2D object. - Velg en skisse eller 2D-objekt. + + + + + Select a sketch or 2D object. + Velg en skisse eller 2D-objekt. - The shape of the selected object is empty. - Formen pÃ¥ det valgte objektet er tom. + + + + + The shape of the selected object is empty. + Formen pÃ¥ det valgte objektet er tom. - The shape of the selected object is not a wire. - Formen pÃ¥ det valgte objektet er ikke en trÃ¥d. + + + + + The shape of the selected object is not a wire. + Formen pÃ¥ det valgte objektet er ikke en trÃ¥d. - Select an edge, face or body. Only one body is allowed. - Velg en kant, flate eller komponent. Kun en komponent er tillatt. + + + Select an edge, face or body. Only one body is allowed. + Velg en kant, flate eller komponent. Kun en komponent er tillatt. - Wrong object type - Feil objekttype + + + Wrong object type + Feil objekttype - Fillet works only on parts - Avrunding fungerer bare pÃ¥ komponenter + + Fillet works only on parts + Avrunding fungerer bare pÃ¥ komponenter - No Support - Ingen støtte + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Ingen støtte + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Skisse mÃ¥ ha støtte for lommefunksjonen. + Skisse mÃ¥ ha støtte for lommefunksjonen. Opprett skisse pÃ¥ en flate. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Komponentdesign + + Part Design + Komponentdesign - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts index 9d7536c1a..eb19fde67 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pl.ts @@ -1,460 +1,767 @@ - - + + CmdPartDesignChamfer - - Part - Część + Part + Część - Chamfer... - Fazowanie ... + Chamfer... + Fazowanie ... - Chamfer the selected edges of a shape - Fazowanie zaznaczonych krawÄ™dzi ksztaÅ‚tu + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Fazowanie zaznaczonych krawÄ™dzi ksztaÅ‚tu + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - ZaokrÄ…glenie + + Fillet + ZaokrÄ…glenie - Make a fillet on an edge, face or body - Utwórz zaokrÄ…glenia na krawÄ™dzi, powierzchni lub bryle + + Make a fillet on an edge, face or body + Utwórz zaokrÄ…glenia na krawÄ™dzi, powierzchni lub bryle - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - WyciÄ…gniÄ™cie + + Pad + WyciÄ…gniÄ™cie - Pad a selected sketch - WyciÄ…gnij wybrany szkic + + Pad a selected sketch + WyciÄ…gnij wybrany szkic - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - KieszeÅ„ + + Pocket + KieszeÅ„ - create a pocket with the selected sketch - Utwórz kieszeÅ„ z wybranego szkicu + + create a pocket with the selected sketch + Utwórz kieszeÅ„ z wybranego szkicu - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Obrót + + Revolution + Obrót - Revolve a selected sketch - Obróć zaznaczony szkic + + Revolve a selected sketch + Obróć zaznaczony szkic - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - KrawÄ™dzie do fazowania + Edges to chamfer + KrawÄ™dzie do fazowania - Start distance - OdlegÅ‚ość poczÄ…tkowa + Start distance + OdlegÅ‚ość poczÄ…tkowa - End distance - OdlegÅ‚ość koÅ„cowa + End distance + OdlegÅ‚ość koÅ„cowa - Edge%1 - KrawÄ™dź%1 + Edge%1 + KrawÄ™dź%1 - Distance - OdlegÅ‚ość + Distance + OdlegÅ‚ość - No shape selected - Brak wybranego ksztaÅ‚tu + No shape selected + Brak wybranego ksztaÅ‚tu - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Wybrany ksztaÅ‚t nie jest prawidÅ‚owy. Wybierz prawidÅ‚owy ksztaÅ‚t + Wybrany ksztaÅ‚t nie jest prawidÅ‚owy. Wybierz prawidÅ‚owy ksztaÅ‚t - No edge selected - Nie wybrano krawÄ™dzi + No edge selected + Nie wybrano krawÄ™dzi - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Nie zaznaczono krawÄ™dzi do sfazowania. Zaznacz wczeÅ›niej jednÄ… lub wiÄ™cej krawÄ™dzi. + Nie zaznaczono krawÄ™dzi do sfazowania. Zaznacz wczeÅ›niej jednÄ… lub wiÄ™cej krawÄ™dzi. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Fazowanie krawÄ™dzi + Chamfer Edges + Fazowanie krawÄ™dzi - Shape - KsztaÅ‚t + Shape + KsztaÅ‚t - Selected shape: - Wybrany ksztaÅ‚t: + Selected shape: + Wybrany ksztaÅ‚t: - No selection - Brak zaznaczenia + No selection + Brak zaznaczenia - Chamfer Parameter - Parametr fazy + Chamfer Parameter + Parametr fazy - All - Wszystkie + All + Wszystkie - None - Brak + None + Brak - Chamfer type: - Typ fazowania: + Chamfer type: + Typ fazowania: - Constant Distance - StaÅ‚a odlegÅ‚ość + Constant Distance + StaÅ‚a odlegÅ‚ość - Variable Distance - Zmienna odlegÅ‚ość + Variable Distance + Zmienna odlegÅ‚ość - Distance: - OdlegÅ‚ość: + Distance: + OdlegÅ‚ość: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Formularz + + + + Size: + Rozmiar: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Formularz + + Form + Formularz - Radius: - PromieÅ„: + + Radius: + PromieÅ„: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Formularz + + + + Axis: + OÅ›: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + KÄ…t: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Formularz + + Form + Formularz - Type: - Typ: + + Type: + Typ: - Dimension - Wymiar + + Dimension + Wymiar - Up to last - Do ostatniego + + Up to last + Do ostatniego - Up to first - Up to first + + Up to first + Up to first - Size: - Rozmiar: + + Size: + Rozmiar: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Formularz + + Form + Formularz - Type: - Typ: + + Type + - Dimension - Wymiar + + Length + Length - Length: - DÅ‚ugość: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Tryb wyÅ›wietlania: + Type: + Typ: - Plot mode: - Tryb rysowania: + + + Dimension + Wymiar - Point size: - Rozmiar punktu: + Length: + DÅ‚ugość: - Line width: - Szerokość linii: + Mirrored extent + Mirrored extent - Transparency: - Przezroczystość: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Tryb wyÅ›wietlania: - - Pad parameters - Pad parameters + Plot mode: + Tryb rysowania: - - + + Point size: + Rozmiar punktu: + + + Line width: + Szerokość linii: + + + Transparency: + Przezroczystość: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Formularz + + Form + Formularz - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Numer1: + + Number1: + Numer1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Formularz + + Form + Formularz - Type: - Typ: + Type: + Typ: - Dimension - Wymiar + + Type + - Length - Length + + + Dimension + Wymiar - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Formularz + + Form + Formularz - Axis: - OÅ›: + + Axis: + OÅ›: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - KÄ…t: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + KÄ…t: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + + + + + + + + + + + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select a sketch or 2D object. - Wybierz szkic lub obiekt 2D. + + + + + Select a sketch or 2D object. + Wybierz szkic lub obiekt 2D. - The shape of the selected object is empty. - The shape of the selected object is empty. + + + + + The shape of the selected object is empty. + The shape of the selected object is empty. - The shape of the selected object is not a wire. - The shape of the selected object is not a wire. + + + + + The shape of the selected object is not a wire. + The shape of the selected object is not a wire. - Select an edge, face or body. Only one body is allowed. - Wybierz krawÄ™dź, powierzchniÄ™ lub bryłę. Tylko jedna bryłą jest dozwolona. + + + Select an edge, face or body. Only one body is allowed. + Wybierz krawÄ™dź, powierzchniÄ™ lub bryłę. Tylko jedna bryłą jest dozwolona. - Wrong object type - NiewÅ‚aÅ›ciwy typ obiektu + + + Wrong object type + NiewÅ‚aÅ›ciwy typ obiektu - Fillet works only on parts - ZaokrÄ…glenie dziaÅ‚a tylko na częściach + + Fillet works only on parts + ZaokrÄ…glenie dziaÅ‚a tylko na częściach - No Support - Brak obsÅ‚ugi + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Brak obsÅ‚ugi + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Szkic musi mieć bazÄ™ dla kieszeni, Utwórz szkic na powierzchni. + Szkic musi mieć bazÄ™ dla kieszeni, Utwórz szkic na powierzchni. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Part Design + + Part Design + Part Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt.ts index 2fc716be3..3de7d866c 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_pt.ts @@ -1,461 +1,768 @@ - - + + CmdPartDesignChamfer - - Part - Parte + Part + Parte - Chamfer... - Chanfro... + Chamfer... + Chanfro... - Chamfer the selected edges of a shape - Chanfra as arestas selecionadas de uma forma + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Chanfra as arestas selecionadas de uma forma + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - Filete + + Fillet + Filete - Make a fillet on an edge, face or body - Fazer um filete em uma aresta, face ou sólido + + Make a fillet on an edge, face or body + Fazer um filete em uma aresta, face ou sólido - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - Pad + + Pad + Pad - Pad a selected sketch - Preencher um esboço selecionado + + Pad a selected sketch + Preencher um esboço selecionado - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - Pocket + + Pocket + Pocket - create a pocket with the selected sketch - Cria um pocket (bolso) a partir do esboço selecionado + + create a pocket with the selected sketch + Cria um pocket (bolso) a partir do esboço selecionado - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Revolução + + Revolution + Revolução - Revolve a selected sketch - Revolver um esboço selecionado + + Revolve a selected sketch + Revolver um esboço selecionado - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Ferramentas de faces + + Face tools + Ferramentas de faces - Sketch tools - Ferramentas de esboço + + Sketch tools + Ferramentas de esboço - Create Geometry - Criar geometria + + Create Geometry + Criar geometria - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Arestas para chanfrar + Edges to chamfer + Arestas para chanfrar - Start distance - Distância inicial + Start distance + Distância inicial - End distance - Distância final + End distance + Distância final - Edge%1 - Aresta %1 + Edge%1 + Aresta %1 - Distance - Distância + Distance + Distância - No shape selected - Nenhuma forma foi selecionada + No shape selected + Nenhuma forma foi selecionada - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Nenhuma forma válida é selecionada Selecione primeiro uma forma válida na caixa drop-down. + Nenhuma forma válida é selecionada Selecione primeiro uma forma válida na caixa drop-down. - No edge selected - Nenhuma aresta selecionada + No edge selected + Nenhuma aresta selecionada - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Nenhuma aresta está marcada para fazer um chanfro. + Nenhuma aresta está marcada para fazer um chanfro. Selecione primeiro uma ou mais arestas. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Chanfrar arestas + Chamfer Edges + Chanfrar arestas - Shape - Forma + Shape + Forma - Selected shape: - Forma selecionada: + Selected shape: + Forma selecionada: - No selection - Nenhuma seleção + No selection + Nenhuma seleção - Chamfer Parameter - Parâmetro de chanfro + Chamfer Parameter + Parâmetro de chanfro - All - Todos + All + Todos - None - Nenhum + None + Nenhum - Chamfer type: - Tipo do chanfro: + Chamfer type: + Tipo do chanfro: - Constant Distance - Distância constante + Constant Distance + Distância constante - Variable Distance - Distância variável + Variable Distance + Distância variável - Distance: - Distância: + Distance: + Distância: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Forma + + + + Size: + Tamanho: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Erro de entrada + + Input error + Erro de entrada - - + + PartDesignGui::TaskFilletParameters - - Form - Forma + + Form + Forma - Radius: - Raio: + + Radius: + Raio: - - Fillet parameters - Parâmetros de fileto + + Fillet parameters + Parâmetros de fileto - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Forma + + + + Axis: + Eixo: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Ângulo: + + + + Symmetric to plane + + + + + Reversed + Invertido + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Forma + + Form + Forma - Type: - Tipo: + + Type: + Tipo: - Dimension - Dimensão + + Dimension + Dimensão - Up to last - Até o último + + Up to last + Até o último - Up to first - Até o primeiro + + Up to first + Até o primeiro - Size: - Tamanho: + + Size: + Tamanho: - - TaskHoleParameters - Parâmetros do TaskHole + + TaskHoleParameters + Parâmetros do TaskHole - - + + PartDesignGui::TaskPadParameters - - Form - Forma + + Form + Forma - Type: - Tipo: + + Type + - Dimension - Dimensão + + Length + Comprimento - Length: - Comprimento: + + Symmetric to plane + - Mirrored extent - Extensão espelhada + + 2nd length + - Reversed - Invertido + + + Face + - Display mode: - Modo de exibição: + Type: + Tipo: - Plot mode: - Modo de plotagem: + + + Dimension + Dimensão - Point size: - Tamanho de ponto: + Length: + Comprimento: - Line width: - Largura da linha: + Mirrored extent + Extensão espelhada - Transparency: - Transparência: + + Reversed + Invertido - TaskPadParameters - Parametros do TaskPad + Display mode: + Modo de exibição: - - Pad parameters - Parâmetros do Pad + Plot mode: + Modo de plotagem: - - + + Point size: + Tamanho de ponto: + + + Line width: + Largura da linha: + + + Transparency: + Transparência: + + + TaskPadParameters + Parametros do TaskPad + + + + Pad parameters + Parâmetros do Pad + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Forma + + Form + Forma - Spacing1: - Espaço1: + + Spacing1: + Espaço1: - Number1: - Número1: + + Number1: + Número1: - Second extend - Segunda extensão + + Second extend + Segunda extensão - Spacing2: - Espaço2: + + Spacing2: + Espaço2: - Number2: - Numero2: + + Number2: + Numero2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Forma + + Form + Forma - Type: - Tipo: + Type: + Tipo: - Dimension - Dimensão + + Type + - Length - Comprimento + + + Dimension + Dimensão - - Pocket parameters - Parâmetros do bolso + + + Face + - - + + + Length + Comprimento + + + + Pocket parameters + Parâmetros do bolso + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Forma + + Form + Forma - Axis: - Eixo: + + Axis: + Eixo: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Ângulo: + + Symmetric to plane + - - Revolution parameters - Parâmetros de revolução + + Reversed + Invertido - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Ângulo: + + + + Revolution parameters + Parâmetros de revolução + + + QObject - - Wrong selection - Seleção errada + + + + + + + + + + + + + + + + + + + Wrong selection + Seleção errada - Select a sketch or 2D object. - Selecione um desenho ou objeto 2D. + + + + + Select a sketch or 2D object. + Selecione um desenho ou objeto 2D. - The shape of the selected object is empty. - A forma do objeto selecionado está vazia. + + + + + The shape of the selected object is empty. + A forma do objeto selecionado está vazia. - The shape of the selected object is not a wire. - A forma do objeto selecionado não é um fio. + + + + + The shape of the selected object is not a wire. + A forma do objeto selecionado não é um fio. - Select an edge, face or body. Only one body is allowed. - Selecione uma aresta, face ou corpo. Apenas um corpo é permitido. + + + Select an edge, face or body. Only one body is allowed. + Selecione uma aresta, face ou corpo. Apenas um corpo é permitido. - Wrong object type - Tipo de objeto errado + + + Wrong object type + Tipo de objeto errado - Fillet works only on parts - Filete só funciona em partes + + Fillet works only on parts + Filete só funciona em partes - No Support - Sem suporte + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Sem suporte + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - O esboço tem que ter um suporte para fazer um Pocket. Crie o esboço em cima de uma face. + O esboço tem que ter um suporte para fazer um Pocket. Crie o esboço em cima de uma face. - - Edit pad - Editar pad + + Edit pad + Editar pad - - Edit pocket - Editar o bolso + + + + Edit pocket + Editar o bolso - A dialog is already open in the task panel - Uma caixa de diálogo já está aberta no painel de tarefas + + + + + + + A dialog is already open in the task panel + Uma caixa de diálogo já está aberta no painel de tarefas - Do you want to close this dialog? - Deseja fechar este diálogo? + + + + + + + Do you want to close this dialog? + Deseja fechar este diálogo? - - Edit revolution - Editar revolução + + Edit revolution + Editar revolução - - + + + Edit Groove + + + + Workbench - - Part Design - Part Design + + Part Design + Part Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts index 1557d71b2..99629b12d 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_ru.ts @@ -1,462 +1,769 @@ - - + + CmdPartDesignChamfer - - Part - Деталь + Part + Деталь - Chamfer... - ФаÑка... + Chamfer... + ФаÑка... - Chamfer the selected edges of a shape - Притупитьт фаÑкой выбранные ÐºÑ€Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ñ‹ + + PartDesign + PartDesign - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Притупитьт фаÑкой выбранные ÐºÑ€Ð°Ñ Ñ„Ð¸Ð³ÑƒÑ€Ñ‹ + + + CmdPartDesignFillet - PartDesign - PartDesign + + PartDesign + PartDesign - Fillet - Скругление + + Fillet + Скругление - Make a fillet on an edge, face or body - Сделать Ñкругление кромки, поверхноÑти или тела + + Make a fillet on an edge, face or body + Сделать Ñкругление кромки, поверхноÑти или тела - - + + + CmdPartDesignGroove + + + PartDesign + PartDesign + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - PartDesign + + PartDesign + PartDesign - Pad - Заполнитель + + Pad + Заполнитель - Pad a selected sketch - Заполнитель выбранного ÑÑкиза + + Pad a selected sketch + Заполнитель выбранного ÑÑкиза - - + + CmdPartDesignPocket - PartDesign - PartDesign + + PartDesign + PartDesign - Pocket - Документ + + Pocket + Документ - create a pocket with the selected sketch - Ñоздать документ Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ ÑÑкизом + + create a pocket with the selected sketch + Ñоздать документ Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ ÑÑкизом - - + + CmdPartDesignRevolution - PartDesign - PartDesign + + PartDesign + PartDesign - Revolution - Вращение + + Revolution + Вращение - Revolve a selected sketch - Вращать, выбранный ÑÑкиз + + Revolve a selected sketch + Вращать, выбранный ÑÑкиз - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - ИнÑтрументы Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ñ€Ð°Ð½ÐµÐ¹ + + Face tools + ИнÑтрументы Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ñ€Ð°Ð½ÐµÐ¹ - Sketch tools - ИнÑтрументы ÑÑкиза + + Sketch tools + ИнÑтрументы ÑÑкиза - Create Geometry - Создайте геометрию + + Create Geometry + Создайте геометрию - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - ÐšÑ€Ð°Ñ Ñреза + Edges to chamfer + ÐšÑ€Ð°Ñ Ñреза - Start distance - Ðачало раÑÑтоÑÐ½Ð¸Ñ + Start distance + Ðачало раÑÑтоÑÐ½Ð¸Ñ - End distance - Конец раÑÑтоÑÐ½Ð¸Ñ + End distance + Конец раÑÑтоÑÐ½Ð¸Ñ - Edge%1 - Край %1 + Edge%1 + Край %1 - Distance - РаÑÑтоÑние + Distance + РаÑÑтоÑние - No shape selected - Форма не выбрана + No shape selected + Форма не выбрана - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - ДопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° не выбрана. + ДопуÑÑ‚Ð¸Ð¼Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° не выбрана. ПожалуйÑта Ñначала выберите допуÑтимую форму в выпадающем ÑпиÑке. - No edge selected - Ребра не выбраны + No edge selected + Ребра не выбраны - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - ÐÐµÐ»ÑŒÐ·Ñ Ñгладить край обьекта. ПожалуйÑта, выберите ÐºÑ€Ð°Ñ Ð¾Ð±ÑŒÐµÐºÑ‚Ð°, один или более. + ÐÐµÐ»ÑŒÐ·Ñ Ñгладить край обьекта. ПожалуйÑта, выберите ÐºÑ€Ð°Ñ Ð¾Ð±ÑŒÐµÐºÑ‚Ð°, один или более. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Притупить ребра фаÑкой + Chamfer Edges + Притупить ребра фаÑкой - Shape - Форма + Shape + Форма - Selected shape: - Выбранные формы: + Selected shape: + Выбранные формы: - No selection - Ðет выбора + No selection + Ðет выбора - Chamfer Parameter - Параметры фаÑки + Chamfer Parameter + Параметры фаÑки - All - Ð’Ñе + All + Ð’Ñе - None - Ðичего + None + Ðичего - Chamfer type: - Тип фаÑки: + Chamfer type: + Тип фаÑки: - Constant Distance - ПоÑтоÑнное раÑÑтоÑние + Constant Distance + ПоÑтоÑнное раÑÑтоÑние - Variable Distance - Переменное раÑÑтоÑние + Variable Distance + Переменное раÑÑтоÑние - Distance: - РаÑÑтоÑние: + Distance: + РаÑÑтоÑние: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Форма + + + + Size: + Размер: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Форма + + Form + Форма - Radius: - РадиуÑ: + + Radius: + РадиуÑ: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Форма + + + + Axis: + ОÑи: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Угол: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Форма + + Form + Форма - Type: - Тип: + + Type: + Тип: - Dimension - Размер + + Dimension + Размер - Up to last - До поÑледнего + + Up to last + До поÑледнего - Up to first - До первого + + Up to first + До первого - Size: - Размер: + + Size: + Размер: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Форма + + Form + Форма - Type: - Тип: + + Type + - Dimension - Размер + + Length + Length - Length: - Длина: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Режим отображениÑ: + Type: + Тип: - Plot mode: - Режим вывода на печать: + + + Dimension + Размер - Point size: - Размер точки: + Length: + Длина: - Line width: - Толщина линии: + Mirrored extent + Mirrored extent - Transparency: - ПрозрачноÑть: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Режим отображениÑ: - - Pad parameters - Параметры панели + Plot mode: + Режим вывода на печать: - - + + Point size: + Размер точки: + + + Line width: + Толщина линии: + + + Transparency: + ПрозрачноÑть: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Параметры панели + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Форма + + Form + Форма - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Форма + + Form + Форма - Type: - Тип: + Type: + Тип: - Dimension - Размер + + Type + - Length - Length + + + Dimension + Размер - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Форма + + Form + Форма - Axis: - ОÑи: + + Axis: + ОÑи: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Угол: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Угол: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Ðеправильный выбор + + + + + + + + + + + + + + + + + + + Wrong selection + Ðеправильный выбор - Select a sketch or 2D object. - Выберите ÑÑкиз или 2D объект. + + + + + Select a sketch or 2D object. + Выберите ÑÑкиз или 2D объект. - The shape of the selected object is empty. - Форма выбранного объекта пуÑта. + + + + + The shape of the selected object is empty. + Форма выбранного объекта пуÑта. - The shape of the selected object is not a wire. - Форма выбранного объекта не проволока. + + + + + The shape of the selected object is not a wire. + Форма выбранного объекта не проволока. - Select an edge, face or body. Only one body is allowed. - Выберите ребро, поверхноÑть или тело. ДопуÑкаетÑÑ Ð²Ñ‹Ð±Ð¸Ñ€Ð°Ñ‚ÑŒ только одно тело. + + + Select an edge, face or body. Only one body is allowed. + Выберите ребро, поверхноÑть или тело. ДопуÑкаетÑÑ Ð²Ñ‹Ð±Ð¸Ñ€Ð°Ñ‚ÑŒ только одно тело. - Wrong object type - Ðеверный тип объекта + + + Wrong object type + Ðеверный тип объекта - Fillet works only on parts - Скругление работает только Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹ + + Fillet works only on parts + Скругление работает только Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹ - No Support - Ðе поддерживаетÑÑ + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Ðе поддерживаетÑÑ + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - ЭÑкиз должен иметь оÑнову Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ð¼Ð°Ð½Ð°. + ЭÑкиз должен иметь оÑнову Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ð¼Ð°Ð½Ð°. Создайте ÑÑкиз на лицевой Ñтороне тела. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - Диалог уже открыт в панели задач + + + + + + + A dialog is already open in the task panel + Диалог уже открыт в панели задач - Do you want to close this dialog? - Ð’Ñ‹ хотите закрыть Ñтот диалог? + + + + + + + Do you want to close this dialog? + Ð’Ñ‹ хотите закрыть Ñтот диалог? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Дизайн чаÑти + + Part Design + Дизайн чаÑти - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_se.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_se.ts index b6470b38b..3e1244c5f 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_se.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_se.ts @@ -1,462 +1,769 @@ - - + + CmdPartDesignChamfer - - Part - Del + Part + Del - Chamfer... - Avfasning... + Chamfer... + Avfasning... - Chamfer the selected edges of a shape - Fasa de markerade kanterna av en form + + PartDesign + Del design - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Fasa de markerade kanterna av en form + + + CmdPartDesignFillet - PartDesign - Del design + + PartDesign + Del design - Fillet - Avrundning + + Fillet + Avrundning - Make a fillet on an edge, face or body - Gör en avrundning pÃ¥ en kant, yta eller kropp + + Make a fillet on an edge, face or body + Gör en avrundning pÃ¥ en kant, yta eller kropp - - + + + CmdPartDesignGroove + + + PartDesign + Del design + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - Del design + + PartDesign + Del design - Pad - Solidifiera + + Pad + Solidifiera - Pad a selected sketch - Solidifiera en vald skiss + + Pad a selected sketch + Solidifiera en vald skiss - - + + CmdPartDesignPocket - PartDesign - Del design + + PartDesign + Del design - Pocket - Ficka + + Pocket + Ficka - create a pocket with the selected sketch - skapa en ficka med den valda skissen + + create a pocket with the selected sketch + skapa en ficka med den valda skissen - - + + CmdPartDesignRevolution - PartDesign - Del design + + PartDesign + Del design - Revolution - Varv + + Revolution + Varv - Revolve a selected sketch - Rotera en vald skiss + + Revolve a selected sketch + Rotera en vald skiss - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Ytverktyg + + Face tools + Ytverktyg - Sketch tools - Skissverktyg + + Sketch tools + Skissverktyg - Create Geometry - Skapa Geometri + + Create Geometry + Skapa Geometri - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Kanter att fasa + Edges to chamfer + Kanter att fasa - Start distance - StartavstÃ¥nd + Start distance + StartavstÃ¥nd - End distance - SlutavstÃ¥nd + End distance + SlutavstÃ¥nd - Edge%1 - Kant%1 + Edge%1 + Kant%1 - Distance - Distans + Distance + Distans - No shape selected - Ingen form som har valts + No shape selected + Ingen form som har valts - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ingen giltig form är markerad. + Ingen giltig form är markerad. Välj en giltig form i listrutan först. - No edge selected - Ingen kant vald + No edge selected + Ingen kant vald - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Ingen kant är vald för fasning + Ingen kant är vald för fasning Välj en eller fler kanter först. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Fasa Kanter + Chamfer Edges + Fasa Kanter - Shape - Form + Shape + Form - Selected shape: - Vald form: + Selected shape: + Vald form: - No selection - Inget val + No selection + Inget val - Chamfer Parameter - Fasnings Parameter + Chamfer Parameter + Fasnings Parameter - All - Alla + All + Alla - None - Ingen + None + Ingen - Chamfer type: - Fasningstyp: + Chamfer type: + Fasningstyp: - Constant Distance - Konstant avstÃ¥nd + Constant Distance + Konstant avstÃ¥nd - Variable Distance - Variabelt avstÃ¥nd + Variable Distance + Variabelt avstÃ¥nd - Distance: - Distans: + Distance: + Distans: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Form + + + + Size: + Storlek: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Form + + Form + Form - Radius: - Radie: + + Radius: + Radie: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Form + + + + Axis: + Axel: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Vinkel: + + + + Symmetric to plane + + + + + Reversed + Omvänd + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Form + + Form + Form - Type: - Typ: + + Type: + Typ: - Dimension - Dimension + + Dimension + Dimension - Up to last - Upp till sista + + Up to last + Upp till sista - Up to first - Fram till första + + Up to first + Fram till första - Size: - Storlek: + + Size: + Storlek: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Form + + Form + Form - Type: - Typ: + + Type + - Dimension - Dimension + + Length + Length - Length: - Längd: + + Symmetric to plane + - Mirrored extent - Speglad utsträckning + + 2nd length + - Reversed - Omvänd + + + Face + - Display mode: - Visningsläge: + Type: + Typ: - Plot mode: - Plottningsläge: + + + Dimension + Dimension - Point size: - Punktstorlek: + Length: + Längd: - Line width: - Linjebredd: + Mirrored extent + Speglad utsträckning - Transparency: - Transparens: + + Reversed + Omvänd - TaskPadParameters - Parametrar för uppgiften Solidifiera + Display mode: + Visningsläge: - - Pad parameters - Pad parametrar + Plot mode: + Plottningsläge: - - + + Point size: + Punktstorlek: + + + Line width: + Linjebredd: + + + Transparency: + Transparens: + + + TaskPadParameters + Parametrar för uppgiften Solidifiera + + + + Pad parameters + Pad parametrar + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Form + + Form + Form - Spacing1: - Mellanrum1: + + Spacing1: + Mellanrum1: - Number1: - Tal1: + + Number1: + Tal1: - Second extend - Andra förlängning + + Second extend + Andra förlängning - Spacing2: - Mellanrum2: + + Spacing2: + Mellanrum2: - Number2: - Nummer2: + + Number2: + Nummer2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Form + + Form + Form - Type: - Typ: + Type: + Typ: - Dimension - Dimension + + Type + - Length - Length + + + Dimension + Dimension - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Form + + Form + Form - Axis: - Axel: + + Axis: + Axel: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Vinkel: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Omvänd - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Vinkel: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Fel val + + + + + + + + + + + + + + + + + + + Wrong selection + Fel val - Select a sketch or 2D object. - Välj en skiss eller 2D-objekt. + + + + + Select a sketch or 2D object. + Välj en skiss eller 2D-objekt. - The shape of the selected object is empty. - Formen pÃ¥ det markerade objektet är tom. + + + + + The shape of the selected object is empty. + Formen pÃ¥ det markerade objektet är tom. - The shape of the selected object is not a wire. - Formen pÃ¥ det markerade objektet är inte en trÃ¥d. + + + + + The shape of the selected object is not a wire. + Formen pÃ¥ det markerade objektet är inte en trÃ¥d. - Select an edge, face or body. Only one body is allowed. - Välj en kant, yta eller kropp. Endast en kropp är tillÃ¥ten. + + + Select an edge, face or body. Only one body is allowed. + Välj en kant, yta eller kropp. Endast en kropp är tillÃ¥ten. - Wrong object type - Fel objekttyp + + + Wrong object type + Fel objekttyp - Fillet works only on parts - Avrundning fungerar endast pÃ¥ Delar + + Fillet works only on parts + Avrundning fungerar endast pÃ¥ Delar - No Support - Inget stöd + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Inget stöd + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - Skissen mÃ¥ste ha ett stöd för fickfunktionen. Skapa en skiss pÃ¥ en yta. + Skissen mÃ¥ste ha ett stöd för fickfunktionen. Skapa en skiss pÃ¥ en yta. - - Edit pad - Redigera pad + + Edit pad + Redigera pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - En dialogruta är redan öppen i uppgiftspanelen + + + + + + + A dialog is already open in the task panel + En dialogruta är redan öppen i uppgiftspanelen - Do you want to close this dialog? - Vill du stänga denna dialogruta? + + + + + + + Do you want to close this dialog? + Vill du stänga denna dialogruta? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Del Design + + Part Design + Del Design - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts index cc6c0b105..34045a0e6 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_uk.ts @@ -1,463 +1,770 @@ - - + + CmdPartDesignChamfer - - Part - ЧаÑтина + Part + ЧаÑтина - Chamfer... - Згладити... + Chamfer... + Згладити... - Chamfer the selected edges of a shape - Згладити обрані краї фігури + + PartDesign + ДизайнДеталі - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + Згладити обрані краї фігури + + + CmdPartDesignFillet - PartDesign - ДизайнДеталі + + PartDesign + ДизайнДеталі - Fillet - ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ + + Fillet + ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ - Make a fillet on an edge, face or body - Зробити Ð¾ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ ÐºÑ€Ð°ÑŽ, поверхні чи тіла + + Make a fillet on an edge, face or body + Зробити Ð¾ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ ÐºÑ€Ð°ÑŽ, поверхні чи тіла - - + + + CmdPartDesignGroove + + + PartDesign + ДизайнДеталі + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - ДизайнДеталі + + PartDesign + ДизайнДеталі - Pad - Pad + + Pad + Pad - Pad a selected sketch - Pad a selected sketch + + Pad a selected sketch + Pad a selected sketch - - + + CmdPartDesignPocket - PartDesign - ДизайнДеталі + + PartDesign + ДизайнДеталі - Pocket - Pocket + + Pocket + Pocket - create a pocket with the selected sketch - create a pocket with the selected sketch + + create a pocket with the selected sketch + create a pocket with the selected sketch - - + + CmdPartDesignRevolution - PartDesign - ДизайнДеталі + + PartDesign + ДизайнДеталі - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - Revolve a selected sketch + + Revolve a selected sketch + Revolve a selected sketch - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - Sketch tools + + Sketch tools + Sketch tools - Create Geometry - Create Geometry + + Create Geometry + Create Geometry - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - Краї фаÑки + Edges to chamfer + Краї фаÑки - Start distance - Початок відÑтані + Start distance + Початок відÑтані - End distance - Кінець відÑтані + End distance + Кінець відÑтані - Edge%1 - Край%1 + Edge%1 + Край%1 - Distance - ВідÑтань + Distance + ВідÑтань - No shape selected - Форму не обрано + No shape selected + Форму не обрано - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - Ðе обрано вірної форми. + Ðе обрано вірної форми. Будь лаÑка, оберіть вірну форму у виринаючому ÑпиÑку. - No edge selected - Край не обрано + No edge selected + Край не обрано - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - Ðе обрано край Ð´Ð»Ñ Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ. + Ðе обрано край Ð´Ð»Ñ Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ. Будь лаÑка, Ñпочатку оберіть один, або більше країв. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - Згладити краї + Chamfer Edges + Згладити краї - Shape - Форма + Shape + Форма - Selected shape: - Обрана форма: + Selected shape: + Обрана форма: - No selection - Ðічого не вибрано + No selection + Ðічого не вибрано - Chamfer Parameter - Параметри Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ + Chamfer Parameter + Параметри Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ - All - Ð’Ñе + All + Ð’Ñе - None - Ðічого + None + Ðічого - Chamfer type: - Тип згладжуваннÑ: + Chamfer type: + Тип згладжуваннÑ: - Constant Distance - ПоÑтійна відÑтань + Constant Distance + ПоÑтійна відÑтань - Variable Distance - Змінна відÑтань + Variable Distance + Змінна відÑтань - Distance: - ВідÑтань: + Distance: + ВідÑтань: - - + + + PartDesignGui::TaskChamferParameters + + + Form + Форма + + + + Size: + Розмір: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - Форма + + Form + Форма - Radius: - РадіуÑ: + + Radius: + РадіуÑ: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + Форма + + + + Axis: + Ð’Ñ–ÑÑŒ: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + Кут: + + + + Symmetric to plane + + + + + Reversed + Reversed + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - Форма + + Form + Форма - Type: - Тип: + + Type: + Тип: - Dimension - РозмірніÑть + + Dimension + РозмірніÑть - Up to last - До оÑтаннього + + Up to last + До оÑтаннього - Up to first - Up to first + + Up to first + Up to first - Size: - Розмір: + + Size: + Розмір: - - TaskHoleParameters - TaskHoleParameters + + TaskHoleParameters + TaskHoleParameters - - + + PartDesignGui::TaskPadParameters - - Form - Форма + + Form + Форма - Type: - Тип: + + Type + - Dimension - РозмірніÑть + + Length + Length - Length: - Довжина: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - Reversed + + + Face + - Display mode: - Режим показу: + Type: + Тип: - Plot mode: - Plot mode: + + + Dimension + РозмірніÑть - Point size: - Розмір точки: + Length: + Довжина: - Line width: - Товщина лінії: + Mirrored extent + Mirrored extent - Transparency: - ПрозоріÑть: + + Reversed + Reversed - TaskPadParameters - TaskPadParameters + Display mode: + Режим показу: - - Pad parameters - Pad parameters + Plot mode: + Plot mode: - - + + Point size: + Розмір точки: + + + Line width: + Товщина лінії: + + + Transparency: + ПрозоріÑть: + + + TaskPadParameters + TaskPadParameters + + + + Pad parameters + Pad parameters + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - Форма + + Form + Форма - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - Number1: + + Number1: + Number1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - Number2: + + Number2: + Number2: - - TaskPatternRectangularParameters - TaskPatternRectangularParameters + + TaskPatternRectangularParameters + TaskPatternRectangularParameters - - + + PartDesignGui::TaskPocketParameters - - Form - Форма + + Form + Форма - Type: - Тип: + Type: + Тип: - Dimension - РозмірніÑть + + Type + - Length - Length + + + Dimension + РозмірніÑть - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - Форма + + Form + Форма - Axis: - Ð’Ñ–ÑÑŒ: + + Axis: + Ð’Ñ–ÑÑŒ: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - Кут: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + Reversed - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + Кут: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - Ðевірний вибір + + + + + + + + + + + + + + + + + + + Wrong selection + Ðевірний вибір - Select a sketch or 2D object. - Оберіть еÑкіз чи 2D об'єкт. + + + + + Select a sketch or 2D object. + Оберіть еÑкіз чи 2D об'єкт. - The shape of the selected object is empty. - Форма виділеного об'єкта пуÑта. + + + + + The shape of the selected object is empty. + Форма виділеного об'єкта пуÑта. - The shape of the selected object is not a wire. - Форма вибраного об'єкта не дріт. + + + + + The shape of the selected object is not a wire. + Форма вибраного об'єкта не дріт. - Select an edge, face or body. Only one body is allowed. - Виберіть край, поверхню чи тіло. ДопуÑкаєтьÑÑ Ð²Ð¸Ð±Ñ–Ñ€ лише одного тіла. + + + Select an edge, face or body. Only one body is allowed. + Виберіть край, поверхню чи тіло. ДопуÑкаєтьÑÑ Ð²Ð¸Ð±Ñ–Ñ€ лише одного тіла. - Wrong object type - Ðевірний тип об'єкта + + + Wrong object type + Ðевірний тип об'єкта - Fillet works only on parts - ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” лише Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹ + + Fillet works only on parts + ÐžÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” лише Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹ - No Support - Ðе підтримуєтьÑÑ + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + Ðе підтримуєтьÑÑ + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - The sketch has to have a support for the pocket feature. + The sketch has to have a support for the pocket feature. Create the sketch on a face. - - Edit pad - Edit pad + + Edit pad + Edit pad - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - Do you want to close this dialog? + + + + + + + Do you want to close this dialog? + Do you want to close this dialog? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - Дизайн чаÑтини + + Part Design + Дизайн чаÑтини - + diff --git a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh.ts b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh.ts index 17b53b020..24b691420 100644 --- a/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh.ts +++ b/src/Mod/PartDesign/Gui/Resources/translations/PartDesign_zh.ts @@ -1,461 +1,768 @@ - - + + CmdPartDesignChamfer - - Part - é›¶ä»¶ + Part + é›¶ä»¶ - Chamfer... - 倒角... + Chamfer... + 倒角... - Chamfer the selected edges of a shape - 给选的形的边缘倒角 + + PartDesign + 零件设计 - - + + + Chamfer + + + + + Chamfer the selected edges of a shape + 给选的形的边缘倒角 + + + CmdPartDesignFillet - PartDesign - 零件设计 + + PartDesign + 零件设计 - Fillet - 圆角 + + Fillet + 圆角 - Make a fillet on an edge, face or body - 给边ã€é¢æˆ–实体倒圆角 + + Make a fillet on an edge, face or body + 给边ã€é¢æˆ–实体倒圆角 - - + + + CmdPartDesignGroove + + + PartDesign + 零件设计 + + + + Groove + + + + + Groove a selected sketch + + + + CmdPartDesignPad - PartDesign - 零件设计 + + PartDesign + 零件设计 - Pad - å‡¸å° + + Pad + å‡¸å° - Pad a selected sketch - 基于选定è‰å›¾åˆ›å»ºå‡¸å° + + Pad a selected sketch + 基于选定è‰å›¾åˆ›å»ºå‡¸å° - - + + CmdPartDesignPocket - PartDesign - 零件设计 + + PartDesign + 零件设计 - Pocket - 凹槽 + + Pocket + 凹槽 - create a pocket with the selected sketch - 基于选中的è‰å›¾åˆ›å»ºå‡¹æ§½ + + create a pocket with the selected sketch + 基于选中的è‰å›¾åˆ›å»ºå‡¹æ§½ - - + + CmdPartDesignRevolution - PartDesign - 零件设计 + + PartDesign + 零件设计 - Revolution - Revolution + + Revolution + Revolution - Revolve a selected sketch - 旋转选定的è‰ç»˜ + + Revolve a selected sketch + 旋转选定的è‰ç»˜ - - + + Gui::TaskView::TaskWatcherCommands - - Face tools - Face tools + + Face tools + Face tools - Sketch tools - è‰å›¾å·¥å…· + + Sketch tools + è‰å›¾å·¥å…· - Create Geometry - 创建几何元素 + + Create Geometry + 创建几何元素 - - + + PartDesignGui::ChamferWidget - - Edges to chamfer - 倒角边 + Edges to chamfer + 倒角边 - Start distance - 起端è·ç¦» + Start distance + 起端è·ç¦» - End distance - 末端è·ç¦» + End distance + 末端è·ç¦» - Edge%1 - 边缘 %1 + Edge%1 + 边缘 %1 - Distance - è·ç¦» + Distance + è·ç¦» - No shape selected - 未选定形状 + No shape selected + 未选定形状 - No valid shape is selected. + No valid shape is selected. Please select a valid shape in the drop-down box first. - 无有效形状被选中.请先在下拉框中选择一个有效的形状. + 无有效形状被选中.请先在下拉框中选择一个有效的形状. - No edge selected - 未选定边缘 + No edge selected + 未选定边缘 - No edge entity is checked to chamfer. + No edge entity is checked to chamfer. Please check one or more edge entities first. - 未选择倒角边.请先选择一个或更多边缘. + 未选择倒角边.请先选择一个或更多边缘. - - + + PartDesignGui::TaskChamfer - - Chamfer Edges - 倒角边缘 + Chamfer Edges + 倒角边缘 - Shape - 形状 + Shape + 形状 - Selected shape: - 所选的形状: + Selected shape: + 所选的形状: - No selection - 未选择 + No selection + 未选择 - Chamfer Parameter - å€’è§’å‚æ•° + Chamfer Parameter + å€’è§’å‚æ•° - All - 全部 + All + 全部 - None - æ—  + None + æ—  - Chamfer type: - 倒角类型: + Chamfer type: + 倒角类型: - Constant Distance - æ’定è·ç¦» + Constant Distance + æ’定è·ç¦» - Variable Distance - å¯å˜è·ç¦» + Variable Distance + å¯å˜è·ç¦» - Distance: - è·ç¦»: + Distance: + è·ç¦»: - - + + + PartDesignGui::TaskChamferParameters + + + Form + 窗体 + + + + Size: + 大å°: + + + + Chamfer parameters + + + + PartDesignGui::TaskDlgPadParameters - - Input error - Input error + + Input error + Input error - - + + PartDesignGui::TaskFilletParameters - - Form - 窗体 + + Form + 窗体 - Radius: - åŠå¾„: + + Radius: + åŠå¾„: - - Fillet parameters - Fillet parameters + + Fillet parameters + Fillet parameters - - + + + PartDesignGui::TaskGrooveParameters + + + Form + 窗体 + + + + Axis: + è½´: + + + + Vertical sketch axis + + + + + Horizontal sketch axis + + + + + Angle: + 角度: + + + + Symmetric to plane + + + + + Reversed + å转 + + + + Groove parameters + + + + PartDesignGui::TaskHoleParameters - - Form - 窗体 + + Form + 窗体 - Type: - 类型: + + Type: + 类型: - Dimension - 尺寸标注 + + Dimension + 尺寸标注 - Up to last - ç›´åˆ°æœ€åŽ + + Up to last + ç›´åˆ°æœ€åŽ - Up to first - 直到第一个 + + Up to first + 直到第一个 - Size: - 大å°: + + Size: + 大å°: - - TaskHoleParameters - 开孔傿•° + + TaskHoleParameters + 开孔傿•° - - + + PartDesignGui::TaskPadParameters - - Form - 窗体 + + Form + 窗体 - Type: - 类型: + + Type + - Dimension - 尺寸标注 + + Length + Length - Length: - 长度: + + Symmetric to plane + - Mirrored extent - Mirrored extent + + 2nd length + - Reversed - å转 + + + Face + - Display mode: - 显示方å¼: + Type: + 类型: - Plot mode: - 绘制模å¼: + + + Dimension + 尺寸标注 - Point size: - 点大å°: + Length: + 长度: - Line width: - 线宽: + Mirrored extent + Mirrored extent - Transparency: - 逿˜Žåº¦: + + Reversed + å转 - TaskPadParameters - 减尿“ä½œå‚æ•° + Display mode: + 显示方å¼: - - Pad parameters - 凸å°å‚æ•° + Plot mode: + 绘制模å¼: - - + + Point size: + 点大å°: + + + Line width: + 线宽: + + + Transparency: + 逿˜Žåº¦: + + + TaskPadParameters + 减尿“ä½œå‚æ•° + + + + Pad parameters + 凸å°å‚æ•° + + + + No face selected + + + + + To last + + + + + To first + + + + + Up to face + + + + + Two dimensions + + + + PartDesignGui::TaskPatternRectangularParameters - - Form - 窗体 + + Form + 窗体 - Spacing1: - Spacing1: + + Spacing1: + Spacing1: - Number1: - 数值1: + + Number1: + 数值1: - Second extend - Second extend + + Second extend + Second extend - Spacing2: - Spacing2: + + Spacing2: + Spacing2: - Number2: - 数值2: + + Number2: + 数值2: - - TaskPatternRectangularParameters - çŸ©å½¢é˜µåˆ—å‚æ•° + + TaskPatternRectangularParameters + çŸ©å½¢é˜µåˆ—å‚æ•° - - + + PartDesignGui::TaskPocketParameters - - Form - 窗体 + + Form + 窗体 - Type: - 类型: + Type: + 类型: - Dimension - 尺寸标注 + + Type + - Length - Length + + + Dimension + 尺寸标注 - - Pocket parameters - Pocket parameters + + + Face + - - + + + Length + Length + + + + Pocket parameters + Pocket parameters + + + + To last + + + + + To first + + + + + Through all + + + + + Up to face + + + + + No face selected + + + + PartDesignGui::TaskRevolutionParameters - - Form - 窗体 + + Form + 窗体 - Axis: - è½´: + + Axis: + è½´: - Vertical - Vertical + + Vertical sketch axis + - Horizontal - Horizontal + + Horizontal sketch axis + - Angle: - 角度: + + Symmetric to plane + - - Revolution parameters - Revolution parameters + + Reversed + å转 - - + + Vertical + Vertical + + + Horizontal + Horizontal + + + + Angle: + 角度: + + + + Revolution parameters + Revolution parameters + + + QObject - - Wrong selection - 选择错误 + + + + + + + + + + + + + + + + + + + Wrong selection + 选择错误 - Select a sketch or 2D object. - 选择一个è‰å›¾æˆ–2D对象. + + + + + Select a sketch or 2D object. + 选择一个è‰å›¾æˆ–2D对象. - The shape of the selected object is empty. - 所选形状为空. + + + + + The shape of the selected object is empty. + 所选形状为空. - The shape of the selected object is not a wire. - æ‰€é€‰å½¢çŠ¶ä¸æ˜¯çº¿æ¡†. + + + + + The shape of the selected object is not a wire. + æ‰€é€‰å½¢çŠ¶ä¸æ˜¯çº¿æ¡†. - Select an edge, face or body. Only one body is allowed. - 选择边缘ã€é¢æˆ–者实体。åªå…许选择一个实体. + + + Select an edge, face or body. Only one body is allowed. + 选择边缘ã€é¢æˆ–者实体。åªå…许选择一个实体. - Wrong object type - 错误的对象类型 + + + Wrong object type + 错误的对象类型 - Fillet works only on parts - 圆角åªå¯¹é›¶ä»¶æœ‰æ•ˆ + + Fillet works only on parts + 圆角åªå¯¹é›¶ä»¶æœ‰æ•ˆ - No Support - 䏿”¯æŒ + + Shape of selected Part is empty + - The sketch has to have a support for the pocket feature. + + No fillet possible on selected faces/edges + + + + + Chamfer works only on parts + + + + + Shape of selected part is empty + + + + + No chamfer possible on selected faces/edges + + + + + No Support + 䏿”¯æŒ + + + + The sketch has to have a support for the pocket feature. Create the sketch on a face. - å‡¹æ§½ç‰¹æ€§è¦æ±‚è‰å›¾å¿…须存在一个支æŒé¢. + å‡¹æ§½ç‰¹æ€§è¦æ±‚è‰å›¾å¿…须存在一个支æŒé¢. 请在é¢ä¸Šåˆ›å»ºè‰å›¾. - - Edit pad - ç¼–è¾‘å‡¸å° + + Edit pad + ç¼–è¾‘å‡¸å° - - Edit pocket - Edit pocket + + + + Edit pocket + Edit pocket - A dialog is already open in the task panel - A dialog is already open in the task panel + + + + + + + A dialog is already open in the task panel + A dialog is already open in the task panel - Do you want to close this dialog? - 您è¦å…³é—­æ­¤å¯¹è¯æ¡†å—? + + + + + + + Do you want to close this dialog? + 您è¦å…³é—­æ­¤å¯¹è¯æ¡†å—? - - Edit revolution - Edit revolution + + Edit revolution + Edit revolution - - + + + Edit Groove + + + + Workbench - - Part Design - 零件设计 + + Part Design + 零件设计 - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_af.ts b/src/Mod/Points/Gui/Resources/translations/Points_af.ts index 5532515aa..f2c5ec3be 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_af.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_af.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punte + + Points + Punte - Export points... - Voer punte uit... + + Export points... + Voer punte uit... - Exports a point cloud - Voer 'n puntwolk uit + + + + Exports a point cloud + Voer 'n puntwolk uit - - + + CmdPointsImport - Points - Punte + + Points + Punte - Import points... - Voer punte in... + + Import points... + Voer punte in... - Imports a point cloud - Voer 'n puntwolk in + + + + Imports a point cloud + Voer 'n puntwolk in - - + + CmdPointsPolyCut - Points - Punte + + Points + Punte - Cut point cloud - Sny 'n puntwolk + + Cut point cloud + Sny 'n puntwolk - Cuts a point cloud with a picked polygon - Sny 'n puntwolk met 'n gekose veelhoek + + + + Cuts a point cloud with a picked polygon + Sny 'n puntwolk met 'n gekose veelhoek - - + + CmdPointsTransform - Points - Punte + + Points + Punte - Transform Points - Transformeer Punte + + Transform Points + Transformeer Punte - Test to transform a point cloud - Toets om 'n puntwolk te transformeer + + + + Test to transform a point cloud + Toets om 'n puntwolk te transformeer - - + + PointsGui::DlgPointsRead - - ASCII points import - Voer ASCII-punte in + + ASCII points import + Voer ASCII-punte in - Template: - Standaardvorm: + + Template: + Standaardvorm: - Special lines - Spesiale lyne + + Special lines + Spesiale lyne - First line: - Eerste lyn: + + First line: + Eerste lyn: - Ignore - Ignoreer + + Ignore + Ignoreer - Cluster by lines starting with: - Groepeer lyne wat begin met: + + Cluster by lines starting with: + Groepeer lyne wat begin met: - Ignore lines starting with: - Ignoreer lyne wat begin met: + + Ignore lines starting with: + Ignoreer lyne wat begin met: - Point format - Puntformaat + + Point format + Puntformaat - Number separator: - Number separator: + + Number separator: + Number separator: - Points format: - Puntformaat: + + Points format: + Puntformaat: - Next block: - Volgende blok: + + + + Next block: + Volgende blok: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - geen + + + + none + geen - I,J,K (normal vector) - I,J,K (normale vektor) + + + + I,J,K (normal vector) + I,J,K (normale vektor) - I,K (normal vector 2D) - I,K (gewone vektor 2D) + + + + I,K (normal vector 2D) + I,K (gewone vektor 2D) - R,G,B (color) - R,G,B (kleur) + + + + R,G,B (color) + R,G,B (kleur) - I (Gray value) - I (Gryswaarde) + + + + I (Gray value) + I (Gryswaarde) - Preview - Voorskou + + Preview + Voorskou - 100 - 100 + + 100 + 100 - Number of points - Aantal punte + + Number of points + Aantal punte - Number of previewed lines: - Aantal voorskoulyne: + + Number of previewed lines: + Aantal voorskoulyne: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii Punte (*.asc);;Alle Lêers (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii Punte (*.asc);;Alle Lêers (*.*) - - + + Workbench - - Points tools - Punte-gereedskap + + Points tools + Punte-gereedskap - &Points - &Punte + + &Points + &Punte - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_de.ts b/src/Mod/Points/Gui/Resources/translations/Points_de.ts index 41c2e2c8f..1cc1bb3e5 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_de.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_de.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punkte + + Points + Punkte - Export points... - Punkte exportieren... + + Export points... + Punkte exportieren... - Exports a point cloud - Exportiert eine Punktwolke + + + + Exports a point cloud + Exportiert eine Punktwolke - - + + CmdPointsImport - Points - Punkte + + Points + Punkte - Import points... - Punkte importieren... + + Import points... + Punkte importieren... - Imports a point cloud - Importiert eine Punktwolke + + + + Imports a point cloud + Importiert eine Punktwolke - - + + CmdPointsPolyCut - Points - Punkte + + Points + Punkte - Cut point cloud - Schneidet Punktwolke + + Cut point cloud + Schneidet Punktwolke - Cuts a point cloud with a picked polygon - Ausschneiden einer Punktwolke aus dem gewählten Polygon + + + + Cuts a point cloud with a picked polygon + Ausschneiden einer Punktwolke aus dem gewählten Polygon - - + + CmdPointsTransform - Points - Punkte + + Points + Punkte - Transform Points - Transformiere Punkte + + Transform Points + Transformiere Punkte - Test to transform a point cloud - Test zur Transformation einer Punktwolke + + + + Test to transform a point cloud + Test zur Transformation einer Punktwolke - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII-Punkte-Import + + ASCII points import + ASCII-Punkte-Import - Template: - Vorlage: + + Template: + Vorlage: - Special lines - Spezielle Zeilen + + Special lines + Spezielle Zeilen - First line: - Erste Zeile: + + First line: + Erste Zeile: - Ignore - Ignorieren + + Ignore + Ignorieren - Cluster by lines starting with: - Cluster von Zeilen beginnend mit: + + Cluster by lines starting with: + Cluster von Zeilen beginnend mit: - Ignore lines starting with: - Ignoriere Zeilen beginnend mit: + + Ignore lines starting with: + Ignoriere Zeilen beginnend mit: - Point format - Punkte-Format + + Point format + Punkte-Format - Number separator: - Zahlentrenner: + + Number separator: + Zahlentrenner: - Points format: - Punkte-Format: + + Points format: + Punkte-Format: - Next block: - Nächster Block: + + + + Next block: + Nächster Block: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X, Y, Z + + X,Y,Z + X, Y, Z - X,Y - X, Y + + X,Y + X, Y - none - keiner + + + + none + keiner - I,J,K (normal vector) - I, J, K (Normalenvektor) + + + + I,J,K (normal vector) + I, J, K (Normalenvektor) - I,K (normal vector 2D) - I, K (Normalenvektor 2D) + + + + I,K (normal vector 2D) + I, K (Normalenvektor 2D) - R,G,B (color) - R,G,B (Farbe) + + + + R,G,B (color) + R,G,B (Farbe) - I (Gray value) - I (Grauwert) + + + + I (Gray value) + I (Grauwert) - Preview - Vorschau + + Preview + Vorschau - 100 - 100 + + 100 + 100 - Number of points - Anzahl der Punkte + + Number of points + Anzahl der Punkte - Number of previewed lines: - Anzahl der angezeigten Zeilen: + + Number of previewed lines: + Anzahl der angezeigten Zeilen: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - ASCII-Punkte (.asc);;Alle Dateien (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + ASCII-Punkte (.asc);;Alle Dateien (*.*) - - + + Workbench - - Points tools - Punktwerkzeuge + + Points tools + Punktwerkzeuge - &Points - &Punkte + + &Points + &Punkte - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_es.ts b/src/Mod/Points/Gui/Resources/translations/Points_es.ts index 52043c7a0..9fa1737dd 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_es.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_es.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Puntos + + Points + Puntos - Export points... - Exportar puntos... + + Export points... + Exportar puntos... - Exports a point cloud - exporta una nube de puntos + + + + Exports a point cloud + exporta una nube de puntos - - + + CmdPointsImport - Points - Puntos + + Points + Puntos - Import points... - Importar puntos... + + Import points... + Importar puntos... - Imports a point cloud - Importa una nube de puntos + + + + Imports a point cloud + Importa una nube de puntos - - + + CmdPointsPolyCut - Points - Puntos + + Points + Puntos - Cut point cloud - Cortar una nube de puntos + + Cut point cloud + Cortar una nube de puntos - Cuts a point cloud with a picked polygon - Corta una nube de puntos con un poligono seleccionado + + + + Cuts a point cloud with a picked polygon + Corta una nube de puntos con un poligono seleccionado - - + + CmdPointsTransform - Points - Puntos + + Points + Puntos - Transform Points - Trasformar puntos + + Transform Points + Trasformar puntos - Test to transform a point cloud - Test para transformar una nube de puntos + + + + Test to transform a point cloud + Test para transformar una nube de puntos - - + + PointsGui::DlgPointsRead - - ASCII points import - Importar puntos ASCII + + ASCII points import + Importar puntos ASCII - Template: - Plantilla: + + Template: + Plantilla: - Special lines - Líneas especiales + + Special lines + Líneas especiales - First line: - Primera línea: + + First line: + Primera línea: - Ignore - Ignorar + + Ignore + Ignorar - Cluster by lines starting with: - Agrupar por líneas que empiezan con: + + Cluster by lines starting with: + Agrupar por líneas que empiezan con: - Ignore lines starting with: - Ignorar líneas que empiezan con: + + Ignore lines starting with: + Ignorar líneas que empiezan con: - Point format - Formato de punto + + Point format + Formato de punto - Number separator: - Number separator: + + Number separator: + Number separator: - Points format: - Formato de punto: + + Points format: + Formato de punto: - Next block: - Próximo bloque: + + + + Next block: + Próximo bloque: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - ninguno + + + + none + ninguno - I,J,K (normal vector) - I,J,K (vector normal) + + + + I,J,K (normal vector) + I,J,K (vector normal) - I,K (normal vector 2D) - I,K (vector normal 2D) + + + + I,K (normal vector 2D) + I,K (vector normal 2D) - R,G,B (color) - R,G,B (color) + + + + R,G,B (color) + R,G,B (color) - I (Gray value) - I (valor de gris) + + + + I (Gray value) + I (valor de gris) - Preview - Previsualizar + + Preview + Previsualizar - 100 - 100 + + 100 + 100 - Number of points - Número de puntos + + Number of points + Número de puntos - Number of previewed lines: - Número de líneas previsualizadas: + + Number of previewed lines: + Número de líneas previsualizadas: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Puntos Ascii (*.asc);;Todos los archivos (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Puntos Ascii (*.asc);;Todos los archivos (*.*) - - + + Workbench - - Points tools - Herramientas de puntos + + Points tools + Herramientas de puntos - &Points - &Puntos + + &Points + &Puntos - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_fi.ts b/src/Mod/Points/Gui/Resources/translations/Points_fi.ts index 6edee8c0c..02e8e010c 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_fi.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_fi.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Pisteet + + Points + Pisteet - Export points... - Vie pisteet... + + Export points... + Vie pisteet... - Exports a point cloud - Exports a point cloud + + + + Exports a point cloud + Exports a point cloud - - + + CmdPointsImport - Points - Pisteet + + Points + Pisteet - Import points... - Tuo pisteet... + + Import points... + Tuo pisteet... - Imports a point cloud - Imports a point cloud + + + + Imports a point cloud + Imports a point cloud - - + + CmdPointsPolyCut - Points - Pisteet + + Points + Pisteet - Cut point cloud - Cut point cloud + + Cut point cloud + Cut point cloud - Cuts a point cloud with a picked polygon - Cuts a point cloud with a picked polygon + + + + Cuts a point cloud with a picked polygon + Cuts a point cloud with a picked polygon - - + + CmdPointsTransform - Points - Pisteet + + Points + Pisteet - Transform Points - Muunna pisteet + + Transform Points + Muunna pisteet - Test to transform a point cloud - Testaa muuttaa pistepilvi + + + + Test to transform a point cloud + Testaa muuttaa pistepilvi - - + + PointsGui::DlgPointsRead - - ASCII points import - Tuo ASCII pisteet + + ASCII points import + Tuo ASCII pisteet - Template: - Malli: + + Template: + Malli: - Special lines - Erityisiä viivoja + + Special lines + Erityisiä viivoja - First line: - Ensimmäinen rivi: + + First line: + Ensimmäinen rivi: - Ignore - Ohita + + Ignore + Ohita - Cluster by lines starting with: - Cluster by lines starting with: + + Cluster by lines starting with: + Cluster by lines starting with: - Ignore lines starting with: - Ignore lines starting with: + + Ignore lines starting with: + Ignore lines starting with: - Point format - Point format + + Point format + Point format - Number separator: - Number separator: + + Number separator: + Number separator: - Points format: - Points format: + + Points format: + Points format: - Next block: - Seuraava lohko: + + + + Next block: + Seuraava lohko: - , - , + + , + , - ; - ; + + ; + ; - \t - \T + + \t + \T - \w - /w + + \w + /w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - ei mitään + + + + none + ei mitään - I,J,K (normal vector) - I,J,K (normaali vektori) + + + + I,J,K (normal vector) + I,J,K (normaali vektori) - I,K (normal vector 2D) - I,K (normaali vektori 2D) + + + + I,K (normal vector 2D) + I,K (normaali vektori 2D) - R,G,B (color) - R,G,B (väri) + + + + R,G,B (color) + R,G,B (väri) - I (Gray value) - I (Gray arvo) + + + + I (Gray value) + I (Gray arvo) - Preview - Esikatselu + + Preview + Esikatselu - 100 - 100 + + 100 + 100 - Number of points - Pisteiden määrä + + Number of points + Pisteiden määrä - Number of previewed lines: - Esikatseltavien rivien määrä: + + Number of previewed lines: + Esikatseltavien rivien määrä: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii Points (*.asc);;All Files (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii Points (*.asc);;All Files (*.*) - - + + Workbench - - Points tools - Points tools + + Points tools + Points tools - &Points - &Pisteet + + &Points + &Pisteet - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_fr.ts b/src/Mod/Points/Gui/Resources/translations/Points_fr.ts index 3808d6937..9978c3cac 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_fr.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_fr.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Points + + Points + Points - Export points... - Exporter les points... + + Export points... + Exporter les points... - Exports a point cloud - Exporte un nuage de points + + + + Exports a point cloud + Exporte un nuage de points - - + + CmdPointsImport - Points - Points + + Points + Points - Import points... - Importer des points... + + Import points... + Importer des points... - Imports a point cloud - Importe un nuage de points + + + + Imports a point cloud + Importe un nuage de points - - + + CmdPointsPolyCut - Points - Points + + Points + Points - Cut point cloud - Couper un nuage de points + + Cut point cloud + Couper un nuage de points - Cuts a point cloud with a picked polygon - Coupe un nuage de points à l'aide d'un polygone sélectionné + + + + Cuts a point cloud with a picked polygon + Coupe un nuage de points à l'aide d'un polygone sélectionné - - + + CmdPointsTransform - Points - Points + + Points + Points - Transform Points - Transformer les points + + Transform Points + Transformer les points - Test to transform a point cloud - Test de transformation d'un nuage de points + + + + Test to transform a point cloud + Test de transformation d'un nuage de points - - + + PointsGui::DlgPointsRead - - ASCII points import - Importation de points ASCII + + ASCII points import + Importation de points ASCII - Template: - Modèle : + + Template: + Modèle : - Special lines - Ligne spéciales + + Special lines + Ligne spéciales - First line: - Première ligne : + + First line: + Première ligne : - Ignore - Ignorer + + Ignore + Ignorer - Cluster by lines starting with: - Ensemble de lignes commençant par : + + Cluster by lines starting with: + Ensemble de lignes commençant par : - Ignore lines starting with: - Ignorer les lignes commençant par : + + Ignore lines starting with: + Ignorer les lignes commençant par : - Point format - Format de point + + Point format + Format de point - Number separator: - Séparateur de nombre : + + Number separator: + Séparateur de nombre : - Points format: - Format de points : + + Points format: + Format de points : - Next block: - Bloc suivant : + + + + Next block: + Bloc suivant : - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X, Y, Z + + X,Y,Z + X, Y, Z - X,Y - X, Y + + X,Y + X, Y - none - aucun + + + + none + aucun - I,J,K (normal vector) - I,J,K (vecteur normal) + + + + I,J,K (normal vector) + I,J,K (vecteur normal) - I,K (normal vector 2D) - I,K (vecteur normal 2D) + + + + I,K (normal vector 2D) + I,K (vecteur normal 2D) - R,G,B (color) - R,V,B (couleur) + + + + R,G,B (color) + R,V,B (couleur) - I (Gray value) - I (valeur de gris) + + + + I (Gray value) + I (valeur de gris) - Preview - Aperçu + + Preview + Aperçu - 100 - 100 + + 100 + 100 - Number of points - Nombre de points + + Number of points + Nombre de points - Number of previewed lines: - Nombre de lignes prévisualisés : + + Number of previewed lines: + Nombre de lignes prévisualisés : - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Points Ascii (*.asc);;Tous les fichiers (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Points Ascii (*.asc);;Tous les fichiers (*.*) - - + + Workbench - - Points tools - Outils points + + Points tools + Outils points - &Points - &Points + + &Points + &Points - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_hr.ts b/src/Mod/Points/Gui/Resources/translations/Points_hr.ts index eb33674ce..ada1899f2 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_hr.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_hr.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - ToÄke + + Points + ToÄke - Export points... - Izvezi toÄke... + + Export points... + Izvezi toÄke... - Exports a point cloud - prenesi pokazni oblak + + + + Exports a point cloud + prenesi pokazni oblak - - + + CmdPointsImport - Points - ToÄke + + Points + ToÄke - Import points... - Uvezi toÄke... + + Import points... + Uvezi toÄke... - Imports a point cloud - prenesi pokazni oblak + + + + Imports a point cloud + prenesi pokazni oblak - - + + CmdPointsPolyCut - Points - ToÄke + + Points + ToÄke - Cut point cloud - odreži pokazni oblak + + Cut point cloud + odreži pokazni oblak - Cuts a point cloud with a picked polygon - Izreže pokazni oblak s bere poligona + + + + Cuts a point cloud with a picked polygon + Izreže pokazni oblak s bere poligona - - + + CmdPointsTransform - Points - ToÄke + + Points + ToÄke - Transform Points - Promijeni toÄke + + Transform Points + Promijeni toÄke - Test to transform a point cloud - Test za pretvaranje pokaznog oblaka + + + + Test to transform a point cloud + Test za pretvaranje pokaznog oblaka - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII uvoz bodova + + ASCII points import + ASCII uvoz bodova - Template: - Predložak: + + Template: + Predložak: - Special lines - Posebne linije + + Special lines + Posebne linije - First line: - Prva linija: + + First line: + Prva linija: - Ignore - Zanemari + + Ignore + Zanemari - Cluster by lines starting with: - Klaster linijama koje poÄinju sa: + + Cluster by lines starting with: + Klaster linijama koje poÄinju sa: - Ignore lines starting with: - Zanemari linije koje poÄinju sa: + + Ignore lines starting with: + Zanemari linije koje poÄinju sa: - Point format - Point format + + Point format + Point format - Number separator: - Broj separatora: + + Number separator: + Broj separatora: - Points format: - Bodovi formata: + + Points format: + Bodovi formata: - Next block: - Sljedeći blok: + + + + Next block: + Sljedeći blok: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - nijedan + + + + none + nijedan - I,J,K (normal vector) - I,J,K (vektor normale) + + + + I,J,K (normal vector) + I,J,K (vektor normale) - I,K (normal vector 2D) - I,K (vektor normale 2D) + + + + I,K (normal vector 2D) + I,K (vektor normale 2D) - R,G,B (color) - R,G,B (u boji) + + + + R,G,B (color) + R,G,B (u boji) - I (Gray value) - I (vrijednosti u sivim tonovima) + + + + I (Gray value) + I (vrijednosti u sivim tonovima) - Preview - Pregled + + Preview + Pregled - 100 - 100 + + 100 + 100 - Number of points - Broj toÄaka + + Number of points + Broj toÄaka - Number of previewed lines: - Broj pregledanih linija: + + Number of previewed lines: + Broj pregledanih linija: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii toÄke (*.asc);;Sve datoteke (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii toÄke (*.asc);;Sve datoteke (*.*) - - + + Workbench - - Points tools - Alati toÄaka + + Points tools + Alati toÄaka - &Points - &ToÄke + + &Points + &ToÄke - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_hu.ts b/src/Mod/Points/Gui/Resources/translations/Points_hu.ts index 510b2ded6..d4dcb72bd 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_hu.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_hu.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Pontok + + Points + Pontok - Export points... - Pontok exportálása... + + Export points... + Pontok exportálása... - Exports a point cloud - PontfelhÅ‘ exportálása + + + + Exports a point cloud + PontfelhÅ‘ exportálása - - + + CmdPointsImport - Points - Pontok + + Points + Pontok - Import points... - Pontok importálása... + + Import points... + Pontok importálása... - Imports a point cloud - PontfelhÅ‘ importálása + + + + Imports a point cloud + PontfelhÅ‘ importálása - - + + CmdPointsPolyCut - Points - Pontok + + Points + Pontok - Cut point cloud - PontfelhÅ‘ kivágása + + Cut point cloud + PontfelhÅ‘ kivágása - Cuts a point cloud with a picked polygon - PontfelhÅ‘ kivágása egy kiválaszott polygonnal + + + + Cuts a point cloud with a picked polygon + PontfelhÅ‘ kivágása egy kiválaszott polygonnal - - + + CmdPointsTransform - Points - Pontok + + Points + Pontok - Transform Points - Pontok átalakítása + + Transform Points + Pontok átalakítása - Test to transform a point cloud - PontfelhÅ‘ átalakításának tesztje + + + + Test to transform a point cloud + PontfelhÅ‘ átalakításának tesztje - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII pontok importálása + + ASCII points import + ASCII pontok importálása - Template: - Sablon: + + Template: + Sablon: - Special lines - Speciális vonalak + + Special lines + Speciális vonalak - First line: - ElsÅ‘ vonal: + + First line: + ElsÅ‘ vonal: - Ignore - Kihagy + + Ignore + Kihagy - Cluster by lines starting with: - Vonallal kezdÅ‘dÅ‘ fürt: + + Cluster by lines starting with: + Vonallal kezdÅ‘dÅ‘ fürt: - Ignore lines starting with: - KezdÅ‘ vonalak kihagyása: + + Ignore lines starting with: + KezdÅ‘ vonalak kihagyása: - Point format - Pont formátum + + Point format + Pont formátum - Number separator: - Szám elválasztó jel: + + Number separator: + Szám elválasztó jel: - Points format: - Pont formátum: + + Points format: + Pont formátum: - Next block: - KövetkezÅ‘ blokk: + + + + Next block: + KövetkezÅ‘ blokk: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - egyik sem + + + + none + egyik sem - I,J,K (normal vector) - I, J, K (normál vektor) + + + + I,J,K (normal vector) + I, J, K (normál vektor) - I,K (normal vector 2D) - I, K (normál vektor 2D) + + + + I,K (normal vector 2D) + I, K (normál vektor 2D) - R,G,B (color) - R,G,B (szín) + + + + R,G,B (color) + R,G,B (szín) - I (Gray value) - I (szürkeárnyalat-érték) + + + + I (Gray value) + I (szürkeárnyalat-érték) - Preview - ElÅ‘nézet + + Preview + ElÅ‘nézet - 100 - 100 + + 100 + 100 - Number of points - Pontok száma + + Number of points + Pontok száma - Number of previewed lines: - ElÅ‘nézeti sorok száma: + + Number of previewed lines: + ElÅ‘nézeti sorok száma: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii pontok (*.asc);;Minden fájl (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii pontok (*.asc);;Minden fájl (*.*) - - + + Workbench - - Points tools - Pont eszközök + + Points tools + Pont eszközök - &Points - &Pontok + + &Points + &Pontok - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_it.ts b/src/Mod/Points/Gui/Resources/translations/Points_it.ts index 27b4e32f4..3bbba10ba 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_it.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_it.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punti + + Points + Punti - Export points... - Esporta punti... + + Export points... + Esporta punti... - Exports a point cloud - Esporta una nuvola di punti + + + + Exports a point cloud + Esporta una nuvola di punti - - + + CmdPointsImport - Points - Punti + + Points + Punti - Import points... - Importa punti... + + Import points... + Importa punti... - Imports a point cloud - Importa una nuvola di punti + + + + Imports a point cloud + Importa una nuvola di punti - - + + CmdPointsPolyCut - Points - Punti + + Points + Punti - Cut point cloud - Taglia nuvola di punti + + Cut point cloud + Taglia nuvola di punti - Cuts a point cloud with a picked polygon - Taglia una nuvola di punti con un poligono specificato + + + + Cuts a point cloud with a picked polygon + Taglia una nuvola di punti con un poligono specificato - - + + CmdPointsTransform - Points - Punti + + Points + Punti - Transform Points - Trasforma punti + + Transform Points + Trasforma punti - Test to transform a point cloud - Test della trasformazione di una nuvola di punti + + + + Test to transform a point cloud + Test della trasformazione di una nuvola di punti - - + + PointsGui::DlgPointsRead - - ASCII points import - Importa punti ASCII + + ASCII points import + Importa punti ASCII - Template: - Modello: + + Template: + Modello: - Special lines - Linee speciali + + Special lines + Linee speciali - First line: - Prima linea: + + First line: + Prima linea: - Ignore - Ignora + + Ignore + Ignora - Cluster by lines starting with: - Raggruppamento per linee che iniziano con: + + Cluster by lines starting with: + Raggruppamento per linee che iniziano con: - Ignore lines starting with: - Ignora le linee che iniziano con: + + Ignore lines starting with: + Ignora le linee che iniziano con: - Point format - Formato punto + + Point format + Formato punto - Number separator: - Separatore numeri: + + Number separator: + Separatore numeri: - Points format: - Formato punti: + + Points format: + Formato punti: - Next block: - Prossimo blocco: + + + + Next block: + Prossimo blocco: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - nessuno + + + + none + nessuno - I,J,K (normal vector) - I,J,K (vettore normale) + + + + I,J,K (normal vector) + I,J,K (vettore normale) - I,K (normal vector 2D) - I,K (vettore normale 2D) + + + + I,K (normal vector 2D) + I,K (vettore normale 2D) - R,G,B (color) - R,G,B (colore) + + + + R,G,B (color) + R,G,B (colore) - I (Gray value) - I (valore di grigio) + + + + I (Gray value) + I (valore di grigio) - Preview - Anteprima + + Preview + Anteprima - 100 - 100 + + 100 + 100 - Number of points - Numero di punti + + Number of points + Numero di punti - Number of previewed lines: - Numero di linee visualizzate nell'anteprima: + + Number of previewed lines: + Numero di linee visualizzate nell'anteprima: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Punti Ascii (*.asc);;Tutti i file (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Punti Ascii (*.asc);;Tutti i file (*.*) - - + + Workbench - - Points tools - Strumenti Punti + + Points tools + Strumenti Punti - &Points - &Punti + + &Points + &Punti - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_ja.ts b/src/Mod/Points/Gui/Resources/translations/Points_ja.ts index 2c6f51381..6ebf678e0 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_ja.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_ja.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - 点 + + Points + 点 - Export points... - 点をエクスãƒãƒ¼ãƒˆ... + + Export points... + 点をエクスãƒãƒ¼ãƒˆ... - Exports a point cloud - 点群をエクスãƒãƒ¼ãƒˆ + + + + Exports a point cloud + 点群をエクスãƒãƒ¼ãƒˆ - - + + CmdPointsImport - Points - 点 + + Points + 点 - Import points... - 点をインãƒãƒ¼ãƒˆ... + + Import points... + 点をインãƒãƒ¼ãƒˆ... - Imports a point cloud - 点群をインãƒãƒ¼ãƒˆ + + + + Imports a point cloud + 点群をインãƒãƒ¼ãƒˆ - - + + CmdPointsPolyCut - Points - 点 + + Points + 点 - Cut point cloud - Cut point cloud + + Cut point cloud + Cut point cloud - Cuts a point cloud with a picked polygon - Cuts a point cloud with a picked polygon + + + + Cuts a point cloud with a picked polygon + Cuts a point cloud with a picked polygon - - + + CmdPointsTransform - Points - 点 + + Points + 点 - Transform Points - ç‚¹ã‚’å¤‰æ› + + Transform Points + ç‚¹ã‚’å¤‰æ› - Test to transform a point cloud - Test to transform a point cloud + + + + Test to transform a point cloud + Test to transform a point cloud - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII points import + + ASCII points import + ASCII points import - Template: - テンプレート: + + Template: + テンプレート: - Special lines - Special lines + + Special lines + Special lines - First line: - First line: + + First line: + First line: - Ignore - 無視 + + Ignore + 無視 - Cluster by lines starting with: - Cluster by lines starting with: + + Cluster by lines starting with: + Cluster by lines starting with: - Ignore lines starting with: - ~ã§å§‹ã¾ã‚‹è¡Œã‚’無視ã™ã‚‹ï¼š + + Ignore lines starting with: + ~ã§å§‹ã¾ã‚‹è¡Œã‚’無視ã™ã‚‹ï¼š - Point format - 点ã®å½¢å¼ + + Point format + 点ã®å½¢å¼ - Number separator: - 区切り文字: + + Number separator: + 区切り文字: - Points format: - 点ã®å½¢å¼: + + Points format: + 点ã®å½¢å¼: - Next block: - 次ã®ãƒ–ロック: + + + + Next block: + 次ã®ãƒ–ロック: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - ãªã— + + + + none + ãªã— - I,J,K (normal vector) - Iã€Jã€K(法線ベクトル) + + + + I,J,K (normal vector) + Iã€Jã€K(法線ベクトル) - I,K (normal vector 2D) - I,K (2D法線ベクトル) + + + + I,K (normal vector 2D) + I,K (2D法線ベクトル) - R,G,B (color) - R,G,B (カラー) + + + + R,G,B (color) + R,G,B (カラー) - I (Gray value) - I (グレーレベル) + + + + I (Gray value) + I (グレーレベル) - Preview - プレビュー + + Preview + プレビュー - 100 - 100 + + 100 + 100 - Number of points - ç‚¹ã®æ•° + + Number of points + ç‚¹ã®æ•° - Number of previewed lines: - Number of previewed lines: + + Number of previewed lines: + Number of previewed lines: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii点ファイル (*.asc);ã™ã¹ã¦ã®ãƒ•ァイル (*. *) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii点ファイル (*.asc);ã™ã¹ã¦ã®ãƒ•ァイル (*. *) - - + + Workbench - - Points tools - 点ツール + + Points tools + 点ツール - &Points - 点(&P) + + &Points + 点(&P) - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_nl.ts b/src/Mod/Points/Gui/Resources/translations/Points_nl.ts index 1b0d95c98..1e01385d4 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_nl.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_nl.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punten + + Points + Punten - Export points... - Exporteer punten... + + Export points... + Exporteer punten... - Exports a point cloud - Exporteert een puntenwolk + + + + Exports a point cloud + Exporteert een puntenwolk - - + + CmdPointsImport - Points - Punten + + Points + Punten - Import points... - Importeer punten... + + Import points... + Importeer punten... - Imports a point cloud - Importeert een puntenwolk + + + + Imports a point cloud + Importeert een puntenwolk - - + + CmdPointsPolyCut - Points - Punten + + Points + Punten - Cut point cloud - Snij puntenwolk + + Cut point cloud + Snij puntenwolk - Cuts a point cloud with a picked polygon - Knipt een puntwolk met een geselecteerde veelhoek + + + + Cuts a point cloud with a picked polygon + Knipt een puntwolk met een geselecteerde veelhoek - - + + CmdPointsTransform - Points - Punten + + Points + Punten - Transform Points - Transformeer Punten + + Transform Points + Transformeer Punten - Test to transform a point cloud - Test om een puntwolk te transformeren + + + + Test to transform a point cloud + Test om een puntwolk te transformeren - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII-punten import + + ASCII points import + ASCII-punten import - Template: - Sjabloon: + + Template: + Sjabloon: - Special lines - Speciale lijnen + + Special lines + Speciale lijnen - First line: - Eerste regel: + + First line: + Eerste regel: - Ignore - Negeren + + Ignore + Negeren - Cluster by lines starting with: - Clusteren van regels die beginnen met: + + Cluster by lines starting with: + Clusteren van regels die beginnen met: - Ignore lines starting with: - Negeer regels die beginnen met: + + Ignore lines starting with: + Negeer regels die beginnen met: - Point format - Punt-formaat + + Point format + Punt-formaat - Number separator: - Getal-scheidingsteken: + + Number separator: + Getal-scheidingsteken: - Points format: - Punten-formaat: + + Points format: + Punten-formaat: - Next block: - Volgend blok: + + + + Next block: + Volgend blok: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - (leeg) + + + + none + (leeg) - I,J,K (normal vector) - I,J,K (normaalvector) + + + + I,J,K (normal vector) + I,J,K (normaalvector) - I,K (normal vector 2D) - I,K (normaalvector 2D) + + + + I,K (normal vector 2D) + I,K (normaalvector 2D) - R,G,B (color) - R,G,B (kleur) + + + + R,G,B (color) + R,G,B (kleur) - I (Gray value) - I (Grijstint) + + + + I (Gray value) + I (Grijstint) - Preview - Voorbeeldweergave + + Preview + Voorbeeldweergave - 100 - 100 + + 100 + 100 - Number of points - Aantal punten + + Number of points + Aantal punten - Number of previewed lines: - Aantal regels bekeken: + + Number of previewed lines: + Aantal regels bekeken: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - ASCII-punten (*.asc);;alle bestanden (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + ASCII-punten (*.asc);;alle bestanden (*.*) - - + + Workbench - - Points tools - Punten-gereedschap + + Points tools + Punten-gereedschap - &Points - &Punten + + &Points + &Punten - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_no.ts b/src/Mod/Points/Gui/Resources/translations/Points_no.ts index 933b9d583..ebdc274fd 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_no.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_no.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punkter + + Points + Punkter - Export points... - Eksporter punkter... + + Export points... + Eksporter punkter... - Exports a point cloud - Eksporterer en punktsky + + + + Exports a point cloud + Eksporterer en punktsky - - + + CmdPointsImport - Points - Punkter + + Points + Punkter - Import points... - Importer punkt... + + Import points... + Importer punkt... - Imports a point cloud - Importerer en punktsky + + + + Imports a point cloud + Importerer en punktsky - - + + CmdPointsPolyCut - Points - Punkter + + Points + Punkter - Cut point cloud - Klipp ut punktsky + + Cut point cloud + Klipp ut punktsky - Cuts a point cloud with a picked polygon - Klipper ut en punktsky med valgt polygon + + + + Cuts a point cloud with a picked polygon + Klipper ut en punktsky med valgt polygon - - + + CmdPointsTransform - Points - Punkter + + Points + Punkter - Transform Points - Transformer punkter + + Transform Points + Transformer punkter - Test to transform a point cloud - Test for Ã¥ transformere en punktsky + + + + Test to transform a point cloud + Test for Ã¥ transformere en punktsky - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII punkt import + + ASCII points import + ASCII punkt import - Template: - Mal: + + Template: + Mal: - Special lines - Spesielle linjer + + Special lines + Spesielle linjer - First line: - Første linje: + + First line: + Første linje: - Ignore - Ignorer + + Ignore + Ignorer - Cluster by lines starting with: - Klynge av linjer som starter med: + + Cluster by lines starting with: + Klynge av linjer som starter med: - Ignore lines starting with: - Ignorer linjer som starter med: + + Ignore lines starting with: + Ignorer linjer som starter med: - Point format - Punktformat + + Point format + Punktformat - Number separator: - Number separator: + + Number separator: + Number separator: - Points format: - Punktformat: + + Points format: + Punktformat: - Next block: - Neste blokk: + + + + Next block: + Neste blokk: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - ingen + + + + none + ingen - I,J,K (normal vector) - I,J,K (normal vektor) + + + + I,J,K (normal vector) + I,J,K (normal vektor) - I,K (normal vector 2D) - I,K (normal vektor 2D) + + + + I,K (normal vector 2D) + I,K (normal vektor 2D) - R,G,B (color) - R,G,B (farge) + + + + R,G,B (color) + R,G,B (farge) - I (Gray value) - I (GrÃ¥ verdi) + + + + I (Gray value) + I (GrÃ¥ verdi) - Preview - ForhÃ¥ndsvisning + + Preview + ForhÃ¥ndsvisning - 100 - 100 + + 100 + 100 - Number of points - Antall punkter + + Number of points + Antall punkter - Number of previewed lines: - Antall forhÃ¥ndsviste linjer: + + Number of previewed lines: + Antall forhÃ¥ndsviste linjer: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii-punkter (*.asc);;Alle filer (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii-punkter (*.asc);;Alle filer (*.*) - - + + Workbench - - Points tools - Punktverktøy + + Points tools + Punktverktøy - &Points - &Punkter + + &Points + &Punkter - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_pl.ts b/src/Mod/Points/Gui/Resources/translations/Points_pl.ts index 93c315705..ebeb79d68 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_pl.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_pl.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punkty + + Points + Punkty - Export points... - Eksport punktów... + + Export points... + Eksport punktów... - Exports a point cloud - Exports a point cloud + + + + Exports a point cloud + Exports a point cloud - - + + CmdPointsImport - Points - Punkty + + Points + Punkty - Import points... - Import punktów ... + + Import points... + Import punktów ... - Imports a point cloud - Imports a point cloud + + + + Imports a point cloud + Imports a point cloud - - + + CmdPointsPolyCut - Points - Punkty + + Points + Punkty - Cut point cloud - Cut point cloud + + Cut point cloud + Cut point cloud - Cuts a point cloud with a picked polygon - Cuts a point cloud with a picked polygon + + + + Cuts a point cloud with a picked polygon + Cuts a point cloud with a picked polygon - - + + CmdPointsTransform - Points - Punkty + + Points + Punkty - Transform Points - PrzeksztaÅ‚cenie punktów + + Transform Points + PrzeksztaÅ‚cenie punktów - Test to transform a point cloud - Test to transform a point cloud + + + + Test to transform a point cloud + Test to transform a point cloud - - + + PointsGui::DlgPointsRead - - ASCII points import - Import punktów ASCII + + ASCII points import + Import punktów ASCII - Template: - Szablon: + + Template: + Szablon: - Special lines - Linie specjalne + + Special lines + Linie specjalne - First line: - First line: + + First line: + First line: - Ignore - Ignoruj + + Ignore + Ignoruj - Cluster by lines starting with: - Cluster by lines starting with: + + Cluster by lines starting with: + Cluster by lines starting with: - Ignore lines starting with: - Ignoruj ​​linie zaczynajÄ…ce siÄ™ od: + + Ignore lines starting with: + Ignoruj ​​linie zaczynajÄ…ce siÄ™ od: - Point format - Format punktu + + Point format + Format punktu - Number separator: - Separator dziesiÄ™tny: + + Number separator: + Separator dziesiÄ™tny: - Points format: - Styl Punktów: + + Points format: + Styl Punktów: - Next block: - NastÄ™pny blok: + + + + Next block: + NastÄ™pny blok: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X, Y, Z + + X,Y,Z + X, Y, Z - X,Y - X, Y + + X,Y + X, Y - none - żaden + + + + none + żaden - I,J,K (normal vector) - I,J,K (normal vector) + + + + I,J,K (normal vector) + I,J,K (normal vector) - I,K (normal vector 2D) - I,K (normal vector 2D) + + + + I,K (normal vector 2D) + I,K (normal vector 2D) - R,G,B (color) - R, G, B (kolor) + + + + R,G,B (color) + R, G, B (kolor) - I (Gray value) - I (Gray value) + + + + I (Gray value) + I (Gray value) - Preview - PodglÄ…d + + Preview + PodglÄ…d - 100 - 100 + + 100 + 100 - Number of points - Liczba punktów + + Number of points + Liczba punktów - Number of previewed lines: - Number of previewed lines: + + Number of previewed lines: + Number of previewed lines: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii Points (*.asc);;All Files (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii Points (*.asc);;All Files (*.*) - - + + Workbench - - Points tools - NarzÄ™dzia Punktów + + Points tools + NarzÄ™dzia Punktów - &Points - &Punkty + + &Points + &Punkty - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_pt.ts b/src/Mod/Points/Gui/Resources/translations/Points_pt.ts index 6f60c153b..ad97a7515 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_pt.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_pt.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Pontos + + Points + Pontos - Export points... - Exportar pontos... + + Export points... + Exportar pontos... - Exports a point cloud - Exporta uma nuvem de pontos + + + + Exports a point cloud + Exporta uma nuvem de pontos - - + + CmdPointsImport - Points - Pontos + + Points + Pontos - Import points... - Importar pontos... + + Import points... + Importar pontos... - Imports a point cloud - Importar uma nuvem de pontos + + + + Imports a point cloud + Importar uma nuvem de pontos - - + + CmdPointsPolyCut - Points - Pontos + + Points + Pontos - Cut point cloud - Cortar nuvem de pontos + + Cut point cloud + Cortar nuvem de pontos - Cuts a point cloud with a picked polygon - Corta uma nuvem de pontos com um polígono traçado + + + + Cuts a point cloud with a picked polygon + Corta uma nuvem de pontos com um polígono traçado - - + + CmdPointsTransform - Points - Pontos + + Points + Pontos - Transform Points - Transformar pontos + + Transform Points + Transformar pontos - Test to transform a point cloud - Teste para transformar uma nuvem de pontos + + + + Test to transform a point cloud + Teste para transformar uma nuvem de pontos - - + + PointsGui::DlgPointsRead - - ASCII points import - Importar pontos ASCII + + ASCII points import + Importar pontos ASCII - Template: - Modelo: + + Template: + Modelo: - Special lines - Linhas especiais + + Special lines + Linhas especiais - First line: - Primeira linha: + + First line: + Primeira linha: - Ignore - Ignorar + + Ignore + Ignorar - Cluster by lines starting with: - Agrupar por linhas começando com: + + Cluster by lines starting with: + Agrupar por linhas começando com: - Ignore lines starting with: - Ignore linhas que comecem com: + + Ignore lines starting with: + Ignore linhas que comecem com: - Point format - Formato de ponto + + Point format + Formato de ponto - Number separator: - Separador de número: + + Number separator: + Separador de número: - Points format: - Formato de pontos: + + Points format: + Formato de pontos: - Next block: - Próximo bloco: + + + + Next block: + Próximo bloco: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - nenhum + + + + none + nenhum - I,J,K (normal vector) - I,J,K (vetor normal) + + + + I,J,K (normal vector) + I,J,K (vetor normal) - I,K (normal vector 2D) - I,K (vetor normal 2D) + + + + I,K (normal vector 2D) + I,K (vetor normal 2D) - R,G,B (color) - R,G,B (cor) + + + + R,G,B (color) + R,G,B (cor) - I (Gray value) - I (valor de cinza) + + + + I (Gray value) + I (valor de cinza) - Preview - Pré-visualização + + Preview + Pré-visualização - 100 - 100 + + 100 + 100 - Number of points - Número de pontos + + Number of points + Número de pontos - Number of previewed lines: - Número de linhas visualizadas: + + Number of previewed lines: + Número de linhas visualizadas: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Pontos Ascii (*.asc);; Todos os Arquivos (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Pontos Ascii (*.asc);; Todos os Arquivos (*.*) - - + + Workbench - - Points tools - Ferramentas de pontos + + Points tools + Ferramentas de pontos - &Points - &Pontos + + &Points + &Pontos - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_ru.ts b/src/Mod/Points/Gui/Resources/translations/Points_ru.ts index 9a5080dd2..e6ee99514 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_ru.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_ru.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Точки + + Points + Точки - Export points... - ЭкÑпорт точек... + + Export points... + ЭкÑпорт точек... - Exports a point cloud - ЭкÑпорт облака точек + + + + Exports a point cloud + ЭкÑпорт облака точек - - + + CmdPointsImport - Points - Точки + + Points + Точки - Import points... - Импорт точек... + + Import points... + Импорт точек... - Imports a point cloud - Импорт облака точек + + + + Imports a point cloud + Импорт облака точек - - + + CmdPointsPolyCut - Points - Точки + + Points + Точки - Cut point cloud - Вырезать облако точек + + Cut point cloud + Вырезать облако точек - Cuts a point cloud with a picked polygon - Вырезать облако точек ограниченное отмеченным полигоном + + + + Cuts a point cloud with a picked polygon + Вырезать облако точек ограниченное отмеченным полигоном - - + + CmdPointsTransform - Points - Точки + + Points + Точки - Transform Points - Преобразование точек + + Transform Points + Преобразование точек - Test to transform a point cloud - ТеÑÑ‚ Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð»Ð°ÐºÐ° точек + + + + Test to transform a point cloud + ТеÑÑ‚ Ð´Ð»Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ð»Ð°ÐºÐ° точек - - + + PointsGui::DlgPointsRead - - ASCII points import - Импорт точек ASCII + + ASCII points import + Импорт точек ASCII - Template: - Шаблон: + + Template: + Шаблон: - Special lines - Специальные линии + + Special lines + Специальные линии - First line: - ÐŸÐµÑ€Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ: + + First line: + ÐŸÐµÑ€Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ: - Ignore - Игнорировать + + Ignore + Игнорировать - Cluster by lines starting with: - КлаÑтер по линии, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ: + + Cluster by lines starting with: + КлаÑтер по линии, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ: - Ignore lines starting with: - Игнорировать Ñтроки, начинающиеÑÑ Ñ: + + Ignore lines starting with: + Игнорировать Ñтроки, начинающиеÑÑ Ñ: - Point format - Формат точек + + Point format + Формат точек - Number separator: - ЧиÑловой разделитель: + + Number separator: + ЧиÑловой разделитель: - Points format: - Формат точек: + + Points format: + Формат точек: - Next block: - Следующий блок: + + + + Next block: + Следующий блок: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X, Y, Z + + X,Y,Z + X, Y, Z - X,Y - X, Y + + X,Y + X, Y - none - ОтÑутÑтвует + + + + none + ОтÑутÑтвует - I,J,K (normal vector) - I,J,K(нормальный вектор) + + + + I,J,K (normal vector) + I,J,K(нормальный вектор) - I,K (normal vector 2D) - I,K(нормальный вектор 2D) + + + + I,K (normal vector 2D) + I,K(нормальный вектор 2D) - R,G,B (color) - R, G, B (цвет) + + + + R,G,B (color) + R, G, B (цвет) - I (Gray value) - I (значение Ñерого) + + + + I (Gray value) + I (значение Ñерого) - Preview - Предварительный проÑмотр + + Preview + Предварительный проÑмотр - 100 - 100 + + 100 + 100 - Number of points - КоличеÑтво точек + + Number of points + КоличеÑтво точек - Number of previewed lines: - КоличеÑтво предварительно проÑматриваемых Ñтрок: + + Number of previewed lines: + КоличеÑтво предварительно проÑматриваемых Ñтрок: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Точки Ascii (*.asc);;Ð’Ñе файлы (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Точки Ascii (*.asc);;Ð’Ñе файлы (*.*) - - + + Workbench - - Points tools - ИнÑтрументы Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐµÐº + + Points tools + ИнÑтрументы Ð´Ð»Ñ Ñ‚Ð¾Ñ‡ÐµÐº - &Points - &Точки + + &Points + &Точки - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_se.ts b/src/Mod/Points/Gui/Resources/translations/Points_se.ts index 84184e780..75e3b387e 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_se.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_se.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Punkter + + Points + Punkter - Export points... - Exportera punkter... + + Export points... + Exportera punkter... - Exports a point cloud - Exporterar ett punktmoln + + + + Exports a point cloud + Exporterar ett punktmoln - - + + CmdPointsImport - Points - Punkter + + Points + Punkter - Import points... - Importera punkter... + + Import points... + Importera punkter... - Imports a point cloud - Importera ett punktmoln + + + + Imports a point cloud + Importera ett punktmoln - - + + CmdPointsPolyCut - Points - Punkter + + Points + Punkter - Cut point cloud - Klipp ut punktmoln + + Cut point cloud + Klipp ut punktmoln - Cuts a point cloud with a picked polygon - Klipper ut ett punktmoln med en vald polygon + + + + Cuts a point cloud with a picked polygon + Klipper ut ett punktmoln med en vald polygon - - + + CmdPointsTransform - Points - Punkter + + Points + Punkter - Transform Points - Omvandla punkter + + Transform Points + Omvandla punkter - Test to transform a point cloud - Testa att omforma ett punktmoln + + + + Test to transform a point cloud + Testa att omforma ett punktmoln - - + + PointsGui::DlgPointsRead - - ASCII points import - Importera ASCII punkter + + ASCII points import + Importera ASCII punkter - Template: - mall: + + Template: + mall: - Special lines - Special linjer + + Special lines + Special linjer - First line: - Första linjen: + + First line: + Första linjen: - Ignore - Ignorera + + Ignore + Ignorera - Cluster by lines starting with: - Linjekluster startar med: + + Cluster by lines starting with: + Linjekluster startar med: - Ignore lines starting with: - Ignorera linjer som startar med: + + Ignore lines starting with: + Ignorera linjer som startar med: - Point format - Punktformat + + Point format + Punktformat - Number separator: - Nummerseparator: + + Number separator: + Nummerseparator: - Points format: - Punktformat: + + Points format: + Punktformat: - Next block: - Nästa block: + + + + Next block: + Nästa block: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X, Y, Z + + X,Y,Z + X, Y, Z - X,Y - X, Y + + X,Y + X, Y - none - inget + + + + none + inget - I,J,K (normal vector) - I,J,K (normalvektor) + + + + I,J,K (normal vector) + I,J,K (normalvektor) - I,K (normal vector 2D) - I,K (2D nomalvektor) + + + + I,K (normal vector 2D) + I,K (2D nomalvektor) - R,G,B (color) - R,G,B (färg) + + + + R,G,B (color) + R,G,B (färg) - I (Gray value) - I (GrÃ¥ton) + + + + I (Gray value) + I (GrÃ¥ton) - Preview - Förhandsvisning + + Preview + Förhandsvisning - 100 - 100 + + 100 + 100 - Number of points - Antal punkter + + Number of points + Antal punkter - Number of previewed lines: - Antal förhandsgranskade rader: + + Number of previewed lines: + Antal förhandsgranskade rader: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii Punkter (*.asc);;Alla Filer (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii Punkter (*.asc);;Alla Filer (*.*) - - + + Workbench - - Points tools - Punktverktyg + + Points tools + Punktverktyg - &Points - &Punkter + + &Points + &Punkter - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_uk.ts b/src/Mod/Points/Gui/Resources/translations/Points_uk.ts index 66a28c6c6..25aefdbad 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_uk.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_uk.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - Точки + + Points + Точки - Export points... - ЕкÑпорт точок... + + Export points... + ЕкÑпорт точок... - Exports a point cloud - ЕкÑпорт хмари точок + + + + Exports a point cloud + ЕкÑпорт хмари точок - - + + CmdPointsImport - Points - Точки + + Points + Точки - Import points... - Імпорт точок... + + Import points... + Імпорт точок... - Imports a point cloud - Імпорт хмари точок + + + + Imports a point cloud + Імпорт хмари точок - - + + CmdPointsPolyCut - Points - Точки + + Points + Точки - Cut point cloud - Вирізати хмару точок + + Cut point cloud + Вирізати хмару точок - Cuts a point cloud with a picked polygon - Вирізати точки у виділеній облаÑті + + + + Cuts a point cloud with a picked polygon + Вирізати точки у виділеній облаÑті - - + + CmdPointsTransform - Points - Точки + + Points + Точки - Transform Points - ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº + + Transform Points + ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº - Test to transform a point cloud - Ð’Ð¸Ð¿Ñ€Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ…Ð¼Ð°Ñ€Ð¸ точок + + + + Test to transform a point cloud + Ð’Ð¸Ð¿Ñ€Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ…Ð¼Ð°Ñ€Ð¸ точок - - + + PointsGui::DlgPointsRead - - ASCII points import - Імпорт точок ASCII + + ASCII points import + Імпорт точок ASCII - Template: - Шаблон: + + Template: + Шаблон: - Special lines - Спеціальні лінії + + Special lines + Спеціальні лінії - First line: - Перший Ñ€Ñдок: + + First line: + Перший Ñ€Ñдок: - Ignore - Ігнорувати + + Ignore + Ігнорувати - Cluster by lines starting with: - Ð¡ÐºÑƒÐ¿Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ лінії, починаючи з: + + Cluster by lines starting with: + Ð¡ÐºÑƒÐ¿Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ лінії, починаючи з: - Ignore lines starting with: - Ігнорувати Ñ€Ñдки, що починаютьÑÑ Ð·: + + Ignore lines starting with: + Ігнорувати Ñ€Ñдки, що починаютьÑÑ Ð·: - Point format - Формат точки + + Point format + Формат точки - Number separator: - Number separator: + + Number separator: + Number separator: - Points format: - Формат точок: + + Points format: + Формат точок: - Next block: - ÐаÑтупний блок: + + + + Next block: + ÐаÑтупний блок: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - немає + + + + none + немає - I,J,K (normal vector) - I,J,K (нормальний вектор) + + + + I,J,K (normal vector) + I,J,K (нормальний вектор) - I,K (normal vector 2D) - I,K (нормальний вектор 2D) + + + + I,K (normal vector 2D) + I,K (нормальний вектор 2D) - R,G,B (color) - R,G,B (колір) + + + + R,G,B (color) + R,G,B (колір) - I (Gray value) - I (Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñірого) + + + + I (Gray value) + I (Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñірого) - Preview - Попередній переглÑд + + Preview + Попередній переглÑд - 100 - 100 + + 100 + 100 - Number of points - КількіÑть точок + + Number of points + КількіÑть точок - Number of previewed lines: - КількіÑть ліній в попередньому переглÑді: + + Number of previewed lines: + КількіÑть ліній в попередньому переглÑді: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii точки (*.asc);;Ð’ÑÑ– файли (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii точки (*.asc);;Ð’ÑÑ– файли (*.*) - - + + Workbench - - Points tools - ІнÑтрументи точок + + Points tools + ІнÑтрументи точок - &Points - &Точки + + &Points + &Точки - + diff --git a/src/Mod/Points/Gui/Resources/translations/Points_zh.ts b/src/Mod/Points/Gui/Resources/translations/Points_zh.ts index 5a47f88a8..c68b9f2c0 100644 --- a/src/Mod/Points/Gui/Resources/translations/Points_zh.ts +++ b/src/Mod/Points/Gui/Resources/translations/Points_zh.ts @@ -1,193 +1,251 @@ - - + + CmdPointsExport - - Points - 点 + + Points + 点 - Export points... - 导出点... + + Export points... + 导出点... - Exports a point cloud - 导出点云 + + + + Exports a point cloud + 导出点云 - - + + CmdPointsImport - Points - 点 + + Points + 点 - Import points... - 输入点... + + Import points... + 输入点... - Imports a point cloud - 导入点云 + + + + Imports a point cloud + 导入点云 - - + + CmdPointsPolyCut - Points - 点 + + Points + 点 - Cut point cloud - 剪切点云 + + Cut point cloud + 剪切点云 - Cuts a point cloud with a picked polygon - 剪切多边形选择框中的点云 + + + + Cuts a point cloud with a picked polygon + 剪切多边形选择框中的点云 - - + + CmdPointsTransform - Points - 点 + + Points + 点 - Transform Points - å˜æ¢ç‚¹ + + Transform Points + å˜æ¢ç‚¹ - Test to transform a point cloud - å˜æ¢ç‚¹äº‘测试 + + + + Test to transform a point cloud + å˜æ¢ç‚¹äº‘测试 - - + + PointsGui::DlgPointsRead - - ASCII points import - ASCII点导入 + + ASCII points import + ASCII点导入 - Template: - 模æ¿: + + Template: + 模æ¿: - Special lines - 特殊行 + + Special lines + 特殊行 - First line: - 首行: + + First line: + 首行: - Ignore - 忽略 + + Ignore + 忽略 - Cluster by lines starting with: - 按行开始集群: + + Cluster by lines starting with: + 按行开始集群: - Ignore lines starting with: - 忽略以此开头的行: + + Ignore lines starting with: + 忽略以此开头的行: - Point format - ç‚¹æ ¼å¼ + + Point format + ç‚¹æ ¼å¼ - Number separator: - 数分隔符: + + Number separator: + 数分隔符: - Points format: - 点的格å¼: + + Points format: + 点的格å¼: - Next block: - 下一区å—: + + + + Next block: + 下一区å—: - , - , + + , + , - ; - ; + + ; + ; - \t - \t + + \t + \t - \w - \w + + \w + \w - X,Y,Z - X,Y,Z + + X,Y,Z + X,Y,Z - X,Y - X,Y + + X,Y + X,Y - none - æ—  + + + + none + æ—  - I,J,K (normal vector) - I,J,K(法å‘é‡) + + + + I,J,K (normal vector) + I,J,K(法å‘é‡) - I,K (normal vector 2D) - I,K(2D法å‘é‡) + + + + I,K (normal vector 2D) + I,K(2D法å‘é‡) - R,G,B (color) - RGB颜色 + + + + R,G,B (color) + RGB颜色 - I (Gray value) - I(ç°åº¦å€¼) + + + + I (Gray value) + I(ç°åº¦å€¼) - Preview - 预览 + + Preview + 预览 - 100 - 100 + + 100 + 100 - Number of points - ç‚¹çš„æ•°é‡ + + Number of points + ç‚¹çš„æ•°é‡ - Number of previewed lines: - 预览行数: + + Number of previewed lines: + 预览行数: - - + + QObject - - Ascii Points (*.asc);;All Files (*.*) - Ascii 点(*.asc),所有文件 (*.*) + + + Ascii Points (*.asc);;All Files (*.*) + Ascii 点(*.asc),所有文件 (*.*) - - + + Workbench - - Points tools - 点工具 + + Points tools + 点工具 - &Points - 点(&P) + + &Points + 点(&P) - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_af.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_af.ts index e84a75847..56b675e7b 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_af.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_af.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Lêer + + File + Lêer - &Export project... - &Voer projek uit... + + &Export project... + &Voer projek uit... - Export the Povray project file - Voer die Povray projeklêer uit + + Export the Povray project file + Voer die Povray projeklêer uit - - + + CmdRaytracingNewPartSegment - Raytracing - Straalsporing + + Raytracing + Straalsporing - Insert part - Voeg onderdeel in + + Insert part + Voeg onderdeel in - Insert a new part object into a Povray project - Voeg 'n nuwe onderdeelvoorwerp in na 'n Povray-projek + + Insert a new part object into a Povray project + Voeg 'n nuwe onderdeelvoorwerp in na 'n Povray-projek - - + + CmdRaytracingNewPovrayProject - Raytracing - Straalsporing + + Raytracing + Straalsporing - New Povray project - Nuwe Povray-projek + + New Povray project + Nuwe Povray-projek - Insert new Povray project into the document - Voeg nuwe Povray-projek in na die dokument + + Insert new Povray project into the document + Voeg nuwe Povray-projek in na die dokument - - + + CmdRaytracingWriteCamera - Raytracing - Straalsporing + + Raytracing + Straalsporing - Export camera to povray... - Export camera to povray... + + Export camera to povray... + Export camera to povray... - Export the camera positon of the active 3D view in PovRay format to a file - Voer die kameraposisie van die aktiewe 3D-aansig uit na 'n Povray-lêer + + Export the camera positon of the active 3D view in PovRay format to a file + Voer die kameraposisie van die aktiewe 3D-aansig uit na 'n Povray-lêer - - + + CmdRaytracingWritePart - Raytracing - Straalsporing + + Raytracing + Straalsporing - Export part to povray... - Voer onderdeel uit na Povray... + + Export part to povray... + Voer onderdeel uit na Povray... - Write the selected Part (object) as a povray file - Skryf die gekose onderdeel (voorwerp) na 'n Povray-lêer + + Write the selected Part (object) as a povray file + Skryf die gekose onderdeel (voorwerp) na 'n Povray-lêer - - + + CmdRaytracingWriteView - Raytracing - Straalsporing + + + + No perspective camera + - Export view to povray... - Voer uit na Povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Skryf die aktiewe 3D-vertoning met kamera en al sy inhoud na 'n Povray-lêer + + Raytracing + Straalsporing - - + + + Export view to povray... + Voer uit na Povray... + + + + Write the active 3D view with camera and all its content to a povray file + Skryf die aktiewe 3D-vertoning met kamera en al sy inhoud na 'n Povray-lêer + + + QObject - Povray(*.pov) - Povray (*.pov) + + + + + Povray(*.pov) + Povray (*.pov) - All Files (*.*) - Alle lêers (*.*) + + + + + All Files (*.*) + Alle lêers (*.*) - Export page - Voer bladsy uit + + + + + Export page + Voer bladsy uit - Wrong selection - Verkeerde keuse + + + Wrong selection + Verkeerde keuse - Select a Part object. - Kies 'n onderdeel. + + Select a Part object. + Kies 'n onderdeel. - No Povray project to insert - Geen Povrayprojek om in te voeg nie + + + No Povray project to insert + Geen Povrayprojek om in te voeg nie - Create a Povray project to insert a view. - Skep 'n Povrayprojek om 'n aansig in te voeg. + + Create a Povray project to insert a view. + Skep 'n Povrayprojek om 'n aansig in te voeg. - Select one Povray project object. - Kies een Povray projekvoorwerp. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Kies een Povray projekvoorwerp. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Straalsporing + + Raytracing + Straalsporing - Directories - Gidse + + Directories + Gidse - Default Project dir: - Standaard Projekgids: + + Default Project dir: + Standaard Projekgids: - Camera file name: - Kameralêernaam: + + Camera file name: + Kameralêernaam: - Part file name: - Onderdeellêernaam: + + Part file name: + Onderdeellêernaam: - TempCamera.inc - TempKamera.inc + + TempCamera.inc + TempKamera.inc - TempPart.inc - TempOnderdeel.inc + + TempPart.inc + TempOnderdeel.inc - Mesh export settings - Maas uitvoerinstellings + + Mesh export settings + Maas uitvoerinstellings - max mesh deviation: - Maksimum maasafwyking: + + max mesh deviation: + Maksimum maasafwyking: - Do not calculate vertex normals - Bereken nie die hoekpuntnormaallyne nie + + Do not calculate vertex normals + Bereken nie die hoekpuntnormaallyne nie - Write u,v coordinates - Skryf u,v koördinate + + Write u,v coordinates + Skryf u,v koördinate - - + + Workbench - - &Raytracing - &Straalsporing + + &Raytracing + &Straalsporing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_de.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_de.ts index 2c93383be..5da114aa0 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_de.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_de.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Datei + + File + Datei - &Export project... - Projekt &exportieren... + + &Export project... + Projekt &exportieren... - Export the Povray project file - Povray-Projektdatei exportieren + + Export the Povray project file + Povray-Projektdatei exportieren - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Teil einfügen + + Insert part + Teil einfügen - Insert a new part object into a Povray project - Ein neues Formteil in ein Povray-Projekt einfügen + + Insert a new part object into a Povray project + Ein neues Formteil in ein Povray-Projekt einfügen - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Neues Povray-Projekt + + New Povray project + Neues Povray-Projekt - Insert new Povray project into the document - Neues Povray-Projekt in Dokument einfügen + + Insert new Povray project into the document + Neues Povray-Projekt in Dokument einfügen - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Kamera nach Povray exportieren... + + Export camera to povray... + Kamera nach Povray exportieren... - Export the camera positon of the active 3D view in PovRay format to a file - Kameraposition der aktiven 3D-Ansicht im Povray-Format in eine Datei exportieren + + Export the camera positon of the active 3D view in PovRay format to a file + Kameraposition der aktiven 3D-Ansicht im Povray-Format in eine Datei exportieren - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Formteil nach Povray exportieren... + + Export part to povray... + Formteil nach Povray exportieren... - Write the selected Part (object) as a povray file - Selektiertes Formteil in Povray-Datei schreiben + + Write the selected Part (object) as a povray file + Selektiertes Formteil in Povray-Datei schreiben - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Ansicht nach Povray exportieren... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Aktive 3D-Ansicht mit Kamera und ganzem Inhalt in eine Povray-Datei schreiben + + Raytracing + Raytracing - - + + + Export view to povray... + Ansicht nach Povray exportieren... + + + + Write the active 3D view with camera and all its content to a povray file + Aktive 3D-Ansicht mit Kamera und ganzem Inhalt in eine Povray-Datei schreiben + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - Alle Dateien (*.*) + + + + + All Files (*.*) + Alle Dateien (*.*) - Export page - Seite exportieren + + + + + Export page + Seite exportieren - Wrong selection - Falsche Auswahl + + + Wrong selection + Falsche Auswahl - Select a Part object. - Formteil auswählen. + + Select a Part object. + Formteil auswählen. - No Povray project to insert - Kein Povray-Projekt zum Einfügen + + + No Povray project to insert + Kein Povray-Projekt zum Einfügen - Create a Povray project to insert a view. - Povray-Projekt erstellen, um eine Ansicht einzufügen. + + Create a Povray project to insert a view. + Povray-Projekt erstellen, um eine Ansicht einzufügen. - Select one Povray project object. - Wählen Sie ein Povray-Projekt aus. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Wählen Sie ein Povray-Projekt aus. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Verzeichnisse + + Directories + Verzeichnisse - Default Project dir: - Standard-Projektverzeichnis: + + Default Project dir: + Standard-Projektverzeichnis: - Camera file name: - Kamera-Dateiname: + + Camera file name: + Kamera-Dateiname: - Part file name: - Formteil-Dateiname: + + Part file name: + Formteil-Dateiname: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Mesh-Exporteinstellungen + + Mesh export settings + Mesh-Exporteinstellungen - max mesh deviation: - max. Mesh-Abweichung: + + max mesh deviation: + max. Mesh-Abweichung: - Do not calculate vertex normals - Vertexnormalen nicht berechnen + + Do not calculate vertex normals + Vertexnormalen nicht berechnen - Write u,v coordinates - U, V-Koordinaten schreiben + + Write u,v coordinates + U, V-Koordinaten schreiben - - + + Workbench - - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_es.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_es.ts index ca80c6fbe..04eaa62ed 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_es.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_es.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Archivo + + File + Archivo - &Export project... - &Exportar proyecto... + + &Export project... + &Exportar proyecto... - Export the Povray project file - Exportar el archivo de proyecto Povray + + Export the Povray project file + Exportar el archivo de proyecto Povray - - + + CmdRaytracingNewPartSegment - Raytracing - Trazado de rayos + + Raytracing + Trazado de rayos - Insert part - Insertar pieza + + Insert part + Insertar pieza - Insert a new part object into a Povray project - Insertar objeto 'Parte' nuevo en un proyecto de Povray + + Insert a new part object into a Povray project + Insertar objeto 'Parte' nuevo en un proyecto de Povray - - + + CmdRaytracingNewPovrayProject - Raytracing - Trazado de rayos + + Raytracing + Trazado de rayos - New Povray project - Proyecto Povray nuevo + + New Povray project + Proyecto Povray nuevo - Insert new Povray project into the document - Insertar proyecto Povray nuevo en el documento + + Insert new Povray project into the document + Insertar proyecto Povray nuevo en el documento - - + + CmdRaytracingWriteCamera - Raytracing - Trazado de rayos + + Raytracing + Trazado de rayos - Export camera to povray... - Export camera to povray... + + Export camera to povray... + Export camera to povray... - Export the camera positon of the active 3D view in PovRay format to a file - Exportar la posición de la cámara de la vista 3D activa en formato PovRay a un archivo + + Export the camera positon of the active 3D view in PovRay format to a file + Exportar la posición de la cámara de la vista 3D activa en formato PovRay a un archivo - - + + CmdRaytracingWritePart - Raytracing - Trazado de rayos + + Raytracing + Trazado de rayos - Export part to povray... - Exportar pieza a povray... + + Export part to povray... + Exportar pieza a povray... - Write the selected Part (object) as a povray file - Escribir la Parte (objecto) seleccionada a un archivo povray + + Write the selected Part (object) as a povray file + Escribir la Parte (objecto) seleccionada a un archivo povray - - + + CmdRaytracingWriteView - Raytracing - Trazado de rayos + + + + No perspective camera + - Export view to povray... - Exportar vista a povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Escribir la vista 3D activa con cámara y todo su contenido a un archivo povray + + Raytracing + Trazado de rayos - - + + + Export view to povray... + Exportar vista a povray... + + + + Write the active 3D view with camera and all its content to a povray file + Escribir la vista 3D activa con cámara y todo su contenido a un archivo povray + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - Todos los archivos (*.*) + + + + + All Files (*.*) + Todos los archivos (*.*) - Export page - Exportar página + + + + + Export page + Exportar página - Wrong selection - Selección errónea + + + Wrong selection + Selección errónea - Select a Part object. - Seleccione un objecto tipo Parte. + + Select a Part object. + Seleccione un objecto tipo Parte. - No Povray project to insert - Ningún proyecto Povray para insertar + + + No Povray project to insert + Ningún proyecto Povray para insertar - Create a Povray project to insert a view. - Crear un proyecto Povray para insertar una vista. + + Create a Povray project to insert a view. + Crear un proyecto Povray para insertar una vista. - Select one Povray project object. - Seleccione un objeto tipo Proyecto Povray. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Seleccione un objeto tipo Proyecto Povray. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Trazado de rayos + + Raytracing + Trazado de rayos - Directories - Directorios + + Directories + Directorios - Default Project dir: - Directorio por defecto del proyecto: + + Default Project dir: + Directorio por defecto del proyecto: - Camera file name: - Nombre del archivo de la cámara: + + Camera file name: + Nombre del archivo de la cámara: - Part file name: - Nombre del archivo de la pieza: + + Part file name: + Nombre del archivo de la pieza: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Configuración de la exportación de mallas + + Mesh export settings + Configuración de la exportación de mallas - max mesh deviation: - Desviación máxima de la malla: + + max mesh deviation: + Desviación máxima de la malla: - Do not calculate vertex normals - No calcular vértices normales + + Do not calculate vertex normals + No calcular vértices normales - Write u,v coordinates - Escribir las coordenadas u,v + + Write u,v coordinates + Escribir las coordenadas u,v - - + + Workbench - - &Raytracing - &Trazado de rayos + + &Raytracing + &Trazado de rayos - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fi.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fi.ts index c37aed27e..0ef434a17 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fi.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fi.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Tiedosto + + File + Tiedosto - &Export project... - Projektin &vienti... + + &Export project... + Projektin &vienti... - Export the Povray project file - Vie Povray-projektitiedosto + + Export the Povray project file + Vie Povray-projektitiedosto - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Lisää osa + + Insert part + Lisää osa - Insert a new part object into a Povray project - Insert a new part object into a Povray project + + Insert a new part object into a Povray project + Insert a new part object into a Povray project - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Uusi Povray-projekti + + New Povray project + Uusi Povray-projekti - Insert new Povray project into the document - Insert new Povray project into the document + + Insert new Povray project into the document + Insert new Povray project into the document - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Export camera to povray... + + Export camera to povray... + Export camera to povray... - Export the camera positon of the active 3D view in PovRay format to a file - Export the camera positon of the active 3D view in PovRay format to a file + + Export the camera positon of the active 3D view in PovRay format to a file + Export the camera positon of the active 3D view in PovRay format to a file - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Vie osa povray-malliin ... + + Export part to povray... + Vie osa povray-malliin ... - Write the selected Part (object) as a povray file - Write the selected Part (object) as a povray file + + Write the selected Part (object) as a povray file + Write the selected Part (object) as a povray file - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Vie näkymä povray-muotoon ... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Write the active 3D view with camera and all its content to a povray file + + Raytracing + Raytracing - - + + + Export view to povray... + Vie näkymä povray-muotoon ... + + + + Write the active 3D view with camera and all its content to a povray file + Write the active 3D view with camera and all its content to a povray file + + + QObject - Povray(*.pov) - Povray(*.POV) + + + + + Povray(*.pov) + Povray(*.POV) - All Files (*.*) - Kaikki tiedostot (*.*) + + + + + All Files (*.*) + Kaikki tiedostot (*.*) - Export page - Vie sivu + + + + + Export page + Vie sivu - Wrong selection - Väärä valinta + + + Wrong selection + Väärä valinta - Select a Part object. - Valitse osa-objekti. + + Select a Part object. + Valitse osa-objekti. - No Povray project to insert - No Povray project to insert + + + No Povray project to insert + No Povray project to insert - Create a Povray project to insert a view. - Create a Povray project to insert a view. + + Create a Povray project to insert a view. + Create a Povray project to insert a view. - Select one Povray project object. - Valitse yksi Povray-projektin objekti. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Valitse yksi Povray-projektin objekti. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Hakemistot + + Directories + Hakemistot - Default Project dir: - Oletus projektihakemisto: + + Default Project dir: + Oletus projektihakemisto: - Camera file name: - Camera file name: + + Camera file name: + Camera file name: - Part file name: - Part file name: + + Part file name: + Part file name: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Mesh export settings + + Mesh export settings + Mesh export settings - max mesh deviation: - max mesh deviation: + + max mesh deviation: + max mesh deviation: - Do not calculate vertex normals - Älä laskea normaaleita kärkipisteitä + + Do not calculate vertex normals + Älä laskea normaaleita kärkipisteitä - Write u,v coordinates - Kirjoita u,v koordinaatit + + Write u,v coordinates + Kirjoita u,v koordinaatit - - + + Workbench - - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fr.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fr.ts index faf5f5821..330b3ebe5 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fr.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_fr.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Fichier + + File + Fichier - &Export project... - &Exporter le projet... + + &Export project... + &Exporter le projet... - Export the Povray project file - Exporter le fichier de projet PovRay + + Export the Povray project file + Exporter le fichier de projet PovRay - - + + CmdRaytracingNewPartSegment - Raytracing - Lancer de rayon + + Raytracing + Lancer de rayon - Insert part - Insérer une pièce + + Insert part + Insérer une pièce - Insert a new part object into a Povray project - Insérer un nouvel objet pièce dans un projet PovRay + + Insert a new part object into a Povray project + Insérer un nouvel objet pièce dans un projet PovRay - - + + CmdRaytracingNewPovrayProject - Raytracing - Lancer de rayon + + Raytracing + Lancer de rayon - New Povray project - Nouveau projet PovRay + + New Povray project + Nouveau projet PovRay - Insert new Povray project into the document - Insérer un nouveau projet PovRay dans le document + + Insert new Povray project into the document + Insérer un nouveau projet PovRay dans le document - - + + CmdRaytracingWriteCamera - Raytracing - Lancer de rayon + + Raytracing + Lancer de rayon - Export camera to povray... - Exporter la caméra vers PovRay... + + Export camera to povray... + Exporter la caméra vers PovRay... - Export the camera positon of the active 3D view in PovRay format to a file - Exporter la position de la caméra de la vue 3D active vers un fichier au format PovRay + + Export the camera positon of the active 3D view in PovRay format to a file + Exporter la position de la caméra de la vue 3D active vers un fichier au format PovRay - - + + CmdRaytracingWritePart - Raytracing - Lancer de rayon + + Raytracing + Lancer de rayon - Export part to povray... - Exporter la pièce vers povray... + + Export part to povray... + Exporter la pièce vers povray... - Write the selected Part (object) as a povray file - Enregistrer la pièce sélectionnée (objet) sous forme de fichier povray + + Write the selected Part (object) as a povray file + Enregistrer la pièce sélectionnée (objet) sous forme de fichier povray - - + + CmdRaytracingWriteView - Raytracing - Lancer de rayon + + + + No perspective camera + - Export view to povray... - Exporter la vue vers povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Enregistrer la vue 3D active avec la caméra et tout son contenu dans un fichier povray + + Raytracing + Lancer de rayon - - + + + Export view to povray... + Exporter la vue vers povray... + + + + Write the active 3D view with camera and all its content to a povray file + Enregistrer la vue 3D active avec la caméra et tout son contenu dans un fichier povray + + + QObject - Povray(*.pov) - Povray (*.pov) + + + + + Povray(*.pov) + Povray (*.pov) - All Files (*.*) - Tous les fichiers (*.*) + + + + + All Files (*.*) + Tous les fichiers (*.*) - Export page - Exporter la page + + + + + Export page + Exporter la page - Wrong selection - Sélection invalide + + + Wrong selection + Sélection invalide - Select a Part object. - Sélectionnez un objet pièce. + + Select a Part object. + Sélectionnez un objet pièce. - No Povray project to insert - Aucun projet PovRay à insérer + + + No Povray project to insert + Aucun projet PovRay à insérer - Create a Povray project to insert a view. - Créez un projet Povray pour insérer une vue. + + Create a Povray project to insert a view. + Créez un projet Povray pour insérer une vue. - Select one Povray project object. - Sélectionnez un objet de projet Povray. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Sélectionnez un objet de projet Povray. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Lancer de rayon + + Raytracing + Lancer de rayon - Directories - Répertoires + + Directories + Répertoires - Default Project dir: - Répertoire par défaut du projet : + + Default Project dir: + Répertoire par défaut du projet : - Camera file name: - Nom du fichier caméra : + + Camera file name: + Nom du fichier caméra : - Part file name: - Nom du fichier pièce : + + Part file name: + Nom du fichier pièce : - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Paramètres d'exportation de maillage + + Mesh export settings + Paramètres d'exportation de maillage - max mesh deviation: - écart maximum des maillages : + + max mesh deviation: + écart maximum des maillages : - Do not calculate vertex normals - Ne pas calculer les normales des sommets + + Do not calculate vertex normals + Ne pas calculer les normales des sommets - Write u,v coordinates - Écrire les coordonnées (u,v) + + Write u,v coordinates + Écrire les coordonnées (u,v) - - + + Workbench - - &Raytracing - Lancer de &Rayon + + &Raytracing + Lancer de &Rayon - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hr.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hr.ts index ccf867101..615bed673 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hr.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hr.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Datoteka + + File + Datoteka - &Export project... - &Izvezi projekt... + + &Export project... + &Izvezi projekt... - Export the Povray project file - Izvoz datoteka Povray projekt + + Export the Povray project file + Izvoz datoteka Povray projekt - - + + CmdRaytracingNewPartSegment - Raytracing - Metode trasiranja putem zrake + + Raytracing + Metode trasiranja putem zrake - Insert part - Umetni dio + + Insert part + Umetni dio - Insert a new part object into a Povray project - Umetnite novi dio objekta u Povray-projekta + + Insert a new part object into a Povray project + Umetnite novi dio objekta u Povray-projekta - - + + CmdRaytracingNewPovrayProject - Raytracing - Metode trasiranja putem zrake + + Raytracing + Metode trasiranja putem zrake - New Povray project - Novi projekt Povray + + New Povray project + Novi projekt Povray - Insert new Povray project into the document - Umetanje novog Povray projekta u dokument + + Insert new Povray project into the document + Umetanje novog Povray projekta u dokument - - + + CmdRaytracingWriteCamera - Raytracing - Metode trasiranja putem zrake + + Raytracing + Metode trasiranja putem zrake - Export camera to povray... - Izvoz kamere u povray ... + + Export camera to povray... + Izvoz kamere u povray ... - Export the camera positon of the active 3D view in PovRay format to a file - Prenesi položaj kamere iz 3D aktivnog prikaza u povray format, u datoteku + + Export the camera positon of the active 3D view in PovRay format to a file + Prenesi položaj kamere iz 3D aktivnog prikaza u povray format, u datoteku - - + + CmdRaytracingWritePart - Raytracing - Metode trasiranja putem zrake + + Raytracing + Metode trasiranja putem zrake - Export part to povray... - Izvoz dijela u povray ... + + Export part to povray... + Izvoz dijela u povray ... - Write the selected Part (object) as a povray file - NapiÅ¡ite odabrani dio (objekta) kao povray datoteke + + Write the selected Part (object) as a povray file + NapiÅ¡ite odabrani dio (objekta) kao povray datoteke - - + + CmdRaytracingWriteView - Raytracing - Metode trasiranja putem zrake + + + + No perspective camera + - Export view to povray... - Pogled u povray ... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - NapiÅ¡ite aktivni 3D prikaz s kamerom i sve njezine sadržaje u povray datoteke + + Raytracing + Metode trasiranja putem zrake - - + + + Export view to povray... + Pogled u povray ... + + + + Write the active 3D view with camera and all its content to a povray file + NapiÅ¡ite aktivni 3D prikaz s kamerom i sve njezine sadržaje u povray datoteke + + + QObject - Povray(*.pov) - Povray (*. pov) + + + + + Povray(*.pov) + Povray (*. pov) - All Files (*.*) - Sve datoteke (*.*) + + + + + All Files (*.*) + Sve datoteke (*.*) - Export page - Izvezi stranicu + + + + + Export page + Izvezi stranicu - Wrong selection - PogreÅ¡an odabir + + + Wrong selection + PogreÅ¡an odabir - Select a Part object. - Odaberite dio objekta. + + Select a Part object. + Odaberite dio objekta. - No Povray project to insert - Nema Povray projekta za umetanje + + + No Povray project to insert + Nema Povray projekta za umetanje - Create a Povray project to insert a view. - Napravite Povray projekt za umetanje pogleda. + + Create a Povray project to insert a view. + Napravite Povray projekt za umetanje pogleda. - Select one Povray project object. - Odaberite jedan objekt Povray projekta. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Odaberite jedan objekt Povray projekta. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Metode trasiranja putem zrake + + Raytracing + Metode trasiranja putem zrake - Directories - Mape + + Directories + Mape - Default Project dir: - Osnovni Projekt dir: + + Default Project dir: + Osnovni Projekt dir: - Camera file name: - Kamera, ime datoteke: + + Camera file name: + Kamera, ime datoteke: - Part file name: - Dio naziva datoteke: + + Part file name: + Dio naziva datoteke: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Izvoz postavki mreže + + Mesh export settings + Izvoz postavki mreže - max mesh deviation: - max devijacija mreže: + + max mesh deviation: + max devijacija mreže: - Do not calculate vertex normals - Ne izraÄunati vrh normale + + Do not calculate vertex normals + Ne izraÄunati vrh normale - Write u,v coordinates - NapiÅ¡ite u,v koordinate + + Write u,v coordinates + NapiÅ¡ite u,v koordinate - - + + Workbench - - &Raytracing - Metode trasiranja putem zrake + + &Raytracing + Metode trasiranja putem zrake - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hu.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hu.ts index fa57799af..705a34ee4 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hu.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_hu.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Fájl + + File + Fájl - &Export project... - &Export projekt ... + + &Export project... + &Export projekt ... - Export the Povray project file - Povray-project fájl exportálása + + Export the Povray project file + Povray-project fájl exportálása - - + + CmdRaytracingNewPartSegment - Raytracing - Sugárkövetés + + Raytracing + Sugárkövetés - Insert part - Alkatrész beillesztése + + Insert part + Alkatrész beillesztése - Insert a new part object into a Povray project - Új alkatrész objektum beillesztése egy Povray pojekt-be + + Insert a new part object into a Povray project + Új alkatrész objektum beillesztése egy Povray pojekt-be - - + + CmdRaytracingNewPovrayProject - Raytracing - Sugárkövetés + + Raytracing + Sugárkövetés - New Povray project - Új Povray projekt + + New Povray project + Új Povray projekt - Insert new Povray project into the document - Új Povray projekt beszúrása a dokumentumba + + Insert new Povray project into the document + Új Povray projekt beszúrása a dokumentumba - - + + CmdRaytracingWriteCamera - Raytracing - Sugárkövetés + + Raytracing + Sugárkövetés - Export camera to povray... - Kamera exportálása Povray-be... + + Export camera to povray... + Kamera exportálása Povray-be... - Export the camera positon of the active 3D view in PovRay format to a file - Az aktuális 3D-s nézet kamera pozícióját exportálja Povray formában egy fájlba + + Export the camera positon of the active 3D view in PovRay format to a file + Az aktuális 3D-s nézet kamera pozícióját exportálja Povray formában egy fájlba - - + + CmdRaytracingWritePart - Raytracing - Sugárkövetés + + Raytracing + Sugárkövetés - Export part to povray... - Alkatrész exportálása Povray-be ... + + Export part to povray... + Alkatrész exportálása Povray-be ... - Write the selected Part (object) as a povray file - A kijelölt alkatrész (objektum) kiírása egy povray-fájlként + + Write the selected Part (object) as a povray file + A kijelölt alkatrész (objektum) kiírása egy povray-fájlként - - + + CmdRaytracingWriteView - Raytracing - Sugárkövetés + + + + No perspective camera + - Export view to povray... - Nézet exportálása povray-be... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Az aktuális 3D nézet minden tartalmának írása egy Povray fájlba + + Raytracing + Sugárkövetés - - + + + Export view to povray... + Nézet exportálása povray-be... + + + + Write the active 3D view with camera and all its content to a povray file + Az aktuális 3D nézet minden tartalmának írása egy Povray fájlba + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - Minden fájl (*.*) + + + + + All Files (*.*) + Minden fájl (*.*) - Export page - Oldal exportálása + + + + + Export page + Oldal exportálása - Wrong selection - Rossz választás + + + Wrong selection + Rossz választás - Select a Part object. - Válasszon ki egy alkatrész objektumot. + + Select a Part object. + Válasszon ki egy alkatrész objektumot. - No Povray project to insert - Nem Povray projekt beszúrása + + + No Povray project to insert + Nem Povray projekt beszúrása - Create a Povray project to insert a view. - Hozzon létre egy Povray kivetítést a nézet beszúrás érdekében. + + Create a Povray project to insert a view. + Hozzon létre egy Povray kivetítést a nézet beszúrás érdekében. - Select one Povray project object. - Válasszon ki egy Povray terv objektumot. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Válasszon ki egy Povray terv objektumot. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Sugárkövetés + + Raytracing + Sugárkövetés - Directories - Könyvtárak + + Directories + Könyvtárak - Default Project dir: - Alapértelmezett projekt könyvtár: + + Default Project dir: + Alapértelmezett projekt könyvtár: - Camera file name: - Kamera fájl neve: + + Camera file name: + Kamera fájl neve: - Part file name: - Alkatrész fájlnév: + + Part file name: + Alkatrész fájlnév: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Háló objektum beállítások + + Mesh export settings + Háló objektum beállítások - max mesh deviation: - Max. háló eltérés: + + max mesh deviation: + Max. háló eltérés: - Do not calculate vertex normals - Nem számítson vertex helyzetet + + Do not calculate vertex normals + Nem számítson vertex helyzetet - Write u,v coordinates - u,v-koordináták írása + + Write u,v coordinates + u,v-koordináták írása - - + + Workbench - - &Raytracing - Sugáriánynyomvonal + + &Raytracing + Sugáriánynyomvonal - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_it.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_it.ts index 9989f8ee6..1d8dfa07c 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_it.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_it.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - File + + File + File - &Export project... - &Esporta progetto... + + &Export project... + &Esporta progetto... - Export the Povray project file - Esporta il file di progetto Povray + + Export the Povray project file + Esporta il file di progetto Povray - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Inserisci parte + + Insert part + Inserisci parte - Insert a new part object into a Povray project - Inserisci un nuovo oggetto parte in un progetto Povray + + Insert a new part object into a Povray project + Inserisci un nuovo oggetto parte in un progetto Povray - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Nuovo progetto Povray + + New Povray project + Nuovo progetto Povray - Insert new Povray project into the document - Inserisce un nuovo progetto Povray nel documento + + Insert new Povray project into the document + Inserisce un nuovo progetto Povray nel documento - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Esporta la camera a povray... + + Export camera to povray... + Esporta la camera a povray... - Export the camera positon of the active 3D view in PovRay format to a file - Esporta la posizione della telecamera della vista 3D attiva in un file in formato PovRay + + Export the camera positon of the active 3D view in PovRay format to a file + Esporta la posizione della telecamera della vista 3D attiva in un file in formato PovRay - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Esporta la parte in povray... + + Export part to povray... + Esporta la parte in povray... - Write the selected Part (object) as a povray file - Scrive la parte selezionata (oggetto) come un file povray + + Write the selected Part (object) as a povray file + Scrive la parte selezionata (oggetto) come un file povray - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Esporta la vista in povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Salva la vista 3D attiva con la camera e tutto il suo contenuto in un file povray + + Raytracing + Raytracing - - + + + Export view to povray... + Esporta la vista in povray... + + + + Write the active 3D view with camera and all its content to a povray file + Salva la vista 3D attiva con la camera e tutto il suo contenuto in un file povray + + + QObject - Povray(*.pov) - Povray (*.pov) + + + + + Povray(*.pov) + Povray (*.pov) - All Files (*.*) - Tutti i file (*.*) + + + + + All Files (*.*) + Tutti i file (*.*) - Export page - Esporta pagina + + + + + Export page + Esporta pagina - Wrong selection - Selezione errata + + + Wrong selection + Selezione errata - Select a Part object. - Seleziona un oggetto Part. + + Select a Part object. + Seleziona un oggetto Part. - No Povray project to insert - Nessun progetto Povray da inserire + + + No Povray project to insert + Nessun progetto Povray da inserire - Create a Povray project to insert a view. - Crea un progetto Povray per inserire una vista. + + Create a Povray project to insert a view. + Crea un progetto Povray per inserire una vista. - Select one Povray project object. - Seleziona un progetto Povray. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Seleziona un progetto Povray. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Cartelle + + Directories + Cartelle - Default Project dir: - Cartella di default del progetto: + + Default Project dir: + Cartella di default del progetto: - Camera file name: - Nome del file della telecamera: + + Camera file name: + Nome del file della telecamera: - Part file name: - Nome del file della parte: + + Part file name: + Nome del file della parte: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Impostazioni di esportazione mesh + + Mesh export settings + Impostazioni di esportazione mesh - max mesh deviation: - Massima deviazione della mesh: + + max mesh deviation: + Massima deviazione della mesh: - Do not calculate vertex normals - Non calcolare le normali ai vertici + + Do not calculate vertex normals + Non calcolare le normali ai vertici - Write u,v coordinates - Salva le coordinate u,v + + Write u,v coordinates + Salva le coordinate u,v - - + + Workbench - - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ja.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ja.ts index aad6e5474..0f3549d9e 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ja.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ja.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - ファイル + + File + ファイル - &Export project... - プロジェクトをエクスãƒãƒ¼ãƒˆ (&e)... + + &Export project... + プロジェクトをエクスãƒãƒ¼ãƒˆ (&e)... - Export the Povray project file - Export the Povray project file + + Export the Povray project file + Export the Povray project file - - + + CmdRaytracingNewPartSegment - Raytracing - レイトレーシング + + Raytracing + レイトレーシング - Insert part - 部å“を挿入 + + Insert part + 部å“を挿入 - Insert a new part object into a Povray project - Insert a new part object into a Povray project + + Insert a new part object into a Povray project + Insert a new part object into a Povray project - - + + CmdRaytracingNewPovrayProject - Raytracing - レイトレーシング + + Raytracing + レイトレーシング - New Povray project - New Povray project + + New Povray project + New Povray project - Insert new Povray project into the document - Insert new Povray project into the document + + Insert new Povray project into the document + Insert new Povray project into the document - - + + CmdRaytracingWriteCamera - Raytracing - レイトレーシング + + Raytracing + レイトレーシング - Export camera to povray... - カメラをpovrayã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... + + Export camera to povray... + カメラをpovrayã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... - Export the camera positon of the active 3D view in PovRay format to a file - Export the camera positon of the active 3D view in PovRay format to a file + + Export the camera positon of the active 3D view in PovRay format to a file + Export the camera positon of the active 3D view in PovRay format to a file - - + + CmdRaytracingWritePart - Raytracing - レイトレーシング + + Raytracing + レイトレーシング - Export part to povray... - 部å“ã‚’povrayå½¢å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... + + Export part to povray... + 部å“ã‚’povrayå½¢å¼ã§ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... - Write the selected Part (object) as a povray file - Write the selected Part (object) as a povray file + + Write the selected Part (object) as a povray file + Write the selected Part (object) as a povray file - - + + CmdRaytracingWriteView - Raytracing - レイトレーシング + + + + No perspective camera + - Export view to povray... - ビューをpovrayã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Write the active 3D view with camera and all its content to a povray file + + Raytracing + レイトレーシング - - + + + Export view to povray... + ビューをpovrayã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ... + + + + Write the active 3D view with camera and all its content to a povray file + Write the active 3D view with camera and all its content to a povray file + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + + + + + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - Export page - Export page + + + + + Export page + Export page - Wrong selection - 誤ã£ãŸé¸æŠž + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select a Part object. - Select a Part object. + + Select a Part object. + Select a Part object. - No Povray project to insert - No Povray project to insert + + + No Povray project to insert + No Povray project to insert - Create a Povray project to insert a view. - Create a Povray project to insert a view. + + Create a Povray project to insert a view. + Create a Povray project to insert a view. - Select one Povray project object. - Povrayプロジェクトオブジェクトを1ã¤é¸æŠž. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Povrayプロジェクトオブジェクトを1ã¤é¸æŠž. + + + RaytracingGui::DlgSettingsRay - - Raytracing - レイトレーシング + + Raytracing + レイトレーシング - Directories - ディレクトリ + + Directories + ディレクトリ - Default Project dir: - Default Project dir: + + Default Project dir: + Default Project dir: - Camera file name: - カメラファイルå: + + Camera file name: + カメラファイルå: - Part file name: - 部å“ã®ãƒ•ァイルå: + + Part file name: + 部å“ã®ãƒ•ァイルå: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - メッシュエクスãƒãƒ¼ãƒˆè¨­å®š + + Mesh export settings + メッシュエクスãƒãƒ¼ãƒˆè¨­å®š - max mesh deviation: - メッシュ最大分割数: + + max mesh deviation: + メッシュ最大分割数: - Do not calculate vertex normals - Do not calculate vertex normals + + Do not calculate vertex normals + Do not calculate vertex normals - Write u,v coordinates - Write u,v coordinates + + Write u,v coordinates + Write u,v coordinates - - + + Workbench - - &Raytracing - レイトレーシング (&R) + + &Raytracing + レイトレーシング (&R) - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_nl.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_nl.ts index 3bc8ebc72..8af781741 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_nl.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_nl.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Bestand + + File + Bestand - &Export project... - &Project exporteren... + + &Export project... + &Project exporteren... - Export the Povray project file - Exporteer het Povray project bestand + + Export the Povray project file + Exporteer het Povray project bestand - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Onderdeel invoegen + + Insert part + Onderdeel invoegen - Insert a new part object into a Povray project - Voeg een nieuw object toe aan een Povray project + + Insert a new part object into a Povray project + Voeg een nieuw object toe aan een Povray project - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Nieuw Povray project + + New Povray project + Nieuw Povray project - Insert new Povray project into the document - Nieuw Povray project in het document invoegen + + Insert new Povray project into the document + Nieuw Povray project in het document invoegen - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Exporteer camera naar Povray... + + Export camera to povray... + Exporteer camera naar Povray... - Export the camera positon of the active 3D view in PovRay format to a file - Exporteer de camera positie van het actieve 3D-aanzicht in PovRay-formaat naar een bestand + + Export the camera positon of the active 3D view in PovRay format to a file + Exporteer de camera positie van het actieve 3D-aanzicht in PovRay-formaat naar een bestand - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Export object naar povray ... + + Export part to povray... + Export object naar povray ... - Write the selected Part (object) as a povray file - Schrijf het geselecteerde object weg als een Povray bestand + + Write the selected Part (object) as a povray file + Schrijf het geselecteerde object weg als een Povray bestand - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Aanzicht exporteren naar Povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Schrijf het actieve 3D-aanzicht met camera en al haar inhoud naar een Povray bestand + + Raytracing + Raytracing - - + + + Export view to povray... + Aanzicht exporteren naar Povray... + + + + Write the active 3D view with camera and all its content to a povray file + Schrijf het actieve 3D-aanzicht met camera en al haar inhoud naar een Povray bestand + + + QObject - Povray(*.pov) - Povray (*.pov) + + + + + Povray(*.pov) + Povray (*.pov) - All Files (*.*) - Alle bestanden (*.*) + + + + + All Files (*.*) + Alle bestanden (*.*) - Export page - Exporteer pagina + + + + + Export page + Exporteer pagina - Wrong selection - Verkeerde selectie + + + Wrong selection + Verkeerde selectie - Select a Part object. - Selecteer een object. + + Select a Part object. + Selecteer een object. - No Povray project to insert - Geen Povray project om in te voegen + + + No Povray project to insert + Geen Povray project om in te voegen - Create a Povray project to insert a view. - Maak een Povray-project om aan aanzicht toe te voegen. + + Create a Povray project to insert a view. + Maak een Povray-project om aan aanzicht toe te voegen. - Select one Povray project object. - Selecteer een Povray projectobject. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Selecteer een Povray projectobject. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Mappen + + Directories + Mappen - Default Project dir: - Standaard Projectmap: + + Default Project dir: + Standaard Projectmap: - Camera file name: - Camera-bestand naam: + + Camera file name: + Camera-bestand naam: - Part file name: - Onderdeel bestandsnaam: + + Part file name: + Onderdeel bestandsnaam: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Maas exportinstellingen + + Mesh export settings + Maas exportinstellingen - max mesh deviation: - Max. maas-afwijking: + + max mesh deviation: + Max. maas-afwijking: - Do not calculate vertex normals - Bereken niet de vertex-normalen + + Do not calculate vertex normals + Bereken niet de vertex-normalen - Write u,v coordinates - Schrijf u,v-coördinaten + + Write u,v coordinates + Schrijf u,v-coördinaten - - + + Workbench - - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_no.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_no.ts index 2f33fdefa..04a1d3b0d 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_no.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_no.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Fil + + File + Fil - &Export project... - &Eksporter prosjekt... + + &Export project... + &Eksporter prosjekt... - Export the Povray project file - Eksporter Povray-prosjektfilen + + Export the Povray project file + Eksporter Povray-prosjektfilen - - + + CmdRaytracingNewPartSegment - Raytracing - StrÃ¥lesporing + + Raytracing + StrÃ¥lesporing - Insert part - Sett inn et komponent + + Insert part + Sett inn et komponent - Insert a new part object into a Povray project - Sett inn et nytt komponent (objekt) i et Povray-prosjekt + + Insert a new part object into a Povray project + Sett inn et nytt komponent (objekt) i et Povray-prosjekt - - + + CmdRaytracingNewPovrayProject - Raytracing - StrÃ¥lesporing + + Raytracing + StrÃ¥lesporing - New Povray project - Nytt Povray-prosjekt + + New Povray project + Nytt Povray-prosjekt - Insert new Povray project into the document - Sett inn nytt Povray-prosjekt i dokumentet + + Insert new Povray project into the document + Sett inn nytt Povray-prosjekt i dokumentet - - + + CmdRaytracingWriteCamera - Raytracing - StrÃ¥lesporing + + Raytracing + StrÃ¥lesporing - Export camera to povray... - Export camera to povray... + + Export camera to povray... + Export camera to povray... - Export the camera positon of the active 3D view in PovRay format to a file - Eksporter kameraposisjon for aktiv 3D-visning til Povray-format i en fil + + Export the camera positon of the active 3D view in PovRay format to a file + Eksporter kameraposisjon for aktiv 3D-visning til Povray-format i en fil - - + + CmdRaytracingWritePart - Raytracing - StrÃ¥lesporing + + Raytracing + StrÃ¥lesporing - Export part to povray... - Eksporter komponent til povray... + + Export part to povray... + Eksporter komponent til povray... - Write the selected Part (object) as a povray file - Skrive det merkede komponentet (objekt) som en povray-fil + + Write the selected Part (object) as a povray file + Skrive det merkede komponentet (objekt) som en povray-fil - - + + CmdRaytracingWriteView - Raytracing - StrÃ¥lesporing + + + + No perspective camera + - Export view to povray... - Eksporter visning til povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Skriv aktiv 3D-visning med kameraet og alt dets innhold til en Povray fil + + Raytracing + StrÃ¥lesporing - - + + + Export view to povray... + Eksporter visning til povray... + + + + Write the active 3D view with camera and all its content to a povray file + Skriv aktiv 3D-visning med kameraet og alt dets innhold til en Povray fil + + + QObject - Povray(*.pov) - Povray (*. pov) + + + + + Povray(*.pov) + Povray (*. pov) - All Files (*.*) - Alle filer (*.*) + + + + + All Files (*.*) + Alle filer (*.*) - Export page - Eksporter side + + + + + Export page + Eksporter side - Wrong selection - Feil valg + + + Wrong selection + Feil valg - Select a Part object. - Velg et komponentobjekt. + + Select a Part object. + Velg et komponentobjekt. - No Povray project to insert - Ingen Povray-prosjekt Ã¥ sette inn + + + No Povray project to insert + Ingen Povray-prosjekt Ã¥ sette inn - Create a Povray project to insert a view. - Lag et Povray-prosjekt for Ã¥ sette inn i en visning. + + Create a Povray project to insert a view. + Lag et Povray-prosjekt for Ã¥ sette inn i en visning. - Select one Povray project object. - Velg et Povray-prosjektobjekt. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Velg et Povray-prosjektobjekt. + + + RaytracingGui::DlgSettingsRay - - Raytracing - StrÃ¥lesporing + + Raytracing + StrÃ¥lesporing - Directories - Kataloger + + Directories + Kataloger - Default Project dir: - Standard prosjektkatalog: + + Default Project dir: + Standard prosjektkatalog: - Camera file name: - Kamerafilnavn: + + Camera file name: + Kamerafilnavn: - Part file name: - Komponentfilnavn: + + Part file name: + Komponentfilnavn: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Maskeeksportinnstillinger + + Mesh export settings + Maskeeksportinnstillinger - max mesh deviation: - Maks maske avvik: + + max mesh deviation: + Maks maske avvik: - Do not calculate vertex normals - Ikke beregn toppunkt normaler + + Do not calculate vertex normals + Ikke beregn toppunkt normaler - Write u,v coordinates - Skriv u, v-koordinater + + Write u,v coordinates + Skriv u, v-koordinater - - + + Workbench - - &Raytracing - &StrÃ¥lesporing + + &Raytracing + &StrÃ¥lesporing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pl.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pl.ts index f4256a0ec..b1fbecd7b 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pl.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pl.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Plik + + File + Plik - &Export project... - &Export project... + + &Export project... + &Export project... - Export the Povray project file - Eksport pliku projektu Povray + + Export the Povray project file + Eksport pliku projektu Povray - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Wstaw część + + Insert part + Wstaw część - Insert a new part object into a Povray project - Wstaw nowy obiekt do projektu Povray + + Insert a new part object into a Povray project + Wstaw nowy obiekt do projektu Povray - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Nowy projekt Povray + + New Povray project + Nowy projekt Povray - Insert new Povray project into the document - Wstaw nowy projekt Povray do dokumentu + + Insert new Povray project into the document + Wstaw nowy projekt Povray do dokumentu - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Eksport kamery do Povray... + + Export camera to povray... + Eksport kamery do Povray... - Export the camera positon of the active 3D view in PovRay format to a file - Eksport kamery aktywnego widoku Povray do pliku + + Export the camera positon of the active 3D view in PovRay format to a file + Eksport kamery aktywnego widoku Povray do pliku - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Eksport obiektu do Povray... + + Export part to povray... + Eksport obiektu do Povray... - Write the selected Part (object) as a povray file - Zapisz wybrany obiekt jako plik Povray + + Write the selected Part (object) as a povray file + Zapisz wybrany obiekt jako plik Povray - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Eksport widoku do Povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Zapisz aktywny widok 3D wraz z zawartoÅ›ciÄ… do pliku Povray + + Raytracing + Raytracing - - + + + Export view to povray... + Eksport widoku do Povray... + + + + Write the active 3D view with camera and all its content to a povray file + Zapisz aktywny widok 3D wraz z zawartoÅ›ciÄ… do pliku Povray + + + QObject - Povray(*.pov) - Povray (*. pov) + + + + + Povray(*.pov) + Povray (*. pov) - All Files (*.*) - Wszystkie pliki (*.*) + + + + + All Files (*.*) + Wszystkie pliki (*.*) - Export page - WyÅ›lij stronÄ™ + + + + + Export page + WyÅ›lij stronÄ™ - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select a Part object. - Wybierz stronÄ™. + + Select a Part object. + Wybierz stronÄ™. - No Povray project to insert - Brak obiektu Povray do wstawienia + + + No Povray project to insert + Brak obiektu Povray do wstawienia - Create a Povray project to insert a view. - Utwórz projekt Povray aby wstawić widok + + Create a Povray project to insert a view. + Utwórz projekt Povray aby wstawić widok - Select one Povray project object. - Wybierz jeden obiekt projektu Povray + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Wybierz jeden obiekt projektu Povray + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Foldery: + + Directories + Foldery: - Default Project dir: - DomyÅ›lny folder Projektu: + + Default Project dir: + DomyÅ›lny folder Projektu: - Camera file name: - Nazwa pliku Kamery: + + Camera file name: + Nazwa pliku Kamery: - Part file name: - Nazwa pliku Obiektu: + + Part file name: + Nazwa pliku Obiektu: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Ustawienia eksportu siatki + + Mesh export settings + Ustawienia eksportu siatki - max mesh deviation: - Max. odchylenie siatki: + + max mesh deviation: + Max. odchylenie siatki: - Do not calculate vertex normals - Nie przeliczaj 'normalnych' wierzchoÅ‚ków + + Do not calculate vertex normals + Nie przeliczaj 'normalnych' wierzchoÅ‚ków - Write u,v coordinates - Zapisz współrzÄ™dne U,V + + Write u,v coordinates + Zapisz współrzÄ™dne U,V - - + + Workbench - - &Raytracing - Raytracing + + &Raytracing + Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pt.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pt.ts index db735c2bc..72f62e9a3 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pt.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_pt.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Arquivo + + File + Arquivo - &Export project... - &Exportar projeto... + + &Export project... + &Exportar projeto... - Export the Povray project file - Exportar o arquivo de projeto Povray + + Export the Povray project file + Exportar o arquivo de projeto Povray - - + + CmdRaytracingNewPartSegment - Raytracing - Raytracing + + Raytracing + Raytracing - Insert part - Inserir Part + + Insert part + Inserir Part - Insert a new part object into a Povray project - Inserir um novo objeto Part em um projeto Povray + + Insert a new part object into a Povray project + Inserir um novo objeto Part em um projeto Povray - - + + CmdRaytracingNewPovrayProject - Raytracing - Raytracing + + Raytracing + Raytracing - New Povray project - Novo projeto Povray + + New Povray project + Novo projeto Povray - Insert new Povray project into the document - Inserir novo projeto Povray no documento + + Insert new Povray project into the document + Inserir novo projeto Povray no documento - - + + CmdRaytracingWriteCamera - Raytracing - Raytracing + + Raytracing + Raytracing - Export camera to povray... - Exportar a câmera para povray... + + Export camera to povray... + Exportar a câmera para povray... - Export the camera positon of the active 3D view in PovRay format to a file - Exportar a posição da câmera da vista 3D ativa no formato PovRay para um arquivo + + Export the camera positon of the active 3D view in PovRay format to a file + Exportar a posição da câmera da vista 3D ativa no formato PovRay para um arquivo - - + + CmdRaytracingWritePart - Raytracing - Raytracing + + Raytracing + Raytracing - Export part to povray... - Exporte parte para povray... + + Export part to povray... + Exporte parte para povray... - Write the selected Part (object) as a povray file - Gravar a parte selecionada (objeto) como um arquivo povray + + Write the selected Part (object) as a povray file + Gravar a parte selecionada (objeto) como um arquivo povray - - + + CmdRaytracingWriteView - Raytracing - Raytracing + + + + No perspective camera + - Export view to povray... - Exportar vista para povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Gravar a vista 3D ativa com câmera e todo o seu conteúdo em um arquivo povray + + Raytracing + Raytracing - - + + + Export view to povray... + Exportar vista para povray... + + + + Write the active 3D view with camera and all its content to a povray file + Gravar a vista 3D ativa com câmera e todo o seu conteúdo em um arquivo povray + + + QObject - Povray(*.pov) - Povray (*.pov) + + + + + Povray(*.pov) + Povray (*.pov) - All Files (*.*) - Todos os arquivos (*.*) + + + + + All Files (*.*) + Todos os arquivos (*.*) - Export page - Exportar página + + + + + Export page + Exportar página - Wrong selection - Seleção errada + + + Wrong selection + Seleção errada - Select a Part object. - Selecione um objeto Part. + + Select a Part object. + Selecione um objeto Part. - No Povray project to insert - Nenhum projeto Povray para inserir + + + No Povray project to insert + Nenhum projeto Povray para inserir - Create a Povray project to insert a view. - Criar um projeto Povray para inserir uma vista. + + Create a Povray project to insert a view. + Criar um projeto Povray para inserir uma vista. - Select one Povray project object. - Selecione um objeto de projeto Povray. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Selecione um objeto de projeto Povray. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Raytracing + + Raytracing + Raytracing - Directories - Diretórios + + Directories + Diretórios - Default Project dir: - Pasta de projeto padrão: + + Default Project dir: + Pasta de projeto padrão: - Camera file name: - Nome de arquivo de câmera: + + Camera file name: + Nome de arquivo de câmera: - Part file name: - Nome do arquivo de Part: + + Part file name: + Nome do arquivo de Part: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Configurações de exportação de malha + + Mesh export settings + Configurações de exportação de malha - max mesh deviation: - desvio máximo de malha: + + max mesh deviation: + desvio máximo de malha: - Do not calculate vertex normals - Não calcular normais de vértices + + Do not calculate vertex normals + Não calcular normais de vértices - Write u,v coordinates - Gravar coordenadas u,v + + Write u,v coordinates + Gravar coordenadas u,v - - + + Workbench - - &Raytracing - &Raytracing + + &Raytracing + &Raytracing - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ru.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ru.ts index dbce80f47..386ffa277 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ru.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_ru.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Файл + + File + Файл - &Export project... - & ЭкÑпортировать проект... + + &Export project... + & ЭкÑпортировать проект... - Export the Povray project file - ЭкÑпорт файлов Povray проекта + + Export the Povray project file + ЭкÑпорт файлов Povray проекта - - + + CmdRaytracingNewPartSegment - Raytracing - ТраÑcировщик лучей + + Raytracing + ТраÑcировщик лучей - Insert part - Ð’Ñтавить чаÑть + + Insert part + Ð’Ñтавить чаÑть - Insert a new part object into a Povray project - Ð’Ñтавить новый объект в проекте Povray + + Insert a new part object into a Povray project + Ð’Ñтавить новый объект в проекте Povray - - + + CmdRaytracingNewPovrayProject - Raytracing - ТраÑcировщик лучей + + Raytracing + ТраÑcировщик лучей - New Povray project - Ðовый проект Povray + + New Povray project + Ðовый проект Povray - Insert new Povray project into the document - Ð’Ñтавка нового проекта Povray в документ + + Insert new Povray project into the document + Ð’Ñтавка нового проекта Povray в документ - - + + CmdRaytracingWriteCamera - Raytracing - ТраÑcировщик лучей + + Raytracing + ТраÑcировщик лучей - Export camera to povray... - ЭкÑпорт камеры в Povray ... + + Export camera to povray... + ЭкÑпорт камеры в Povray ... - Export the camera positon of the active 3D view in PovRay format to a file - ЭкÑпорт Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑ€Ñ‹ текущего 3D-вида в файл формата PovRay + + Export the camera positon of the active 3D view in PovRay format to a file + ЭкÑпорт Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑ€Ñ‹ текущего 3D-вида в файл формата PovRay - - + + CmdRaytracingWritePart - Raytracing - ТраÑcировщик лучей + + Raytracing + ТраÑcировщик лучей - Export part to povray... - ЭкÑпортировать деталь в Povray ... + + Export part to povray... + ЭкÑпортировать деталь в Povray ... - Write the selected Part (object) as a povray file - ЗапиÑать выбранную деталь (объект) в Povray файл + + Write the selected Part (object) as a povray file + ЗапиÑать выбранную деталь (объект) в Povray файл - - + + CmdRaytracingWriteView - Raytracing - ТраÑcировщик лучей + + + + No perspective camera + - Export view to povray... - ЭкÑпортировать вид в Povray ... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - ЗапиÑать текущий 3D-вид камеры и ее Ñодержимого в Povray-файл + + Raytracing + ТраÑcировщик лучей - - + + + Export view to povray... + ЭкÑпортировать вид в Povray ... + + + + Write the active 3D view with camera and all its content to a povray file + ЗапиÑать текущий 3D-вид камеры и ее Ñодержимого в Povray-файл + + + QObject - Povray(*.pov) - Povray (*. pov) + + + + + Povray(*.pov) + Povray (*. pov) - All Files (*.*) - Ð’Ñе файлы (*.*) + + + + + All Files (*.*) + Ð’Ñе файлы (*.*) - Export page - ЭкÑпорт Ñтраницы + + + + + Export page + ЭкÑпорт Ñтраницы - Wrong selection - Ðеправильное выделение + + + Wrong selection + Ðеправильное выделение - Select a Part object. - Выберите чаÑть. + + Select a Part object. + Выберите чаÑть. - No Povray project to insert - Ðет проекта Povray Ð´Ð»Ñ Ð²Ñтавки + + + No Povray project to insert + Ðет проекта Povray Ð´Ð»Ñ Ð²Ñтавки - Create a Povray project to insert a view. - Создайте проект Povray, чтобы вÑтавить вид. + + Create a Povray project to insert a view. + Создайте проект Povray, чтобы вÑтавить вид. - Select one Povray project object. - Выберите один объект Povray проекта. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Выберите один объект Povray проекта. + + + RaytracingGui::DlgSettingsRay - - Raytracing - ТраÑcировщик лучей + + Raytracing + ТраÑcировщик лучей - Directories - Каталоги + + Directories + Каталоги - Default Project dir: - По умолчанию каталог проекта: + + Default Project dir: + По умолчанию каталог проекта: - Camera file name: - Ðазвание фото-файла: + + Camera file name: + Ðазвание фото-файла: - Part file name: - ЧаÑть имени файла: + + Part file name: + ЧаÑть имени файла: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - ЭкÑпорт наÑтроек Ñетки + + Mesh export settings + ЭкÑпорт наÑтроек Ñетки - max mesh deviation: - макÑимальное отклонение Ñетки: + + max mesh deviation: + макÑимальное отклонение Ñетки: - Do not calculate vertex normals - Ðе вычиÑлÑть нормалей вершины + + Do not calculate vertex normals + Ðе вычиÑлÑть нормалей вершины - Write u,v coordinates - ÐапиÑать u, v координаты + + Write u,v coordinates + ÐапиÑать u, v координаты - - + + Workbench - - &Raytracing - &ТраÑировщик лучей + + &Raytracing + &ТраÑировщик лучей - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_se.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_se.ts index a52dbf755..b060e0550 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_se.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_se.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Fil + + File + Fil - &Export project... - &Exportera projekt... + + &Export project... + &Exportera projekt... - Export the Povray project file - Exportera Povray projektfilen + + Export the Povray project file + Exportera Povray projektfilen - - + + CmdRaytracingNewPartSegment - Raytracing - Rendering + + Raytracing + Rendering - Insert part - Infoga del + + Insert part + Infoga del - Insert a new part object into a Povray project - Sätt i ett nytt Del objekt i ett Povray projekt + + Insert a new part object into a Povray project + Sätt i ett nytt Del objekt i ett Povray projekt - - + + CmdRaytracingNewPovrayProject - Raytracing - Rendering + + Raytracing + Rendering - New Povray project - Nytt Povray projekt + + New Povray project + Nytt Povray projekt - Insert new Povray project into the document - Infoga nytt Povray projekt i dokumentet + + Insert new Povray project into the document + Infoga nytt Povray projekt i dokumentet - - + + CmdRaytracingWriteCamera - Raytracing - Rendering + + Raytracing + Rendering - Export camera to povray... - Exportera kameran till povray ... + + Export camera to povray... + Exportera kameran till povray ... - Export the camera positon of the active 3D view in PovRay format to a file - Exportera kamerans position i den aktiva 3D-vyn i povray format till en fil + + Export the camera positon of the active 3D view in PovRay format to a file + Exportera kamerans position i den aktiva 3D-vyn i povray format till en fil - - + + CmdRaytracingWritePart - Raytracing - Rendering + + Raytracing + Rendering - Export part to povray... - Exportera Del till povray ... + + Export part to povray... + Exportera Del till povray ... - Write the selected Part (object) as a povray file - Skriv den markerade Delen (objekt) som en povray fil + + Write the selected Part (object) as a povray file + Skriv den markerade Delen (objekt) som en povray fil - - + + CmdRaytracingWriteView - Raytracing - Rendering + + + + No perspective camera + - Export view to povray... - Exportera vy till povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - Skriv den aktiva 3D vyn med kameraposition och allt dess innehÃ¥ll till en povray fil + + Raytracing + Rendering - - + + + Export view to povray... + Exportera vy till povray... + + + + Write the active 3D view with camera and all its content to a povray file + Skriv den aktiva 3D vyn med kameraposition och allt dess innehÃ¥ll till en povray fil + + + QObject - Povray(*.pov) - Povray (*.POV) + + + + + Povray(*.pov) + Povray (*.POV) - All Files (*.*) - Alla filer (*.*) + + + + + All Files (*.*) + Alla filer (*.*) - Export page - Exportera sida + + + + + Export page + Exportera sida - Wrong selection - Fel val + + + Wrong selection + Fel val - Select a Part object. - Välj ett Del objekt. + + Select a Part object. + Välj ett Del objekt. - No Povray project to insert - Inget Povray projekt att infoga + + + No Povray project to insert + Inget Povray projekt att infoga - Create a Povray project to insert a view. - Skapa ett Povray projekt för att infoga en vy. + + Create a Povray project to insert a view. + Skapa ett Povray projekt för att infoga en vy. - Select one Povray project object. - Välj ett Povray projekt objekt. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Välj ett Povray projekt objekt. + + + RaytracingGui::DlgSettingsRay - - Raytracing - Rendering + + Raytracing + Rendering - Directories - Kataloger + + Directories + Kataloger - Default Project dir: - Standard-projektkatalog: + + Default Project dir: + Standard-projektkatalog: - Camera file name: - Kamera-filnamn: + + Camera file name: + Kamera-filnamn: - Part file name: - Del filnamn: + + Part file name: + Del filnamn: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - Nät exportinställningar + + Mesh export settings + Nät exportinställningar - max mesh deviation: - Max nätdeviation: + + max mesh deviation: + Max nätdeviation: - Do not calculate vertex normals - Beräkna inte hörn normaler + + Do not calculate vertex normals + Beräkna inte hörn normaler - Write u,v coordinates - Skriv u,v koordinater + + Write u,v coordinates + Skriv u,v koordinater - - + + Workbench - - &Raytracing - &Rendering + + &Raytracing + &Rendering - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_uk.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_uk.ts index a32e57967..6813b6f4e 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_uk.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_uk.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - Файл + + File + Файл - &Export project... - &ЕкÑпорт проекту... + + &Export project... + &ЕкÑпорт проекту... - Export the Povray project file - ЕкÑпорт файлу Povray проекту + + Export the Povray project file + ЕкÑпорт файлу Povray проекту - - + + CmdRaytracingNewPartSegment - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - Insert part - Ð’Ñтавити чаÑтину + + Insert part + Ð’Ñтавити чаÑтину - Insert a new part object into a Povray project - Ð’Ñтавити нову чаÑтину об'єкта у Povray проект + + Insert a new part object into a Povray project + Ð’Ñтавити нову чаÑтину об'єкта у Povray проект - - + + CmdRaytracingNewPovrayProject - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - New Povray project - Ðовий проект Povray + + New Povray project + Ðовий проект Povray - Insert new Povray project into the document - Ð’Ñтавити новий проект Povray в документ + + Insert new Povray project into the document + Ð’Ñтавити новий проект Povray в документ - - + + CmdRaytracingWriteCamera - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - Export camera to povray... - Export camera to povray... + + Export camera to povray... + Export camera to povray... - Export the camera positon of the active 3D view in PovRay format to a file - ЕкÑпортувати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ активного 3D виглÑду до файлу у PovRay форматі + + Export the camera positon of the active 3D view in PovRay format to a file + ЕкÑпортувати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ ÐºÐ°Ð¼ÐµÑ€Ð¸ активного 3D виглÑду до файлу у PovRay форматі - - + + CmdRaytracingWritePart - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - Export part to povray... - ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтини до povray... + + Export part to povray... + ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñтини до povray... - Write the selected Part (object) as a povray file - ЗапиÑати виділену чаÑтину (об'єкт) Ñк Povray файл + + Write the selected Part (object) as a povray file + ЗапиÑати виділену чаÑтину (об'єкт) Ñк Povray файл - - + + CmdRaytracingWriteView - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + + + No perspective camera + - Export view to povray... - ЕкÑпорт виглÑду в Povray ... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - ЗапиÑати активний 3D-вид з камери, Ñ– веÑÑŒ Ñ—Ñ— вміÑÑ‚ в Povray файл + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - - + + + Export view to povray... + ЕкÑпорт виглÑду в Povray ... + + + + Write the active 3D view with camera and all its content to a povray file + ЗапиÑати активний 3D-вид з камери, Ñ– веÑÑŒ Ñ—Ñ— вміÑÑ‚ в Povray файл + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - Ð’ÑÑ– файли (*.*) + + + + + All Files (*.*) + Ð’ÑÑ– файли (*.*) - Export page - ЕкÑпорт Ñторінки + + + + + Export page + ЕкÑпорт Ñторінки - Wrong selection - Ðевірний вибір + + + Wrong selection + Ðевірний вибір - Select a Part object. - Виберіть чаÑтину об'єкта. + + Select a Part object. + Виберіть чаÑтину об'єкта. - No Povray project to insert - Ðемає Povray проекту Ð´Ð»Ñ Ð²Ñтавки + + + No Povray project to insert + Ðемає Povray проекту Ð´Ð»Ñ Ð²Ñтавки - Create a Povray project to insert a view. - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Povray проекту Ð´Ð»Ñ Ð²Ñтавки у виглÑд. + + Create a Povray project to insert a view. + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Povray проекту Ð´Ð»Ñ Ð²Ñтавки у виглÑд. - Select one Povray project object. - Виберіть один Povray проект Ð´Ð»Ñ Ð¾Ð±'єкта. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + Виберіть один Povray проект Ð´Ð»Ñ Ð¾Ð±'єкта. + + + RaytracingGui::DlgSettingsRay - - Raytracing - ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + Raytracing + ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - Directories - Каталоги + + Directories + Каталоги - Default Project dir: - Каталог проекту за замовчуваннÑм: + + Default Project dir: + Каталог проекту за замовчуваннÑм: - Camera file name: - Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ камери: + + Camera file name: + Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ камери: - Part file name: - Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ деталі(чаÑтини): + + Part file name: + Ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ деталі(чаÑтини): - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐºÑпорту Ñітки(Mesh) + + Mesh export settings + ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐºÑпорту Ñітки(Mesh) - max mesh deviation: - МакÑимальне Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñітки: + + max mesh deviation: + МакÑимальне Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ñітки: - Do not calculate vertex normals - Ðе розраховувати нормалі вершин + + Do not calculate vertex normals + Ðе розраховувати нормалі вершин - Write u,v coordinates - ЗапиÑувати u,v координати + + Write u,v coordinates + ЗапиÑувати u,v координати - - + + Workbench - - &Raytracing - &ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² + + &Raytracing + &ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ½Ñ–Ð² - + diff --git a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_zh.ts b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_zh.ts index ffe1df6b0..e84e14afe 100644 --- a/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_zh.ts +++ b/src/Mod/Raytracing/Gui/Resources/translations/Raytracing_zh.ts @@ -1,186 +1,252 @@ - - + + CmdRaytracingExportProject - - File - 文件 + + File + 文件 - &Export project... - 导出项目(&E)... + + &Export project... + 导出项目(&E)... - Export the Povray project file - 导出 Povray 项目文件 + + Export the Povray project file + 导出 Povray 项目文件 - - + + CmdRaytracingNewPartSegment - Raytracing - 光线追踪 + + Raytracing + 光线追踪 - Insert part - æ’入零件 + + Insert part + æ’入零件 - Insert a new part object into a Povray project - æ’入一个新的零件对象到PovRay项目 + + Insert a new part object into a Povray project + æ’入一个新的零件对象到PovRay项目 - - + + CmdRaytracingNewPovrayProject - Raytracing - 光线追踪 + + Raytracing + 光线追踪 - New Povray project - 新建 Povray 项目 + + New Povray project + 新建 Povray 项目 - Insert new Povray project into the document - 在文档中æ’入新PovRay项目 + + Insert new Povray project into the document + 在文档中æ’入新PovRay项目 - - + + CmdRaytracingWriteCamera - Raytracing - 光线追踪 + + Raytracing + 光线追踪 - Export camera to povray... - 导出相机到povray... + + Export camera to povray... + 导出相机到povray... - Export the camera positon of the active 3D view in PovRay format to a file - å°†PovRayæ ¼å¼ä¸­å½“å‰3d视图的相机ä½ç½®è¾“出到文件 + + Export the camera positon of the active 3D view in PovRay format to a file + å°†PovRayæ ¼å¼ä¸­å½“å‰3d视图的相机ä½ç½®è¾“出到文件 - - + + CmdRaytracingWritePart - Raytracing - 光线追踪 + + Raytracing + 光线追踪 - Export part to povray... - 输出零件到Povray... + + Export part to povray... + 输出零件到Povray... - Write the selected Part (object) as a povray file - 将选中零件(对象)写入Povray文件 + + Write the selected Part (object) as a povray file + 将选中零件(对象)写入Povray文件 - - + + CmdRaytracingWriteView - Raytracing - 光线追踪 + + + + No perspective camera + - Export view to povray... - 视图输出为Povray... + + + + The current view camera is not perspective and thus the result of the povray image later might look different to what you expect. +Do you want to continue? + - Write the active 3D view with camera and all its content to a povray file - 将当å‰ç›¸æœº3Dè§†å›¾ä»¥åŠæ‰€æœ‰å†…容写入到Povray文件 + + Raytracing + 光线追踪 - - + + + Export view to povray... + 视图输出为Povray... + + + + Write the active 3D view with camera and all its content to a povray file + 将当å‰ç›¸æœº3Dè§†å›¾ä»¥åŠæ‰€æœ‰å†…容写入到Povray文件 + + + QObject - Povray(*.pov) - Povray(*.pov) + + + + + Povray(*.pov) + Povray(*.pov) - All Files (*.*) - 所有文件(*.*) + + + + + All Files (*.*) + 所有文件(*.*) - Export page - å¯¼å‡ºé¡µé¢ + + + + + Export page + å¯¼å‡ºé¡µé¢ - Wrong selection - 选择错误 + + + Wrong selection + 选择错误 - Select a Part object. - 选择零件对象. + + Select a Part object. + 选择零件对象. - No Povray project to insert - æ— Povrayé¡¹ç›®å¯æ’å…¥ + + + No Povray project to insert + æ— Povrayé¡¹ç›®å¯æ’å…¥ - Create a Povray project to insert a view. - 创建一个Povray项目以æ’入视图. + + Create a Povray project to insert a view. + 创建一个Povray项目以æ’入视图. - Select one Povray project object. - 选择一个Povray项目. + + Select a Povray project to insert the view. + - - + + + Select one Povray project object. + 选择一个Povray项目. + + + RaytracingGui::DlgSettingsRay - - Raytracing - 光线追踪 + + Raytracing + 光线追踪 - Directories - 目录 + + Directories + 目录 - Default Project dir: - 默认项目路径: + + Default Project dir: + 默认项目路径: - Camera file name: - 相机文件的åç§°: + + Camera file name: + 相机文件的åç§°: - Part file name: - 零件文件åç§°: + + Part file name: + 零件文件åç§°: - TempCamera.inc - TempCamera.inc + + TempCamera.inc + TempCamera.inc - TempPart.inc - TempPart.inc + + TempPart.inc + TempPart.inc - Mesh export settings - 网格导出设置 + + Mesh export settings + 网格导出设置 - max mesh deviation: - 最大网格åå·®: + + max mesh deviation: + 最大网格åå·®: - Do not calculate vertex normals - ä¸è®¡ç®—顶点法线 + + Do not calculate vertex normals + ä¸è®¡ç®—顶点法线 - Write u,v coordinates - 写入U,Våæ ‡ + + Write u,v coordinates + 写入U,Våæ ‡ - - + + Workbench - - &Raytracing - 光线追踪(&R) + + &Raytracing + 光线追踪(&R) - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_af.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_af.ts index a7f1dfddd..0312aeebd 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_af.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_af.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Terugwaartse Ingenieurswese + + Reverse Engineering + Terugwaartse Ingenieurswese - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - Terugwaartse Ingenieurswese + + Reverse Engineering + Terugwaartse Ingenieurswese - Approximate surface... - Benaderde oppervlakte ... + + Approximate surface... + Benaderde oppervlakte ... - Approximate a B-Spline surface - Benader 'n B-kurwe oppervlak + + Approximate a B-Spline surface + Benader 'n B-kurwe oppervlak - - + + Workbench - - Reverse Engineering - Terugwaartse Ingenieurswese + + Reverse Engineering + Terugwaartse Ingenieurswese - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_de.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_de.ts index e542edf06..3511df971 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_de.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_de.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Rückführung + + Reverse Engineering + Rückführung - Approximate plane... - Ebene approximieren... + + Approximate plane... + Ebene approximieren... - Approximate a plane - Approximieren einer Ebene + + Approximate a plane + Approximieren einer Ebene - - + + CmdApproxSurface - Reverse Engineering - Rückführung + + Reverse Engineering + Rückführung - Approximate surface... - Ungefähre Oberfläche ... + + Approximate surface... + Ungefähre Oberfläche ... - Approximate a B-Spline surface - Ungefähre B-Spline-Oberfläche + + Approximate a B-Spline surface + Ungefähre B-Spline-Oberfläche - - + + Workbench - - Reverse Engineering - Rückführung + + Reverse Engineering + Rückführung - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_es.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_es.ts index 1c6a672f3..c008737ec 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_es.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_es.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Ingeniería Inversa + + Reverse Engineering + Ingeniería Inversa - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - Ingeniería Inversa + + Reverse Engineering + Ingeniería Inversa - Approximate surface... - Superficie aproximada... + + Approximate surface... + Superficie aproximada... - Approximate a B-Spline surface - Superficie aproximada a B-Spline + + Approximate a B-Spline surface + Superficie aproximada a B-Spline - - + + Workbench - - Reverse Engineering - Ingeniería Inversa + + Reverse Engineering + Ingeniería Inversa - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fi.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fi.ts index 4810bc164..9659704c0 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fi.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fi.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Käänteis suunnittelu + + Reverse Engineering + Käänteis suunnittelu - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - Käänteis suunnittelu + + Reverse Engineering + Käänteis suunnittelu - Approximate surface... - Arvioi pinta... + + Approximate surface... + Arvioi pinta... - Approximate a B-Spline surface - Arvioi B-Spline pinta + + Approximate a B-Spline surface + Arvioi B-Spline pinta - - + + Workbench - - Reverse Engineering - Käänteis suunnittelu + + Reverse Engineering + Käänteis suunnittelu - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts index 80a655840..1b91848d2 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_fr.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Rétro-ingénierie + + Reverse Engineering + Rétro-ingénierie - Approximate plane... - Approximer un plan... + + Approximate plane... + Approximer un plan... - Approximate a plane - Approximer un plan + + Approximate a plane + Approximer un plan - - + + CmdApproxSurface - Reverse Engineering - Rétro-ingénierie + + Reverse Engineering + Rétro-ingénierie - Approximate surface... - Approximer une surface... + + Approximate surface... + Approximer une surface... - Approximate a B-Spline surface - Approximer une surface B-Spline + + Approximate a B-Spline surface + Approximer une surface B-Spline - - + + Workbench - - Reverse Engineering - Rétro-ingénierie + + Reverse Engineering + Rétro-ingénierie - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hr.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hr.ts index c520ac32d..5bf8b922f 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hr.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hr.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Inverzni inženjering + + Reverse Engineering + Inverzni inženjering - Approximate plane... - Aproksimiraj ravninu ... + + Approximate plane... + Aproksimiraj ravninu ... - Approximate a plane - Aproksimiraj ravninu + + Approximate a plane + Aproksimiraj ravninu - - + + CmdApproxSurface - Reverse Engineering - Inverzni inženjering + + Reverse Engineering + Inverzni inženjering - Approximate surface... - Aproksimiraj povrÅ¡inu ... + + Approximate surface... + Aproksimiraj povrÅ¡inu ... - Approximate a B-Spline surface - Aproksimiraj savijena povrÅ¡ina + + Approximate a B-Spline surface + Aproksimiraj savijena povrÅ¡ina - - + + Workbench - - Reverse Engineering - Inverzni inženjering + + Reverse Engineering + Inverzni inženjering - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hu.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hu.ts index a012499bf..a407f5f43 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hu.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_hu.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Visszatervezés + + Reverse Engineering + Visszatervezés - Approximate plane... - HozzávetÅ‘leges sík ... + + Approximate plane... + HozzávetÅ‘leges sík ... - Approximate a plane - Sík megbecsülése + + Approximate a plane + Sík megbecsülése - - + + CmdApproxSurface - Reverse Engineering - Visszatervezés + + Reverse Engineering + Visszatervezés - Approximate surface... - Felület közelítés... + + Approximate surface... + Felület közelítés... - Approximate a B-Spline surface - B-Spline felület közelítése + + Approximate a B-Spline surface + B-Spline felület közelítése - - + + Workbench - - Reverse Engineering - Visszatervezés + + Reverse Engineering + Visszatervezés - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_it.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_it.ts index 7607ec42a..ca5827bda 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_it.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_it.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate plane... - Approssima piano... + + Approximate plane... + Approssima piano... - Approximate a plane - Approssima un piano + + Approximate a plane + Approssima un piano - - + + CmdApproxSurface - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate surface... - Approssima superficie... + + Approximate surface... + Approssima superficie... - Approximate a B-Spline surface - Approssima una superficie B-Spline + + Approximate a B-Spline surface + Approssima una superficie B-Spline - - + + Workbench - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ja.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ja.ts index ebbc03cf3..33259f23b 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ja.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ja.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° + + Reverse Engineering + リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° + + Reverse Engineering + リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° - Approximate surface... - ãŠãŠã‚ˆãã®è¡¨é¢... + + Approximate surface... + ãŠãŠã‚ˆãã®è¡¨é¢... - Approximate a B-Spline surface - B-スプライン曲é¢ã‚’è¿‘ä¼¼ + + Approximate a B-Spline surface + B-スプライン曲é¢ã‚’è¿‘ä¼¼ - - + + Workbench - - Reverse Engineering - リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° + + Reverse Engineering + リãƒãƒ¼ã‚¹ã‚¨ãƒ³ã‚¸ãƒ‹ã‚¢ãƒªãƒ³ã‚° - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_nl.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_nl.ts index 1fa1be27c..17b60018a 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_nl.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_nl.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate plane... - Benaderde vlak + + Approximate plane... + Benaderde vlak - Approximate a plane - Benader een vlak + + Approximate a plane + Benader een vlak - - + + CmdApproxSurface - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate surface... - Benaderde oppervlak... + + Approximate surface... + Benaderde oppervlak... - Approximate a B-Spline surface - Benader een B-Spline oppervlak + + Approximate a B-Spline surface + Benader een B-Spline oppervlak - - + + Workbench - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_no.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_no.ts index 0fbfd2c3f..7f470b0f0 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_no.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_no.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Reversertkonstruksjon + + Reverse Engineering + Reversertkonstruksjon - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - Reversertkonstruksjon + + Reverse Engineering + Reversertkonstruksjon - Approximate surface... - AnslÃ¥ overflate... + + Approximate surface... + AnslÃ¥ overflate... - Approximate a B-Spline surface - AnslÃ¥ en B-Splineoverflate + + Approximate a B-Spline surface + AnslÃ¥ en B-Splineoverflate - - + + Workbench - - Reverse Engineering - Reversertkonstruksjon + + Reverse Engineering + Reversertkonstruksjon - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pl.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pl.ts index 924390367..39da660ef 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pl.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pl.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate plane... - Aproksymuj pÅ‚aszczyznÄ™... + + Approximate plane... + Aproksymuj pÅ‚aszczyznÄ™... - Approximate a plane - Aproksymuj pÅ‚aszczyznÄ™ + + Approximate a plane + Aproksymuj pÅ‚aszczyznÄ™ - - + + CmdApproxSurface - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate surface... - Aproksymacja powierzchni + + Approximate surface... + Aproksymacja powierzchni - Approximate a B-Spline surface - Aproksymuj pÅ‚aszczyznÄ™ B-Splajn + + Approximate a B-Spline surface + Aproksymuj pÅ‚aszczyznÄ™ B-Splajn - - + + Workbench - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pt.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pt.ts index 62cbfc7d1..6503f7cae 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pt.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_pt.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Engenharia Reversa + + Reverse Engineering + Engenharia Reversa - Approximate plane... - Aproximar um plano... + + Approximate plane... + Aproximar um plano... - Approximate a plane - Aproximar um plano + + Approximate a plane + Aproximar um plano - - + + CmdApproxSurface - Reverse Engineering - Engenharia Reversa + + Reverse Engineering + Engenharia Reversa - Approximate surface... - Superfície aproximada... + + Approximate surface... + Superfície aproximada... - Approximate a B-Spline surface - Aproximar uma superfície B-Spline + + Approximate a B-Spline surface + Aproximar uma superfície B-Spline - - + + Workbench - - Reverse Engineering - Engenharia Reversa + + Reverse Engineering + Engenharia Reversa - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ru.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ru.ts index d1535fc95..bb3643aba 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ru.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_ru.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Обратный инжиниринг + + Reverse Engineering + Обратный инжиниринг - Approximate plane... - ÐŸÑ€Ð¸Ð±Ð»Ð¸Ð·Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑть... + + Approximate plane... + ÐŸÑ€Ð¸Ð±Ð»Ð¸Ð·Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑть... - Approximate a plane - ÐппрокÑимировать плоÑкоÑть + + Approximate a plane + ÐппрокÑимировать плоÑкоÑть - - + + CmdApproxSurface - Reverse Engineering - Обратный инжиниринг + + Reverse Engineering + Обратный инжиниринг - Approximate surface... - ÐпрокÑÐ¸Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти... + + Approximate surface... + ÐпрокÑÐ¸Ð¼Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñти... - Approximate a B-Spline surface - ÐпрокÑимировать поверхноÑть B-Ñплайна + + Approximate a B-Spline surface + ÐпрокÑимировать поверхноÑть B-Ñплайна - - + + Workbench - - Reverse Engineering - Обратный инжиниринг + + Reverse Engineering + Обратный инжиниринг - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_se.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_se.ts index be74b4594..44c60d4b7 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_se.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_se.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate plane... - Approximerar ett plan... + + Approximate plane... + Approximerar ett plan... - Approximate a plane - Approximera ett plan + + Approximate a plane + Approximera ett plan - - + + CmdApproxSurface - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - Approximate surface... - Approximera yta... + + Approximate surface... + Approximera yta... - Approximate a B-Spline surface - Approximera en B-Spline yta + + Approximate a B-Spline surface + Approximera en B-Spline yta - - + + Workbench - - Reverse Engineering - Reverse Engineering + + Reverse Engineering + Reverse Engineering - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_uk.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_uk.ts index a3e3f44ec..3971f4e12 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_uk.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_uk.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - Зворотній інженеринг + + Reverse Engineering + Зворотній інженеринг - Approximate plane... - Approximate plane... + + Approximate plane... + Approximate plane... - Approximate a plane - Approximate a plane + + Approximate a plane + Approximate a plane - - + + CmdApproxSurface - Reverse Engineering - Зворотній інженеринг + + Reverse Engineering + Зворотній інженеринг - Approximate surface... - ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ– ... + + Approximate surface... + ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ– ... - Approximate a B-Spline surface - Орієнтувати поверхню B-Spline + + Approximate a B-Spline surface + Орієнтувати поверхню B-Spline - - + + Workbench - - Reverse Engineering - Зворотній інженеринг + + Reverse Engineering + Зворотній інженеринг - + diff --git a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh.ts b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh.ts index 2d68c0d01..852b1b5f3 100644 --- a/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh.ts +++ b/src/Mod/ReverseEngineering/Gui/Resources/translations/ReverseEngineering_zh.ts @@ -1,43 +1,48 @@ - - + + CmdApproxPlane - - Reverse Engineering - 逆å‘工程 + + Reverse Engineering + 逆å‘工程 - Approximate plane... - 近似​​平é¢... + + Approximate plane... + 近似​​平é¢... - Approximate a plane - è¿‘ä¼¼â€‹â€‹å¹³é¢ + + Approximate a plane + è¿‘ä¼¼â€‹â€‹å¹³é¢ - - + + CmdApproxSurface - Reverse Engineering - 逆å‘工程 + + Reverse Engineering + 逆å‘工程 - Approximate surface... - 近似曲é¢... + + Approximate surface... + 近似曲é¢... - Approximate a B-Spline surface - è¿‘ä¼¼Bæ ·æ¡æ›²é¢ + + Approximate a B-Spline surface + è¿‘ä¼¼Bæ ·æ¡æ›²é¢ - - + + Workbench - - Reverse Engineering - 逆å‘工程 + + Reverse Engineering + 逆å‘工程 - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_af.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_af.ts index 9fda679b0..8a5c153b4 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_af.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_af.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Voeg werktuig by + + Add tool + Voeg werktuig by - Add a tool shape to the robot - Voeg 'n werktuigvorm by tot die robot + + Add a tool shape to the robot + Voeg 'n werktuigvorm by tot die robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Plaseer robot... + + Place robot... + Plaseer robot... - Place a robot (experimental!) - Plaseer 'n robot (eksperimenteel!) + + Place a robot (experimental!) + Plaseer 'n robot (eksperimenteel!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Skep trajek + + Create trajectory + Skep trajek - Create a new empty trajectory - Skep 'n nuwe leë trajek + + Create a new empty trajectory + Skep 'n nuwe leë trajek - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Verander 'n kant in 'n trajek ... + + Edge to Trajectory... + Verander 'n kant in 'n trajek ... - Generate a Trajectory from a set of edges - Maak 'n trajek van 'n stel kante + + Generate a Trajectory from a set of edges + Maak 'n trajek van 'n stel kante - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kuka kompakte subroetine ... + + Kuka compact subroutine... + Kuka kompakte subroetine ... - Export the trajectory as a compact KRL subroutine. - Voer die trajek uit as 'n kompakte KRL-subroetine. + + Export the trajectory as a compact KRL subroutine. + Voer die trajek uit as 'n kompakte KRL-subroetine. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Kuka volle subroetine ... + + Kuka full subroutine... + Kuka volle subroetine ... - Export the trajectory as a full KRL subroutine. - Voer die trajek uit as 'n volle KRL-subroetine. + + Export the trajectory as a full KRL subroutine. + Voer die trajek uit as 'n volle KRL-subroetine. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Voeg 'n Kuka IR125 in in die dokument. + + Insert a Kuka IR125 into the document. + Voeg 'n Kuka IR125 in in die dokument. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Voeg 'n Kuka IR16 in in die dokument. + + Insert a Kuka IR16 into the document. + Voeg 'n Kuka IR16 in in die dokument. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Voeg 'n Kuka IR210 in in die dokument. + + Insert a Kuka IR210 into the document. + Voeg 'n Kuka IR210 in in die dokument. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Voeg 'n Kuka IR500 in in die dokument. + + Insert a Kuka IR500 into the document. + Voeg 'n Kuka IR500 in in die dokument. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Voeg in trajek in + + Insert in trajectory + Voeg in trajek in - Insert robot Tool location into trajectory - Voeg robotwerktuigligging in 'n trajek + + Insert robot Tool location into trajectory + Voeg robotwerktuigligging in 'n trajek - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Voeg in trajek in + + Insert in trajectory + Voeg in trajek in - Insert preselection position into trajectory (W) - Voeg voorafkeuseligging in 'n trajek (W) + + Insert preselection position into trajectory (W) + Voeg voorafkeuseligging in 'n trajek (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Skuif na tuisposisie + + + Move to home + Skuif na tuisposisie - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Gee versuimoriëntasie + + Set default orientation + Gee versuimoriëntasie - set the default orientation for subsequent commands for waypoint creation - Gee die versuimoriëntasie vir opvolgende bevele om 'n bakenpunt te skep + + set the default orientation for subsequent commands for waypoint creation + Gee die versuimoriëntasie vir opvolgende bevele om 'n bakenpunt te skep - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Gee versuimwaardes + + Set default values + Gee versuimwaardes - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Gee die versuimwaardes vir spoed, versnelling en kontinuïteit vir die opvolgende bevele van bakenpuntskepping + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Gee die versuimwaardes vir spoed, versnelling en kontinuïteit vir die opvolgende bevele van bakenpuntskepping - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Stel die tuisposisie + + + Set the home position + Stel die tuisposisie - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simuleer 'n trajek + + Simulate a trajectory + Simuleer 'n trajek - Run a simulation on a trajectory - Loop 'n simulasie op 'n trajek + + Run a simulation on a trajectory + Loop 'n simulasie op 'n trajek - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Trajeksaamgestelde ... + + Trajectory compound... + Trajeksaamgestelde ... - Group and connect some trajectories to one - Groepeer en konnekteer 'n paar trajekte in een + + Group and connect some trajectories to one + Groepeer en konnekteer 'n paar trajekte in een - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Verfraai trajek ... + + Dress up trajectory... + Verfraai trajek ... - Create a dress up object which overide som aspects of a trajectory - Skep 'n verfraaiingsvoorwerp wat sommige aspekte van die trajek ignoreer + + Create a dress up object which overide som aspects of a trajectory + Skep 'n verfraaiingsvoorwerp wat sommige aspekte van die trajek ignoreer - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robot tools + + Robot tools + Robot tools - Insert Robot - Insert Robot + + Insert Robot + Insert Robot - - + + QObject - - Wrong selection - Verkeerde keuse + + + + + + + + + + + + Wrong selection + Verkeerde keuse - Select one Robot and one Trajectory object. - Kies een Robot en een Trajekvoorwerp. + + + + + + Select one Robot and one Trajectory object. + Kies een Robot en een Trajekvoorwerp. - Trajectory not valid - Trajek nie geldig nie + + Trajectory not valid + Trajek nie geldig nie - You need at least two way points in a trajectory to simulate. - Jy moet ten minste twee wegpunte in 'n trajek hê om te simuleer. + + You need at least two way points in a trajectory to simulate. + Jy moet ten minste twee wegpunte in 'n trajek hê om te simuleer. - - KRL file(*.src) - KRL-lêer (*.src) + + + KRL file(*.src) + KRL-lêer (*.src) - All Files (*.*) - Alle lêers (*.*) + + + All Files (*.*) + Alle lêers (*.*) - Export program - Voer program uit + + + Export program + Voer program uit - - Select one robot and one shape or VRML object. - Kies een robot en een vorm of VRML-voorwerp. + + Select one robot and one shape or VRML object. + Kies een robot en een vorm of VRML-voorwerp. - - No preselection - Geen voorafkeuse + + No preselection + Geen voorafkeuse - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Jy moet met die muis oor 'n vorm sweef om hierdie bevel te gebruik. Sien die dokumentasie vir meer inligting. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Jy moet met die muis oor 'n vorm sweef om hierdie bevel te gebruik. Sien die dokumentasie vir meer inligting. - - Select one Robot to set home postion - Kies een Robot om die tuisposisie te bepaal + + Select one Robot to set home postion + Kies een Robot om die tuisposisie te bepaal - Select one Robot - Kies een Robot + + Select one Robot + Kies een Robot - - Select one Trajectory object. - Kies een Trajekvoorwerp. + + + Select one Trajectory object. + Kies een Trajekvoorwerp. - set default speed - Gee versuimspoed + + set default speed + Gee versuimspoed - speed: (e.g. 1 m/s or 3 cm/s) - spoed: (bv. 1 m/s of 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + spoed: (bv. 1 m/s of 3 cm/s) - set default continuity - gee versuimkontinuïteit + + set default continuity + gee versuimkontinuïteit - continuous ? - kontinu? + + continuous ? + kontinu? - set default acceleration - gee versuimversnelling + + set default acceleration + gee versuimversnelling - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - versnelling: (bv. 1 m/s² of 3 cm/s²) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + versnelling: (bv. 1 m/s² of 3 cm/s²) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - Geen robotlêers geïnstalleer + + No robot files installed + Geen robotlêers geïnstalleer - Please visit %1 and copy the files to %2 - Besoek %1 en kopieer die lêers na %2 + + Please visit %1 and copy the files to %2 + Besoek %1 en kopieer die lêers na %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulasie + + Simulation + Simulasie - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Soort + + Type + Soort - Name - Naam + + Name + Naam - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaakKantNaPadParameter + + TaskEdge2TracParameter + TaakKantNaPadParameter - - + + RobotGui::TaskRobot6Axis - - Form - Vorm + + Form + Vorm - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Werktuig: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Werktuig: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaakRobot6As + + TaskRobot6Axis + TaakRobot6As - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaakRobotKontrole + + TaskRobotControl + TaakRobotKontrole - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaakRobotBoodskappe + + TaskRobotMessages + TaakRobotBoodskappe - - + + RobotGui::TaskTrajectory - - Form - Vorm + + Form + Vorm - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343, 343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343, 343) - Type - Soort + + Type + Soort - Name - Naam + + Name + Naam - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trajek + + Trajectory + Trajek - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Parameter vir verfraaiing + + Dress Up Parameter + Parameter vir verfraaiing - - + + TaskEdge2TracParameter - - Form - Vorm + + Form + Vorm - Hide / Show - Wys/Verberg + + Hide / Show + Wys/Verberg - Edges: 0 - Kante: 0 + + Edges: 0 + Kante: 0 - Cluster: 0 - Tros: 0 + + Cluster: 0 + Tros: 0 - Sizing Value: - Groottewaarde: + + Sizing Value: + Groottewaarde: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - TaakKantNaPadParameter + TaskEdge2TracParameter + TaakKantNaPadParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaakRobot6As + TaskRobot6Axis + TaakRobot6As - - + + TaskRobotControl - - Form - Vorm + + Form + Vorm - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Werktuig 0 + + Tool 0 + Werktuig 0 - Tool - Werktuig + + Tool + Werktuig - Base 0 - Basis 0 + + Base 0 + Basis 0 - Base - Basis + + Base + Basis - World - Wêreld + + World + Wêreld + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaakRobotKontrole - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - TaakRobotKontrole - - - + + TaskRobotMessages - - Form - Vorm + + Form + Vorm - clear - Maak skoon + + clear + Maak skoon - TaskRobotMessages - TaakRobotBoodskappe + TaskRobotMessages + TaakRobotBoodskappe - - + + TaskTrajectory - Trajectory - Trajek + Trajectory + Trajek - - + + TaskTrajectoryDressUpParameter - - Form - Vorm + + Form + Vorm - Speed & Acceleration: - Spoed en versnelling: + + Speed & Acceleration: + Spoed en versnelling: - Speed: - Spoed: + + Speed: + Spoed: - Use - Gebruik + + + Use + Gebruik - Accel: - Versnel: + + Accel: + Versnel: - Don't change Cont - Moenie die kontinuum verander nie + + Don't change Cont + Moenie die kontinuum verander nie - Continues - Gaan voort + + Continues + Gaan voort - Discontinues - Hou op + + Discontinues + Hou op - Position and Orientation: - Posisie en oriëntasie: + + Position and Orientation: + Posisie en oriëntasie: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Moenie die posisie en oriëntasie verander nie + + Don't change Position & Orientation + Moenie die posisie en oriëntasie verander nie - Use Orientation - Gebruik Oriëntasie + + Use Orientation + Gebruik Oriëntasie - Add Position - Voeg posisie by + + Add Position + Voeg posisie by - Add Orientation - Voeg oriëntasie by + + Add Orientation + Voeg oriëntasie by - Dress Up Parameter - Parameter vir verfraaiing + Dress Up Parameter + Parameter vir verfraaiing - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Voeg robotte in + + Insert Robots + Voeg robotte in - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Voer trajek uit + + Export trajectory + Voer trajek uit - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_de.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_de.ts index 564f0b2fd..bb3e9d6d2 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_de.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_de.ts @@ -1,878 +1,1045 @@ - - + + CmdRobotAddToolShape - - Robot - Roboter + + Robot + Roboter - Add tool - Werkzeug hinzufügen + + Add tool + Werkzeug hinzufügen - Add a tool shape to the robot - Hinzufügen einer Werkzeug-Form zum Roboter + + Add a tool shape to the robot + Hinzufügen einer Werkzeug-Form zum Roboter - - + + CmdRobotConstraintAxle - - Robot - Roboter + + Robot + Roboter - Place robot... - Plaziert einen Roboter... + + Place robot... + Plaziert einen Roboter... - Place a robot (experimental!) - Platziere einen Roboter (experimental!) + + Place a robot (experimental!) + Platziere einen Roboter (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - Roboter + + Robot + Roboter - Create trajectory - Erstelle Arbeitsbewegung + + Create trajectory + Erstelle Arbeitsbewegung - Create a new empty trajectory - Erstellen Sie eine neue, leere Arbeitsbewegung + + Create a new empty trajectory + Erstellen Sie eine neue, leere Arbeitsbewegung - - + + CmdRobotEdge2Trac - Robot - Roboter + + Robot + Roboter - Edge to Trajectory... - Punkt zur Arbeitsbewegung hinzufügen... + + Edge to Trajectory... + Punkt zur Arbeitsbewegung hinzufügen... - Generate a Trajectory from a set of edges - Generieren Sie eine Arbeitsbewegung aus einer Reihe von Punkten + + Generate a Trajectory from a set of edges + Generieren Sie eine Arbeitsbewegung aus einer Reihe von Punkten - - + + CmdRobotExportKukaCompact - - Robot - Roboter + + Robot + Roboter - Kuka compact subroutine... - KUKA kompaktes Unterprogramm ... + + Kuka compact subroutine... + KUKA kompaktes Unterprogramm ... - Export the trajectory as a compact KRL subroutine. - Exportieren Sie die Arbeitsbewegung als kompaktes KRL Unterprogramm. + + Export the trajectory as a compact KRL subroutine. + Exportieren Sie die Arbeitsbewegung als kompaktes KRL Unterprogramm. - - + + CmdRobotExportKukaFull - Robot - Roboter + + Robot + Roboter - Kuka full subroutine... - KUKA vollständiges Unterprogramm ... + + Kuka full subroutine... + KUKA vollständiges Unterprogramm ... - Export the trajectory as a full KRL subroutine. - Exportieren Sie die Arbeitsbewegung als eine volle KRL-Unterroutine. + + Export the trajectory as a full KRL subroutine. + Exportieren Sie die Arbeitsbewegung als eine volle KRL-Unterroutine. - - + + CmdRobotInsertKukaIR125 - - Robot - Roboter + + Robot + Roboter - Kuka IR125 - KUKA IR125 + + Kuka IR125 + KUKA IR125 - Insert a Kuka IR125 into the document. - Einen Kuka-IR125 in das Dokument einfügen. + + Insert a Kuka IR125 into the document. + Einen Kuka-IR125 in das Dokument einfügen. - - + + CmdRobotInsertKukaIR16 - Robot - Roboter + + Robot + Roboter - Kuka IR16 - KUKA IR16 + + Kuka IR16 + KUKA IR16 - Insert a Kuka IR16 into the document. - Einen Kuka-IR16 in das Dokument einfügen. + + Insert a Kuka IR16 into the document. + Einen Kuka-IR16 in das Dokument einfügen. - - + + CmdRobotInsertKukaIR210 - Robot - Roboter + + Robot + Roboter - Kuka IR210 - KUKA IR210 + + Kuka IR210 + KUKA IR210 - Insert a Kuka IR210 into the document. - Einen Kuka-IR210 in das Dokument einfügen. + + Insert a Kuka IR210 into the document. + Einen Kuka-IR210 in das Dokument einfügen. - - + + CmdRobotInsertKukaIR500 - Robot - Roboter + + Robot + Roboter - Kuka IR500 - KUKA IR500 + + Kuka IR500 + KUKA IR500 - Insert a Kuka IR500 into the document. - Einen Kuka-IR500 in das Dokument einfügen. + + Insert a Kuka IR500 into the document. + Einen Kuka-IR500 in das Dokument einfügen. - - + + CmdRobotInsertWaypoint - - Robot - Roboter + + Robot + Roboter - Insert in trajectory - Fügen Sie eine Arbeitsbewegung ein + + Insert in trajectory + Fügen Sie eine Arbeitsbewegung ein - Insert robot Tool location into trajectory - Lage des Roboterwerkzeugs in Arbeitsbewegung einbringen + + Insert robot Tool location into trajectory + Lage des Roboterwerkzeugs in Arbeitsbewegung einbringen - - + + CmdRobotInsertWaypointPreselect - Robot - Roboter + + Robot + Roboter - Insert in trajectory - Fügen Sie eine Arbeitsbewegung ein + + Insert in trajectory + Fügen Sie eine Arbeitsbewegung ein - Insert preselection position into trajectory (W) - Vorausgewählte Position in Arbeitsbewegung einbringen (W) + + Insert preselection position into trajectory (W) + Vorausgewählte Position in Arbeitsbewegung einbringen (W) - - + + CmdRobotRestoreHomePos - - Robot - Roboter + + Robot + Roboter - Move to home - Zur Ausgansposition bewegen + + + Move to home + Zur Ausgansposition bewegen - - + + CmdRobotSetDefaultOrientation - - Robot - Roboter + + Robot + Roboter - Set default orientation - Setze Standardrichtung + + Set default orientation + Setze Standardrichtung - set the default orientation for subsequent commands for waypoint creation - Setzt die Standardausrichtung für nachfolgende Befehle zur Wegpunkterstellung + + set the default orientation for subsequent commands for waypoint creation + Setzt die Standardausrichtung für nachfolgende Befehle zur Wegpunkterstellung - - + + CmdRobotSetDefaultValues - Robot - Roboter + + Robot + Roboter - Set default values - Festlegen von Standardwerten + + Set default values + Festlegen von Standardwerten - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Setzt die Standard-Werte für Geschwindigkeit, Beschleunigung und Dauer für die nachfolgenden Befehle der Wegpunkterstellung + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Setzt die Standard-Werte für Geschwindigkeit, Beschleunigung und Dauer für die nachfolgenden Befehle der Wegpunkterstellung - - + + CmdRobotSetHomePos - - Robot - Roboter + + Robot + Roboter - Set the home position - Setzen Sie die Ausgansposition + + + Set the home position + Setzen Sie die Ausgansposition - - + + CmdRobotSimulate - Robot - Roboter + + Robot + Roboter - Simulate a trajectory - Simulieren einer Arbeitsbewegung + + Simulate a trajectory + Simulieren einer Arbeitsbewegung - Run a simulation on a trajectory - Simulation über die Bewegungsbahn starten + + Run a simulation on a trajectory + Simulation über die Bewegungsbahn starten - - + + CmdRobotTrajectoryCompound - - Robot - Roboter + + Robot + Roboter - Trajectory compound... - Verbinden der Arbeitsbewegungen ... + + Trajectory compound... + Verbinden der Arbeitsbewegungen ... - Group and connect some trajectories to one - Gruppieren und Verbinden zu einer Arbeitsbewegung + + Group and connect some trajectories to one + Gruppieren und Verbinden zu einer Arbeitsbewegung - - + + CmdRobotTrajectoryDressUp - Robot - Roboter + + Robot + Roboter - Dress up trajectory... - Arbeitsbewegung verfeinern ... + + Dress up trajectory... + Arbeitsbewegung verfeinern ... - Create a dress up object which overide som aspects of a trajectory - Erstelle Dress-Up-Objekt, das Teile der Trajektorie überschreibt + + Create a dress up object which overide som aspects of a trajectory + Erstelle Dress-Up-Objekt, das Teile der Trajektorie überschreibt - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Bwewgung Werkzeuge + + Trajectory tools + Bwewgung Werkzeuge - Robot tools - Roboter-Werkzeuge + + Robot tools + Roboter-Werkzeuge - Insert Robot - Roboter einfügen + + Insert Robot + Roboter einfügen - - + + QObject - - Wrong selection - Falsche Auswahl + + + + + + + + + + + + Wrong selection + Falsche Auswahl - Select one Robot and one Trajectory object. - Wählen Sie einen Roboter und eine Arbeitsbewegung. + + + + + + Select one Robot and one Trajectory object. + Wählen Sie einen Roboter und eine Arbeitsbewegung. - Trajectory not valid - Arbeitsbewegung nicht gültig + + Trajectory not valid + Arbeitsbewegung nicht gültig - You need at least two way points in a trajectory to simulate. - Sie benötigen mindestens zwei Wegpunkte, um eine Bewegungsbahn zu simulieren. + + You need at least two way points in a trajectory to simulate. + Sie benötigen mindestens zwei Wegpunkte, um eine Bewegungsbahn zu simulieren. - - KRL file(*.src) - KRL-Datei (*. src) + + + KRL file(*.src) + KRL-Datei (*. src) - All Files (*.*) - Alle Dateien (*.*) + + + All Files (*.*) + Alle Dateien (*.*) - Export program - Programm exportieren + + + Export program + Programm exportieren - - Select one robot and one shape or VRML object. - Wählen Sie einen Roboter und eine Form oder ein VRML-Objekt. + + Select one robot and one shape or VRML object. + Wählen Sie einen Roboter und eine Form oder ein VRML-Objekt. - - No preselection - Keine Vorauswahl + + No preselection + Keine Vorauswahl - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Sie müssen die Maus über eine Geometrie (Preselection) positionieren, um diesen Befehl zu verwenden. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Sie müssen die Maus über eine Geometrie (Preselection) positionieren, um diesen Befehl zu verwenden. Siehe Dokumentation für Details. - - Select one Robot to set home postion - Wählen Sie einen Roboter um die Ausgangsposition zu setzen + + Select one Robot to set home postion + Wählen Sie einen Roboter um die Ausgangsposition zu setzen - Select one Robot - Einen Roboter auswählen + + Select one Robot + Einen Roboter auswählen - - Select one Trajectory object. - Einen Bewegungsablauf wählen. + + + Select one Trajectory object. + Einen Bewegungsablauf wählen. - set default speed - Standardgeschwindigkeit setzen + + set default speed + Standardgeschwindigkeit setzen - speed: (e.g. 1 m/s or 3 cm/s) - Geschwindigkeit: (z.B. 1 m/s oder 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + Geschwindigkeit: (z.B. 1 m/s oder 3 cm/s) - set default continuity - Setze Vorgabe zur Dauer + + set default continuity + Setze Vorgabe zur Dauer - continuous ? - Fortlaufend ? + + continuous ? + Fortlaufend ? - set default acceleration - Standardbeschleunigung setzen + + set default acceleration + Standardbeschleunigung setzen - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - Beschleunigung: (zB 1 m / s ^ 2 oder 3 cm / s ^ 2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + Beschleunigung: (zB 1 m / s ^ 2 oder 3 cm / s ^ 2) - Select the Trajectory which you want to dress up. - Wählen Sie die Bewegung die Sie verwenden wollen. + + Select the Trajectory which you want to dress up. + Wählen Sie die Bewegung die Sie verwenden wollen. - - No robot files installed - Keine Roboter-Dateien installiert + + No robot files installed + Keine Roboter-Dateien installiert - Please visit %1 and copy the files to %2 - Bitte gehen Sie zu %1 und kopieren Sie die Dateien in %2 + + Please visit %1 and copy the files to %2 + Bitte gehen Sie zu %1 und kopieren Sie die Dateien in %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulation + + Simulation + Simulation - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Typ + + Type + Typ - Name - Name + + Name + Name - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Form + + Form + Form - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Werkzeug: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Werkzeug: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Form + + Form + Form - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Position: (200,23, 300,23, 400,23, 234, 343, 343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Position: (200,23, 300,23, 400,23, 234, 343, 343) - Type - Typ + + Type + Typ - Name - Name + + Name + Name - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Bahnverlauf + + Trajectory + Bahnverlauf - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Dress Up Parameter + + Dress Up Parameter + Dress Up Parameter - - + + TaskEdge2TracParameter - - Form - Form + + Form + Form - Hide / Show - Verbergen / Zeigen + + Hide / Show + Verbergen / Zeigen - Edges: 0 - Punkte: 0 + + Edges: 0 + Punkte: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Größenwert: + + Sizing Value: + Größenwert: - Use orientation of edge - Orientierung am Rand + + Use orientation of edge + Orientierung am Rand - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Form + + Form + Form - X+ - X + + + X+ + X + - Y+ - Y + + + Y+ + Y + - Z+ - Z + + + Z+ + Z + - A+ - A + + + A+ + A + - B+ - B + + + B+ + B + - C+ - C + + + C+ + C + - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Werkzeug 0 + + Tool 0 + Werkzeug 0 - Tool - Werkzeug + + Tool + Werkzeug - Base 0 - Basis 0 + + Base 0 + Basis 0 - Base - Basis + + Base + Basis - World - Welt + + World + Welt + + + + 50mm / 5° + 50mm / 5 ° + + + + 20mm / 2° + 20mm / 2 ° + + + + 10mm / 1° + 10mm / 1 ° + + + + 5mm / 0.5° + 5mm / 0,5 ° + + + + 1mm / 0.1° + 1mm / 0,1 ° - 50mm / 5° - 50mm / 5 ° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2 ° - - - 10mm / 1° - 10mm / 1 ° - - - 5mm / 0.5° - 5mm / 0,5 ° - - - 1mm / 0.1° - 1mm / 0,1 ° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Form + + Form + Form - clear - Zurücksetzen + + clear + Zurücksetzen - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Bahnverlauf + Trajectory + Bahnverlauf - - + + TaskTrajectoryDressUpParameter - - Form - Form + + Form + Form - Speed & Acceleration: - Geschwindigkeit & Beschleunigung: + + Speed & Acceleration: + Geschwindigkeit & Beschleunigung: - Speed: - Geschwindigkeit: + + Speed: + Geschwindigkeit: - Use - Verwenden + + + Use + Verwenden - Accel: - Beschleunigung: + + Accel: + Beschleunigung: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - Continues + + Continues + Continues - Discontinues - Discontinues + + Discontinues + Discontinues - Position and Orientation: - Position und Orientierung: + + Position and Orientation: + Position und Orientierung: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Position und Richtung nicht verändern + + Don't change Position & Orientation + Position und Richtung nicht verändern - Use Orientation - Benutze Orientierung + + Use Orientation + Benutze Orientierung - Add Position - Position hinzufügen + + Add Position + Position hinzufügen - Add Orientation - Hinzufügen der Orientierung + + Add Orientation + Hinzufügen der Orientierung - Dress Up Parameter - Dress Up Parameter + Dress Up Parameter + Dress Up Parameter - - + + Workbench - - Robot - Roboter + + Robot + Roboter - Insert Robots - Roboter einfügen + + Insert Robots + Roboter einfügen - &Robot - &Roboter + + &Robot + &Roboter - Export trajectory - Exportiere Arbeitsbewegung + + Export trajectory + Exportiere Arbeitsbewegung - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_es.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_es.ts index ae10f908a..18ca53dd9 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_es.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_es.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Agregar herramienta + + Add tool + Agregar herramienta - Add a tool shape to the robot - Agregar una forma de herramienta para el robot + + Add a tool shape to the robot + Agregar una forma de herramienta para el robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Emplazar robot ... + + Place robot... + Emplazar robot ... - Place a robot (experimental!) - Colocar un robot (experimental!) + + Place a robot (experimental!) + Colocar un robot (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Crear trayectoria + + Create trajectory + Crear trayectoria - Create a new empty trajectory - Crear una nueva trayectoria vacía + + Create a new empty trajectory + Crear una nueva trayectoria vacía - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Borde de trayectoria... + + Edge to Trajectory... + Borde de trayectoria... - Generate a Trajectory from a set of edges - Generar una trayectoria de un conjunto de aristas + + Generate a Trajectory from a set of edges + Generar una trayectoria de un conjunto de aristas - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Subrutina de KUKA compacta ... + + Kuka compact subroutine... + Subrutina de KUKA compacta ... - Export the trajectory as a compact KRL subroutine. - Exportar la trayectoria como una subrutina KRL compacta. + + Export the trajectory as a compact KRL subroutine. + Exportar la trayectoria como una subrutina KRL compacta. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Subrutina Kuka completa ... + + Kuka full subroutine... + Subrutina Kuka completa ... - Export the trajectory as a full KRL subroutine. - Exportar la trayectoria como una subrutina KRL completa. + + Export the trajectory as a full KRL subroutine. + Exportar la trayectoria como una subrutina KRL completa. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka iR125 + + Kuka IR125 + Kuka iR125 - Insert a Kuka IR125 into the document. - Inserte un Kuka iR125 en el documento. + + Insert a Kuka IR125 into the document. + Inserte un Kuka iR125 en el documento. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Inserte un Kuka IR16 en el documento. + + Insert a Kuka IR16 into the document. + Inserte un Kuka IR16 en el documento. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Inserte un Kuka IR210 en el documento. + + Insert a Kuka IR210 into the document. + Inserte un Kuka IR210 en el documento. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - KUKA IR500 + + Kuka IR500 + KUKA IR500 - Insert a Kuka IR500 into the document. - Inserte una Kuka IR500 en el documento. + + Insert a Kuka IR500 into the document. + Inserte una Kuka IR500 en el documento. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Insertar en la trayectoria + + Insert in trajectory + Insertar en la trayectoria - Insert robot Tool location into trajectory - Inserte la herramienta lacalización del robot en la trayectoria + + Insert robot Tool location into trajectory + Inserte la herramienta lacalización del robot en la trayectoria - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Insertar en la trayectoria + + Insert in trajectory + Insertar en la trayectoria - Insert preselection position into trajectory (W) - Introduzca la posición de preselección en la trayectoria (W) + + Insert preselection position into trajectory (W) + Introduzca la posición de preselección en la trayectoria (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Mover al inicio + + + Move to home + Mover al inicio - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Establecer orientación por defecto + + Set default orientation + Establecer orientación por defecto - set the default orientation for subsequent commands for waypoint creation - Establecer la orientación por defecto para comandos posteriores la la creación de punto de referencia + + set the default orientation for subsequent commands for waypoint creation + Establecer la orientación por defecto para comandos posteriores la la creación de punto de referencia - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Establecer valores por defecto + + Set default values + Establecer valores por defecto - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Establecer los valores predeterminados de velocidad, aceleración y continuidad para los comandos posteriores a la creación del punto de referencia + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Establecer los valores predeterminados de velocidad, aceleración y continuidad para los comandos posteriores a la creación del punto de referencia - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Establezca la posición inicial + + + Set the home position + Establezca la posición inicial - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simular una trayectoria + + Simulate a trajectory + Simular una trayectoria - Run a simulation on a trajectory - Ejecutar una simulación en una trayectoria + + Run a simulation on a trajectory + Ejecutar una simulación en una trayectoria - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Componer trayectoria... + + Trajectory compound... + Componer trayectoria... - Group and connect some trajectories to one - Agrupar y conectar algunas trayectorias en una + + Group and connect some trajectories to one + Agrupar y conectar algunas trayectorias en una - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Revestir trayectoria... + + Dress up trajectory... + Revestir trayectoria... - Create a dress up object which overide som aspects of a trajectory - Crear un objeto revestido que anula algunos aspectos de una trayectoria + + Create a dress up object which overide som aspects of a trajectory + Crear un objeto revestido que anula algunos aspectos de una trayectoria - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robot tools + + Robot tools + Robot tools - Insert Robot - Insert Robot + + Insert Robot + Insert Robot - - + + QObject - - Wrong selection - Selección incorrecta + + + + + + + + + + + + Wrong selection + Selección incorrecta - Select one Robot and one Trajectory object. - Seleccione un robot y un objeto trayectoria. + + + + + + Select one Robot and one Trajectory object. + Seleccione un robot y un objeto trayectoria. - Trajectory not valid - La trayectoria no es válida + + Trajectory not valid + La trayectoria no es válida - You need at least two way points in a trajectory to simulate. - Usted necesita por lo menos dos puntos de paso en una trayectoria para poder simular. + + You need at least two way points in a trajectory to simulate. + Usted necesita por lo menos dos puntos de paso en una trayectoria para poder simular. - - KRL file(*.src) - Archivo KRL (*.src) + + + KRL file(*.src) + Archivo KRL (*.src) - All Files (*.*) - Todos los archivos (*.*) + + + All Files (*.*) + Todos los archivos (*.*) - Export program - Exportar programa + + + Export program + Exportar programa - - Select one robot and one shape or VRML object. - Seleccione un robot y una forma u objeto VRML. + + Select one robot and one shape or VRML object. + Seleccione un robot y una forma u objeto VRML. - - No preselection - Sin preselección + + No preselection + Sin preselección - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Usted tiene que pasar el ratón por encima de una geometría (preselección) para utilizar este comando. Consulte la documentación para obtener más detalles. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Usted tiene que pasar el ratón por encima de una geometría (preselección) para utilizar este comando. Consulte la documentación para obtener más detalles. - - Select one Robot to set home postion - Seleccione un Robot para establecer la posición de inicio + + Select one Robot to set home postion + Seleccione un Robot para establecer la posición de inicio - Select one Robot - Seleccione un Robot + + Select one Robot + Seleccione un Robot - - Select one Trajectory object. - Seleccione un objeto de trayectoria. + + + Select one Trajectory object. + Seleccione un objeto de trayectoria. - set default speed - Establecer velocidad por defecto + + set default speed + Establecer velocidad por defecto - speed: (e.g. 1 m/s or 3 cm/s) - velocidad: (p.e. 1 m/s o 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + velocidad: (p.e. 1 m/s o 3 cm/s) - set default continuity - Establecer la continuidad por defecto + + set default continuity + Establecer la continuidad por defecto - continuous ? - ¿continuo? + + continuous ? + ¿continuo? - set default acceleration - Establecer aceleración por defecto + + set default acceleration + Establecer aceleración por defecto - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - aceleración: (p.e., 1 m/s ^ 2 o 3 cm/s ^ 2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + aceleración: (p.e., 1 m/s ^ 2 o 3 cm/s ^ 2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - No hay archivos de robot instalados + + No robot files installed + No hay archivos de robot instalados - Please visit %1 and copy the files to %2 - Por favor, visite %1 y copie los archivos en %2 + + Please visit %1 and copy the files to %2 + Por favor, visite %1 y copie los archivos en %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulación + + Simulation + Simulación - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Tipo + + Type + Tipo - Name - Nombre + + Name + Nombre - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - Parámetro TaskEdge2Trac + + TaskEdge2TracParameter + Parámetro TaskEdge2Trac - - + + RobotGui::TaskRobot6Axis - - Form - Formulario + + Form + Formulario - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Herramienta: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Herramienta: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - Tarea de robot 6Axis + + TaskRobot6Axis + Tarea de robot 6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - Control de tareas de robot + + TaskRobotControl + Control de tareas de robot - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - Mensaje de tareas de robot + + TaskRobotMessages + Mensaje de tareas de robot - - + + RobotGui::TaskTrajectory - - Form - Formulario + + Form + Formulario - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Tipo + + Type + Tipo - Name - Nombre + + Name + Nombre - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trayectoria + + Trajectory + Trayectoria - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Parámetro de revestido + + Dress Up Parameter + Parámetro de revestido - - + + TaskEdge2TracParameter - - Form - Formulario + + Form + Formulario - Hide / Show - Ocultar / Mostrar + + Hide / Show + Ocultar / Mostrar - Edges: 0 - Bordes: 0 + + Edges: 0 + Bordes: 0 - Cluster: 0 - Clúster: 0 + + Cluster: 0 + Clúster: 0 - Sizing Value: - Valor de tamaño: + + Sizing Value: + Valor de tamaño: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - Parámetro TaskEdge2Trac + TaskEdge2TracParameter + Parámetro TaskEdge2Trac - - + + TaskRobot6Axis - TaskRobot6Axis - Tarea de robot 6Axis + TaskRobot6Axis + Tarea de robot 6Axis - - + + TaskRobotControl - - Form - Formulario + + Form + Formulario - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Herramienta 0 + + Tool 0 + Herramienta 0 - Tool - Herramienta + + Tool + Herramienta - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - Mundo + + World + Mundo + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + Control de tareas de robot - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - Control de tareas de robot - - - + + TaskRobotMessages - - Form - Formulario + + Form + Formulario - clear - limpiar + + clear + limpiar - TaskRobotMessages - Mensaje de tareas de robot + TaskRobotMessages + Mensaje de tareas de robot - - + + TaskTrajectory - Trajectory - Trayectoria + Trajectory + Trayectoria - - + + TaskTrajectoryDressUpParameter - - Form - Formulario + + Form + Formulario - Speed & Acceleration: - Velocidad y Aceleración: + + Speed & Acceleration: + Velocidad y Aceleración: - Speed: - Velocidad: + + Speed: + Velocidad: - Use - Uso + + + Use + Uso - Accel: - acel: + + Accel: + acel: - Don't change Cont - No cambiar cont + + Don't change Cont + No cambiar cont - Continues - Continúa + + Continues + Continúa - Discontinues - Interrumpe + + Discontinues + Interrumpe - Position and Orientation: - Posición y Orientación: + + Position and Orientation: + Posición y Orientación: - (0,0,0),(0,0,0) - (0,0,0), (0,0,0) + + (0,0,0),(0,0,0) + (0,0,0), (0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - No cambie de Posición y Orientación + + Don't change Position & Orientation + No cambie de Posición y Orientación - Use Orientation - Orientación de uso + + Use Orientation + Orientación de uso - Add Position - Añadir Posición + + Add Position + Añadir Posición - Add Orientation - Añadir Orientación + + Add Orientation + Añadir Orientación - Dress Up Parameter - Parámetro de revestido + Dress Up Parameter + Parámetro de revestido - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Insertar robots + + Insert Robots + Insertar robots - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Exportar trayectoria + + Export trajectory + Exportar trayectoria - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_fi.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_fi.ts index 00e947278..a80e9b400 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_fi.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_fi.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robotti + + Robot + Robotti - Add tool - Lisää työkalu + + Add tool + Lisää työkalu - Add a tool shape to the robot - Lisää työkalun muoto robotille + + Add a tool shape to the robot + Lisää työkalun muoto robotille - - + + CmdRobotConstraintAxle - - Robot - Robotti + + Robot + Robotti - Place robot... - Paikoita robotti ... + + Place robot... + Paikoita robotti ... - Place a robot (experimental!) - Paikoita robotti (kokeellinen!) + + Place a robot (experimental!) + Paikoita robotti (kokeellinen!) - - + + CmdRobotCreateTrajectory - - Robot - Robotti + + Robot + Robotti - Create trajectory - Luo liikerata + + Create trajectory + Luo liikerata - Create a new empty trajectory - Luo uusi tyhjä liikerata + + Create a new empty trajectory + Luo uusi tyhjä liikerata - - + + CmdRobotEdge2Trac - Robot - Robotti + + Robot + Robotti - Edge to Trajectory... - Edge to Trajectory... + + Edge to Trajectory... + Edge to Trajectory... - Generate a Trajectory from a set of edges - Generate a Trajectory from a set of edges + + Generate a Trajectory from a set of edges + Generate a Trajectory from a set of edges - - + + CmdRobotExportKukaCompact - - Robot - Robotti + + Robot + Robotti - Kuka compact subroutine... - Kuka kompakti alirutiini... + + Kuka compact subroutine... + Kuka kompakti alirutiini... - Export the trajectory as a compact KRL subroutine. - Vie liikerata kompaktina KRL-alirutiinina. + + Export the trajectory as a compact KRL subroutine. + Vie liikerata kompaktina KRL-alirutiinina. - - + + CmdRobotExportKukaFull - Robot - Robotti + + Robot + Robotti - Kuka full subroutine... - Kuka täydellinen alirutiini... + + Kuka full subroutine... + Kuka täydellinen alirutiini... - Export the trajectory as a full KRL subroutine. - Vie liikerata kuten täydellinen KRL-alirutiini. + + Export the trajectory as a full KRL subroutine. + Vie liikerata kuten täydellinen KRL-alirutiini. - - + + CmdRobotInsertKukaIR125 - - Robot - Robotti + + Robot + Robotti - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Lisää Kuka IR125 dokumenttiin. + + Insert a Kuka IR125 into the document. + Lisää Kuka IR125 dokumenttiin. - - + + CmdRobotInsertKukaIR16 - Robot - Robotti + + Robot + Robotti - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Lisää Kuka IR16 dokumenttiin. + + Insert a Kuka IR16 into the document. + Lisää Kuka IR16 dokumenttiin. - - + + CmdRobotInsertKukaIR210 - Robot - Robotti + + Robot + Robotti - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Lisää Kuka IR500 dokumenttiin. + + Insert a Kuka IR210 into the document. + Lisää Kuka IR500 dokumenttiin. - - + + CmdRobotInsertKukaIR500 - Robot - Robotti + + Robot + Robotti - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Lisää Kuka IR500 dokumenttiin. + + Insert a Kuka IR500 into the document. + Lisää Kuka IR500 dokumenttiin. - - + + CmdRobotInsertWaypoint - - Robot - Robotti + + Robot + Robotti - Insert in trajectory - Lisää liikeradalle + + Insert in trajectory + Lisää liikeradalle - Insert robot Tool location into trajectory - Insert robot Tool location into trajectory + + Insert robot Tool location into trajectory + Insert robot Tool location into trajectory - - + + CmdRobotInsertWaypointPreselect - Robot - Robotti + + Robot + Robotti - Insert in trajectory - Lisää liikeradalle + + Insert in trajectory + Lisää liikeradalle - Insert preselection position into trajectory (W) - Insert preselection position into trajectory (W) + + Insert preselection position into trajectory (W) + Insert preselection position into trajectory (W) - - + + CmdRobotRestoreHomePos - - Robot - Robotti + + Robot + Robotti - Move to home - Siirrä alkuasentoon + + + Move to home + Siirrä alkuasentoon - - + + CmdRobotSetDefaultOrientation - - Robot - Robotti + + Robot + Robotti - Set default orientation - Set default orientation + + Set default orientation + Set default orientation - set the default orientation for subsequent commands for waypoint creation - set the default orientation for subsequent commands for waypoint creation + + set the default orientation for subsequent commands for waypoint creation + set the default orientation for subsequent commands for waypoint creation - - + + CmdRobotSetDefaultValues - Robot - Robotti + + Robot + Robotti - Set default values - Set default values + + Set default values + Set default values - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - - + + CmdRobotSetHomePos - - Robot - Robotti + + Robot + Robotti - Set the home position - Aseta alkuasento + + + Set the home position + Aseta alkuasento - - + + CmdRobotSimulate - Robot - Robotti + + Robot + Robotti - Simulate a trajectory - Simuloi liikerata + + Simulate a trajectory + Simuloi liikerata - Run a simulation on a trajectory - Aja liikerata simulaatio + + Run a simulation on a trajectory + Aja liikerata simulaatio - - + + CmdRobotTrajectoryCompound - - Robot - Robotti + + Robot + Robotti - Trajectory compound... - Trajectory compound... + + Trajectory compound... + Trajectory compound... - Group and connect some trajectories to one - Group and connect some trajectories to one + + Group and connect some trajectories to one + Group and connect some trajectories to one - - + + CmdRobotTrajectoryDressUp - Robot - Robotti + + Robot + Robotti - Dress up trajectory... - Dress up trajectory... + + Dress up trajectory... + Dress up trajectory... - Create a dress up object which overide som aspects of a trajectory - Create a dress up object which overide som aspects of a trajectory + + Create a dress up object which overide som aspects of a trajectory + Create a dress up object which overide som aspects of a trajectory - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robot tools + + Robot tools + Robot tools - Insert Robot - Insert Robot + + Insert Robot + Insert Robot - - + + QObject - - Wrong selection - Väärä valinta + + + + + + + + + + + + Wrong selection + Väärä valinta - Select one Robot and one Trajectory object. - Select one Robot and one Trajectory object. + + + + + + Select one Robot and one Trajectory object. + Select one Robot and one Trajectory object. - Trajectory not valid - Liikerata ei kelpaa + + Trajectory not valid + Liikerata ei kelpaa - You need at least two way points in a trajectory to simulate. - You need at least two way points in a trajectory to simulate. + + You need at least two way points in a trajectory to simulate. + You need at least two way points in a trajectory to simulate. - - KRL file(*.src) - KRL-tiedosto(*.src) + + + KRL file(*.src) + KRL-tiedosto(*.src) - All Files (*.*) - Kaikki tiedostot (*.*) + + + All Files (*.*) + Kaikki tiedostot (*.*) - Export program - Vie ohjelma + + + Export program + Vie ohjelma - - Select one robot and one shape or VRML object. - Select one robot and one shape or VRML object. + + Select one robot and one shape or VRML object. + Select one robot and one shape or VRML object. - - No preselection - Ei esivalintaa + + No preselection + Ei esivalintaa - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - - Select one Robot to set home postion - Select one Robot to set home postion + + Select one Robot to set home postion + Select one Robot to set home postion - Select one Robot - Select one Robot + + Select one Robot + Select one Robot - - Select one Trajectory object. - Select one Trajectory object. + + + Select one Trajectory object. + Select one Trajectory object. - set default speed - set default speed + + set default speed + set default speed - speed: (e.g. 1 m/s or 3 cm/s) - speed: (e.g. 1 m/s or 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + speed: (e.g. 1 m/s or 3 cm/s) - set default continuity - set default continuity + + set default continuity + set default continuity - continuous ? - continuous ? + + continuous ? + continuous ? - set default acceleration - set default acceleration + + set default acceleration + set default acceleration - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - No robot files installed + + No robot files installed + No robot files installed - Please visit %1 and copy the files to %2 - Please visit %1 and copy the files to %2 + + Please visit %1 and copy the files to %2 + Please visit %1 and copy the files to %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulointi + + Simulation + Simulointi - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Tyyppi + + Type + Tyyppi - Name - Nimi + + Name + Nimi - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Lomake + + Form + Lomake - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Tool: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Tool: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - Tehtävä Robotti6 Akselit + + TaskRobot6Axis + Tehtävä Robotti6 Akselit - - + + RobotGui::TaskRobotControl - - TaskRobotControl - Robotin tehtävien hallinta + + TaskRobotControl + Robotin tehtävien hallinta - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - Robotin tehtävien viestit + + TaskRobotMessages + Robotin tehtävien viestit - - + + RobotGui::TaskTrajectory - - Form - Lomake + + Form + Lomake - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23,300.23,400.23,234,343,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23,300.23,400.23,234,343,343) - Type - Tyyppi + + Type + Tyyppi - Name - Nimi + + Name + Nimi - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Liikerata + + Trajectory + Liikerata - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Dress Up Parameter + + Dress Up Parameter + Dress Up Parameter - - + + TaskEdge2TracParameter - - Form - Lomake + + Form + Lomake - Hide / Show - Hide / Show + + Hide / Show + Hide / Show - Edges: 0 - Edges: 0 + + Edges: 0 + Edges: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Sizing Value: + + Sizing Value: + Sizing Value: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - Tehtävä Robotti6 Akselit + TaskRobot6Axis + Tehtävä Robotti6 Akselit - - + + TaskRobotControl - - Form - Lomake + + Form + Lomake - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Työkalu 0 + + Tool 0 + Työkalu 0 - Tool - Työkalu + + Tool + Työkalu - Base 0 - Perusta 0 + + Base 0 + Perusta 0 - Base - Perusta + + Base + Perusta - World - Maailma + + World + Maailma + + + + 50mm / 5° + 50mm / 5 ° + + + + 20mm / 2° + 20mm / 2 ° + + + + 10mm / 1° + 10mm / 1 ° + + + + 5mm / 0.5° + 5mm / 0,5 ° + + + + 1mm / 0.1° + 1 mm / 0,1 ° - 50mm / 5° - 50mm / 5 ° + TaskRobotControl + Robotin tehtävien hallinta - - 20mm / 2° - 20mm / 2 ° - - - 10mm / 1° - 10mm / 1 ° - - - 5mm / 0.5° - 5mm / 0,5 ° - - - 1mm / 0.1° - 1 mm / 0,1 ° - - - TaskRobotControl - Robotin tehtävien hallinta - - - + + TaskRobotMessages - - Form - Lomake + + Form + Lomake - clear - tyhjennä + + clear + tyhjennä - TaskRobotMessages - Robotin tehtävien viestit + TaskRobotMessages + Robotin tehtävien viestit - - + + TaskTrajectory - Trajectory - Liikerata + Trajectory + Liikerata - - + + TaskTrajectoryDressUpParameter - - Form - Lomake + + Form + Lomake - Speed & Acceleration: - Speed & Acceleration: + + Speed & Acceleration: + Speed & Acceleration: - Speed: - Speed: + + Speed: + Speed: - Use - Use + + + Use + Use - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - Continues + + Continues + Continues - Discontinues - Discontinues + + Discontinues + Discontinues - Position and Orientation: - Position and Orientation: + + Position and Orientation: + Position and Orientation: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Don't change Position & Orientation + + Don't change Position & Orientation + Don't change Position & Orientation - Use Orientation - Use Orientation + + Use Orientation + Use Orientation - Add Position - Add Position + + Add Position + Add Position - Add Orientation - Add Orientation + + Add Orientation + Add Orientation - Dress Up Parameter - Dress Up Parameter + Dress Up Parameter + Dress Up Parameter - - + + Workbench - - Robot - Robotti + + Robot + Robotti - Insert Robots - Lisää robotit + + Insert Robots + Lisää robotit - &Robot - &Robotti + + &Robot + &Robotti - Export trajectory - Liikeradan vienti + + Export trajectory + Liikeradan vienti - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_fr.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_fr.ts index 3e72fab2f..e7bef52a0 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_fr.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_fr.ts @@ -1,878 +1,1045 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Ajouter l'outil + + Add tool + Ajouter l'outil - Add a tool shape to the robot - Ajouter une forme d'outil pour le robot + + Add a tool shape to the robot + Ajouter une forme d'outil pour le robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Placer un robot... + + Place robot... + Placer un robot... - Place a robot (experimental!) - Placez un robot (expérimental !) + + Place a robot (experimental!) + Placez un robot (expérimental !) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Créer une trajectoire + + Create trajectory + Créer une trajectoire - Create a new empty trajectory - Créer une nouvelle trajectoire vide + + Create a new empty trajectory + Créer une nouvelle trajectoire vide - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Arête vers trajectoire ... + + Edge to Trajectory... + Arête vers trajectoire ... - Generate a Trajectory from a set of edges - Générer une trajectoire à partir d'un ensemble d'arêtes + + Generate a Trajectory from a set of edges + Générer une trajectoire à partir d'un ensemble d'arêtes - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - sous-programme compressé Kuka... + + Kuka compact subroutine... + sous-programme compressé Kuka... - Export the trajectory as a compact KRL subroutine. - Exporter la trajectoire comme un sous-programme compressé KRL. + + Export the trajectory as a compact KRL subroutine. + Exporter la trajectoire comme un sous-programme compressé KRL. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - sous-programme complet Kuka... + + Kuka full subroutine... + sous-programme complet Kuka... - Export the trajectory as a full KRL subroutine. - Exporter la trajectoire comme un sous-programme KRL intégral. + + Export the trajectory as a full KRL subroutine. + Exporter la trajectoire comme un sous-programme KRL intégral. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Insérer un IR125 Kuka dans le document. + + Insert a Kuka IR125 into the document. + Insérer un IR125 Kuka dans le document. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Insérer un IR500 Kuka dans le document. + + Insert a Kuka IR16 into the document. + Insérer un IR500 Kuka dans le document. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Insérer un IR210 Kuka dans le document. + + Insert a Kuka IR210 into the document. + Insérer un IR210 Kuka dans le document. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Insérer un IR500 Kuka dans le document. + + Insert a Kuka IR500 into the document. + Insérer un IR500 Kuka dans le document. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Insérer dans la trajectoire + + Insert in trajectory + Insérer dans la trajectoire - Insert robot Tool location into trajectory - Insérer la position de l'outil robot dans la trajectoire + + Insert robot Tool location into trajectory + Insérer la position de l'outil robot dans la trajectoire - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Insérer dans la trajectoire + + Insert in trajectory + Insérer dans la trajectoire - Insert preselection position into trajectory (W) - Insérer la position de la présélection dans la trajectoire (W) + + Insert preselection position into trajectory (W) + Insérer la position de la présélection dans la trajectoire (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Passer à la position de départ + + + Move to home + Passer à la position de départ - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Définir l'orientation par défaut + + Set default orientation + Définir l'orientation par défaut - set the default orientation for subsequent commands for waypoint creation - Définir l'orientation par défaut pour les commandes suivantes pour la création de points de passage + + set the default orientation for subsequent commands for waypoint creation + Définir l'orientation par défaut pour les commandes suivantes pour la création de points de passage - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Définir les valeurs par défaut + + Set default values + Définir les valeurs par défaut - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Définir les valeurs par défaut pour la vitesse, l'accélération et la continuité pour les commandes de création de points de passage suivants + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Définir les valeurs par défaut pour la vitesse, l'accélération et la continuité pour les commandes de création de points de passage suivants - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Définir la position de départ + + + Set the home position + Définir la position de départ - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simuler une trajectoire + + Simulate a trajectory + Simuler une trajectoire - Run a simulation on a trajectory - Lancer une simulation sur une trajectoire + + Run a simulation on a trajectory + Lancer une simulation sur une trajectoire - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Composé de trajectoire... + + Trajectory compound... + Composé de trajectoire... - Group and connect some trajectories to one - Grouper et connecter des trajectoires en une seule + + Group and connect some trajectories to one + Grouper et connecter des trajectoires en une seule - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Habiller une trajectoire... + + Dress up trajectory... + Habiller une trajectoire... - Create a dress up object which overide som aspects of a trajectory - Créer un habillage qui supplante certains aspects d'une trajectoire + + Create a dress up object which overide som aspects of a trajectory + Créer un habillage qui supplante certains aspects d'une trajectoire - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Outils de trajectoire + + Trajectory tools + Outils de trajectoire - Robot tools - Outils de robot + + Robot tools + Outils de robot - Insert Robot - Insérer un robot + + Insert Robot + Insérer un robot - - + + QObject - - Wrong selection - Mauvaise sélection + + + + + + + + + + + + Wrong selection + Mauvaise sélection - Select one Robot and one Trajectory object. - Sélectionnez un robot et une trajectoire. + + + + + + Select one Robot and one Trajectory object. + Sélectionnez un robot et une trajectoire. - Trajectory not valid - Trajectoire non valide + + Trajectory not valid + Trajectoire non valide - You need at least two way points in a trajectory to simulate. - Vous avez besoin d'au moins deux points sur une trajectoire pour la simulation. + + You need at least two way points in a trajectory to simulate. + Vous avez besoin d'au moins deux points sur une trajectoire pour la simulation. - - KRL file(*.src) - fichier KRL (*. src) + + + KRL file(*.src) + fichier KRL (*. src) - All Files (*.*) - Tous les fichiers (*.*) + + + All Files (*.*) + Tous les fichiers (*.*) - Export program - Exporter le programme + + + Export program + Exporter le programme - - Select one robot and one shape or VRML object. - Sélectionnez un robot et une forme ou un objet VRML. + + Select one robot and one shape or VRML object. + Sélectionnez un robot et une forme ou un objet VRML. - - No preselection - Aucune présélection + + No preselection + Aucune présélection - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Avec la souris, vous devez passer au-dessus d'une géométrie (présélection) + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Avec la souris, vous devez passer au-dessus d'une géométrie (présélection) pour utiliser cette commande. Consultez la documentation pour plus de détails. - - Select one Robot to set home postion - Sélectionnez un robot pour définir la position d'origine + + Select one Robot to set home postion + Sélectionnez un robot pour définir la position d'origine - Select one Robot - Sélectionnez un robot + + Select one Robot + Sélectionnez un robot - - Select one Trajectory object. - Sélectionnez un objet de trajectoire. + + + Select one Trajectory object. + Sélectionnez un objet de trajectoire. - set default speed - définir la vitesse par défaut + + set default speed + définir la vitesse par défaut - speed: (e.g. 1 m/s or 3 cm/s) - Vitesse : (par exemple 1 m/s ou 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + Vitesse : (par exemple 1 m/s ou 3 cm/s) - set default continuity - définir la continuité par défaut + + set default continuity + définir la continuité par défaut - continuous ? - en continu ? + + continuous ? + en continu ? - set default acceleration - définir l'accélération par défaut + + set default acceleration + définir l'accélération par défaut - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - accélération : (p.ex. 1 m/s^2 or 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + accélération : (p.ex. 1 m/s^2 or 3 cm/s^2) - Select the Trajectory which you want to dress up. - Sélectionnez la trajectoire que vous voulez habiller. + + Select the Trajectory which you want to dress up. + Sélectionnez la trajectoire que vous voulez habiller. - - No robot files installed - Aucun fichier de robot installé + + No robot files installed + Aucun fichier de robot installé - Please visit %1 and copy the files to %2 - Visitez %1 et copiez les fichiers vers %2 + + Please visit %1 and copy the files to %2 + Visitez %1 et copiez les fichiers vers %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulation + + Simulation + Simulation - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Type + + Type + Type - Name - Nom + + Name + Nom - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Formulaire + + Form + Formulaire - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP : (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP : (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Outil : (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Outil : (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Formulaire + + Form + Formulaire - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos : (200.23, 300.23, 400.23, 234, 343, 343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos : (200.23, 300.23, 400.23, 234, 343, 343) - Type - Type + + Type + Type - Name - Nom + + Name + Nom - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trajectoire + + Trajectory + Trajectoire - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Paramètre d'habillage + + Dress Up Parameter + Paramètre d'habillage - - + + TaskEdge2TracParameter - - Form - Formulaire + + Form + Formulaire - Hide / Show - Afficher / Masquer + + Hide / Show + Afficher / Masquer - Edges: 0 - Arêtes : 0 + + Edges: 0 + Arêtes : 0 - Cluster: 0 - Groupe : 0 + + Cluster: 0 + Groupe : 0 - Sizing Value: - Valeur de dimensionnement : + + Sizing Value: + Valeur de dimensionnement : - Use orientation of edge - Utiliser l'orientation de l'arête + + Use orientation of edge + Utiliser l'orientation de l'arête - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Formulaire + + Form + Formulaire - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Outil 0 + + Tool 0 + Outil 0 - Tool - Outil + + Tool + Outil - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - Monde + + World + Monde + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0,5° + + + + 1mm / 0.1° + 1mm / 0,1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0,5° - - - 1mm / 0.1° - 1mm / 0,1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Formulaire + + Form + Formulaire - clear - Effacer + + clear + Effacer - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Trajectoire + Trajectory + Trajectoire - - + + TaskTrajectoryDressUpParameter - - Form - Formulaire + + Form + Formulaire - Speed & Acceleration: - Vitesse et accélération : + + Speed & Acceleration: + Vitesse et accélération : - Speed: - Vitesse : + + Speed: + Vitesse : - Use - Utilisation + + + Use + Utilisation - Accel: - Accél : + + Accel: + Accél : - Don't change Cont - Ne pas changer Cont + + Don't change Cont + Ne pas changer Cont - Continues - Continu + + Continues + Continu - Discontinues - Interrompt + + Discontinues + Interrompt - Position and Orientation: - Position et orientation : + + Position and Orientation: + Position et orientation : - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ne pas changer la position ni l'orientation + + Don't change Position & Orientation + Ne pas changer la position ni l'orientation - Use Orientation - Utiliser l'orientation + + Use Orientation + Utiliser l'orientation - Add Position - Ajouter la position + + Add Position + Ajouter la position - Add Orientation - Ajouter l'orientation + + Add Orientation + Ajouter l'orientation - Dress Up Parameter - Paramètre d'habillage + Dress Up Parameter + Paramètre d'habillage - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Insérer des robots + + Insert Robots + Insérer des robots - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Exporter la trajectoire + + Export trajectory + Exporter la trajectoire - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_hr.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_hr.ts index 4722cd343..f3cd35fa8 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_hr.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_hr.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Dodaj alat + + Add tool + Dodaj alat - Add a tool shape to the robot - Dodavanje alata za oblik za robota + + Add a tool shape to the robot + Dodavanje alata za oblik za robota - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Mjesto robota ... + + Place robot... + Mjesto robota ... - Place a robot (experimental!) - Postavite robota (experimental!) + + Place a robot (experimental!) + Postavite robota (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Napravi putanju + + Create trajectory + Napravi putanju - Create a new empty trajectory - Napravi novu prazanu putanju + + Create a new empty trajectory + Napravi novu prazanu putanju - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - rub na putanji ... + + Edge to Trajectory... + rub na putanji ... - Generate a Trajectory from a set of edges - Generirajte putanju za set rubova + + Generate a Trajectory from a set of edges + Generirajte putanju za set rubova - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kuka kompaktni potprogram ... + + Kuka compact subroutine... + Kuka kompaktni potprogram ... - Export the trajectory as a compact KRL subroutine. - Izvoz putanje kao kompaktni KRL potprogram. + + Export the trajectory as a compact KRL subroutine. + Izvoz putanje kao kompaktni KRL potprogram. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Kuka puni potprogram ... + + Kuka full subroutine... + Kuka puni potprogram ... - Export the trajectory as a full KRL subroutine. - Izvoz putanje kao pun KRL potprogram. + + Export the trajectory as a full KRL subroutine. + Izvoz putanje kao pun KRL potprogram. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Umetnite Kuka IR500 u dokument. + + Insert a Kuka IR125 into the document. + Umetnite Kuka IR500 u dokument. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Umetnite Kuka IR500 u dokument. + + Insert a Kuka IR16 into the document. + Umetnite Kuka IR500 u dokument. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Umetnite Kuka IR500 u dokument. + + Insert a Kuka IR210 into the document. + Umetnite Kuka IR500 u dokument. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Umetnite Kuka IR500 u dokument. + + Insert a Kuka IR500 into the document. + Umetnite Kuka IR500 u dokument. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Umetni u putanju + + Insert in trajectory + Umetni u putanju - Insert robot Tool location into trajectory - Umetnite alata robota, mjesto u putanji + + Insert robot Tool location into trajectory + Umetnite alata robota, mjesto u putanji - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Umetni u putanju + + Insert in trajectory + Umetni u putanju - Insert preselection position into trajectory (W) - Umetnite "preselekcija položaj" u putanju (W) + + Insert preselection position into trajectory (W) + Umetnite "preselekcija položaj" u putanju (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Premjesti u kući + + + Move to home + Premjesti u kući - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Postavi zadanu orijentaciju + + Set default orientation + Postavi zadanu orijentaciju - set the default orientation for subsequent commands for waypoint creation - postavi zadanu orijentaciju za naknadne naredbe za stvaranje toÄke putanje + + set the default orientation for subsequent commands for waypoint creation + postavi zadanu orijentaciju za naknadne naredbe za stvaranje toÄke putanje - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Postavi zadane vrijednosti + + Set default values + Postavi zadane vrijednosti - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Postavi zadane vrijednosti za brzinu, ubrzanje i kontinuitet za naknadne naredbe stvaranja toÄki puta + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Postavi zadane vrijednosti za brzinu, ubrzanje i kontinuitet za naknadne naredbe stvaranja toÄki puta - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Postavite poÄetni položaj + + + Set the home position + Postavite poÄetni položaj - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simulirati putanju + + Simulate a trajectory + Simulirati putanju - Run a simulation on a trajectory - Pokrenite simulaciju na putanji + + Run a simulation on a trajectory + Pokrenite simulaciju na putanji - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Spoj Putanje ... + + Trajectory compound... + Spoj Putanje ... - Group and connect some trajectories to one - Grupiraj i poveži neke putanje kao jednu + + Group and connect some trajectories to one + Grupiraj i poveži neke putanje kao jednu - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - ravnati putanju ... + + Dress up trajectory... + ravnati putanju ... - Create a dress up object which overide som aspects of a trajectory - Stvoriti ravni objekt koji poniÅ¡ti neko stajaliÅ¡te putanje + + Create a dress up object which overide som aspects of a trajectory + Stvoriti ravni objekt koji poniÅ¡ti neko stajaliÅ¡te putanje - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Alati putanje + + Trajectory tools + Alati putanje - Robot tools - Alati Robota + + Robot tools + Alati Robota - Insert Robot - Umetni Robot + + Insert Robot + Umetni Robot - - + + QObject - - Wrong selection - PogreÅ¡an odabir + + + + + + + + + + + + Wrong selection + PogreÅ¡an odabir - Select one Robot and one Trajectory object. - Odaberite jedan robot i jedanu putanju objekta. + + + + + + Select one Robot and one Trajectory object. + Odaberite jedan robot i jedanu putanju objekta. - Trajectory not valid - Putanja ne vrijedi + + Trajectory not valid + Putanja ne vrijedi - You need at least two way points in a trajectory to simulate. - Trebate najmanje dvije toÄke u putanji za simuliranje. + + You need at least two way points in a trajectory to simulate. + Trebate najmanje dvije toÄke u putanji za simuliranje. - - KRL file(*.src) - KRL datoteka (*. src) + + + KRL file(*.src) + KRL datoteka (*. src) - All Files (*.*) - Sve datoteke (*.*) + + + All Files (*.*) + Sve datoteke (*.*) - Export program - Prijenos programa + + + Export program + Prijenos programa - - Select one robot and one shape or VRML object. - Odaberite jedan robot i jedan oblik ili objekt VRML. + + Select one robot and one shape or VRML object. + Odaberite jedan robot i jedan oblik ili objekt VRML. - - No preselection - Nema predselekcije + + No preselection + Nema predselekcije - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Morate lebjeti iznad geometrije (predselekcije) s miÅ¡em kako bi koristili ovu naredbu. Pogledajte dokumentaciju za detalje. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Morate lebjeti iznad geometrije (predselekcije) s miÅ¡em kako bi koristili ovu naredbu. Pogledajte dokumentaciju za detalje. - - Select one Robot to set home postion - Odaberite jedan Robot za postavljanje poÄetnog položaja + + Select one Robot to set home postion + Odaberite jedan Robot za postavljanje poÄetnog položaja - Select one Robot - Odaberite jedan Robot + + Select one Robot + Odaberite jedan Robot - - Select one Trajectory object. - Odaberite jednu putanju objekta. + + + Select one Trajectory object. + Odaberite jednu putanju objekta. - set default speed - postavi zadanu brzinu + + set default speed + postavi zadanu brzinu - speed: (e.g. 1 m/s or 3 cm/s) - brzina: (npr. 1 m/s ili 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + brzina: (npr. 1 m/s ili 3 cm/s) - set default continuity - postavi zadani kontinuitet + + set default continuity + postavi zadani kontinuitet - continuous ? - kontinuirano? + + continuous ? + kontinuirano? - set default acceleration - postavi zadano ubrzanje + + set default acceleration + postavi zadano ubrzanje - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - ubrzanje: (npr. 1 m/s^2 ili 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + ubrzanje: (npr. 1 m/s^2 ili 3 cm/s^2) - Select the Trajectory which you want to dress up. - Odaberite putanju koju želite doraditi. + + Select the Trajectory which you want to dress up. + Odaberite putanju koju želite doraditi. - - No robot files installed - Nema instaliranih robot datoteka + + No robot files installed + Nema instaliranih robot datoteka - Please visit %1 and copy the files to %2 - Molimo posjetite %1 i kopirajte datoteke u %2 + + Please visit %1 and copy the files to %2 + Molimo posjetite %1 i kopirajte datoteke u %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simuliranje + + Simulation + Simuliranje - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Vrsta + + Type + Vrsta - Name - Ime + + Name + Ime - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Obrazac + + Form + Obrazac - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Alat:(0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Alat:(0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Obrazac + + Form + Obrazac - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Poz: (200,23, 300,23, 400,23, 234, 343, 343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Poz: (200,23, 300,23, 400,23, 234, 343, 343) - Type - Vrsta + + Type + Vrsta - Name - Ime + + Name + Ime - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Putanja + + Trajectory + Putanja - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Ravni parametar + + Dress Up Parameter + Ravni parametar - - + + TaskEdge2TracParameter - - Form - Obrazac + + Form + Obrazac - Hide / Show - Sakrij / prikaži + + Hide / Show + Sakrij / prikaži - Edges: 0 - Rubovi: 0 + + Edges: 0 + Rubovi: 0 - Cluster: 0 - Grozd: 0 + + Cluster: 0 + Grozd: 0 - Sizing Value: - Dimenzioniranje vrijednosti: + + Sizing Value: + Dimenzioniranje vrijednosti: - Use orientation of edge - Koristi orijentaciju ruba + + Use orientation of edge + Koristi orijentaciju ruba - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Obrazac + + Form + Obrazac - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Alat 0 + + Tool 0 + Alat 0 - Tool - Alat + + Tool + Alat - Base 0 - Baza 0 + + Base 0 + Baza 0 - Base - Baza + + Base + Baza - World - Svijet + + World + Svijet + + + + 50mm / 5° + 50mm/5° + + + + 20mm / 2° + 20mm/2° + + + + 10mm / 1° + 10mm/1° + + + + 5mm / 0.5° + 5mm/0,5° + + + + 1mm / 0.1° + 1mm/0,1° - 50mm / 5° - 50mm/5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm/2° - - - 10mm / 1° - 10mm/1° - - - 5mm / 0.5° - 5mm/0,5° - - - 1mm / 0.1° - 1mm/0,1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Obrazac + + Form + Obrazac - clear - jasno + + clear + jasno - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Putanja + Trajectory + Putanja - - + + TaskTrajectoryDressUpParameter - - Form - Obrazac + + Form + Obrazac - Speed & Acceleration: - Brzina i ubrzanje: + + Speed & Acceleration: + Brzina i ubrzanje: - Speed: - Brzina: + + Speed: + Brzina: - Use - Koristite + + + Use + Koristite - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Nemojte mijenjati Cont + + Don't change Cont + Nemojte mijenjati Cont - Continues - Nastavlja + + Continues + Nastavlja - Discontinues - Prestaje + + Discontinues + Prestaje - Position and Orientation: - Položaj i orijentacija: + + Position and Orientation: + Položaj i orijentacija: - (0,0,0),(0,0,0) - (0,0,0), (0,0,0) + + (0,0,0),(0,0,0) + (0,0,0), (0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ne mijenjaj položaj i orijentaciju + + Don't change Position & Orientation + Ne mijenjaj položaj i orijentaciju - Use Orientation - Koristi orijentaciju + + Use Orientation + Koristi orijentaciju - Add Position - Dodaj položaj + + Add Position + Dodaj položaj - Add Orientation - Dodaj orijentaciju + + Add Orientation + Dodaj orijentaciju - Dress Up Parameter - Ravni parametar + Dress Up Parameter + Ravni parametar - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Umetanje Robota + + Insert Robots + Umetanje Robota - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Izvoz putanje + + Export trajectory + Izvoz putanje - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_hu.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_hu.ts index 53b45c12b..681a29d9f 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_hu.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_hu.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Szerszám hozzáadása + + Add tool + Szerszám hozzáadása - Add a tool shape to the robot - Formázó szerszám hozzáadása a robothoz + + Add a tool shape to the robot + Formázó szerszám hozzáadása a robothoz - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Robot elhelyezése... + + Place robot... + Robot elhelyezése... - Place a robot (experimental!) - Robot helye (kísérleti!) + + Place a robot (experimental!) + Robot helye (kísérleti!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Útvonal létrehozása + + Create trajectory + Útvonal létrehozása - Create a new empty trajectory - Új üres útvonal létrehozása + + Create a new empty trajectory + Új üres útvonal létrehozása - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Él az útvonalhoz... + + Edge to Trajectory... + Él az útvonalhoz... - Generate a Trajectory from a set of edges - Útvonal létrehozása élek alapján + + Generate a Trajectory from a set of edges + Útvonal létrehozása élek alapján - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kuka kompakt eljárás ... + + Kuka compact subroutine... + Kuka kompakt eljárás ... - Export the trajectory as a compact KRL subroutine. - Útvonal exportálása kompakt KRL eljárásként. + + Export the trajectory as a compact KRL subroutine. + Útvonal exportálása kompakt KRL eljárásként. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Kuka teljes eljárás ... + + Kuka full subroutine... + Kuka teljes eljárás ... - Export the trajectory as a full KRL subroutine. - Útvonal exportálása teljes KRL eljárásként. + + Export the trajectory as a full KRL subroutine. + Útvonal exportálása teljes KRL eljárásként. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Helyezzen be egy Kuka IR210-et a dokumentumba. + + Insert a Kuka IR125 into the document. + Helyezzen be egy Kuka IR210-et a dokumentumba. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Helyezzen be egy Kuka IR210-et a dokumentumba. + + Insert a Kuka IR16 into the document. + Helyezzen be egy Kuka IR210-et a dokumentumba. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Helyezzen be egy Kuka IR16-ot a dokumentumba. + + Insert a Kuka IR210 into the document. + Helyezzen be egy Kuka IR16-ot a dokumentumba. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Helyezzen be egy Kuka IR125-öt a dokumentumba. + + Insert a Kuka IR500 into the document. + Helyezzen be egy Kuka IR125-öt a dokumentumba. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Útvonal beszúrása + + Insert in trajectory + Útvonal beszúrása - Insert robot Tool location into trajectory - Robot szerszám elhelyezése az útvonalon + + Insert robot Tool location into trajectory + Robot szerszám elhelyezése az útvonalon - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Útvonal beszúrása + + Insert in trajectory + Útvonal beszúrása - Insert preselection position into trajectory (W) - Beállítási pozíció beszúrása az útvonalba (W) + + Insert preselection position into trajectory (W) + Beállítási pozíció beszúrása az útvonalba (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Alaphelyzetbe állít + + + Move to home + Alaphelyzetbe állít - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Alapértelmezett hely beállítása + + Set default orientation + Alapértelmezett hely beállítása - set the default orientation for subsequent commands for waypoint creation - Alapértelmezett hely beállítása a késÅ‘bbi szakaszpont parancsokhoz a várópontok létrehozásoknál + + set the default orientation for subsequent commands for waypoint creation + Alapértelmezett hely beállítása a késÅ‘bbi szakaszpont parancsokhoz a várópontok létrehozásoknál - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Alapértelmezett értékek + + Set default values + Alapértelmezett értékek - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Alapértelmezett sebesség, gyorsulás és folytonossági szakaszpont értékeinek beállítása + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Alapértelmezett sebesség, gyorsulás és folytonossági szakaszpont értékeinek beállítása - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Alaphelyzet beállítása + + + Set the home position + Alaphelyzet beállítása - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Útvonal szimuláció + + Simulate a trajectory + Útvonal szimuláció - Run a simulation on a trajectory - Szimuláció futtaása az útvonalon + + Run a simulation on a trajectory + Szimuláció futtaása az útvonalon - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Pálya összetétel... + + Trajectory compound... + Pálya összetétel... - Group and connect some trajectories to one - Csoportosít és közössé tesz bizonyos pályákat + + Group and connect some trajectories to one + Csoportosít és közössé tesz bizonyos pályákat - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Útvonal felruházása... + + Dress up trajectory... + Útvonal felruházása... - Create a dress up object which overide som aspects of a trajectory - Hozzon létre egy felöltöztetett objektumot mely felülírja a pálya szempontjait + + Create a dress up object which overide som aspects of a trajectory + Hozzon létre egy felöltöztetett objektumot mely felülírja a pálya szempontjait - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajektória eszközök + + Trajectory tools + Trajektória eszközök - Robot tools - Robot eszközök + + Robot tools + Robot eszközök - Insert Robot - Robotok beszúrása + + Insert Robot + Robotok beszúrása - - + + QObject - - Wrong selection - Rossz kiválasztás + + + + + + + + + + + + Wrong selection + Rossz kiválasztás - Select one Robot and one Trajectory object. - Egy Robot és egy útvonal objektum kijelölése. + + + + + + Select one Robot and one Trajectory object. + Egy Robot és egy útvonal objektum kijelölése. - Trajectory not valid - Érvénytelen útvonal + + Trajectory not valid + Érvénytelen útvonal - You need at least two way points in a trajectory to simulate. - A szimulációhoz legalább két útvonalpontra van szükség a pályán. + + You need at least two way points in a trajectory to simulate. + A szimulációhoz legalább két útvonalpontra van szükség a pályán. - - KRL file(*.src) - KRL fájl (*.src) + + + KRL file(*.src) + KRL fájl (*.src) - All Files (*.*) - Minden fájl (*.*) + + + All Files (*.*) + Minden fájl (*.*) - Export program - Program exportálása + + + Export program + Program exportálása - - Select one robot and one shape or VRML object. - Egy robot és egy alakzat vagy VRML objektum kijelölése. + + Select one robot and one shape or VRML object. + Egy robot és egy alakzat vagy VRML objektum kijelölése. - - No preselection - Nincs elÅ‘zetes kijelölés + + No preselection + Nincs elÅ‘zetes kijelölés - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - A geometria (elÅ‘választás) fölé kell vinni az egérrel a kurzort, hogy használni tudja ezt a parancsot. Részleteket a dokumentációban talál. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + A geometria (elÅ‘választás) fölé kell vinni az egérrel a kurzort, hogy használni tudja ezt a parancsot. Részleteket a dokumentációban talál. - - Select one Robot to set home postion - Robot kiválasztása és alaphelyzetbe állítása + + Select one Robot to set home postion + Robot kiválasztása és alaphelyzetbe állítása - Select one Robot - Válasszon ki egy robotot + + Select one Robot + Válasszon ki egy robotot - - Select one Trajectory object. - Válasszon ki egy pálya objektumot. + + + Select one Trajectory object. + Válasszon ki egy pálya objektumot. - set default speed - alapértelmezett sebesség beállítása + + set default speed + alapértelmezett sebesség beállítása - speed: (e.g. 1 m/s or 3 cm/s) - sebesség: (pl. 1 m/s vagy 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + sebesség: (pl. 1 m/s vagy 3 cm/s) - set default continuity - alapértelmezett folytonosság + + set default continuity + alapértelmezett folytonosság - continuous ? - folyamatos? + + continuous ? + folyamatos? - set default acceleration - alapértelmezett gyorsulás beállítás + + set default acceleration + alapértelmezett gyorsulás beállítás - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - gyorsulás: (pl. 1 m/s^2 vagy 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + gyorsulás: (pl. 1 m/s^2 vagy 3 cm/s^2) - Select the Trajectory which you want to dress up. - Válassza ki a Trayectory-t a felöltöztetéshez. + + Select the Trajectory which you want to dress up. + Válassza ki a Trayectory-t a felöltöztetéshez. - - No robot files installed - Nincs telepített robot-fájl + + No robot files installed + Nincs telepített robot-fájl - Please visit %1 and copy the files to %2 - Kérjük, látogasson el ide: %1 és másolja a fájlokat a következÅ‘ helyre: %2 + + Please visit %1 and copy the files to %2 + Kérjük, látogasson el ide: %1 és másolja a fájlokat a következÅ‘ helyre: %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Szimuláció + + Simulation + Szimuláció - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Típus + + Type + Típus - Name - Név + + Name + Név - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Űrlap + + Form + Űrlap - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4-es + + A4 + A4-es - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Eszköz:(0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Eszköz:(0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Űrlap + + Form + Űrlap - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Típus + + Type + Típus - Name - Név + + Name + Név - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Pálya + + Trajectory + Pálya - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Felruházási paraméter + + Dress Up Parameter + Felruházási paraméter - - + + TaskEdge2TracParameter - - Form - Űrlap + + Form + Űrlap - Hide / Show - Elrejt/megjelenít + + Hide / Show + Elrejt/megjelenít - Edges: 0 - Élek: 0 + + Edges: 0 + Élek: 0 - Cluster: 0 - Fürt: 0 + + Cluster: 0 + Fürt: 0 - Sizing Value: - Méret érték: + + Sizing Value: + Méret érték: - Use orientation of edge - Használja az él orientációját + + Use orientation of edge + Használja az él orientációját - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Űrlap + + Form + Űrlap - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Eszköz 0 + + Tool 0 + Eszköz 0 - Tool - Eszköz + + Tool + Eszköz - Base 0 - Alap 0 + + Base 0 + Alap 0 - Base - Alap + + Base + Alap - World - Világ + + World + Világ + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Űrlap + + Form + Űrlap - clear - ürít + + clear + ürít - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Pálya + Trajectory + Pálya - - + + TaskTrajectoryDressUpParameter - - Form - Űrlap + + Form + Űrlap - Speed & Acceleration: - Sebesség és gyorsulás: + + Speed & Acceleration: + Sebesség és gyorsulás: - Speed: - Sebesség: + + Speed: + Sebesség: - Use - Használ + + + Use + Használ - Accel: - Gyorsítás: + + Accel: + Gyorsítás: - Don't change Cont - Ne módosítsa a tartalmát + + Don't change Cont + Ne módosítsa a tartalmát - Continues - Tovább + + Continues + Tovább - Discontinues - Befejez + + Discontinues + Befejez - Position and Orientation: - Helyzete és iránya: + + Position and Orientation: + Helyzete és iránya: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ne módosítsa a pozíciót és a tájolást + + Don't change Position & Orientation + Ne módosítsa a pozíciót és a tájolást - Use Orientation - Orientáció használata + + Use Orientation + Orientáció használata - Add Position - Pozíció hozzáadása + + Add Position + Pozíció hozzáadása - Add Orientation - Orientáció hozzáadása + + Add Orientation + Orientáció hozzáadása - Dress Up Parameter - Felruházási paraméter + Dress Up Parameter + Felruházási paraméter - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Robotok beszúrása + + Insert Robots + Robotok beszúrása - &Robot - Robot + + &Robot + Robot - Export trajectory - Pálya exportálása + + Export trajectory + Pálya exportálása - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_it.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_it.ts index 3f84f3548..ff097abf3 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_it.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_it.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Aggiungi strumento + + Add tool + Aggiungi strumento - Add a tool shape to the robot - Aggiunge uno strumento forma al robot + + Add a tool shape to the robot + Aggiunge uno strumento forma al robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Posiziona robot... + + Place robot... + Posiziona robot... - Place a robot (experimental!) - Posiziona un robot (sperimentale!) + + Place a robot (experimental!) + Posiziona un robot (sperimentale!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Crea traiettoria + + Create trajectory + Crea traiettoria - Create a new empty trajectory - Crea una nuova traiettoria vuota + + Create a new empty trajectory + Crea una nuova traiettoria vuota - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Da spigolo a traiettoria... + + Edge to Trajectory... + Da spigolo a traiettoria... - Generate a Trajectory from a set of edges - Genera una traiettoria da un insieme di spigoli + + Generate a Trajectory from a set of edges + Genera una traiettoria da un insieme di spigoli - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Subroutine Kuka compatta... + + Kuka compact subroutine... + Subroutine Kuka compatta... - Export the trajectory as a compact KRL subroutine. - Esporta la traiettoria come una subroutine KRL compatta. + + Export the trajectory as a compact KRL subroutine. + Esporta la traiettoria come una subroutine KRL compatta. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Subroutine Kuka completa... + + Kuka full subroutine... + Subroutine Kuka completa... - Export the trajectory as a full KRL subroutine. - Esporta la traiettoria come una subroutine KRL completa. + + Export the trajectory as a full KRL subroutine. + Esporta la traiettoria come una subroutine KRL completa. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Inserisce un Kuka IR125 nel documento. + + Insert a Kuka IR125 into the document. + Inserisce un Kuka IR125 nel documento. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Inserisce un Kuka IR16 nel documento. + + Insert a Kuka IR16 into the document. + Inserisce un Kuka IR16 nel documento. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Inserisce un Kuka IR210 nel documento. + + Insert a Kuka IR210 into the document. + Inserisce un Kuka IR210 nel documento. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Inserisce un Kuka IR500 nel documento. + + Insert a Kuka IR500 into the document. + Inserisce un Kuka IR500 nel documento. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Inserisci in traiettoria + + Insert in trajectory + Inserisci in traiettoria - Insert robot Tool location into trajectory - Inserire il percorso dell'utensile del robot in traiettoria + + Insert robot Tool location into trajectory + Inserire il percorso dell'utensile del robot in traiettoria - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Inserisci in traiettoria + + Insert in trajectory + Inserisci in traiettoria - Insert preselection position into trajectory (W) - Inserisci la posizione di preselezione in traiettoria (W) + + Insert preselection position into trajectory (W) + Inserisci la posizione di preselezione in traiettoria (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Sposta alla posizione di partenza + + + Move to home + Sposta alla posizione di partenza - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Imposta l'orientamento predefinito + + Set default orientation + Imposta l'orientamento predefinito - set the default orientation for subsequent commands for waypoint creation - Imposta l'orientamento predefinito per i comandi successivi della creazione di waypoint + + set the default orientation for subsequent commands for waypoint creation + Imposta l'orientamento predefinito per i comandi successivi della creazione di waypoint - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Imposta i valori predefiniti + + Set default values + Imposta i valori predefiniti - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Imposta i valori predefiniti per velocità, accelerazione e continuità per comandi successivi della creazione di waypoint + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Imposta i valori predefiniti per velocità, accelerazione e continuità per comandi successivi della creazione di waypoint - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Imposta la posizione di partenza + + + Set the home position + Imposta la posizione di partenza - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simula una traiettoria + + Simulate a trajectory + Simula una traiettoria - Run a simulation on a trajectory - Esegue una simulazione su una traiettoria + + Run a simulation on a trajectory + Esegue una simulazione su una traiettoria - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Traiettoria composta... + + Trajectory compound... + Traiettoria composta... - Group and connect some trajectories to one - Raggruppa e collega alcune traiettorie in una + + Group and connect some trajectories to one + Raggruppa e collega alcune traiettorie in una - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Dress up traiettoria ... + + Dress up trajectory... + Dress up traiettoria ... - Create a dress up object which overide som aspects of a trajectory - Crea un oggetto dress up che non tiene conti di alcuni aspetti di una traiettoria + + Create a dress up object which overide som aspects of a trajectory + Crea un oggetto dress up che non tiene conti di alcuni aspetti di una traiettoria - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Strumenti Traiettoria + + Trajectory tools + Strumenti Traiettoria - Robot tools - Strumenti Robot + + Robot tools + Strumenti Robot - Insert Robot - Inserisci Robot + + Insert Robot + Inserisci Robot - - + + QObject - - Wrong selection - Selezione errata + + + + + + + + + + + + Wrong selection + Selezione errata - Select one Robot and one Trajectory object. - Seleziona un Robot e un oggetto Traiettoria. + + + + + + Select one Robot and one Trajectory object. + Seleziona un Robot e un oggetto Traiettoria. - Trajectory not valid - Traiettoria non valida + + Trajectory not valid + Traiettoria non valida - You need at least two way points in a trajectory to simulate. - Sono necessari almeno due punti in una traiettoria per eseguire la simulazione. + + You need at least two way points in a trajectory to simulate. + Sono necessari almeno due punti in una traiettoria per eseguire la simulazione. - - KRL file(*.src) - File KRL(*.src) + + + KRL file(*.src) + File KRL(*.src) - All Files (*.*) - Tutti i File (*.*) + + + All Files (*.*) + Tutti i File (*.*) - Export program - Esporta programma + + + Export program + Esporta programma - - Select one robot and one shape or VRML object. - Seleziona un robot e una forma o un oggetto VRML. + + Select one robot and one shape or VRML object. + Seleziona un robot e una forma o un oggetto VRML. - - No preselection - Nessuna preselezione + + No preselection + Nessuna preselezione - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - È necessario passare col mouse sopra una geometria (preselezione) per utilizzare questo comando. Vedere la documentazione per i dettagli. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + È necessario passare col mouse sopra una geometria (preselezione) per utilizzare questo comando. Vedere la documentazione per i dettagli. - - Select one Robot to set home postion - Seleziona un robot per impostare la posizione di partenza + + Select one Robot to set home postion + Seleziona un robot per impostare la posizione di partenza - Select one Robot - Seleziona un Robot + + Select one Robot + Seleziona un Robot - - Select one Trajectory object. - Seleziona un oggetto traiettoria. + + + Select one Trajectory object. + Seleziona un oggetto traiettoria. - set default speed - Imposta la velocità predefinita + + set default speed + Imposta la velocità predefinita - speed: (e.g. 1 m/s or 3 cm/s) - velocità: (ad esempio 1 m/s o 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + velocità: (ad esempio 1 m/s o 3 cm/s) - set default continuity - Imposta la continuità predefinita + + set default continuity + Imposta la continuità predefinita - continuous ? - Continuo ? + + continuous ? + Continuo ? - set default acceleration - Imposta l'accelerazione predefinita + + set default acceleration + Imposta l'accelerazione predefinita - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - accelerazione: (ad es. 1 m/s^2 o 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + accelerazione: (ad es. 1 m/s^2 o 3 cm/s^2) - Select the Trajectory which you want to dress up. - Seleziona la traiettoria che si vuole vestire. + + Select the Trajectory which you want to dress up. + Seleziona la traiettoria che si vuole vestire. - - No robot files installed - Nessun file robot installato + + No robot files installed + Nessun file robot installato - Please visit %1 and copy the files to %2 - Si prega di visitare %1 e copiare i file in %2 + + Please visit %1 and copy the files to %2 + Si prega di visitare %1 e copiare i file in %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulazione + + Simulation + Simulazione - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Tipo + + Type + Tipo - Name - Nome + + Name + Nome - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Form + + Form + Form - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Strumento: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Strumento: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Form + + Form + Form - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Tipo + + Type + Tipo - Name - Nome + + Name + Nome - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Traiettoria + + Trajectory + Traiettoria - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Parametri Dress Up + + Dress Up Parameter + Parametri Dress Up - - + + TaskEdge2TracParameter - - Form - Form + + Form + Form - Hide / Show - Mostra/Nascondi + + Hide / Show + Mostra/Nascondi - Edges: 0 - Bordi: 0 + + Edges: 0 + Bordi: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Valore di ridimensionamento: + + Sizing Value: + Valore di ridimensionamento: - Use orientation of edge - Usa l'orientamento del bordo + + Use orientation of edge + Usa l'orientamento del bordo - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Form + + Form + Form - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Utensile 0 + + Tool 0 + Utensile 0 - Tool - Utensile + + Tool + Utensile - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - Globale + + World + Globale + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Form + + Form + Form - clear - cancella + + clear + cancella - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Traiettoria + Trajectory + Traiettoria - - + + TaskTrajectoryDressUpParameter - - Form - Form + + Form + Form - Speed & Acceleration: - Velocità e accelerazione: + + Speed & Acceleration: + Velocità e accelerazione: - Speed: - Velocità: + + Speed: + Velocità: - Use - Uso + + + Use + Uso - Accel: - Accelerazione: + + Accel: + Accelerazione: - Don't change Cont - Non cambiare Cont + + Don't change Cont + Non cambiare Cont - Continues - Continua + + Continues + Continua - Discontinues - Discontinua + + Discontinues + Discontinua - Position and Orientation: - Posizione e orientamento: + + Position and Orientation: + Posizione e orientamento: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Non modificare la posizione e l'orientamento + + Don't change Position & Orientation + Non modificare la posizione e l'orientamento - Use Orientation - Usa l'orientamento + + Use Orientation + Usa l'orientamento - Add Position - Aggiungi posizione + + Add Position + Aggiungi posizione - Add Orientation - Aggiungi Orientamento + + Add Orientation + Aggiungi Orientamento - Dress Up Parameter - Parametri Dress Up + Dress Up Parameter + Parametri Dress Up - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Inserisci Robot + + Insert Robots + Inserisci Robot - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Esporta traiettoria + + Export trajectory + Esporta traiettoria - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_ja.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_ja.ts index 46491ff51..0ab8641ff 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_ja.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_ja.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - ロボット + + Robot + ロボット - Add tool - Add tool + + Add tool + Add tool - Add a tool shape to the robot - Add a tool shape to the robot + + Add a tool shape to the robot + Add a tool shape to the robot - - + + CmdRobotConstraintAxle - - Robot - ロボット + + Robot + ロボット - Place robot... - ロボットをé…ç½®... + + Place robot... + ロボットをé…ç½®... - Place a robot (experimental!) - Place a robot (experimental!) + + Place a robot (experimental!) + Place a robot (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - ロボット + + Robot + ロボット - Create trajectory - è»Œè·¡ã‚’ä½œæˆ + + Create trajectory + è»Œè·¡ã‚’ä½œæˆ - Create a new empty trajectory - æ–°ã—ã„空ã®è»Œè·¡ã‚’ä½œæˆ + + Create a new empty trajectory + æ–°ã—ã„空ã®è»Œè·¡ã‚’ä½œæˆ - - + + CmdRobotEdge2Trac - Robot - ロボット + + Robot + ロボット - Edge to Trajectory... - Edge to Trajectory... + + Edge to Trajectory... + Edge to Trajectory... - Generate a Trajectory from a set of edges - Generate a Trajectory from a set of edges + + Generate a Trajectory from a set of edges + Generate a Trajectory from a set of edges - - + + CmdRobotExportKukaCompact - - Robot - ロボット + + Robot + ロボット - Kuka compact subroutine... - Kuka compact subroutine... + + Kuka compact subroutine... + Kuka compact subroutine... - Export the trajectory as a compact KRL subroutine. - Export the trajectory as a compact KRL subroutine. + + Export the trajectory as a compact KRL subroutine. + Export the trajectory as a compact KRL subroutine. - - + + CmdRobotExportKukaFull - Robot - ロボット + + Robot + ロボット - Kuka full subroutine... - Kuka full subroutine... + + Kuka full subroutine... + Kuka full subroutine... - Export the trajectory as a full KRL subroutine. - Export the trajectory as a full KRL subroutine. + + Export the trajectory as a full KRL subroutine. + Export the trajectory as a full KRL subroutine. - - + + CmdRobotInsertKukaIR125 - - Robot - ロボット + + Robot + ロボット - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Kuka IR125 を挿入. + + Insert a Kuka IR125 into the document. + Kuka IR125 を挿入. - - + + CmdRobotInsertKukaIR16 - Robot - ロボット + + Robot + ロボット - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Kuka IR16 を挿入 + + Insert a Kuka IR16 into the document. + Kuka IR16 を挿入 - - + + CmdRobotInsertKukaIR210 - Robot - ロボット + + Robot + ロボット - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Kuka IR210 を挿入. + + Insert a Kuka IR210 into the document. + Kuka IR210 を挿入. - - + + CmdRobotInsertKukaIR500 - Robot - ロボット + + Robot + ロボット - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Kuka IR500 を挿入. + + Insert a Kuka IR500 into the document. + Kuka IR500 を挿入. - - + + CmdRobotInsertWaypoint - - Robot - ロボット + + Robot + ロボット - Insert in trajectory - Insert in trajectory + + Insert in trajectory + Insert in trajectory - Insert robot Tool location into trajectory - Insert robot Tool location into trajectory + + Insert robot Tool location into trajectory + Insert robot Tool location into trajectory - - + + CmdRobotInsertWaypointPreselect - Robot - ロボット + + Robot + ロボット - Insert in trajectory - Insert in trajectory + + Insert in trajectory + Insert in trajectory - Insert preselection position into trajectory (W) - Insert preselection position into trajectory (W) + + Insert preselection position into trajectory (W) + Insert preselection position into trajectory (W) - - + + CmdRobotRestoreHomePos - - Robot - ロボット + + Robot + ロボット - Move to home - ホームã¸ç§»å‹• + + + Move to home + ホームã¸ç§»å‹• - - + + CmdRobotSetDefaultOrientation - - Robot - ロボット + + Robot + ロボット - Set default orientation - デフォルトã®å‘ãを設定 + + Set default orientation + デフォルトã®å‘ãを設定 - set the default orientation for subsequent commands for waypoint creation - set the default orientation for subsequent commands for waypoint creation + + set the default orientation for subsequent commands for waypoint creation + set the default orientation for subsequent commands for waypoint creation - - + + CmdRobotSetDefaultValues - Robot - ロボット + + Robot + ロボット - Set default values - Set default values + + Set default values + Set default values - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - - + + CmdRobotSetHomePos - - Robot - ロボット + + Robot + ロボット - Set the home position - ホームãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’設定 + + + Set the home position + ホームãƒã‚¸ã‚·ãƒ§ãƒ³ã‚’設定 - - + + CmdRobotSimulate - Robot - ロボット + + Robot + ロボット - Simulate a trajectory - 軌é“をシミュレート + + Simulate a trajectory + 軌é“をシミュレート - Run a simulation on a trajectory - 軌é“ã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’実行 + + Run a simulation on a trajectory + 軌é“ã®ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’実行 - - + + CmdRobotTrajectoryCompound - - Robot - ロボット + + Robot + ロボット - Trajectory compound... - Trajectory compound... + + Trajectory compound... + Trajectory compound... - Group and connect some trajectories to one - Group and connect some trajectories to one + + Group and connect some trajectories to one + Group and connect some trajectories to one - - + + CmdRobotTrajectoryDressUp - Robot - ロボット + + Robot + ロボット - Dress up trajectory... - Dress up trajectory... + + Dress up trajectory... + Dress up trajectory... - Create a dress up object which overide som aspects of a trajectory - Create a dress up object which overide som aspects of a trajectory + + Create a dress up object which overide som aspects of a trajectory + Create a dress up object which overide som aspects of a trajectory - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - 軌é“ツール + + Trajectory tools + 軌é“ツール - Robot tools - ロボットツール + + Robot tools + ロボットツール - Insert Robot - ロボットを挿入 + + Insert Robot + ロボットを挿入 - - + + QObject - - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + + + + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select one Robot and one Trajectory object. - Select one Robot and one Trajectory object. + + + + + + Select one Robot and one Trajectory object. + Select one Robot and one Trajectory object. - Trajectory not valid - 軌é“ãŒç„¡åйã§ã™ã€‚ + + Trajectory not valid + 軌é“ãŒç„¡åйã§ã™ã€‚ - You need at least two way points in a trajectory to simulate. - You need at least two way points in a trajectory to simulate. + + You need at least two way points in a trajectory to simulate. + You need at least two way points in a trajectory to simulate. - - KRL file(*.src) - KRLファイル(*.SRC) + + + KRL file(*.src) + KRLファイル(*.SRC) - All Files (*.*) - ã™ã¹ã¦ã®ãƒ•ァイル (*.*) + + + All Files (*.*) + ã™ã¹ã¦ã®ãƒ•ァイル (*.*) - Export program - プログラムをエクスãƒãƒ¼ãƒˆ + + + Export program + プログラムをエクスãƒãƒ¼ãƒˆ - - Select one robot and one shape or VRML object. - Select one robot and one shape or VRML object. + + Select one robot and one shape or VRML object. + Select one robot and one shape or VRML object. - - No preselection - No preselection + + No preselection + No preselection - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’使用ã™ã‚‹ã«ã¯ãƒžã‚¦ã‚¹ã‚’使ã£ã¦ã‚¸ã‚ªãƒ¡ãƒˆãƒªï¼ˆäº‹å‰é¸æŠžï¼‰ã®ä¸Šã«ã‚«ãƒ¼ã‚½ãƒ«ã‚’移動ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’使用ã™ã‚‹ã«ã¯ãƒžã‚¦ã‚¹ã‚’使ã£ã¦ã‚¸ã‚ªãƒ¡ãƒˆãƒªï¼ˆäº‹å‰é¸æŠžï¼‰ã®ä¸Šã«ã‚«ãƒ¼ã‚½ãƒ«ã‚’移動ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚詳細ã«ã¤ã„ã¦ã¯ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 - - Select one Robot to set home postion - Select one Robot to set home postion + + Select one Robot to set home postion + Select one Robot to set home postion - Select one Robot - Select one Robot + + Select one Robot + Select one Robot - - Select one Trajectory object. - Select one Trajectory object. + + + Select one Trajectory object. + Select one Trajectory object. - set default speed - 既定ã®é€Ÿåº¦ã‚’設定ã—ã¾ã™ã€‚ + + set default speed + 既定ã®é€Ÿåº¦ã‚’設定ã—ã¾ã™ã€‚ - speed: (e.g. 1 m/s or 3 cm/s) - speed: (e.g. 1 m/s or 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + speed: (e.g. 1 m/s or 3 cm/s) - set default continuity - set default continuity + + set default continuity + set default continuity - continuous ? - continuous ? + + continuous ? + continuous ? - set default acceleration - set default acceleration + + set default acceleration + set default acceleration - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - ロボットファイルãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã›ã‚“ + + No robot files installed + ロボットファイルãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã›ã‚“ - Please visit %1 and copy the files to %2 - Please visit %1 and copy the files to %2 + + Please visit %1 and copy the files to %2 + Please visit %1 and copy the files to %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - シミュレーション + + Simulation + シミュレーション - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - タイプ + + Type + タイプ - Name - åå‰ + + Name + åå‰ - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Form + + Form + Form - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Tool: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Tool: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Form + + Form + Form - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - タイプ + + Type + タイプ - Name - åå‰ + + Name + åå‰ - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trajectory + + Trajectory + Trajectory - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Dress Up Parameter + + Dress Up Parameter + Dress Up Parameter - - + + TaskEdge2TracParameter - - Form - Form + + Form + Form - Hide / Show - 表示/éžè¡¨ç¤º + + Hide / Show + 表示/éžè¡¨ç¤º - Edges: 0 - Edges: 0 + + Edges: 0 + Edges: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Sizing Value: + + Sizing Value: + Sizing Value: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Form + + Form + Form - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Tool 0 + + Tool 0 + Tool 0 - Tool - ツール + + Tool + ツール - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - World + + World + World + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Form + + Form + Form - clear - clear + + clear + clear - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Trajectory + Trajectory + Trajectory - - + + TaskTrajectoryDressUpParameter - - Form - Form + + Form + Form - Speed & Acceleration: - 速度 & 加速度: + + Speed & Acceleration: + 速度 & 加速度: - Speed: - 速度: + + Speed: + 速度: - Use - Use + + + Use + Use - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - Continues + + Continues + Continues - Discontinues - Discontinues + + Discontinues + Discontinues - Position and Orientation: - Position and Orientation: + + Position and Orientation: + Position and Orientation: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Don't change Position & Orientation + + Don't change Position & Orientation + Don't change Position & Orientation - Use Orientation - Use Orientation + + Use Orientation + Use Orientation - Add Position - Add Position + + Add Position + Add Position - Add Orientation - Add Orientation + + Add Orientation + Add Orientation - Dress Up Parameter - Dress Up Parameter + Dress Up Parameter + Dress Up Parameter - - + + Workbench - - Robot - ロボット + + Robot + ロボット - Insert Robots - Insert Robots + + Insert Robots + Insert Robots - &Robot - ロボット (&ï½’) + + &Robot + ロボット (&ï½’) - Export trajectory - Export trajectory + + Export trajectory + Export trajectory - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_nl.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_nl.ts index 596ac7500..f1d8b5296 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_nl.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_nl.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Gereedschap toevoegen + + Add tool + Gereedschap toevoegen - Add a tool shape to the robot - Voeg een gereedschapvorm toe aan de robot + + Add a tool shape to the robot + Voeg een gereedschapvorm toe aan de robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Plaats robot... + + Place robot... + Plaats robot... - Place a robot (experimental!) - Plaats een robot (experimenteel!) + + Place a robot (experimental!) + Plaats een robot (experimenteel!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Maak traject + + Create trajectory + Maak traject - Create a new empty trajectory - Maak een nieuw leeg traject + + Create a new empty trajectory + Maak een nieuw leeg traject - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Rand naar traject... + + Edge to Trajectory... + Rand naar traject... - Generate a Trajectory from a set of edges - Genereer een Traject uit een set van randen + + Generate a Trajectory from a set of edges + Genereer een Traject uit een set van randen - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kuka compacte subroutine ... + + Kuka compact subroutine... + Kuka compacte subroutine ... - Export the trajectory as a compact KRL subroutine. - Exporteer het traject als een compacte KRL subroutine. + + Export the trajectory as a compact KRL subroutine. + Exporteer het traject als een compacte KRL subroutine. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Kuka volledige subroutine... + + Kuka full subroutine... + Kuka volledige subroutine... - Export the trajectory as a full KRL subroutine. - Exporteer het traject als een volledige KRL subroutine. + + Export the trajectory as a full KRL subroutine. + Exporteer het traject als een volledige KRL subroutine. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Voeg een Kuka IR125 toe aan het document. + + Insert a Kuka IR125 into the document. + Voeg een Kuka IR125 toe aan het document. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Voeg een Kuka IR16 toe aan het document. + + Insert a Kuka IR16 into the document. + Voeg een Kuka IR16 toe aan het document. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Voeg een Kuka IR210 toe aan het document. + + Insert a Kuka IR210 into the document. + Voeg een Kuka IR210 toe aan het document. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Voeg een Kuka IR500 toe aan het document. + + Insert a Kuka IR500 into the document. + Voeg een Kuka IR500 toe aan het document. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Toevoegen aan traject + + Insert in trajectory + Toevoegen aan traject - Insert robot Tool location into trajectory - Robot gereedschapslocatie invoegen in traject + + Insert robot Tool location into trajectory + Robot gereedschapslocatie invoegen in traject - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Toevoegen aan traject + + Insert in trajectory + Toevoegen aan traject - Insert preselection position into trajectory (W) - Plaats de voorselectie-positie in het traject (W) + + Insert preselection position into trajectory (W) + Plaats de voorselectie-positie in het traject (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Ga naar de beginpositie + + + Move to home + Ga naar de beginpositie - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Set standaard oriëntatie + + Set default orientation + Set standaard oriëntatie - set the default orientation for subsequent commands for waypoint creation - set the default orientation for subsequent commands for waypoint creation + + set the default orientation for subsequent commands for waypoint creation + set the default orientation for subsequent commands for waypoint creation - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Standaardwaarden instellen + + Set default values + Standaardwaarden instellen - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Stel de beginpositie in + + + Set the home position + Stel de beginpositie in - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simuleer een traject + + Simulate a trajectory + Simuleer een traject - Run a simulation on a trajectory - Voer een simulatie uit op een traject + + Run a simulation on a trajectory + Voer een simulatie uit op een traject - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Trajectory compound... + + Trajectory compound... + Trajectory compound... - Group and connect some trajectories to one - Group and connect some trajectories to one + + Group and connect some trajectories to one + Group and connect some trajectories to one - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Dress up trajectory... + + Dress up trajectory... + Dress up trajectory... - Create a dress up object which overide som aspects of a trajectory - Create a dress up object which overide som aspects of a trajectory + + Create a dress up object which overide som aspects of a trajectory + Create a dress up object which overide som aspects of a trajectory - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robotgereedschappen + + Robot tools + Robotgereedschappen - Insert Robot - Robot invoegen + + Insert Robot + Robot invoegen - - + + QObject - - Wrong selection - Verkeerde selectie + + + + + + + + + + + + Wrong selection + Verkeerde selectie - Select one Robot and one Trajectory object. - Selecteer één robot en één traject-object. + + + + + + Select one Robot and one Trajectory object. + Selecteer één robot en één traject-object. - Trajectory not valid - Traject ongeldig + + Trajectory not valid + Traject ongeldig - You need at least two way points in a trajectory to simulate. - Je moet ten minste twee punten in een traject hebben om te kunnen simuleren. + + You need at least two way points in a trajectory to simulate. + Je moet ten minste twee punten in een traject hebben om te kunnen simuleren. - - KRL file(*.src) - KRL-bestand (*.src) + + + KRL file(*.src) + KRL-bestand (*.src) - All Files (*.*) - Alle bestanden (*.*) + + + All Files (*.*) + Alle bestanden (*.*) - Export program - Exporteer programma + + + Export program + Exporteer programma - - Select one robot and one shape or VRML object. - Selecteer één robot en één shape of VRML-object. + + Select one robot and one shape or VRML object. + Selecteer één robot en één shape of VRML-object. - - No preselection - Geen voorselectie + + No preselection + Geen voorselectie - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Je moet zweven boven een geometrie (Voorselectie) met de muis om dit commando te gebruiken. Zie documentatie voor details. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Je moet zweven boven een geometrie (Voorselectie) met de muis om dit commando te gebruiken. Zie documentatie voor details. - - Select one Robot to set home postion - Selecteer een Robot om thuispositie te bepalen + + Select one Robot to set home postion + Selecteer een Robot om thuispositie te bepalen - Select one Robot - Selecteer een Robot + + Select one Robot + Selecteer een Robot - - Select one Trajectory object. - Één traject object selecteren. + + + Select one Trajectory object. + Één traject object selecteren. - set default speed - Standaard snelheid instellen + + set default speed + Standaard snelheid instellen - speed: (e.g. 1 m/s or 3 cm/s) - snelheid: (bijv. 1 m/s of 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + snelheid: (bijv. 1 m/s of 3 cm/s) - set default continuity - Set standaard continuïteit + + set default continuity + Set standaard continuïteit - continuous ? - continu? + + continuous ? + continu? - set default acceleration - standaard versnelling instellen + + set default acceleration + standaard versnelling instellen - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - versnelling: (bijv. 1 m/s^2 of 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + versnelling: (bijv. 1 m/s^2 of 3 cm/s^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - Geen robot bestanden geïnstalleerd + + No robot files installed + Geen robot bestanden geïnstalleerd - Please visit %1 and copy the files to %2 - Bezoek %1 en kopieer de bestanden naar %2 + + Please visit %1 and copy the files to %2 + Bezoek %1 en kopieer de bestanden naar %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulatie + + Simulation + Simulatie - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Type + + Type + Type - Name - Naam + + Name + Naam - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Vorm + + Form + Vorm - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Tool: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Tool: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaakRobot6Assen + + TaskRobot6Axis + TaakRobot6Assen - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaakRobotBesturing + + TaskRobotControl + TaakRobotBesturing - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaakRobotBerichten + + TaskRobotMessages + TaakRobotBerichten - - + + RobotGui::TaskTrajectory - - Form - Vorm + + Form + Vorm - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Type + + Type + Type - Name - Naam + + Name + Naam - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Traject + + Trajectory + Traject - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Aankleed Parameter + + Dress Up Parameter + Aankleed Parameter - - + + TaskEdge2TracParameter - - Form - Vorm + + Form + Vorm - Hide / Show - Verbergen / weergeven + + Hide / Show + Verbergen / weergeven - Edges: 0 - Randen: 0 + + Edges: 0 + Randen: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Dimensionering Waarde: + + Sizing Value: + Dimensionering Waarde: - Use orientation of edge - Gebruik oriëntatie van de rand + + Use orientation of edge + Gebruik oriëntatie van de rand - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaakRobot6Assen + TaskRobot6Axis + TaakRobot6Assen - - + + TaskRobotControl - - Form - Vorm + + Form + Vorm - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Gereedschap 0 + + Tool 0 + Gereedschap 0 - Tool - Gereedschap + + Tool + Gereedschap - Base 0 - Basis 0 + + Base 0 + Basis 0 - Base - Basis + + Base + Basis - World - Wereld + + World + Wereld + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1 ° + + + + 5mm / 0.5° + 5mm / 0,5 ° + + + + 1mm / 0.1° + 1mm / 0,1 ° - 50mm / 5° - 50mm / 5° + TaskRobotControl + TaakRobotBesturing - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1 ° - - - 5mm / 0.5° - 5mm / 0,5 ° - - - 1mm / 0.1° - 1mm / 0,1 ° - - - TaskRobotControl - TaakRobotBesturing - - - + + TaskRobotMessages - - Form - Vorm + + Form + Vorm - clear - wissen + + clear + wissen - TaskRobotMessages - TaakRobotBerichten + TaskRobotMessages + TaakRobotBerichten - - + + TaskTrajectory - Trajectory - Traject + Trajectory + Traject - - + + TaskTrajectoryDressUpParameter - - Form - Vorm + + Form + Vorm - Speed & Acceleration: - Snelheid & versnelling: + + Speed & Acceleration: + Snelheid & versnelling: - Speed: - Snelheid: + + Speed: + Snelheid: - Use - Gebruik + + + Use + Gebruik - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - Doorgaan + + Continues + Doorgaan - Discontinues - Stoppen + + Discontinues + Stoppen - Position and Orientation: - Positie en oriëntatie: + + Position and Orientation: + Positie en oriëntatie: - (0,0,0),(0,0,0) - (0,0,0), (0,0,0) + + (0,0,0),(0,0,0) + (0,0,0), (0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Positie & oriëntatie niet wijzigen + + Don't change Position & Orientation + Positie & oriëntatie niet wijzigen - Use Orientation - Gebruik Oriëntatie + + Use Orientation + Gebruik Oriëntatie - Add Position - Positie toevoegen + + Add Position + Positie toevoegen - Add Orientation - Oriëntatie toevoegen + + Add Orientation + Oriëntatie toevoegen - Dress Up Parameter - Aankleed Parameter + Dress Up Parameter + Aankleed Parameter - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Invoegen Robots + + Insert Robots + Invoegen Robots - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Exporteer traject + + Export trajectory + Exporteer traject - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_no.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_no.ts index c07760e4e..0076e1b24 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_no.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_no.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Legg til verktøy + + Add tool + Legg til verktøy - Add a tool shape to the robot - Legg til en verktøyform til roboten + + Add a tool shape to the robot + Legg til en verktøyform til roboten - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Plasser robot... + + Place robot... + Plasser robot... - Place a robot (experimental!) - Plasser en robot (eksperimentell!) + + Place a robot (experimental!) + Plasser en robot (eksperimentell!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Lag bane + + Create trajectory + Lag bane - Create a new empty trajectory - Lag en ny tom bane + + Create a new empty trajectory + Lag en ny tom bane - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Kant til bane... + + Edge to Trajectory... + Kant til bane... - Generate a Trajectory from a set of edges - Generer en bane fra et sett med kanter + + Generate a Trajectory from a set of edges + Generer en bane fra et sett med kanter - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kompakt KUKA delrutine... + + Kuka compact subroutine... + Kompakt KUKA delrutine... - Export the trajectory as a compact KRL subroutine. - Eksportere banen som en kompakt KRL delrutine. + + Export the trajectory as a compact KRL subroutine. + Eksportere banen som en kompakt KRL delrutine. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Fullstendig KUKA delrutine... + + Kuka full subroutine... + Fullstendig KUKA delrutine... - Export the trajectory as a full KRL subroutine. - Eksporter banen som en fullstendig KRL delrutine. + + Export the trajectory as a full KRL subroutine. + Eksporter banen som en fullstendig KRL delrutine. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Sett inn en Kuka IR125 i dokumentet. + + Insert a Kuka IR125 into the document. + Sett inn en Kuka IR125 i dokumentet. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Sett inn en Kuka IR16 i dokumentet. + + Insert a Kuka IR16 into the document. + Sett inn en Kuka IR16 i dokumentet. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Sett inn en Kuka IR210 i dokumentet. + + Insert a Kuka IR210 into the document. + Sett inn en Kuka IR210 i dokumentet. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Sett inn en Kuka IR500 i dokumentet. + + Insert a Kuka IR500 into the document. + Sett inn en Kuka IR500 i dokumentet. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Sett inn i bane + + Insert in trajectory + Sett inn i bane - Insert robot Tool location into trajectory - Sett inn robotverktøy i banen + + Insert robot Tool location into trajectory + Sett inn robotverktøy i banen - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Sett inn i bane + + Insert in trajectory + Sett inn i bane - Insert preselection position into trajectory (W) - Sett inn forvalgt posisjon i bane (W) + + Insert preselection position into trajectory (W) + Sett inn forvalgt posisjon i bane (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Flytt til utgangsposisjon + + + Move to home + Flytt til utgangsposisjon - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Angi standardorientering + + Set default orientation + Angi standardorientering - set the default orientation for subsequent commands for waypoint creation - sett standardorientering for etterfølgende kommandoer ved veipunktopprettelse + + set the default orientation for subsequent commands for waypoint creation + sett standardorientering for etterfølgende kommandoer ved veipunktopprettelse - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Angi standardverdier + + Set default values + Angi standardverdier - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - angi standardverdier for hastighet, akselerasjon og kontinuitet for etterfølgende kommandoer ved veipunktetablering + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + angi standardverdier for hastighet, akselerasjon og kontinuitet for etterfølgende kommandoer ved veipunktetablering - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Sett utgangsposisjon + + + Set the home position + Sett utgangsposisjon - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simuler en bane + + Simulate a trajectory + Simuler en bane - Run a simulation on a trajectory - Kjør simulering pÃ¥ en bane + + Run a simulation on a trajectory + Kjør simulering pÃ¥ en bane - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Banesammensetning... + + Trajectory compound... + Banesammensetning... - Group and connect some trajectories to one - Gruppér og koble flere baner til en + + Group and connect some trajectories to one + Gruppér og koble flere baner til en - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Bekledningsbane... + + Dress up trajectory... + Bekledningsbane... - Create a dress up object which overide som aspects of a trajectory - Lag et bekledningsobjekt som oversyrer deler av en bane + + Create a dress up object which overide som aspects of a trajectory + Lag et bekledningsobjekt som oversyrer deler av en bane - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robot tools + + Robot tools + Robot tools - Insert Robot - Insert Robot + + Insert Robot + Insert Robot - - + + QObject - - Wrong selection - Feil valg + + + + + + + + + + + + Wrong selection + Feil valg - Select one Robot and one Trajectory object. - Velg en Robot og ett baneobjekt. + + + + + + Select one Robot and one Trajectory object. + Velg en Robot og ett baneobjekt. - Trajectory not valid - Banen ikke gyldig + + Trajectory not valid + Banen ikke gyldig - You need at least two way points in a trajectory to simulate. - Du trenger minst to etappemÃ¥l i en bane Ã¥ simulere. + + You need at least two way points in a trajectory to simulate. + Du trenger minst to etappemÃ¥l i en bane Ã¥ simulere. - - KRL file(*.src) - KRL fil(*.src) + + + KRL file(*.src) + KRL fil(*.src) - All Files (*.*) - Alle filer (*.*) + + + All Files (*.*) + Alle filer (*.*) - Export program - Eksporter program + + + Export program + Eksporter program - - Select one robot and one shape or VRML object. - Velg en robot og en figur eller et VRML objekt. + + Select one robot and one shape or VRML object. + Velg en robot og en figur eller et VRML objekt. - - No preselection - Ingen forvalg + + No preselection + Ingen forvalg - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Du mÃ¥ holde mus over noe geometri (Forvalg) for Ã¥ bruke denne kommandoen. Se dokumentasjonen for detaljer. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Du mÃ¥ holde mus over noe geometri (Forvalg) for Ã¥ bruke denne kommandoen. Se dokumentasjonen for detaljer. - - Select one Robot to set home postion - Velg en robot Ã¥ sette i utgangsposisjon + + Select one Robot to set home postion + Velg en robot Ã¥ sette i utgangsposisjon - Select one Robot - Velg en robot + + Select one Robot + Velg en robot - - Select one Trajectory object. - Velg ett baneobjekt. + + + Select one Trajectory object. + Velg ett baneobjekt. - set default speed - angi standardhastighet + + set default speed + angi standardhastighet - speed: (e.g. 1 m/s or 3 cm/s) - hastighet: (f.eks 1m/s eller 3cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + hastighet: (f.eks 1m/s eller 3cm/s) - set default continuity - sett standardkontinuitet + + set default continuity + sett standardkontinuitet - continuous ? - kontinuerlig? + + continuous ? + kontinuerlig? - set default acceleration - sett standardakselerasjon + + set default acceleration + sett standardakselerasjon - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - akselerasjon: (f.eks 1m/s^2 eller 3cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + akselerasjon: (f.eks 1m/s^2 eller 3cm/s^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - Ingen robot filer installert + + No robot files installed + Ingen robot filer installert - Please visit %1 and copy the files to %2 - Vennligst besøk %1 og kopier filer til %2 + + Please visit %1 and copy the files to %2 + Vennligst besøk %1 og kopier filer til %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulering + + Simulation + Simulering - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Type + + Type + Type - Name - Navn + + Name + Navn - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - OppgKantTBaneParameter + + TaskEdge2TracParameter + OppgKantTBaneParameter - - + + RobotGui::TaskRobot6Axis - - Form - Skjema + + Form + Skjema - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Verktøy: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Verktøy: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - OppgaveRobotAkse + + TaskRobot6Axis + OppgaveRobotAkse - - + + RobotGui::TaskRobotControl - - TaskRobotControl - OppgaveRobotKontroll + + TaskRobotControl + OppgaveRobotKontroll - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - OppgaveRobotBeskjeder + + TaskRobotMessages + OppgaveRobotBeskjeder - - + + RobotGui::TaskTrajectory - - Form - Skjema + + Form + Skjema - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Type + + Type + Type - Name - Navn + + Name + Navn - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Bane + + Trajectory + Bane - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Bekledningsparameter + + Dress Up Parameter + Bekledningsparameter - - + + TaskEdge2TracParameter - - Form - Skjema + + Form + Skjema - Hide / Show - Skjul/ Vis + + Hide / Show + Skjul/ Vis - Edges: 0 - Kanter: 0 + + Edges: 0 + Kanter: 0 - Cluster: 0 - Klynge: 0 + + Cluster: 0 + Klynge: 0 - Sizing Value: - Størrelseverdi: + + Sizing Value: + Størrelseverdi: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - OppgKantTBaneParameter + TaskEdge2TracParameter + OppgKantTBaneParameter - - + + TaskRobot6Axis - TaskRobot6Axis - OppgaveRobotAkse + TaskRobot6Axis + OppgaveRobotAkse - - + + TaskRobotControl - - Form - Skjema + + Form + Skjema - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Verktøy 0 + + Tool 0 + Verktøy 0 - Tool - Verktøy + + Tool + Verktøy - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - Verden + + World + Verden + + + + 50mm / 5° + 50mm/ 5° + + + + 20mm / 2° + 20mm/ 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm/ 5° + TaskRobotControl + OppgaveRobotKontroll - - 20mm / 2° - 20mm/ 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - OppgaveRobotKontroll - - - + + TaskRobotMessages - - Form - Skjema + + Form + Skjema - clear - fjern + + clear + fjern - TaskRobotMessages - OppgaveRobotBeskjeder + TaskRobotMessages + OppgaveRobotBeskjeder - - + + TaskTrajectory - Trajectory - Bane + Trajectory + Bane - - + + TaskTrajectoryDressUpParameter - - Form - Skjema + + Form + Skjema - Speed & Acceleration: - Hastighet & akselerasjon: + + Speed & Acceleration: + Hastighet & akselerasjon: - Speed: - Hastighet: + + Speed: + Hastighet: - Use - Bruk + + + Use + Bruk - Accel: - Akselér: + + Accel: + Akselér: - Don't change Cont - Ikke endre forts + + Don't change Cont + Ikke endre forts - Continues - Fortsetter + + Continues + Fortsetter - Discontinues - Avbryter + + Discontinues + Avbryter - Position and Orientation: - Posisjon og orientering: + + Position and Orientation: + Posisjon og orientering: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ikke endre posisjon og orientering + + Don't change Position & Orientation + Ikke endre posisjon og orientering - Use Orientation - Bruk Orientering + + Use Orientation + Bruk Orientering - Add Position - Legg til posisjon + + Add Position + Legg til posisjon - Add Orientation - Legg til orientering + + Add Orientation + Legg til orientering - Dress Up Parameter - Bekledningsparameter + Dress Up Parameter + Bekledningsparameter - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Sett inn Roboter + + Insert Robots + Sett inn Roboter - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Eksporter bane + + Export trajectory + Eksporter bane - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_pl.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_pl.ts index ba35e8ba7..279313d98 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_pl.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_pl.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Dodaj narzÄ™dzie + + Add tool + Dodaj narzÄ™dzie - Add a tool shape to the robot - Add a tool shape to the robot + + Add a tool shape to the robot + Add a tool shape to the robot - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Place robot... + + Place robot... + Place robot... - Place a robot (experimental!) - Place a robot (experimental!) + + Place a robot (experimental!) + Place a robot (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Utwórz trajektoriÄ™ + + Create trajectory + Utwórz trajektoriÄ™ - Create a new empty trajectory - Utwórz nowÄ… pustÄ… trajektoriÄ™ + + Create a new empty trajectory + Utwórz nowÄ… pustÄ… trajektoriÄ™ - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - KrawÄ™dź na TrajektoriÄ™... + + Edge to Trajectory... + KrawÄ™dź na TrajektoriÄ™... - Generate a Trajectory from a set of edges - Generuj trajektoriÄ™ z zestawu krawÄ™dzi + + Generate a Trajectory from a set of edges + Generuj trajektoriÄ™ z zestawu krawÄ™dzi - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - Kuka compact subroutine... + + Kuka compact subroutine... + Kuka compact subroutine... - Export the trajectory as a compact KRL subroutine. - Export the trajectory as a compact KRL subroutine. + + Export the trajectory as a compact KRL subroutine. + Export the trajectory as a compact KRL subroutine. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - Kuka full subroutine... + + Kuka full subroutine... + Kuka full subroutine... - Export the trajectory as a full KRL subroutine. - Export the trajectory as a full KRL subroutine. + + Export the trajectory as a full KRL subroutine. + Export the trajectory as a full KRL subroutine. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Insert a Kuka IR125 into the document. + + Insert a Kuka IR125 into the document. + Insert a Kuka IR125 into the document. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Insert a Kuka IR16 into the document. + + Insert a Kuka IR16 into the document. + Insert a Kuka IR16 into the document. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Insert a Kuka IR210 into the document. + + Insert a Kuka IR210 into the document. + Insert a Kuka IR210 into the document. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Insert a Kuka IR500 into the document. + + Insert a Kuka IR500 into the document. + Insert a Kuka IR500 into the document. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Wstaw na TrajektoriÄ™ + + Insert in trajectory + Wstaw na TrajektoriÄ™ - Insert robot Tool location into trajectory - Insert robot Tool location into trajectory + + Insert robot Tool location into trajectory + Insert robot Tool location into trajectory - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Wstaw na TrajektoriÄ™ + + Insert in trajectory + Wstaw na TrajektoriÄ™ - Insert preselection position into trajectory (W) - Insert preselection position into trajectory (W) + + Insert preselection position into trajectory (W) + Insert preselection position into trajectory (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Move to home + + + Move to home + Move to home - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Ustaw domyÅ›lnÄ… orientacjÄ™ + + Set default orientation + Ustaw domyÅ›lnÄ… orientacjÄ™ - set the default orientation for subsequent commands for waypoint creation - set the default orientation for subsequent commands for waypoint creation + + set the default orientation for subsequent commands for waypoint creation + set the default orientation for subsequent commands for waypoint creation - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Set default values + + Set default values + Set default values - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Set the home position + + + Set the home position + Set the home position - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Symulacja Trajektorii + + Simulate a trajectory + Symulacja Trajektorii - Run a simulation on a trajectory - Run a simulation on a trajectory + + Run a simulation on a trajectory + Run a simulation on a trajectory - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Trajectory compound... + + Trajectory compound... + Trajectory compound... - Group and connect some trajectories to one - Group and connect some trajectories to one + + Group and connect some trajectories to one + Group and connect some trajectories to one - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Dress up trajectory... + + Dress up trajectory... + Dress up trajectory... - Create a dress up object which overide som aspects of a trajectory - Create a dress up object which overide som aspects of a trajectory + + Create a dress up object which overide som aspects of a trajectory + Create a dress up object which overide som aspects of a trajectory - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - NarzÄ™dzia Trajektoria + + Trajectory tools + NarzÄ™dzia Trajektoria - Robot tools - NarzÄ™dzia Robot + + Robot tools + NarzÄ™dzia Robot - Insert Robot - Wstaw Robot + + Insert Robot + Wstaw Robot - - + + QObject - - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + + + + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select one Robot and one Trajectory object. - Select one Robot and one Trajectory object. + + + + + + Select one Robot and one Trajectory object. + Select one Robot and one Trajectory object. - Trajectory not valid - NiewÅ‚aÅ›ciwa Trajektoria + + Trajectory not valid + NiewÅ‚aÅ›ciwa Trajektoria - You need at least two way points in a trajectory to simulate. - You need at least two way points in a trajectory to simulate. + + You need at least two way points in a trajectory to simulate. + You need at least two way points in a trajectory to simulate. - - KRL file(*.src) - Plik KRL (*. src) + + + KRL file(*.src) + Plik KRL (*. src) - All Files (*.*) - Wszystkie pliki (*.*) + + + All Files (*.*) + Wszystkie pliki (*.*) - Export program - Eksport programu + + + Export program + Eksport programu - - Select one robot and one shape or VRML object. - Select one robot and one shape or VRML object. + + Select one robot and one shape or VRML object. + Select one robot and one shape or VRML object. - - No preselection - No preselection + + No preselection + No preselection - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - - Select one Robot to set home postion - Select one Robot to set home postion + + Select one Robot to set home postion + Select one Robot to set home postion - Select one Robot - Select one Robot + + Select one Robot + Select one Robot - - Select one Trajectory object. - Zaznacz jeden obiekt Trajektoria + + + Select one Trajectory object. + Zaznacz jeden obiekt Trajektoria - set default speed - set default speed + + set default speed + set default speed - speed: (e.g. 1 m/s or 3 cm/s) - speed: (e.g. 1 m/s or 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + speed: (e.g. 1 m/s or 3 cm/s) - set default continuity - set default continuity + + set default continuity + set default continuity - continuous ? - continuous ? + + continuous ? + continuous ? - set default acceleration - Ustaw domyÅ›lne przyÅ›pieszenie + + set default acceleration + Ustaw domyÅ›lne przyÅ›pieszenie - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - No robot files installed + + No robot files installed + No robot files installed - Please visit %1 and copy the files to %2 - Please visit %1 and copy the files to %2 + + Please visit %1 and copy the files to %2 + Please visit %1 and copy the files to %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Symulacja + + Simulation + Symulacja - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Typ + + Type + Typ - Name - Nazwa + + Name + Nazwa - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Form + + Form + Form - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - NarzÄ™dzie: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + NarzÄ™dzie: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Form + + Form + Form - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Typ + + Type + Typ - Name - Nazwa + + Name + Nazwa - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trajectory + + Trajectory + Trajectory - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Dress Up Parameter + + Dress Up Parameter + Dress Up Parameter - - + + TaskEdge2TracParameter - - Form - Form + + Form + Form - Hide / Show - Ukryj / Pokaż + + Hide / Show + Ukryj / Pokaż - Edges: 0 - Edges: 0 + + Edges: 0 + Edges: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Sizing Value: + + Sizing Value: + Sizing Value: - Use orientation of edge - Użyj orientacji krawÄ™dzi + + Use orientation of edge + Użyj orientacji krawÄ™dzi - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Form + + Form + Form - X+ - X + + + X+ + X + - Y+ - Y + + + Y+ + Y + - Z+ - Z + + + Z+ + Z + - A+ - A + + + A+ + A + - B+ - B + + + B+ + B + - C+ - C + + + C+ + C + - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Tool 0 + + Tool 0 + Tool 0 - Tool - NarzÄ™dzie + + Tool + NarzÄ™dzie - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - World + + World + World + + + + 50mm / 5° + 50mm / 5 ° + + + + 20mm / 2° + 20mm / 2 ° + + + + 10mm / 1° + 10mm / 1 ° + + + + 5mm / 0.5° + 5mm / 0,5 ° + + + + 1mm / 0.1° + 1 mm / 0,1 ° - 50mm / 5° - 50mm / 5 ° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20mm / 2 ° - - - 10mm / 1° - 10mm / 1 ° - - - 5mm / 0.5° - 5mm / 0,5 ° - - - 1mm / 0.1° - 1 mm / 0,1 ° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Form + + Form + Form - clear - Wyczyść + + clear + Wyczyść - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Trajectory + Trajectory + Trajectory - - + + TaskTrajectoryDressUpParameter - - Form - Form + + Form + Form - Speed & Acceleration: - PrÄ™dkość & PrzyÅ›pieszenie: + + Speed & Acceleration: + PrÄ™dkość & PrzyÅ›pieszenie: - Speed: - PrÄ™dkość: + + Speed: + PrÄ™dkość: - Use - Użyj + + + Use + Użyj - Accel: - PrzyÅ›p.: + + Accel: + PrzyÅ›p.: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - Continues + + Continues + Continues - Discontinues - Discontinues + + Discontinues + Discontinues - Position and Orientation: - Pozycja & Orientacja: + + Position and Orientation: + Pozycja & Orientacja: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Nie zmieniaj Pozycji & Orientacji + + Don't change Position & Orientation + Nie zmieniaj Pozycji & Orientacji - Use Orientation - Użyj orientacji + + Use Orientation + Użyj orientacji - Add Position - Dodaj pozycjÄ™ + + Add Position + Dodaj pozycjÄ™ - Add Orientation - Dodaj orientacjÄ™ + + Add Orientation + Dodaj orientacjÄ™ - Dress Up Parameter - Dress Up Parameter + Dress Up Parameter + Dress Up Parameter - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Insert Robots + + Insert Robots + Insert Robots - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Eksport Trajektorii + + Export trajectory + Eksport Trajektorii - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_pt.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_pt.ts index 24beb9708..311a426e8 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_pt.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_pt.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robô + + Robot + Robô - Add tool - Adicionar a ferramenta + + Add tool + Adicionar a ferramenta - Add a tool shape to the robot - Adicionar uma ferramenta de forma ao robô + + Add a tool shape to the robot + Adicionar uma ferramenta de forma ao robô - - + + CmdRobotConstraintAxle - - Robot - Robô + + Robot + Robô - Place robot... - Colocar robô... + + Place robot... + Colocar robô... - Place a robot (experimental!) - Colocar um robô (experimental!) + + Place a robot (experimental!) + Colocar um robô (experimental!) - - + + CmdRobotCreateTrajectory - - Robot - Robô + + Robot + Robô - Create trajectory - Criar trajetória + + Create trajectory + Criar trajetória - Create a new empty trajectory - Criar uma nova trajetória vazia + + Create a new empty trajectory + Criar uma nova trajetória vazia - - + + CmdRobotEdge2Trac - Robot - Robô + + Robot + Robô - Edge to Trajectory... - Aresta para trajetória... + + Edge to Trajectory... + Aresta para trajetória... - Generate a Trajectory from a set of edges - Gerar uma trajetória a partir de um conjunto de arestas + + Generate a Trajectory from a set of edges + Gerar uma trajetória a partir de um conjunto de arestas - - + + CmdRobotExportKukaCompact - - Robot - Robô + + Robot + Robô - Kuka compact subroutine... - Kuka sub-rotina compacta ... + + Kuka compact subroutine... + Kuka sub-rotina compacta ... - Export the trajectory as a compact KRL subroutine. - Exporte a trajetória como uma sub-rotina KRL compacta. + + Export the trajectory as a compact KRL subroutine. + Exporte a trajetória como uma sub-rotina KRL compacta. - - + + CmdRobotExportKukaFull - Robot - Robô + + Robot + Robô - Kuka full subroutine... - KUKA sub-rotina completa... + + Kuka full subroutine... + KUKA sub-rotina completa... - Export the trajectory as a full KRL subroutine. - Exporte a trajetória como uma sub-rotina KRL completa. + + Export the trajectory as a full KRL subroutine. + Exporte a trajetória como uma sub-rotina KRL completa. - - + + CmdRobotInsertKukaIR125 - - Robot - Robô + + Robot + Robô - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Inserir um Kuka IR125 no documento. + + Insert a Kuka IR125 into the document. + Inserir um Kuka IR125 no documento. - - + + CmdRobotInsertKukaIR16 - Robot - Robô + + Robot + Robô - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Inserir um Kuka IR16 no documento. + + Insert a Kuka IR16 into the document. + Inserir um Kuka IR16 no documento. - - + + CmdRobotInsertKukaIR210 - Robot - Robô + + Robot + Robô - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Inserir um Kuka IR210 no documento. + + Insert a Kuka IR210 into the document. + Inserir um Kuka IR210 no documento. - - + + CmdRobotInsertKukaIR500 - Robot - Robô + + Robot + Robô - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Inserir um Kuka IR500 no documento. + + Insert a Kuka IR500 into the document. + Inserir um Kuka IR500 no documento. - - + + CmdRobotInsertWaypoint - - Robot - Robô + + Robot + Robô - Insert in trajectory - Inserir na trajetória + + Insert in trajectory + Inserir na trajetória - Insert robot Tool location into trajectory - Inserir localização de ferramenta de robô na trajetória + + Insert robot Tool location into trajectory + Inserir localização de ferramenta de robô na trajetória - - + + CmdRobotInsertWaypointPreselect - Robot - Robô + + Robot + Robô - Insert in trajectory - Inserir na trajetória + + Insert in trajectory + Inserir na trajetória - Insert preselection position into trajectory (W) - Inserir posição da pre-seleção na trajetória (W) + + Insert preselection position into trajectory (W) + Inserir posição da pre-seleção na trajetória (W) - - + + CmdRobotRestoreHomePos - - Robot - Robô + + Robot + Robô - Move to home - Mover para a posição inicial + + + Move to home + Mover para a posição inicial - - + + CmdRobotSetDefaultOrientation - - Robot - Robô + + Robot + Robô - Set default orientation - Definir a orientação padrão + + Set default orientation + Definir a orientação padrão - set the default orientation for subsequent commands for waypoint creation - definir a orientação padrão para os comandos subsequentes para a criação de waypoint + + set the default orientation for subsequent commands for waypoint creation + definir a orientação padrão para os comandos subsequentes para a criação de waypoint - - + + CmdRobotSetDefaultValues - Robot - Robô + + Robot + Robô - Set default values - Definir valores padrão + + Set default values + Definir valores padrão - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Defina os valores padrão para a velocidade, aceleração e continuidade para comandos subsequentes de criação de waypoint + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Defina os valores padrão para a velocidade, aceleração e continuidade para comandos subsequentes de criação de waypoint - - + + CmdRobotSetHomePos - - Robot - Robô + + Robot + Robô - Set the home position - Definir a posição inicial + + + Set the home position + Definir a posição inicial - - + + CmdRobotSimulate - Robot - Robô + + Robot + Robô - Simulate a trajectory - Simular uma trajetória + + Simulate a trajectory + Simular uma trajetória - Run a simulation on a trajectory - Executar uma simulação sobre uma trajetória + + Run a simulation on a trajectory + Executar uma simulação sobre uma trajetória - - + + CmdRobotTrajectoryCompound - - Robot - Robô + + Robot + Robô - Trajectory compound... - Composto de trajetória... + + Trajectory compound... + Composto de trajetória... - Group and connect some trajectories to one - Agrupar e conectar algumas trajetórias a uma + + Group and connect some trajectories to one + Agrupar e conectar algumas trajetórias a uma - - + + CmdRobotTrajectoryDressUp - Robot - Robô + + Robot + Robô - Dress up trajectory... - Vestir trajetória... + + Dress up trajectory... + Vestir trajetória... - Create a dress up object which overide som aspects of a trajectory - Criar um vestimento que substitui os aspectos de som de uma trajetória + + Create a dress up object which overide som aspects of a trajectory + Criar um vestimento que substitui os aspectos de som de uma trajetória - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Ferramentas de trajetória + + Trajectory tools + Ferramentas de trajetória - Robot tools - Ferramentas de robô + + Robot tools + Ferramentas de robô - Insert Robot - Inserir Robô + + Insert Robot + Inserir Robô - - + + QObject - - Wrong selection - Seleção errada + + + + + + + + + + + + Wrong selection + Seleção errada - Select one Robot and one Trajectory object. - Selecione um robô e uma trajetória. + + + + + + Select one Robot and one Trajectory object. + Selecione um robô e uma trajetória. - Trajectory not valid - A trajetória não é válida + + Trajectory not valid + A trajetória não é válida - You need at least two way points in a trajectory to simulate. - Você precisa de pelo menos dois pontos para simular uma trajetória. + + You need at least two way points in a trajectory to simulate. + Você precisa de pelo menos dois pontos para simular uma trajetória. - - KRL file(*.src) - Arquivo KRL (*.src) + + + KRL file(*.src) + Arquivo KRL (*.src) - All Files (*.*) - Todos os arquivos (*.*) + + + All Files (*.*) + Todos os arquivos (*.*) - Export program - Exportar programa + + + Export program + Exportar programa - - Select one robot and one shape or VRML object. - Selecione um robô e uma forma ou objeto VRML. + + Select one robot and one shape or VRML object. + Selecione um robô e uma forma ou objeto VRML. - - No preselection - Nenhuma preseleção + + No preselection + Nenhuma preseleção - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Coloque o mouse em cima de um objeto (preseleção) para usar este comando. Veja a documentação para mais detalhes. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Coloque o mouse em cima de um objeto (preseleção) para usar este comando. Veja a documentação para mais detalhes. - - Select one Robot to set home postion - Selecione um robô para definir a posição de origem + + Select one Robot to set home postion + Selecione um robô para definir a posição de origem - Select one Robot - Selecione um robô + + Select one Robot + Selecione um robô - - Select one Trajectory object. - Selecione um objeto de trajetória. + + + Select one Trajectory object. + Selecione um objeto de trajetória. - set default speed - Definir a velocidade padrão + + set default speed + Definir a velocidade padrão - speed: (e.g. 1 m/s or 3 cm/s) - Velocidade: (por exemplo, 1 m/s ou 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + Velocidade: (por exemplo, 1 m/s ou 3 cm/s) - set default continuity - Definir continuidade padrão + + set default continuity + Definir continuidade padrão - continuous ? - Contínuo ? + + continuous ? + Contínuo ? - set default acceleration - Definir aceleração padrão + + set default acceleration + Definir aceleração padrão - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - Aceleração: (por exemplo, 1 m/s^2 ou 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + Aceleração: (por exemplo, 1 m/s^2 ou 3 cm/s^2) - Select the Trajectory which you want to dress up. - Selecione a trajetória que você deseja vestir. + + Select the Trajectory which you want to dress up. + Selecione a trajetória que você deseja vestir. - - No robot files installed - Nenhum arquivo de robô instalado + + No robot files installed + Nenhum arquivo de robô instalado - Please visit %1 and copy the files to %2 - Por favor, visite %1 e copie os arquivos para %2 + + Please visit %1 and copy the files to %2 + Por favor, visite %1 e copie os arquivos para %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulação + + Simulation + Simulação - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Tipo + + Type + Tipo - Name - Nome + + Name + Nome - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Forma + + Form + Forma - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Ferramenta: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Ferramenta: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - 6EixosRobôTarefas + + TaskRobot6Axis + 6EixosRobôTarefas - - + + RobotGui::TaskRobotControl - - TaskRobotControl - ControleRobôTarefas + + TaskRobotControl + ControleRobôTarefas - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - MensagensRobôTarefas + + TaskRobotMessages + MensagensRobôTarefas - - + + RobotGui::TaskTrajectory - - Form - Forma + + Form + Forma - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Tipo + + Type + Tipo - Name - Nome + + Name + Nome - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Trajetória + + Trajectory + Trajetória - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Parâmetro de vestimento + + Dress Up Parameter + Parâmetro de vestimento - - + + TaskEdge2TracParameter - - Form - Forma + + Form + Forma - Hide / Show - Ocultar / Mostrar + + Hide / Show + Ocultar / Mostrar - Edges: 0 - Arestas: 0 + + Edges: 0 + Arestas: 0 - Cluster: 0 - Cluster: 0 + + Cluster: 0 + Cluster: 0 - Sizing Value: - Valor de dimensionamento: + + Sizing Value: + Valor de dimensionamento: - Use orientation of edge - Utiliza a orientação da aresta + + Use orientation of edge + Utiliza a orientação da aresta - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - 6EixosRobôTarefas + TaskRobot6Axis + 6EixosRobôTarefas - - + + TaskRobotControl - - Form - Forma + + Form + Forma - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Ferramenta 0 + + Tool 0 + Ferramenta 0 - Tool - Ferramenta + + Tool + Ferramenta - Base 0 - Base 0 + + Base 0 + Base 0 - Base - Base + + Base + Base - World - Mundo + + World + Mundo + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + ControleRobôTarefas - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - ControleRobôTarefas - - - + + TaskRobotMessages - - Form - Forma + + Form + Forma - clear - limpar + + clear + limpar - TaskRobotMessages - MensagensRobôTarefas + TaskRobotMessages + MensagensRobôTarefas - - + + TaskTrajectory - Trajectory - Trajetória + Trajectory + Trajetória - - + + TaskTrajectoryDressUpParameter - - Form - Forma + + Form + Forma - Speed & Acceleration: - Velocidade e aceleração: + + Speed & Acceleration: + Velocidade e aceleração: - Speed: - Velocidade: + + Speed: + Velocidade: - Use - Uso + + + Use + Uso - Accel: - Acel: + + Accel: + Acel: - Don't change Cont - Não altere Cont + + Don't change Cont + Não altere Cont - Continues - Continua + + Continues + Continua - Discontinues - Interrompe + + Discontinues + Interrompe - Position and Orientation: - Posição e orientação: + + Position and Orientation: + Posição e orientação: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Não alterar a posição & orientação + + Don't change Position & Orientation + Não alterar a posição & orientação - Use Orientation - Utilizar a orientação + + Use Orientation + Utilizar a orientação - Add Position - Adicionar posição + + Add Position + Adicionar posição - Add Orientation - Adicionar orientação + + Add Orientation + Adicionar orientação - Dress Up Parameter - Parâmetro de vestimento + Dress Up Parameter + Parâmetro de vestimento - - + + Workbench - - Robot - Robô + + Robot + Robô - Insert Robots - Inserir robôs + + Insert Robots + Inserir robôs - &Robot - &Robô + + &Robot + &Robô - Export trajectory - Exportar trajetória + + Export trajectory + Exportar trajetória - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_ru.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_ru.ts index 21e3acc0e..f7326548f 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_ru.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_ru.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Робот + + Robot + Робот - Add tool - Добавить инÑтрумент + + Add tool + Добавить инÑтрумент - Add a tool shape to the robot - Добавить правило Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð° + + Add a tool shape to the robot + Добавить правило Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð° - - + + CmdRobotConstraintAxle - - Robot - Робот + + Robot + Робот - Place robot... - МеÑто робота ... + + Place robot... + МеÑто робота ... - Place a robot (experimental!) - МеÑто робота (временно!) + + Place a robot (experimental!) + МеÑто робота (временно!) - - + + CmdRobotCreateTrajectory - - Robot - Робот + + Robot + Робот - Create trajectory - Создание траектории + + Create trajectory + Создание траектории - Create a new empty trajectory - Создайте новую траекторию + + Create a new empty trajectory + Создайте новую траекторию - - + + CmdRobotEdge2Trac - Robot - Робот + + Robot + Робот - Edge to Trajectory... - Край траектории... + + Edge to Trajectory... + Край траектории... - Generate a Trajectory from a set of edges - Создать траекторию из ребер + + Generate a Trajectory from a set of edges + Создать траекторию из ребер - - + + CmdRobotExportKukaCompact - - Robot - Робот + + Robot + Робот - Kuka compact subroutine... - Ð¡Ð¶Ð°Ñ‚Ð°Ñ Ð¿Ð¾Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Kuka... + + Kuka compact subroutine... + Ð¡Ð¶Ð°Ñ‚Ð°Ñ Ð¿Ð¾Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Kuka... - Export the trajectory as a compact KRL subroutine. - ЭкÑпорт траектории в Ñжатую KRL-подпрограмму. + + Export the trajectory as a compact KRL subroutine. + ЭкÑпорт траектории в Ñжатую KRL-подпрограмму. - - + + CmdRobotExportKukaFull - Robot - Робот + + Robot + Робот - Kuka full subroutine... - ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Kuka... + + Kuka full subroutine... + ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° Kuka... - Export the trajectory as a full KRL subroutine. - ЭкÑпортировать траекторию как полноправную KRL-подпрограмму. + + Export the trajectory as a full KRL subroutine. + ЭкÑпортировать траекторию как полноправную KRL-подпрограмму. - - + + CmdRobotInsertKukaIR125 - - Robot - Робот + + Robot + Робот - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - ВнеÑти IR125 Кuka в документ. + + Insert a Kuka IR125 into the document. + ВнеÑти IR125 Кuka в документ. - - + + CmdRobotInsertKukaIR16 - Robot - Робот + + Robot + Робот - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - ВнеÑти IR16 Кuka в документ. + + Insert a Kuka IR16 into the document. + ВнеÑти IR16 Кuka в документ. - - + + CmdRobotInsertKukaIR210 - Robot - Робот + + Robot + Робот - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - ВнеÑти IR500 Кuka в документ. + + Insert a Kuka IR210 into the document. + ВнеÑти IR500 Кuka в документ. - - + + CmdRobotInsertKukaIR500 - Robot - Робот + + Robot + Робот - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - ВнеÑти IR500 Кuka в документ. + + Insert a Kuka IR500 into the document. + ВнеÑти IR500 Кuka в документ. - - + + CmdRobotInsertWaypoint - - Robot - Робот + + Robot + Робот - Insert in trajectory - Ð’Ñтавьте в траекторию + + Insert in trajectory + Ð’Ñтавьте в траекторию - Insert robot Tool location into trajectory - Ð’Ñтавьте меÑтоположение робота на траектории + + Insert robot Tool location into trajectory + Ð’Ñтавьте меÑтоположение робота на траектории - - + + CmdRobotInsertWaypointPreselect - Robot - Робот + + Robot + Робот - Insert in trajectory - Ð’Ñтавьте в траекторию + + Insert in trajectory + Ð’Ñтавьте в траекторию - Insert preselection position into trajectory (W) - Ð’Ñтавте предварительную позицию на траектории (W) + + Insert preselection position into trajectory (W) + Ð’Ñтавте предварительную позицию на траектории (W) - - + + CmdRobotRestoreHomePos - - Robot - Робот + + Robot + Робот - Move to home - Перейти на главную + + + Move to home + Перейти на главную - - + + CmdRobotSetDefaultOrientation - - Robot - Робот + + Robot + Робот - Set default orientation - УÑтановить ориентацию по умолчанию + + Set default orientation + УÑтановить ориентацию по умолчанию - set the default orientation for subsequent commands for waypoint creation - Задайте ориентацию по умолчанию Ð´Ð»Ñ Ð¿Ð¾Ñледующих команд Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ + + set the default orientation for subsequent commands for waypoint creation + Задайте ориентацию по умолчанию Ð´Ð»Ñ Ð¿Ð¾Ñледующих команд Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ - - + + CmdRobotSetDefaultValues - Robot - Робот + + Robot + Робот - Set default values - УÑтановка значений по умолчанию + + Set default values + УÑтановка значений по умолчанию - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - УÑтановка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию Ð´Ð»Ñ ÑкороÑти, уÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¸ целоÑтноÑти Ð´Ð»Ñ Ð¿Ð¾Ñледующих команд ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + УÑтановка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию Ð´Ð»Ñ ÑкороÑти, уÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¸ целоÑтноÑти Ð´Ð»Ñ Ð¿Ð¾Ñледующих команд ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ - - + + CmdRobotSetHomePos - - Robot - Робот + + Robot + Робот - Set the home position - УÑтановить в иÑходное положение + + + Set the home position + УÑтановить в иÑходное положение - - + + CmdRobotSimulate - Robot - Робот + + Robot + Робот - Simulate a trajectory - Моделирование траектории + + Simulate a trajectory + Моделирование траектории - Run a simulation on a trajectory - Смоделировать на траектории + + Run a simulation on a trajectory + Смоделировать на траектории - - + + CmdRobotTrajectoryCompound - - Robot - Робот + + Robot + Робот - Trajectory compound... - Ð¢Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ... + + Trajectory compound... + Ð¢Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ... - Group and connect some trajectories to one - Группировать и подключить траекторий в одну + + Group and connect some trajectories to one + Группировать и подключить траекторий в одну - - + + CmdRobotTrajectoryDressUp - Robot - Робот + + Robot + Робот - Dress up trajectory... - Dress up траекторию... + + Dress up trajectory... + Dress up траекторию... - Create a dress up object which overide som aspects of a trajectory - Создать dress up объект, который overide som аÑпекты траектории + + Create a dress up object which overide som aspects of a trajectory + Создать dress up объект, который overide som аÑпекты траектории - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - ИнÑтрументы Ð´Ð»Ñ Ñ‚Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ + + Trajectory tools + ИнÑтрументы Ð´Ð»Ñ Ñ‚Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ - Robot tools - Робот инÑтрументы + + Robot tools + Робот инÑтрументы - Insert Robot - Ð’Ñтавьте Робот + + Insert Robot + Ð’Ñтавьте Робот - - + + QObject - - Wrong selection - Ðеверный выбор + + + + + + + + + + + + Wrong selection + Ðеверный выбор - Select one Robot and one Trajectory object. - Выберите уÑтройÑтво и траекторию движениÑ. + + + + + + Select one Robot and one Trajectory object. + Выберите уÑтройÑтво и траекторию движениÑ. - Trajectory not valid - Ð¢Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ дейÑтвительна + + Trajectory not valid + Ð¢Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ дейÑтвительна - You need at least two way points in a trajectory to simulate. - Вам нужно Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ две точки, чтобы Ñмоделировать траекторию. + + You need at least two way points in a trajectory to simulate. + Вам нужно Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ две точки, чтобы Ñмоделировать траекторию. - - KRL file(*.src) - KRL файл (*. src) + + + KRL file(*.src) + KRL файл (*. src) - All Files (*.*) - Ð’Ñе файлы (*.*) + + + All Files (*.*) + Ð’Ñе файлы (*.*) - Export program - ЭкÑÐ¿Ð¾Ñ€Ñ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° + + + Export program + ЭкÑÐ¿Ð¾Ñ€Ñ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° - - Select one robot and one shape or VRML object. - Выберите один робот и одну фигуру или объект VRML. + + Select one robot and one shape or VRML object. + Выберите один робот и одну фигуру или объект VRML. - - No preselection - Ðе выбрано + + No preselection + Ðе выбрано - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Чтобы иÑпользовать данную команду, наведите курÑор на выбранную фигуру. См. документацию. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Чтобы иÑпользовать данную команду, наведите курÑор на выбранную фигуру. См. документацию. - - Select one Robot to set home postion - Выберите домашнюю позицию одного из роботов + + Select one Robot to set home postion + Выберите домашнюю позицию одного из роботов - Select one Robot - Выберите одного робота + + Select one Robot + Выберите одного робота - - Select one Trajectory object. - Выделите один объект Ñ Ñ‚Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸ÐµÐ¹. + + + Select one Trajectory object. + Выделите один объект Ñ Ñ‚Ñ€Ð°ÐµÐºÑ‚Ð¾Ñ€Ð¸ÐµÐ¹. - set default speed - уÑтановить ÑкороÑть по умолчанию + + set default speed + уÑтановить ÑкороÑть по умолчанию - speed: (e.g. 1 m/s or 3 cm/s) - ÑкороÑть: (3 Ñм/Ñ Ð¸Ð»Ð¸ 1 м/Ñ) + + speed: (e.g. 1 m/s or 3 cm/s) + ÑкороÑть: (3 Ñм/Ñ Ð¸Ð»Ð¸ 1 м/Ñ) - set default continuity - уÑтановить целоÑтноÑть по умолчанию + + set default continuity + уÑтановить целоÑтноÑть по умолчанию - continuous ? - продолжительноÑть ? + + continuous ? + продолжительноÑть ? - set default acceleration - УÑтановка уÑкорение по умолчанию + + set default acceleration + УÑтановка уÑкорение по умолчанию - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - уÑкорение: (например, 1 м/Ñ ^ 2 или 3 Ñм/Ñ ^ 2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + уÑкорение: (например, 1 м/Ñ ^ 2 или 3 Ñм/Ñ ^ 2) - Select the Trajectory which you want to dress up. - Выберите траекторию, которую вы хотите оформить. + + Select the Trajectory which you want to dress up. + Выберите траекторию, которую вы хотите оформить. - - No robot files installed - Ðет уÑтановленных файлов робота + + No robot files installed + Ðет уÑтановленных файлов робота - Please visit %1 and copy the files to %2 - ПожалуйÑта, поÑетите %1 и Ñкопируйте файлы в %2 + + Please visit %1 and copy the files to %2 + ПожалуйÑта, поÑетите %1 и Ñкопируйте файлы в %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - СимулÑÑ†Ð¸Ñ + + Simulation + СимулÑÑ†Ð¸Ñ - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Тип + + Type + Тип - Name - Ðазвание + + Name + Ðазвание - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Форма + + Form + Форма - A1 - Ð1 + + A1 + Ð1 - A2 - Ð2 + + A2 + Ð2 - A3 - Ð3 + + A3 + Ð3 - A4 - Ð4 + + A4 + Ð4 - A5 - Ð5 + + A5 + Ð5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - ИнÑтрумент: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + ИнÑтрумент: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - задание Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñей + + TaskRobot6Axis + задание Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñей - - + + RobotGui::TaskRobotControl - - TaskRobotControl - задание автоматичеÑкого ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ + + TaskRobotControl + задание автоматичеÑкого ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - Ñоздание автоматичеÑкого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + + TaskRobotMessages + Ñоздание автоматичеÑкого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ - - + + RobotGui::TaskTrajectory - - Form - Форма + + Form + Форма - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 Ð¼Ñ + + 10 ms + 10 Ð¼Ñ - 50 ms - 50 Ð¼Ñ + + 50 ms + 50 Ð¼Ñ - 100 ms - 100 Ð¼Ñ + + 100 ms + 100 Ð¼Ñ - 500 ms - 500 Ð¼Ñ + + 500 ms + 500 Ð¼Ñ - 1 s - 1 Ñ + + 1 s + 1 Ñ - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Поз: (200.23, 300.23, 400.23, 234, 343, 343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Поз: (200.23, 300.23, 400.23, 234, 343, 343) - Type - Тип + + Type + Тип - Name - Ðазвание + + Name + Ðазвание - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Траектории + + Trajectory + Траектории - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Dress Up Параметр + + Dress Up Parameter + Dress Up Параметр - - + + TaskEdge2TracParameter - - Form - Форма + + Form + Форма - Hide / Show - Скрыть / Показать + + Hide / Show + Скрыть / Показать - Edges: 0 - Краев: 0 + + Edges: 0 + Краев: 0 - Cluster: 0 - КлаÑтеров: 0 + + Cluster: 0 + КлаÑтеров: 0 - Sizing Value: - Калибровка значений: + + Sizing Value: + Калибровка значений: - Use orientation of edge - ИÑпользуйте ориентацию ÐºÑ€Ð°Ñ + + Use orientation of edge + ИÑпользуйте ориентацию ÐºÑ€Ð°Ñ - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - задание Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñей + TaskRobot6Axis + задание Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñей - - + + TaskRobotControl - - Form - Форма + + Form + Форма - X+ - X + + + X+ + X + - Y+ - Y + + + Y+ + Y + - Z+ - Z + + + Z+ + Z + - A+ - A + + + A+ + A + - B+ - B + + + B+ + B + - C+ - C + + + C+ + C + - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - ИнÑтрумент 0 + + Tool 0 + ИнÑтрумент 0 - Tool - ИнÑтрумент + + Tool + ИнÑтрумент - Base 0 - База 0 + + Base 0 + База 0 - Base - ОÑнование + + Base + ОÑнование - World - окружение + + World + окружение + + + + 50mm / 5° + 50 мм/5 ° + + + + 20mm / 2° + 20mm / 2 ° + + + + 10mm / 1° + 10 мм / 1 ° + + + + 5mm / 0.5° + 5 мм / 0,5 ° + + + + 1mm / 0.1° + 1 мм / 0,1 ° - 50mm / 5° - 50 мм/5 ° + TaskRobotControl + задание автоматичеÑкого ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - - 20mm / 2° - 20mm / 2 ° - - - 10mm / 1° - 10 мм / 1 ° - - - 5mm / 0.5° - 5 мм / 0,5 ° - - - 1mm / 0.1° - 1 мм / 0,1 ° - - - TaskRobotControl - задание автоматичеÑкого ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ - - - + + TaskRobotMessages - - Form - Форма + + Form + Форма - clear - очиÑтить + + clear + очиÑтить - TaskRobotMessages - Ñоздание автоматичеÑкого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ + TaskRobotMessages + Ñоздание автоматичеÑкого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ - - + + TaskTrajectory - Trajectory - Траектории + Trajectory + Траектории - - + + TaskTrajectoryDressUpParameter - - Form - Форма + + Form + Форма - Speed & Acceleration: - СкороÑть и уÑкорение: + + Speed & Acceleration: + СкороÑть и уÑкорение: - Speed: - СкороÑть: + + Speed: + СкороÑть: - Use - ИÑпользуйте + + + Use + ИÑпользуйте - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Ðе изменÑть продолжение + + Don't change Cont + Ðе изменÑть продолжение - Continues - ПродолжаетÑÑ + + Continues + ПродолжаетÑÑ - Discontinues - Прекращает + + Discontinues + Прекращает - Position and Orientation: - ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð¸ ориентациÑ: + + Position and Orientation: + ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð¸ ориентациÑ: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ðе менÑть положение и ориентацию + + Don't change Position & Orientation + Ðе менÑть положение и ориентацию - Use Orientation - ИÑпользовать ориентацию + + Use Orientation + ИÑпользовать ориентацию - Add Position - Добавить позицию + + Add Position + Добавить позицию - Add Orientation - Добавить ориентацию + + Add Orientation + Добавить ориентацию - Dress Up Parameter - Dress Up Параметр + Dress Up Parameter + Dress Up Параметр - - + + Workbench - - Robot - Робот + + Robot + Робот - Insert Robots - Ð’Ñтавить роботов + + Insert Robots + Ð’Ñтавить роботов - &Robot - И робот + + &Robot + И робот - Export trajectory - ЭкÑпорт траектории + + Export trajectory + ЭкÑпорт траектории - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_se.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_se.ts index 21d0f5071..17e6de2bc 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_se.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_se.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Robot + + Robot + Robot - Add tool - Lägg till verktyg + + Add tool + Lägg till verktyg - Add a tool shape to the robot - Lägg till en verktygsform till roboten + + Add a tool shape to the robot + Lägg till en verktygsform till roboten - - + + CmdRobotConstraintAxle - - Robot - Robot + + Robot + Robot - Place robot... - Placera roboten ... + + Place robot... + Placera roboten ... - Place a robot (experimental!) - Placera en robot (experimentell!) + + Place a robot (experimental!) + Placera en robot (experimentell!) - - + + CmdRobotCreateTrajectory - - Robot - Robot + + Robot + Robot - Create trajectory - Skapa bana + + Create trajectory + Skapa bana - Create a new empty trajectory - Skapa en ny tom bana + + Create a new empty trajectory + Skapa en ny tom bana - - + + CmdRobotEdge2Trac - Robot - Robot + + Robot + Robot - Edge to Trajectory... - Kant till bana... + + Edge to Trajectory... + Kant till bana... - Generate a Trajectory from a set of edges - Generera en bana frÃ¥n en uppsättning med kanter + + Generate a Trajectory from a set of edges + Generera en bana frÃ¥n en uppsättning med kanter - - + + CmdRobotExportKukaCompact - - Robot - Robot + + Robot + Robot - Kuka compact subroutine... - KUKA kompakt subrutin ... + + Kuka compact subroutine... + KUKA kompakt subrutin ... - Export the trajectory as a compact KRL subroutine. - Exportera banan som en kompakt KRL subrutin. + + Export the trajectory as a compact KRL subroutine. + Exportera banan som en kompakt KRL subrutin. - - + + CmdRobotExportKukaFull - Robot - Robot + + Robot + Robot - Kuka full subroutine... - fullständig KUKA subrutin ... + + Kuka full subroutine... + fullständig KUKA subrutin ... - Export the trajectory as a full KRL subroutine. - Exportera banan som en fullständig KRL subrutin. + + Export the trajectory as a full KRL subroutine. + Exportera banan som en fullständig KRL subrutin. - - + + CmdRobotInsertKukaIR125 - - Robot - Robot + + Robot + Robot - Kuka IR125 - KUKA IR125 + + Kuka IR125 + KUKA IR125 - Insert a Kuka IR125 into the document. - Sätt in en Kuka IR125 i dokumentet. + + Insert a Kuka IR125 into the document. + Sätt in en Kuka IR125 i dokumentet. - - + + CmdRobotInsertKukaIR16 - Robot - Robot + + Robot + Robot - Kuka IR16 - KUKA IR16 + + Kuka IR16 + KUKA IR16 - Insert a Kuka IR16 into the document. - Sätt in en Kuka IR16 i dokumentet. + + Insert a Kuka IR16 into the document. + Sätt in en Kuka IR16 i dokumentet. - - + + CmdRobotInsertKukaIR210 - Robot - Robot + + Robot + Robot - Kuka IR210 - KUKA IR210 + + Kuka IR210 + KUKA IR210 - Insert a Kuka IR210 into the document. - Sätt in en Kuka IR210 i dokumentet. + + Insert a Kuka IR210 into the document. + Sätt in en Kuka IR210 i dokumentet. - - + + CmdRobotInsertKukaIR500 - Robot - Robot + + Robot + Robot - Kuka IR500 - KUKA IR500 + + Kuka IR500 + KUKA IR500 - Insert a Kuka IR500 into the document. - Sätt in en Kuka IR500 i dokumentet. + + Insert a Kuka IR500 into the document. + Sätt in en Kuka IR500 i dokumentet. - - + + CmdRobotInsertWaypoint - - Robot - Robot + + Robot + Robot - Insert in trajectory - Sätt in i bana + + Insert in trajectory + Sätt in i bana - Insert robot Tool location into trajectory - Infoga robotverktygets plats i banan + + Insert robot Tool location into trajectory + Infoga robotverktygets plats i banan - - + + CmdRobotInsertWaypointPreselect - Robot - Robot + + Robot + Robot - Insert in trajectory - Sätt in i bana + + Insert in trajectory + Sätt in i bana - Insert preselection position into trajectory (W) - Infoga förvalsposition till banan (W) + + Insert preselection position into trajectory (W) + Infoga förvalsposition till banan (W) - - + + CmdRobotRestoreHomePos - - Robot - Robot + + Robot + Robot - Move to home - Flytta till hemposition + + + Move to home + Flytta till hemposition - - + + CmdRobotSetDefaultOrientation - - Robot - Robot + + Robot + Robot - Set default orientation - Ange standard orientering + + Set default orientation + Ange standard orientering - set the default orientation for subsequent commands for waypoint creation - Ange standardorienteringen för efterföljande kommandon för skapande av banpunkter + + set the default orientation for subsequent commands for waypoint creation + Ange standardorienteringen för efterföljande kommandon för skapande av banpunkter - - + + CmdRobotSetDefaultValues - Robot - Robot + + Robot + Robot - Set default values - Ange standardvärden + + Set default values + Ange standardvärden - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Ange standardvärden för hastighet, acceleration och kontinuitet för efterföljande kommandon för banpunkter + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Ange standardvärden för hastighet, acceleration och kontinuitet för efterföljande kommandon för banpunkter - - + + CmdRobotSetHomePos - - Robot - Robot + + Robot + Robot - Set the home position - Ställ hemposition + + + Set the home position + Ställ hemposition - - + + CmdRobotSimulate - Robot - Robot + + Robot + Robot - Simulate a trajectory - Simulera en bana + + Simulate a trajectory + Simulera en bana - Run a simulation on a trajectory - Kör en simulering pÃ¥ en bana + + Run a simulation on a trajectory + Kör en simulering pÃ¥ en bana - - + + CmdRobotTrajectoryCompound - - Robot - Robot + + Robot + Robot - Trajectory compound... - Sammansatt bana... + + Trajectory compound... + Sammansatt bana... - Group and connect some trajectories to one - Gruppera och anslut vissa banor till en + + Group and connect some trajectories to one + Gruppera och anslut vissa banor till en - - + + CmdRobotTrajectoryDressUp - Robot - Robot + + Robot + Robot - Dress up trajectory... - Klä upp banan... + + Dress up trajectory... + Klä upp banan... - Create a dress up object which overide som aspects of a trajectory - Skapa ett klä upp objekt som Ã¥sidosätter vissa aspekter av en bana + + Create a dress up object which overide som aspects of a trajectory + Skapa ett klä upp objekt som Ã¥sidosätter vissa aspekter av en bana - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Banverktyg + + Trajectory tools + Banverktyg - Robot tools - Robot verktyg + + Robot tools + Robot verktyg - Insert Robot - Sätt in Robot + + Insert Robot + Sätt in Robot - - + + QObject - - Wrong selection - Fel val + + + + + + + + + + + + Wrong selection + Fel val - Select one Robot and one Trajectory object. - Välj en robot och ett banobjekt. + + + + + + Select one Robot and one Trajectory object. + Välj en robot och ett banobjekt. - Trajectory not valid - Banan inte giltig + + Trajectory not valid + Banan inte giltig - You need at least two way points in a trajectory to simulate. - Du behöver minst tvÃ¥ vägpunkter i en bana för att simulera. + + You need at least two way points in a trajectory to simulate. + Du behöver minst tvÃ¥ vägpunkter i en bana för att simulera. - - KRL file(*.src) - KRL-fil (*.src) + + + KRL file(*.src) + KRL-fil (*.src) - All Files (*.*) - Alla filer (*.*) + + + All Files (*.*) + Alla filer (*.*) - Export program - Exportera programmet + + + Export program + Exportera programmet - - Select one robot and one shape or VRML object. - Välj en robot och en form eller ett VRML objekt. + + Select one robot and one shape or VRML object. + Välj en robot och en form eller ett VRML objekt. - - No preselection - Inga förval + + No preselection + Inga förval - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - Du mÃ¥ste sväva ovanför en geometri (Förval) med musen för att använda detta kommando. Se dokumentationen för detaljer. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + Du mÃ¥ste sväva ovanför en geometri (Förval) med musen för att använda detta kommando. Se dokumentationen för detaljer. - - Select one Robot to set home postion - Välj en robot för att ställa in hempositionen + + Select one Robot to set home postion + Välj en robot för att ställa in hempositionen - Select one Robot - Välj en Robot + + Select one Robot + Välj en Robot - - Select one Trajectory object. - Välj ett banobjekt. + + + Select one Trajectory object. + Välj ett banobjekt. - set default speed - Ange standardhastighet + + set default speed + Ange standardhastighet - speed: (e.g. 1 m/s or 3 cm/s) - hastighet: (t.ex. 1 m/s eller 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + hastighet: (t.ex. 1 m/s eller 3 cm/s) - set default continuity - Ange standardkontinuitet + + set default continuity + Ange standardkontinuitet - continuous ? - Kontinuerlig? + + continuous ? + Kontinuerlig? - set default acceleration - Ange standardacceleration + + set default acceleration + Ange standardacceleration - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - acceleration: (t.ex. 1 m/s^2 eller 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + acceleration: (t.ex. 1 m/s^2 eller 3 cm/s^2) - Select the Trajectory which you want to dress up. - Markera banan som du vill klä upp. + + Select the Trajectory which you want to dress up. + Markera banan som du vill klä upp. - - No robot files installed - Inga robotfiler installerade + + No robot files installed + Inga robotfiler installerade - Please visit %1 and copy the files to %2 - Besök %1 och kopiera filerna till %2 + + Please visit %1 and copy the files to %2 + Besök %1 och kopiera filerna till %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - Simulering + + Simulation + Simulering - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Typ + + Type + Typ - Name - Namn + + Name + Namn - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Form + + Form + Form - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - Verktyg: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + Verktyg: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - Uppgift 6-axlad robot + + TaskRobot6Axis + Uppgift 6-axlad robot - - + + RobotGui::TaskRobotControl - - TaskRobotControl - Uppgift Robotkontroll + + TaskRobotControl + Uppgift Robotkontroll - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - Uppgift Robot meddelanden + + TaskRobotMessages + Uppgift Robot meddelanden - - + + RobotGui::TaskTrajectory - - Form - Form + + Form + Form - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Typ + + Type + Typ - Name - Namn + + Name + Namn - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Rörelsebana + + Trajectory + Rörelsebana - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Klä upp Parameter + + Dress Up Parameter + Klä upp Parameter - - + + TaskEdge2TracParameter - - Form - Form + + Form + Form - Hide / Show - Dölj / Visa + + Hide / Show + Dölj / Visa - Edges: 0 - Kanter: 0 + + Edges: 0 + Kanter: 0 - Cluster: 0 - Kluster: 0 + + Cluster: 0 + Kluster: 0 - Sizing Value: - Storleksguide Värde: + + Sizing Value: + Storleksguide Värde: - Use orientation of edge - Använd orientering av kanten + + Use orientation of edge + Använd orientering av kanten - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - Uppgift 6-axlad robot + TaskRobot6Axis + Uppgift 6-axlad robot - - + + TaskRobotControl - - Form - Form + + Form + Form - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - Verktyg 0 + + Tool 0 + Verktyg 0 - Tool - Verktyg + + Tool + Verktyg - Base 0 - Bas 0 + + Base 0 + Bas 0 - Base - Bas + + Base + Bas - World - Värld + + World + Värld + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0,5° + + + + 1mm / 0.1° + 1mm / 0,1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + Uppgift Robotkontroll - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0,5° - - - 1mm / 0.1° - 1mm / 0,1° - - - TaskRobotControl - Uppgift Robotkontroll - - - + + TaskRobotMessages - - Form - Form + + Form + Form - clear - Rensa + + clear + Rensa - TaskRobotMessages - Uppgift Robot meddelanden + TaskRobotMessages + Uppgift Robot meddelanden - - + + TaskTrajectory - Trajectory - Rörelsebana + Trajectory + Rörelsebana - - + + TaskTrajectoryDressUpParameter - - Form - Form + + Form + Form - Speed & Acceleration: - Hastighet & Acceleration: + + Speed & Acceleration: + Hastighet & Acceleration: - Speed: - Hastighet: + + Speed: + Hastighet: - Use - Använd + + + Use + Använd - Accel: - Acceleration: + + Accel: + Acceleration: - Don't change Cont - Ändra inte forts + + Don't change Cont + Ändra inte forts - Continues - Fortsätter + + Continues + Fortsätter - Discontinues - Upphör + + Discontinues + Upphör - Position and Orientation: - Position och orientering: + + Position and Orientation: + Position och orientering: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ändra inte position och orientering + + Don't change Position & Orientation + Ändra inte position och orientering - Use Orientation - Använd Orientering + + Use Orientation + Använd Orientering - Add Position - Lägg till position + + Add Position + Lägg till position - Add Orientation - Lägg till Orientering + + Add Orientation + Lägg till Orientering - Dress Up Parameter - Klä upp Parameter + Dress Up Parameter + Klä upp Parameter - - + + Workbench - - Robot - Robot + + Robot + Robot - Insert Robots - Infoga robotar + + Insert Robots + Infoga robotar - &Robot - &Robot + + &Robot + &Robot - Export trajectory - Exportera bana + + Export trajectory + Exportera bana - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_uk.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_uk.ts index ab8d1848a..1c2eb3ab9 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_uk.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_uk.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - Робот + + Robot + Робот - Add tool - Додати інÑтрумент + + Add tool + Додати інÑтрумент - Add a tool shape to the robot - Додати інÑтрумент форми до робота + + Add a tool shape to the robot + Додати інÑтрумент форми до робота - - + + CmdRobotConstraintAxle - - Robot - Робот + + Robot + Робот - Place robot... - РозміÑтити робота ... + + Place robot... + РозміÑтити робота ... - Place a robot (experimental!) - РозміÑтити робота (екÑпериментально!) + + Place a robot (experimental!) + РозміÑтити робота (екÑпериментально!) - - + + CmdRobotCreateTrajectory - - Robot - Робот + + Robot + Робот - Create trajectory - Створити траєкторію + + Create trajectory + Створити траєкторію - Create a new empty trajectory - Створити нову порожню траєкторію + + Create a new empty trajectory + Створити нову порожню траєкторію - - + + CmdRobotEdge2Trac - Robot - Робот + + Robot + Робот - Edge to Trajectory... - Ребра в Траєкторію... + + Edge to Trajectory... + Ребра в Траєкторію... - Generate a Trajectory from a set of edges - Генерувати Траєкторію із вÑтановлених ребер + + Generate a Trajectory from a set of edges + Генерувати Траєкторію із вÑтановлених ребер - - + + CmdRobotExportKukaCompact - - Robot - Робот + + Robot + Робот - Kuka compact subroutine... - Компактна підпрограма Kuka... + + Kuka compact subroutine... + Компактна підпрограма Kuka... - Export the trajectory as a compact KRL subroutine. - ЕкÑпортувати траєкторію Ñк компактну KRL підпрограму. + + Export the trajectory as a compact KRL subroutine. + ЕкÑпортувати траєкторію Ñк компактну KRL підпрограму. - - + + CmdRobotExportKukaFull - Robot - Робот + + Robot + Робот - Kuka full subroutine... - Повна підпрограма Kuka... + + Kuka full subroutine... + Повна підпрограма Kuka... - Export the trajectory as a full KRL subroutine. - ЕкÑпортувати траєкторію Ñк повну KRL підпрограму. + + Export the trajectory as a full KRL subroutine. + ЕкÑпортувати траєкторію Ñк повну KRL підпрограму. - - + + CmdRobotInsertKukaIR125 - - Robot - Робот + + Robot + Робот - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - Ð’Ñтавити Kuka IR125 в документ. + + Insert a Kuka IR125 into the document. + Ð’Ñтавити Kuka IR125 в документ. - - + + CmdRobotInsertKukaIR16 - Robot - Робот + + Robot + Робот - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - Ð’Ñтавити Kuka IR16 в документ. + + Insert a Kuka IR16 into the document. + Ð’Ñтавити Kuka IR16 в документ. - - + + CmdRobotInsertKukaIR210 - Robot - Робот + + Robot + Робот - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - Ð’Ñтавити Kuka IR210 в документ. + + Insert a Kuka IR210 into the document. + Ð’Ñтавити Kuka IR210 в документ. - - + + CmdRobotInsertKukaIR500 - Robot - Робот + + Robot + Робот - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - Ð’Ñтавити Kuka IR500 в документ. + + Insert a Kuka IR500 into the document. + Ð’Ñтавити Kuka IR500 в документ. - - + + CmdRobotInsertWaypoint - - Robot - Робот + + Robot + Робот - Insert in trajectory - Ð’Ñтавити в траєкторію + + Insert in trajectory + Ð’Ñтавити в траєкторію - Insert robot Tool location into trajectory - Ð’Ñтавте інÑтрумент Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð° на траєкторії + + Insert robot Tool location into trajectory + Ð’Ñтавте інÑтрумент Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð° на траєкторії - - + + CmdRobotInsertWaypointPreselect - Robot - Робот + + Robot + Робот - Insert in trajectory - Ð’Ñтавити в траєкторію + + Insert in trajectory + Ð’Ñтавити в траєкторію - Insert preselection position into trajectory (W) - Ð’Ñтавити попередньо обрану позицію в траєкторію (W) + + Insert preselection position into trajectory (W) + Ð’Ñтавити попередньо обрану позицію в траєкторію (W) - - + + CmdRobotRestoreHomePos - - Robot - Робот + + Robot + Робот - Move to home - РухатиÑÑŒ до домівки + + + Move to home + РухатиÑÑŒ до домівки - - + + CmdRobotSetDefaultOrientation - - Robot - Робот + + Robot + Робот - Set default orientation - Ð’Ñтановити Ñтандартну орієнтацію + + Set default orientation + Ð’Ñтановити Ñтандартну орієнтацію - set the default orientation for subsequent commands for waypoint creation - Ð’Ñтановіть Ñтандартну орієнтацію Ð´Ð»Ñ Ð½Ð°Ñтупних команд Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº маршруту + + set the default orientation for subsequent commands for waypoint creation + Ð’Ñтановіть Ñтандартну орієнтацію Ð´Ð»Ñ Ð½Ð°Ñтупних команд Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº маршруту - - + + CmdRobotSetDefaultValues - Robot - Робот + + Robot + Робот - Set default values - Ð’Ñтановити Ñтандартні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ + + Set default values + Ð’Ñтановити Ñтандартні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - Ð’Ñтановити Ñтандартні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ñті, приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° поÑлідовноÑті Ð´Ð»Ñ Ð½Ð°Ñтупних команд Ð´Ð»Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð¸ точок маршруту + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + Ð’Ñтановити Ñтандартні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ñті, приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° поÑлідовноÑті Ð´Ð»Ñ Ð½Ð°Ñтупних команд Ð´Ð»Ñ Ð¿Ð¾Ð±ÑƒÐ´Ð¾Ð²Ð¸ точок маршруту - - + + CmdRobotSetHomePos - - Robot - Робот + + Robot + Робот - Set the home position - Ð’Ñтановити у вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ + + + Set the home position + Ð’Ñтановити у вихідне Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ - - + + CmdRobotSimulate - Robot - Робот + + Robot + Робот - Simulate a trajectory - ÐœÐ¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ— + + Simulate a trajectory + ÐœÐ¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ— - Run a simulation on a trajectory - Виконати Ð¼Ð¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° траєкторії + + Run a simulation on a trajectory + Виконати Ð¼Ð¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð° траєкторії - - + + CmdRobotTrajectoryCompound - - Robot - Робот + + Robot + Робот - Trajectory compound... - Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ—... + + Trajectory compound... + Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ—... - Group and connect some trajectories to one - Ð“Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкий траєкторій в одну + + Group and connect some trajectories to one + Ð“Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´ÐµÑкий траєкторій в одну - - + + CmdRobotTrajectoryDressUp - Robot - Робот + + Robot + Робот - Dress up trajectory... - ОдÑгнути траєкторію ... + + Dress up trajectory... + ОдÑгнути траєкторію ... - Create a dress up object which overide som aspects of a trajectory - Create a dress up object which overide som aspects of a trajectory + + Create a dress up object which overide som aspects of a trajectory + Create a dress up object which overide som aspects of a trajectory - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - Trajectory tools + + Trajectory tools + Trajectory tools - Robot tools - Robot tools + + Robot tools + Robot tools - Insert Robot - Insert Robot + + Insert Robot + Insert Robot - - + + QObject - - Wrong selection - Ðевірний вибір + + + + + + + + + + + + Wrong selection + Ðевірний вибір - Select one Robot and one Trajectory object. - Виберіть один робот Ñ– одну траєкторію об'єкта. + + + + + + Select one Robot and one Trajectory object. + Виберіть один робот Ñ– одну траєкторію об'єкта. - Trajectory not valid - Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð½Ðµ дійÑна + + Trajectory not valid + Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ Ð½Ðµ дійÑна - You need at least two way points in a trajectory to simulate. - Вам потрібно щонайменше дві точки на траєкторії Ð´Ð»Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ. + + You need at least two way points in a trajectory to simulate. + Вам потрібно щонайменше дві точки на траєкторії Ð´Ð»Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ. - - KRL file(*.src) - KRL файл(*.src) + + + KRL file(*.src) + KRL файл(*.src) - All Files (*.*) - Ð’ÑÑ– файли (*.*) + + + All Files (*.*) + Ð’ÑÑ– файли (*.*) - Export program - ЕкÑпорт програми + + + Export program + ЕкÑпорт програми - - Select one robot and one shape or VRML object. - Виберіть один робот Ñ– одну форму або VRML об'єкт. + + Select one robot and one shape or VRML object. + Виберіть один робот Ñ– одну форму або VRML об'єкт. - - No preselection - Ðічого не вибрано + + No preselection + Ðічого не вибрано - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - - Select one Robot to set home postion - Оберіть одного з роботів щоб вÑтановити домашню позицію + + Select one Robot to set home postion + Оберіть одного з роботів щоб вÑтановити домашню позицію - Select one Robot - Оберіть одного Робота + + Select one Robot + Оберіть одного Робота - - Select one Trajectory object. - Оберіть одну Траєкторію об’єкта. + + + Select one Trajectory object. + Оберіть одну Траєкторію об’єкта. - set default speed - Ð’Ñтановити Ñтандартну швидкіÑть + + set default speed + Ð’Ñтановити Ñтандартну швидкіÑть - speed: (e.g. 1 m/s or 3 cm/s) - швидкіÑть: (напр. 1 м/Ñ Ð°Ð±Ð¾ 3 Ñм/Ñ) + + speed: (e.g. 1 m/s or 3 cm/s) + швидкіÑть: (напр. 1 м/Ñ Ð°Ð±Ð¾ 3 Ñм/Ñ) - set default continuity - Ð’Ñтановити Ñтандартну поÑлідовніÑть + + set default continuity + Ð’Ñтановити Ñтандартну поÑлідовніÑть - continuous ? - поÑлідовніÑть ? + + continuous ? + поÑлідовніÑть ? - set default acceleration - Ð’Ñтановити Ñтандартне приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ + + set default acceleration + Ð’Ñтановити Ñтандартне приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - приÑкореннÑ: (напр. 1 м/Ñ^2 або 3 Ñм/Ñ^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + приÑкореннÑ: (напр. 1 м/Ñ^2 або 3 Ñм/Ñ^2) - Select the Trajectory which you want to dress up. - Select the Trajectory which you want to dress up. + + Select the Trajectory which you want to dress up. + Select the Trajectory which you want to dress up. - - No robot files installed - Файли робота не вÑтановлено + + No robot files installed + Файли робота не вÑтановлено - Please visit %1 and copy the files to %2 - Будь лаÑка, відвідайте %1 та Ñкопіюйте файли до %2 + + Please visit %1 and copy the files to %2 + Будь лаÑка, відвідайте %1 та Ñкопіюйте файли до %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - ÐœÐ¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ + + Simulation + ÐœÐ¾Ð´ÐµÐ»ÑŽÐ²Ð°Ð½Ð½Ñ - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - Тип + + Type + Тип - Name - Ðазва + + Name + Ðазва - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - TaskEdge2TracParameter + + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + RobotGui::TaskRobot6Axis - - Form - Форма + + Form + Форма - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - ІнÑтрумент: (0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + ІнÑтрумент: (0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - TaskRobot6Axis + + TaskRobot6Axis + TaskRobot6Axis - - + + RobotGui::TaskRobotControl - - TaskRobotControl - TaskRobotControl + + TaskRobotControl + TaskRobotControl - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - TaskRobotMessages + + TaskRobotMessages + TaskRobotMessages - - + + RobotGui::TaskTrajectory - - Form - Форма + + Form + Форма - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 Ð¼Ñ + + 10 ms + 10 Ð¼Ñ - 50 ms - 50 Ð¼Ñ + + 50 ms + 50 Ð¼Ñ - 100 ms - 100 Ð¼Ñ + + 100 ms + 100 Ð¼Ñ - 500 ms - 500 Ð¼Ñ + + 500 ms + 500 Ð¼Ñ - 1 s - 1 Ñ + + 1 s + 1 Ñ - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - Поз: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + Поз: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - Тип + + Type + Тип - Name - Ðазва + + Name + Ðазва - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ + + Trajectory + Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - Параметри ОдÑÐ³Ð°Ð½Ð½Ñ + + Dress Up Parameter + Параметри ОдÑÐ³Ð°Ð½Ð½Ñ - - + + TaskEdge2TracParameter - - Form - Форма + + Form + Форма - Hide / Show - Сховати / Показати + + Hide / Show + Сховати / Показати - Edges: 0 - Краї: 0 + + Edges: 0 + Краї: 0 - Cluster: 0 - КлаÑтер: 0 + + Cluster: 0 + КлаÑтер: 0 - Sizing Value: - Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: + + Sizing Value: + Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ°Ð»Ñ–Ð±Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: - Use orientation of edge - Use orientation of edge + + Use orientation of edge + Use orientation of edge - TaskEdge2TracParameter - TaskEdge2TracParameter + TaskEdge2TracParameter + TaskEdge2TracParameter - - + + TaskRobot6Axis - TaskRobot6Axis - TaskRobot6Axis + TaskRobot6Axis + TaskRobot6Axis - - + + TaskRobotControl - - Form - Форма + + Form + Форма - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - ІнÑтрумент 0 + + Tool 0 + ІнÑтрумент 0 - Tool - ІнÑтрумент + + Tool + ІнÑтрумент - Base 0 - ОÑнова 0 + + Base 0 + ОÑнова 0 - Base - ОÑнова + + Base + ОÑнова - World - Світ + + World + Світ + + + + 50mm / 5° + 50мм / 5° + + + + 20mm / 2° + 20мм / 2° + + + + 10mm / 1° + 10мм / 1° + + + + 5mm / 0.5° + 5мм / 0.5° + + + + 1mm / 0.1° + 1мм / 0.1° - 50mm / 5° - 50мм / 5° + TaskRobotControl + TaskRobotControl - - 20mm / 2° - 20мм / 2° - - - 10mm / 1° - 10мм / 1° - - - 5mm / 0.5° - 5мм / 0.5° - - - 1mm / 0.1° - 1мм / 0.1° - - - TaskRobotControl - TaskRobotControl - - - + + TaskRobotMessages - - Form - Форма + + Form + Форма - clear - очиÑтити + + clear + очиÑтити - TaskRobotMessages - TaskRobotMessages + TaskRobotMessages + TaskRobotMessages - - + + TaskTrajectory - Trajectory - Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ + Trajectory + Ð¢Ñ€Ð°Ñ”ÐºÑ‚Ð¾Ñ€Ñ–Ñ - - + + TaskTrajectoryDressUpParameter - - Form - Форма + + Form + Форма - Speed & Acceleration: - ШвидкіÑть та ПриÑкореннÑ: + + Speed & Acceleration: + ШвидкіÑть та ПриÑкореннÑ: - Speed: - ШвидкіÑть: + + Speed: + ШвидкіÑть: - Use - Вжити + + + Use + Вжити - Accel: - Accel: + + Accel: + Accel: - Don't change Cont - Don't change Cont + + Don't change Cont + Don't change Cont - Continues - ПродовжуєтьÑÑ + + Continues + ПродовжуєтьÑÑ - Discontinues - ПрипинÑєтьÑÑ + + Discontinues + ПрипинÑєтьÑÑ - Position and Orientation: - ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ñ‚Ð° ОрієнтаціÑ: + + Position and Orientation: + ÐŸÐ¾Ð·Ð¸Ñ†Ñ–Ñ Ñ‚Ð° ОрієнтаціÑ: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - Ðе змінювати Позицію та Орієнтацію + + Don't change Position & Orientation + Ðе змінювати Позицію та Орієнтацію - Use Orientation - ВикориÑтовувати Орієнтацію + + Use Orientation + ВикориÑтовувати Орієнтацію - Add Position - Додати Позицію + + Add Position + Додати Позицію - Add Orientation - Додати Орієнтацію + + Add Orientation + Додати Орієнтацію - Dress Up Parameter - Параметри ОдÑÐ³Ð°Ð½Ð½Ñ + Dress Up Parameter + Параметри ОдÑÐ³Ð°Ð½Ð½Ñ - - + + Workbench - - Robot - Робот + + Robot + Робот - Insert Robots - Ð’Ñтавити роботів + + Insert Robots + Ð’Ñтавити роботів - &Robot - &Робот + + &Robot + &Робот - Export trajectory - ЕкÑпорт траєкторії + + Export trajectory + ЕкÑпорт траєкторії - + diff --git a/src/Mod/Robot/Gui/Resources/translations/Robot_zh.ts b/src/Mod/Robot/Gui/Resources/translations/Robot_zh.ts index 706404e6d..265c6a5fd 100644 --- a/src/Mod/Robot/Gui/Resources/translations/Robot_zh.ts +++ b/src/Mod/Robot/Gui/Resources/translations/Robot_zh.ts @@ -1,877 +1,1044 @@ - - + + CmdRobotAddToolShape - - Robot - 机器人 + + Robot + 机器人 - Add tool - 新增工具 + + Add tool + 新增工具 - Add a tool shape to the robot - 将工具形状添加到机器人 + + Add a tool shape to the robot + 将工具形状添加到机器人 - - + + CmdRobotConstraintAxle - - Robot - 机器人 + + Robot + 机器人 - Place robot... - 机器人区域... + + Place robot... + 机器人区域... - Place a robot (experimental!) - 放置机器人(实验!) + + Place a robot (experimental!) + 放置机器人(实验!) - - + + CmdRobotCreateTrajectory - - Robot - 机器人 + + Robot + 机器人 - Create trajectory - 创建轨迹 + + Create trajectory + 创建轨迹 - Create a new empty trajectory - 创建新的空轨迹 + + Create a new empty trajectory + 创建新的空轨迹 - - + + CmdRobotEdge2Trac - Robot - 机器人 + + Robot + 机器人 - Edge to Trajectory... - 边缘到轨迹... + + Edge to Trajectory... + 边缘到轨迹... - Generate a Trajectory from a set of edges - 从一组边生æˆè½¨è¿¹ + + Generate a Trajectory from a set of edges + 从一组边生æˆè½¨è¿¹ - - + + CmdRobotExportKukaCompact - - Robot - 机器人 + + Robot + 机器人 - Kuka compact subroutine... - Kuka压缩å­ä¾‹ç¨‹... + + Kuka compact subroutine... + Kuka压缩å­ä¾‹ç¨‹... - Export the trajectory as a compact KRL subroutine. - 导出轨迹为压缩 KRL å­ä¾‹ç¨‹. + + Export the trajectory as a compact KRL subroutine. + 导出轨迹为压缩 KRL å­ä¾‹ç¨‹. - - + + CmdRobotExportKukaFull - Robot - 机器人 + + Robot + 机器人 - Kuka full subroutine... - Kuka完整å­ä¾‹ç¨‹... + + Kuka full subroutine... + Kuka完整å­ä¾‹ç¨‹... - Export the trajectory as a full KRL subroutine. - 导出轨迹为完整 KRL å­ä¾‹ç¨‹. + + Export the trajectory as a full KRL subroutine. + 导出轨迹为完整 KRL å­ä¾‹ç¨‹. - - + + CmdRobotInsertKukaIR125 - - Robot - 机器人 + + Robot + 机器人 - Kuka IR125 - Kuka IR125 + + Kuka IR125 + Kuka IR125 - Insert a Kuka IR125 into the document. - å°†Kuka IR125导入文档. + + Insert a Kuka IR125 into the document. + å°†Kuka IR125导入文档. - - + + CmdRobotInsertKukaIR16 - Robot - 机器人 + + Robot + 机器人 - Kuka IR16 - Kuka IR16 + + Kuka IR16 + Kuka IR16 - Insert a Kuka IR16 into the document. - å°†Kuka IR16导入文档. + + Insert a Kuka IR16 into the document. + å°†Kuka IR16导入文档. - - + + CmdRobotInsertKukaIR210 - Robot - 机器人 + + Robot + 机器人 - Kuka IR210 - Kuka IR210 + + Kuka IR210 + Kuka IR210 - Insert a Kuka IR210 into the document. - å°†Kuka IR210导入文档. + + Insert a Kuka IR210 into the document. + å°†Kuka IR210导入文档. - - + + CmdRobotInsertKukaIR500 - Robot - 机器人 + + Robot + 机器人 - Kuka IR500 - Kuka IR500 + + Kuka IR500 + Kuka IR500 - Insert a Kuka IR500 into the document. - å°†Kuka IR500导入文档. + + Insert a Kuka IR500 into the document. + å°†Kuka IR500导入文档. - - + + CmdRobotInsertWaypoint - - Robot - 机器人 + + Robot + 机器人 - Insert in trajectory - 在轨迹中æ’å…¥ + + Insert in trajectory + 在轨迹中æ’å…¥ - Insert robot Tool location into trajectory - 导入机器人工具ä½ç½®åˆ°è½¨è¿¹ + + Insert robot Tool location into trajectory + 导入机器人工具ä½ç½®åˆ°è½¨è¿¹ - - + + CmdRobotInsertWaypointPreselect - Robot - 机器人 + + Robot + 机器人 - Insert in trajectory - 在轨迹中æ’å…¥ + + Insert in trajectory + 在轨迹中æ’å…¥ - Insert preselection position into trajectory (W) - 预选ä½ç½®æ’入轨迹(W) + + Insert preselection position into trajectory (W) + 预选ä½ç½®æ’入轨迹(W) - - + + CmdRobotRestoreHomePos - - Robot - 机器人 + + Robot + 机器人 - Move to home - 移动到åˆå§‹ + + + Move to home + 移动到åˆå§‹ - - + + CmdRobotSetDefaultOrientation - - Robot - 机器人 + + Robot + 机器人 - Set default orientation - è®¾ç½®é»˜è®¤æ–¹å‘ + + Set default orientation + è®¾ç½®é»˜è®¤æ–¹å‘ - set the default orientation for subsequent commands for waypoint creation - 为åŽç»­åˆ›å»ºè·¯å¾„ç‚¹å‘½ä»¤è®¾ç½®é»˜è®¤æ–¹å‘ + + set the default orientation for subsequent commands for waypoint creation + 为åŽç»­åˆ›å»ºè·¯å¾„ç‚¹å‘½ä»¤è®¾ç½®é»˜è®¤æ–¹å‘ - - + + CmdRobotSetDefaultValues - Robot - 机器人 + + Robot + 机器人 - Set default values - 设置默认值 + + Set default values + 设置默认值 - set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation - 为åŽç»­åˆ›å»ºè·¯å¾„点命令设置默认速度,加速度和连续性 + + set the default values for speed, acceleration and continuity for subsequent commands of waypoint creation + 为åŽç»­åˆ›å»ºè·¯å¾„点命令设置默认速度,加速度和连续性 - - + + CmdRobotSetHomePos - - Robot - 机器人 + + Robot + 机器人 - Set the home position - 设置åˆå§‹ä½ç½® + + + Set the home position + 设置åˆå§‹ä½ç½® - - + + CmdRobotSimulate - Robot - 机器人 + + Robot + 机器人 - Simulate a trajectory - 模拟轨迹 + + Simulate a trajectory + 模拟轨迹 - Run a simulation on a trajectory - 在轨迹上模拟 + + Run a simulation on a trajectory + 在轨迹上模拟 - - + + CmdRobotTrajectoryCompound - - Robot - 机器人 + + Robot + 机器人 - Trajectory compound... - å¤åˆè½¨è¿¹... + + Trajectory compound... + å¤åˆè½¨è¿¹... - Group and connect some trajectories to one - 将轨迹组åˆå¹¶è¿žæŽ¥æˆä¸€ä¸ª + + Group and connect some trajectories to one + 将轨迹组åˆå¹¶è¿žæŽ¥æˆä¸€ä¸ª - - + + CmdRobotTrajectoryDressUp - Robot - 机器人 + + Robot + 机器人 - Dress up trajectory... - 修饰轨迹... + + Dress up trajectory... + 修饰轨迹... - Create a dress up object which overide som aspects of a trajectory - 为轨迹é‡è½½åˆ›å»ºä¸€ä¸ªä¿®é¥°å¯¹è±¡ + + Create a dress up object which overide som aspects of a trajectory + 为轨迹é‡è½½åˆ›å»ºä¸€ä¸ªä¿®é¥°å¯¹è±¡ - - + + Gui::TaskView::TaskWatcherCommands - - Trajectory tools - 轨迹工具 + + Trajectory tools + 轨迹工具 - Robot tools - 机器人工具 + + Robot tools + 机器人工具 - Insert Robot - æ’入机器人 + + Insert Robot + æ’入机器人 - - + + QObject - - Wrong selection - 选择错误 + + + + + + + + + + + + Wrong selection + 选择错误 - Select one Robot and one Trajectory object. - 选择一个机器人和一个轨迹对象. + + + + + + Select one Robot and one Trajectory object. + 选择一个机器人和一个轨迹对象. - Trajectory not valid - 无效轨迹 + + Trajectory not valid + 无效轨迹 - You need at least two way points in a trajectory to simulate. - 你至少需è¦ä¸¤ä¸ªè·¯å¾„点以进行轨迹模拟. + + You need at least two way points in a trajectory to simulate. + 你至少需è¦ä¸¤ä¸ªè·¯å¾„点以进行轨迹模拟. - - KRL file(*.src) - KRL文件(*.src) + + + KRL file(*.src) + KRL文件(*.src) - All Files (*.*) - 所有文件(*.*) + + + All Files (*.*) + 所有文件(*.*) - Export program - å¯¼å‡ºç¨‹åº + + + Export program + å¯¼å‡ºç¨‹åº - - Select one robot and one shape or VRML object. - 选择一个机器人和一个形状或VRML对象. + + Select one robot and one shape or VRML object. + 选择一个机器人和一个形状或VRML对象. - - No preselection - 无预选 + + No preselection + 无预选 - You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. - 您必须悬åœé¼ æ ‡äºŽ(预选)几何体以使用该命令.详情请å‚考文档. + + You have to hover above a geometry (Preselection) with the mouse to use this command. See documentation for details. + 您必须悬åœé¼ æ ‡äºŽ(预选)几何体以使用该命令.详情请å‚考文档. - - Select one Robot to set home postion - 选中一个机器人并设置åˆå§‹ä½ç½® + + Select one Robot to set home postion + 选中一个机器人并设置åˆå§‹ä½ç½® - Select one Robot - 选择一个机器人 + + Select one Robot + 选择一个机器人 - - Select one Trajectory object. - 选择一个轨迹对象. + + + Select one Trajectory object. + 选择一个轨迹对象. - set default speed - 设置默认速度 + + set default speed + 设置默认速度 - speed: (e.g. 1 m/s or 3 cm/s) - 速度: (如 1 m/s 或 3 cm/s) + + speed: (e.g. 1 m/s or 3 cm/s) + 速度: (如 1 m/s 或 3 cm/s) - set default continuity - 设置默认连续性 + + set default continuity + 设置默认连续性 - continuous ? - 连续的? + + continuous ? + 连续的? - set default acceleration - 设置默认加速度 + + set default acceleration + 设置默认加速度 - acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) - 加速度: (如 1 m/s^2 或 3 cm/s^2) + + acceleration: (e.g. 1 m/s^2 or 3 cm/s^2) + 加速度: (如 1 m/s^2 或 3 cm/s^2) - Select the Trajectory which you want to dress up. - 选择您è¦éµå¾ªçš„轨迹. + + Select the Trajectory which you want to dress up. + 选择您è¦éµå¾ªçš„轨迹. - - No robot files installed - 未安装机器人文件 + + No robot files installed + 未安装机器人文件 - Please visit %1 and copy the files to %2 - 请访问 %1 å¹¶å¤åˆ¶æ–‡ä»¶åˆ° %2 + + Please visit %1 and copy the files to %2 + 请访问 %1 å¹¶å¤åˆ¶æ–‡ä»¶åˆ° %2 - - + + RobotGui::DlgTrajectorySimulate - - Simulation - 模拟 + + Simulation + 模拟 - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - Type - 类型 + + Type + 类型 - Name - åç§° + + Name + åç§° - C - C + + C + C - V - V + + V + V - A - A + + A + A - - + + RobotGui::TaskEdge2TracParameter - - TaskEdge2TracParameter - è¾¹è½¬è½¨è¿¹ä»»åŠ¡å‚æ•° + + TaskEdge2TracParameter + è¾¹è½¬è½¨è¿¹ä»»åŠ¡å‚æ•° - - + + RobotGui::TaskRobot6Axis - - Form - 窗体 + + Form + 窗体 - A1 - A1 + + A1 + A1 - A2 - A2 + + A2 + A2 - A3 - A3 + + A3 + A3 - A4 - A4 + + A4 + A4 - A5 - A5 + + A5 + A5 - A6 - A6 + + A6 + A6 - TCP: (200.23,300.23,400.23,234,343,343) - TCP: (200.23,300.23,400.23,234,343,343) + + TCP: (200.23,300.23,400.23,234,343,343) + TCP: (200.23,300.23,400.23,234,343,343) - Tool: (0,0,400,0,0,0) - 工具:(0,0,400,0,0,0) + + Tool: (0,0,400,0,0,0) + 工具:(0,0,400,0,0,0) - ... - ... + + ... + ... - - TaskRobot6Axis - 机器人6轴任务 + + TaskRobot6Axis + 机器人6轴任务 - - + + RobotGui::TaskRobotControl - - TaskRobotControl - 任务机器人控制 + + TaskRobotControl + 任务机器人控制 - - + + RobotGui::TaskRobotMessages - - TaskRobotMessages - 机器人信æ¯ä»»åŠ¡ + + TaskRobotMessages + 机器人信æ¯ä»»åŠ¡ - - + + RobotGui::TaskTrajectory - - Form - 窗体 + + Form + 窗体 - |< - |< + + |< + |< - < - < + + < + < - || - || + + || + || - |> - |> + + |> + |> - > - > + + > + > - >| - >| + + >| + >| - % - % + + % + % - 10 ms - 10 ms + + 10 ms + 10 ms - 50 ms - 50 ms + + 50 ms + 50 ms - 100 ms - 100 ms + + 100 ms + 100 ms - 500 ms - 500 ms + + 500 ms + 500 ms - 1 s - 1 s + + 1 s + 1 s - Pos: (200.23, 300.23, 400.23, 234, 343 ,343) - ä½ç½®: (200.23, 300.23, 400.23, 234, 343 ,343) + + Pos: (200.23, 300.23, 400.23, 234, 343 ,343) + ä½ç½®: (200.23, 300.23, 400.23, 234, 343 ,343) - Type - 类型 + + Type + 类型 - Name - åç§° + + Name + åç§° - C - C + + C + C - V - V + + V + V - A - A + + A + A - - Trajectory - 轨迹 + + Trajectory + 轨迹 - - + + RobotGui::TaskTrajectoryDressUpParameter - - Dress Up Parameter - ä¿®é¥°å‚æ•° + + Dress Up Parameter + ä¿®é¥°å‚æ•° - - + + TaskEdge2TracParameter - - Form - 窗体 + + Form + 窗体 - Hide / Show - éšè—/显示 + + Hide / Show + éšè—/显示 - Edges: 0 - 边:0 + + Edges: 0 + 边:0 - Cluster: 0 - 集群:0 + + Cluster: 0 + 集群:0 - Sizing Value: - 调整大å°çš„值: + + Sizing Value: + 调整大å°çš„值: - Use orientation of edge - ä½¿ç”¨è¾¹ç¼˜çš„æ–¹å‘ + + Use orientation of edge + ä½¿ç”¨è¾¹ç¼˜çš„æ–¹å‘ - TaskEdge2TracParameter - è¾¹è½¬è½¨è¿¹ä»»åŠ¡å‚æ•° + TaskEdge2TracParameter + è¾¹è½¬è½¨è¿¹ä»»åŠ¡å‚æ•° - - + + TaskRobot6Axis - TaskRobot6Axis - 机器人6轴任务 + TaskRobot6Axis + 机器人6轴任务 - - + + TaskRobotControl - - Form - 窗体 + + Form + 窗体 - X+ - X+ + + X+ + X+ - Y+ - Y+ + + Y+ + Y+ - Z+ - Z+ + + Z+ + Z+ - A+ - A+ + + A+ + A+ - B+ - B+ + + B+ + B+ - C+ - C+ + + C+ + C+ - X- - X- + + X- + X- - Y- - Y- + + Y- + Y- - Z- - Z- + + Z- + Z- - A- - A- + + A- + A- - B- - B- + + B- + B- - C- - C- + + C- + C- - Tool 0 - 工具 0 + + Tool 0 + 工具 0 - Tool - 工具 + + Tool + 工具 - Base 0 - 基本 0 + + Base 0 + 基本 0 - Base - 基本 + + Base + 基本 - World - 世界 + + World + 世界 + + + + 50mm / 5° + 50mm / 5° + + + + 20mm / 2° + 20mm / 2° + + + + 10mm / 1° + 10mm / 1° + + + + 5mm / 0.5° + 5mm / 0.5° + + + + 1mm / 0.1° + 1mm / 0.1° - 50mm / 5° - 50mm / 5° + TaskRobotControl + 任务机器人控制 - - 20mm / 2° - 20mm / 2° - - - 10mm / 1° - 10mm / 1° - - - 5mm / 0.5° - 5mm / 0.5° - - - 1mm / 0.1° - 1mm / 0.1° - - - TaskRobotControl - 任务机器人控制 - - - + + TaskRobotMessages - - Form - 窗体 + + Form + 窗体 - clear - 清除 + + clear + 清除 - TaskRobotMessages - 机器人信æ¯ä»»åŠ¡ + TaskRobotMessages + 机器人信æ¯ä»»åŠ¡ - - + + TaskTrajectory - Trajectory - 轨迹 + Trajectory + 轨迹 - - + + TaskTrajectoryDressUpParameter - - Form - 窗体 + + Form + 窗体 - Speed & Acceleration: - 速度和加速度: + + Speed & Acceleration: + 速度和加速度: - Speed: - 速度: + + Speed: + 速度: - Use - 使用 + + + Use + 使用 - Accel: - 加速: + + Accel: + 加速: - Don't change Cont - ä¸è¦æ›´æ”¹è¿žç»­ + + Don't change Cont + ä¸è¦æ›´æ”¹è¿žç»­ - Continues - 连续 + + Continues + 连续 - Discontinues - 中止 + + Discontinues + 中止 - Position and Orientation: - ä½ç½®å’Œæ–¹å‘: + + Position and Orientation: + ä½ç½®å’Œæ–¹å‘: - (0,0,0),(0,0,0) - (0,0,0),(0,0,0) + + (0,0,0),(0,0,0) + (0,0,0),(0,0,0) - ... - ... + + ... + ... - Don't change Position & Orientation - ä¸è¦æ”¹å˜ä½ç½®å’Œæ–¹å‘ + + Don't change Position & Orientation + ä¸è¦æ”¹å˜ä½ç½®å’Œæ–¹å‘ - Use Orientation - ä½¿ç”¨æ–¹å‘ + + Use Orientation + ä½¿ç”¨æ–¹å‘ - Add Position - 添加ä½ç½® + + Add Position + 添加ä½ç½® - Add Orientation - æ·»åŠ å®šä½ + + Add Orientation + æ·»åŠ å®šä½ - Dress Up Parameter - ä¿®é¥°å‚æ•° + Dress Up Parameter + ä¿®é¥°å‚æ•° - - + + Workbench - - Robot - 机器人 + + Robot + 机器人 - Insert Robots - 导入机器人 + + Insert Robots + 导入机器人 - &Robot - 机器人(&R) + + &Robot + 机器人(&R) - Export trajectory - 导出轨迹 + + Export trajectory + 导出轨迹 - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_af.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_af.ts index 25b2ec95d..982b18ef5 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_af.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_af.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Sketser + + Sketcher + Sketser - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Sketser + + Sketcher + Sketser - Constrain coincident - Beperk samevalling + + Constrain coincident + Beperk samevalling - Create a coincident constraint on the selected item - Skep 'n samevallende beperking op die gekose item + + Create a coincident constraint on the selected item + Skep 'n samevallende beperking op die gekose item - - + + CmdSketcherConstrainDistance - Sketcher - Sketser + + Sketcher + Sketser - Constrain distance - Beperk afstand + + Constrain distance + Beperk afstand - Fix a length of a line or the distance between a line and a vertex - Herstel 'n lynlengte of afstand tussen 'n lyn en 'n hoekpunt + + Fix a length of a line or the distance between a line and a vertex + Herstel 'n lynlengte of afstand tussen 'n lyn en 'n hoekpunt - - + + CmdSketcherConstrainDistanceX - Sketcher - Sketser + + Sketcher + Sketser - Constrain vertical distance - Constrain vertical distance + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Constrain vertical distance - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Sketser + + Sketcher + Sketser - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Constrain vertical distance - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Sketser + + Sketcher + Sketser - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Sketser + + Sketcher + Sketser - Constrain horizontally - Beperk horisontaal + + Constrain horizontally + Beperk horisontaal - Create a horizontal constraint on the selected item - Skep 'n horisontale beperking op die gekose item + + Create a horizontal constraint on the selected item + Skep 'n horisontale beperking op die gekose item - - + + CmdSketcherConstrainLock - Sketcher - Sketser + + Sketcher + Sketser - Constrain lock - Beperk sluiting + + Constrain lock + Beperk sluiting - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Sketser + + Sketcher + Sketser - Constrain parallel - Beperk parallel + + Constrain parallel + Beperk parallel - Create a parallel constraint between two lines - Skep 'n parallelle beperking tussen twee lyne + + Create a parallel constraint between two lines + Skep 'n parallelle beperking tussen twee lyne - - + + CmdSketcherConstrainPerpendicular - Sketcher - Sketser + + Sketcher + Sketser - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Sketser + + Sketcher + Sketser - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Sketser + + Sketcher + Sketser - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Sketser + + Sketcher + Sketser - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Sketser + + Sketcher + Sketser - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Sketser + + Sketcher + Sketser - Constrain vertically - Beperk vertikaal + + Constrain vertically + Beperk vertikaal - Create a vertical constraint on the selected item - Skep 'n vertikale beperking op die gekose item + + Create a vertical constraint on the selected item + Skep 'n vertikale beperking op die gekose item - - + + CmdSketcherCreateArc - - Sketcher - Sketser + + Sketcher + Sketser - Create arc - Skep boog + + Create arc + Skep boog - Create an arc in the sketch - Skep 'n boog in die skets + + Create an arc in the sketch + Skep 'n boog in die skets - - + + CmdSketcherCreateCircle - Sketcher - Sketser + + Sketcher + Sketser - Create circle - Skep sirkel + + Create circle + Skep sirkel - Create a circle in the sketch - Skep 'n sirkel in die skets + + Create a circle in the sketch + Skep 'n sirkel in die skets - - + + CmdSketcherCreateDraftLine - Sketcher - Sketser + + Sketcher + Sketser - Create draft line - Skep ontwerplyn + + Create draft line + Skep ontwerplyn - Create a draft line in the sketch - Skep 'n ontwerplyn in die skets + + Create a draft line in the sketch + Skep 'n ontwerplyn in die skets - - + + CmdSketcherCreateFillet - Sketcher - Sketser + + Sketcher + Sketser - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Sketser + + Sketcher + Sketser - Create line - Skep lyn + + Create line + Skep lyn - Create a line in the sketch - Trek 'n lyn in die skets + + Create a line in the sketch + Trek 'n lyn in die skets - - + + CmdSketcherCreatePoint - Sketcher - Sketser + + Sketcher + Sketser - Create point - Skep punt + + Create point + Skep punt - Create a point in the sketch - Skep 'n punt in die skets + + Create a point in the sketch + Skep 'n punt in die skets - - + + CmdSketcherCreatePolyline - Sketcher - Sketser + + Sketcher + Sketser - Create polyline - Skep veelvuldige segment lyn + + Create polyline + Skep veelvuldige segment lyn - Create a polyline in the sketch - Skep 'n lyn met veelvuldige segmente in die skets + + Create a polyline in the sketch + Skep 'n lyn met veelvuldige segmente in die skets - - + + CmdSketcherCreateRectangle - Sketcher - Sketser + + Sketcher + Sketser - Create rectangle - Skep reghoek + + Create rectangle + Skep reghoek - Create a rectangle in the sketch - Skep 'n reghoek in die skets + + Create a rectangle in the sketch + Skep 'n reghoek in die skets - - + + CmdSketcherCreateText - Sketcher - Sketser + + Sketcher + Sketser - Create text - Skep teks + + Create text + Skep teks - Create text in the sketch - Skep teks in die skets + + Create text in the sketch + Skep teks in die skets - - + + + CmdSketcherExternal + + + Sketcher + Sketser + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Sketser + + Sketcher + Sketser - Leave sketch - Verlaat skets + + Leave sketch + Verlaat skets - Close the editing of the sketch - Sluit af sketswysiging + + Close the editing of the sketch + Sluit af sketswysiging - - + + CmdSketcherMapSketch - Sketcher - Sketser + + Sketcher + Sketser - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Sketser + + Sketcher + Sketser - Create sketch - Skep skets + + Create sketch + Skep skets - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Skep 'n nuwe skets + Create a new sketch + Skep 'n nuwe skets - - + + CmdSketcherNewSketchSF - Sketcher - Sketser + Sketcher + Sketser - Sketchflat sketch - Sketsplat skets + Sketchflat sketch + Sketsplat skets - Create a new sketchflat sketch by starting externel editor - Skep 'n nuwe sketsplat skets met 'n eksterne program + Create a new sketchflat sketch by starting externel editor + Skep 'n nuwe sketsplat skets met 'n eksterne program - - + + CmdSketcherToggleConstruction - - Sketcher - Sketser + + Sketcher + Sketser - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Sketser + + Sketcher + Sketser - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Sketser + + Sketcher + Sketser - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Voorkoms + + Appearance + Voorkoms - - + + QObject - - Wrong selection - Verkeerde keuse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Verkeerde keuse - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Kies 'n rand in die skets. + + + Select an edge from the sketch. + Kies 'n rand in die skets. - Double constraint - Dubbele beperking + + + Double constraint + Dubbele beperking - The selected edge has already a horizontal constraint! - Die gekose rand het reeds 'n horisontale beperking! + + + The selected edge has already a horizontal constraint! + Die gekose rand het reeds 'n horisontale beperking! - Impossible constraint - Onmoontlike beperking + + + + + + + Impossible constraint + Onmoontlike beperking - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Die gekose rand het reeds 'n vertikale beperking! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + Die gekose rand het reeds 'n vertikale beperking! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Kies hoekpunte in die skets. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Kies presies twee hoekpunte uit die skets. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Kies hoekpunte in die skets. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Kies presies twee hoekpunte uit die skets. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Kies presies een lyn in die skets. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Kies twee lyne in die skets. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Kies presies twee lyne in die skets. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Wysig skets + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - 'n Dialoog is reeds oop in die taakpaneel + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Wil jy hierdie dialoog afsluit? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Verskeie onderelemente gekies + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Jy moet een vlak kies as 'n stut vir die skets! + + Sketch axes cannot be used in equality constraints + - No support face selected - Geen stutvlak gekies nie + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Jy moet 'n vlak kies om die skets mee te stut! + + Cannot add a constraint between external geometries! + - No planar support - Geen tekenvlak as stut + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - Jy benodig 'n tekenvlak as 'n stut vir die skets! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Kies presies een lyn in die skets. - - + + Select two lines from the sketch. + Kies twee lyne in die skets. + + + Select exactly two lines from the sketch. + Kies presies twee lyne in die skets. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Wysig skets + + + + A dialog is already open in the task panel + 'n Dialoog is reeds oop in die taakpaneel + + + + Do you want to close this dialog? + Wil jy hierdie dialoog afsluit? + + + + Several sub-elements selected + Verskeie onderelemente gekies + + + + You have to select a single face as support for a sketch! + Jy moet een vlak kies as 'n stut vir die skets! + + + + No support face selected + Geen stutvlak gekies nie + + + + You have to select a face as support for a sketch! + Jy moet 'n vlak kies om die skets mee te stut! + + + + No planar support + Geen tekenvlak as stut + + + + You need a planar face as support for a sketch! + Jy benodig 'n tekenvlak as 'n stut vir die skets! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-Plane + XY-Plane + XY-Plane - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Voeg datum in + + Insert datum + Voeg datum in - datum: - datum: + + datum: + datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-Plane + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Vorm + + Form + Vorm - Filter: - Filter: + + Filter: + Filter: - All - Almal + + All + Almal - Normal - Normaallyn + + Normal + Normaallyn - Datums - Datums + + Datums + Datums - Named - Benoem + + Named + Benoem - - Constraints - Beperkings + + Constraints + Beperkings - - + + SketcherGui::TaskSketcherGeneral - - Form - Vorm + + Form + Vorm - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Onopgelos + Unsolved + Onopgelos - Grid Snap - Roosternetaanhegting + Grid Snap + Roosternetaanhegting - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - automatiese beperkinge + auto constraints + automatiese beperkinge - - Edit controls - Wysigingskontrole + + Edit controls + Wysigingskontrole - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Beperkings + Constraints + Beperkings - - + + TaskSketcherCreateCommands - Appearance - Voorkoms + Appearance + Voorkoms - - + + TaskSketcherGeneral - Edit controls - Wysigingskontrole + Edit controls + Wysigingskontrole - - + + TaskSketcherMessages - - Form - Vorm + + Form + Vorm - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Sketser + + Sketcher + Sketser - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Sketsvorms + Sketcher geoms + Sketsvorms - Sketcher constraints - Sketser beperkings + + Sketcher constraints + Sketser beperkings - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts index 406f8292e..b3c47acda 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_de.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Skizze + + Sketcher + Skizze - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Skizze + + Sketcher + Skizze - Constrain coincident - Koinzidenz erzwingen + + Constrain coincident + Koinzidenz erzwingen - Create a coincident constraint on the selected item - Eine Koinzidenzbeschränkung für das gewählte Element setzen + + Create a coincident constraint on the selected item + Eine Koinzidenzbeschränkung für das gewählte Element setzen - - + + CmdSketcherConstrainDistance - Sketcher - Skizze + + Sketcher + Skizze - Constrain distance - Distanz einschränken + + Constrain distance + Distanz einschränken - Fix a length of a line or the distance between a line and a vertex - Die Länge einer Linie oder den Abstand einer Linie und eines Vertex festlegen + + Fix a length of a line or the distance between a line and a vertex + Die Länge einer Linie oder den Abstand einer Linie und eines Vertex festlegen - - + + CmdSketcherConstrainDistanceX - Sketcher - Skizze + + Sketcher + Skizze - Constrain vertical distance - Constrain vertical distance + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Constrain vertical distance - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Skizze + + Sketcher + Skizze - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Constrain vertical distance - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Skizze + + Sketcher + Skizze - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Skizze + + Sketcher + Skizze - Constrain horizontally - Horizontal einschränken + + Constrain horizontally + Horizontal einschränken - Create a horizontal constraint on the selected item - Eine horizontale Beschränkung für das gewählte Element setzen + + Create a horizontal constraint on the selected item + Eine horizontale Beschränkung für das gewählte Element setzen - - + + CmdSketcherConstrainLock - Sketcher - Skizze + + Sketcher + Skizze - Constrain lock - Sperren + + Constrain lock + Sperren - Create a lock constraint on the selected item - Eine Sperrung für das gewählte Element setzen + + Create a lock constraint on the selected item + Eine Sperrung für das gewählte Element setzen - - + + CmdSketcherConstrainParallel - Sketcher - Skizze + + Sketcher + Skizze - Constrain parallel - Parallelität erzwingen + + Constrain parallel + Parallelität erzwingen - Create a parallel constraint between two lines - Parallelität zwischen zwei Geraden erzwingen + + Create a parallel constraint between two lines + Parallelität zwischen zwei Geraden erzwingen - - + + CmdSketcherConstrainPerpendicular - Sketcher - Skizze + + Sketcher + Skizze - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Skizze + + Sketcher + Skizze - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Skizze + + Sketcher + Skizze - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Skizze + + Sketcher + Skizze - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Skizze + + Sketcher + Skizze - Constrain tangent - Tangente setzen + + Constrain tangent + Tangente setzen - Create a tangent constraint between two entities - Tangente zwischen zwei Elementen erzwingen + + Create a tangent constraint between two entities + Tangente zwischen zwei Elementen erzwingen - - + + CmdSketcherConstrainVertical - Sketcher - Skizze + + Sketcher + Skizze - Constrain vertically - Vertikal einschränken + + Constrain vertically + Vertikal einschränken - Create a vertical constraint on the selected item - Eine vertikale Beschränkung für das gewählte Element setzen + + Create a vertical constraint on the selected item + Eine vertikale Beschränkung für das gewählte Element setzen - - + + CmdSketcherCreateArc - - Sketcher - Skizze + + Sketcher + Skizze - Create arc - Bogen erstellen + + Create arc + Bogen erstellen - Create an arc in the sketch - Bogen in der Skizze erstellen + + Create an arc in the sketch + Bogen in der Skizze erstellen - - + + CmdSketcherCreateCircle - Sketcher - Skizze + + Sketcher + Skizze - Create circle - Kreis erstellen + + Create circle + Kreis erstellen - Create a circle in the sketch - Kreis in der Skizze erstellen + + Create a circle in the sketch + Kreis in der Skizze erstellen - - + + CmdSketcherCreateDraftLine - Sketcher - Skizze + + Sketcher + Skizze - Create draft line - Entwurfslinie erstellen + + Create draft line + Entwurfslinie erstellen - Create a draft line in the sketch - Eine Entwurfslinie in der Skizze erstellen + + Create a draft line in the sketch + Eine Entwurfslinie in der Skizze erstellen - - + + CmdSketcherCreateFillet - Sketcher - Skizze + + Sketcher + Skizze - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between to lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between to lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Skizze + + Sketcher + Skizze - Create line - Linie erstellen + + Create line + Linie erstellen - Create a line in the sketch - Linie in der Skizze erstellen + + Create a line in the sketch + Linie in der Skizze erstellen - - + + CmdSketcherCreatePoint - Sketcher - Skizze + + Sketcher + Skizze - Create point - Punkt erstellen + + Create point + Punkt erstellen - Create a point in the sketch - Punkt in der Skizze erstellen + + Create a point in the sketch + Punkt in der Skizze erstellen - - + + CmdSketcherCreatePolyline - Sketcher - Skizze + + Sketcher + Skizze - Create polyline - Linienzug erstellen + + Create polyline + Linienzug erstellen - Create a polyline in the sketch - Linienzug in der Skizze erstellen + + Create a polyline in the sketch + Linienzug in der Skizze erstellen - - + + CmdSketcherCreateRectangle - Sketcher - Skizze + + Sketcher + Skizze - Create rectangle - Rechteck erstellen + + Create rectangle + Rechteck erstellen - Create a rectangle in the sketch - Rechteck in der Skizze erstellen + + Create a rectangle in the sketch + Rechteck in der Skizze erstellen - - + + CmdSketcherCreateText - Sketcher - Skizze + + Sketcher + Skizze - Create text - Text erstellen + + Create text + Text erstellen - Create text in the sketch - Text in der Skizze erstellen + + Create text in the sketch + Text in der Skizze erstellen - - + + + CmdSketcherExternal + + + Sketcher + Skizze + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Skizze + + Sketcher + Skizze - Leave sketch - Skizze verlassen + + Leave sketch + Skizze verlassen - Close the editing of the sketch - Bearbeitung der Skizze beenden + + Close the editing of the sketch + Bearbeitung der Skizze beenden - - + + CmdSketcherMapSketch - Sketcher - Skizze + + Sketcher + Skizze - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Skizze + + Sketcher + Skizze - Create sketch - Skizze erstellen + + Create sketch + Skizze erstellen - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Neue Skizze erstellen + Create a new sketch + Neue Skizze erstellen - - + + CmdSketcherNewSketchSF - Sketcher - Skizze + Sketcher + Skizze - Sketchflat sketch - Sketchflat sketch + Sketchflat sketch + Sketchflat sketch - Create a new sketchflat sketch by starting externel editor - Neue Sketchflat-Skizze in externem Editor erstellen + Create a new sketchflat sketch by starting externel editor + Neue Sketchflat-Skizze in externem Editor erstellen - - + + CmdSketcherToggleConstruction - - Sketcher - Skizze + + Sketcher + Skizze - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Skizze + + Sketcher + Skizze - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Skizze + + Sketcher + Skizze - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Erscheinungsbild + + Appearance + Erscheinungsbild - - + + QObject - - Wrong selection - Falsche Auswahl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Falsche Auswahl - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Wählen Sie eine Kante aus der Skizze. + + + Select an edge from the sketch. + Wählen Sie eine Kante aus der Skizze. - Double constraint - Doppelbedingung + + + Double constraint + Doppelbedingung - The selected edge has already a horizontal constraint! - Die gewählte Kante hat bereits eine Horizontal-Beschränkung! + + + The selected edge has already a horizontal constraint! + Die gewählte Kante hat bereits eine Horizontal-Beschränkung! - Impossible constraint - Nicht erfüllbare Bedingung + + + + + + + Impossible constraint + Nicht erfüllbare Bedingung - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Die gewählte Kante hat bereits eine Vertikal-Beschränkung! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Wählen Sie Elemente aus der Skizze aus. + + + The selected edge has already a vertical constraint! + Die gewählte Kante hat bereits eine Vertikal-Beschränkung! - Select exactly one entity from the sketch. - Wählen Sie genau ein Element aus der Skizze aus. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Wählen Sie Vertexe aus der Skizze aus. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Wählen Sie genau zwei Vertexe aus der Skizze aus. + + Select entities from the sketch. + Wählen Sie Elemente aus der Skizze aus. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Wählen Sie genau ein Element aus der Skizze aus. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Wählen Sie Vertexe aus der Skizze aus. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Wählen Sie genau zwei Vertexe aus der Skizze aus. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Wählen Sie genau einen Vertex aus der Skizze aus. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Wählen Sie zwei Linien aus der Skizze aus. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Wählen Sie genau zwei Linien aus der Skizze aus. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Wählen Sie zwei Elemente aus der Skizze aus. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Wählen Sie genau zwei Elemente aus der Skizze aus. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Skizze bearbeiten + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Ein Dialog im Arbeitspanel ist bereits geöffnet + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Möchten Sie dieses Dialogfeld schließen? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Mehrere Unter-Elemente selektiert + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Sie müssen eine einzelne Fläche als Auflage für eine Skizze auswählen! + + Sketch axes cannot be used in equality constraints + - No support face selected - Keine Fläche als Auflage selektiert + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Sie müssen eine Fläche als Auflage für eine Skizze auswählen! + + Cannot add a constraint between external geometries! + - No planar support - Keine ebene Auflage + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - Sie benötigen eine ebene Fläche als Auflage für eine Skizze! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Wählen Sie genau einen Vertex aus der Skizze aus. - - + + Select two lines from the sketch. + Wählen Sie zwei Linien aus der Skizze aus. + + + Select exactly two lines from the sketch. + Wählen Sie genau zwei Linien aus der Skizze aus. + + + + + Select two entities from the sketch. + Wählen Sie zwei Elemente aus der Skizze aus. + + + + + + + Select exactly two entities from the sketch. + Wählen Sie genau zwei Elemente aus der Skizze aus. + + + + Edit sketch + Skizze bearbeiten + + + + A dialog is already open in the task panel + Ein Dialog im Arbeitspanel ist bereits geöffnet + + + + Do you want to close this dialog? + Möchten Sie dieses Dialogfeld schließen? + + + + Several sub-elements selected + Mehrere Unter-Elemente selektiert + + + + You have to select a single face as support for a sketch! + Sie müssen eine einzelne Fläche als Auflage für eine Skizze auswählen! + + + + No support face selected + Keine Fläche als Auflage selektiert + + + + You have to select a face as support for a sketch! + Sie müssen eine Fläche als Auflage für eine Skizze auswählen! + + + + No planar support + Keine ebene Auflage + + + + You need a planar face as support for a sketch! + Sie benötigen eine ebene Fläche als Auflage für eine Skizze! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-Ebene + XY-Plane + XY-Ebene - XZ-Plane - XZ-Ebene + XZ-Plane + XZ-Ebene - YZ-Plane - YZ-Ebene + YZ-Plane + YZ-Ebene - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Bezug einfügen + + Insert datum + Bezug einfügen - datum: - Bezug: + + datum: + Bezug: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-Ebene + + + + XZ-Plane + XZ-Ebene + + + + YZ-Plane + YZ-Ebene + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Formular + + Form + Formular - Filter: - Filter: + + Filter: + Filter: - All - Alle + + All + Alle - Normal - Normal + + Normal + Normal - Datums - Bezüge + + Datums + Bezüge - Named - Genannt + + Named + Genannt - - Constraints - Einschränkungen + + Constraints + Einschränkungen - - + + SketcherGui::TaskSketcherGeneral - - Form - Formular + + Form + Formular - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Ungelöst + Unsolved + Ungelöst - Grid Snap - Am Raster ausrichten + Grid Snap + Am Raster ausrichten - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0,2 mm + 0.2 mm + 0,2 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - Automatische Beschränkungen + auto constraints + Automatische Beschränkungen - - Edit controls - Bedienelemente bearbeiten + + Edit controls + Bedienelemente bearbeiten - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Einschränkungen + Constraints + Einschränkungen - - + + TaskSketcherCreateCommands - Appearance - Erscheinungsbild + Appearance + Erscheinungsbild - - + + TaskSketcherGeneral - Edit controls - Bedienelemente bearbeiten + Edit controls + Bedienelemente bearbeiten - - + + TaskSketcherMessages - - Form - Formular + + Form + Formular - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Skizze + + Sketcher + Skizze - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Skizzen-Geometrien + Sketcher geoms + Skizzen-Geometrien - Sketcher constraints - Skizzen-Beschränkungen + + Sketcher constraints + Skizzen-Beschränkungen - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es.ts index 08aca70c6..401671b23 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_es.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain coincident - Restringir coincidente + + Constrain coincident + Restringir coincidente - Create a coincident constraint on the selected item - Crear una restricción coincidente en el elemento seleccionado + + Create a coincident constraint on the selected item + Crear una restricción coincidente en el elemento seleccionado - - + + CmdSketcherConstrainDistance - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain distance - Restringir la distancia + + Constrain distance + Restringir la distancia - Fix a length of a line or the distance between a line and a vertex - Fijar una longitud de una línea o la distancia entre una línea y un vértice + + Fix a length of a line or the distance between a line and a vertex + Fijar una longitud de una línea o la distancia entre una línea y un vértice - - + + CmdSketcherConstrainDistanceX - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain vertical distance - Constrain vertical distance + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Constrain vertical distance - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Constrain vertical distance - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain horizontally - Restringir horizontalmente + + Constrain horizontally + Restringir horizontalmente - Create a horizontal constraint on the selected item - Crear una restricción horizontal en el elemento seleccionado + + Create a horizontal constraint on the selected item + Crear una restricción horizontal en el elemento seleccionado - - + + CmdSketcherConstrainLock - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain lock - Restricción de bloqueo + + Constrain lock + Restricción de bloqueo - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain parallel - Restringir paralelo + + Constrain parallel + Restringir paralelo - Create a parallel constraint between two lines - Crear una restricción entre dos líneas paralelas + + Create a parallel constraint between two lines + Crear una restricción entre dos líneas paralelas - - + + CmdSketcherConstrainPerpendicular - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Croquizador + + Sketcher + Croquizador - Constrain vertically - Restringir verticalmente + + Constrain vertically + Restringir verticalmente - Create a vertical constraint on the selected item - Crear una restricción vertical en el elemento seleccionado + + Create a vertical constraint on the selected item + Crear una restricción vertical en el elemento seleccionado - - + + CmdSketcherCreateArc - - Sketcher - Croquizador + + Sketcher + Croquizador - Create arc - Crear arco + + Create arc + Crear arco - Create an arc in the sketch - Crea un arco en el croquis + + Create an arc in the sketch + Crea un arco en el croquis - - + + CmdSketcherCreateCircle - Sketcher - Croquizador + + Sketcher + Croquizador - Create circle - Crear circunferencia + + Create circle + Crear circunferencia - Create a circle in the sketch - Crea una circunferencia en el croquis + + Create a circle in the sketch + Crea una circunferencia en el croquis - - + + CmdSketcherCreateDraftLine - Sketcher - Croquizador + + Sketcher + Croquizador - Create draft line - Crear línea auxiliar + + Create draft line + Crear línea auxiliar - Create a draft line in the sketch - Crea una línea auxiliar en el croquis + + Create a draft line in the sketch + Crea una línea auxiliar en el croquis - - + + CmdSketcherCreateFillet - Sketcher - Croquizador + + Sketcher + Croquizador - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Croquizador + + Sketcher + Croquizador - Create line - Crear línea + + Create line + Crear línea - Create a line in the sketch - Crea una línea en el croquis + + Create a line in the sketch + Crea una línea en el croquis - - + + CmdSketcherCreatePoint - Sketcher - Croquizador + + Sketcher + Croquizador - Create point - Crear punto + + Create point + Crear punto - Create a point in the sketch - Crea un punto en el croquis + + Create a point in the sketch + Crea un punto en el croquis - - + + CmdSketcherCreatePolyline - Sketcher - Croquizador + + Sketcher + Croquizador - Create polyline - Crear polilínea + + Create polyline + Crear polilínea - Create a polyline in the sketch - Crea una polilínea en el croquis + + Create a polyline in the sketch + Crea una polilínea en el croquis - - + + CmdSketcherCreateRectangle - Sketcher - Croquizador + + Sketcher + Croquizador - Create rectangle - Crear rectángulo + + Create rectangle + Crear rectángulo - Create a rectangle in the sketch - Crea un rectángulo en el croquis + + Create a rectangle in the sketch + Crea un rectángulo en el croquis - - + + CmdSketcherCreateText - Sketcher - Croquizador + + Sketcher + Croquizador - Create text - Crear texto + + Create text + Crear texto - Create text in the sketch - Crear texto en el croquis + + Create text in the sketch + Crear texto en el croquis - - + + + CmdSketcherExternal + + + Sketcher + Croquizador + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Croquizador + + Sketcher + Croquizador - Leave sketch - Salir del croquis + + Leave sketch + Salir del croquis - Close the editing of the sketch - Cierra la edición del croquis + + Close the editing of the sketch + Cierra la edición del croquis - - + + CmdSketcherMapSketch - Sketcher - Croquizador + + Sketcher + Croquizador - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Croquizador + + Sketcher + Croquizador - Create sketch - Crear croquis + + Create sketch + Crear croquis - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Crea un nuevo croquis + Create a new sketch + Crea un nuevo croquis - - + + CmdSketcherNewSketchSF - Sketcher - Croquizador + Sketcher + Croquizador - Sketchflat sketch - Bosquejo 'sketchflat' + Sketchflat sketch + Bosquejo 'sketchflat' - Create a new sketchflat sketch by starting externel editor - Crear un bosquejo sketchflat nuevo por medio de editor externo + Create a new sketchflat sketch by starting externel editor + Crear un bosquejo sketchflat nuevo por medio de editor externo - - + + CmdSketcherToggleConstruction - - Sketcher - Croquizador + + Sketcher + Croquizador - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Croquizador + + Sketcher + Croquizador - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Croquizador + + Sketcher + Croquizador - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Aspecto + + Appearance + Aspecto - - + + QObject - - Wrong selection - Selección incorrecta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Selección incorrecta - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Seleccione una arista del dibujo. + + + Select an edge from the sketch. + Seleccione una arista del dibujo. - Double constraint - Restricción doble + + + Double constraint + Restricción doble - The selected edge has already a horizontal constraint! - ¡La arista seleccionada ya tiene una restricción horizontal! + + + The selected edge has already a horizontal constraint! + ¡La arista seleccionada ya tiene una restricción horizontal! - Impossible constraint - Restricción imposible + + + + + + + Impossible constraint + Restricción imposible - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - El borde seleccionado ya tiene una restricción vertical! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + El borde seleccionado ya tiene una restricción vertical! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Seleccione vértices del dibujo. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Seleccione exactamente dos vértices del dibujo. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Seleccione vértices del dibujo. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Seleccione exactamente dos vértices del dibujo. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Seleccione exactamente una línea del dibujo. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Seleccione dos líneas del dibujo. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Seleccione exactamente dos líneas del dibujo. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Editar boceto + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Un cuadro de diálogo ya está abierto en el panel de tareas + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - ¿Desea cerrar esta ventana? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Varios sub-elementos seleccionados + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - ¡Tiene que seleccionar una sola cara como soporte para un dibujo! + + Sketch axes cannot be used in equality constraints + - No support face selected - No se ha seleccionado una cara de apoyo + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - ¡Tiene que seleccionar una cara como apoyo para un esbozo! + + Cannot add a constraint between external geometries! + - No planar support - No hay soporte plano + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - ¡Necesita una cara plana como apoyo para un esbozo! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Seleccione exactamente una línea del dibujo. - - + + Select two lines from the sketch. + Seleccione dos líneas del dibujo. + + + Select exactly two lines from the sketch. + Seleccione exactamente dos líneas del dibujo. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Editar boceto + + + + A dialog is already open in the task panel + Un cuadro de diálogo ya está abierto en el panel de tareas + + + + Do you want to close this dialog? + ¿Desea cerrar esta ventana? + + + + Several sub-elements selected + Varios sub-elementos seleccionados + + + + You have to select a single face as support for a sketch! + ¡Tiene que seleccionar una sola cara como soporte para un dibujo! + + + + No support face selected + No se ha seleccionado una cara de apoyo + + + + You have to select a face as support for a sketch! + ¡Tiene que seleccionar una cara como apoyo para un esbozo! + + + + No planar support + No hay soporte plano + + + + You need a planar face as support for a sketch! + ¡Necesita una cara plana como apoyo para un esbozo! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - Plano XY + XY-Plane + Plano XY - XZ-Plane - Plano XZ + XZ-Plane + Plano XZ - YZ-Plane - Plano YZ + YZ-Plane + Plano YZ - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Insertar datos de referencia + + Insert datum + Insertar datos de referencia - datum: - Dato de referencia: + + datum: + Dato de referencia: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + Plano XY + + + + XZ-Plane + Plano XZ + + + + YZ-Plane + Plano YZ + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Formulario + + Form + Formulario - Filter: - Filtro: + + Filter: + Filtro: - All - Todo + + All + Todo - Normal - Normal + + Normal + Normal - Datums - Datos de referencia + + Datums + Datos de referencia - Named - Nombrado + + Named + Nombrado - - Constraints - Restricciones + + Constraints + Restricciones - - + + SketcherGui::TaskSketcherGeneral - - Form - Formulario + + Form + Formulario - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - No resuelto + Unsolved + No resuelto - Grid Snap - Ajustar contra cuadrícula + Grid Snap + Ajustar contra cuadrícula - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - Auto-restricciones + auto constraints + Auto-restricciones - - Edit controls - Controles de edición + + Edit controls + Controles de edición - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Restricciones + Constraints + Restricciones - - + + TaskSketcherCreateCommands - Appearance - Aspecto + Appearance + Aspecto - - + + TaskSketcherGeneral - Edit controls - Controles de edición + Edit controls + Controles de edición - - + + TaskSketcherMessages - - Form - Formulario + + Form + Formulario - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Croquizador + + Sketcher + Croquizador - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Geometría del croquis + Sketcher geoms + Geometría del croquis - Sketcher constraints - Restricciones de croquis + + Sketcher constraints + Restricciones de croquis - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts index 1711218dd..782536929 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fi.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain coincident - Samanlaisuus rajoite + + Constrain coincident + Samanlaisuus rajoite - Create a coincident constraint on the selected item - Luo samanlainen rajoite valituille kohteille + + Create a coincident constraint on the selected item + Luo samanlainen rajoite valituille kohteille - - + + CmdSketcherConstrainDistance - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain distance - Etäisyys rajoitus + + Constrain distance + Etäisyys rajoitus - Fix a length of a line or the distance between a line and a vertex - Korjaa viivan pituutta tai etäisyyttä viivan ja pisteen välillä + + Fix a length of a line or the distance between a line and a vertex + Korjaa viivan pituutta tai etäisyyttä viivan ja pisteen välillä - - + + CmdSketcherConstrainDistanceX - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain vertical distance - Constrain vertical distance + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Constrain vertical distance - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Constrain vertical distance - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain horizontally - Vaakasuora rajoite + + Constrain horizontally + Vaakasuora rajoite - Create a horizontal constraint on the selected item - Luo vaakasuora rajoite valittujen osien välille + + Create a horizontal constraint on the selected item + Luo vaakasuora rajoite valittujen osien välille - - + + CmdSketcherConstrainLock - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain lock - Rajoite lukko + + Constrain lock + Rajoite lukko - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain parallel - Rajoita yhdensuuntaiseksi + + Constrain parallel + Rajoita yhdensuuntaiseksi - Create a parallel constraint between two lines - Luo rinnakkaisuus rajoite kahden viivan välille + + Create a parallel constraint between two lines + Luo rinnakkaisuus rajoite kahden viivan välille - - + + CmdSketcherConstrainPerpendicular - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Constrain vertically - Rajoita pystysuuntaisesti + + Constrain vertically + Rajoita pystysuuntaisesti - Create a vertical constraint on the selected item - Luo pystysuora rajoite valitulle kohteelle + + Create a vertical constraint on the selected item + Luo pystysuora rajoite valitulle kohteelle - - + + CmdSketcherCreateArc - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create arc - Luo kaari + + Create arc + Luo kaari - Create an arc in the sketch - Luo kaaren luonnoksessa + + Create an arc in the sketch + Luo kaaren luonnoksessa - - + + CmdSketcherCreateCircle - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create circle - Luo ympyrä + + Create circle + Luo ympyrä - Create a circle in the sketch - Luo ympyrän luonnoksessa + + Create a circle in the sketch + Luo ympyrän luonnoksessa - - + + CmdSketcherCreateDraftLine - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create draft line - Luo vedosviiva + + Create draft line + Luo vedosviiva - Create a draft line in the sketch - Luo vedosviiva luonnokseen + + Create a draft line in the sketch + Luo vedosviiva luonnokseen - - + + CmdSketcherCreateFillet - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create line - Luo viiva + + Create line + Luo viiva - Create a line in the sketch - Luo viivan luonnoksessa + + Create a line in the sketch + Luo viivan luonnoksessa - - + + CmdSketcherCreatePoint - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create point - Luo piste + + Create point + Luo piste - Create a point in the sketch - Luo pisteen luonnoksessa + + Create a point in the sketch + Luo pisteen luonnoksessa - - + + CmdSketcherCreatePolyline - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create polyline - Luo murtoviiva + + Create polyline + Luo murtoviiva - Create a polyline in the sketch - Luo murtoviiva luonnokseen + + Create a polyline in the sketch + Luo murtoviiva luonnokseen - - + + CmdSketcherCreateRectangle - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create rectangle - Luo suorakolmio + + Create rectangle + Luo suorakolmio - Create a rectangle in the sketch - Luo suorakulmion luonnoksessa + + Create a rectangle in the sketch + Luo suorakulmion luonnoksessa - - + + CmdSketcherCreateText - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create text - Luo tekstiä + + Create text + Luo tekstiä - Create text in the sketch - Luo teksti luonnokseen + + Create text in the sketch + Luo teksti luonnokseen - - + + + CmdSketcherExternal + + + Sketcher + Lunnostelija + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Leave sketch - Poistu luonnoksesta + + Leave sketch + Poistu luonnoksesta - Close the editing of the sketch - Sulje luonnoksen muokkaus + + Close the editing of the sketch + Sulje luonnoksen muokkaus - - + + CmdSketcherMapSketch - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Create sketch - Luo luonnos + + Create sketch + Luo luonnos - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Luo uusi luonnos + Create a new sketch + Luo uusi luonnos - - + + CmdSketcherNewSketchSF - Sketcher - Lunnostelija + Sketcher + Lunnostelija - Sketchflat sketch - Sketchflat luonnos + Sketchflat sketch + Sketchflat luonnos - Create a new sketchflat sketch by starting externel editor - Luo uusi sketchflat luonnos käynnistämällä ulkoinen editori + Create a new sketchflat sketch by starting externel editor + Luo uusi sketchflat luonnos käynnistämällä ulkoinen editori - - + + CmdSketcherToggleConstruction - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Ulkoasu + + Appearance + Ulkoasu - - + + QObject - - Wrong selection - Väärä valinta + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Väärä valinta - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Valitse luonnoksen reuna. + + + Select an edge from the sketch. + Valitse luonnoksen reuna. - Double constraint - Kaksinkertainen rajoite + + + Double constraint + Kaksinkertainen rajoite - The selected edge has already a horizontal constraint! - Valitulla reunalla on jo vaakasuora rajoitus! + + + The selected edge has already a horizontal constraint! + Valitulla reunalla on jo vaakasuora rajoitus! - Impossible constraint - Mahdoton rajoite + + + + + + + Impossible constraint + Mahdoton rajoite - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Valitulla reunalla on jo pystysuora rajoite! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + Valitulla reunalla on jo pystysuora rajoite! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Valitse pisteet luonnoksesta. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Valitse kaksi pistettä luonnoksesta. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Valitse pisteet luonnoksesta. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Valitse kaksi pistettä luonnoksesta. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Valitse yksi viiva luonnoksesta. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Valitse kaksi viivaa luonnoksesta. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Valitse kaksi viivaa luonnoksesta. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Muokkaa luonnosta + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Dialogi on jo avoinna tehtäväpaneelissa + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Haluatko sulkea tämän ikkunan? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Several sub-elements selected + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - You have to select a single face as support for a sketch! + + Sketch axes cannot be used in equality constraints + - No support face selected - No support face selected + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - You have to select a face as support for a sketch! + + Cannot add a constraint between external geometries! + - No planar support - No planar support + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - You need a planar face as support for a sketch! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Valitse yksi viiva luonnoksesta. - - + + Select two lines from the sketch. + Valitse kaksi viivaa luonnoksesta. + + + Select exactly two lines from the sketch. + Valitse kaksi viivaa luonnoksesta. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Muokkaa luonnosta + + + + A dialog is already open in the task panel + Dialogi on jo avoinna tehtäväpaneelissa + + + + Do you want to close this dialog? + Haluatko sulkea tämän ikkunan? + + + + Several sub-elements selected + Several sub-elements selected + + + + You have to select a single face as support for a sketch! + You have to select a single face as support for a sketch! + + + + No support face selected + No support face selected + + + + You have to select a face as support for a sketch! + You have to select a face as support for a sketch! + + + + No planar support + No planar support + + + + You need a planar face as support for a sketch! + You need a planar face as support for a sketch! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-Plane + XY-Plane + XY-Plane - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Lisää päiväys + + Insert datum + Lisää päiväys - datum: - päiväys: + + datum: + päiväys: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-Plane + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Lomake + + Form + Lomake - Filter: - Suodatin: + + Filter: + Suodatin: - All - Kaikki + + All + Kaikki - Normal - Normaali + + Normal + Normaali - Datums - Päiväykset + + Datums + Päiväykset - Named - Nimetty + + Named + Nimetty - - Constraints - Rajoitteet + + Constraints + Rajoitteet - - + + SketcherGui::TaskSketcherGeneral - - Form - Lomake + + Form + Lomake - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Ratkaisematta + Unsolved + Ratkaisematta - Grid Snap - Ruudukkoon kohdistus + Grid Snap + Ruudukkoon kohdistus - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - auto constraints + auto constraints + auto constraints - - Edit controls - Muokkaa säätöjä + + Edit controls + Muokkaa säätöjä - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Rajoitteet + Constraints + Rajoitteet - - + + TaskSketcherCreateCommands - Appearance - Ulkoasu + Appearance + Ulkoasu - - + + TaskSketcherGeneral - Edit controls - Muokkaa säätöjä + Edit controls + Muokkaa säätöjä - - + + TaskSketcherMessages - - Form - Lomake + + Form + Lomake - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Lunnostelija + + Sketcher + Lunnostelija - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Luonnostelijan geometriat + Sketcher geoms + Luonnostelijan geometriat - Sketcher constraints - Sketcher constraints + + Sketcher constraints + Sketcher constraints - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts index fd6df2110..8946bc152 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_fr.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain angle - Contrainte angulaire + + Constrain angle + Contrainte angulaire - Fix the angle of a line or the angle between two lines - Fixer l'angle d'une ligne ou l'angle entre deux lignes + + Fix the angle of a line or the angle between two lines + Fixer l'angle d'une ligne ou l'angle entre deux lignes - - + + CmdSketcherConstrainCoincident - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain coincident - Contrainte coïncidente + + Constrain coincident + Contrainte coïncidente - Create a coincident constraint on the selected item - Créer une contrainte coïncidente sur les éléments sélectionnés + + Create a coincident constraint on the selected item + Créer une contrainte coïncidente sur les éléments sélectionnés - - + + CmdSketcherConstrainDistance - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain distance - Contrainte dimensionnelle + + Constrain distance + Contrainte dimensionnelle - Fix a length of a line or the distance between a line and a vertex - Fixer la longueur d'une ligne ou la distance entre une ligne et un point + + Fix a length of a line or the distance between a line and a vertex + Fixer la longueur d'une ligne ou la distance entre une ligne et un point - - + + CmdSketcherConstrainDistanceX - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain vertical distance - Contrainte distance verticale + + Constrain horizontal distance + Contrainte distance horizontale - Fix the horizontal distance between two points or line ends - Fixer la distance horizontale entre deux points ou extrémités de ligne + Constrain vertical distance + Contrainte distance verticale - - + + + Fix the horizontal distance between two points or line ends + Fixer la distance horizontale entre deux points ou extrémités de ligne + + + CmdSketcherConstrainDistanceY - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain horizontal distance - Contrainte distance horizontale + + Constrain vertical distance + Contrainte distance verticale - Fix the vertical distance between two points or line ends - Fixer la distance verticale entre deux points ou extrémités de ligne + Constrain horizontal distance + Contrainte distance horizontale - - + + + Fix the vertical distance between two points or line ends + Fixer la distance verticale entre deux points ou extrémités de ligne + + + CmdSketcherConstrainEqual - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain equal - Contrainte d'égalité + + Constrain equal + Contrainte d'égalité - Create an equality constraint between two lines or between circles and arcs - Créer une contrainte d'égalité entre deux lignes ou entre des cercles et/ou des arcs + + Create an equality constraint between two lines or between circles and arcs + Créer une contrainte d'égalité entre deux lignes ou entre des cercles et/ou des arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain horizontally - Contrainte horizontale + + Constrain horizontally + Contrainte horizontale - Create a horizontal constraint on the selected item - Créer une contrainte horizontale sur l'élément sélectionné + + Create a horizontal constraint on the selected item + Créer une contrainte horizontale sur l'élément sélectionné - - + + CmdSketcherConstrainLock - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain lock - Contrainte fixe + + Constrain lock + Contrainte fixe - Create a lock constraint on the selected item - Créer une contrainte fixe sur l'élément sélectionné + + Create a lock constraint on the selected item + Créer une contrainte fixe sur l'élément sélectionné - - + + CmdSketcherConstrainParallel - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain parallel - Contrainte parallèle + + Constrain parallel + Contrainte parallèle - Create a parallel constraint between two lines - Créer une contrainte parallèle entre deux lignes + + Create a parallel constraint between two lines + Créer une contrainte parallèle entre deux lignes - - + + CmdSketcherConstrainPerpendicular - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain perpendicular - Contrainte perpendiculaire + + Constrain perpendicular + Contrainte perpendiculaire - Create a Perpendicular constraint between two lines - Créer une contrainte perpendiculaire entre deux lignes + + Create a Perpendicular constraint between two lines + Créer une contrainte perpendiculaire entre deux lignes - - + + CmdSketcherConstrainPointOnObject - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain point onto object - Contrainte point sur objet + + Constrain point onto object + Contrainte point sur objet - Fix a point onto an object - Fixer un point sur un objet + + Fix a point onto an object + Fixer un point sur un objet - - + + CmdSketcherConstrainRadius - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain radius - Contrainte radiale + + Constrain radius + Contrainte radiale - Fix the radius of a circle or an arc - Fixer le rayon d'un cercle ou d'un arc + + Fix the radius of a circle or an arc + Fixer le rayon d'un cercle ou d'un arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain symmetrical - Contrainte symétrique + + Constrain symmetrical + Contrainte symétrique - Create an symmetry constraint between two points with respect to a line - Créer une contrainte symétrique entre deux points par rapport à une ligne + + Create an symmetry constraint between two points with respect to a line + Créer une contrainte symétrique entre deux points par rapport à une ligne - - + + CmdSketcherConstrainTangent - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain tangent - Contrainte tangente + + Constrain tangent + Contrainte tangente - Create a tangent constraint between two entities - Créer une contrainte tangente entre deux entités + + Create a tangent constraint between two entities + Créer une contrainte tangente entre deux entités - - + + CmdSketcherConstrainVertical - Sketcher - Esquisseur + + Sketcher + Esquisseur - Constrain vertically - Contrainte verticale + + Constrain vertically + Contrainte verticale - Create a vertical constraint on the selected item - Créer une contrainte verticale sur l'élément sélectionné + + Create a vertical constraint on the selected item + Créer une contrainte verticale sur l'élément sélectionné - - + + CmdSketcherCreateArc - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create arc - Créer un arc + + Create arc + Créer un arc - Create an arc in the sketch - Créer un arc dans l'esquisse + + Create an arc in the sketch + Créer un arc dans l'esquisse - - + + CmdSketcherCreateCircle - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create circle - Créer un cercle + + Create circle + Créer un cercle - Create a circle in the sketch - Créer un cercle dans l'esquisse + + Create a circle in the sketch + Créer un cercle dans l'esquisse - - + + CmdSketcherCreateDraftLine - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create draft line - Créer une ligne de construction + + Create draft line + Créer une ligne de construction - Create a draft line in the sketch - Créer une ligne de construction dans l'esquisse + + Create a draft line in the sketch + Créer une ligne de construction dans l'esquisse - - + + CmdSketcherCreateFillet - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create fillet - Créer un congé + + Create fillet + Créer un congé - Create a fillet between two lines or at a coincident point - Créer un congé entre deux lignes ou sur un point coïncident + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Créer un congé entre deux lignes ou sur un point coïncident + + + CmdSketcherCreateLine - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create line - Créer une ligne + + Create line + Créer une ligne - Create a line in the sketch - Créer une ligne dans l'esquisse + + Create a line in the sketch + Créer une ligne dans l'esquisse - - + + CmdSketcherCreatePoint - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create point - Créer un point + + Create point + Créer un point - Create a point in the sketch - Créer un point dans l'esquisse + + Create a point in the sketch + Créer un point dans l'esquisse - - + + CmdSketcherCreatePolyline - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create polyline - Créer une polyligne + + Create polyline + Créer une polyligne - Create a polyline in the sketch - Créer une polyligne dans l'esquisse + + Create a polyline in the sketch + Créer une polyligne dans l'esquisse - - + + CmdSketcherCreateRectangle - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create rectangle - Créer un rectangle + + Create rectangle + Créer un rectangle - Create a rectangle in the sketch - Créer un rectangle dans l'esquisse + + Create a rectangle in the sketch + Créer un rectangle dans l'esquisse - - + + CmdSketcherCreateText - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create text - Insérer du texte + + Create text + Insérer du texte - Create text in the sketch - Insérer un texte dans l'esquisse + + Create text in the sketch + Insérer un texte dans l'esquisse - - + + + CmdSketcherExternal + + + Sketcher + Esquisseur + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Leave sketch - Quitter l'esquisse + + Leave sketch + Quitter l'esquisse - Close the editing of the sketch - Sortir de l'édition de l'esquisse + + Close the editing of the sketch + Sortir de l'édition de l'esquisse - - + + CmdSketcherMapSketch - Sketcher - Esquisseur + + Sketcher + Esquisseur - Map sketch to face... - Appliquer une esquisse sur une face... + + Map sketch to face... + Appliquer une esquisse sur une face... - Map a sketch to a face - Appliquer une esquisse sur une face + + Map a sketch to a face + Appliquer une esquisse sur une face - - + + CmdSketcherNewSketch - Sketcher - Esquisseur + + Sketcher + Esquisseur - Create sketch - Créer une esquisse + + Create sketch + Créer une esquisse - Create a new or edit the selected sketch - Créer une nouvelle esquisse ou modifier l'esquisse sélectionnée + + Create a new or edit the selected sketch + Créer une nouvelle esquisse ou modifier l'esquisse sélectionnée - Create a new sketch - Créer une nouvelle esquisse + Create a new sketch + Créer une nouvelle esquisse - - + + CmdSketcherNewSketchSF - Sketcher - Esquisseur + Sketcher + Esquisseur - Sketchflat sketch - Esquisse Sketchflat + Sketchflat sketch + Esquisse Sketchflat - Create a new sketchflat sketch by starting externel editor - Créer une nouvelle esquisse Sketchflat en lançant l'éditeur externe + Create a new sketchflat sketch by starting externel editor + Créer une nouvelle esquisse Sketchflat en lançant l'éditeur externe - - + + CmdSketcherToggleConstruction - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Toggle construction line - Basculer ligne de construction + + Toggle construction line + Basculer ligne de construction - Toggles the currently selected lines to/from construction mode - Bascule les lignes sélectionnées vers le/du mode de construction + + Toggles the currently selected lines to/from construction mode + Bascule les lignes sélectionnées vers le/du mode de construction - - + + CmdSketcherTrimming - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Trim edge - Ajuster l'arête + + Trim edge + Ajuster l'arête - Trims an edge with respect to the picked position - Ajuste une arête par rapport à la position sélectionnée + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Ajuste une arête par rapport à la position sélectionnée + + + CmdSketcherViewSketch - - Sketcher - Esquisseur + + Sketcher + Esquisseur - View sketch - Vue de l'esquisse + + View sketch + Vue de l'esquisse - View sketch perpendicular to sketch plane - Vue normale au plan d'esquisse + + View sketch perpendicular to sketch plane + Vue normale au plan d'esquisse - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Apparence + + Appearance + Apparence - - + + QObject - - Wrong selection - Mauvaise sélection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Mauvaise sélection - Select edge(s) from the sketch. - Sélectionnez une ou des arêtes de l'esquisse. + + Select edge(s) from the sketch. + Sélectionnez une ou des arêtes de l'esquisse. - - Select an edge from the sketch. - Sélectionnez une arête de l'esquisse. + + + Select an edge from the sketch. + Sélectionnez une arête de l'esquisse. - Double constraint - Double contrainte + + + Double constraint + Double contrainte - The selected edge has already a horizontal constraint! - L'arête sélectionnée a déjà une contrainte horizontale ! + + + The selected edge has already a horizontal constraint! + L'arête sélectionnée a déjà une contrainte horizontale ! - Impossible constraint - Contrainte impossible + + + + + + + Impossible constraint + Contrainte impossible - Only sketch and its support is allowed to select - Seule la sélection d'une esquisse et de sa face de support est permise + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Un des éléments sélectionnés doit être dans l'esquisse + + + + Only sketch and its support is allowed to select + Seule la sélection d'une esquisse et de sa face de support est permise - The selected edge is not a line segment - L'arête sélectionnée n'est pas un segment de ligne + + One of the selected has to be on the sketch + Un des éléments sélectionnés doit être dans l'esquisse - The selected edge has already a vertical constraint! - L'arête sélectionnée a déjà une contrainte verticale ! + + + The selected edge is not a line segment + L'arête sélectionnée n'est pas un segment de ligne - Select entities from the sketch. - Sélectionnez des entités de l'esquisse. + + + The selected edge has already a vertical constraint! + L'arête sélectionnée a déjà une contrainte verticale ! - Select exactly one entity from the sketch. - Sélectionnez seulement une entité de l'esquisse. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Sélectionnez les sommets de l'esquisse. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Sélectionnez exactement deux sommets de l'esquisse. + + Select entities from the sketch. + Sélectionnez des entités de l'esquisse. - Select exactly one line or one point and one line or two points from the sketch. - Sélectionnez soit une seule ligne, ou un point et une ligne, ou deux points de l'esquisse. + + + Select exactly one entity from the sketch. + Sélectionnez seulement une entité de l'esquisse. - Select exactly one point and one object from the sketch. - Sélectionnez exactement un point et un objet de l'esquisse. + + + + + + + Select vertexes from the sketch. + Sélectionnez les sommets de l'esquisse. - Select exactly one line or up to two points from the sketch. - Sélectionnez soit une seule ligne ou jusqu'à deux points de l'esquisse. + + + + Select exactly two vertexes from the sketch. + Sélectionnez exactement deux sommets de l'esquisse. - Select two or more lines from the sketch. - Sélectionnez au moins deux lignes de l'esquisse. + + + Select exactly one line or one point and one line or two points from the sketch. + Sélectionnez soit une seule ligne, ou un point et une ligne, ou deux points de l'esquisse. - Select at least two lines from the sketch. - Sélectionner au moins deux lignes de l'esquisse. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Sélectionnez une ligne valide + + + Select exactly one point and one object from the sketch. + Sélectionnez exactement un point et un objet de l'esquisse. - The selected edge is not a valid line - L'arête sélectionnée n'est pas une ligne valide + + + + + Select exactly one line or up to two points from the sketch. + Sélectionnez soit une seule ligne ou jusqu'à deux points de l'esquisse. - Select exactly one arc or circle from the sketch. - Sélectionnez soit un arc ou un cercle de l'esquisse. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Sélectionnez soit une ou deux lignes de l'esquisse. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Sélectionnez deux arêtes de l'esquisse. + + Select two or more lines from the sketch. + Sélectionnez au moins deux lignes de l'esquisse. - Select atleast two lines from the sketch. - Sélectionner au moins deux lignes de l'esquisse. + + Select at least two lines from the sketch. + Sélectionner au moins deux lignes de l'esquisse. - Select exactly two same geometries - Sélectionnez exactement deux géométries semblables + + Select a valid line + Sélectionnez une ligne valide - Select valid geometries - Sélectionnez des géométries valides + + The selected edge is not a valid line + L'arête sélectionnée n'est pas une ligne valide - Select geometry of similar type - Sélectionnez une géométrie similaire + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Sélectionnez deux points et une ligne de l'esquisse. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Sélectionnez seulement une ligne dans l'esquisse. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Sélectionnez deux lignes dans l'esquisse. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Sélectionnez exactement deux lignes dans l'esquisse. + + + + Select exactly one arc or circle from the sketch. + Sélectionnez soit un arc ou un cercle de l'esquisse. - Select two entities from the sketch. - Sélectionnez deux entités de l'esquisse. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Sélectionnez exactement deux entités de l'esquisse. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Modifier l'esquisse + + Select exactly one or two lines from the sketch. + Sélectionnez soit une ou deux lignes de l'esquisse. - A dialog is already open in the task panel - Une boîte de dialogue est déjà ouverte dans le panneau des tâches + + Select two edges from the sketch. + Sélectionnez deux arêtes de l'esquisse. - Do you want to close this dialog? - Voulez-vous fermer cette boîte de dialogue ? + + Select atleast two lines from the sketch. + Sélectionner au moins deux lignes de l'esquisse. - - Several sub-elements selected - Plusieurs sous-éléments sélectionnés + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Vous devez sélectionner une seule face comme support pour une esquisse ! + + Sketch axes cannot be used in equality constraints + - No support face selected - Aucune face de support sélectionnée + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Vous devez sélectionner un plan ou une face plane comme support de l'esquisse ! + + Cannot add a constraint between external geometries! + - No planar support - Aucun plan de support + Select exactly two same geometries + Sélectionnez exactement deux géométries semblables - You need a planar face as support for a sketch! - Vous avez besoin d'un plan ou d'une face plane comme support de l'esquisse ! + Select valid geometries + Sélectionnez des géométries valides - - Distance constraint - Contrainte de distance + Select geometry of similar type + Sélectionnez une géométrie similaire - Not allowed to edit the datum because the sketch contains conflicting constraints - L'édition de cette valeur n'est pas autorisée car l'esquisse contient des contraintes conflictuelles + + + + Select two points and one line from the sketch. + Sélectionnez deux points et une ligne de l'esquisse. - Dimensional constraint - Contrainte de dimension + Select exactly one line from the sketch. + Sélectionnez seulement une ligne dans l'esquisse. - - + + Select two lines from the sketch. + Sélectionnez deux lignes dans l'esquisse. + + + Select exactly two lines from the sketch. + Sélectionnez exactement deux lignes dans l'esquisse. + + + + + Select two entities from the sketch. + Sélectionnez deux entités de l'esquisse. + + + + + + + Select exactly two entities from the sketch. + Sélectionnez exactement deux entités de l'esquisse. + + + + Edit sketch + Modifier l'esquisse + + + + A dialog is already open in the task panel + Une boîte de dialogue est déjà ouverte dans le panneau des tâches + + + + Do you want to close this dialog? + Voulez-vous fermer cette boîte de dialogue ? + + + + Several sub-elements selected + Plusieurs sous-éléments sélectionnés + + + + You have to select a single face as support for a sketch! + Vous devez sélectionner une seule face comme support pour une esquisse ! + + + + No support face selected + Aucune face de support sélectionnée + + + + You have to select a face as support for a sketch! + Vous devez sélectionner un plan ou une face plane comme support de l'esquisse ! + + + + No planar support + Aucun plan de support + + + + You need a planar face as support for a sketch! + Vous avez besoin d'un plan ou d'une face plane comme support de l'esquisse ! + + + + Distance constraint + Contrainte de distance + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + L'édition de cette valeur n'est pas autorisée car l'esquisse contient des contraintes conflictuelles + + + + Dimensional constraint + Contrainte de dimension + + + SketchOrientationDialog - - Choose orientation - Sélectionner l'orientation + Choose orientation + Sélectionner l'orientation - Sketch orientation - Orientation de l'esquisse + Sketch orientation + Orientation de l'esquisse - XY-Plane - Plan XY + XY-Plane + Plan XY - XZ-Plane - Plan XZ + XZ-Plane + Plan XZ - YZ-Plane - Plan YZ + YZ-Plane + Plan YZ - Reverse direction - Inverser la direction + Reverse direction + Inverser la direction - Offset: - Décalage : + Offset: + Décalage : - - + + SketcherGui::InsertDatum - - Insert datum - Insérer référence + + Insert datum + Insérer référence - datum: - Référence : + + datum: + Référence : - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Sélectionner l'orientation + + + + Sketch orientation + Orientation de l'esquisse + + + + XY-Plane + Plan XY + + + + XZ-Plane + Plan XZ + + + + YZ-Plane + Plan YZ + + + + Reverse direction + Inverser la direction + + + + Offset: + Décalage : + + + SketcherGui::TaskSketcherConstrains - - Form - Formulaire + + Form + Formulaire - Filter: - Filtre : + + Filter: + Filtre : - All - Tous + + All + Tous - Normal - Normal + + Normal + Normal - Datums - Références + + Datums + Références - Named - Nommé + + Named + Nommé - - Constraints - Contraintes + + Constraints + Contraintes - - + + SketcherGui::TaskSketcherGeneral - - Form - Formulaire + + Form + Formulaire - Grid size: - Taille de la grille: + + Grid size: + Taille de la grille: - Grid snap - Ancrage à la grille + + Grid snap + Ancrage à la grille - Unsolved - Non résolu + Unsolved + Non résolu - Grid Snap - Alignement de grille + Grid Snap + Alignement de grille - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0,2 mm + 0.2 mm + 0,2 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Contraintes auto + + Auto constraints + Contraintes auto - auto constraints - contraintes automatiques + auto constraints + contraintes automatiques - - Edit controls - Modifier les contrôles + + Edit controls + Modifier les contrôles - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Messages du solveur + + Solver messages + Messages du solveur - - + + TaskSketcherConstrains - Constraints - Contraintes + Constraints + Contraintes - - + + TaskSketcherCreateCommands - Appearance - Apparence + Appearance + Apparence - - + + TaskSketcherGeneral - Edit controls - Modifier les contrôles + Edit controls + Modifier les contrôles - - + + TaskSketcherMessages - - Form - Formulaire + + Form + Formulaire - Undefined degrees of freedom - Degrés de liberté non définis + + Undefined degrees of freedom + Degrés de liberté non définis - Not solved yet - Pas encore résolu + + Not solved yet + Pas encore résolu - - + + Workbench - - Sketcher - Esquisseur + + Sketcher + Esquisseur - Sketcher geometries - Géométries d'esquisse + + Sketcher geometries + Géométries d'esquisse - Sketcher geoms - Géométries + Sketcher geoms + Géométries - Sketcher constraints - Contraintes d'esquisse + + Sketcher constraints + Contraintes d'esquisse - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts index 003063f07..207c55932 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hr.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Skica + + Sketcher + Skica - Constrain angle - OgraniÄi kut + + Constrain angle + OgraniÄi kut - Fix the angle of a line or the angle between two lines - Fiksiraj kut linije ili kut izmeÄ‘u dvije linije + + Fix the angle of a line or the angle between two lines + Fiksiraj kut linije ili kut izmeÄ‘u dvije linije - - + + CmdSketcherConstrainCoincident - Sketcher - Skica + + Sketcher + Skica - Constrain coincident - OgraniÄiti zajedniÄko + + Constrain coincident + OgraniÄiti zajedniÄko - Create a coincident constraint on the selected item - Napravi zajedniÄko ograniÄenje na odabranim jedinicama + + Create a coincident constraint on the selected item + Napravi zajedniÄko ograniÄenje na odabranim jedinicama - - + + CmdSketcherConstrainDistance - Sketcher - Skica + + Sketcher + Skica - Constrain distance - OgraniÄi udaljenost + + Constrain distance + OgraniÄi udaljenost - Fix a length of a line or the distance between a line and a vertex - OgraniÄi duljinu linije ili udaljenost izmeÄ‘u linije i vrha + + Fix a length of a line or the distance between a line and a vertex + OgraniÄi duljinu linije ili udaljenost izmeÄ‘u linije i vrha - - + + CmdSketcherConstrainDistanceX - Sketcher - Skica + + Sketcher + Skica - Constrain vertical distance - OgraniÄi vertikalnu udaljenost + + Constrain horizontal distance + OgraniÄi horizontalnu udaljenost - Fix the horizontal distance between two points or line ends - OgraniÄi horizontalnu udaljenost izmeÄ‘u dvije toÄke ili krajeva linije + Constrain vertical distance + OgraniÄi vertikalnu udaljenost - - + + + Fix the horizontal distance between two points or line ends + OgraniÄi horizontalnu udaljenost izmeÄ‘u dvije toÄke ili krajeva linije + + + CmdSketcherConstrainDistanceY - Sketcher - Skica + + Sketcher + Skica - Constrain horizontal distance - OgraniÄi horizontalnu udaljenost + + Constrain vertical distance + OgraniÄi vertikalnu udaljenost - Fix the vertical distance between two points or line ends - OgraniÄi vertikalnu udaljenost izmeÄ‘u dvije toÄke ili krajeva linije + Constrain horizontal distance + OgraniÄi horizontalnu udaljenost - - + + + Fix the vertical distance between two points or line ends + OgraniÄi vertikalnu udaljenost izmeÄ‘u dvije toÄke ili krajeva linije + + + CmdSketcherConstrainEqual - Sketcher - Skica + + Sketcher + Skica - Constrain equal - OgraniÄi jednaku duljinu + + Constrain equal + OgraniÄi jednaku duljinu - Create an equality constraint between two lines or between circles and arcs - Napravite ograniÄenje jednakosti izmeÄ‘u dvije linije ili izmeÄ‘u kružnica i lukova + + Create an equality constraint between two lines or between circles and arcs + Napravite ograniÄenje jednakosti izmeÄ‘u dvije linije ili izmeÄ‘u kružnica i lukova - - + + CmdSketcherConstrainHorizontal - Sketcher - Skica + + Sketcher + Skica - Constrain horizontally - OgraniÄi vodoravno + + Constrain horizontally + OgraniÄi vodoravno - Create a horizontal constraint on the selected item - Napravi vodoravno ograniÄenje na odabranoj jedinici + + Create a horizontal constraint on the selected item + Napravi vodoravno ograniÄenje na odabranoj jedinici - - + + CmdSketcherConstrainLock - Sketcher - Skica + + Sketcher + Skica - Constrain lock - OgraniÄi pomicanje + + Constrain lock + OgraniÄi pomicanje - Create a lock constraint on the selected item - Napravi ograniÄenje fiksiranja na odabranim stavkama + + Create a lock constraint on the selected item + Napravi ograniÄenje fiksiranja na odabranim stavkama - - + + CmdSketcherConstrainParallel - Sketcher - Skica + + Sketcher + Skica - Constrain parallel - OgraniÄi paralelno + + Constrain parallel + OgraniÄi paralelno - Create a parallel constraint between two lines - Napravi paralelno ograniÄenje izmeÄ‘u dvije linije + + Create a parallel constraint between two lines + Napravi paralelno ograniÄenje izmeÄ‘u dvije linije - - + + CmdSketcherConstrainPerpendicular - Sketcher - Skica + + Sketcher + Skica - Constrain perpendicular - OgraniÄi okomito + + Constrain perpendicular + OgraniÄi okomito - Create a Perpendicular constraint between two lines - Napravi okomito ograniÄenje izmeÄ‘u dvije linije + + Create a Perpendicular constraint between two lines + Napravi okomito ograniÄenje izmeÄ‘u dvije linije - - + + CmdSketcherConstrainPointOnObject - Sketcher - Skica + + Sketcher + Skica - Constrain point onto object - OgraniÄi toÄku na objekt + + Constrain point onto object + OgraniÄi toÄku na objekt - Fix a point onto an object - Fiksiraj toÄku na objekt + + Fix a point onto an object + Fiksiraj toÄku na objekt - - + + CmdSketcherConstrainRadius - Sketcher - Skica + + Sketcher + Skica - Constrain radius - OgraniÄi radijus + + Constrain radius + OgraniÄi radijus - Fix the radius of a circle or an arc - Fiksiraj radijus kruga ili luka + + Fix the radius of a circle or an arc + Fiksiraj radijus kruga ili luka - - + + CmdSketcherConstrainSymmetric - Sketcher - Skica + + Sketcher + Skica - Constrain symmetrical - OgraniÄi simetrijski + + Constrain symmetrical + OgraniÄi simetrijski - Create an symmetry constraint between two points with respect to a line - Napravite simetrijsko ograniÄenje izmeÄ‘u dvije toÄke u odnosu na liniju + + Create an symmetry constraint between two points with respect to a line + Napravite simetrijsko ograniÄenje izmeÄ‘u dvije toÄke u odnosu na liniju - - + + CmdSketcherConstrainTangent - Sketcher - Skica + + Sketcher + Skica - Constrain tangent - OgraniÄi tangentno + + Constrain tangent + OgraniÄi tangentno - Create a tangent constraint between two entities - Napravi tangentno ograniÄenje izmeÄ‘u dva entiteta + + Create a tangent constraint between two entities + Napravi tangentno ograniÄenje izmeÄ‘u dva entiteta - - + + CmdSketcherConstrainVertical - Sketcher - Skica + + Sketcher + Skica - Constrain vertically - OgraniÄi okomito + + Constrain vertically + OgraniÄi okomito - Create a vertical constraint on the selected item - Napravi okomito ograniÄenje na odabranoj jedinici + + Create a vertical constraint on the selected item + Napravi okomito ograniÄenje na odabranoj jedinici - - + + CmdSketcherCreateArc - - Sketcher - Skica + + Sketcher + Skica - Create arc - Napravi luk + + Create arc + Napravi luk - Create an arc in the sketch - Napravite luk u skici + + Create an arc in the sketch + Napravite luk u skici - - + + CmdSketcherCreateCircle - Sketcher - Skica + + Sketcher + Skica - Create circle - Napravi krug + + Create circle + Napravi krug - Create a circle in the sketch - Napravi krug u skici + + Create a circle in the sketch + Napravi krug u skici - - + + CmdSketcherCreateDraftLine - Sketcher - Skica + + Sketcher + Skica - Create draft line - Napravi liniju + + Create draft line + Napravi liniju - Create a draft line in the sketch - Napravi liniju u skici + + Create a draft line in the sketch + Napravi liniju u skici - - + + CmdSketcherCreateFillet - Sketcher - Skica + + Sketcher + Skica - Create fillet - Napravi obrub + + Create fillet + Napravi obrub - Create a fillet between two lines or at a coincident point - Napravi obrub izmeÄ‘u linija ili u podudarnoj toÄki + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Napravi obrub izmeÄ‘u linija ili u podudarnoj toÄki + + + CmdSketcherCreateLine - Sketcher - Skica + + Sketcher + Skica - Create line - Napravi liniju + + Create line + Napravi liniju - Create a line in the sketch - Napravi liniju u skici + + Create a line in the sketch + Napravi liniju u skici - - + + CmdSketcherCreatePoint - Sketcher - Skica + + Sketcher + Skica - Create point - Napravi toÄku + + Create point + Napravi toÄku - Create a point in the sketch - Napravi toÄku u skici + + Create a point in the sketch + Napravi toÄku u skici - - + + CmdSketcherCreatePolyline - Sketcher - Skica + + Sketcher + Skica - Create polyline - Napravi poliliniju + + Create polyline + Napravi poliliniju - Create a polyline in the sketch - Napravite poliliniju u skici + + Create a polyline in the sketch + Napravite poliliniju u skici - - + + CmdSketcherCreateRectangle - Sketcher - Skica + + Sketcher + Skica - Create rectangle - Napravi pravokutnik + + Create rectangle + Napravi pravokutnik - Create a rectangle in the sketch - Napravi pravokutnik u skici + + Create a rectangle in the sketch + Napravi pravokutnik u skici - - + + CmdSketcherCreateText - Sketcher - Skica + + Sketcher + Skica - Create text - Napravi tekst + + Create text + Napravi tekst - Create text in the sketch - Napravi tekst u skici + + Create text in the sketch + Napravi tekst u skici - - + + + CmdSketcherExternal + + + Sketcher + Skica + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Skica + + Sketcher + Skica - Leave sketch - Zatvori skicu + + Leave sketch + Zatvori skicu - Close the editing of the sketch - Zatvori ureÄ‘ivanje skice + + Close the editing of the sketch + Zatvori ureÄ‘ivanje skice - - + + CmdSketcherMapSketch - Sketcher - Skica + + Sketcher + Skica - Map sketch to face... - Povezuje skicu sa povrÅ¡inom ... + + Map sketch to face... + Povezuje skicu sa povrÅ¡inom ... - Map a sketch to a face - Mapiraj skicu na povrÅ¡inu + + Map a sketch to a face + Mapiraj skicu na povrÅ¡inu - - + + CmdSketcherNewSketch - Sketcher - Skica + + Sketcher + Skica - Create sketch - Napravite skicu + + Create sketch + Napravite skicu - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Napravi novu skicu + Create a new sketch + Napravi novu skicu - - + + CmdSketcherNewSketchSF - Sketcher - Skica + Sketcher + Skica - Sketchflat sketch - Sketchflat skica + Sketchflat sketch + Sketchflat skica - Create a new sketchflat sketch by starting externel editor - Napravi novu sketchflat skicu pokretanjem vanjskog urednika + Create a new sketchflat sketch by starting externel editor + Napravi novu sketchflat skicu pokretanjem vanjskog urednika - - + + CmdSketcherToggleConstruction - - Sketcher - Skica + + Sketcher + Skica - Toggle construction line - Prebaci liniju u konstrukciju + + Toggle construction line + Prebaci liniju u konstrukciju - Toggles the currently selected lines to/from construction mode - Prebacuje trenutno odabrane linije u/iz konstrukcijske linije + + Toggles the currently selected lines to/from construction mode + Prebacuje trenutno odabrane linije u/iz konstrukcijske linije - - + + CmdSketcherTrimming - - Sketcher - Skica + + Sketcher + Skica - Trim edge - Skrati rub + + Trim edge + Skrati rub - Trims an edge with respect to the picked position - Presjeca rub s obzirom na odabranu poziciju + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Presjeca rub s obzirom na odabranu poziciju + + + CmdSketcherViewSketch - - Sketcher - Skica + + Sketcher + Skica - View sketch - Pregledaj skicu + + View sketch + Pregledaj skicu - View sketch perpendicular to sketch plane - Vidi skicu okomitu na ravninu skice + + View sketch perpendicular to sketch plane + Vidi skicu okomitu na ravninu skice - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Izgled + + Appearance + Izgled - - + + QObject - - Wrong selection - PogreÅ¡an odabir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + PogreÅ¡an odabir - Select edge(s) from the sketch. - Odaberite rub(ove) iz skice. + + Select edge(s) from the sketch. + Odaberite rub(ove) iz skice. - - Select an edge from the sketch. - Odaberite rub skice. + + + Select an edge from the sketch. + Odaberite rub skice. - Double constraint - OgraniÄenje dvaput + + + Double constraint + OgraniÄenje dvaput - The selected edge has already a horizontal constraint! - Odabrani rub već ima vodoravno ograniÄenje! + + + The selected edge has already a horizontal constraint! + Odabrani rub već ima vodoravno ograniÄenje! - Impossible constraint - Nemoguće ograniÄenje + + + + + + + Impossible constraint + Nemoguće ograniÄenje - Only sketch and its support is allowed to select - DopuÅ¡teno je odabrati samo skicu i njenu podrÅ¡ku + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Jedan od odabranih mora biti na skici + + + + Only sketch and its support is allowed to select + DopuÅ¡teno je odabrati samo skicu i njenu podrÅ¡ku - The selected edge is not a line segment - Odabrani rub nije linija + + One of the selected has to be on the sketch + Jedan od odabranih mora biti na skici - The selected edge has already a vertical constraint! - Odabrani rub već ima okomito ograniÄenje! + + + The selected edge is not a line segment + Odabrani rub nije linija - Select entities from the sketch. - Odaberite entitet iz skice. + + + The selected edge has already a vertical constraint! + Odabrani rub već ima okomito ograniÄenje! - Select exactly one entity from the sketch. - Odaberite toÄno jedan entitet iz skice. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Odaberite vrhove sa skice. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Odaberite toÄno dva vrha iz skice. + + Select entities from the sketch. + Odaberite entitet iz skice. - Select exactly one line or one point and one line or two points from the sketch. - Odaberite toÄno jednu liniju ili jednu toÄku i jednu liniju ili dvije toÄke iz skice. + + + Select exactly one entity from the sketch. + Odaberite toÄno jedan entitet iz skice. - Select exactly one point and one object from the sketch. - Odaberite toÄno jednu toÄku i jedan objekt iz skice. + + + + + + + Select vertexes from the sketch. + Odaberite vrhove sa skice. - Select exactly one line or up to two points from the sketch. - Odaberite toÄno jednu liniju ili do dvije toÄke iz skice. + + + + Select exactly two vertexes from the sketch. + Odaberite toÄno dva vrha iz skice. - Select two or more lines from the sketch. - Odaberite dvije ili viÅ¡e linija iz skice. + + + Select exactly one line or one point and one line or two points from the sketch. + Odaberite toÄno jednu liniju ili jednu toÄku i jednu liniju ili dvije toÄke iz skice. - Select at least two lines from the sketch. - Odaberite barem dvije linije iz skice. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Odaberite valjanu liniju + + + Select exactly one point and one object from the sketch. + Odaberite toÄno jednu toÄku i jedan objekt iz skice. - The selected edge is not a valid line - Odabrani rub nije valjana linija + + + + + Select exactly one line or up to two points from the sketch. + Odaberite toÄno jednu liniju ili do dvije toÄke iz skice. - Select exactly one arc or circle from the sketch. - Odaberite toÄno jedan luk ili krug iz skica. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Odaberite toÄno jednu ili dvije linije iz skice. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Odaberite dva ruba iz skice. + + Select two or more lines from the sketch. + Odaberite dvije ili viÅ¡e linija iz skice. - Select atleast two lines from the sketch. - Odaberite barem dvije linije iz skice. + + Select at least two lines from the sketch. + Odaberite barem dvije linije iz skice. - Select exactly two same geometries - Odaberite toÄno dvije iste geometrije + + Select a valid line + Odaberite valjanu liniju - Select valid geometries - Odaberite valjane geometrije + + The selected edge is not a valid line + Odabrani rub nije valjana linija - Select geometry of similar type - Odaberite geometriju sliÄnog tipa + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Odaberite dvije toÄke i jednu liniju iz skice. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Odaberite samo jednu liniju iz skice. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Odaberite dvije linije iz skice. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Odaberite toÄno dvije linije iz skice. + + + + Select exactly one arc or circle from the sketch. + Odaberite toÄno jedan luk ili krug iz skica. - Select two entities from the sketch. - Odaberite dva entiteta iz skice. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Odaberite toÄno dva entiteta iz skice. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Uredi skicu + + Select exactly one or two lines from the sketch. + Odaberite toÄno jednu ili dvije linije iz skice. - A dialog is already open in the task panel - Dijalog je već otvoren u ploÄi zadataka + + Select two edges from the sketch. + Odaberite dva ruba iz skice. - Do you want to close this dialog? - Želite li zatvoriti ovaj dijalog? + + Select atleast two lines from the sketch. + Odaberite barem dvije linije iz skice. - - Several sub-elements selected - Nekoliko pod-elemenata odabrano + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Morate odabrati jednu povrÅ¡inu kao podrÅ¡ku za skicu! + + Sketch axes cannot be used in equality constraints + - No support face selected - Nije odabrana povrÅ¡ina za podrÅ¡ku + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Morate odabrati povrÅ¡inu kao podrÅ¡ku za skicu! + + Cannot add a constraint between external geometries! + - No planar support - Nema planarni podrÅ¡ku + Select exactly two same geometries + Odaberite toÄno dvije iste geometrije - You need a planar face as support for a sketch! - Trebate planarnu povrÅ¡inu kao podrÅ¡ku za skicu! + Select valid geometries + Odaberite valjane geometrije - - Distance constraint - OgraniÄenje udaljenosti + Select geometry of similar type + Odaberite geometriju sliÄnog tipa - Not allowed to edit the datum because the sketch contains conflicting constraints - Nije dopuÅ¡teno mijenjati podatak, jer skica sadrži proturjeÄna ograniÄenja + + + + Select two points and one line from the sketch. + Odaberite dvije toÄke i jednu liniju iz skice. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Odaberite samo jednu liniju iz skice. - - + + Select two lines from the sketch. + Odaberite dvije linije iz skice. + + + Select exactly two lines from the sketch. + Odaberite toÄno dvije linije iz skice. + + + + + Select two entities from the sketch. + Odaberite dva entiteta iz skice. + + + + + + + Select exactly two entities from the sketch. + Odaberite toÄno dva entiteta iz skice. + + + + Edit sketch + Uredi skicu + + + + A dialog is already open in the task panel + Dijalog je već otvoren u ploÄi zadataka + + + + Do you want to close this dialog? + Želite li zatvoriti ovaj dijalog? + + + + Several sub-elements selected + Nekoliko pod-elemenata odabrano + + + + You have to select a single face as support for a sketch! + Morate odabrati jednu povrÅ¡inu kao podrÅ¡ku za skicu! + + + + No support face selected + Nije odabrana povrÅ¡ina za podrÅ¡ku + + + + You have to select a face as support for a sketch! + Morate odabrati povrÅ¡inu kao podrÅ¡ku za skicu! + + + + No planar support + Nema planarni podrÅ¡ku + + + + You need a planar face as support for a sketch! + Trebate planarnu povrÅ¡inu kao podrÅ¡ku za skicu! + + + + Distance constraint + OgraniÄenje udaljenosti + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Nije dopuÅ¡teno mijenjati podatak, jer skica sadrži proturjeÄna ograniÄenja + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Odaberite orijentaciju + Choose orientation + Odaberite orijentaciju - Sketch orientation - Orijentacija skice + Sketch orientation + Orijentacija skice - XY-Plane - XY ravnina + XY-Plane + XY ravnina - XZ-Plane - XZ-Ravnina + XZ-Plane + XZ-Ravnina - YZ-Plane - YZ-Ravnina + YZ-Plane + YZ-Ravnina - Reverse direction - Obrnutim smjerom + Reverse direction + Obrnutim smjerom - Offset: - Odmak: + Offset: + Odmak: - - + + SketcherGui::InsertDatum - - Insert datum - Umetni datum + + Insert datum + Umetni datum - datum: - datum: + + datum: + datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Odaberite orijentaciju + + + + Sketch orientation + Orijentacija skice + + + + XY-Plane + XY ravnina + + + + XZ-Plane + XZ-Ravnina + + + + YZ-Plane + YZ-Ravnina + + + + Reverse direction + Obrnutim smjerom + + + + Offset: + Odmak: + + + SketcherGui::TaskSketcherConstrains - - Form - Obrazac + + Form + Obrazac - Filter: - Filter: + + Filter: + Filter: - All - Sve + + All + Sve - Normal - Normalno + + Normal + Normalno - Datums - Datumima + + Datums + Datumima - Named - Imenovan + + Named + Imenovan - - Constraints - OgraniÄenja + + Constraints + OgraniÄenja - - + + SketcherGui::TaskSketcherGeneral - - Form - Obrazac + + Form + Obrazac - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - NerijeÅ¡en + Unsolved + NerijeÅ¡en - Grid Snap - OgraniÄenje sa reÅ¡etkom + Grid Snap + OgraniÄenje sa reÅ¡etkom - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto ograniÄenja + + Auto constraints + Auto ograniÄenja - auto constraints - automatska ograniÄenja + auto constraints + automatska ograniÄenja - - Edit controls - Uredi kontrole + + Edit controls + Uredi kontrole - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Poruke Solvera + + Solver messages + Poruke Solvera - - + + TaskSketcherConstrains - Constraints - OgraniÄenja + Constraints + OgraniÄenja - - + + TaskSketcherCreateCommands - Appearance - Izgled + Appearance + Izgled - - + + TaskSketcherGeneral - Edit controls - Uredi kontrole + Edit controls + Uredi kontrole - - + + TaskSketcherMessages - - Form - Obrazac + + Form + Obrazac - Undefined degrees of freedom - NeodreÄ‘eno stupnjeva slobode + + Undefined degrees of freedom + NeodreÄ‘eno stupnjeva slobode - Not solved yet - JoÅ¡ nije rijeÅ¡eno + + Not solved yet + JoÅ¡ nije rijeÅ¡eno - - + + Workbench - - Sketcher - Skica + + Sketcher + Skica - Sketcher geometries - Geometrije skice + + Sketcher geometries + Geometrije skice - Sketcher geoms - Geometrije skice + Sketcher geoms + Geometrije skice - Sketcher constraints - OgraniÄenja u skici + + Sketcher constraints + OgraniÄenja u skici - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts index aba7fea16..63f4a6e6c 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_hu.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain angle - Szög zárolása + + Constrain angle + Szög zárolása - Fix the angle of a line or the angle between two lines - Rögzítsen szöget a vonalon, vagy a szöget két vonalon + + Fix the angle of a line or the angle between two lines + Rögzítsen szöget a vonalon, vagy a szöget két vonalon - - + + CmdSketcherConstrainCoincident - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain coincident - Egymásra llesztés + + Constrain coincident + Egymásra llesztés - Create a coincident constraint on the selected item - Kiválasztott elemek egy egymásra illesztése + + Create a coincident constraint on the selected item + Kiválasztott elemek egy egymásra illesztése - - + + CmdSketcherConstrainDistance - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain distance - Távolság kényszer + + Constrain distance + Távolság kényszer - Fix a length of a line or the distance between a line and a vertex - Vonal hosszának rögzítése vagy adott távolság tartása a vonal és vertex között + + Fix a length of a line or the distance between a line and a vertex + Vonal hosszának rögzítése vagy adott távolság tartása a vonal és vertex között - - + + CmdSketcherConstrainDistanceX - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain vertical distance - Vízszintes függÅ‘leges zárolása + + Constrain horizontal distance + Vízszintes távolság zárolása - Fix the horizontal distance between two points or line ends - Két pont közötti vagy vonal végek közötti vízszintes távolság zárolása + Constrain vertical distance + Vízszintes függÅ‘leges zárolása - - + + + Fix the horizontal distance between two points or line ends + Két pont közötti vagy vonal végek közötti vízszintes távolság zárolása + + + CmdSketcherConstrainDistanceY - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain horizontal distance - Vízszintes távolság zárolása + + Constrain vertical distance + Vízszintes függÅ‘leges zárolása - Fix the vertical distance between two points or line ends - Két pont közötti vagy vonal végek közötti függÅ‘leges távolság zárolása + Constrain horizontal distance + Vízszintes távolság zárolása - - + + + Fix the vertical distance between two points or line ends + Két pont közötti vagy vonal végek közötti függÅ‘leges távolság zárolása + + + CmdSketcherConstrainEqual - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain equal - EgyenlÅ‘ zárolása + + Constrain equal + EgyenlÅ‘ zárolása - Create an equality constraint between two lines or between circles and arcs - Hozzon létre egy egyenlÅ‘ség korlátozást két vonal között, illetve körök és ívek között + + Create an equality constraint between two lines or between circles and arcs + Hozzon létre egy egyenlÅ‘ség korlátozást két vonal között, illetve körök és ívek között - - + + CmdSketcherConstrainHorizontal - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain horizontally - Vízszint kényszer + + Constrain horizontally + Vízszint kényszer - Create a horizontal constraint on the selected item - Vízszintes kényszer létrehozása a kiválasztott elemen + + Create a horizontal constraint on the selected item + Vízszintes kényszer létrehozása a kiválasztott elemen - - + + CmdSketcherConstrainLock - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain lock - Zárolási kényszer + + Constrain lock + Zárolási kényszer - Create a lock constraint on the selected item - A kijelölt elem zárolása + + Create a lock constraint on the selected item + A kijelölt elem zárolása - - + + CmdSketcherConstrainParallel - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain parallel - Párhuzamosság tartása + + Constrain parallel + Párhuzamosság tartása - Create a parallel constraint between two lines - Két vonal közötti párhuzamosság kényszer + + Create a parallel constraint between two lines + Két vonal közötti párhuzamosság kényszer - - + + CmdSketcherConstrainPerpendicular - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain perpendicular - MerÅ‘leges korlát + + Constrain perpendicular + MerÅ‘leges korlát - Create a Perpendicular constraint between two lines - Hozzon létre egy merÅ‘leges korlátot két vonal közt + + Create a Perpendicular constraint between two lines + Hozzon létre egy merÅ‘leges korlátot két vonal közt - - + + CmdSketcherConstrainPointOnObject - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain point onto object - a pont korlátozása az objektumra + + Constrain point onto object + a pont korlátozása az objektumra - Fix a point onto an object - Pont rögzítése egy tárgyra + + Fix a point onto an object + Pont rögzítése egy tárgyra - - + + CmdSketcherConstrainRadius - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain radius - Sugár korlát + + Constrain radius + Sugár korlát - Fix the radius of a circle or an arc - Sugár rögzítése a körre vagy ívre + + Fix the radius of a circle or an arc + Sugár rögzítése a körre vagy ívre - - + + CmdSketcherConstrainSymmetric - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain symmetrical - Szimmetria korlát + + Constrain symmetrical + Szimmetria korlát - Create an symmetry constraint between two points with respect to a line - Hozzon létre egy szimmetria korlátot két pont között egy vanalra való tekintettel + + Create an symmetry constraint between two points with respect to a line + Hozzon létre egy szimmetria korlátot két pont között egy vanalra való tekintettel - - + + CmdSketcherConstrainTangent - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain tangent - Korlátozó érintÅ‘ + + Constrain tangent + Korlátozó érintÅ‘ - Create a tangent constraint between two entities - Hozzon létre egy érintÅ‘ korlátozást két rész között + + Create a tangent constraint between two entities + Hozzon létre egy érintÅ‘ korlátozást két rész között - - + + CmdSketcherConstrainVertical - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Constrain vertically - FüggÅ‘leges kényszerítés + + Constrain vertically + FüggÅ‘leges kényszerítés - Create a vertical constraint on the selected item - FüggÅ‘leges kényszer alkalmazása a kijelölt elemen + + Create a vertical constraint on the selected item + FüggÅ‘leges kényszer alkalmazása a kijelölt elemen - - + + CmdSketcherCreateArc - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create arc - Ãv létrehozása + + Create arc + Ãv létrehozása - Create an arc in the sketch - Ãv létrehozása a vázlaton + + Create an arc in the sketch + Ãv létrehozása a vázlaton - - + + CmdSketcherCreateCircle - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create circle - Kör rajzolása + + Create circle + Kör rajzolása - Create a circle in the sketch - Kör rajzolása a vázlaton + + Create a circle in the sketch + Kör rajzolása a vázlaton - - + + CmdSketcherCreateDraftLine - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create draft line - Vázlatvonal rajzolása + + Create draft line + Vázlatvonal rajzolása - Create a draft line in the sketch - Vázlatvonal rajzolása a vázlaton + + Create a draft line in the sketch + Vázlatvonal rajzolása a vázlaton - - + + CmdSketcherCreateFillet - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create fillet - Lekerekítés létrehozása + + Create fillet + Lekerekítés létrehozása - Create a fillet between two lines or at a coincident point - Hozzon létre egy kitöltést vonalak közt, vagy egy egybeesÅ‘ ponttal + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Hozzon létre egy kitöltést vonalak közt, vagy egy egybeesÅ‘ ponttal + + + CmdSketcherCreateLine - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create line - Vonal rajzolása + + Create line + Vonal rajzolása - Create a line in the sketch - Vonal rajzolása a vázlaton + + Create a line in the sketch + Vonal rajzolása a vázlaton - - + + CmdSketcherCreatePoint - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create point - Pont létrehozása + + Create point + Pont létrehozása - Create a point in the sketch - Pont létrehozása a vázlaton + + Create a point in the sketch + Pont létrehozása a vázlaton - - + + CmdSketcherCreatePolyline - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create polyline - Vonallánc rajzolása + + Create polyline + Vonallánc rajzolása - Create a polyline in the sketch - Vonallánc rajzolása a vázlaton + + Create a polyline in the sketch + Vonallánc rajzolása a vázlaton - - + + CmdSketcherCreateRectangle - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create rectangle - Téglalap rajzolása + + Create rectangle + Téglalap rajzolása - Create a rectangle in the sketch - Téglalap rajzolása a vázlaton + + Create a rectangle in the sketch + Téglalap rajzolása a vázlaton - - + + CmdSketcherCreateText - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create text - Szöveg létrehozása + + Create text + Szöveg létrehozása - Create text in the sketch - Szöveg létrehozása a vázlaton + + Create text in the sketch + Szöveg létrehozása a vázlaton - - + + + CmdSketcherExternal + + + Sketcher + Vázlatkészítõ + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Leave sketch - Vázlat elhagyása + + Leave sketch + Vázlat elhagyása - Close the editing of the sketch - VázlatszerkesztÅ‘ bezárása + + Close the editing of the sketch + VázlatszerkesztÅ‘ bezárása - - + + CmdSketcherMapSketch - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Map sketch to face... - Vázlat leképezés felületre... + + Map sketch to face... + Vázlat leképezés felületre... - Map a sketch to a face - Vázlat leképezése felületre + + Map a sketch to a face + Vázlat leképezése felületre - - + + CmdSketcherNewSketch - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Create sketch - Vázlat létrehozása + + Create sketch + Vázlat létrehozása - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Új vázlat készítése + Create a new sketch + Új vázlat készítése - - + + CmdSketcherNewSketchSF - Sketcher - Vázlatkészítõ + Sketcher + Vázlatkészítõ - Sketchflat sketch - Vázlatsík vázlat + Sketchflat sketch + Vázlatsík vázlat - Create a new sketchflat sketch by starting externel editor - Hozzon létre egy új vázlatsík vázlatot külsÅ‘ szerkesztÅ‘ indításával + Create a new sketchflat sketch by starting externel editor + Hozzon létre egy új vázlatsík vázlatot külsÅ‘ szerkesztÅ‘ indításával - - + + CmdSketcherToggleConstruction - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Toggle construction line - Szerkesztési vonalak átkapcsolása + + Toggle construction line + Szerkesztési vonalak átkapcsolása - Toggles the currently selected lines to/from construction mode - Az aktuálisan kiválasztott vonalak a szerkesztÅ‘ mód -ból/-ba + + Toggles the currently selected lines to/from construction mode + Az aktuálisan kiválasztott vonalak a szerkesztÅ‘ mód -ból/-ba - - + + CmdSketcherTrimming - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Trim edge - Él vágása + + Trim edge + Él vágása - Trims an edge with respect to the picked position - Él levágása, tekintettel a kiválasztott helyzetére + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Él levágása, tekintettel a kiválasztott helyzetére + + + CmdSketcherViewSketch - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - View sketch - vázlat nézet + + View sketch + vázlat nézet - View sketch perpendicular to sketch plane - A vázlat megtekintése merÅ‘leges vázlatsíkra + + View sketch perpendicular to sketch plane + A vázlat megtekintése merÅ‘leges vázlatsíkra - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Megjelenés + + Appearance + Megjelenés - - + + QObject - - Wrong selection - Hibás kijelölés + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Hibás kijelölés - Select edge(s) from the sketch. - A kiválasztott él(ek) a vázlatból való. + + Select edge(s) from the sketch. + A kiválasztott él(ek) a vázlatból való. - - Select an edge from the sketch. - Egy él kiválasztása a vázlaton + + + Select an edge from the sketch. + Egy él kiválasztása a vázlaton - Double constraint - KettÅ‘s kényszer + + + Double constraint + KettÅ‘s kényszer - The selected edge has already a horizontal constraint! - A kiválasztott él már rendelkezik egy vízszintes korláttal! + + + The selected edge has already a horizontal constraint! + A kiválasztott él már rendelkezik egy vízszintes korláttal! - Impossible constraint - Lehetetlen korlátozás + + + + + + + Impossible constraint + Lehetetlen korlátozás - Only sketch and its support is allowed to select - Csak a vázlat és a támogatásy választható + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Az egyik kiválasztottnak vázlaton kell lennie + + + + Only sketch and its support is allowed to select + Csak a vázlat és a támogatásy választható - The selected edge is not a line segment - A kiválasztott él nem egyenes szakasz + + One of the selected has to be on the sketch + Az egyik kiválasztottnak vázlaton kell lennie - The selected edge has already a vertical constraint! - A kiválasztott él már rendelkezik egy függÅ‘leges kényszerrel! + + + The selected edge is not a line segment + A kiválasztott él nem egyenes szakasz - Select entities from the sketch. - Válasszon ki a szerkezetet a vázlatból. + + + The selected edge has already a vertical constraint! + A kiválasztott él már rendelkezik egy függÅ‘leges kényszerrel! - Select exactly one entity from the sketch. - Válasszon ki pontosan egy szerkezetet, a vázlatból. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Csomópont kiválasztása a vázlaton. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Két csomópont kiválasztása a vázlaton. + + Select entities from the sketch. + Válasszon ki a szerkezetet a vázlatból. - Select exactly one line or one point and one line or two points from the sketch. - Válasszon ki pontosan egy sort vagy egy pontot és egy sort és két pontot a vázlatból. + + + Select exactly one entity from the sketch. + Válasszon ki pontosan egy szerkezetet, a vázlatból. - Select exactly one point and one object from the sketch. - Válasszon ki pontosan egy pontot és egy objektumot a vázlatból. + + + + + + + Select vertexes from the sketch. + Csomópont kiválasztása a vázlaton. - Select exactly one line or up to two points from the sketch. - Válasszon ki pontosan egy vonalat, vagy legfeljebb két pontot a vázlatból. + + + + Select exactly two vertexes from the sketch. + Két csomópont kiválasztása a vázlaton. - Select two or more lines from the sketch. - Válasszon ki a két vagy több vonalat a vázlatból. + + + Select exactly one line or one point and one line or two points from the sketch. + Válasszon ki pontosan egy sort vagy egy pontot és egy sort és két pontot a vázlatból. - Select at least two lines from the sketch. - Válasszon ki legalább két vonalat a vázlatból. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Válasszon ki egy érvényes vonalat + + + Select exactly one point and one object from the sketch. + Válasszon ki pontosan egy pontot és egy objektumot a vázlatból. - The selected edge is not a valid line - A kiválasztott él nem érvényes vonal + + + + + Select exactly one line or up to two points from the sketch. + Válasszon ki pontosan egy vonalat, vagy legfeljebb két pontot a vázlatból. - Select exactly one arc or circle from the sketch. - Válasszon ki pontosan egy ívet vagy kört a vázlatból. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Válasszon ki pontosan egy-két vonalat a vázlatból. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Két él kiválasztása a vázlaton. + + Select two or more lines from the sketch. + Válasszon ki a két vagy több vonalat a vázlatból. - Select atleast two lines from the sketch. - Válasszon ki legalább két vonalat a vázlatból. + + Select at least two lines from the sketch. + Válasszon ki legalább két vonalat a vázlatból. - Select exactly two same geometries - Válasszon ki pontosan két azonos geometriát + + Select a valid line + Válasszon ki egy érvényes vonalat - Select valid geometries - Válasszon érvényes geometriákat + + The selected edge is not a valid line + A kiválasztott él nem érvényes vonal - Select geometry of similar type - Válasszon ki a hasonló típusú geometriát + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Válasszon ki két pontot és egy sort a vázlatból. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Egy vonal kiválasztása a vázlaton. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Két vonal kiválasztása a vázlaton. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Két vonal kiválasztása a vázlaton. + + + + Select exactly one arc or circle from the sketch. + Válasszon ki pontosan egy ívet vagy kört a vázlatból. - Select two entities from the sketch. - Válasszon ki két egységet a vázlatból. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Válassza ki pontosan két egységet a vázlatból. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Vázlat szerkesztése + + Select exactly one or two lines from the sketch. + Válasszon ki pontosan egy-két vonalat a vázlatból. - A dialog is already open in the task panel - Egy párbeszédablak már nyitva van a feladat panelen + + Select two edges from the sketch. + Két él kiválasztása a vázlaton. - Do you want to close this dialog? - Biztos be szeretné zárni a párbeszédpanelt? + + Select atleast two lines from the sketch. + Válasszon ki legalább két vonalat a vázlatból. - - Several sub-elements selected - Több elemet jelölt ki + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Egy támogatott ki kell választania felületet a vázlat létrehozásához! + + Sketch axes cannot be used in equality constraints + - No support face selected - A kijelölt felület nem támogatott + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Ki kell választani egy vázlatot támogató felületet! + + Cannot add a constraint between external geometries! + - No planar support - Nem támogatott sík + Select exactly two same geometries + Válasszon ki pontosan két azonos geometriát - You need a planar face as support for a sketch! - A vázlathoz, szükség van egy támogatott sík felületre! + Select valid geometries + Válasszon érvényes geometriákat - - Distance constraint - Távolság korlátozás + Select geometry of similar type + Válasszon ki a hasonló típusú geometriát - Not allowed to edit the datum because the sketch contains conflicting constraints - Nem megengedett, hogy módosítsa a datumot, mert a vázlat tartalmaz egymásnak ellentmondó megszorításokat + + + + Select two points and one line from the sketch. + Válasszon ki két pontot és egy sort a vázlatból. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Egy vonal kiválasztása a vázlaton. - - + + Select two lines from the sketch. + Két vonal kiválasztása a vázlaton. + + + Select exactly two lines from the sketch. + Két vonal kiválasztása a vázlaton. + + + + + Select two entities from the sketch. + Válasszon ki két egységet a vázlatból. + + + + + + + Select exactly two entities from the sketch. + Válassza ki pontosan két egységet a vázlatból. + + + + Edit sketch + Vázlat szerkesztése + + + + A dialog is already open in the task panel + Egy párbeszédablak már nyitva van a feladat panelen + + + + Do you want to close this dialog? + Biztos be szeretné zárni a párbeszédpanelt? + + + + Several sub-elements selected + Több elemet jelölt ki + + + + You have to select a single face as support for a sketch! + Egy támogatott ki kell választania felületet a vázlat létrehozásához! + + + + No support face selected + A kijelölt felület nem támogatott + + + + You have to select a face as support for a sketch! + Ki kell választani egy vázlatot támogató felületet! + + + + No planar support + Nem támogatott sík + + + + You need a planar face as support for a sketch! + A vázlathoz, szükség van egy támogatott sík felületre! + + + + Distance constraint + Távolság korlátozás + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Nem megengedett, hogy módosítsa a datumot, mert a vázlat tartalmaz egymásnak ellentmondó megszorításokat + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Válasszon orientáció + Choose orientation + Válasszon orientáció - Sketch orientation - Vázlat orientáció + Sketch orientation + Vázlat orientáció - XY-Plane - XY-sík + XY-Plane + XY-sík - XZ-Plane - XZ-sík + XZ-Plane + XZ-sík - YZ-Plane - YZ-sík + YZ-Plane + YZ-sík - Reverse direction - Fordított irányban + Reverse direction + Fordított irányban - Offset: - Eltolás: + Offset: + Eltolás: - - + + SketcherGui::InsertDatum - - Insert datum - Adat beszúrása + + Insert datum + Adat beszúrása - datum: - adat: + + datum: + adat: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Válasszon orientáció + + + + Sketch orientation + Vázlat orientáció + + + + XY-Plane + XY-sík + + + + XZ-Plane + XZ-sík + + + + YZ-Plane + YZ-sík + + + + Reverse direction + Fordított irányban + + + + Offset: + Eltolás: + + + SketcherGui::TaskSketcherConstrains - - Form - Űrlap + + Form + Űrlap - Filter: - SzűrÅ‘: + + Filter: + SzűrÅ‘: - All - Minden + + All + Minden - Normal - Normál + + Normal + Normál - Datums - Adatok + + Datums + Adatok - Named - Elnevezés + + Named + Elnevezés - - Constraints - Megkötések + + Constraints + Megkötések - - + + SketcherGui::TaskSketcherGeneral - - Form - Űrlap + + Form + Űrlap - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Megoldatlan + Unsolved + Megoldatlan - Grid Snap - Rácshoz ugrás + Grid Snap + Rácshoz ugrás - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - automatikus megkötések + + Auto constraints + automatikus megkötések - auto constraints - automatikus megkötések + auto constraints + automatikus megkötések - - Edit controls - Szerkesztés ellenÅ‘rzés + + Edit controls + Szerkesztés ellenÅ‘rzés - - + + SketcherGui::TaskSketcherMessages - - Solver messages - megoldási üzenetek + + Solver messages + megoldási üzenetek - - + + TaskSketcherConstrains - Constraints - Megkötések + Constraints + Megkötések - - + + TaskSketcherCreateCommands - Appearance - Megjelenés + Appearance + Megjelenés - - + + TaskSketcherGeneral - Edit controls - Szerkesztés ellenÅ‘rzés + Edit controls + Szerkesztés ellenÅ‘rzés - - + + TaskSketcherMessages - - Form - Űrlap + + Form + Űrlap - Undefined degrees of freedom - Nem definiált szabadsági fok + + Undefined degrees of freedom + Nem definiált szabadsági fok - Not solved yet - Nem megoldott + + Not solved yet + Nem megoldott - - + + Workbench - - Sketcher - Vázlatkészítõ + + Sketcher + Vázlatkészítõ - Sketcher geometries - Geometriák vázlatkészítõje + + Sketcher geometries + Geometriák vázlatkészítõje - Sketcher geoms - Vázlat geometriák + Sketcher geoms + Vázlat geometriák - Sketcher constraints - Vázlatkészítési kényszerek + + Sketcher constraints + Vázlatkészítési kényszerek - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts index 08cddc668..7e6abc346 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_it.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain angle - Vincolo di angolo + + Constrain angle + Vincolo di angolo - Fix the angle of a line or the angle between two lines - Fissa l'angolo di una linea o l'angolo tra due linee + + Fix the angle of a line or the angle between two lines + Fissa l'angolo di una linea o l'angolo tra due linee - - + + CmdSketcherConstrainCoincident - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain coincident - Vincolo di coincidenza + + Constrain coincident + Vincolo di coincidenza - Create a coincident constraint on the selected item - Crea un vincolo di coincidenza sull'elemento selezionato + + Create a coincident constraint on the selected item + Crea un vincolo di coincidenza sull'elemento selezionato - - + + CmdSketcherConstrainDistance - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain distance - Vincolo di distanza + + Constrain distance + Vincolo di distanza - Fix a length of a line or the distance between a line and a vertex - Fissa la lunghezza di una linea o la distanza tra una linea e un vertice + + Fix a length of a line or the distance between a line and a vertex + Fissa la lunghezza di una linea o la distanza tra una linea e un vertice - - + + CmdSketcherConstrainDistanceX - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain vertical distance - Vincolo di distanza verticale + + Constrain horizontal distance + Vincolo di distanza orizzontale - Fix the horizontal distance between two points or line ends - Fissa la distanza orizzontale tra due punti o estremi di una linea + Constrain vertical distance + Vincolo di distanza verticale - - + + + Fix the horizontal distance between two points or line ends + Fissa la distanza orizzontale tra due punti o estremi di una linea + + + CmdSketcherConstrainDistanceY - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain horizontal distance - Vincolo di distanza orizzontale + + Constrain vertical distance + Vincolo di distanza verticale - Fix the vertical distance between two points or line ends - Fissa la distanza verticale tra due punti o estremi di una linea + Constrain horizontal distance + Vincolo di distanza orizzontale - - + + + Fix the vertical distance between two points or line ends + Fissa la distanza verticale tra due punti o estremi di una linea + + + CmdSketcherConstrainEqual - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain equal - Vincolo di uguaglianza + + Constrain equal + Vincolo di uguaglianza - Create an equality constraint between two lines or between circles and arcs - Crea un vincolo di uguaglianza tra due linee o tra cerchi e archi + + Create an equality constraint between two lines or between circles and arcs + Crea un vincolo di uguaglianza tra due linee o tra cerchi e archi - - + + CmdSketcherConstrainHorizontal - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain horizontally - Vincolo orizzontale + + Constrain horizontally + Vincolo orizzontale - Create a horizontal constraint on the selected item - Crea un vincolo orizzontale sull'elemento selezionato + + Create a horizontal constraint on the selected item + Crea un vincolo orizzontale sull'elemento selezionato - - + + CmdSketcherConstrainLock - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain lock - Vincolo bloccato + + Constrain lock + Vincolo bloccato - Create a lock constraint on the selected item - Crea un vincolo bloccato sull'elemento selezionato + + Create a lock constraint on the selected item + Crea un vincolo bloccato sull'elemento selezionato - - + + CmdSketcherConstrainParallel - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain parallel - Vincolo di parallelismo + + Constrain parallel + Vincolo di parallelismo - Create a parallel constraint between two lines - Crea un vincolo di parallelismo tra due linee + + Create a parallel constraint between two lines + Crea un vincolo di parallelismo tra due linee - - + + CmdSketcherConstrainPerpendicular - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain perpendicular - Vincolo perpendicolare + + Constrain perpendicular + Vincolo perpendicolare - Create a Perpendicular constraint between two lines - Crea un vincolo perpendicolare tra due linee + + Create a Perpendicular constraint between two lines + Crea un vincolo perpendicolare tra due linee - - + + CmdSketcherConstrainPointOnObject - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain point onto object - Vincolo di punto su oggetto + + Constrain point onto object + Vincolo di punto su oggetto - Fix a point onto an object - Fissa un punto su un oggetto + + Fix a point onto an object + Fissa un punto su un oggetto - - + + CmdSketcherConstrainRadius - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain radius - Vincolo di raggio + + Constrain radius + Vincolo di raggio - Fix the radius of a circle or an arc - Fissa il raggio di un cerchio o di un arco + + Fix the radius of a circle or an arc + Fissa il raggio di un cerchio o di un arco - - + + CmdSketcherConstrainSymmetric - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain symmetrical - Vincolo di simmetria + + Constrain symmetrical + Vincolo di simmetria - Create an symmetry constraint between two points with respect to a line - Crea un vincolo di simmetria tra due punti rispetto a una linea + + Create an symmetry constraint between two points with respect to a line + Crea un vincolo di simmetria tra due punti rispetto a una linea - - + + CmdSketcherConstrainTangent - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain tangent - Vincolo tangente + + Constrain tangent + Vincolo tangente - Create a tangent constraint between two entities - Crea un vincolo di tangenza tra due entità + + Create a tangent constraint between two entities + Crea un vincolo di tangenza tra due entità - - + + CmdSketcherConstrainVertical - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain vertically - Vincolo verticale + + Constrain vertically + Vincolo verticale - Create a vertical constraint on the selected item - Crea un vincolo verticale sull'elemento selezionato + + Create a vertical constraint on the selected item + Crea un vincolo verticale sull'elemento selezionato - - + + CmdSketcherCreateArc - - Sketcher - Sketcher + + Sketcher + Sketcher - Create arc - Crea arco + + Create arc + Crea arco - Create an arc in the sketch - Crea un arco nello schizzo + + Create an arc in the sketch + Crea un arco nello schizzo - - + + CmdSketcherCreateCircle - Sketcher - Sketcher + + Sketcher + Sketcher - Create circle - Crea cerchio + + Create circle + Crea cerchio - Create a circle in the sketch - Crea un cerchio nello schizzo + + Create a circle in the sketch + Crea un cerchio nello schizzo - - + + CmdSketcherCreateDraftLine - Sketcher - Sketcher + + Sketcher + Sketcher - Create draft line - Crea linea di costruzione + + Create draft line + Crea linea di costruzione - Create a draft line in the sketch - Crea una linea di costruzione nello schizzo + + Create a draft line in the sketch + Crea una linea di costruzione nello schizzo - - + + CmdSketcherCreateFillet - Sketcher - Sketcher + + Sketcher + Sketcher - Create fillet - Crea raccordo + + Create fillet + Crea raccordo - Create a fillet between two lines or at a coincident point - Creare un raccordo tra due linee o in un punto coincidente + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Creare un raccordo tra due linee o in un punto coincidente + + + CmdSketcherCreateLine - Sketcher - Sketcher + + Sketcher + Sketcher - Create line - Crea linea + + Create line + Crea linea - Create a line in the sketch - Crea una linea nello schizzo + + Create a line in the sketch + Crea una linea nello schizzo - - + + CmdSketcherCreatePoint - Sketcher - Sketcher + + Sketcher + Sketcher - Create point - Crea punto + + Create point + Crea punto - Create a point in the sketch - Crea un punto nello schizzo + + Create a point in the sketch + Crea un punto nello schizzo - - + + CmdSketcherCreatePolyline - Sketcher - Sketcher + + Sketcher + Sketcher - Create polyline - Crea polilinea + + Create polyline + Crea polilinea - Create a polyline in the sketch - Crea una polilinea nello schizzo + + Create a polyline in the sketch + Crea una polilinea nello schizzo - - + + CmdSketcherCreateRectangle - Sketcher - Sketcher + + Sketcher + Sketcher - Create rectangle - Crea rettangolo + + Create rectangle + Crea rettangolo - Create a rectangle in the sketch - Crea un rettangolo nello schizzo + + Create a rectangle in the sketch + Crea un rettangolo nello schizzo - - + + CmdSketcherCreateText - Sketcher - Sketcher + + Sketcher + Sketcher - Create text - Crea testo + + Create text + Crea testo - Create text in the sketch - Crea testo nello sketch + + Create text in the sketch + Crea testo nello sketch - - + + + CmdSketcherExternal + + + Sketcher + Sketcher + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Sketcher + + Sketcher + Sketcher - Leave sketch - Esci + + Leave sketch + Esci - Close the editing of the sketch - Chiude la modifica dello schizzo + + Close the editing of the sketch + Chiude la modifica dello schizzo - - + + CmdSketcherMapSketch - Sketcher - Sketcher + + Sketcher + Sketcher - Map sketch to face... - Mappa schizzo su faccia... + + Map sketch to face... + Mappa schizzo su faccia... - Map a sketch to a face - Mappa uno sketch su una faccia + + Map a sketch to a face + Mappa uno sketch su una faccia - - + + CmdSketcherNewSketch - Sketcher - Sketcher + + Sketcher + Sketcher - Create sketch - Crea schizzo + + Create sketch + Crea schizzo - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Crea un nuovo schizzo + Create a new sketch + Crea un nuovo schizzo - - + + CmdSketcherNewSketchSF - Sketcher - Sketcher + Sketcher + Sketcher - Sketchflat sketch - Sketchflat sketch + Sketchflat sketch + Sketchflat sketch - Create a new sketchflat sketch by starting externel editor - Crea un nuovo sketch sketchflat avviando l'editor esterno + Create a new sketchflat sketch by starting externel editor + Crea un nuovo sketch sketchflat avviando l'editor esterno - - + + CmdSketcherToggleConstruction - - Sketcher - Sketcher + + Sketcher + Sketcher - Toggle construction line - Attiva/disattiva linea di costruzione + + Toggle construction line + Attiva/disattiva linea di costruzione - Toggles the currently selected lines to/from construction mode - Attiva/disattiva le linee attualmente selezionate da modalità di costruzione + + Toggles the currently selected lines to/from construction mode + Attiva/disattiva le linee attualmente selezionate da modalità di costruzione - - + + CmdSketcherTrimming - - Sketcher - Sketcher + + Sketcher + Sketcher - Trim edge - Taglia spigolo + + Trim edge + Taglia spigolo - Trims an edge with respect to the picked position - Taglia uno spigolo rispetto ad una posizione specificata + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Taglia uno spigolo rispetto ad una posizione specificata + + + CmdSketcherViewSketch - - Sketcher - Sketcher + + Sketcher + Sketcher - View sketch - Visualizza lo sketch + + View sketch + Visualizza lo sketch - View sketch perpendicular to sketch plane - Vista perpendicolare al piano di sketch + + View sketch perpendicular to sketch plane + Vista perpendicolare al piano di sketch - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Aspetto + + Appearance + Aspetto - - + + QObject - - Wrong selection - Selezione errata + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Selezione errata - Select edge(s) from the sketch. - Seleziona spigoli dello sketch. + + Select edge(s) from the sketch. + Seleziona spigoli dello sketch. - - Select an edge from the sketch. - Seleziona uno spigolo dallo sketch. + + + Select an edge from the sketch. + Seleziona uno spigolo dallo sketch. - Double constraint - Doppio vincolo + + + Double constraint + Doppio vincolo - The selected edge has already a horizontal constraint! - Lo spigolo selezionato ha già un vincolo orizzontale! + + + The selected edge has already a horizontal constraint! + Lo spigolo selezionato ha già un vincolo orizzontale! - Impossible constraint - Vincolo Impossible + + + + + + + Impossible constraint + Vincolo Impossible - Only sketch and its support is allowed to select - E' consentito selezionare solo lo sketch e il suo supporto + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Una delle entità selezionate deve essere sullo sketch + + + + Only sketch and its support is allowed to select + E' consentito selezionare solo lo sketch e il suo supporto - The selected edge is not a line segment - Lo spigolo selezionato non è un segmento di linea + + One of the selected has to be on the sketch + Una delle entità selezionate deve essere sullo sketch - The selected edge has already a vertical constraint! - Lo spigolo selezionato ha già un vincolo verticale! + + + The selected edge is not a line segment + Lo spigolo selezionato non è un segmento di linea - Select entities from the sketch. - Seleziona entità dello sketch. + + + The selected edge has already a vertical constraint! + Lo spigolo selezionato ha già un vincolo verticale! - Select exactly one entity from the sketch. - Seleziona esattamente una entità dello sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Seleziona vertici dallo sketch. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Seleziona esattamente due vertici dallo sketch. + + Select entities from the sketch. + Seleziona entità dello sketch. - Select exactly one line or one point and one line or two points from the sketch. - Selezionare esattamente una linea o un punto e una linea o due punti dello sketch. + + + Select exactly one entity from the sketch. + Seleziona esattamente una entità dello sketch. - Select exactly one point and one object from the sketch. - Seleziona esattamente un punto e un oggetto dello sketch. + + + + + + + Select vertexes from the sketch. + Seleziona vertici dallo sketch. - Select exactly one line or up to two points from the sketch. - Seleziona esattamente una linea o fino a due punti dello sketch. + + + + Select exactly two vertexes from the sketch. + Seleziona esattamente due vertici dallo sketch. - Select two or more lines from the sketch. - Seleziona due o più linee dello sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Selezionare esattamente una linea o un punto e una linea o due punti dello sketch. - Select at least two lines from the sketch. - Seleziona almeno due linee dello sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Seleziona una linea valida + + + Select exactly one point and one object from the sketch. + Seleziona esattamente un punto e un oggetto dello sketch. - The selected edge is not a valid line - Lo spigolo selezionato non è una linea valida + + + + + Select exactly one line or up to two points from the sketch. + Seleziona esattamente una linea o fino a due punti dello sketch. - Select exactly one arc or circle from the sketch. - Seleziona esattamente un arco o cerchio dello sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Seleziona esattamente una o due linee dello sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Seleziona due spigoli dello sketch. + + Select two or more lines from the sketch. + Seleziona due o più linee dello sketch. - Select atleast two lines from the sketch. - Seleziona almeno due linee dello sketch. + + Select at least two lines from the sketch. + Seleziona almeno due linee dello sketch. - Select exactly two same geometries - Seleziona esattamente due geometrie simili + + Select a valid line + Seleziona una linea valida - Select valid geometries - Seleziona geometrie valide + + The selected edge is not a valid line + Lo spigolo selezionato non è una linea valida - Select geometry of similar type - Seleziona una geometria di tipo simile + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Seleziona due punti e una linea dello sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Seleziona esattamente una linea dallo sketch. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Seleziona due linee dallo sketch. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Selezionare esattamente due linee dallo sketch. + + + + Select exactly one arc or circle from the sketch. + Seleziona esattamente un arco o cerchio dello sketch. - Select two entities from the sketch. - Seleziona due entità dello sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Seleziona esattamente due entità dello sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Modifica sketch + + Select exactly one or two lines from the sketch. + Seleziona esattamente una o due linee dello sketch. - A dialog is already open in the task panel - Una finestra di dialogo è già aperta nel pannello attività + + Select two edges from the sketch. + Seleziona due spigoli dello sketch. - Do you want to close this dialog? - Vuoi chiudere questa finestra di dialogo? + + Select atleast two lines from the sketch. + Seleziona almeno due linee dello sketch. - - Several sub-elements selected - Diversi sottoelementi selezionati + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Devi selezionare una singola faccia come supporto per uno sketch! + + Sketch axes cannot be used in equality constraints + - No support face selected - Nessuna faccia di supporto selezionata + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Devi selezionare una faccia come supporto per uno sketch! + + Cannot add a constraint between external geometries! + - No planar support - Nessun supporto planare + Select exactly two same geometries + Seleziona esattamente due geometrie simili - You need a planar face as support for a sketch! - Hai bisogno di una faccia planare come supporto per uno sketch! + Select valid geometries + Seleziona geometrie valide - - Distance constraint - Vincolo di distanza + Select geometry of similar type + Seleziona una geometria di tipo simile - Not allowed to edit the datum because the sketch contains conflicting constraints - Non è consentito modificare il dato perché lo sketch contiene vincoli in conflitto + + + + Select two points and one line from the sketch. + Seleziona due punti e una linea dello sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Seleziona esattamente una linea dallo sketch. - - + + Select two lines from the sketch. + Seleziona due linee dallo sketch. + + + Select exactly two lines from the sketch. + Selezionare esattamente due linee dallo sketch. + + + + + Select two entities from the sketch. + Seleziona due entità dello sketch. + + + + + + + Select exactly two entities from the sketch. + Seleziona esattamente due entità dello sketch. + + + + Edit sketch + Modifica sketch + + + + A dialog is already open in the task panel + Una finestra di dialogo è già aperta nel pannello attività + + + + Do you want to close this dialog? + Vuoi chiudere questa finestra di dialogo? + + + + Several sub-elements selected + Diversi sottoelementi selezionati + + + + You have to select a single face as support for a sketch! + Devi selezionare una singola faccia come supporto per uno sketch! + + + + No support face selected + Nessuna faccia di supporto selezionata + + + + You have to select a face as support for a sketch! + Devi selezionare una faccia come supporto per uno sketch! + + + + No planar support + Nessun supporto planare + + + + You need a planar face as support for a sketch! + Hai bisogno di una faccia planare come supporto per uno sketch! + + + + Distance constraint + Vincolo di distanza + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Non è consentito modificare il dato perché lo sketch contiene vincoli in conflitto + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Scegli l'orientamento + Choose orientation + Scegli l'orientamento - Sketch orientation - Orientamento dello sketch + Sketch orientation + Orientamento dello sketch - XY-Plane - Piano XY + XY-Plane + Piano XY - XZ-Plane - Piano XZ + XZ-Plane + Piano XZ - YZ-Plane - Piano YZ + YZ-Plane + Piano YZ - Reverse direction - Direzione inversa + Reverse direction + Direzione inversa - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Inserisci riferimento + + Insert datum + Inserisci riferimento - datum: - Riferimento: + + datum: + Riferimento: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Scegli l'orientamento + + + + Sketch orientation + Orientamento dello sketch + + + + XY-Plane + Piano XY + + + + XZ-Plane + Piano XZ + + + + YZ-Plane + Piano YZ + + + + Reverse direction + Direzione inversa + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Modulo + + Form + Modulo - Filter: - Filtro: + + Filter: + Filtro: - All - Tutto + + All + Tutto - Normal - Normale + + Normal + Normale - Datums - Riferimenti + + Datums + Riferimenti - Named - Denominato + + Named + Denominato - - Constraints - Vincoli + + Constraints + Vincoli - - + + SketcherGui::TaskSketcherGeneral - - Form - Modulo + + Form + Modulo - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Non risolto + Unsolved + Non risolto - Grid Snap - Snap griglia + Grid Snap + Snap griglia - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0,2 mm + 0.2 mm + 0,2 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Autovincoli + + Auto constraints + Autovincoli - auto constraints - vincoli automatici + auto constraints + vincoli automatici - - Edit controls - Modifica controlli + + Edit controls + Modifica controlli - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Messaggi Solver + + Solver messages + Messaggi Solver - - + + TaskSketcherConstrains - Constraints - Vincoli + Constraints + Vincoli - - + + TaskSketcherCreateCommands - Appearance - Aspetto + Appearance + Aspetto - - + + TaskSketcherGeneral - Edit controls - Modifica controlli + Edit controls + Modifica controlli - - + + TaskSketcherMessages - - Form - Modulo + + Form + Modulo - Undefined degrees of freedom - Gradi di libertà indefiniti + + Undefined degrees of freedom + Gradi di libertà indefiniti - Not solved yet - Non ancora risolto + + Not solved yet + Non ancora risolto - - + + Workbench - - Sketcher - Sketcher + + Sketcher + Sketcher - Sketcher geometries - Geometrie Sketcher + + Sketcher geometries + Geometrie Sketcher - Sketcher geoms - Geometrie dello Sketcher + Sketcher geoms + Geometrie dello Sketcher - Sketcher constraints - Vincoli dello Sketcher + + Sketcher constraints + Vincoli dello Sketcher - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts index 8f01f74a9..ed47da1e9 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ja.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain angle - è§’åº¦ã‚’æ‹˜æŸ + + Constrain angle + è§’åº¦ã‚’æ‹˜æŸ - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain coincident - åŒæ™‚æ‹˜æŸ + + Constrain coincident + åŒæ™‚æ‹˜æŸ - Create a coincident constraint on the selected item - Create a coincident constraint on the selected item + + Create a coincident constraint on the selected item + Create a coincident constraint on the selected item - - + + CmdSketcherConstrainDistance - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain distance - 変使‹˜æŸ + + Constrain distance + 変使‹˜æŸ - Fix a length of a line or the distance between a line and a vertex - Fix a length of a line or the distance between a line and a vertex + + Fix a length of a line or the distance between a line and a vertex + Fix a length of a line or the distance between a line and a vertex - - + + CmdSketcherConstrainDistanceX - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain vertical distance - 垂直方å‘ã®è·é›¢ã‚’制約ã™ã‚‹ + + Constrain horizontal distance + 水平変ä½ã‚’æ‹˜æŸ - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + 垂直方å‘ã®è·é›¢ã‚’制約ã™ã‚‹ - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain horizontal distance - 水平変ä½ã‚’æ‹˜æŸ + + Constrain vertical distance + 垂直方å‘ã®è·é›¢ã‚’制約ã™ã‚‹ - Fix the vertical distance between two points or line ends - 2ã¤ã®ç‚¹ã‚„ç·šã®ç«¯ç‚¹ã®é–“ã®åž‚ç›´è·é›¢ã‚’修正 + Constrain horizontal distance + 水平変ä½ã‚’æ‹˜æŸ - - + + + Fix the vertical distance between two points or line ends + 2ã¤ã®ç‚¹ã‚„ç·šã®ç«¯ç‚¹ã®é–“ã®åž‚ç›´è·é›¢ã‚’修正 + + + CmdSketcherConstrainEqual - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain horizontally - æ°´å¹³æ‹˜æŸ + + Constrain horizontally + æ°´å¹³æ‹˜æŸ - Create a horizontal constraint on the selected item - Create a horizontal constraint on the selected item + + Create a horizontal constraint on the selected item + Create a horizontal constraint on the selected item - - + + CmdSketcherConstrainLock - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain lock - Constrain lock + + Constrain lock + Constrain lock - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain parallel - å¹³è¡Œæ‹˜æŸ + + Constrain parallel + å¹³è¡Œæ‹˜æŸ - Create a parallel constraint between two lines - ï¼’ç›´ç·šé–“ã®å¹³è¡Œæ‹˜æŸã‚’作æˆã—ã¾ã™ + + Create a parallel constraint between two lines + ï¼’ç›´ç·šé–“ã®å¹³è¡Œæ‹˜æŸã‚’作æˆã—ã¾ã™ - - + + CmdSketcherConstrainPerpendicular - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain perpendicular - åž‚ç›´æ‹˜æŸ + + Constrain perpendicular + åž‚ç›´æ‹˜æŸ - Create a Perpendicular constraint between two lines - 2ã¤ã®ç›´ç·šé–“ã®åž‚直拘æŸã‚’ä½œæˆ + + Create a Perpendicular constraint between two lines + 2ã¤ã®ç›´ç·šé–“ã®åž‚直拘æŸã‚’ä½œæˆ - - + + CmdSketcherConstrainPointOnObject - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain radius - åŠå¾„ã‚’æ‹˜æŸ + + Constrain radius + åŠå¾„ã‚’æ‹˜æŸ - Fix the radius of a circle or an arc - 円ã®åŠå¾„ã¾ãŸã¯å††å¼§ã‚’修正 + + Fix the radius of a circle or an arc + 円ã®åŠå¾„ã¾ãŸã¯å††å¼§ã‚’修正 - - + + CmdSketcherConstrainSymmetric - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Sketcher + + Sketcher + Sketcher - Constrain vertically - åž‚ç›´æ‹˜æŸ + + Constrain vertically + åž‚ç›´æ‹˜æŸ - Create a vertical constraint on the selected item - é¸æŠžã—ãŸé …ç›®ã®åž‚直拘æŸã‚’作æˆã—ã¾ã™ + + Create a vertical constraint on the selected item + é¸æŠžã—ãŸé …ç›®ã®åž‚直拘æŸã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreateArc - - Sketcher - Sketcher + + Sketcher + Sketcher - Create arc - 円弧 + + Create arc + 円弧 - Create an arc in the sketch - スケッãƒã«å††å¼§ã‚’作æˆã—ã¾ã™ + + Create an arc in the sketch + スケッãƒã«å††å¼§ã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreateCircle - Sketcher - Sketcher + + Sketcher + Sketcher - Create circle - 円 + + Create circle + 円 - Create a circle in the sketch - スケッãƒã®å††ã‚’作æˆã—ã¾ã™ + + Create a circle in the sketch + スケッãƒã®å††ã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreateDraftLine - Sketcher - Sketcher + + Sketcher + Sketcher - Create draft line - Create draft line + + Create draft line + Create draft line - Create a draft line in the sketch - Create a draft line in the sketch + + Create a draft line in the sketch + Create a draft line in the sketch - - + + CmdSketcherCreateFillet - Sketcher - Sketcher + + Sketcher + Sketcher - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Sketcher + + Sketcher + Sketcher - Create line - ç›´ç·š + + Create line + ç›´ç·š - Create a line in the sketch - ç›´ç·šã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ + + Create a line in the sketch + ç›´ç·šã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreatePoint - Sketcher - Sketcher + + Sketcher + Sketcher - Create point - 点 + + Create point + 点 - Create a point in the sketch - 点ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ + + Create a point in the sketch + 点ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreatePolyline - Sketcher - Sketcher + + Sketcher + Sketcher - Create polyline - ãƒãƒªãƒ©ã‚¤ãƒ³ + + Create polyline + ãƒãƒªãƒ©ã‚¤ãƒ³ - Create a polyline in the sketch - ãƒãƒªãƒ©ã‚¤ãƒ³ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ + + Create a polyline in the sketch + ãƒãƒªãƒ©ã‚¤ãƒ³ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreateRectangle - Sketcher - Sketcher + + Sketcher + Sketcher - Create rectangle - çŸ©å½¢ã‚’ä½œæˆ + + Create rectangle + çŸ©å½¢ã‚’ä½œæˆ - Create a rectangle in the sketch - 矩形ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ + + Create a rectangle in the sketch + 矩形ã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ - - + + CmdSketcherCreateText - Sketcher - Sketcher + + Sketcher + Sketcher - Create text - テキスト + + Create text + テキスト - Create text in the sketch - テキストã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ + + Create text in the sketch + テキストã®ã‚¹ã‚±ãƒƒãƒã‚’作æˆã—ã¾ã™ - - + + + CmdSketcherExternal + + + Sketcher + Sketcher + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Sketcher + + Sketcher + Sketcher - Leave sketch - スケッãƒã‚’終了 + + Leave sketch + スケッãƒã‚’終了 - Close the editing of the sketch - Close the editing of the sketch + + Close the editing of the sketch + Close the editing of the sketch - - + + CmdSketcherMapSketch - Sketcher - Sketcher + + Sketcher + Sketcher - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Sketcher + + Sketcher + Sketcher - Create sketch - スケッãƒã‚’作æˆã—ã¾ã™ã€‚ + + Create sketch + スケッãƒã‚’作æˆã—ã¾ã™ã€‚ - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - æ–°è¦ã‚¹ã‚±ãƒƒãƒã‚’ä½œæˆ + Create a new sketch + æ–°è¦ã‚¹ã‚±ãƒƒãƒã‚’ä½œæˆ - - + + CmdSketcherNewSketchSF - Sketcher - Sketcher + Sketcher + Sketcher - Sketchflat sketch - Sketchflat sketch + Sketchflat sketch + Sketchflat sketch - Create a new sketchflat sketch by starting externel editor - Create a new sketchflat sketch by starting externel editor + Create a new sketchflat sketch by starting externel editor + Create a new sketchflat sketch by starting externel editor - - + + CmdSketcherToggleConstruction - - Sketcher - Sketcher + + Sketcher + Sketcher - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Sketcher + + Sketcher + Sketcher - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Sketcher + + Sketcher + Sketcher - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - 外観 + + Appearance + 外観 - - + + QObject - - Wrong selection - 誤ã£ãŸé¸æŠž + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + 誤ã£ãŸé¸æŠž - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - スケッãƒã‹ã‚‰ã‚¨ãƒƒã‚¸ã‚’é¸æŠžã—ã¾ã™ + + + Select an edge from the sketch. + スケッãƒã‹ã‚‰ã‚¨ãƒƒã‚¸ã‚’é¸æŠžã—ã¾ã™ - Double constraint - Double constraint + + + Double constraint + Double constraint - The selected edge has already a horizontal constraint! - The selected edge has already a horizontal constraint! + + + The selected edge has already a horizontal constraint! + The selected edge has already a horizontal constraint! - Impossible constraint - ä¸å¯èƒ½ãªæ‹˜æŸ + + + + + + + Impossible constraint + ä¸å¯èƒ½ãªæ‹˜æŸ - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - The selected edge has already a vertical constraint! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + The selected edge has already a vertical constraint! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Select vertexes from the sketch. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Select exactly two vertexes from the sketch. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Select vertexes from the sketch. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Select exactly two vertexes from the sketch. - Select two or more lines from the sketch. - スケッãƒã‹ã‚‰ï¼’本以上ã®ç›´ç·šã‚’é¸æŠžã—ã¾.。 + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - 有効ãªç›´ç·šã‚’é¸æŠž + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - スケッãƒã‹ã‚‰äºŒã¤ã®ã‚¨ãƒƒã‚¸ã‚’é¸æŠžã—ã¾ã™. + + Select two or more lines from the sketch. + スケッãƒã‹ã‚‰ï¼’本以上ã®ç›´ç·šã‚’é¸æŠžã—ã¾.。 - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + 有効ãªç›´ç·šã‚’é¸æŠž - Select valid geometries - 有効ãªã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’é¸æŠžã—ã¦ãã ã•ã„ + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - åŒã˜ã‚¿ã‚¤ãƒ—ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’é¸æŠž + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - ï¼’ã¤ã®ç‚¹ã¨ï¼‘ã¤ã®ç›´ç·šã‚’スケッãƒã‹ã‚‰é¸æŠž + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Select exactly one line from the sketch. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - スケッãƒã‹ã‚‰ï¼’本ã®ç›´ç·šã‚’é¸æŠžã—ã¾ã™. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Select exactly two lines from the sketch. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - スケッãƒã‚’編集 + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - A dialog is already open in the task panel + + Select two edges from the sketch. + スケッãƒã‹ã‚‰äºŒã¤ã®ã‚¨ãƒƒã‚¸ã‚’é¸æŠžã—ã¾ã™. - Do you want to close this dialog? - Do you want to close this dialog? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - ã„ãã¤ã‹ã®ã‚µãƒ–è¦ç´ ã‚’é¸æŠž + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - You have to select a single face as support for a sketch! + + Sketch axes cannot be used in equality constraints + - No support face selected - No support face selected + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - You have to select a face as support for a sketch! + + Cannot add a constraint between external geometries! + - No planar support - No planar support + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - You need a planar face as support for a sketch! + Select valid geometries + 有効ãªã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’é¸æŠžã—ã¦ãã ã•ã„ - - Distance constraint - 変ä½ã®æ‹˜æŸ + Select geometry of similar type + åŒã˜ã‚¿ã‚¤ãƒ—ã®ã‚¸ã‚ªãƒ¡ãƒˆãƒªã‚’é¸æŠž - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + ï¼’ã¤ã®ç‚¹ã¨ï¼‘ã¤ã®ç›´ç·šã‚’スケッãƒã‹ã‚‰é¸æŠž - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Select exactly one line from the sketch. - - + + Select two lines from the sketch. + スケッãƒã‹ã‚‰ï¼’本ã®ç›´ç·šã‚’é¸æŠžã—ã¾ã™. + + + Select exactly two lines from the sketch. + Select exactly two lines from the sketch. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + スケッãƒã‚’編集 + + + + A dialog is already open in the task panel + A dialog is already open in the task panel + + + + Do you want to close this dialog? + Do you want to close this dialog? + + + + Several sub-elements selected + ã„ãã¤ã‹ã®ã‚µãƒ–è¦ç´ ã‚’é¸æŠž + + + + You have to select a single face as support for a sketch! + You have to select a single face as support for a sketch! + + + + No support face selected + No support face selected + + + + You have to select a face as support for a sketch! + You have to select a face as support for a sketch! + + + + No planar support + No planar support + + + + You need a planar face as support for a sketch! + You need a planar face as support for a sketch! + + + + Distance constraint + 変ä½ã®æ‹˜æŸ + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - æ–¹å‘ã‚’é¸æŠž + Choose orientation + æ–¹å‘ã‚’é¸æŠž - Sketch orientation - スケッãƒã®å‘ã + Sketch orientation + スケッãƒã®å‘ã - XY-Plane - xyå¹³é¢ + XY-Plane + xyå¹³é¢ - XZ-Plane - XZ å¹³é¢ + XZ-Plane + XZ å¹³é¢ - YZ-Plane - YZ å¹³é¢ + YZ-Plane + YZ å¹³é¢ - Reverse direction - é€†æ–¹å‘ + Reverse direction + é€†æ–¹å‘ - Offset: - オフセット: + Offset: + オフセット: - - + + SketcherGui::InsertDatum - - Insert datum - Insert datum + + Insert datum + Insert datum - datum: - datum: + + datum: + datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + æ–¹å‘ã‚’é¸æŠž + + + + Sketch orientation + スケッãƒã®å‘ã + + + + XY-Plane + xyå¹³é¢ + + + + XZ-Plane + XZ å¹³é¢ + + + + YZ-Plane + YZ å¹³é¢ + + + + Reverse direction + é€†æ–¹å‘ + + + + Offset: + オフセット: + + + SketcherGui::TaskSketcherConstrains - - Form - Form + + Form + Form - Filter: - フィルター: + + Filter: + フィルター: - All - ã™ã¹ã¦ + + All + ã™ã¹ã¦ - Normal - 法線 + + Normal + 法線 - Datums - Datums + + Datums + Datums - Named - Named + + Named + Named - - Constraints - Constraints + + Constraints + Constraints - - + + SketcherGui::TaskSketcherGeneral - - Form - Form + + Form + Form - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Unsolved + Unsolved + Unsolved - Grid Snap - Grid Snap + Grid Snap + Grid Snap - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - auto constraints + auto constraints + auto constraints - - Edit controls - Edit controls + + Edit controls + Edit controls - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Constraints + Constraints + Constraints - - + + TaskSketcherCreateCommands - Appearance - 外観 + Appearance + 外観 - - + + TaskSketcherGeneral - Edit controls - Edit controls + Edit controls + Edit controls - - + + TaskSketcherMessages - - Form - Form + + Form + Form - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - 未解決 + + Not solved yet + 未解決 - - + + Workbench - - Sketcher - Sketcher + + Sketcher + Sketcher - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Sketcher geoms + Sketcher geoms + Sketcher geoms - Sketcher constraints - Sketcher constraints + + Sketcher constraints + Sketcher constraints - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts index 899c8cfe9..360eb25e6 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_nl.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain angle - Beperk hoek + + Constrain angle + Beperk hoek - Fix the angle of a line or the angle between two lines - Zet de hoek van een lijn of de hoek tussen twee lijnen vast + + Fix the angle of a line or the angle between two lines + Zet de hoek van een lijn of de hoek tussen twee lijnen vast - - + + CmdSketcherConstrainCoincident - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain coincident - Samenvallende beperking + + Constrain coincident + Samenvallende beperking - Create a coincident constraint on the selected item - Maak een samenvallende beperking op het geselecteerde item + + Create a coincident constraint on the selected item + Maak een samenvallende beperking op het geselecteerde item - - + + CmdSketcherConstrainDistance - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain distance - Afstand beperking + + Constrain distance + Afstand beperking - Fix a length of a line or the distance between a line and a vertex - Vergrendel de lengte van een lijn of de afstand tussen een lijn en een punt + + Fix a length of a line or the distance between a line and a vertex + Vergrendel de lengte van een lijn of de afstand tussen een lijn en een punt - - + + CmdSketcherConstrainDistanceX - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain vertical distance - Beperk verticale afstand + + Constrain horizontal distance + Beperk horizontale afstand - Fix the horizontal distance between two points or line ends - De horizontale afstand tussen twee punten of lijneinden vastzetten + Constrain vertical distance + Beperk verticale afstand - - + + + Fix the horizontal distance between two points or line ends + De horizontale afstand tussen twee punten of lijneinden vastzetten + + + CmdSketcherConstrainDistanceY - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain horizontal distance - Beperk horizontale afstand + + Constrain vertical distance + Beperk verticale afstand - Fix the vertical distance between two points or line ends - De verticale afstand tussen twee punten of lijneinden vastzetten + Constrain horizontal distance + Beperk horizontale afstand - - + + + Fix the vertical distance between two points or line ends + De verticale afstand tussen twee punten of lijneinden vastzetten + + + CmdSketcherConstrainEqual - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain equal - Gelijke beperken + + Constrain equal + Gelijke beperken - Create an equality constraint between two lines or between circles and arcs - Maak een Gelijkheidsbeperking tussen twee lijnen of tussen cirkels en bogen + + Create an equality constraint between two lines or between circles and arcs + Maak een Gelijkheidsbeperking tussen twee lijnen of tussen cirkels en bogen - - + + CmdSketcherConstrainHorizontal - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain horizontally - Horizontale beperking + + Constrain horizontally + Horizontale beperking - Create a horizontal constraint on the selected item - Maak een horizontale beperking op het geselecteerde item + + Create a horizontal constraint on the selected item + Maak een horizontale beperking op het geselecteerde item - - + + CmdSketcherConstrainLock - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain lock - Vastzet beperking + + Constrain lock + Vastzet beperking - Create a lock constraint on the selected item - Vergrendel het geselecteerde item + + Create a lock constraint on the selected item + Vergrendel het geselecteerde item - - + + CmdSketcherConstrainParallel - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain parallel - Parallelle-beperking + + Constrain parallel + Parallelle-beperking - Create a parallel constraint between two lines - Maak een parallelle beperking tussen twee lijnen + + Create a parallel constraint between two lines + Maak een parallelle beperking tussen twee lijnen - - + + CmdSketcherConstrainPerpendicular - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain perpendicular - Beperk loodrecht + + Constrain perpendicular + Beperk loodrecht - Create a Perpendicular constraint between two lines - Maak een Loodrecht-beperking tussen twee lijnen + + Create a Perpendicular constraint between two lines + Maak een Loodrecht-beperking tussen twee lijnen - - + + CmdSketcherConstrainPointOnObject - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain point onto object - Zet punt vast op object + + Constrain point onto object + Zet punt vast op object - Fix a point onto an object - Een punt op een object vastleggen + + Fix a point onto an object + Een punt op een object vastleggen - - + + CmdSketcherConstrainRadius - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain radius - Straal vastzetten + + Constrain radius + Straal vastzetten - Fix the radius of a circle or an arc - De straal van een cirkel of boog vastzetten + + Fix the radius of a circle or an arc + De straal van een cirkel of boog vastzetten - - + + CmdSketcherConstrainSymmetric - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain symmetrical - Symmetrische-beperken + + Constrain symmetrical + Symmetrische-beperken - Create an symmetry constraint between two points with respect to a line - Maak een symmetrie-beperking tussen twee punten ten opzichte van een lijn + + Create an symmetry constraint between two points with respect to a line + Maak een symmetrie-beperking tussen twee punten ten opzichte van een lijn - - + + CmdSketcherConstrainTangent - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain tangent - Tangent beperken + + Constrain tangent + Tangent beperken - Create a tangent constraint between two entities - Tangentiële beperkingen tussen twee entiteiten maken + + Create a tangent constraint between two entities + Tangentiële beperkingen tussen twee entiteiten maken - - + + CmdSketcherConstrainVertical - Sketcher - Schetsen + + Sketcher + Schetsen - Constrain vertically - Verticale beperking + + Constrain vertically + Verticale beperking - Create a vertical constraint on the selected item - Maak een verticale beperking op het geselecteerde item + + Create a vertical constraint on the selected item + Maak een verticale beperking op het geselecteerde item - - + + CmdSketcherCreateArc - - Sketcher - Schetsen + + Sketcher + Schetsen - Create arc - Boog maken + + Create arc + Boog maken - Create an arc in the sketch - Maak een boog in de schets + + Create an arc in the sketch + Maak een boog in de schets - - + + CmdSketcherCreateCircle - Sketcher - Schetsen + + Sketcher + Schetsen - Create circle - Cirkel maken + + Create circle + Cirkel maken - Create a circle in the sketch - Maak een cirkel in de schets + + Create a circle in the sketch + Maak een cirkel in de schets - - + + CmdSketcherCreateDraftLine - Sketcher - Schetsen + + Sketcher + Schetsen - Create draft line - Ontwerplijn maken + + Create draft line + Ontwerplijn maken - Create a draft line in the sketch - Maak een ontwerplijn in de schets + + Create a draft line in the sketch + Maak een ontwerplijn in de schets - - + + CmdSketcherCreateFillet - Sketcher - Schetsen + + Sketcher + Schetsen - Create fillet - Maak afronding + + Create fillet + Maak afronding - Create a fillet between two lines or at a coincident point - Maak een afronding tussen twee lijnen of op een samenvallend punt + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Maak een afronding tussen twee lijnen of op een samenvallend punt + + + CmdSketcherCreateLine - Sketcher - Schetsen + + Sketcher + Schetsen - Create line - Lijn maken + + Create line + Lijn maken - Create a line in the sketch - Maak een lijn in de schets + + Create a line in the sketch + Maak een lijn in de schets - - + + CmdSketcherCreatePoint - Sketcher - Schetsen + + Sketcher + Schetsen - Create point - Punt maken + + Create point + Punt maken - Create a point in the sketch - Maak een punt in de schets + + Create a point in the sketch + Maak een punt in de schets - - + + CmdSketcherCreatePolyline - Sketcher - Schetsen + + Sketcher + Schetsen - Create polyline - Meervoudige lijn maken + + Create polyline + Meervoudige lijn maken - Create a polyline in the sketch - Maak een meervoudige lijn in de schets + + Create a polyline in the sketch + Maak een meervoudige lijn in de schets - - + + CmdSketcherCreateRectangle - Sketcher - Schetsen + + Sketcher + Schetsen - Create rectangle - Rechthoek maken + + Create rectangle + Rechthoek maken - Create a rectangle in the sketch - Maak een rechthoek in de schets + + Create a rectangle in the sketch + Maak een rechthoek in de schets - - + + CmdSketcherCreateText - Sketcher - Schetsen + + Sketcher + Schetsen - Create text - Tekst aanmaken + + Create text + Tekst aanmaken - Create text in the sketch - Tekst in de tekening aanmaken + + Create text in the sketch + Tekst in de tekening aanmaken - - + + + CmdSketcherExternal + + + Sketcher + Schetsen + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Schetsen + + Sketcher + Schetsen - Leave sketch - Verlaat schets + + Leave sketch + Verlaat schets - Close the editing of the sketch - Sluit het bewerken van de schets + + Close the editing of the sketch + Sluit het bewerken van de schets - - + + CmdSketcherMapSketch - Sketcher - Schetsen + + Sketcher + Schetsen - Map sketch to face... - Wijs schets toe aan vlak... + + Map sketch to face... + Wijs schets toe aan vlak... - Map a sketch to a face - Een schets toewijzen aan een vlak + + Map a sketch to a face + Een schets toewijzen aan een vlak - - + + CmdSketcherNewSketch - Sketcher - Schetsen + + Sketcher + Schetsen - Create sketch - Maak schets + + Create sketch + Maak schets - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Maak een nieuwe schets + Create a new sketch + Maak een nieuwe schets - - + + CmdSketcherNewSketchSF - Sketcher - Schetsen + Sketcher + Schetsen - Sketchflat sketch - Sketchflat schets + Sketchflat sketch + Sketchflat schets - Create a new sketchflat sketch by starting externel editor - Een nieuwe sketchflat-schets maken door uitwendige editor te starten + Create a new sketchflat sketch by starting externel editor + Een nieuwe sketchflat-schets maken door uitwendige editor te starten - - + + CmdSketcherToggleConstruction - - Sketcher - Schetsen + + Sketcher + Schetsen - Toggle construction line - Schakel constructie-lijn + + Toggle construction line + Schakel constructie-lijn - Toggles the currently selected lines to/from construction mode - Schakelt de geselecteerde lijnen van/naar de constructie-modus + + Toggles the currently selected lines to/from construction mode + Schakelt de geselecteerde lijnen van/naar de constructie-modus - - + + CmdSketcherTrimming - - Sketcher - Schetsen + + Sketcher + Schetsen - Trim edge - Inkorten van rand + + Trim edge + Inkorten van rand - Trims an edge with respect to the picked position - Inkorten van rand in overeenstemming met de gekozen positie + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Inkorten van rand in overeenstemming met de gekozen positie + + + CmdSketcherViewSketch - - Sketcher - Schetsen + + Sketcher + Schetsen - View sketch - Bekijk schets + + View sketch + Bekijk schets - View sketch perpendicular to sketch plane - Bekijk schets loodrecht op het schetsvlak + + View sketch perpendicular to sketch plane + Bekijk schets loodrecht op het schetsvlak - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Vormgeving + + Appearance + Vormgeving - - + + QObject - - Wrong selection - Verkeerde selectie + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Verkeerde selectie - Select edge(s) from the sketch. - Selecteer rand(en) uit de schets. + + Select edge(s) from the sketch. + Selecteer rand(en) uit de schets. - - Select an edge from the sketch. - Selecteer een rand van de schets. + + + Select an edge from the sketch. + Selecteer een rand van de schets. - Double constraint - Dubbele beperking + + + Double constraint + Dubbele beperking - The selected edge has already a horizontal constraint! - De geselecteerde rand heeft al een horizontale beperking! + + + The selected edge has already a horizontal constraint! + De geselecteerde rand heeft al een horizontale beperking! - Impossible constraint - Onmogelijk beperking + + + + + + + Impossible constraint + Onmogelijk beperking - Only sketch and its support is allowed to select - Alleen schets en haar steun is toegestaan ​​om te selecteren + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Eén van de geselecteerde moet deel uitmaken van de schets + + + + Only sketch and its support is allowed to select + Alleen schets en haar steun is toegestaan ​​om te selecteren - The selected edge is not a line segment - De geselecteerde rand is niet een lijnstuk + + One of the selected has to be on the sketch + Eén van de geselecteerde moet deel uitmaken van de schets - The selected edge has already a vertical constraint! - De geselecteerde rand heeft al een verticale beperking! + + + The selected edge is not a line segment + De geselecteerde rand is niet een lijnstuk - Select entities from the sketch. - Selecteer entiteiten van de schets. + + + The selected edge has already a vertical constraint! + De geselecteerde rand heeft al een verticale beperking! - Select exactly one entity from the sketch. - Selecteer exact één entiteit van de schets. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Selecteer (hoek)punten van de schets. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Selecteer precies twee (hoek)punten van de schets. + + Select entities from the sketch. + Selecteer entiteiten van de schets. - Select exactly one line or one point and one line or two points from the sketch. - Selecteer precies één lijn of een punt en een lijn of twee punten uit de schets. + + + Select exactly one entity from the sketch. + Selecteer exact één entiteit van de schets. - Select exactly one point and one object from the sketch. - Selecteer exact één punt en één object uit de schets. + + + + + + + Select vertexes from the sketch. + Selecteer (hoek)punten van de schets. - Select exactly one line or up to two points from the sketch. - Selecteer precies een lijn of tot twee punten uit de schets. + + + + Select exactly two vertexes from the sketch. + Selecteer precies twee (hoek)punten van de schets. - Select two or more lines from the sketch. - Selecteer twee of meer lijnen van de schets. + + + Select exactly one line or one point and one line or two points from the sketch. + Selecteer precies één lijn of een punt en een lijn of twee punten uit de schets. - Select at least two lines from the sketch. - Kies tenminste twee lijnen van de schets. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Selecteer een geldige lijn + + + Select exactly one point and one object from the sketch. + Selecteer exact één punt en één object uit de schets. - The selected edge is not a valid line - De geselecteerde rand is geen geldige lijn + + + + + Select exactly one line or up to two points from the sketch. + Selecteer precies een lijn of tot twee punten uit de schets. - Select exactly one arc or circle from the sketch. - Selecteer precies een boog of cirkel uit de schets. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Selecteer precies een of twee lijnen uit de schets. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Selecteer twee randen van de schets. + + Select two or more lines from the sketch. + Selecteer twee of meer lijnen van de schets. - Select atleast two lines from the sketch. - Kies tenminste twee lijnen van de schets. + + Select at least two lines from the sketch. + Kies tenminste twee lijnen van de schets. - Select exactly two same geometries - Selecteer precies twee dezelfde geometrieën + + Select a valid line + Selecteer een geldige lijn - Select valid geometries - Selecteer geldige geometrieën + + The selected edge is not a valid line + De geselecteerde rand is geen geldige lijn - Select geometry of similar type - Selecteer geometrie van hetzelfde type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Selecteer twee punten en een lijn van de schets. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Selecteer precies één lijn van de schets. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Selecteer twee lijnen van de schets. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Selecteer precies twee lijnen van de schets. + + + + Select exactly one arc or circle from the sketch. + Selecteer precies een boog of cirkel uit de schets. - Select two entities from the sketch. - Selecteer twee entiteiten uit de schets. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Selecteer precies twee entiteiten uit de schets. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Schets bewerken + + Select exactly one or two lines from the sketch. + Selecteer precies een of twee lijnen uit de schets. - A dialog is already open in the task panel - Een dialoog is al geopend in het deelvenster Taken + + Select two edges from the sketch. + Selecteer twee randen van de schets. - Do you want to close this dialog? - Wilt u dit dialoogvenster sluiten? + + Select atleast two lines from the sketch. + Kies tenminste twee lijnen van de schets. - - Several sub-elements selected - Verschillende sub-elementen geselecteerd + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Je moet een enkel vlak selecteren als basis voor een schets! + + Sketch axes cannot be used in equality constraints + - No support face selected - Geen basisvlak geselecteerd + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Je moet een enkel vlak selecteren als basis voor een schets! + + Cannot add a constraint between external geometries! + - No planar support - Geen platvlak + Select exactly two same geometries + Selecteer precies twee dezelfde geometrieën - You need a planar face as support for a sketch! - Je hebt een platvlak nodig als basis voor een schets! + Select valid geometries + Selecteer geldige geometrieën - - Distance constraint - Afstand-beperking + Select geometry of similar type + Selecteer geometrie van hetzelfde type - Not allowed to edit the datum because the sketch contains conflicting constraints - Niet toegestaan ​​om de waarde te bewerken, omdat de schets conflicterende beperkingen bevat + + + + Select two points and one line from the sketch. + Selecteer twee punten en een lijn van de schets. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Selecteer precies één lijn van de schets. - - + + Select two lines from the sketch. + Selecteer twee lijnen van de schets. + + + Select exactly two lines from the sketch. + Selecteer precies twee lijnen van de schets. + + + + + Select two entities from the sketch. + Selecteer twee entiteiten uit de schets. + + + + + + + Select exactly two entities from the sketch. + Selecteer precies twee entiteiten uit de schets. + + + + Edit sketch + Schets bewerken + + + + A dialog is already open in the task panel + Een dialoog is al geopend in het deelvenster Taken + + + + Do you want to close this dialog? + Wilt u dit dialoogvenster sluiten? + + + + Several sub-elements selected + Verschillende sub-elementen geselecteerd + + + + You have to select a single face as support for a sketch! + Je moet een enkel vlak selecteren als basis voor een schets! + + + + No support face selected + Geen basisvlak geselecteerd + + + + You have to select a face as support for a sketch! + Je moet een enkel vlak selecteren als basis voor een schets! + + + + No planar support + Geen platvlak + + + + You need a planar face as support for a sketch! + Je hebt een platvlak nodig als basis voor een schets! + + + + Distance constraint + Afstand-beperking + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Niet toegestaan ​​om de waarde te bewerken, omdat de schets conflicterende beperkingen bevat + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Kies oriëntatie + Choose orientation + Kies oriëntatie - Sketch orientation - Schets-oriëntatie + Sketch orientation + Schets-oriëntatie - XY-Plane - XY-vlak + XY-Plane + XY-vlak - XZ-Plane - XZ-vlak + XZ-Plane + XZ-vlak - YZ-Plane - YZ-vlak + YZ-Plane + YZ-vlak - Reverse direction - Richting omkeren + Reverse direction + Richting omkeren - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Waarde invoeren + + Insert datum + Waarde invoeren - datum: - Waarde: + + datum: + Waarde: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Kies oriëntatie + + + + Sketch orientation + Schets-oriëntatie + + + + XY-Plane + XY-vlak + + + + XZ-Plane + XZ-vlak + + + + YZ-Plane + YZ-vlak + + + + Reverse direction + Richting omkeren + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Formulier + + Form + Formulier - Filter: - Filter: + + Filter: + Filter: - All - Alles + + All + Alles - Normal - Normaal + + Normal + Normaal - Datums - Waarden + + Datums + Waarden - Named - Benoemd + + Named + Benoemd - - Constraints - Beperkingen + + Constraints + Beperkingen - - + + SketcherGui::TaskSketcherGeneral - - Form - Formulier + + Form + Formulier - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Niet opgelost + Unsolved + Niet opgelost - Grid Snap - Aan raster uitlijnen + Grid Snap + Aan raster uitlijnen - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0,2 mm + 0.2 mm + 0,2 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Automatische beperkingen + + Auto constraints + Automatische beperkingen - auto constraints - Automatische vrijheidsgraden + auto constraints + Automatische vrijheidsgraden - - Edit controls - Bewerk besturingselementen + + Edit controls + Bewerk besturingselementen - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Oplosser berichten + + Solver messages + Oplosser berichten - - + + TaskSketcherConstrains - Constraints - Beperkingen + Constraints + Beperkingen - - + + TaskSketcherCreateCommands - Appearance - Vormgeving + Appearance + Vormgeving - - + + TaskSketcherGeneral - Edit controls - Bewerk besturingselementen + Edit controls + Bewerk besturingselementen - - + + TaskSketcherMessages - - Form - Formulier + + Form + Formulier - Undefined degrees of freedom - Niet-gedefinieerde vrijheidsgraden + + Undefined degrees of freedom + Niet-gedefinieerde vrijheidsgraden - Not solved yet - Onder gedimensioneerd + + Not solved yet + Onder gedimensioneerd - - + + Workbench - - Sketcher - Schetsen + + Sketcher + Schetsen - Sketcher geometries - Schets-geometrieën + + Sketcher geometries + Schets-geometrieën - Sketcher geoms - Schets geometrie + Sketcher geoms + Schets geometrie - Sketcher constraints - Schets vrijheidsgraden + + Sketcher constraints + Schets vrijheidsgraden - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_no.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_no.ts index fce70f077..53bfd9cb0 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_no.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_no.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Skisse + + Sketcher + Skisse - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Skisse + + Sketcher + Skisse - Constrain coincident - LÃ¥s forhold + + Constrain coincident + LÃ¥s forhold - Create a coincident constraint on the selected item - Lag en lÃ¥s i forhold til valgte objekt + + Create a coincident constraint on the selected item + Lag en lÃ¥s i forhold til valgte objekt - - + + CmdSketcherConstrainDistance - Sketcher - Skisse + + Sketcher + Skisse - Constrain distance - LÃ¥s avstand + + Constrain distance + LÃ¥s avstand - Fix a length of a line or the distance between a line and a vertex - Fikser lengde pÃ¥ en linje eller avstanden mellom en linje og en node + + Fix a length of a line or the distance between a line and a vertex + Fikser lengde pÃ¥ en linje eller avstanden mellom en linje og en node - - + + CmdSketcherConstrainDistanceX - Sketcher - Skisse + + Sketcher + Skisse - Constrain vertical distance - Begrense vertikal avstand + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Begrense vertikal avstand - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Skisse + + Sketcher + Skisse - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Begrense vertikal avstand - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Skisse + + Sketcher + Skisse - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Skisse + + Sketcher + Skisse - Constrain horizontally - LÃ¥s horisontalt + + Constrain horizontally + LÃ¥s horisontalt - Create a horizontal constraint on the selected item - Lag en horisontal lÃ¥s pÃ¥ det merkede elementet + + Create a horizontal constraint on the selected item + Lag en horisontal lÃ¥s pÃ¥ det merkede elementet - - + + CmdSketcherConstrainLock - Sketcher - Skisse + + Sketcher + Skisse - Constrain lock - LÃ¥s + + Constrain lock + LÃ¥s - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Skisse + + Sketcher + Skisse - Constrain parallel - LÃ¥s parallell + + Constrain parallel + LÃ¥s parallell - Create a parallel constraint between two lines - Lag en parallell lÃ¥s mellom to linjer + + Create a parallel constraint between two lines + Lag en parallell lÃ¥s mellom to linjer - - + + CmdSketcherConstrainPerpendicular - Sketcher - Skisse + + Sketcher + Skisse - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Skisse + + Sketcher + Skisse - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Skisse + + Sketcher + Skisse - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Skisse + + Sketcher + Skisse - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Skisse + + Sketcher + Skisse - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Skisse + + Sketcher + Skisse - Constrain vertically - LÃ¥s vertikalt + + Constrain vertically + LÃ¥s vertikalt - Create a vertical constraint on the selected item - Lag en vertikal lÃ¥s pÃ¥ valgt element + + Create a vertical constraint on the selected item + Lag en vertikal lÃ¥s pÃ¥ valgt element - - + + CmdSketcherCreateArc - - Sketcher - Skisse + + Sketcher + Skisse - Create arc - Lag bue + + Create arc + Lag bue - Create an arc in the sketch - Lag en bue i skissen + + Create an arc in the sketch + Lag en bue i skissen - - + + CmdSketcherCreateCircle - Sketcher - Skisse + + Sketcher + Skisse - Create circle - Lag sirkel + + Create circle + Lag sirkel - Create a circle in the sketch - Lag en sirkel i skissen + + Create a circle in the sketch + Lag en sirkel i skissen - - + + CmdSketcherCreateDraftLine - Sketcher - Skisse + + Sketcher + Skisse - Create draft line - Lag linje + + Create draft line + Lag linje - Create a draft line in the sketch - Lag en linje i skissen + + Create a draft line in the sketch + Lag en linje i skissen - - + + CmdSketcherCreateFillet - Sketcher - Skisse + + Sketcher + Skisse - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Skisse + + Sketcher + Skisse - Create line - Lag linje + + Create line + Lag linje - Create a line in the sketch - Lag en linje i skissen + + Create a line in the sketch + Lag en linje i skissen - - + + CmdSketcherCreatePoint - Sketcher - Skisse + + Sketcher + Skisse - Create point - Lag punkt + + Create point + Lag punkt - Create a point in the sketch - Lag et punkt i skissen + + Create a point in the sketch + Lag et punkt i skissen - - + + CmdSketcherCreatePolyline - Sketcher - Skisse + + Sketcher + Skisse - Create polyline - Lag polylinje + + Create polyline + Lag polylinje - Create a polyline in the sketch - Lag en polylinje i skissen + + Create a polyline in the sketch + Lag en polylinje i skissen - - + + CmdSketcherCreateRectangle - Sketcher - Skisse + + Sketcher + Skisse - Create rectangle - Lag rektangel + + Create rectangle + Lag rektangel - Create a rectangle in the sketch - Lag et rektangel i skissen + + Create a rectangle in the sketch + Lag et rektangel i skissen - - + + CmdSketcherCreateText - Sketcher - Skisse + + Sketcher + Skisse - Create text - Lag tekst + + Create text + Lag tekst - Create text in the sketch - Lag tekst i skissen + + Create text in the sketch + Lag tekst i skissen - - + + + CmdSketcherExternal + + + Sketcher + Skisse + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Skisse + + Sketcher + Skisse - Leave sketch - Forlat skissen + + Leave sketch + Forlat skissen - Close the editing of the sketch - Lukk redigering av skissen + + Close the editing of the sketch + Lukk redigering av skissen - - + + CmdSketcherMapSketch - Sketcher - Skisse + + Sketcher + Skisse - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Skisse + + Sketcher + Skisse - Create sketch - Lag skisse + + Create sketch + Lag skisse - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Lag en ny skisse + Create a new sketch + Lag en ny skisse - - + + CmdSketcherNewSketchSF - Sketcher - Skisse + Sketcher + Skisse - Sketchflat sketch - Flatskisse + Sketchflat sketch + Flatskisse - Create a new sketchflat sketch by starting externel editor - Lag en ny flatskisse ved Ã¥ starte ekstern redigering + Create a new sketchflat sketch by starting externel editor + Lag en ny flatskisse ved Ã¥ starte ekstern redigering - - + + CmdSketcherToggleConstruction - - Sketcher - Skisse + + Sketcher + Skisse - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Skisse + + Sketcher + Skisse - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Skisse + + Sketcher + Skisse - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Utseende + + Appearance + Utseende - - + + QObject - - Wrong selection - Feil valg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Feil valg - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Velg en kant i skissen. + + + Select an edge from the sketch. + Velg en kant i skissen. - Double constraint - Dobbel lÃ¥s + + + Double constraint + Dobbel lÃ¥s - The selected edge has already a horizontal constraint! - Den valgte kanten har allerede en horisontal lÃ¥s! + + + The selected edge has already a horizontal constraint! + Den valgte kanten har allerede en horisontal lÃ¥s! - Impossible constraint - Umulig lÃ¥s + + + + + + + Impossible constraint + Umulig lÃ¥s - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Den valgte kanten har allerede en vertikal lÃ¥s! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + Den valgte kanten har allerede en vertikal lÃ¥s! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Velg node i skissen. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Velg nøyaktig to noder i skissen. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Velg node i skissen. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Velg nøyaktig to noder i skissen. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Velg nøyaktig en linje i skissen. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Velg to linjer i skissen. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Velg nøyaktig to linjer i skissen. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Rediger skisse + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - En dialog er allerede Ã¥pent i oppgavepanelet + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Ønsker du Ã¥ lukke denne dialogen? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Flere delelementer er valgt + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Du mÃ¥ velge en enkelt flate som støtte for en skisse! + + Sketch axes cannot be used in equality constraints + - No support face selected - Ingen flate for støtte valgt + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Du mÃ¥ velge en flate som støtte for en skisse! + + Cannot add a constraint between external geometries! + - No planar support - Ingen planstøtte + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - Du trenger en plan flate som støtte for en skisse! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Velg nøyaktig en linje i skissen. - - + + Select two lines from the sketch. + Velg to linjer i skissen. + + + Select exactly two lines from the sketch. + Velg nøyaktig to linjer i skissen. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Rediger skisse + + + + A dialog is already open in the task panel + En dialog er allerede Ã¥pent i oppgavepanelet + + + + Do you want to close this dialog? + Ønsker du Ã¥ lukke denne dialogen? + + + + Several sub-elements selected + Flere delelementer er valgt + + + + You have to select a single face as support for a sketch! + Du mÃ¥ velge en enkelt flate som støtte for en skisse! + + + + No support face selected + Ingen flate for støtte valgt + + + + You have to select a face as support for a sketch! + Du mÃ¥ velge en flate som støtte for en skisse! + + + + No planar support + Ingen planstøtte + + + + You need a planar face as support for a sketch! + Du trenger en plan flate som støtte for en skisse! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-Plane + XY-Plane + XY-Plane - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Sett inn faktum + + Insert datum + Sett inn faktum - datum: - Faktum: + + datum: + Faktum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-Plane + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Skjema + + Form + Skjema - Filter: - Filter: + + Filter: + Filter: - All - Alle + + All + Alle - Normal - Normal + + Normal + Normal - Datums - Fakta + + Datums + Fakta - Named - Navngitt + + Named + Navngitt - - Constraints - LÃ¥ser + + Constraints + LÃ¥ser - - + + SketcherGui::TaskSketcherGeneral - - Form - Skjema + + Form + Skjema - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Uløste + Unsolved + Uløste - Grid Snap - Rutenettmagnet + Grid Snap + Rutenettmagnet - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - autolÃ¥ser + auto constraints + autolÃ¥ser - - Edit controls - Rediger kontroller + + Edit controls + Rediger kontroller - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - LÃ¥ser + Constraints + LÃ¥ser - - + + TaskSketcherCreateCommands - Appearance - Utseende + Appearance + Utseende - - + + TaskSketcherGeneral - Edit controls - Rediger kontroller + Edit controls + Rediger kontroller - - + + TaskSketcherMessages - - Form - Skjema + + Form + Skjema - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Skisse + + Sketcher + Skisse - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Skissegeom + Sketcher geoms + Skissegeom - Sketcher constraints - SkisselÃ¥ser + + Sketcher constraints + SkisselÃ¥ser - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts index 13039ef4e..c229641a6 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pl.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Ustaw kÄ…t linii lub kÄ…t pomiÄ™dzy 2 liniami + + Fix the angle of a line or the angle between two lines + Ustaw kÄ…t linii lub kÄ…t pomiÄ™dzy 2 liniami - - + + CmdSketcherConstrainCoincident - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain coincident - Ograniczenie przez pokrywanie + + Constrain coincident + Ograniczenie przez pokrywanie - Create a coincident constraint on the selected item - Utwórz ograniczenie przez pokrywanie na wybranym elemencie + + Create a coincident constraint on the selected item + Utwórz ograniczenie przez pokrywanie na wybranym elemencie - - + + CmdSketcherConstrainDistance - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain distance - Ograniczenie odlegÅ‚oÅ›ci + + Constrain distance + Ograniczenie odlegÅ‚oÅ›ci - Fix a length of a line or the distance between a line and a vertex - Ustal dÅ‚ugość linii lub odlegÅ‚ość pomiÄ™dzy liniÄ… a wierzchoÅ‚kiem + + Fix a length of a line or the distance between a line and a vertex + Ustal dÅ‚ugość linii lub odlegÅ‚ość pomiÄ™dzy liniÄ… a wierzchoÅ‚kiem - - + + CmdSketcherConstrainDistanceX - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain vertical distance - Ograniczyć pionowÄ… odlegÅ‚ość + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Ograniczyć pionowÄ… odlegÅ‚ość - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Ograniczyć pionowÄ… odlegÅ‚ość - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain horizontally - Ograniczenie poziome + + Constrain horizontally + Ograniczenie poziome - Create a horizontal constraint on the selected item - Tworzenie poziomego ograniczenia dla wybranego elementu + + Create a horizontal constraint on the selected item + Tworzenie poziomego ograniczenia dla wybranego elementu - - + + CmdSketcherConstrainLock - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain lock - Blokada przemieszczenia + + Constrain lock + Blokada przemieszczenia - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain parallel - Ograniczenie równolegle + + Constrain parallel + Ograniczenie równolegle - Create a parallel constraint between two lines - Utwórz ograniczenie równolegÅ‚e dwóch linii + + Create a parallel constraint between two lines + Utwórz ograniczenie równolegÅ‚e dwóch linii - - + + CmdSketcherConstrainPerpendicular - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Ustaw punkt na obiekcie + + Fix a point onto an object + Ustaw punkt na obiekcie - - + + CmdSketcherConstrainRadius - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Utwórz stycznÄ… pomiÄ™dzy dwoma elementami + + Create a tangent constraint between two entities + Utwórz stycznÄ… pomiÄ™dzy dwoma elementami - - + + CmdSketcherConstrainVertical - Sketcher - Szkicownik + + Sketcher + Szkicownik - Constrain vertically - Ograniczenie pionowe + + Constrain vertically + Ograniczenie pionowe - Create a vertical constraint on the selected item - Utwórz ograniczenie pionowe na wybranym elemencie + + Create a vertical constraint on the selected item + Utwórz ograniczenie pionowe na wybranym elemencie - - + + CmdSketcherCreateArc - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create arc - Tworzenie Å‚uku + + Create arc + Tworzenie Å‚uku - Create an arc in the sketch - Utwórz Å‚uk na szkicu + + Create an arc in the sketch + Utwórz Å‚uk na szkicu - - + + CmdSketcherCreateCircle - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create circle - Tworzenie okrÄ™gu + + Create circle + Tworzenie okrÄ™gu - Create a circle in the sketch - Utwórz okrÄ…g na szkicu + + Create a circle in the sketch + Utwórz okrÄ…g na szkicu - - + + CmdSketcherCreateDraftLine - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create draft line - Create draft line + + Create draft line + Create draft line - Create a draft line in the sketch - Create a draft line in the sketch + + Create a draft line in the sketch + Create a draft line in the sketch - - + + CmdSketcherCreateFillet - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create fillet - Utwórz zaokrÄ…glenie + + Create fillet + Utwórz zaokrÄ…glenie - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create line - Tworzenie linii + + Create line + Tworzenie linii - Create a line in the sketch - Utwórz liniÄ™ na szkicu + + Create a line in the sketch + Utwórz liniÄ™ na szkicu - - + + CmdSketcherCreatePoint - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create point - Tworzenie punktu + + Create point + Tworzenie punktu - Create a point in the sketch - Utwórz punkt na szkicu + + Create a point in the sketch + Utwórz punkt na szkicu - - + + CmdSketcherCreatePolyline - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create polyline - Tworzenie Å‚amanej + + Create polyline + Tworzenie Å‚amanej - Create a polyline in the sketch - Utwórz Å‚amanÄ… na szkicu + + Create a polyline in the sketch + Utwórz Å‚amanÄ… na szkicu - - + + CmdSketcherCreateRectangle - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create rectangle - Tworzenie prostokÄ…tu + + Create rectangle + Tworzenie prostokÄ…tu - Create a rectangle in the sketch - Utwórz prostokÄ…t na szkicu + + Create a rectangle in the sketch + Utwórz prostokÄ…t na szkicu - - + + CmdSketcherCreateText - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create text - Tworzenie tekstu + + Create text + Tworzenie tekstu - Create text in the sketch - Utwórz tekst na szkicu + + Create text in the sketch + Utwórz tekst na szkicu - - + + + CmdSketcherExternal + + + Sketcher + Szkicownik + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Leave sketch - Porzuć szkic + + Leave sketch + Porzuć szkic - Close the editing of the sketch - Zamknij edycjÄ™ szkicu + + Close the editing of the sketch + Zamknij edycjÄ™ szkicu - - + + CmdSketcherMapSketch - Sketcher - Szkicownik + + Sketcher + Szkicownik - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Mapuj szkic na fasetkÄ™ + + Map a sketch to a face + Mapuj szkic na fasetkÄ™ - - + + CmdSketcherNewSketch - Sketcher - Szkicownik + + Sketcher + Szkicownik - Create sketch - Tworzenie szkicu + + Create sketch + Tworzenie szkicu - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Utwórz nowy szkic + Create a new sketch + Utwórz nowy szkic - - + + CmdSketcherNewSketchSF - Sketcher - Szkicownik + Sketcher + Szkicownik - Sketchflat sketch - Sketchflat sketch + Sketchflat sketch + Sketchflat sketch - Create a new sketchflat sketch by starting externel editor - Create a new sketchflat sketch by starting externel editor + Create a new sketchflat sketch by starting externel editor + Create a new sketchflat sketch by starting externel editor - - + + CmdSketcherToggleConstruction - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Przełącz tryb zaznaczonych linii (do/z trybu konstrukcji) + + Toggles the currently selected lines to/from construction mode + Przełącz tryb zaznaczonych linii (do/z trybu konstrukcji) - - + + CmdSketcherTrimming - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Trim edge - Przytnij krawÄ™dź + + Trim edge + Przytnij krawÄ™dź - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Szkicownik + + Sketcher + Szkicownik - View sketch - Widok szkicu + + View sketch + Widok szkicu - View sketch perpendicular to sketch plane - Widok szkicu prostopadÅ‚ego do pÅ‚aszczyzny szkicu + + View sketch perpendicular to sketch plane + Widok szkicu prostopadÅ‚ego do pÅ‚aszczyzny szkicu - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - WyglÄ…d + + Appearance + WyglÄ…d - - + + QObject - - Wrong selection - NiewÅ‚aÅ›ciwy wybór + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + NiewÅ‚aÅ›ciwy wybór - Select edge(s) from the sketch. - Wybierz krawÄ™dź(ie) na szkicu + + Select edge(s) from the sketch. + Wybierz krawÄ™dź(ie) na szkicu - - Select an edge from the sketch. - Wybierz krawÄ™dź ze szkicu. + + + Select an edge from the sketch. + Wybierz krawÄ™dź ze szkicu. - Double constraint - Podwójne ograniczenie + + + Double constraint + Podwójne ograniczenie - The selected edge has already a horizontal constraint! - Wybrana krawÄ™dź jest już pozioma! + + + The selected edge has already a horizontal constraint! + Wybrana krawÄ™dź jest już pozioma! - Impossible constraint - Niemożliwe ograniczenie + + + + + + + Impossible constraint + Niemożliwe ograniczenie - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Jedno z zaznaczonych musi być na szkicu + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - Zaznaczona krawÄ™dź nie jest segmentem linii + + One of the selected has to be on the sketch + Jedno z zaznaczonych musi być na szkicu - The selected edge has already a vertical constraint! - Wybrana krawÄ™dź jest już pionowa! + + + The selected edge is not a line segment + Zaznaczona krawÄ™dź nie jest segmentem linii - Select entities from the sketch. - Zaznacz obiekty na szkicu + + + The selected edge has already a vertical constraint! + Wybrana krawÄ™dź jest już pionowa! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Wybierz wierzchoÅ‚ki ze szkicu. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Wybierz dokÅ‚adnie dwa wierzchoÅ‚ki ze szkicu. + + Select entities from the sketch. + Zaznacz obiekty na szkicu - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Zaznacz dokÅ‚adnie jeden punkt i jeden obiekt na szkicu. + + + + + + + Select vertexes from the sketch. + Wybierz wierzchoÅ‚ki ze szkicu. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Wybierz dokÅ‚adnie dwa wierzchoÅ‚ki ze szkicu. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Zaznacz dokÅ‚adnie jeden punkt i jeden obiekt na szkicu. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Zaznacz identyczne elementy geometrii + + Select a valid line + Select a valid line - Select valid geometries - Zaznacz wÅ‚aÅ›ciwy element geometrii + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Zaznacz element geometrii podobnego typu + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Zaznacz dwa punkty i liniÄ™ na szkicu + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Wybierz dokÅ‚adnie jednÄ… liniÄ™ ze szkicu. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Wybierz dwie linie ze szkicu. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Wybierz dokÅ‚adnie dwie linie ze szkicu. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Zaznacz dokÅ‚adnie dwa elementy na szkicu. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Edycja szkicu + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Okno dialogowe jest już otwarte w panelu zadaÅ„ + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Czy chcesz zamknąć to okno dialogowe? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Wybrano kilka podelementów + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Musisz wybrać pojedynczÄ… powierzchniÄ™ jako bazÄ™ dla szkicu! + + Sketch axes cannot be used in equality constraints + - No support face selected - Nie wybrano powierzchni bazowej + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Musisz wybrać powierzchniÄ™ jako bazÄ™ dla szkicu! + + Cannot add a constraint between external geometries! + - No planar support - No planar support + Select exactly two same geometries + Zaznacz identyczne elementy geometrii - You need a planar face as support for a sketch! - You need a planar face as support for a sketch! + Select valid geometries + Zaznacz wÅ‚aÅ›ciwy element geometrii - - Distance constraint - Distance constraint + Select geometry of similar type + Zaznacz element geometrii podobnego typu - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Zaznacz dwa punkty i liniÄ™ na szkicu - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Wybierz dokÅ‚adnie jednÄ… liniÄ™ ze szkicu. - - + + Select two lines from the sketch. + Wybierz dwie linie ze szkicu. + + + Select exactly two lines from the sketch. + Wybierz dokÅ‚adnie dwie linie ze szkicu. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Zaznacz dokÅ‚adnie dwa elementy na szkicu. + + + + Edit sketch + Edycja szkicu + + + + A dialog is already open in the task panel + Okno dialogowe jest już otwarte w panelu zadaÅ„ + + + + Do you want to close this dialog? + Czy chcesz zamknąć to okno dialogowe? + + + + Several sub-elements selected + Wybrano kilka podelementów + + + + You have to select a single face as support for a sketch! + Musisz wybrać pojedynczÄ… powierzchniÄ™ jako bazÄ™ dla szkicu! + + + + No support face selected + Nie wybrano powierzchni bazowej + + + + You have to select a face as support for a sketch! + Musisz wybrać powierzchniÄ™ jako bazÄ™ dla szkicu! + + + + No planar support + No planar support + + + + You need a planar face as support for a sketch! + You need a planar face as support for a sketch! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Wybierz orientacjÄ™ + Choose orientation + Wybierz orientacjÄ™ - Sketch orientation - Orientacja szkicu + Sketch orientation + Orientacja szkicu - XY-Plane - PÅ‚aszczyzna X-Y + XY-Plane + PÅ‚aszczyzna X-Y - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Wstaw odniesienia + + Insert datum + Wstaw odniesienia - datum: - odniesienie: + + datum: + odniesienie: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Wybierz orientacjÄ™ + + + + Sketch orientation + Orientacja szkicu + + + + XY-Plane + PÅ‚aszczyzna X-Y + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Formularz + + Form + Formularz - Filter: - Filtr: + + Filter: + Filtr: - All - Wszystko + + All + Wszystko - Normal - Normalny + + Normal + Normalny - Datums - Odniesienia + + Datums + Odniesienia - Named - Nazwane + + Named + Nazwane - - Constraints - Ograniczenia + + Constraints + Ograniczenia - - + + SketcherGui::TaskSketcherGeneral - - Form - Formularz + + Form + Formularz - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - NierozwiÄ…zany + Unsolved + NierozwiÄ…zany - Grid Snap - Siatka przyciÄ…gania + Grid Snap + Siatka przyciÄ…gania - 0.1 mm - 0,1 mm + 0.1 mm + 0,1 mm - 0.2 mm - 0,2 mm + 0.2 mm + 0,2 mm - 0.5 mm - 0,5 mm + 0.5 mm + 0,5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - auto constraints + auto constraints + auto constraints - - Edit controls - Edycja kontrolek + + Edit controls + Edycja kontrolek - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - Ograniczenia + Constraints + Ograniczenia - - + + TaskSketcherCreateCommands - Appearance - WyglÄ…d + Appearance + WyglÄ…d - - + + TaskSketcherGeneral - Edit controls - Edycja kontrolek + Edit controls + Edycja kontrolek - - + + TaskSketcherMessages - - Form - Formularz + + Form + Formularz - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - W opracowaniu + + Not solved yet + W opracowaniu - - + + Workbench - - Sketcher - Szkicownik + + Sketcher + Szkicownik - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Szkicownik geometria + Sketcher geoms + Szkicownik geometria - Sketcher constraints - Szkicownik ograniczenia + + Sketcher constraints + Szkicownik ograniczenia - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt.ts index 65e4a2c09..9b61624af 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_pt.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Esboço + + Sketcher + Esboço - Constrain angle - Restrição de ângulo + + Constrain angle + Restrição de ângulo - Fix the angle of a line or the angle between two lines - Fixar o ângulo de uma linha ou o ângulo entre duas linhas + + Fix the angle of a line or the angle between two lines + Fixar o ângulo de uma linha ou o ângulo entre duas linhas - - + + CmdSketcherConstrainCoincident - Sketcher - Esboço + + Sketcher + Esboço - Constrain coincident - Restrição de coincidência + + Constrain coincident + Restrição de coincidência - Create a coincident constraint on the selected item - Criar uma restrição de coincidência sobre o item selecionado + + Create a coincident constraint on the selected item + Criar uma restrição de coincidência sobre o item selecionado - - + + CmdSketcherConstrainDistance - Sketcher - Esboço + + Sketcher + Esboço - Constrain distance - Restrição de distância + + Constrain distance + Restrição de distância - Fix a length of a line or the distance between a line and a vertex - Trancar o comprimento de uma linha ou a distância entre uma linha e um vértice + + Fix a length of a line or the distance between a line and a vertex + Trancar o comprimento de uma linha ou a distância entre uma linha e um vértice - - + + CmdSketcherConstrainDistanceX - Sketcher - Esboço + + Sketcher + Esboço - Constrain vertical distance - Restrição de distância vertical + + Constrain horizontal distance + Restrição de distância horizontal - Fix the horizontal distance between two points or line ends - Fixar a distância horizontal entre dois pontos ou extremidades de linha + Constrain vertical distance + Restrição de distância vertical - - + + + Fix the horizontal distance between two points or line ends + Fixar a distância horizontal entre dois pontos ou extremidades de linha + + + CmdSketcherConstrainDistanceY - Sketcher - Esboço + + Sketcher + Esboço - Constrain horizontal distance - Restrição de distância horizontal + + Constrain vertical distance + Restrição de distância vertical - Fix the vertical distance between two points or line ends - Fixar a distância vertical entre dois pontos ou extremidades de linha + Constrain horizontal distance + Restrição de distância horizontal - - + + + Fix the vertical distance between two points or line ends + Fixar a distância vertical entre dois pontos ou extremidades de linha + + + CmdSketcherConstrainEqual - Sketcher - Esboço + + Sketcher + Esboço - Constrain equal - Restrição igual + + Constrain equal + Restrição igual - Create an equality constraint between two lines or between circles and arcs - Criar uma restrição de igualdade entre duas linhas ou círculos e arcos + + Create an equality constraint between two lines or between circles and arcs + Criar uma restrição de igualdade entre duas linhas ou círculos e arcos - - + + CmdSketcherConstrainHorizontal - Sketcher - Esboço + + Sketcher + Esboço - Constrain horizontally - Restringir horizontalmente + + Constrain horizontally + Restringir horizontalmente - Create a horizontal constraint on the selected item - Criar uma restrição horizontal sobre o item selecionado + + Create a horizontal constraint on the selected item + Criar uma restrição horizontal sobre o item selecionado - - + + CmdSketcherConstrainLock - Sketcher - Esboço + + Sketcher + Esboço - Constrain lock - Restrição de bloqueio + + Constrain lock + Restrição de bloqueio - Create a lock constraint on the selected item - Criar uma restrição de bloqueio no item selecionado + + Create a lock constraint on the selected item + Criar uma restrição de bloqueio no item selecionado - - + + CmdSketcherConstrainParallel - Sketcher - Esboço + + Sketcher + Esboço - Constrain parallel - Restrição paralela + + Constrain parallel + Restrição paralela - Create a parallel constraint between two lines - Criar uma restrição paralela entre duas linhas + + Create a parallel constraint between two lines + Criar uma restrição paralela entre duas linhas - - + + CmdSketcherConstrainPerpendicular - Sketcher - Esboço + + Sketcher + Esboço - Constrain perpendicular - Restrição perpendicular + + Constrain perpendicular + Restrição perpendicular - Create a Perpendicular constraint between two lines - Criar uma restrição perpendicular entre duas linhas + + Create a Perpendicular constraint between two lines + Criar uma restrição perpendicular entre duas linhas - - + + CmdSketcherConstrainPointOnObject - Sketcher - Esboço + + Sketcher + Esboço - Constrain point onto object - Restringir um ponto sobre um objeto + + Constrain point onto object + Restringir um ponto sobre um objeto - Fix a point onto an object - Fixar um ponto sobre um objeto + + Fix a point onto an object + Fixar um ponto sobre um objeto - - + + CmdSketcherConstrainRadius - Sketcher - Esboço + + Sketcher + Esboço - Constrain radius - Restrição de raio + + Constrain radius + Restrição de raio - Fix the radius of a circle or an arc - Fixar o raio de um círculo ou um arco + + Fix the radius of a circle or an arc + Fixar o raio de um círculo ou um arco - - + + CmdSketcherConstrainSymmetric - Sketcher - Esboço + + Sketcher + Esboço - Constrain symmetrical - Restrição simétrica + + Constrain symmetrical + Restrição simétrica - Create an symmetry constraint between two points with respect to a line - Criar uma restrição de simetria entre dois pontos relativamente a uma linha + + Create an symmetry constraint between two points with respect to a line + Criar uma restrição de simetria entre dois pontos relativamente a uma linha - - + + CmdSketcherConstrainTangent - Sketcher - Esboço + + Sketcher + Esboço - Constrain tangent - Restrição tangente + + Constrain tangent + Restrição tangente - Create a tangent constraint between two entities - Criar uma restrição tangente entre duas entidades + + Create a tangent constraint between two entities + Criar uma restrição tangente entre duas entidades - - + + CmdSketcherConstrainVertical - Sketcher - Esboço + + Sketcher + Esboço - Constrain vertically - Restringir verticalmente + + Constrain vertically + Restringir verticalmente - Create a vertical constraint on the selected item - Criar uma restrição vertical sobre o item selecionado + + Create a vertical constraint on the selected item + Criar uma restrição vertical sobre o item selecionado - - + + CmdSketcherCreateArc - - Sketcher - Esboço + + Sketcher + Esboço - Create arc - Criar arco + + Create arc + Criar arco - Create an arc in the sketch - Criar um arco no esboço + + Create an arc in the sketch + Criar um arco no esboço - - + + CmdSketcherCreateCircle - Sketcher - Esboço + + Sketcher + Esboço - Create circle - Criar círculo + + Create circle + Criar círculo - Create a circle in the sketch - Criar um círculo no esboço + + Create a circle in the sketch + Criar um círculo no esboço - - + + CmdSketcherCreateDraftLine - Sketcher - Esboço + + Sketcher + Esboço - Create draft line - Criar linha de rascunho + + Create draft line + Criar linha de rascunho - Create a draft line in the sketch - Criar uma linha de rascunho no esboço + + Create a draft line in the sketch + Criar uma linha de rascunho no esboço - - + + CmdSketcherCreateFillet - Sketcher - Esboço + + Sketcher + Esboço - Create fillet - Criar filete + + Create fillet + Criar filete - Create a fillet between two lines or at a coincident point - Criar um filete entre duas linhas ou em um ponto coincidente + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Criar um filete entre duas linhas ou em um ponto coincidente + + + CmdSketcherCreateLine - Sketcher - Esboço + + Sketcher + Esboço - Create line - Criar linha + + Create line + Criar linha - Create a line in the sketch - Criar uma linha no esboço + + Create a line in the sketch + Criar uma linha no esboço - - + + CmdSketcherCreatePoint - Sketcher - Esboço + + Sketcher + Esboço - Create point - Criar ponto + + Create point + Criar ponto - Create a point in the sketch - Criar um ponto no esboço + + Create a point in the sketch + Criar um ponto no esboço - - + + CmdSketcherCreatePolyline - Sketcher - Esboço + + Sketcher + Esboço - Create polyline - Criar polyline + + Create polyline + Criar polyline - Create a polyline in the sketch - Criar uma polilinha no sketch + + Create a polyline in the sketch + Criar uma polilinha no sketch - - + + CmdSketcherCreateRectangle - Sketcher - Esboço + + Sketcher + Esboço - Create rectangle - Criar retângulo + + Create rectangle + Criar retângulo - Create a rectangle in the sketch - Criar um retângulo no esboço + + Create a rectangle in the sketch + Criar um retângulo no esboço - - + + CmdSketcherCreateText - Sketcher - Esboço + + Sketcher + Esboço - Create text - Criar texto + + Create text + Criar texto - Create text in the sketch - Criar um texto no esboço + + Create text in the sketch + Criar um texto no esboço - - + + + CmdSketcherExternal + + + Sketcher + Esboço + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Esboço + + Sketcher + Esboço - Leave sketch - Sair do esboço + + Leave sketch + Sair do esboço - Close the editing of the sketch - Fechar a edição do esboço + + Close the editing of the sketch + Fechar a edição do esboço - - + + CmdSketcherMapSketch - Sketcher - Esboço + + Sketcher + Esboço - Map sketch to face... - Esboço para face... + + Map sketch to face... + Esboço para face... - Map a sketch to a face - Mapear um esboço para uma face + + Map a sketch to a face + Mapear um esboço para uma face - - + + CmdSketcherNewSketch - Sketcher - Esboço + + Sketcher + Esboço - Create sketch - Criar um esboço + + Create sketch + Criar um esboço - Create a new or edit the selected sketch - Criar um novo esboço ou editar o esboço selecionado + + Create a new or edit the selected sketch + Criar um novo esboço ou editar o esboço selecionado - Create a new sketch - Criar um novo esboço + Create a new sketch + Criar um novo esboço - - + + CmdSketcherNewSketchSF - Sketcher - Esboço + Sketcher + Esboço - Sketchflat sketch - Esboço do Sketchflat + Sketchflat sketch + Esboço do Sketchflat - Create a new sketchflat sketch by starting externel editor - Criar um novo desenho do sketchflat iniciando o editor externo + Create a new sketchflat sketch by starting externel editor + Criar um novo desenho do sketchflat iniciando o editor externo - - + + CmdSketcherToggleConstruction - - Sketcher - Esboço + + Sketcher + Esboço - Toggle construction line - Alternar modo de construção + + Toggle construction line + Alternar modo de construção - Toggles the currently selected lines to/from construction mode - Coloca ou retira as linhas selecionadas do modo de construção + + Toggles the currently selected lines to/from construction mode + Coloca ou retira as linhas selecionadas do modo de construção - - + + CmdSketcherTrimming - - Sketcher - Esboço + + Sketcher + Esboço - Trim edge - Recortar aresta + + Trim edge + Recortar aresta - Trims an edge with respect to the picked position - Recorta uma aresta a partir da posição escolhida + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Recorta uma aresta a partir da posição escolhida + + + CmdSketcherViewSketch - - Sketcher - Esboço + + Sketcher + Esboço - View sketch - Ver esboço + + View sketch + Ver esboço - View sketch perpendicular to sketch plane - Olhar perpendicularmente ao plano do esboço + + View sketch perpendicular to sketch plane + Olhar perpendicularmente ao plano do esboço - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Aparência + + Appearance + Aparência - - + + QObject - - Wrong selection - Seleção errada + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Seleção errada - Select edge(s) from the sketch. - Selecione aresta(s) no esboço. + + Select edge(s) from the sketch. + Selecione aresta(s) no esboço. - - Select an edge from the sketch. - Selecione uma aresta do esboço. + + + Select an edge from the sketch. + Selecione uma aresta do esboço. - Double constraint - Restrição dupla + + + Double constraint + Restrição dupla - The selected edge has already a horizontal constraint! - A aresta selecionada já possui uma restrição horizontal! + + + The selected edge has already a horizontal constraint! + A aresta selecionada já possui uma restrição horizontal! - Impossible constraint - Restrição impossível + + + + + + + Impossible constraint + Restrição impossível - Only sketch and its support is allowed to select - É permitido selecionar somente um esboço e seu suporte + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - Um dos selecionados tem que ser no esboço + + + + Only sketch and its support is allowed to select + É permitido selecionar somente um esboço e seu suporte - The selected edge is not a line segment - A aresta selecionada não é um segmento de linha + + One of the selected has to be on the sketch + Um dos selecionados tem que ser no esboço - The selected edge has already a vertical constraint! - A aresta selecionada já possui uma restrição vertical! + + + The selected edge is not a line segment + A aresta selecionada não é um segmento de linha - Select entities from the sketch. - Selecione entidades no esboço. + + + The selected edge has already a vertical constraint! + A aresta selecionada já possui uma restrição vertical! - Select exactly one entity from the sketch. - Selecione exatamente uma entidade no esboço. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Selecione vértices do esboço. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Selecione exatamente dois vértices do esboço. + + Select entities from the sketch. + Selecione entidades no esboço. - Select exactly one line or one point and one line or two points from the sketch. - Selecione exatamente uma linha ou um ponto e uma linha ou dois pontos no esboço. + + + Select exactly one entity from the sketch. + Selecione exatamente uma entidade no esboço. - Select exactly one point and one object from the sketch. - Selecione exatamente um ponto e um objeto no esboço. + + + + + + + Select vertexes from the sketch. + Selecione vértices do esboço. - Select exactly one line or up to two points from the sketch. - Selecione exatamente uma linha ou até dois pontos no esboço. + + + + Select exactly two vertexes from the sketch. + Selecione exatamente dois vértices do esboço. - Select two or more lines from the sketch. - Selecione duas ou mais linhas no esboço. + + + Select exactly one line or one point and one line or two points from the sketch. + Selecione exatamente uma linha ou um ponto e uma linha ou dois pontos no esboço. - Select at least two lines from the sketch. - Selecione pelo menos duas linhas no esboço. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Selecione uma linha válida + + + Select exactly one point and one object from the sketch. + Selecione exatamente um ponto e um objeto no esboço. - The selected edge is not a valid line - A aresta selecionada não é uma linha válida + + + + + Select exactly one line or up to two points from the sketch. + Selecione exatamente uma linha ou até dois pontos no esboço. - Select exactly one arc or circle from the sketch. - Selecione exatamente um arco ou círculo no esboço. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Selecione exatamente uma ou duas linhas no esboço. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Selecione duas arestas no esboço. + + Select two or more lines from the sketch. + Selecione duas ou mais linhas no esboço. - Select atleast two lines from the sketch. - Selecione pelo menos duas linhas no esboço. + + Select at least two lines from the sketch. + Selecione pelo menos duas linhas no esboço. - Select exactly two same geometries - Selecione exatamente duas geometrias do mesmo tipo + + Select a valid line + Selecione uma linha válida - Select valid geometries - Selecione geometrias válidas + + The selected edge is not a valid line + A aresta selecionada não é uma linha válida - Select geometry of similar type - Selecione geometrias do mesmo tipo + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Selecione dois pontos e uma linha no esboço. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Selecione exatamente uma linha do esboço. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Selecione duas linhas do esboço. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Selecione exatamente duas linhas do esboço. + + + + Select exactly one arc or circle from the sketch. + Selecione exatamente um arco ou círculo no esboço. - Select two entities from the sketch. - Selecione duas entidades no esboço. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Selecione exatamente duas entidades do esboço. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Editar esboço + + Select exactly one or two lines from the sketch. + Selecione exatamente uma ou duas linhas no esboço. - A dialog is already open in the task panel - Uma caixa de diálogo já está aberta no painel de tarefas + + Select two edges from the sketch. + Selecione duas arestas no esboço. - Do you want to close this dialog? - Deseja fechar esta janela? + + Select atleast two lines from the sketch. + Selecione pelo menos duas linhas no esboço. - - Several sub-elements selected - Vários sub-elementos selecionados + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Você deve selecionar uma única face como suporte para um esboço! + + Sketch axes cannot be used in equality constraints + - No support face selected - Nenhuma face de suporte selecionada + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Você deve selecionar uma face como suporte para um esboço! + + Cannot add a constraint between external geometries! + - No planar support - Nenhum suporte planar + Select exactly two same geometries + Selecione exatamente duas geometrias do mesmo tipo - You need a planar face as support for a sketch! - Você precisa de uma face plana como suporte para um esboço! + Select valid geometries + Selecione geometrias válidas - - Distance constraint - Restrição de distância + Select geometry of similar type + Selecione geometrias do mesmo tipo - Not allowed to edit the datum because the sketch contains conflicting constraints - Não é possível editar o dado porque o esboço contém restrições conflitantes + + + + Select two points and one line from the sketch. + Selecione dois pontos e uma linha no esboço. - Dimensional constraint - Restrição de dimensão + Select exactly one line from the sketch. + Selecione exatamente uma linha do esboço. - - + + Select two lines from the sketch. + Selecione duas linhas do esboço. + + + Select exactly two lines from the sketch. + Selecione exatamente duas linhas do esboço. + + + + + Select two entities from the sketch. + Selecione duas entidades no esboço. + + + + + + + Select exactly two entities from the sketch. + Selecione exatamente duas entidades do esboço. + + + + Edit sketch + Editar esboço + + + + A dialog is already open in the task panel + Uma caixa de diálogo já está aberta no painel de tarefas + + + + Do you want to close this dialog? + Deseja fechar esta janela? + + + + Several sub-elements selected + Vários sub-elementos selecionados + + + + You have to select a single face as support for a sketch! + Você deve selecionar uma única face como suporte para um esboço! + + + + No support face selected + Nenhuma face de suporte selecionada + + + + You have to select a face as support for a sketch! + Você deve selecionar uma face como suporte para um esboço! + + + + No planar support + Nenhum suporte planar + + + + You need a planar face as support for a sketch! + Você precisa de uma face plana como suporte para um esboço! + + + + Distance constraint + Restrição de distância + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Não é possível editar o dado porque o esboço contém restrições conflitantes + + + + Dimensional constraint + Restrição de dimensão + + + SketchOrientationDialog - - Choose orientation - Escolher a orientação + Choose orientation + Escolher a orientação - Sketch orientation - Orientação do esboço + Sketch orientation + Orientação do esboço - XY-Plane - Plano XY + XY-Plane + Plano XY - XZ-Plane - Plano XZ + XZ-Plane + Plano XZ - YZ-Plane - Plano YZ + YZ-Plane + Plano YZ - Reverse direction - Inverter direção + Reverse direction + Inverter direção - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Inserir datum + + Insert datum + Inserir datum - datum: - datum: + + datum: + datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Escolher a orientação + + + + Sketch orientation + Orientação do esboço + + + + XY-Plane + Plano XY + + + + XZ-Plane + Plano XZ + + + + YZ-Plane + Plano YZ + + + + Reverse direction + Inverter direção + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Forma + + Form + Forma - Filter: - Filtro: + + Filter: + Filtro: - All - Tudo + + All + Tudo - Normal - Normal + + Normal + Normal - Datums - Datums + + Datums + Datums - Named - Nomeado + + Named + Nomeado - - Constraints - Restrições + + Constraints + Restrições - - + + SketcherGui::TaskSketcherGeneral - - Form - Forma + + Form + Forma - Grid size: - Tamanho da grade: + + Grid size: + Tamanho da grade: - Grid snap - Snap de grade + + Grid snap + Snap de grade - Unsolved - Não resolvido + Unsolved + Não resolvido - Grid Snap - Snap de grade + Grid Snap + Snap de grade - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Restrições automáticas + + Auto constraints + Restrições automáticas - auto constraints - Auto-restrições + auto constraints + Auto-restrições - - Edit controls - Controles de edição + + Edit controls + Controles de edição - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Mensagens do calculador + + Solver messages + Mensagens do calculador - - + + TaskSketcherConstrains - Constraints - Restrições + Constraints + Restrições - - + + TaskSketcherCreateCommands - Appearance - Aparência + Appearance + Aparência - - + + TaskSketcherGeneral - Edit controls - Controles de edição + Edit controls + Controles de edição - - + + TaskSketcherMessages - - Form - Forma + + Form + Forma - Undefined degrees of freedom - Graus de liberdade indefinidos + + Undefined degrees of freedom + Graus de liberdade indefinidos - Not solved yet - Não resolvido ainda + + Not solved yet + Não resolvido ainda - - + + Workbench - - Sketcher - Esboço + + Sketcher + Esboço - Sketcher geometries - Geometrias do esboço + + Sketcher geometries + Geometrias do esboço - Sketcher geoms - Geometrias de esboço + Sketcher geoms + Geometrias de esboço - Sketcher constraints - Restrições de esboço + + Sketcher constraints + Restrições de esboço - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts index 25c26d12f..2cfa307b9 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_ru.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain coincident - Ограничение коинцидентноÑти + + Constrain coincident + Ограничение коинцидентноÑти - Create a coincident constraint on the selected item - Создать ограничение коинцидентноÑти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… Ñлементов + + Create a coincident constraint on the selected item + Создать ограничение коинцидентноÑти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… Ñлементов - - + + CmdSketcherConstrainDistance - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain distance - Ограничение раÑÑтоÑÐ½Ð¸Ñ + + Constrain distance + Ограничение раÑÑтоÑÐ½Ð¸Ñ - Fix a length of a line or the distance between a line and a vertex - ЗафикÑировать длину линии или раÑÑтоÑние между линией и вершиной + + Fix a length of a line or the distance between a line and a vertex + ЗафикÑировать длину линии или раÑÑтоÑние между линией и вершиной - - + + CmdSketcherConstrainDistanceX - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain vertical distance - Ограничить раÑÑтоÑние по вертикали + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Ограничить раÑÑтоÑние по вертикали - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Ограничить раÑÑтоÑние по вертикали - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain horizontally - Ограничение горизонтальноÑти + + Constrain horizontally + Ограничение горизонтальноÑти - Create a horizontal constraint on the selected item - Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾Ñти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñлемента + + Create a horizontal constraint on the selected item + Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾Ñти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñлемента - - + + CmdSketcherConstrainLock - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain lock - Ограничение блокировка + + Constrain lock + Ограничение блокировка - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain parallel - Ограничение параллельноÑти + + Constrain parallel + Ограничение параллельноÑти - Create a parallel constraint between two lines - Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ð¾Ñти между Ð´Ð²ÑƒÐ¼Ñ Ð»Ð¸Ð½Ð¸Ñми + + Create a parallel constraint between two lines + Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ð¾Ñти между Ð´Ð²ÑƒÐ¼Ñ Ð»Ð¸Ð½Ð¸Ñми - - + + CmdSketcherConstrainPerpendicular - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Constrain vertically - Ограничение вертикальноÑти + + Constrain vertically + Ограничение вертикальноÑти - Create a vertical constraint on the selected item - Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ñти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñлемента + + Create a vertical constraint on the selected item + Создание Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ñти Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñлемента - - + + CmdSketcherCreateArc - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create arc - Создать дугу + + Create arc + Создать дугу - Create an arc in the sketch - Создать дугу в ÑÑкизе + + Create an arc in the sketch + Создать дугу в ÑÑкизе - - + + CmdSketcherCreateCircle - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create circle - Создать окружноÑть + + Create circle + Создать окружноÑть - Create a circle in the sketch - Создать окружноÑть в ÑÑкизе + + Create a circle in the sketch + Создать окружноÑть в ÑÑкизе - - + + CmdSketcherCreateDraftLine - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create draft line - Создать вÑпомогательную линию + + Create draft line + Создать вÑпомогательную линию - Create a draft line in the sketch - Создать вÑпомогательную линию в ÑÑкизе + + Create a draft line in the sketch + Создать вÑпомогательную линию в ÑÑкизе - - + + CmdSketcherCreateFillet - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create line - Создать линию + + Create line + Создать линию - Create a line in the sketch - Создать линию в ÑÑкизе + + Create a line in the sketch + Создать линию в ÑÑкизе - - + + CmdSketcherCreatePoint - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create point - Создать точку + + Create point + Создать точку - Create a point in the sketch - Создать точку в ÑÑкизе + + Create a point in the sketch + Создать точку в ÑÑкизе - - + + CmdSketcherCreatePolyline - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create polyline - Создать полилинию + + Create polyline + Создать полилинию - Create a polyline in the sketch - Создать полилинию в ÑÑкизе + + Create a polyline in the sketch + Создать полилинию в ÑÑкизе - - + + CmdSketcherCreateRectangle - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create rectangle - Создать прÑмоугольник + + Create rectangle + Создать прÑмоугольник - Create a rectangle in the sketch - Создать прÑмоугольник в ÑÑкизе + + Create a rectangle in the sketch + Создать прÑмоугольник в ÑÑкизе - - + + CmdSketcherCreateText - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create text - Создать текÑÑ‚ + + Create text + Создать текÑÑ‚ - Create text in the sketch - Создание текÑта в ÑÑкизе + + Create text in the sketch + Создание текÑта в ÑÑкизе - - + + + CmdSketcherExternal + + + Sketcher + ЭÑкизирование + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Leave sketch - Покинуть ÑÑкиз + + Leave sketch + Покинуть ÑÑкиз - Close the editing of the sketch - Закончить редактирование ÑÑкиза + + Close the editing of the sketch + Закончить редактирование ÑÑкиза - - + + CmdSketcherMapSketch - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Create sketch - Создать ÑÑкиз + + Create sketch + Создать ÑÑкиз - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Создать новый ÑÑкиз + Create a new sketch + Создать новый ÑÑкиз - - + + CmdSketcherNewSketchSF - Sketcher - ЭÑкизирование + Sketcher + ЭÑкизирование - Sketchflat sketch - ПлоÑкий ÑÑкиз + Sketchflat sketch + ПлоÑкий ÑÑкиз - Create a new sketchflat sketch by starting externel editor - Создайте новый плоÑий ÑÑкиз, запуÑтив внешний редактор + Create a new sketchflat sketch by starting externel editor + Создайте новый плоÑий ÑÑкиз, запуÑтив внешний редактор - - + + CmdSketcherToggleConstruction - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - ПредÑтавление + + Appearance + ПредÑтавление - - + + QObject - - Wrong selection - Ðеправильный выбор + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Ðеправильный выбор - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Выбирите ребро в ÑÑкизе. + + + Select an edge from the sketch. + Выбирите ребро в ÑÑкизе. - Double constraint - Двойное ограничение + + + Double constraint + Двойное ограничение - The selected edge has already a horizontal constraint! - Выбранное ребро уже имеет ограничение горизонтальноÑти! + + + The selected edge has already a horizontal constraint! + Выбранное ребро уже имеет ограничение горизонтальноÑти! - Impossible constraint - Ограничение невозможно + + + + + + + Impossible constraint + Ограничение невозможно - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Выбранное ребро уже имеет ограничение вертикальноÑти! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + Выбранное ребро уже имеет ограничение вертикальноÑти! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Выберите вершины из ÑÑкиза. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Выберите две вершины из ÑÑкиза. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Выберите вершины из ÑÑкиза. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Выберите две вершины из ÑÑкиза. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Выберите по крайней мере две линии из ÑÑкиза. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Выберите одну линию из ÑÑкиза. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Выберите две линии из ÑÑкиза. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Выберите ровно две линии из ÑÑкиза. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Редактировать ÑÑкиз + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Диалог уже открыт в панели задач + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Ð’Ñ‹ хотите закрыть Ñтот диалог? + + Select atleast two lines from the sketch. + Выберите по крайней мере две линии из ÑÑкиза. - - Several sub-elements selected - ÐеÑколько вложенных деталей выбрано + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Ð’Ñ‹ должны выбрать одну поверхноÑть, как оÑнову Ð´Ð»Ñ ÑÑкиза! + + Sketch axes cannot be used in equality constraints + - No support face selected - Ðет поддержки выбранной поверхноÑти + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Ð’Ñ‹ должны выбрать поверхноÑть, как оÑнову Ð´Ð»Ñ ÑÑкиза! + + Cannot add a constraint between external geometries! + - No planar support - Ðет поддержки плоÑкоÑтей + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - Вам нужна плоÑÐºÐ°Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñть Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑкиза! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Ðе разрешаетÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ значение из-за конфликта уÑловий + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Выберите одну линию из ÑÑкиза. - - + + Select two lines from the sketch. + Выберите две линии из ÑÑкиза. + + + Select exactly two lines from the sketch. + Выберите ровно две линии из ÑÑкиза. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Редактировать ÑÑкиз + + + + A dialog is already open in the task panel + Диалог уже открыт в панели задач + + + + Do you want to close this dialog? + Ð’Ñ‹ хотите закрыть Ñтот диалог? + + + + Several sub-elements selected + ÐеÑколько вложенных деталей выбрано + + + + You have to select a single face as support for a sketch! + Ð’Ñ‹ должны выбрать одну поверхноÑть, как оÑнову Ð´Ð»Ñ ÑÑкиза! + + + + No support face selected + Ðет поддержки выбранной поверхноÑти + + + + You have to select a face as support for a sketch! + Ð’Ñ‹ должны выбрать поверхноÑть, как оÑнову Ð´Ð»Ñ ÑÑкиза! + + + + No planar support + Ðет поддержки плоÑкоÑтей + + + + You need a planar face as support for a sketch! + Вам нужна плоÑÐºÐ°Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾Ñть Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑкиза! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Ðе разрешаетÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ значение из-за конфликта уÑловий + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-плоÑкоÑть + XY-Plane + XY-плоÑкоÑть - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Смещение: + Offset: + Смещение: - - + + SketcherGui::InsertDatum - - Insert datum - Ð’Ñтавьте вÑпомогательный Ñлемент + + Insert datum + Ð’Ñтавьте вÑпомогательный Ñлемент - datum: - Ð’Ñпомогательный: + + datum: + Ð’Ñпомогательный: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-плоÑкоÑть + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Смещение: + + + SketcherGui::TaskSketcherConstrains - - Form - Форма + + Form + Форма - Filter: - Фильтр: + + Filter: + Фильтр: - All - Ð’ÑÑ‘ + + All + Ð’ÑÑ‘ - Normal - Ðормальный + + Normal + Ðормальный - Datums - ГеодезичеÑкие + + Datums + ГеодезичеÑкие - Named - Поименованый + + Named + Поименованый - - Constraints - ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ + + Constraints + ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ - - + + SketcherGui::TaskSketcherGeneral - - Form - Форма + + Form + Форма - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Ðеразрешённый + Unsolved + Ðеразрешённый - Grid Snap - ПривÑзка к Ñетке + Grid Snap + ПривÑзка к Ñетке - 0.1 mm - 0.1 мм + 0.1 mm + 0.1 мм - 0.2 mm - 0.2 мм + 0.2 mm + 0.2 мм - 0.5 mm - 0.5 мм + 0.5 mm + 0.5 мм - 1 mm - 1 мм + 1 mm + 1 мм - 2 mm - 2 мм + 2 mm + 2 мм - 5 mm - 5 мм + 5 mm + 5 мм - 10 mm - 10 мм + 10 mm + 10 мм - 20 mm - 20 мм + 20 mm + 20 мм - 50 mm - 50 мм + 50 mm + 50 мм - 100 mm - 100 мм + 100 mm + 100 мм - 200 mm - 200 мм + 200 mm + 200 мм - 500 mm - 500 мм + 500 mm + 500 мм - 1 m - 1 м + 1 m + 1 м - 2 m - 2 м + 2 m + 2 м - 5 m - 5 м + 5 m + 5 м - 10 m - 10 м + 10 m + 10 м - 20 m - 20 м + 20 m + 20 м - Auto constraints - ÐвтоматичеÑкие уÑÐ»Ð¾Ð²Ð¸Ñ + + Auto constraints + ÐвтоматичеÑкие уÑÐ»Ð¾Ð²Ð¸Ñ - auto constraints - Ðвто Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ + auto constraints + Ðвто Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ - - Edit controls - Элементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + + Edit controls + Элементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ + Constraints + ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ - - + + TaskSketcherCreateCommands - Appearance - ПредÑтавление + Appearance + ПредÑтавление - - + + TaskSketcherGeneral - Edit controls - Элементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ + Edit controls + Элементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - - + + TaskSketcherMessages - - Form - Форма + + Form + Форма - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - ЭÑкизирование + + Sketcher + ЭÑкизирование - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Ð“ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ ÑÑкиза + Sketcher geoms + Ð“ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ ÑÑкиза - Sketcher constraints - ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÑÑкиза + + Sketcher constraints + ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÑÑкиза - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_se.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_se.ts index f55fc45b2..f8595d9f3 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_se.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_se.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Skissare + + Sketcher + Skissare - Constrain angle - Begränsa vinkel + + Constrain angle + Begränsa vinkel - Fix the angle of a line or the angle between two lines - Fixera en linjes vinkel eller vinkeln mellan tvÃ¥ linjer + + Fix the angle of a line or the angle between two lines + Fixera en linjes vinkel eller vinkeln mellan tvÃ¥ linjer - - + + CmdSketcherConstrainCoincident - Sketcher - Skissare + + Sketcher + Skissare - Constrain coincident - Begränsa sammanfallande + + Constrain coincident + Begränsa sammanfallande - Create a coincident constraint on the selected item - Skapa en sammanfallande begränsning för den markerade detaljen + + Create a coincident constraint on the selected item + Skapa en sammanfallande begränsning för den markerade detaljen - - + + CmdSketcherConstrainDistance - Sketcher - Skissare + + Sketcher + Skissare - Constrain distance - BegränsningsavstÃ¥nd + + Constrain distance + BegränsningsavstÃ¥nd - Fix a length of a line or the distance between a line and a vertex - Fixera längden pÃ¥ en linje eller avstÃ¥ndet mellan en linje och ett hörn + + Fix a length of a line or the distance between a line and a vertex + Fixera längden pÃ¥ en linje eller avstÃ¥ndet mellan en linje och ett hörn - - + + CmdSketcherConstrainDistanceX - Sketcher - Skissare + + Sketcher + Skissare - Constrain vertical distance - Begränsa vertikala avstÃ¥nd + + Constrain horizontal distance + Begränsa horisontellt avstÃ¥nd - Fix the horizontal distance between two points or line ends - Fixera det horisontella avstÃ¥ndet mellan tvÃ¥ punkter eller linjeändar + Constrain vertical distance + Begränsa vertikala avstÃ¥nd - - + + + Fix the horizontal distance between two points or line ends + Fixera det horisontella avstÃ¥ndet mellan tvÃ¥ punkter eller linjeändar + + + CmdSketcherConstrainDistanceY - Sketcher - Skissare + + Sketcher + Skissare - Constrain horizontal distance - Begränsa horisontellt avstÃ¥nd + + Constrain vertical distance + Begränsa vertikala avstÃ¥nd - Fix the vertical distance between two points or line ends - Fixera det vertikala avstÃ¥ndet mellan tvÃ¥ punkter eller linjeändar + Constrain horizontal distance + Begränsa horisontellt avstÃ¥nd - - + + + Fix the vertical distance between two points or line ends + Fixera det vertikala avstÃ¥ndet mellan tvÃ¥ punkter eller linjeändar + + + CmdSketcherConstrainEqual - Sketcher - Skissare + + Sketcher + Skissare - Constrain equal - Begränsa lika + + Constrain equal + Begränsa lika - Create an equality constraint between two lines or between circles and arcs - Skapa en jämlikhetsbegränsning mellan tvÃ¥ linjer eller mellan cirklar och cirkelbÃ¥gar + + Create an equality constraint between two lines or between circles and arcs + Skapa en jämlikhetsbegränsning mellan tvÃ¥ linjer eller mellan cirklar och cirkelbÃ¥gar - - + + CmdSketcherConstrainHorizontal - Sketcher - Skissare + + Sketcher + Skissare - Constrain horizontally - Begränsa horisontellt + + Constrain horizontally + Begränsa horisontellt - Create a horizontal constraint on the selected item - Skapa en horisontell begränsning pÃ¥ den valda detaljen + + Create a horizontal constraint on the selected item + Skapa en horisontell begränsning pÃ¥ den valda detaljen - - + + CmdSketcherConstrainLock - Sketcher - Skissare + + Sketcher + Skissare - Constrain lock - Begränsa lÃ¥s + + Constrain lock + Begränsa lÃ¥s - Create a lock constraint on the selected item - Skapa en lÃ¥s begränsning för det markerade objektet + + Create a lock constraint on the selected item + Skapa en lÃ¥s begränsning för det markerade objektet - - + + CmdSketcherConstrainParallel - Sketcher - Skissare + + Sketcher + Skissare - Constrain parallel - Begränsa parallellt + + Constrain parallel + Begränsa parallellt - Create a parallel constraint between two lines - Skapa en parallell begränsning mellan tvÃ¥ linjer + + Create a parallel constraint between two lines + Skapa en parallell begränsning mellan tvÃ¥ linjer - - + + CmdSketcherConstrainPerpendicular - Sketcher - Skissare + + Sketcher + Skissare - Constrain perpendicular - Begränsa vinkelrätt + + Constrain perpendicular + Begränsa vinkelrätt - Create a Perpendicular constraint between two lines - Skapa en vinkelrät begränsning mellan tvÃ¥ linjer + + Create a Perpendicular constraint between two lines + Skapa en vinkelrät begränsning mellan tvÃ¥ linjer - - + + CmdSketcherConstrainPointOnObject - Sketcher - Skissare + + Sketcher + Skissare - Constrain point onto object - Begränsa punkt pÃ¥ objekt + + Constrain point onto object + Begränsa punkt pÃ¥ objekt - Fix a point onto an object - Fixera en punkt pÃ¥ ett objekt + + Fix a point onto an object + Fixera en punkt pÃ¥ ett objekt - - + + CmdSketcherConstrainRadius - Sketcher - Skissare + + Sketcher + Skissare - Constrain radius - Begränsa radie + + Constrain radius + Begränsa radie - Fix the radius of a circle or an arc - Fixera cirkelns eller cirkelbÃ¥gens radie + + Fix the radius of a circle or an arc + Fixera cirkelns eller cirkelbÃ¥gens radie - - + + CmdSketcherConstrainSymmetric - Sketcher - Skissare + + Sketcher + Skissare - Constrain symmetrical - Begränsa symmetriskt + + Constrain symmetrical + Begränsa symmetriskt - Create an symmetry constraint between two points with respect to a line - Skapa en symmetribegränsning mellan tvÃ¥ punkter i förhÃ¥llande till en linje + + Create an symmetry constraint between two points with respect to a line + Skapa en symmetribegränsning mellan tvÃ¥ punkter i förhÃ¥llande till en linje - - + + CmdSketcherConstrainTangent - Sketcher - Skissare + + Sketcher + Skissare - Constrain tangent - Begränsa tangens + + Constrain tangent + Begränsa tangens - Create a tangent constraint between two entities - Skapa en tangentbegränsning mellan tvÃ¥ föremÃ¥l + + Create a tangent constraint between two entities + Skapa en tangentbegränsning mellan tvÃ¥ föremÃ¥l - - + + CmdSketcherConstrainVertical - Sketcher - Skissare + + Sketcher + Skissare - Constrain vertically - Begränsa vertikalt + + Constrain vertically + Begränsa vertikalt - Create a vertical constraint on the selected item - Skapa en vertikal begränsning pÃ¥ den markerade detaljen + + Create a vertical constraint on the selected item + Skapa en vertikal begränsning pÃ¥ den markerade detaljen - - + + CmdSketcherCreateArc - - Sketcher - Skissare + + Sketcher + Skissare - Create arc - Skapa cirkelbÃ¥ge + + Create arc + Skapa cirkelbÃ¥ge - Create an arc in the sketch - Skapa en cirkelbÃ¥ge i skissen + + Create an arc in the sketch + Skapa en cirkelbÃ¥ge i skissen - - + + CmdSketcherCreateCircle - Sketcher - Skissare + + Sketcher + Skissare - Create circle - Skapa en cirkel + + Create circle + Skapa en cirkel - Create a circle in the sketch - Skapa en cirkel i skissen + + Create a circle in the sketch + Skapa en cirkel i skissen - - + + CmdSketcherCreateDraftLine - Sketcher - Skissare + + Sketcher + Skissare - Create draft line - Skapa ritlinje + + Create draft line + Skapa ritlinje - Create a draft line in the sketch - Skapa ritlinje i skissen + + Create a draft line in the sketch + Skapa ritlinje i skissen - - + + CmdSketcherCreateFillet - Sketcher - Skissare + + Sketcher + Skissare - Create fillet - Skapa avrundning + + Create fillet + Skapa avrundning - Create a fillet between two lines or at a coincident point - Skapa en avrundning mellan tvÃ¥ linjer eller vid en sammanfallande punkt + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Skapa en avrundning mellan tvÃ¥ linjer eller vid en sammanfallande punkt + + + CmdSketcherCreateLine - Sketcher - Skissare + + Sketcher + Skissare - Create line - Skapa linje + + Create line + Skapa linje - Create a line in the sketch - Skapa en linje i skissen + + Create a line in the sketch + Skapa en linje i skissen - - + + CmdSketcherCreatePoint - Sketcher - Skissare + + Sketcher + Skissare - Create point - Skapa punkt + + Create point + Skapa punkt - Create a point in the sketch - Skapa en punkt i skissen + + Create a point in the sketch + Skapa en punkt i skissen - - + + CmdSketcherCreatePolyline - Sketcher - Skissare + + Sketcher + Skissare - Create polyline - Skapa polylinje + + Create polyline + Skapa polylinje - Create a polyline in the sketch - Skapa en polylinje i skissen + + Create a polyline in the sketch + Skapa en polylinje i skissen - - + + CmdSketcherCreateRectangle - Sketcher - Skissare + + Sketcher + Skissare - Create rectangle - Skapa rektangel + + Create rectangle + Skapa rektangel - Create a rectangle in the sketch - Skapa en rektangel i skissen + + Create a rectangle in the sketch + Skapa en rektangel i skissen - - + + CmdSketcherCreateText - Sketcher - Skissare + + Sketcher + Skissare - Create text - Skapa text + + Create text + Skapa text - Create text in the sketch - Skapa text i skissen + + Create text in the sketch + Skapa text i skissen - - + + + CmdSketcherExternal + + + Sketcher + Skissare + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Skissare + + Sketcher + Skissare - Leave sketch - Lämna skiss + + Leave sketch + Lämna skiss - Close the editing of the sketch - Stäng skiss-redigeringen + + Close the editing of the sketch + Stäng skiss-redigeringen - - + + CmdSketcherMapSketch - Sketcher - Skissare + + Sketcher + Skissare - Map sketch to face... - Kartera skiss till ytan ... + + Map sketch to face... + Kartera skiss till ytan ... - Map a sketch to a face - Kartera en skiss till en yta + + Map a sketch to a face + Kartera en skiss till en yta - - + + CmdSketcherNewSketch - Sketcher - Skissare + + Sketcher + Skissare - Create sketch - Skapa skiss + + Create sketch + Skapa skiss - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Skapa en ny skiss + Create a new sketch + Skapa en ny skiss - - + + CmdSketcherNewSketchSF - Sketcher - Skissare + Sketcher + Skissare - Sketchflat sketch - Sketchflat skiss + Sketchflat sketch + Sketchflat skiss - Create a new sketchflat sketch by starting externel editor - Skapa en ny sketchflat skiss genom att starta den externa redigeraren + Create a new sketchflat sketch by starting externel editor + Skapa en ny sketchflat skiss genom att starta den externa redigeraren - - + + CmdSketcherToggleConstruction - - Sketcher - Skissare + + Sketcher + Skissare - Toggle construction line - Växla konstruktionslinje + + Toggle construction line + Växla konstruktionslinje - Toggles the currently selected lines to/from construction mode - Växlar de valda linjerna till / frÃ¥n konstruktionsläge + + Toggles the currently selected lines to/from construction mode + Växlar de valda linjerna till / frÃ¥n konstruktionsläge - - + + CmdSketcherTrimming - - Sketcher - Skissare + + Sketcher + Skissare - Trim edge - Trimma kant + + Trim edge + Trimma kant - Trims an edge with respect to the picked position - Trimmar en kant med i förhÃ¥llande till den valda + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trimmar en kant med i förhÃ¥llande till den valda + + + CmdSketcherViewSketch - - Sketcher - Skissare + + Sketcher + Skissare - View sketch - Visa skiss + + View sketch + Visa skiss - View sketch perpendicular to sketch plane - Visa skiss vinkelrätt mot skissplan + + View sketch perpendicular to sketch plane + Visa skiss vinkelrätt mot skissplan - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Utseende + + Appearance + Utseende - - + + QObject - - Wrong selection - Fel val + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Fel val - Select edge(s) from the sketch. - Välj kant(er) frÃ¥n skissen. + + Select edge(s) from the sketch. + Välj kant(er) frÃ¥n skissen. - - Select an edge from the sketch. - Välj en kant frÃ¥n skissen. + + + Select an edge from the sketch. + Välj en kant frÃ¥n skissen. - Double constraint - Dubbelbegränsning + + + Double constraint + Dubbelbegränsning - The selected edge has already a horizontal constraint! - Den valda kanten har redan en horisontell begränsning! + + + The selected edge has already a horizontal constraint! + Den valda kanten har redan en horisontell begränsning! - Impossible constraint - Omöjlig begränsning + + + + + + + Impossible constraint + Omöjlig begränsning - Only sketch and its support is allowed to select - Endast skiss och dess stöd fÃ¥r väljas + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - En av de valda mÃ¥ste finnas pÃ¥ skissen + + + + Only sketch and its support is allowed to select + Endast skiss och dess stöd fÃ¥r väljas - The selected edge is not a line segment - Den valda kanten är inte ett linjesegment + + One of the selected has to be on the sketch + En av de valda mÃ¥ste finnas pÃ¥ skissen - The selected edge has already a vertical constraint! - Den valda kanten har redan en vertikal begränsning! + + + The selected edge is not a line segment + Den valda kanten är inte ett linjesegment - Select entities from the sketch. - Välj föremÃ¥l frÃ¥n skissen. + + + The selected edge has already a vertical constraint! + Den valda kanten har redan en vertikal begränsning! - Select exactly one entity from the sketch. - Välj exakt ett föremÃ¥l frÃ¥n skissen. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Välj hörnen frÃ¥n skissen. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Välj exakt tvÃ¥ hörn frÃ¥n skissen. + + Select entities from the sketch. + Välj föremÃ¥l frÃ¥n skissen. - Select exactly one line or one point and one line or two points from the sketch. - Välj exakt en linje eller en punkt och en linje eller tvÃ¥ punkter frÃ¥n skissen. + + + Select exactly one entity from the sketch. + Välj exakt ett föremÃ¥l frÃ¥n skissen. - Select exactly one point and one object from the sketch. - Välj exakt en punkt och ett objekt frÃ¥n skissen. + + + + + + + Select vertexes from the sketch. + Välj hörnen frÃ¥n skissen. - Select exactly one line or up to two points from the sketch. - Välj exakt en linje eller upp till tvÃ¥ punkter frÃ¥n skissen. + + + + Select exactly two vertexes from the sketch. + Välj exakt tvÃ¥ hörn frÃ¥n skissen. - Select two or more lines from the sketch. - Välj tvÃ¥ eller flera linjer frÃ¥n skissen. + + + Select exactly one line or one point and one line or two points from the sketch. + Välj exakt en linje eller en punkt och en linje eller tvÃ¥ punkter frÃ¥n skissen. - Select at least two lines from the sketch. - Välj Ã¥tminstone tvÃ¥ linjer frÃ¥n skissen. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Välj en giltig linje + + + Select exactly one point and one object from the sketch. + Välj exakt en punkt och ett objekt frÃ¥n skissen. - The selected edge is not a valid line - Den valda kanten är inte en giltig linje + + + + + Select exactly one line or up to two points from the sketch. + Välj exakt en linje eller upp till tvÃ¥ punkter frÃ¥n skissen. - Select exactly one arc or circle from the sketch. - Välj exakt en cirkelbÃ¥ge eller cirkel frÃ¥n skissen. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Välj exakt en eller tvÃ¥ linjer frÃ¥n skissen. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Välj tvÃ¥ kanter frÃ¥n skissen. + + Select two or more lines from the sketch. + Välj tvÃ¥ eller flera linjer frÃ¥n skissen. - Select atleast two lines from the sketch. - Välj Ã¥tminstone tvÃ¥ linjer frÃ¥n skissen. + + Select at least two lines from the sketch. + Välj Ã¥tminstone tvÃ¥ linjer frÃ¥n skissen. - Select exactly two same geometries - Välj exakt tvÃ¥ likadana geometrier + + Select a valid line + Välj en giltig linje - Select valid geometries - Välj giltiga geometrier + + The selected edge is not a valid line + Den valda kanten är inte en giltig linje - Select geometry of similar type - Välj geometri av liknande typ + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Välj tvÃ¥ punkter och en linje frÃ¥n skissen. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Välj exakt en linje frÃ¥n skissen. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Välj tvÃ¥ linjer frÃ¥n skissen. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Välj exakt tvÃ¥ linjer frÃ¥n skissen. + + + + Select exactly one arc or circle from the sketch. + Välj exakt en cirkelbÃ¥ge eller cirkel frÃ¥n skissen. - Select two entities from the sketch. - Välj tvÃ¥ föremÃ¥l frÃ¥n skissen. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Välj exakt tvÃ¥ föremÃ¥l frÃ¥n skissen. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Redigera skiss + + Select exactly one or two lines from the sketch. + Välj exakt en eller tvÃ¥ linjer frÃ¥n skissen. - A dialog is already open in the task panel - En dialogruta är redan öppen i uppgiftspanelen + + Select two edges from the sketch. + Välj tvÃ¥ kanter frÃ¥n skissen. - Do you want to close this dialog? - Vill du stänga denna dialogruta? + + Select atleast two lines from the sketch. + Välj Ã¥tminstone tvÃ¥ linjer frÃ¥n skissen. - - Several sub-elements selected - Flera underelement valda + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Du mÃ¥ste välja en enkel yta som stöd för en skiss! + + Sketch axes cannot be used in equality constraints + - No support face selected - Ingen stödyta vald + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Du mÃ¥ste välja en yta som stöd för en skiss! + + Cannot add a constraint between external geometries! + - No planar support - Inget planärt stöd + Select exactly two same geometries + Välj exakt tvÃ¥ likadana geometrier - You need a planar face as support for a sketch! - Du behöver en plan yta som stöd för en skiss! + Select valid geometries + Välj giltiga geometrier - - Distance constraint - AvstÃ¥nd begränsning + Select geometry of similar type + Välj geometri av liknande typ - Not allowed to edit the datum because the sketch contains conflicting constraints - Inte tillÃ¥tet att ändra datum pÃ¥ grund av att skissen innehÃ¥ller motstridiga begränsningar + + + + Select two points and one line from the sketch. + Välj tvÃ¥ punkter och en linje frÃ¥n skissen. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Välj exakt en linje frÃ¥n skissen. - - + + Select two lines from the sketch. + Välj tvÃ¥ linjer frÃ¥n skissen. + + + Select exactly two lines from the sketch. + Välj exakt tvÃ¥ linjer frÃ¥n skissen. + + + + + Select two entities from the sketch. + Välj tvÃ¥ föremÃ¥l frÃ¥n skissen. + + + + + + + Select exactly two entities from the sketch. + Välj exakt tvÃ¥ föremÃ¥l frÃ¥n skissen. + + + + Edit sketch + Redigera skiss + + + + A dialog is already open in the task panel + En dialogruta är redan öppen i uppgiftspanelen + + + + Do you want to close this dialog? + Vill du stänga denna dialogruta? + + + + Several sub-elements selected + Flera underelement valda + + + + You have to select a single face as support for a sketch! + Du mÃ¥ste välja en enkel yta som stöd för en skiss! + + + + No support face selected + Ingen stödyta vald + + + + You have to select a face as support for a sketch! + Du mÃ¥ste välja en yta som stöd för en skiss! + + + + No planar support + Inget planärt stöd + + + + You need a planar face as support for a sketch! + Du behöver en plan yta som stöd för en skiss! + + + + Distance constraint + AvstÃ¥nd begränsning + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Inte tillÃ¥tet att ändra datum pÃ¥ grund av att skissen innehÃ¥ller motstridiga begränsningar + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Välj orientering + Choose orientation + Välj orientering - Sketch orientation - Skissorientering + Sketch orientation + Skissorientering - XY-Plane - XY-plan + XY-Plane + XY-plan - XZ-Plane - XZ-Plan + XZ-Plane + XZ-Plan - YZ-Plane - YZ-Plan + YZ-Plane + YZ-Plan - Reverse direction - Omvänd riktning + Reverse direction + Omvänd riktning - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Infoga datum + + Insert datum + Infoga datum - datum: - Datum: + + datum: + Datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Välj orientering + + + + Sketch orientation + Skissorientering + + + + XY-Plane + XY-plan + + + + XZ-Plane + XZ-Plan + + + + YZ-Plane + YZ-Plan + + + + Reverse direction + Omvänd riktning + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Form + + Form + Form - Filter: - Filter: + + Filter: + Filter: - All - Alla + + All + Alla - Normal - Normal + + Normal + Normal - Datums - Datum + + Datums + Datum - Named - med namnet + + Named + med namnet - - Constraints - Begränsningar + + Constraints + Begränsningar - - + + SketcherGui::TaskSketcherGeneral - - Form - Form + + Form + Form - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Olöst + Unsolved + Olöst - Grid Snap - Rutnät snäpp + Grid Snap + Rutnät snäpp - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100 mm + 100 mm + 100 mm - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - Auto begränsningar + + Auto constraints + Auto begränsningar - auto constraints - auto begränsningar + auto constraints + auto begränsningar - - Edit controls - Redigera kontroller + + Edit controls + Redigera kontroller - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Problemlösarmeddelanden + + Solver messages + Problemlösarmeddelanden - - + + TaskSketcherConstrains - Constraints - Begränsningar + Constraints + Begränsningar - - + + TaskSketcherCreateCommands - Appearance - Utseende + Appearance + Utseende - - + + TaskSketcherGeneral - Edit controls - Redigera kontroller + Edit controls + Redigera kontroller - - + + TaskSketcherMessages - - Form - Form + + Form + Form - Undefined degrees of freedom - Odefinierade frihetsgrader + + Undefined degrees of freedom + Odefinierade frihetsgrader - Not solved yet - Inte löst ännu + + Not solved yet + Inte löst ännu - - + + Workbench - - Sketcher - Skissare + + Sketcher + Skissare - Sketcher geometries - Skissgeometrier + + Sketcher geometries + Skissgeometrier - Sketcher geoms - Skissgeometrier + Sketcher geoms + Skissgeometrier - Sketcher constraints - Skiss begränsningar + + Sketcher constraints + Skiss begränsningar - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts index bcd6db3f6..2def0e09a 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_uk.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain angle - Constrain angle + + Constrain angle + Constrain angle - Fix the angle of a line or the angle between two lines - Fix the angle of a line or the angle between two lines + + Fix the angle of a line or the angle between two lines + Fix the angle of a line or the angle between two lines - - + + CmdSketcherConstrainCoincident - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain coincident - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð±Ñ–Ð³Ñ–Ð² + + Constrain coincident + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð±Ñ–Ð³Ñ–Ð² - Create a coincident constraint on the selected item - Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð±Ñ–Ð³Ñ–Ð² (коінцидентноÑті) Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… елементів + + Create a coincident constraint on the selected item + Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð±Ñ–Ð³Ñ–Ð² (коінцидентноÑті) Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð¸Ñ… елементів - - + + CmdSketcherConstrainDistance - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain distance - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтані + + Constrain distance + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтані - Fix a length of a line or the distance between a line and a vertex - ФікÑувати довжину лінії або відÑтань між лінією та вершиною + + Fix a length of a line or the distance between a line and a vertex + ФікÑувати довжину лінії або відÑтань між лінією та вершиною - - + + CmdSketcherConstrainDistanceX - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain vertical distance - Constrain vertical distance + + Constrain horizontal distance + Constrain horizontal distance - Fix the horizontal distance between two points or line ends - Fix the horizontal distance between two points or line ends + Constrain vertical distance + Constrain vertical distance - - + + + Fix the horizontal distance between two points or line ends + Fix the horizontal distance between two points or line ends + + + CmdSketcherConstrainDistanceY - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain horizontal distance - Constrain horizontal distance + + Constrain vertical distance + Constrain vertical distance - Fix the vertical distance between two points or line ends - Fix the vertical distance between two points or line ends + Constrain horizontal distance + Constrain horizontal distance - - + + + Fix the vertical distance between two points or line ends + Fix the vertical distance between two points or line ends + + + CmdSketcherConstrainEqual - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain equal - Constrain equal + + Constrain equal + Constrain equal - Create an equality constraint between two lines or between circles and arcs - Create an equality constraint between two lines or between circles and arcs + + Create an equality constraint between two lines or between circles and arcs + Create an equality constraint between two lines or between circles and arcs - - + + CmdSketcherConstrainHorizontal - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain horizontally - Горизонтальне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + Constrain horizontally + Горизонтальне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - Create a horizontal constraint on the selected item - Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾ горизонталі Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елементу + + Create a horizontal constraint on the selected item + Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾ горизонталі Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елементу - - + + CmdSketcherConstrainLock - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain lock - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ + + Constrain lock + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ - Create a lock constraint on the selected item - Create a lock constraint on the selected item + + Create a lock constraint on the selected item + Create a lock constraint on the selected item - - + + CmdSketcherConstrainParallel - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain parallel - Паралельне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + Constrain parallel + Паралельне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - Create a parallel constraint between two lines - Створити паралельне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ двома лініÑми + + Create a parallel constraint between two lines + Створити паралельне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ двома лініÑми - - + + CmdSketcherConstrainPerpendicular - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain perpendicular - Constrain perpendicular + + Constrain perpendicular + Constrain perpendicular - Create a Perpendicular constraint between two lines - Create a Perpendicular constraint between two lines + + Create a Perpendicular constraint between two lines + Create a Perpendicular constraint between two lines - - + + CmdSketcherConstrainPointOnObject - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain point onto object - Constrain point onto object + + Constrain point onto object + Constrain point onto object - Fix a point onto an object - Fix a point onto an object + + Fix a point onto an object + Fix a point onto an object - - + + CmdSketcherConstrainRadius - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain radius - Constrain radius + + Constrain radius + Constrain radius - Fix the radius of a circle or an arc - Fix the radius of a circle or an arc + + Fix the radius of a circle or an arc + Fix the radius of a circle or an arc - - + + CmdSketcherConstrainSymmetric - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain symmetrical - Constrain symmetrical + + Constrain symmetrical + Constrain symmetrical - Create an symmetry constraint between two points with respect to a line - Create an symmetry constraint between two points with respect to a line + + Create an symmetry constraint between two points with respect to a line + Create an symmetry constraint between two points with respect to a line - - + + CmdSketcherConstrainTangent - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain tangent - Constrain tangent + + Constrain tangent + Constrain tangent - Create a tangent constraint between two entities - Create a tangent constraint between two entities + + Create a tangent constraint between two entities + Create a tangent constraint between two entities - - + + CmdSketcherConstrainVertical - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Constrain vertically - Вертикальне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + Constrain vertically + Вертикальне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - Create a vertical constraint on the selected item - Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾ вертикалі Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елементу + + Create a vertical constraint on the selected item + Створити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾ вертикалі Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¾Ð³Ð¾ елементу - - + + CmdSketcherCreateArc - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create arc - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÑƒÐ³Ð¸ + + Create arc + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÑƒÐ³Ð¸ - Create an arc in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÑƒÐ³Ð¸ в еÑкізі + + Create an arc in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÑƒÐ³Ð¸ в еÑкізі - - + + CmdSketcherCreateCircle - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create circle - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð»Ð° + + Create circle + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð»Ð° - Create a circle in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð»Ð° в еÑкізі + + Create a circle in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð»Ð° в еÑкізі - - + + CmdSketcherCreateDraftLine - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create draft line - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ñ— лінії + + Create draft line + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ñ— лінії - Create a draft line in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ñ— лінії в еÑкізі + + Create a draft line in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¾Ñ— лінії в еÑкізі - - + + CmdSketcherCreateFillet - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create fillet - Create fillet + + Create fillet + Create fillet - Create a fillet between two lines or at a coincident point - Create a fillet between two lines or at a coincident point + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + Create a fillet between two lines or at a coincident point + + + CmdSketcherCreateLine - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create line - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ñ–Ð½Ñ–Ñ— + + Create line + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ñ–Ð½Ñ–Ñ— - Create a line in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ñ–Ð½Ñ–Ñ— в еÑкізі + + Create a line in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ñ–Ð½Ñ–Ñ— в еÑкізі - - + + CmdSketcherCreatePoint - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create point - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ + + Create point + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ - Create a point in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ в еÑкізі + + Create a point in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ в еÑкізі - - + + CmdSketcherCreatePolyline - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create polyline - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð»Ñ–Ð½Ñ–Ñ— + + Create polyline + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð»Ñ–Ð½Ñ–Ñ— - Create a polyline in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð»Ñ–Ð½Ñ–Ñ— в еÑкізі + + Create a polyline in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð»Ñ–Ð½Ñ–Ñ— в еÑкізі - - + + CmdSketcherCreateRectangle - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create rectangle - Створити прÑмокутник + + Create rectangle + Створити прÑмокутник - Create a rectangle in the sketch - Створіть прÑмокутник в еÑкізі + + Create a rectangle in the sketch + Створіть прÑмокутник в еÑкізі - - + + CmdSketcherCreateText - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create text - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту + + Create text + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту - Create text in the sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту в еÑкізі + + Create text in the sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту в еÑкізі - - + + + CmdSketcherExternal + + + Sketcher + Створювач еÑкізів + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Leave sketch - Залишити еÑкіз + + Leave sketch + Залишити еÑкіз - Close the editing of the sketch - Закрити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÑкізу + + Close the editing of the sketch + Закрити Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÑкізу - - + + CmdSketcherMapSketch - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Create sketch - Створити еÑкіз + + Create sketch + Створити еÑкіз - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ еÑкізу + Create a new sketch + Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ еÑкізу - - + + CmdSketcherNewSketchSF - Sketcher - Створювач еÑкізів + Sketcher + Створювач еÑкізів - Sketchflat sketch - ПлоÑкий еÑкіз + Sketchflat sketch + ПлоÑкий еÑкіз - Create a new sketchflat sketch by starting externel editor - Створити новий плоÑкий еÑкіз викориÑтовуючи зовнішній редактор + Create a new sketchflat sketch by starting externel editor + Створити новий плоÑкий еÑкіз викориÑтовуючи зовнішній редактор - - + + CmdSketcherToggleConstruction - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Toggle construction line - Toggle construction line + + Toggle construction line + Toggle construction line - Toggles the currently selected lines to/from construction mode - Toggles the currently selected lines to/from construction mode + + Toggles the currently selected lines to/from construction mode + Toggles the currently selected lines to/from construction mode - - + + CmdSketcherTrimming - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Trim edge - Trim edge + + Trim edge + Trim edge - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - View sketch - View sketch + + View sketch + View sketch - View sketch perpendicular to sketch plane - View sketch perpendicular to sketch plane + + View sketch perpendicular to sketch plane + View sketch perpendicular to sketch plane - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - Зовнішній виглÑд + + Appearance + Зовнішній виглÑд - - + + QObject - - Wrong selection - Ðевірний вибір + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + Ðевірний вибір - Select edge(s) from the sketch. - Select edge(s) from the sketch. + + Select edge(s) from the sketch. + Select edge(s) from the sketch. - - Select an edge from the sketch. - Виберіть ребро в еÑкізі. + + + Select an edge from the sketch. + Виберіть ребро в еÑкізі. - Double constraint - Подвійне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + + Double constraint + Подвійне Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - The selected edge has already a horizontal constraint! - Обраний край вже обмежено по горизонталі! + + + The selected edge has already a horizontal constraint! + Обраний край вже обмежено по горизонталі! - Impossible constraint - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ + + + + + + + Impossible constraint + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ - Only sketch and its support is allowed to select - Only sketch and its support is allowed to select + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - One of the selected has to be on the sketch + + + + Only sketch and its support is allowed to select + Only sketch and its support is allowed to select - The selected edge is not a line segment - The selected edge is not a line segment + + One of the selected has to be on the sketch + One of the selected has to be on the sketch - The selected edge has already a vertical constraint! - Вибраний край вже обмежено по вертикалі! + + + The selected edge is not a line segment + The selected edge is not a line segment - Select entities from the sketch. - Select entities from the sketch. + + + The selected edge has already a vertical constraint! + Вибраний край вже обмежено по вертикалі! - Select exactly one entity from the sketch. - Select exactly one entity from the sketch. + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - Вибір вершин з еÑкізу. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - Вибір рівно двох вершин з еÑкізу. + + Select entities from the sketch. + Select entities from the sketch. - Select exactly one line or one point and one line or two points from the sketch. - Select exactly one line or one point and one line or two points from the sketch. + + + Select exactly one entity from the sketch. + Select exactly one entity from the sketch. - Select exactly one point and one object from the sketch. - Select exactly one point and one object from the sketch. + + + + + + + Select vertexes from the sketch. + Вибір вершин з еÑкізу. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + Вибір рівно двох вершин з еÑкізу. - Select two or more lines from the sketch. - Select two or more lines from the sketch. + + + Select exactly one line or one point and one line or two points from the sketch. + Select exactly one line or one point and one line or two points from the sketch. - Select at least two lines from the sketch. - Select at least two lines from the sketch. + + Cannot add a length constraint on an external geometry! + - Select a valid line - Select a valid line + + + Select exactly one point and one object from the sketch. + Select exactly one point and one object from the sketch. - The selected edge is not a valid line - The selected edge is not a valid line + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - Select exactly one arc or circle from the sketch. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - Select exactly one or two lines from the sketch. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - Select two edges from the sketch. + + Select two or more lines from the sketch. + Select two or more lines from the sketch. - Select atleast two lines from the sketch. - Select atleast two lines from the sketch. + + Select at least two lines from the sketch. + Select at least two lines from the sketch. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + Select a valid line - Select valid geometries - Select valid geometries + + The selected edge is not a valid line + The selected edge is not a valid line - Select geometry of similar type - Select geometry of similar type + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - Select two points and one line from the sketch. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - Вибір рівно однієї лінії з еÑкізу. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - Вибір двох ліній з еÑкізу. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - Вибір рівно двох ліній з еÑкізу. + + + + Select exactly one arc or circle from the sketch. + Select exactly one arc or circle from the sketch. - Select two entities from the sketch. - Select two entities from the sketch. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - Select exactly two entities from the sketch. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - Редагувати еÑкіз + + Select exactly one or two lines from the sketch. + Select exactly one or two lines from the sketch. - A dialog is already open in the task panel - Діалог вже відкритий в панелі завдань + + Select two edges from the sketch. + Select two edges from the sketch. - Do you want to close this dialog? - Бажаєте закрити цей діалог? + + Select atleast two lines from the sketch. + Select atleast two lines from the sketch. - - Several sub-elements selected - Обрано декілька вкладених елементів + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - Потрібно обрати одну поверхню, Ñк оÑнову еÑкізу! + + Sketch axes cannot be used in equality constraints + - No support face selected - Ðе обрано підтримуваної поверхні + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - Потрібно обрати поверхню Ñк оÑнову Ð´Ð»Ñ ÐµÑкізу! + + Cannot add a constraint between external geometries! + - No planar support - Підтримка площини відÑÑƒÑ‚Ð½Ñ + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - Потрібна плаÑка Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐµÑкізу! + Select valid geometries + Select valid geometries - - Distance constraint - Distance constraint + Select geometry of similar type + Select geometry of similar type - Not allowed to edit the datum because the sketch contains conflicting constraints - Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Select two points and one line from the sketch. + Select two points and one line from the sketch. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + Вибір рівно однієї лінії з еÑкізу. - - + + Select two lines from the sketch. + Вибір двох ліній з еÑкізу. + + + Select exactly two lines from the sketch. + Вибір рівно двох ліній з еÑкізу. + + + + + Select two entities from the sketch. + Select two entities from the sketch. + + + + + + + Select exactly two entities from the sketch. + Select exactly two entities from the sketch. + + + + Edit sketch + Редагувати еÑкіз + + + + A dialog is already open in the task panel + Діалог вже відкритий в панелі завдань + + + + Do you want to close this dialog? + Бажаєте закрити цей діалог? + + + + Several sub-elements selected + Обрано декілька вкладених елементів + + + + You have to select a single face as support for a sketch! + Потрібно обрати одну поверхню, Ñк оÑнову еÑкізу! + + + + No support face selected + Ðе обрано підтримуваної поверхні + + + + You have to select a face as support for a sketch! + Потрібно обрати поверхню Ñк оÑнову Ð´Ð»Ñ ÐµÑкізу! + + + + No planar support + Підтримка площини відÑÑƒÑ‚Ð½Ñ + + + + You need a planar face as support for a sketch! + Потрібна плаÑка Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐµÑкізу! + + + + Distance constraint + Distance constraint + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + Not allowed to edit the datum because the sketch contains conflicting constraints + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - Choose orientation + Choose orientation + Choose orientation - Sketch orientation - Sketch orientation + Sketch orientation + Sketch orientation - XY-Plane - XY-Plane + XY-Plane + XY-Plane - XZ-Plane - XZ-Plane + XZ-Plane + XZ-Plane - YZ-Plane - YZ-Plane + YZ-Plane + YZ-Plane - Reverse direction - Reverse direction + Reverse direction + Reverse direction - Offset: - Offset: + Offset: + Offset: - - + + SketcherGui::InsertDatum - - Insert datum - Ð’Ñтавити Datum + + Insert datum + Ð’Ñтавити Datum - datum: - datum: + + datum: + datum: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + Choose orientation + + + + Sketch orientation + Sketch orientation + + + + XY-Plane + XY-Plane + + + + XZ-Plane + XZ-Plane + + + + YZ-Plane + YZ-Plane + + + + Reverse direction + Reverse direction + + + + Offset: + Offset: + + + SketcherGui::TaskSketcherConstrains - - Form - Форма + + Form + Форма - Filter: - Фільтр: + + Filter: + Фільтр: - All - Ð’Ñе + + All + Ð’Ñе - Normal - Звичайне + + Normal + Звичайне - Datums - Дані величини (Датум) + + Datums + Дані величини (Датум) - Named - З назвою + + Named + З назвою - - Constraints - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + + Constraints + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - - + + SketcherGui::TaskSketcherGeneral - - Form - Форма + + Form + Форма - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - Ðевирішене + Unsolved + Ðевирішене - Grid Snap - Прив'Ñзка Ñітки + Grid Snap + Прив'Ñзка Ñітки - 0.1 mm - 0.1 мм + 0.1 mm + 0.1 мм - 0.2 mm - 0.2 мм + 0.2 mm + 0.2 мм - 0.5 mm - 0.5 мм + 0.5 mm + 0.5 мм - 1 mm - 1 мм + 1 mm + 1 мм - 2 mm - 2 мм + 2 mm + 2 мм - 5 mm - 5 мм + 5 mm + 5 мм - 10 mm - 10 мм + 10 mm + 10 мм - 20 mm - 20 мм + 20 mm + 20 мм - 50 mm - 50 мм + 50 mm + 50 мм - 100 mm - 100 мм + 100 mm + 100 мм - 200 mm - 200 мм + 200 mm + 200 мм - 500 mm - 500 мм + 500 mm + 500 мм - 1 m - 1 м + 1 m + 1 м - 2 m - 2 м + 2 m + 2 м - 5 m - 5 м + 5 m + 5 м - 10 m - 10 м + 10 m + 10 м - 20 m - 20 м + 20 m + 20 м - Auto constraints - Auto constraints + + Auto constraints + Auto constraints - auto constraints - Ðвто Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + auto constraints + Ðвто Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - - Edit controls - Редагувати ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ + + Edit controls + Редагувати ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ - - + + SketcherGui::TaskSketcherMessages - - Solver messages - Solver messages + + Solver messages + Solver messages - - + + TaskSketcherConstrains - Constraints - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ + Constraints + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ - - + + TaskSketcherCreateCommands - Appearance - Зовнішній виглÑд + Appearance + Зовнішній виглÑд - - + + TaskSketcherGeneral - Edit controls - Редагувати ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ + Edit controls + Редагувати ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ - - + + TaskSketcherMessages - - Form - Форма + + Form + Форма - Undefined degrees of freedom - Undefined degrees of freedom + + Undefined degrees of freedom + Undefined degrees of freedom - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - Створювач еÑкізів + + Sketcher + Створювач еÑкізів - Sketcher geometries - Sketcher geometries + + Sketcher geometries + Sketcher geometries - Sketcher geoms - Ð“ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ ÐµÑкізу + Sketcher geoms + Ð“ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ñ–Ñ ÐµÑкізу - Sketcher constraints - ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐµÑкізу + + Sketcher constraints + ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐµÑкізу - + diff --git a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh.ts b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh.ts index a91a6adc9..f7da39ced 100644 --- a/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh.ts +++ b/src/Mod/Sketcher/Gui/Resources/translations/Sketcher_zh.ts @@ -1,926 +1,1299 @@ - - + + CmdSketcherConstrainAngle - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain angle - è§’åº¦çº¦æŸ + + Constrain angle + è§’åº¦çº¦æŸ - Fix the angle of a line or the angle between two lines - 固定一直线角度或两直线夹角 + + Fix the angle of a line or the angle between two lines + 固定一直线角度或两直线夹角 - - + + CmdSketcherConstrainCoincident - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain coincident - é‡åˆçº¦æŸ + + Constrain coincident + é‡åˆçº¦æŸ - Create a coincident constraint on the selected item - 在所选对象上创建é‡åˆçº¦æŸ + + Create a coincident constraint on the selected item + 在所选对象上创建é‡åˆçº¦æŸ - - + + CmdSketcherConstrainDistance - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain distance - è·ç¦»çº¦æŸ + + Constrain distance + è·ç¦»çº¦æŸ - Fix a length of a line or the distance between a line and a vertex - 固定线的长度或者点到线的è·ç¦» + + Fix a length of a line or the distance between a line and a vertex + 固定线的长度或者点到线的è·ç¦» - - + + CmdSketcherConstrainDistanceX - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain vertical distance - é™åˆ¶çš„垂直è·ç¦» + + Constrain horizontal distance + æ°´å¹³è·ç¦»çº¦æŸ - Fix the horizontal distance between two points or line ends - 固定两点(或线端点)之间的水平è·ç¦» + Constrain vertical distance + é™åˆ¶çš„垂直è·ç¦» - - + + + Fix the horizontal distance between two points or line ends + 固定两点(或线端点)之间的水平è·ç¦» + + + CmdSketcherConstrainDistanceY - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain horizontal distance - æ°´å¹³è·ç¦»çº¦æŸ + + Constrain vertical distance + é™åˆ¶çš„垂直è·ç¦» - Fix the vertical distance between two points or line ends - 固定两点(或线端点)之间的垂直è·ç¦» + Constrain horizontal distance + æ°´å¹³è·ç¦»çº¦æŸ - - + + + Fix the vertical distance between two points or line ends + 固定两点(或线端点)之间的垂直è·ç¦» + + + CmdSketcherConstrainEqual - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain equal - ç›¸ç­‰çº¦æŸ + + Constrain equal + ç›¸ç­‰çº¦æŸ - Create an equality constraint between two lines or between circles and arcs - ä¸¤ç›´çº¿æˆ–åœ†ä¸Žåœ†å¼§é—´åˆ›å»ºç›¸ç­‰çº¦æŸ + + Create an equality constraint between two lines or between circles and arcs + ä¸¤ç›´çº¿æˆ–åœ†ä¸Žåœ†å¼§é—´åˆ›å»ºç›¸ç­‰çº¦æŸ - - + + CmdSketcherConstrainHorizontal - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain horizontally - æ°´å¹³çº¦æŸ + + Constrain horizontally + æ°´å¹³çº¦æŸ - Create a horizontal constraint on the selected item - åœ¨æ‰€é€‰å¯¹è±¡ä¸Šåˆ›å»ºæ°´å¹³çº¦æŸ + + Create a horizontal constraint on the selected item + åœ¨æ‰€é€‰å¯¹è±¡ä¸Šåˆ›å»ºæ°´å¹³çº¦æŸ - - + + CmdSketcherConstrainLock - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain lock - é”å®šçº¦æŸ + + Constrain lock + é”å®šçº¦æŸ - Create a lock constraint on the selected item - 对所选物体创建é”å®šçº¦æŸ + + Create a lock constraint on the selected item + 对所选物体创建é”å®šçº¦æŸ - - + + CmdSketcherConstrainParallel - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain parallel - å¹³è¡Œçº¦æŸ + + Constrain parallel + å¹³è¡Œçº¦æŸ - Create a parallel constraint between two lines - 两æ¡çº¿ä¹‹é—´åˆ›å»ºå¹³è¡Œçº¦æŸ + + Create a parallel constraint between two lines + 两æ¡çº¿ä¹‹é—´åˆ›å»ºå¹³è¡Œçº¦æŸ - - + + CmdSketcherConstrainPerpendicular - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain perpendicular - åž‚ç›´çº¦æŸ + + Constrain perpendicular + åž‚ç›´çº¦æŸ - Create a Perpendicular constraint between two lines - åœ¨ä¸¤ç›´çº¿é—´åˆ›å»ºåž‚ç›´çº¦æŸ + + Create a Perpendicular constraint between two lines + åœ¨ä¸¤ç›´çº¿é—´åˆ›å»ºåž‚ç›´çº¦æŸ - - + + CmdSketcherConstrainPointOnObject - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain point onto object - 点约æŸè‡³å¯¹è±¡ + + Constrain point onto object + 点约æŸè‡³å¯¹è±¡ - Fix a point onto an object - 固定点至对象 + + Fix a point onto an object + 固定点至对象 - - + + CmdSketcherConstrainRadius - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain radius - åŠå¾„çº¦æŸ + + Constrain radius + åŠå¾„çº¦æŸ - Fix the radius of a circle or an arc - 固定圆或圆弧的åŠå¾„ + + Fix the radius of a circle or an arc + 固定圆或圆弧的åŠå¾„ - - + + CmdSketcherConstrainSymmetric - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain symmetrical - å¯¹ç§°çº¦æŸ + + Constrain symmetrical + å¯¹ç§°çº¦æŸ - Create an symmetry constraint between two points with respect to a line - ç›¸å¯¹ä¸€ç›´çº¿åœ¨ä¸¤ç‚¹é—´åˆ›å»ºå¯¹ç§°çº¦æŸ + + Create an symmetry constraint between two points with respect to a line + ç›¸å¯¹ä¸€ç›´çº¿åœ¨ä¸¤ç‚¹é—´åˆ›å»ºå¯¹ç§°çº¦æŸ - - + + CmdSketcherConstrainTangent - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain tangent - ç›¸åˆ‡çº¦æŸ + + Constrain tangent + ç›¸åˆ‡çº¦æŸ - Create a tangent constraint between two entities - åœ¨ä¸¤å®žä½“é—´åˆ›å»ºç›¸åˆ‡çº¦æŸ + + Create a tangent constraint between two entities + åœ¨ä¸¤å®žä½“é—´åˆ›å»ºç›¸åˆ‡çº¦æŸ - - + + CmdSketcherConstrainVertical - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Constrain vertically - åž‚ç›´çº¦æŸ + + Constrain vertically + åž‚ç›´çº¦æŸ - Create a vertical constraint on the selected item - åœ¨æ‰€é€‰å¯¹è±¡ä¸Šåˆ›å»ºåž‚ç›´çº¦æŸ + + Create a vertical constraint on the selected item + åœ¨æ‰€é€‰å¯¹è±¡ä¸Šåˆ›å»ºåž‚ç›´çº¦æŸ - - + + CmdSketcherCreateArc - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create arc - 创建弧 + + Create arc + 创建弧 - Create an arc in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªå¼§ + + Create an arc in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªå¼§ - - + + CmdSketcherCreateCircle - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create circle - 创建圆 + + Create circle + 创建圆 - Create a circle in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªåœ† + + Create a circle in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªåœ† - - + + CmdSketcherCreateDraftLine - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create draft line - 创建è‰å›¾çº¿ + + Create draft line + 创建è‰å›¾çº¿ - Create a draft line in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºä¸€æ ¹çº¿ + + Create a draft line in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºä¸€æ ¹çº¿ - - + + CmdSketcherCreateFillet - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create fillet - 创建圆角 + + Create fillet + 创建圆角 - Create a fillet between two lines or at a coincident point - 两直线或é‡åˆç‚¹å¤„创建圆角 + + Create a fillet between two lines or at a coincidental point + - - + + Create a fillet between two lines or at a coincident point + 两直线或é‡åˆç‚¹å¤„创建圆角 + + + CmdSketcherCreateLine - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create line - 创建线 + + Create line + 创建线 - Create a line in the sketch - 在è‰å›¾ä¸­åˆ›å»ºä¸€æ ¹çº¿ + + Create a line in the sketch + 在è‰å›¾ä¸­åˆ›å»ºä¸€æ ¹çº¿ - - + + CmdSketcherCreatePoint - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create point - 创建点 + + Create point + 创建点 - Create a point in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªç‚¹ + + Create a point in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºä¸€ä¸ªç‚¹ - - + + CmdSketcherCreatePolyline - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create polyline - 创建多段线 + + Create polyline + 创建多段线 - Create a polyline in the sketch - 在è‰å›¾ä¸­åˆ›å»ºå¤šæ®µçº¿ + + Create a polyline in the sketch + 在è‰å›¾ä¸­åˆ›å»ºå¤šæ®µçº¿ - - + + CmdSketcherCreateRectangle - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create rectangle - 创建矩形 + + Create rectangle + 创建矩形 - Create a rectangle in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºçŸ©å½¢ + + Create a rectangle in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºçŸ©å½¢ - - + + CmdSketcherCreateText - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create text - 创建文本 + + Create text + 创建文本 - Create text in the sketch - 在è‰ç»˜ä¸­åˆ›å»ºæ–‡æœ¬ + + Create text in the sketch + 在è‰ç»˜ä¸­åˆ›å»ºæ–‡æœ¬ - - + + + CmdSketcherExternal + + + Sketcher + è‰ç»˜ + + + + External geometry + + + + + Create an edge linked to an external geometry + + + + CmdSketcherLeaveSketch - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Leave sketch - 离开è‰ç»˜ + + Leave sketch + 离开è‰ç»˜ - Close the editing of the sketch - 关闭è‰å›¾ç¼–辑 + + Close the editing of the sketch + 关闭è‰å›¾ç¼–辑 - - + + CmdSketcherMapSketch - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Map sketch to face... - Map sketch to face... + + Map sketch to face... + Map sketch to face... - Map a sketch to a face - Map a sketch to a face + + Map a sketch to a face + Map a sketch to a face - - + + CmdSketcherNewSketch - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Create sketch - 创建è‰ç»˜ + + Create sketch + 创建è‰ç»˜ - Create a new or edit the selected sketch - Create a new or edit the selected sketch + + Create a new or edit the selected sketch + Create a new or edit the selected sketch - Create a new sketch - 创建一个新è‰ç»˜ + Create a new sketch + 创建一个新è‰ç»˜ - - + + CmdSketcherNewSketchSF - Sketcher - è‰ç»˜ + Sketcher + è‰ç»˜ - Sketchflat sketch - Sketchflatè‰ç»˜ + Sketchflat sketch + Sketchflatè‰ç»˜ - Create a new sketchflat sketch by starting externel editor - å¯åŠ¨å¤–éƒ¨ç¼–è¾‘å™¨åˆ›å»ºä¸€ä¸ªæ–°sketchflatè‰ç»˜ + Create a new sketchflat sketch by starting externel editor + å¯åŠ¨å¤–éƒ¨ç¼–è¾‘å™¨åˆ›å»ºä¸€ä¸ªæ–°sketchflatè‰ç»˜ - - + + CmdSketcherToggleConstruction - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Toggle construction line - åˆ‡æ¢æž„造线 + + Toggle construction line + åˆ‡æ¢æž„造线 - Toggles the currently selected lines to/from construction mode - 切æ¢å½“å‰é€‰æ‹©çº¿çš„æž„é€ æ¨¡å¼ + + Toggles the currently selected lines to/from construction mode + 切æ¢å½“å‰é€‰æ‹©çº¿çš„æž„é€ æ¨¡å¼ - - + + CmdSketcherTrimming - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Trim edge - 修剪边缘 + + Trim edge + 修剪边缘 - Trims an edge with respect to the picked position - Trims an edge with respect to the picked position + + Trim an edge with respect to the picked position + - - + + Trims an edge with respect to the picked position + Trims an edge with respect to the picked position + + + CmdSketcherViewSketch - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - View sketch - 查看è‰ç»˜ + + View sketch + 查看è‰ç»˜ - View sketch perpendicular to sketch plane - 垂直于è‰ç»˜å¹³é¢æŸ¥çœ‹è‰ç»˜ + + View sketch perpendicular to sketch plane + 垂直于è‰ç»˜å¹³é¢æŸ¥çœ‹è‰ç»˜ - - + + Gui::TaskView::TaskSketcherCreateCommands - - Appearance - 外观 + + Appearance + 外观 - - + + QObject - - Wrong selection - 选择错误 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Wrong selection + 选择错误 - Select edge(s) from the sketch. - 从è‰ç»˜é€‰æ‹©è¾¹ + + Select edge(s) from the sketch. + 从è‰ç»˜é€‰æ‹©è¾¹ - - Select an edge from the sketch. - 从è‰ç»˜ä¸­é€‰æ‹©è¾¹. + + + Select an edge from the sketch. + 从è‰ç»˜ä¸­é€‰æ‹©è¾¹. - Double constraint - åŒé‡çº¦æŸ + + + Double constraint + åŒé‡çº¦æŸ - The selected edge has already a horizontal constraint! - 所选的边已水平约æŸ! + + + The selected edge has already a horizontal constraint! + 所选的边已水平约æŸ! - Impossible constraint - ä¸å¯çº¦æŸ + + + + + + + Impossible constraint + ä¸å¯çº¦æŸ - Only sketch and its support is allowed to select - ä»…å…许选择è‰ç»˜åŠå…¶æ”¯æŒé¢ + + Cannot add a constraint between two external geometries! + - One of the selected has to be on the sketch - 选择之一必须在è‰ç»˜ä¸Š + + + + Only sketch and its support is allowed to select + ä»…å…许选择è‰ç»˜åŠå…¶æ”¯æŒé¢ - The selected edge is not a line segment - 所选的边并éžä¸€æ®µç›´çº¿ + + One of the selected has to be on the sketch + 选择之一必须在è‰ç»˜ä¸Š - The selected edge has already a vertical constraint! - 所选的边已垂直约æŸ! + + + The selected edge is not a line segment + 所选的边并éžä¸€æ®µç›´çº¿ - Select entities from the sketch. - 从è‰ç»˜é€‰æ‹©å®žä½“ + + + The selected edge has already a vertical constraint! + 所选的边已垂直约æŸ! - Select exactly one entity from the sketch. - 仅从è‰ç»˜é€‰æ‹©ä¸€ä¸ªå®žä½“ + + The selected item(s) can't accept a horizontal constraint! + - Select vertexes from the sketch. - 从è‰ç»˜ä¸­é€‰æ‹©é¡¶ç‚¹. + + The selected item(s) can't accept a vertical constraint! + - Select exactly two vertexes from the sketch. - 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ä¸ªé¡¶ç‚¹. + + Select entities from the sketch. + 从è‰ç»˜é€‰æ‹©å®žä½“ - Select exactly one line or one point and one line or two points from the sketch. - 仅从è‰ç»˜é€‰æ‹©ä¸€ç›´çº¿,或一点和一直线,或两点. + + + Select exactly one entity from the sketch. + 仅从è‰ç»˜é€‰æ‹©ä¸€ä¸ªå®žä½“ - Select exactly one point and one object from the sketch. - 仅从è‰ç»˜é€‰æ‹©ä¸€ç‚¹å’Œä¸€å¯¹è±¡. + + + + + + + Select vertexes from the sketch. + 从è‰ç»˜ä¸­é€‰æ‹©é¡¶ç‚¹. - Select exactly one line or up to two points from the sketch. - Select exactly one line or up to two points from the sketch. + + + + Select exactly two vertexes from the sketch. + 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ä¸ªé¡¶ç‚¹. - Select two or more lines from the sketch. - 从è‰ç»˜é€‰æ‹©ä¸¤æ¡æˆ–两æ¡ä»¥ä¸Šç›´çº¿. + + + Select exactly one line or one point and one line or two points from the sketch. + 仅从è‰ç»˜é€‰æ‹©ä¸€ç›´çº¿,或一点和一直线,或两点. - Select at least two lines from the sketch. - 至少从è‰ç»˜é€‰æ‹©ä¸¤ç›´çº¿. + + Cannot add a length constraint on an external geometry! + - Select a valid line - 选择一有效直线 + + + Select exactly one point and one object from the sketch. + 仅从è‰ç»˜é€‰æ‹©ä¸€ç‚¹å’Œä¸€å¯¹è±¡. - The selected edge is not a valid line - æ‰€é€‰çš„è¾¹å¹¶éžæœ‰æ•ˆç›´çº¿ + + + + + Select exactly one line or up to two points from the sketch. + Select exactly one line or up to two points from the sketch. - Select exactly one arc or circle from the sketch. - 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸€ä¸ªåœ†å¼§æˆ–圆. + + Cannot add a horizontal length constraint on an external geometry! + - Select exactly one or two lines from the sketch. - 仅从è‰ç»˜é€‰æ‹©ä¸€æ¡æˆ–两æ¡ç›´çº¿. + + Cannot add a vertical length constraint on an external geometry! + - Select two edges from the sketch. - 从è‰ç»˜é€‰æ‹©ä¸¤æ¡è¾¹. + + Select two or more lines from the sketch. + 从è‰ç»˜é€‰æ‹©ä¸¤æ¡æˆ–两æ¡ä»¥ä¸Šç›´çº¿. - Select atleast two lines from the sketch. - 至少从è‰ç»˜é€‰æ‹©ä¸¤ç›´çº¿. + + Select at least two lines from the sketch. + 至少从è‰ç»˜é€‰æ‹©ä¸¤ç›´çº¿. - Select exactly two same geometries - Select exactly two same geometries + + Select a valid line + 选择一有效直线 - Select valid geometries - 选择有效几何体 + + The selected edge is not a valid line + æ‰€é€‰çš„è¾¹å¹¶éžæœ‰æ•ˆç›´çº¿ - Select geometry of similar type - 选择相似类型的几何体 + + The selected points should be end points of arcs and lines. + - Select two points and one line from the sketch. - 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ç‚¹å’Œä¸€çº¿. + + The selected point should be an end point of an arc or line. + - Select exactly one line from the sketch. - 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸€æ ¹çº¿. + + The selected edge should be an arc, line or circle. + - Select two lines from the sketch. - 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤æ ¹çº¿. + + One of the selected edges should be a line. + - Select exactly two lines from the sketch. - 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸¤æ ¹çº¿. + + + + Select exactly one arc or circle from the sketch. + 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸€ä¸ªåœ†å¼§æˆ–圆. - Select two entities from the sketch. - 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ä¸ªå®žä½“. + + Select one or two lines from the sketch. + - Select exactly two entities from the sketch. - 仅从è‰ç»˜é€‰æ‹©ä¸¤å®žä½“. + + Cannot add an angle constraint on an external geometry! + - - Edit sketch - 编辑è‰ç»˜ + + Select exactly one or two lines from the sketch. + 仅从è‰ç»˜é€‰æ‹©ä¸€æ¡æˆ–两æ¡ç›´çº¿. - A dialog is already open in the task panel - ä¸€ä¸ªå¯¹è¯æ¡†å·²åœ¨ä»»åС颿¿æ‰“å¼€ + + Select two edges from the sketch. + 从è‰ç»˜é€‰æ‹©ä¸¤æ¡è¾¹. - Do you want to close this dialog? - 是å¦è¦å…³é—­æ­¤å¯¹è¯æ¡†? + + Select atleast two lines from the sketch. + 至少从è‰ç»˜é€‰æ‹©ä¸¤ç›´çº¿. - - Several sub-elements selected - 若干å­å…ƒç´ è¢«é€‰æ‹© + + Select two or more compatible edges + - You have to select a single face as support for a sketch! - 您必须选择一个支æŒé¢ä»¥ç»˜åˆ¶è‰å›¾! + + Sketch axes cannot be used in equality constraints + - No support face selected - 未选中支æŒé¢ + + + Select two or more edges of similar type + - You have to select a face as support for a sketch! - 您必须选择一个支æŒé¢ä»¥ç»˜åˆ¶è‰å›¾! + + Cannot add a constraint between external geometries! + - No planar support - 无支æŒå¹³é¢ + Select exactly two same geometries + Select exactly two same geometries - You need a planar face as support for a sketch! - 您需è¦ä¸€ä¸ªæ”¯æŒå¹³é¢ä»¥ç»˜åˆ¶è‰å›¾! + Select valid geometries + 选择有效几何体 - - Distance constraint - è·ç¦»çº¦æŸ + Select geometry of similar type + 选择相似类型的几何体 - Not allowed to edit the datum because the sketch contains conflicting constraints - 由于è‰å›¾åŒ…å«å†²çªçš„çº¦æŸæ— æ³•编辑基准 + + + + Select two points and one line from the sketch. + 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ç‚¹å’Œä¸€çº¿. - Dimensional constraint - Dimensional constraint + Select exactly one line from the sketch. + 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸€æ ¹çº¿. - - + + Select two lines from the sketch. + 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤æ ¹çº¿. + + + Select exactly two lines from the sketch. + 仅从è‰ç»˜ä¸­é€‰æ‹©ä¸¤æ ¹çº¿. + + + + + Select two entities from the sketch. + 从è‰ç»˜ä¸­é€‰æ‹©ä¸¤ä¸ªå®žä½“. + + + + + + + Select exactly two entities from the sketch. + 仅从è‰ç»˜é€‰æ‹©ä¸¤å®žä½“. + + + + Edit sketch + 编辑è‰ç»˜ + + + + A dialog is already open in the task panel + ä¸€ä¸ªå¯¹è¯æ¡†å·²åœ¨ä»»åС颿¿æ‰“å¼€ + + + + Do you want to close this dialog? + 是å¦è¦å…³é—­æ­¤å¯¹è¯æ¡†? + + + + Several sub-elements selected + 若干å­å…ƒç´ è¢«é€‰æ‹© + + + + You have to select a single face as support for a sketch! + 您必须选择一个支æŒé¢ä»¥ç»˜åˆ¶è‰å›¾! + + + + No support face selected + 未选中支æŒé¢ + + + + You have to select a face as support for a sketch! + 您必须选择一个支æŒé¢ä»¥ç»˜åˆ¶è‰å›¾! + + + + No planar support + 无支æŒå¹³é¢ + + + + You need a planar face as support for a sketch! + 您需è¦ä¸€ä¸ªæ”¯æŒå¹³é¢ä»¥ç»˜åˆ¶è‰å›¾! + + + + Distance constraint + è·ç¦»çº¦æŸ + + + + Not allowed to edit the datum because the sketch contains conflicting constraints + 由于è‰å›¾åŒ…å«å†²çªçš„çº¦æŸæ— æ³•编辑基准 + + + + Dimensional constraint + Dimensional constraint + + + SketchOrientationDialog - - Choose orientation - é€‰æ‹©æ–¹å‘ + Choose orientation + é€‰æ‹©æ–¹å‘ - Sketch orientation - è‰ç»˜æ–¹å‘ + Sketch orientation + è‰ç»˜æ–¹å‘ - XY-Plane - XYå¹³é¢ + XY-Plane + XYå¹³é¢ - XZ-Plane - XZå¹³é¢ + XZ-Plane + XZå¹³é¢ - YZ-Plane - YZå¹³é¢ + YZ-Plane + YZå¹³é¢ - Reverse direction - åè½¬æ–¹å‘ + Reverse direction + åè½¬æ–¹å‘ - Offset: - åç§»: + Offset: + åç§»: - - + + SketcherGui::InsertDatum - - Insert datum - æ’入基准 + + Insert datum + æ’入基准 - datum: - æ•°æ®: + + datum: + æ•°æ®: - - + + + SketcherGui::SketchOrientationDialog + + + Choose orientation + é€‰æ‹©æ–¹å‘ + + + + Sketch orientation + è‰ç»˜æ–¹å‘ + + + + XY-Plane + XYå¹³é¢ + + + + XZ-Plane + XZå¹³é¢ + + + + YZ-Plane + YZå¹³é¢ + + + + Reverse direction + åè½¬æ–¹å‘ + + + + Offset: + åç§»: + + + SketcherGui::TaskSketcherConstrains - - Form - 窗体 + + Form + 窗体 - Filter: - 过滤器: + + Filter: + 过滤器: - All - 全部 + + All + 全部 - Normal - æ³•å‘ + + Normal + æ³•å‘ - Datums - 基准 + + Datums + 基准 - Named - 命å + + Named + 命å - - Constraints - çº¦æŸ + + Constraints + çº¦æŸ - - + + SketcherGui::TaskSketcherGeneral - - Form - 窗体 + + Form + 窗体 - Grid size: - Grid size: + + Grid size: + Grid size: - Grid snap - Grid snap + + Grid snap + Grid snap - Unsolved - 未解决 + Unsolved + 未解决 - Grid Snap - ç½‘æ ¼æ•æ‰ + Grid Snap + ç½‘æ ¼æ•æ‰ - 0.1 mm - 0.1 mm + 0.1 mm + 0.1 mm - 0.2 mm - 0.2 mm + 0.2 mm + 0.2 mm - 0.5 mm - 0.5 mm + 0.5 mm + 0.5 mm - 1 mm - 1 mm + 1 mm + 1 mm - 2 mm - 2 mm + 2 mm + 2 mm - 5 mm - 5 mm + 5 mm + 5 mm - 10 mm - 10 mm + 10 mm + 10 mm - 20 mm - 20 mm + 20 mm + 20 mm - 50 mm - 50 mm + 50 mm + 50 mm - 100 mm - 100毫米 + 100 mm + 100毫米 - 200 mm - 200 mm + 200 mm + 200 mm - 500 mm - 500 mm + 500 mm + 500 mm - 1 m - 1 m + 1 m + 1 m - 2 m - 2 m + 2 m + 2 m - 5 m - 5 m + 5 m + 5 m - 10 m - 10 m + 10 m + 10 m - 20 m - 20 m + 20 m + 20 m - Auto constraints - è‡ªåŠ¨çº¦æŸ + + Auto constraints + è‡ªåŠ¨çº¦æŸ - auto constraints - è‡ªåŠ¨çº¦æŸ + auto constraints + è‡ªåŠ¨çº¦æŸ - - Edit controls - 编辑控件 + + Edit controls + 编辑控件 - - + + SketcherGui::TaskSketcherMessages - - Solver messages - æ±‚è§£å™¨ä¿¡æ¯ + + Solver messages + æ±‚è§£å™¨ä¿¡æ¯ - - + + TaskSketcherConstrains - Constraints - çº¦æŸ + Constraints + çº¦æŸ - - + + TaskSketcherCreateCommands - Appearance - 外观 + Appearance + 外观 - - + + TaskSketcherGeneral - Edit controls - 编辑控件 + Edit controls + 编辑控件 - - + + TaskSketcherMessages - - Form - 窗体 + + Form + 窗体 - Undefined degrees of freedom - 未定义的自由度 + + Undefined degrees of freedom + 未定义的自由度 - Not solved yet - Not solved yet + + Not solved yet + Not solved yet - - + + Workbench - - Sketcher - è‰ç»˜ + + Sketcher + è‰ç»˜ - Sketcher geometries - è‰ç»˜å‡ ä½•体 + + Sketcher geometries + è‰ç»˜å‡ ä½•体 - Sketcher geoms - è‰ç»˜å‡ ä½• + Sketcher geoms + è‰ç»˜å‡ ä½• - Sketcher constraints - è‰å›¾çº¦æŸ + + Sketcher constraints + è‰å›¾çº¦æŸ - + diff --git a/src/Mod/Start/Gui/Resources/translations/StartPage.ts b/src/Mod/Start/Gui/Resources/translations/StartPage.ts index f34c864d6..1759cc176 100644 --- a/src/Mod/Start/Gui/Resources/translations/StartPage.ts +++ b/src/Mod/Start/Gui/Resources/translations/StartPage.ts @@ -3,242 +3,242 @@ StartPage - + FreeCAD Start Center - + Start a new project - + Recent Files - + Tutorials - + FreeCAD Homepage - + Example projects - + Schenkel STEP file - + Load a PartDesign example - + Load a Drawing extraction - + Load a Robot simulation example - + Projects from the Web - + Schenkel STEP - + Complex Part - + Close this window after opening or creating a file - + Don't show me this window again next time - + Designing parts - + The <b>Part Design</b> workbench is designed to create complex pieces based on constrained 2D sketches. Use it to draw 2D shapes, constrain some of their elements and extrude them to form 3D pieces. - + Example workflow - + Part Design - + Designing architectural elements - + The <b>Architectural Design</b> workbench is specially designed for working with architectural elements such as walls or windows. Start by drawing 2D shapes, and use them as guides to build architecutral objects. - + Architectual Design - + Working with Meshes - + The <b>Mesh Workbench</b> is used to work with Mesh objects. Meshes are simpler 3D objects than Part objects, but they are often easier to import and export to/from other applications. - + FreeCAD offers you several tools to convert between Mesh and Part objects. - + Work with Meshes - + The complete workbench - + FreeCAD Complete workbench - + file size: - + creation time: - + last modified: - + populated with some of the most commonly used tools. - + Latest videos - + Latest news - + On the web - + This is the FreeCAD Homepage. Here you will be able to find a lot of information about FreeCAD, including tutorials, examples and user documentation. - + location: - + User manual - + http://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Online_Help_Toc - + Python resources - + File not found - + from <a href=http://twitter.com/FreeCADNews>@FreeCADNews</a> - + The FreeCAD-tutorial blog - + from <a href=http://www.youtube.com/user/FreeCADNews?feature=mhee>FreeCADNews channel</a> - + This is the official user manual of FreeCAD, built, maintained and translated by the FreeCAD community. - + The tutorials section on the FreeCAD website - + The section of the FreeCAd website dedicate dto python scripting, with examples, explanations, and API commands. - + A blog dedicated to teaching FreeCAD, maintained by members of the FreeCAD community diff --git a/src/Mod/Test/Gui/Resources/translations/Test_af.ts b/src/Mod/Test/Gui/Resources/translations/Test_af.ts index fad80004b..c05d64490 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_af.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_af.ts @@ -1,112 +1,112 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD Eenheidstoets + FreeCAD UnitTest + FreeCAD Eenheidstoets - Failures and errors - Mislukkings en foute + Failures and errors + Mislukkings en foute - Description - Beskrywing + Description + Beskrywing - &Start - &Begin + &Start + &Begin - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Hulp + &Help + &Hulp - F1 - F1 + F1 + F1 - &About - &Aangaande + &About + &Aangaande - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Maak toe + &Close + &Maak toe - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Ledig + Idle + Ledig - Progress - Vordering + Progress + Vordering - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Oorblywende: + Remaining: + Oorblywende: - Errors: - Foute: + Errors: + Foute: - Failures: - Mislukkings: + Failures: + Mislukkings: - Run: - Loop: + Run: + Loop: - Test - Toets + Test + Toets - Select test name: - Kies toetsnaam: + Select test name: + Kies toetsnaam: - - + + TestGui::UnitTestDialog - Help - Hulp + Help + Hulp - About FreeCAD UnitTest - Aangaande FreeCAD Eenheidstoets + About FreeCAD UnitTest + Aangaande FreeCAD Eenheidstoets - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Kopiereg (c) Werner Mayer + Kopiereg (c) Werner Mayer FreeCAD Eenheidstoets is deel van FreeCAD en ondersteun skrywing van eenheidstoetse vir eie modules. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Gee die naam van 'n roepbare voorwerp wat, wanneer geroep is, 'n toetsgeval sal gee. Klik "begin", en die geskepte toets sal uitgevoer word. -Dubbelklik op 'n fout in die boomaansig vir meer inligting oor dit, insluitend die stapelspoor. + Gee die naam van 'n roepbare voorwerp wat, wanneer geroep is, 'n toetsgeval sal gee. Klik "begin", en die geskepte toets sal uitgevoer word. +Dubbelklik op 'n fout in die boomaansig vir meer inligting oor dit, insluitend die stapelspoor. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_de.ts b/src/Mod/Test/Gui/Resources/translations/Test_de.ts index c33e5df17..953b5fc1f 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_de.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_de.ts @@ -1,113 +1,113 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD UnitTest + FreeCAD UnitTest + FreeCAD UnitTest - Failures and errors - Störungen und Fehler + Failures and errors + Störungen und Fehler - Description - Beschreibung + Description + Beschreibung - &Start - &Starten + &Start + &Starten - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Hilfe + &Help + &Hilfe - F1 - F1 + F1 + F1 - &About - Ü&ber + &About + Ü&ber - Alt+A - Alt+B + Alt+A + Alt+B - &Close - Schl&ießen + &Close + Schl&ießen - Alt+C - Alt+I + Alt+C + Alt+I - Idle - Leerlauf + Idle + Leerlauf - Progress - Fortschritt + Progress + Fortschritt - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Verbleibend: + Remaining: + Verbleibend: - Errors: - Fehler: + Errors: + Fehler: - Failures: - Störungen: + Failures: + Störungen: - Run: - Durchlauf: + Run: + Durchlauf: - Test - Aufgabe + Test + Aufgabe - Select test name: - Wähle Testaufgabe: + Select test name: + Wähle Testaufgabe: - - + + TestGui::UnitTestDialog - Help - Hilfe + Help + Hilfe - About FreeCAD UnitTest - Über FreeCAD UnitTest + About FreeCAD UnitTest + Über FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest ist Teil von FreeCAD und unterstützt das Schreiben von Unit Tests für eigene Module. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Geben Sie den Namen eines Tests ein und klicken Sie auf 'Start', um diesen Test auszuführen. + Geben Sie den Namen eines Tests ein und klicken Sie auf 'Start', um diesen Test auszuführen. Doppelklicken Sie im Fehlerfall auf das Element in der Baumansicht, um mehr Informationen darüber zu erhalten. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_es.ts b/src/Mod/Test/Gui/Resources/translations/Test_es.ts index 39acb4d2c..1113b9d2a 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_es.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_es.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - Prueba de unidades de FreeCAD + FreeCAD UnitTest + Prueba de unidades de FreeCAD - Failures and errors - Fallos y errores + Failures and errors + Fallos y errores - Description - Descripción + Description + Descripción - &Start - &Iniciar + &Start + &Iniciar - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Ayuda + &Help + &Ayuda - F1 - F1 + F1 + F1 - &About - &Acerca de + &About + &Acerca de - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Cerrar + &Close + &Cerrar - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Inactivo + Idle + Inactivo - Progress - Progreso + Progress + Progreso - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Restante: + Remaining: + Restante: - Errors: - Errores: + Errors: + Errores: - Failures: - Fallos: + Failures: + Fallos: - Run: - Ejecutar: + Run: + Ejecutar: - Test - Prueba + Test + Prueba - Select test name: - Seleccion del módulo a probar: + Select test name: + Seleccion del módulo a probar: - - + + TestGui::UnitTestDialog - Help - Ayuda + Help + Ayuda - About FreeCAD UnitTest - Acerca de FreeCAD UnitTest + About FreeCAD UnitTest + Acerca de FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest es parte de FreeCAD y admite la escritura de pruebas unitarias para módulos propios. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Escriba el nombre de un objeto que se puede llamar, cuando se le llama, vuelve a empezar 'una TestCase.Click, y la prueba así producida se llevará a cabo. + Escriba el nombre de un objeto que se puede llamar, cuando se le llama, vuelve a empezar 'una TestCase.Click, y la prueba así producida se llevará a cabo. Haga doble clic en un error en la vista en árbol para ver más información al respecto, incluido el seguimiento de la pila. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_fi.ts b/src/Mod/Test/Gui/Resources/translations/Test_fi.ts index f119e8dca..290ea0bb7 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_fi.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_fi.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD yksikkötestaus + FreeCAD UnitTest + FreeCAD yksikkötestaus - Failures and errors - Hylätyt toiminnot ja virheet + Failures and errors + Hylätyt toiminnot ja virheet - Description - Kuvaus + Description + Kuvaus - &Start - &Aloita + &Start + &Aloita - Alt+S - Alt+S + Alt+S + Alt+S - &Help - Ohje + &Help + Ohje - F1 - F1 + F1 + F1 - &About - &Tietoja ohjelmasta + &About + &Tietoja ohjelmasta - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Sulje + &Close + &Sulje - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Joutokäynti + Idle + Joutokäynti - Progress - Tilanne + Progress + Tilanne - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Jäljellä oleva: + Remaining: + Jäljellä oleva: - Errors: - Virheet: + Errors: + Virheet: - Failures: - Hylätyt: + Failures: + Hylätyt: - Run: - Suorita: + Run: + Suorita: - Test - Testi + Test + Testi - Select test name: - Valitse testin nimi: + Select test name: + Valitse testin nimi: - - + + TestGui::UnitTestDialog - Help - Helppi + Help + Helppi - About FreeCAD UnitTest - Tietoja FreeCAD toiminnan testauksesta + About FreeCAD UnitTest + Tietoja FreeCAD toiminnan testauksesta - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Tekijänoikeudet (c) Werner Mayer + Tekijänoikeudet (c) Werner Mayer FreeCAD toiminnan testaus on osa FreeCAD ohjelmaa ja se tukee kirjoitettuja toiminnan testauksia omille moduuleille. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Syötä kutsuttavan objektin nimi. Kun objektia kutsutaan, käynnistyy Testaus ympäristö. Paina 'aloita', jolloin testi lähtee käyntiin. + Syötä kutsuttavan objektin nimi. Kun objektia kutsutaan, käynnistyy Testaus ympäristö. Paina 'aloita', jolloin testi lähtee käyntiin. Kaksoisnapsauta ilmoitettua virhettä, niin saat siitä lisää tietoa, sisältäen pinokutsut. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_fr.ts b/src/Mod/Test/Gui/Resources/translations/Test_fr.ts index 072e56c0b..db64fe5b8 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_fr.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_fr.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - Test unitaire FreeCAD + FreeCAD UnitTest + Test unitaire FreeCAD - Failures and errors - Échecs et erreurs + Failures and errors + Échecs et erreurs - Description - Description + Description + Description - &Start - &Démarrer + &Start + &Démarrer - Alt+S - Alt+D + Alt+S + Alt+D - &Help - &Aide + &Help + &Aide - F1 - F1 + F1 + F1 - &About - À &propos + &About + À &propos - Alt+A - Alt+p + Alt+A + Alt+p - &Close - &Fermer + &Close + &Fermer - Alt+C - Alt+F + Alt+C + Alt+F - Idle - Inactif + Idle + Inactif - Progress - Progression + Progress + Progression - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Restant : + Remaining: + Restant : - Errors: - Erreurs : + Errors: + Erreurs : - Failures: - Échecs : + Failures: + Échecs : - Run: - Lancer : + Run: + Lancer : - Test - Test + Test + Test - Select test name: - Sélectionner le nom du test : + Select test name: + Sélectionner le nom du test : - - + + TestGui::UnitTestDialog - Help - Aide + Help + Aide - About FreeCAD UnitTest - À propos des tests unitaires FreeCAD + About FreeCAD UnitTest + À propos des tests unitaires FreeCAD - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Tous droits réservés (c) Werner Mayer + Tous droits réservés (c) Werner Mayer -FreeCAD UnitTest fait partie de FreeCAD et supporte l'écriture de tests unitaires pour vos propres modules. +FreeCAD UnitTest fait partie de FreeCAD et supporte l'écriture de tests unitaires pour vos propres modules. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Saisir le nom d'un objet qui, une fois appelé, retournera un événement TestCase. Cliquer sur 'Démarrer' et le test démarrera. + Saisir le nom d'un objet qui, une fois appelé, retournera un événement TestCase. Cliquer sur 'Démarrer' et le test démarrera. -Double cliquer sur une erreur dans la vue arborescente pour voir plus d'informations, y compris l'historique de la pile. +Double cliquer sur une erreur dans la vue arborescente pour voir plus d'informations, y compris l'historique de la pile. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_hr.ts b/src/Mod/Test/Gui/Resources/translations/Test_hr.ts index 5410d0170..dee0d8d68 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_hr.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_hr.ts @@ -1,110 +1,110 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD UnitTest + FreeCAD UnitTest + FreeCAD UnitTest - Failures and errors - Kvarovi i greÅ¡ke + Failures and errors + Kvarovi i greÅ¡ke - Description - Opis + Description + Opis - &Start - &Kreni + &Start + &Kreni - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Pomoć + &Help + &Pomoć - F1 - F1 + F1 + F1 - &About - &O + &About + &O - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Zatvori + &Close + &Zatvori - Alt+C - Alt + C + Alt+C + Alt + C - Idle - Besposlen + Idle + Besposlen - Progress - Napredak + Progress + Napredak - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Preostali: + Remaining: + Preostali: - Errors: - PogreÅ¡ke: + Errors: + PogreÅ¡ke: - Failures: - Kvarovi: + Failures: + Kvarovi: - Run: - Pokretanje: + Run: + Pokretanje: - Test - Test + Test + Test - Select test name: - Odaberite naziv testa: + Select test name: + Odaberite naziv testa: - - + + TestGui::UnitTestDialog - Help - Pomoć + Help + Pomoć - About FreeCAD UnitTest - O FreeCAD UnitTest + About FreeCAD UnitTest + O FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer FreeCAD UnitTest je dio FreeCAD i podržava pisanje jedinica Testovi za vlastite module. + Copyright (c) Werner Mayer FreeCAD UnitTest je dio FreeCAD i podržava pisanje jedinica Testovi za vlastite module. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Unesite naziv objekt za zvanje koji, kad se zove,vratit će TestCase.Klik "Start", test će se pokrenuti. Dvaput kliknite na pogreÅ¡ke u prikazu stabla da biste vidjeli viÅ¡e informacija o tome, ukljuÄujući i stog trag. + Unesite naziv objekt za zvanje koji, kad se zove,vratit će TestCase.Klik "Start", test će se pokrenuti. Dvaput kliknite na pogreÅ¡ke u prikazu stabla da biste vidjeli viÅ¡e informacija o tome, ukljuÄujući i stog trag. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_hu.ts b/src/Mod/Test/Gui/Resources/translations/Test_hu.ts index 4647e59c4..97336cabf 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_hu.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_hu.ts @@ -1,110 +1,110 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD Egység-Teszt + FreeCAD UnitTest + FreeCAD Egység-Teszt - Failures and errors - Sikertelen és hibás + Failures and errors + Sikertelen és hibás - Description - Leírás + Description + Leírás - &Start - &Kezdés + &Start + &Kezdés - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Súgó + &Help + &Súgó - F1 - F1 + F1 + F1 - &About - Névjegy + &About + Névjegy - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Bezár + &Close + &Bezár - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Üresjárati + Idle + Üresjárati - Progress - Folyamatban + Progress + Folyamatban - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Fennmaradó: + Remaining: + Fennmaradó: - Errors: - Hibák: + Errors: + Hibák: - Failures: - Sikertelen: + Failures: + Sikertelen: - Run: - Fut: + Run: + Fut: - Test - Vizsgálat + Test + Vizsgálat - Select test name: - Teszt név kiválasztás: + Select test name: + Teszt név kiválasztás: - - + + TestGui::UnitTestDialog - Help - Segítség + Help + Segítség - About FreeCAD UnitTest - FreeCAD Egység-Teszt névjegye + About FreeCAD UnitTest + FreeCAD Egység-Teszt névjegye - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer FreeCAD UnitTest része a FreeCAD programnak és támogatja írásban Unit tesztek saját moduljait. + Copyright (c) Werner Mayer FreeCAD UnitTest része a FreeCAD programnak és támogatja írásban Unit tesztek saját moduljait. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Ãrja be a nevét a hívható objektumnak, amely hívásakor, visszatér egy Tesztre. Nyomjon 'start', és az így készült vizsgálat futni fog. Dupla kattintással, a fa nézeten további információkat kap, beleértve a verem-nyomkövetést. + Ãrja be a nevét a hívható objektumnak, amely hívásakor, visszatér egy Tesztre. Nyomjon 'start', és az így készült vizsgálat futni fog. Dupla kattintással, a fa nézeten további információkat kap, beleértve a verem-nyomkövetést. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_it.ts b/src/Mod/Test/Gui/Resources/translations/Test_it.ts index d79cbc61f..11eb06405 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_it.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_it.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD UnitTest + FreeCAD UnitTest + FreeCAD UnitTest - Failures and errors - Avarie ed errori + Failures and errors + Avarie ed errori - Description - Descrizione + Description + Descrizione - &Start - &Inizio + &Start + &Inizio - Alt+S - Alt+I + Alt+S + Alt+I - &Help - &Aiuto + &Help + &Aiuto - F1 - F1 + F1 + F1 - &About - &Informazioni su + &About + &Informazioni su - Alt+A - Alt+I + Alt+A + Alt+I - &Close - &Chiudi + &Close + &Chiudi - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Inattivo + Idle + Inattivo - Progress - Avanzamento + Progress + Avanzamento - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Rimanente: + Remaining: + Rimanente: - Errors: - Errori: + Errors: + Errori: - Failures: - Avarie: + Failures: + Avarie: - Run: - Serie: + Run: + Serie: - Test - Test + Test + Test - Select test name: - Seleziona il nome del test: + Select test name: + Seleziona il nome del test: - - + + TestGui::UnitTestDialog - Help - Aiuto + Help + Aiuto - About FreeCAD UnitTest - Informazioni su FreeCAD UnitTest + About FreeCAD UnitTest + Informazioni su FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest è parte di FreeCAD e supporta la scrittura di test unitari per i propri moduli. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Inserisci il nome di un oggetto richiamabile che, quando richiamato, restituirà un TestCase. Fare clic su 'inizio', e la prova così prodotta sarà eseguita. + Inserisci il nome di un oggetto richiamabile che, quando richiamato, restituirà un TestCase. Fare clic su 'inizio', e la prova così prodotta sarà eseguita. -Doppio click su un errore nell'albero per visualizzare più informazioni, inclusa la traccia dello stack. +Doppio click su un errore nell'albero per visualizzare più informazioni, inclusa la traccia dello stack. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_ja.ts b/src/Mod/Test/Gui/Resources/translations/Test_ja.ts index 35bfeea77..3460f433e 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_ja.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_ja.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD UnitTest + FreeCAD UnitTest + FreeCAD UnitTest - Failures and errors - 障害ãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼ + Failures and errors + 障害ãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼ - Description - 説明 + Description + 説明 - &Start - 開始(&S) + &Start + 開始(&S) - Alt+S - Alt+S + Alt+S + Alt+S - &Help - ヘルプ (&H) + &Help + ヘルプ (&H) - F1 - F1 + F1 + F1 - &About - &About + &About + &About - Alt+A - [Alt] + A + Alt+A + [Alt] + A - &Close - é–‰ã˜ã‚‹ (&C) + &Close + é–‰ã˜ã‚‹ (&C) - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Idle + Idle + Idle - Progress - 進æ—çŠ¶æ³ + Progress + 進æ—çŠ¶æ³ - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - 残り: + Remaining: + 残り: - Errors: - エラー: + Errors: + エラー: - Failures: - エラー: + Failures: + エラー: - Run: - 実行: + Run: + 実行: - Test - テスト + Test + テスト - Select test name: - Select test name: + Select test name: + Select test name: - - + + TestGui::UnitTestDialog - Help - ヘルプ + Help + ヘルプ - About FreeCAD UnitTest - About FreeCAD UnitTest + About FreeCAD UnitTest + About FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_nl.ts b/src/Mod/Test/Gui/Resources/translations/Test_nl.ts index 71bc7bb79..b21373012 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_nl.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_nl.ts @@ -1,113 +1,113 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD unittest + FreeCAD UnitTest + FreeCAD unittest - Failures and errors - Mislukkingen en fouten + Failures and errors + Mislukkingen en fouten - Description - Omschrijving + Description + Omschrijving - &Start - &Start + &Start + &Start - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Help + &Help + &Help - F1 - F1 + F1 + F1 - &About - &Over + &About + &Over - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Sluiten + &Close + &Sluiten - Alt+C - Alt+C + Alt+C + Alt+C - Idle - Inactief + Idle + Inactief - Progress - Voortgang + Progress + Voortgang - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Resterend: + Remaining: + Resterend: - Errors: - Fouten: + Errors: + Fouten: - Failures: - Mislukkingen: + Failures: + Mislukkingen: - Run: - Uitvoeren: + Run: + Uitvoeren: - Test - Test + Test + Test - Select test name: - Selecteer Testnaam: + Select test name: + Selecteer Testnaam: - - + + TestGui::UnitTestDialog - Help - Help + Help + Help - About FreeCAD UnitTest - Over FreeCAD UnitTest + About FreeCAD UnitTest + Over FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD unittest is onderdeel van FreeCAD en ondersteunt het schrijven van unit tests voor eigen modules. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Voer de naam in van het oproepbare object welke, indien opgeroepen, een TestCase zal teruggeven. Druk op 'start', en de aldus geproduceerde test zal worden uitgevoerd. + Voer de naam in van het oproepbare object welke, indien opgeroepen, een TestCase zal teruggeven. Druk op 'start', en de aldus geproduceerde test zal worden uitgevoerd. Dubbel klik op een fout in de boomstructuur om meer informatie te zien, inclusief de stack trace. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_no.ts b/src/Mod/Test/Gui/Resources/translations/Test_no.ts index 41bdc81e0..716ef14df 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_no.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_no.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD enhetstest + FreeCAD UnitTest + FreeCAD enhetstest - Failures and errors - Feil + Failures and errors + Feil - Description - Beskrivelse + Description + Beskrivelse - &Start - &Start + &Start + &Start - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Hjelp + &Help + &Hjelp - F1 - F1 + F1 + F1 - &About - &Om + &About + &Om - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Lukk + &Close + &Lukk - Alt+C - Alt + C + Alt+C + Alt + C - Idle - Inaktiv + Idle + Inaktiv - Progress - Fremdrift + Progress + Fremdrift - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - GjenstÃ¥ende: + Remaining: + GjenstÃ¥ende: - Errors: - Feil: + Errors: + Feil: - Failures: - Feil: + Failures: + Feil: - Run: - Kjør: + Run: + Kjør: - Test - Test + Test + Test - Select test name: - Velg testnavn: + Select test name: + Velg testnavn: - - + + TestGui::UnitTestDialog - Help - Hjelp + Help + Hjelp - About FreeCAD UnitTest - Om FreeCAD enhetstest + About FreeCAD UnitTest + Om FreeCAD enhetstest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD enhetstest er en del av FreeCAD og støtter skriving til enhetstester for egne moduler. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Skriv inn navnet pÃ¥ et oppkallbart objekt som nÃ¥r kalt vil returnere en testsak. Klikk 'start' og testen produsert vil bli kjørt. + Skriv inn navnet pÃ¥ et oppkallbart objekt som nÃ¥r kalt vil returnere en testsak. Klikk 'start' og testen produsert vil bli kjørt. Dobbeltklikk pÃ¥ en feil i treet for Ã¥ se mer informasjon om den, inkludert stabelsporing. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_pl.ts b/src/Mod/Test/Gui/Resources/translations/Test_pl.ts index c12793cc5..2ac873245 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_pl.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_pl.ts @@ -1,112 +1,112 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD UnitTest + FreeCAD UnitTest + FreeCAD UnitTest - Failures and errors - Awarie i błędy + Failures and errors + Awarie i błędy - Description - Opis + Description + Opis - &Start - &Uruchom + &Start + &Uruchom - Alt+S - Alt + S + Alt+S + Alt + S - &Help - &Pomoc + &Help + &Pomoc - F1 - F1 + F1 + F1 - &About - &O programie + &About + &O programie - Alt+A - ALT + A + Alt+A + ALT + A - &Close - &Zamknij + &Close + &Zamknij - Alt+C - Alt + C + Alt+C + Alt + C - Idle - Bezczynny + Idle + Bezczynny - Progress - PostÄ™p + Progress + PostÄ™p - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - PozostaÅ‚o: + Remaining: + PozostaÅ‚o: - Errors: - Błędy: + Errors: + Błędy: - Failures: - Awarie: + Failures: + Awarie: - Run: - Uruchom: + Run: + Uruchom: - Test - Test + Test + Test - Select test name: - Wybierz nazwÄ™ testu: + Select test name: + Wybierz nazwÄ™ testu: - - + + TestGui::UnitTestDialog - Help - Pomoc + Help + Pomoc - About FreeCAD UnitTest - O FreeCAD UnitTest + About FreeCAD UnitTest + O FreeCAD UnitTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer FreeCAD unittest jest częściÄ… FreeCAD i wspiera pisanie testów jednostkowych dla wÅ‚asnych modułów. + Copyright (c) Werner Mayer FreeCAD unittest jest częściÄ… FreeCAD i wspiera pisanie testów jednostkowych dla wÅ‚asnych modułów. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_pt.ts b/src/Mod/Test/Gui/Resources/translations/Test_pt.ts index b0acc7766..510e60e5c 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_pt.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_pt.ts @@ -1,112 +1,112 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - Teste de unidade do FreeCAD + FreeCAD UnitTest + Teste de unidade do FreeCAD - Failures and errors - Falhas e erros + Failures and errors + Falhas e erros - Description - Descrição + Description + Descrição - &Start - &Início + &Start + &Início - Alt+S - Alt+I + Alt+S + Alt+I - &Help - A&juda + &Help + A&juda - F1 - F1 + F1 + F1 - &About - S&obre + &About + S&obre - Alt+A - Alt+O + Alt+A + Alt+O - &Close - &Fechar + &Close + &Fechar - Alt+C - Alt+F + Alt+C + Alt+F - Idle - Ocioso + Idle + Ocioso - Progress - Progresso + Progress + Progresso - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Faltando: + Remaining: + Faltando: - Errors: - Erros: + Errors: + Erros: - Failures: - Falhas: + Failures: + Falhas: - Run: - Executar: + Run: + Executar: - Test - Teste + Test + Teste - Select test name: - Selecione o nome do teste: + Select test name: + Selecione o nome do teste: - - + + TestGui::UnitTestDialog - Help - Ajuda + Help + Ajuda - About FreeCAD UnitTest - Sobre o teste de unidade do FreeCAD + About FreeCAD UnitTest + Sobre o teste de unidade do FreeCAD - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer O teste de unidade do FreeCAD é parte do FreeCAD e suporta o desenvolvimento de testes de unidade para módulos próprios. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Digite o nome de um objeto que pode ser chamado que, quando chamado, vai retornar um TestCase. Clique "Iniciar", e o teste assim produzido será executado. Dê um duplo clique sobre um erro na árvore para ver mais informações sobre ele, incluindo o rastreamento de pilha. + Digite o nome de um objeto que pode ser chamado que, quando chamado, vai retornar um TestCase. Clique "Iniciar", e o teste assim produzido será executado. Dê um duplo clique sobre um erro na árvore para ver mais informações sobre ele, incluindo o rastreamento de pilha. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_ru.ts b/src/Mod/Test/Gui/Resources/translations/Test_ru.ts index dc50db638..d18d40c78 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_ru.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_ru.ts @@ -1,113 +1,113 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD Unit-ТеÑÑ‚ + FreeCAD UnitTest + FreeCAD Unit-ТеÑÑ‚ - Failures and errors - Сбои и ошибки + Failures and errors + Сбои и ошибки - Description - ОпиÑание + Description + ОпиÑание - &Start - &ЗапуÑк + &Start + &ЗапуÑк - Alt+S - Alt+S + Alt+S + Alt+S - &Help - Помощь + &Help + Помощь - F1 - F1 + F1 + F1 - &About - О программе + &About + О программе - Alt+A - Alt+A + Alt+A + Alt+A - &Close - Закрыть + &Close + Закрыть - Alt+C - Alt+C + Alt+C + Alt+C - Idle - ПроÑтой + Idle + ПроÑтой - Progress - ПрогреÑÑ + Progress + ПрогреÑÑ - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - ОÑталоÑÑŒ: + Remaining: + ОÑталоÑÑŒ: - Errors: - Ошибки: + Errors: + Ошибки: - Failures: - Сбои: + Failures: + Сбои: - Run: - Выполнить: + Run: + Выполнить: - Test - ТеÑтировать + Test + ТеÑтировать - Select test name: - Выберите название теÑта: + Select test name: + Выберите название теÑта: - - + + TestGui::UnitTestDialog - Help - Справка + Help + Справка - About FreeCAD UnitTest - О Unit-теÑте FreeCAD + About FreeCAD UnitTest + О Unit-теÑте FreeCAD - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (C) Вернер Майер + Copyright (C) Вернер Майер FreeCAD UnitTest ÑвлÑетÑÑ Ñ‡Ð°Ñтью FreeCAD и поддерживает напиÑание Unit теÑтов Ð´Ð»Ñ ÑобÑтвенных модулей. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Введите Ð¸Ð¼Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð¾Ð³Ð¾ объекта при вызове которого, бедет возвтащатьÑÑ TestCase. Кликните 'start' и, таким образом, проверка будет выполнена. + Введите Ð¸Ð¼Ñ Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð¾Ð³Ð¾ объекта при вызове которого, бедет возвтащатьÑÑ TestCase. Кликните 'start' и, таким образом, проверка будет выполнена. Выполните двойной щелчок на ошибке в древовидном виджете Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации о ней, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñтек вызовов. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_se.ts b/src/Mod/Test/Gui/Resources/translations/Test_se.ts index 281a1159e..2bade6911 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_se.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_se.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD EnhetsTest + FreeCAD UnitTest + FreeCAD EnhetsTest - Failures and errors - Misslyckanden och fel + Failures and errors + Misslyckanden och fel - Description - Beskrivning + Description + Beskrivning - &Start - &Start + &Start + &Start - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Hjälp + &Help + &Hjälp - F1 - F1 + F1 + F1 - &About - &Om + &About + &Om - Alt+A - Alt+A + Alt+A + Alt+A - &Close - S&täng + &Close + S&täng - Alt+C - Alt+C + Alt+C + Alt+C - Idle - TomgÃ¥ng + Idle + TomgÃ¥ng - Progress - PÃ¥gÃ¥r + Progress + PÃ¥gÃ¥r - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - Kvarvarande: + Remaining: + Kvarvarande: - Errors: - Fel: + Errors: + Fel: - Failures: - Misslyckanden: + Failures: + Misslyckanden: - Run: - Kör: + Run: + Kör: - Test - Test + Test + Test - Select test name: - Välj testnamn: + Select test name: + Välj testnamn: - - + + TestGui::UnitTestDialog - Help - Hjälp + Help + Hjälp - About FreeCAD UnitTest - Om FreeCAD EnhetsTest + About FreeCAD UnitTest + Om FreeCAD EnhetsTest - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD EnhetsTest är en del av FreeCAD och stöder skrivning av EnhetsTester för egna moduler. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Ange namnet pÃ¥ ett anropsbart objekt, som när det anropas, kommer att ge ett TestFall. Klicka pÃ¥'start' och testet som producerats kommer att köras. + Ange namnet pÃ¥ ett anropsbart objekt, som när det anropas, kommer att ge ett TestFall. Klicka pÃ¥'start' och testet som producerats kommer att köras. Dubbelklicka pÃ¥ ett fel i träd-vyn för att se mer information om det, inklusive stackspÃ¥rningen. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_uk.ts b/src/Mod/Test/Gui/Resources/translations/Test_uk.ts index 3084179f2..97de573ff 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_uk.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_uk.ts @@ -1,114 +1,114 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD Модульний ТеÑÑ‚ + FreeCAD UnitTest + FreeCAD Модульний ТеÑÑ‚ - Failures and errors - Збої та помилки + Failures and errors + Збої та помилки - Description - ÐžÐ¿Ð¸Ñ + Description + ÐžÐ¿Ð¸Ñ - &Start - &Старт + &Start + &Старт - Alt+S - Alt+S + Alt+S + Alt+S - &Help - &Допомога + &Help + &Допомога - F1 - F1 + F1 + F1 - &About - &Про + &About + &Про - Alt+A - Alt+A + Alt+A + Alt+A - &Close - &Закрити + &Close + &Закрити - Alt+C - Alt+C + Alt+C + Alt+C - Idle - БездіÑльний + Idle + БездіÑльний - Progress - ÐŸÑ€Ð¾Ð³Ñ€ÐµÑ + Progress + ÐŸÑ€Ð¾Ð³Ñ€ÐµÑ - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - ЗалишилоÑÑŒ: + Remaining: + ЗалишилоÑÑŒ: - Errors: - Помилки: + Errors: + Помилки: - Failures: - Збої: + Failures: + Збої: - Run: - ЗапуÑк: + Run: + ЗапуÑк: - Test - ТеÑÑ‚ + Test + ТеÑÑ‚ - Select test name: - Виберіть назву теÑту: + Select test name: + Виберіть назву теÑту: - - + + TestGui::UnitTestDialog - Help - Допомога + Help + Допомога - About FreeCAD UnitTest - Про Модульний ТеÑÑ‚ FreeCAD + About FreeCAD UnitTest + Про Модульний ТеÑÑ‚ FreeCAD - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer Модульний теÑÑ‚ FreeCAD чаÑтина FreeCAD, підтримує напиÑÐ°Ð½Ð½Ñ ÐœÐ¾Ð´ÑƒÐ»ÑŒÐ½Ð¸Ñ… ТеÑтів Ð´Ð»Ñ Ð²Ð»Ð°Ñних модулів. - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - Введіть ім'Ñ Ð¾Ð±'єкту, при виклику Ñкого, буде повертатиÑÑŒ TestCase. Клікніть 'start' Ñ– таким чином, перевірка буде виконана. + Введіть ім'Ñ Ð¾Ð±'єкту, при виклику Ñкого, буде повертатиÑÑŒ TestCase. Клікніть 'start' Ñ– таким чином, перевірка буде виконана. Подвійний клік по помилці, в деревоподібному переглÑді, покаже додаткову інформацію, включаючи траÑуваннÑ. - + diff --git a/src/Mod/Test/Gui/Resources/translations/Test_zh.ts b/src/Mod/Test/Gui/Resources/translations/Test_zh.ts index 93581ede3..1339d32d7 100644 --- a/src/Mod/Test/Gui/Resources/translations/Test_zh.ts +++ b/src/Mod/Test/Gui/Resources/translations/Test_zh.ts @@ -1,112 +1,112 @@ - - + + TestGui::UnitTest - FreeCAD UnitTest - FreeCAD å•元测试 + FreeCAD UnitTest + FreeCAD å•元测试 - Failures and errors - 失败和错误 + Failures and errors + 失败和错误 - Description - æè¿° + Description + æè¿° - &Start - 开始(&S) + &Start + 开始(&S) - Alt+S - Alt+S + Alt+S + Alt+S - &Help - 帮助(&H) + &Help + 帮助(&H) - F1 - F1 + F1 + F1 - &About - 关于(&A) + &About + 关于(&A) - Alt+A - Alt+A + Alt+A + Alt+A - &Close - 关闭(&C) + &Close + 关闭(&C) - Alt+C - Alt+C + Alt+C + Alt+C - Idle - 空闲 + Idle + 空闲 - Progress - 进度 + Progress + 进度 - <font color="#0000ff">0</font> - <font color="#0000ff">0</font> + <font color="#0000ff">0</font> + <font color="#0000ff">0</font> - Remaining: - 剩余: + Remaining: + 剩余: - Errors: - 错误: + Errors: + 错误: - Failures: - 失败: + Failures: + 失败: - Run: - è¿è¡Œï¼š + Run: + è¿è¡Œï¼š - Test - 测试 + Test + 测试 - Select test name: - 选择测试å称: + Select test name: + 选择测试å称: - - + + TestGui::UnitTestDialog - Help - 帮助 + Help + 帮助 - About FreeCAD UnitTest - 关于FreeCADå•元测试 + About FreeCAD UnitTest + 关于FreeCADå•元测试 - Copyright (c) Werner Mayer + Copyright (c) Werner Mayer FreeCAD UnitTest is part of FreeCAD and supports writing Unit Tests for own modules. - ç‰ˆæƒæ‰€æœ‰(c) Werner Mayer + ç‰ˆæƒæ‰€æœ‰(c) Werner Mayer FreeCAD å•元测试是 FreeCAD 的一部分,并支æŒä¸ºè‡ªèº«æ¨¡å—编写å•元测试。 - Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. + Enter the name of a callable object which, when called, will return a TestCase.Click 'start', and the test thus produced will be run. Double click on an error in the tree view to see more information about it,including the stack trace. - 请输入一个å¯è°ƒç”¨å¯¹è±¡çš„å字,其在被调用时将返回一个测试用例。点击‘开始’,将会è¿è¡Œæ–°äº§ç”Ÿçš„æµ‹è¯•。 + 请输入一个å¯è°ƒç”¨å¯¹è±¡çš„å字,其在被调用时将返回一个测试用例。点击‘开始’,将会è¿è¡Œæ–°äº§ç”Ÿçš„æµ‹è¯•。 åŒå‡»æ ‘视图中的错误å¯ä»¥æŸ¥çœ‹ä¸Žå…¶æœ‰å…³çš„æ›´å¤šå†…容,包括堆栈跟踪信æ¯ã€‚ - + From ee37672dc93e2c6ae53e5f60ddf43ec64cac40da Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 17 Aug 2012 15:36:13 +0200 Subject: [PATCH 61/98] Add a check box to update 3d view or not --- src/Mod/PartDesign/Gui/TaskPadParameters.cpp | 11 +++++++++++ src/Mod/PartDesign/Gui/TaskPadParameters.h | 1 + src/Mod/PartDesign/Gui/TaskPadParameters.ui | 10 ++++++++++ 3 files changed, 22 insertions(+) diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp index c28e35f5a..454d2803e 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp @@ -69,6 +69,8 @@ TaskPadParameters::TaskPadParameters(ViewProviderPad *PadView,QWidget *parent) this, SLOT(onModeChanged(int))); connect(ui->lineFaceName, SIGNAL(textEdited(QString)), this, SLOT(onFaceName(QString))); + connect(ui->checkBoxUpdateView, SIGNAL(toggled(bool)), + this, SLOT(onUpdateView(bool))); this->groupLayout()->addWidget(proxy); @@ -161,6 +163,15 @@ void TaskPadParameters::onSelectionChanged(const Gui::SelectionChanges& msg) } } +void TaskPadParameters::onUpdateView(bool on) +{ + ui->changeMode->blockSignals(!on); + ui->doubleSpinBox->blockSignals(!on); + ui->checkBoxMidplane->blockSignals(!on); + ui->checkBoxReversed->blockSignals(!on); + ui->doubleSpinBox2->blockSignals(!on); +} + void TaskPadParameters::onLengthChanged(double len) { PartDesign::Pad* pcPad = static_cast(PadView->getObject()); diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.h b/src/Mod/PartDesign/Gui/TaskPadParameters.h index 53afdacd0..f4f64d24e 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.h @@ -66,6 +66,7 @@ private Q_SLOTS: void onLength2Changed(double); void onModeChanged(int); void onFaceName(const QString& text); + void onUpdateView(bool); protected: void changeEvent(QEvent *e); diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.ui b/src/Mod/PartDesign/Gui/TaskPadParameters.ui index d1f2601cb..277adba2d 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.ui +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.ui @@ -119,6 +119,16 @@ + + + + Update view + + + true + + + From 2f67e323cb35ab186ff5c78aa16ceb12286eb7f2 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Fri, 17 Aug 2012 16:44:44 -0300 Subject: [PATCH 62/98] Draft: set taskview mode as default --- src/Mod/Draft/DraftGui.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 85c6f8385..9ccaea267 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -185,6 +185,10 @@ class DraftToolBar: self.isTaskOn = False self.fillmode = Draft.getParam("fillmode") self.mask = None + + # set default to taskbar mode + if self.taskmode == None: + self.taskmode = 1 if self.taskmode: # add only a dummy widget, since widgets are created on demand From b68e86ffa5a9dc102c1f2a9e52231ca10c8ec706 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 18 Aug 2012 00:04:54 -0300 Subject: [PATCH 63/98] Arch: small fixes --- src/Mod/Arch/ArchSectionPlane.py | 6 ++++-- src/Mod/Draft/Draft.py | 24 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index d9eecb8e5..6966b88bd 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -242,7 +242,7 @@ class _ArchDrawingView: if hasattr(obj,"Source"): if obj.Source: if obj.Source.Objects: - objs = Draft.getGroupContents(obj.Source.Objects) + objs = Draft.getGroupContents(obj.Source.Objects,walls=True) objs = Draft.removeHidden(objs) self.svg = '' @@ -252,7 +252,7 @@ class _ArchDrawingView: import ArchVRM render = ArchVRM.Renderer() render.setWorkingPlane(obj.Source.Placement) - render.addObjects(Draft.getGroupContents(objs,walls=True)) + render.addObjects(objs) if hasattr(obj,"ShowCut"): render.cut(obj.Source.Shape,obj.ShowCut) else: @@ -336,6 +336,8 @@ class _ArchDrawingView: else: if not self.svg: self.buildSVG(obj) + if not hasattr(self,"svg"): + return '' linewidth = obj.LineWidth/obj.Scale st = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Arch").GetFloat("CutLineThickness") if not st: diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 909aaf916..27320c4a3 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -2746,7 +2746,29 @@ class _Shape2DView: import Drawing, DraftGeomUtils pl = obj.Placement if obj.Base: - if obj.Base.isDerivedFrom("Part::Feature"): + if getType(obj.Base) == "SectionPlane": + if obj.Base.Objects: + import Arch, Part, Drawing + objs = getGroupContents(obj.Base.Objects,walls=True) + objs = removeHidden(objs) + shapes = [] + for o in objs: + if o.isDerivedFrom("Part::Feature"): + shapes.extend(o.Shape.Solids) + cutp,cutv,iv =Arch.getCutVolume(obj.Base.Shape,shapes) + cuts = [] + for sh in shapes: + if sh.Volume < 0: + sh.reverse() + c = sh.cut(cutv) + cuts.extend(c.Solids) + comp = Part.makeCompound(cuts) + opl = FreeCAD.Placement(obj.Base.Placement) + proj = opl.Rotation.multVec(FreeCAD.Vector(0,0,1)) + [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(comp,proj) + if visibleG0: + obj.Shape = visibleG0 + elif obj.Base.isDerivedFrom("Part::Feature"): if not DraftVecUtils.isNull(obj.Projection): [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(obj.Base.Shape,obj.Projection) if visibleG0: From abc5959eeb983285e618414ee49f9c0a2c5791b1 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 18 Aug 2012 11:48:08 +0200 Subject: [PATCH 64/98] Fix confusing informaton in About dialog --- src/Gui/AboutApplication.ui | 26 ++++++++++++++++++++------ src/Gui/Splashscreen.cpp | 11 ++++++++--- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/Gui/AboutApplication.ui b/src/Gui/AboutApplication.ui index 352e62c00..d3f530546 100644 --- a/src/Gui/AboutApplication.ui +++ b/src/Gui/AboutApplication.ui @@ -115,14 +115,14 @@ 6 - + Platform - + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Unknown</span></p></body></html> @@ -171,34 +171,48 @@ - + Branch - + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Unknown</span></p></body></html> - + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Unknown</span></p></body></html> - + Hash + + + + Operating system + + + + + + + <html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:MS Shell Dlg 2; font-size:7.8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><span style=" font-weight:600;">Unknown</span></p></body></html> + + + diff --git a/src/Gui/Splashscreen.cpp b/src/Gui/Splashscreen.cpp index 46f1183e9..bf207b38e 100644 --- a/src/Gui/Splashscreen.cpp +++ b/src/Gui/Splashscreen.cpp @@ -235,7 +235,7 @@ AboutDialog::~AboutDialog() delete ui; } -static QString getPlatform() +static QString getOperatingSystem() { #if defined (Q_OS_WIN32) switch(QSysInfo::windowsVersion()) @@ -309,9 +309,13 @@ void AboutDialog::setupLabels() date.replace(QString::fromAscii("Unknown"), disda); ui->labelBuildDate->setText(date); + QString os = ui->labelBuildOS->text(); + os.replace(QString::fromAscii("Unknown"), getOperatingSystem()); + ui->labelBuildOS->setText(os); + QString platform = ui->labelBuildPlatform->text(); platform.replace(QString::fromAscii("Unknown"), - QString::fromAscii("%1 (%2-bit)").arg(getPlatform()).arg(QSysInfo::WordSize)); + QString::fromAscii("%1-bit").arg(QSysInfo::WordSize)); ui->labelBuildPlatform->setText(platform); // branch name @@ -399,7 +403,8 @@ void AboutDialog::on_copyButton_clicked() QString major = QString::fromAscii(config["BuildVersionMajor"].c_str()); QString minor = QString::fromAscii(config["BuildVersionMinor"].c_str()); QString build = QString::fromAscii(config["BuildRevision"].c_str()); - str << "Platform: " << getPlatform() << " (" << QSysInfo::WordSize << "-bit)" << endl; + str << "OS: " << getOperatingSystem() << endl; + str << "Platform: " << QSysInfo::WordSize << "-bit" << endl; str << "Version: " << major << "." << minor << "." << build << endl; it = config.find("BuildRevisionBranch"); if (it != config.end()) From bdb55d789bdac7d2be9843c96c8aff4e7f9e93bd Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 19 Aug 2012 18:09:30 -0300 Subject: [PATCH 65/98] PartDesign: Changed groove and pocket icons --- .../Gui/Resources/icons/PartDesign_Groove.svg | 229 +++++++++++++----- .../Gui/Resources/icons/PartDesign_Pocket.svg | 35 +-- 2 files changed, 195 insertions(+), 69 deletions(-) diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg index 2c1ca60aa..28e52af97 100644 --- a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg @@ -17,9 +17,38 @@ inkscape:version="0.48.3.1 r9886" sodipodi:docname="PartDesign_Groove.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.1"> + version="1.1" + inkscape:export-filename="/home/yorik/PartDesign_Groove.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + + + + + + + + + - - + gradientTransform="matrix(0.97680237,0,0,0.96003508,1.4694319,0.12765765)" /> + + + + + + + + + + + + inkscape:window-width="1280" + inkscape:window-height="777" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:snap-global="true" + inkscape:snap-nodes="true" + inkscape:object-paths="false" + inkscape:object-nodes="true" /> @@ -124,21 +210,56 @@ id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> - - - + + + + + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg index 8d8b1803c..17460ccbb 100644 --- a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg @@ -1,5 +1,6 @@ + + inkscape:output_extension="org.inkscape.output.svg.inkscape" + inkscape:export-filename="/home/yorik/PartDesign_Pocket.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> @@ -490,9 +494,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="8" - inkscape:cx="33.452538" - inkscape:cy="36.164445" + inkscape:zoom="2" + inkscape:cx="60.53903" + inkscape:cy="-18.846351" inkscape:current-layer="text3796" showgrid="true" inkscape:document-units="px" @@ -510,7 +514,7 @@ image/svg+xml - + @@ -523,30 +527,31 @@ style="font-size:54.21519089000000236px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ff2600;fill-opacity:1;stroke:#731200;font-family:Arial;-inkscape-font-specification:Arial;color:#000000;fill-rule:nonzero;stroke-width:2.19132471;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" id="text3796"> + sodipodi:nodetypes="czcczccc" + inkscape:connector-curvature="0" /> From b27e6e6bf6e518a9511aed8e902bbed1daa3e7eb Mon Sep 17 00:00:00 2001 From: Joachim Zettler Date: Mon, 20 Aug 2012 21:30:17 +0200 Subject: [PATCH 66/98] Some changes in GUI --- src/Mod/Machining_Distortion/postprocess.py | 121 ++++---- src/Mod/Machining_Distortion/postprocess.ui | 279 ++++++++---------- .../Machining_Distortion/postprocess_gui.py | 85 ++++-- 3 files changed, 245 insertions(+), 240 deletions(-) diff --git a/src/Mod/Machining_Distortion/postprocess.py b/src/Mod/Machining_Distortion/postprocess.py index 79fa4a9d7..250c81414 100755 --- a/src/Mod/Machining_Distortion/postprocess.py +++ b/src/Mod/Machining_Distortion/postprocess.py @@ -2,17 +2,22 @@ # Form implementation generated from reading ui file 'postprocess.ui' # -# Created: Wed Jan 26 13:34:56 2011 -# by: PyQt4 UI code generator 4.7.4 +# Created: Mon Aug 20 15:18:09 2012 +# by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui +try: + _fromUtf8 = QtCore.QString.fromUtf8 +except AttributeError: + _fromUtf8 = lambda s: s + class Ui_dialog(object): def setupUi(self, dialog): - dialog.setObjectName("dialog") - dialog.resize(380, 170) + dialog.setObjectName(_fromUtf8("dialog")) + dialog.resize(425, 240) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -20,76 +25,70 @@ class Ui_dialog(object): dialog.setSizePolicy(sizePolicy) dialog.setMinimumSize(QtCore.QSize(0, 0)) self.gridLayout_2 = QtGui.QGridLayout(dialog) - self.gridLayout_2.setObjectName("gridLayout_2") - self.groupBox_2 = QtGui.QGroupBox(dialog) - self.groupBox_2.setObjectName("groupBox_2") - self.gridLayout = QtGui.QGridLayout(self.groupBox_2) - self.gridLayout.setObjectName("gridLayout") - self.check_fly_to_buy_7 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_7.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_7.setChecked(False) - self.check_fly_to_buy_7.setObjectName("check_fly_to_buy_7") - self.gridLayout.addWidget(self.check_fly_to_buy_7, 0, 0, 1, 1) - self.check_fly_to_buy_4 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_4.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_4.setChecked(False) - self.check_fly_to_buy_4.setObjectName("check_fly_to_buy_4") - self.gridLayout.addWidget(self.check_fly_to_buy_4, 0, 1, 1, 1) - spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout.addItem(spacerItem, 1, 0, 1, 1) - spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout.addItem(spacerItem1, 1, 1, 1, 1) - self.check_fly_to_buy_8 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_8.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_8.setChecked(False) - self.check_fly_to_buy_8.setObjectName("check_fly_to_buy_8") - self.gridLayout.addWidget(self.check_fly_to_buy_8, 2, 0, 1, 1) - self.check_fly_to_buy_2 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_2.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_2.setChecked(False) - self.check_fly_to_buy_2.setObjectName("check_fly_to_buy_2") - self.gridLayout.addWidget(self.check_fly_to_buy_2, 2, 1, 1, 1) - spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout.addItem(spacerItem2, 3, 0, 1, 1) - spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout.addItem(spacerItem3, 3, 1, 1, 1) - self.check_fly_to_buy_5 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_5.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_5.setChecked(False) - self.check_fly_to_buy_5.setObjectName("check_fly_to_buy_5") - self.gridLayout.addWidget(self.check_fly_to_buy_5, 4, 0, 1, 1) - self.check_fly_to_buy_3 = QtGui.QCheckBox(self.groupBox_2) - self.check_fly_to_buy_3.setMinimumSize(QtCore.QSize(148, 18)) - self.check_fly_to_buy_3.setChecked(False) - self.check_fly_to_buy_3.setObjectName("check_fly_to_buy_3") - self.gridLayout.addWidget(self.check_fly_to_buy_3, 4, 1, 1, 1) - self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 2) + self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) self.buttonBox = QtGui.QDialogButtonBox(dialog) self.buttonBox.setOrientation(QtCore.Qt.Vertical) self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) - self.buttonBox.setObjectName("buttonBox") - self.gridLayout_2.addWidget(self.buttonBox, 0, 2, 1, 1) + self.buttonBox.setObjectName(_fromUtf8("buttonBox")) + self.gridLayout_2.addWidget(self.buttonBox, 0, 3, 1, 1) self.button_select_results_folder = QtGui.QPushButton(dialog) - self.button_select_results_folder.setObjectName("button_select_results_folder") - self.gridLayout_2.addWidget(self.button_select_results_folder, 1, 0, 1, 1) + self.button_select_results_folder.setObjectName(_fromUtf8("button_select_results_folder")) + self.gridLayout_2.addWidget(self.button_select_results_folder, 3, 0, 1, 1) self.button_start_postprocessing = QtGui.QPushButton(dialog) self.button_start_postprocessing.setEnabled(False) self.button_start_postprocessing.setMinimumSize(QtCore.QSize(0, 23)) - self.button_start_postprocessing.setObjectName("button_start_postprocessing") - self.gridLayout_2.addWidget(self.button_start_postprocessing, 1, 1, 1, 1) + self.button_start_postprocessing.setObjectName(_fromUtf8("button_start_postprocessing")) + self.gridLayout_2.addWidget(self.button_start_postprocessing, 3, 1, 1, 1) + self.groupBox_2 = QtGui.QGroupBox(dialog) + self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) + self.verticalLayout_2 = QtGui.QVBoxLayout(self.groupBox_2) + self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) + self.check_abs_disp_x = QtGui.QRadioButton(self.groupBox_2) + self.check_abs_disp_x.setObjectName(_fromUtf8("check_abs_disp_x")) + self.verticalLayout_2.addWidget(self.check_abs_disp_x) + spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem) + self.check_abs_disp_y = QtGui.QRadioButton(self.groupBox_2) + self.check_abs_disp_y.setObjectName(_fromUtf8("check_abs_disp_y")) + self.verticalLayout_2.addWidget(self.check_abs_disp_y) + spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem1) + self.check_abs_disp_z = QtGui.QRadioButton(self.groupBox_2) + self.check_abs_disp_z.setObjectName(_fromUtf8("check_abs_disp_z")) + self.verticalLayout_2.addWidget(self.check_abs_disp_z) + self.gridLayout_2.addWidget(self.groupBox_2, 0, 0, 1, 1) + self.groupBox_3 = QtGui.QGroupBox(dialog) + self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) + self.verticalLayout_3 = QtGui.QVBoxLayout(self.groupBox_3) + self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) + self.check_rot_x = QtGui.QRadioButton(self.groupBox_3) + self.check_rot_x.setObjectName(_fromUtf8("check_rot_x")) + self.verticalLayout_3.addWidget(self.check_rot_x) + spacerItem2 = QtGui.QSpacerItem(20, 33, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem2) + self.check_rot_y = QtGui.QRadioButton(self.groupBox_3) + self.check_rot_y.setObjectName(_fromUtf8("check_rot_y")) + self.verticalLayout_3.addWidget(self.check_rot_y) + spacerItem3 = QtGui.QSpacerItem(20, 34, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) + self.verticalLayout_3.addItem(spacerItem3) + self.check_rot_z = QtGui.QRadioButton(self.groupBox_3) + self.check_rot_z.setObjectName(_fromUtf8("check_rot_z")) + self.verticalLayout_3.addWidget(self.check_rot_z) + self.gridLayout_2.addWidget(self.groupBox_3, 0, 1, 1, 1) self.retranslateUi(dialog) QtCore.QMetaObject.connectSlotsByName(dialog) def retranslateUi(self, dialog): dialog.setWindowTitle(QtGui.QApplication.translate("dialog", "Machining Distortion Prediction", None, QtGui.QApplication.UnicodeUTF8)) - self.groupBox_2.setTitle(QtGui.QApplication.translate("dialog", "Output Elements", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_7.setText(QtGui.QApplication.translate("dialog", "Max Displacement X", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_4.setText(QtGui.QApplication.translate("dialog", "Min Displacement X", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_8.setText(QtGui.QApplication.translate("dialog", "Max Displacement Y", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_2.setText(QtGui.QApplication.translate("dialog", "Min Displacement Y", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_5.setText(QtGui.QApplication.translate("dialog", "Max Displacement Z", None, QtGui.QApplication.UnicodeUTF8)) - self.check_fly_to_buy_3.setText(QtGui.QApplication.translate("dialog", "Min Displacement Z", None, QtGui.QApplication.UnicodeUTF8)) self.button_select_results_folder.setText(QtGui.QApplication.translate("dialog", "Select Results Folder", None, QtGui.QApplication.UnicodeUTF8)) self.button_start_postprocessing.setText(QtGui.QApplication.translate("dialog", "Start Postprocessing", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox_2.setTitle(QtGui.QApplication.translate("dialog", "Select Z-Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.check_abs_disp_x.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement X", None, QtGui.QApplication.UnicodeUTF8)) + self.check_abs_disp_y.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement Y", None, QtGui.QApplication.UnicodeUTF8)) + self.check_abs_disp_z.setText(QtGui.QApplication.translate("dialog", "Absolute Displacement Z", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox_3.setTitle(QtGui.QApplication.translate("dialog", "Select Y-Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.check_rot_x.setText(QtGui.QApplication.translate("dialog", "Rotation around X-Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.check_rot_y.setText(QtGui.QApplication.translate("dialog", "Rotation around Y-Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.check_rot_z.setText(QtGui.QApplication.translate("dialog", "Rotation around Z-Axis", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/src/Mod/Machining_Distortion/postprocess.ui b/src/Mod/Machining_Distortion/postprocess.ui index f4d23a117..fdd46ed19 100755 --- a/src/Mod/Machining_Distortion/postprocess.ui +++ b/src/Mod/Machining_Distortion/postprocess.ui @@ -6,8 +6,8 @@ 0 0 - 380 - 170 + 425 + 240
@@ -26,164 +26,7 @@ Machining Distortion Prediction - - - - Output Elements - - - - - - - 148 - 18 - - - - Max Displacement X - - - false - - - - - - - - 148 - 18 - - - - Min Displacement X - - - false - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 148 - 18 - - - - Max Displacement Y - - - false - - - - - - - - 148 - 18 - - - - Min Displacement Y - - - false - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 148 - 18 - - - - Max Displacement Z - - - false - - - - - - - - 148 - 18 - - - - Min Displacement Z - - - false - - - - - - - + Qt::Vertical @@ -193,14 +36,14 @@ - + Select Results Folder - + false @@ -216,6 +59,118 @@ + + + + Select Z-Axis + + + + + + Absolute Displacement X + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Absolute Displacement Y + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Absolute Displacement Z + + + + + + + + + + Select Y-Axis + + + + + + Rotation around X-Axis + + + + + + + Qt::Vertical + + + + 20 + 33 + + + + + + + + Rotation around Y-Axis + + + + + + + Qt::Vertical + + + + 20 + 34 + + + + + + + + Rotation around Z-Axis + + + + + + diff --git a/src/Mod/Machining_Distortion/postprocess_gui.py b/src/Mod/Machining_Distortion/postprocess_gui.py index 4ad1cfbce..cf5d3ef19 100755 --- a/src/Mod/Machining_Distortion/postprocess_gui.py +++ b/src/Mod/Machining_Distortion/postprocess_gui.py @@ -42,7 +42,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): ltc_coeff = [] sigini = True for root, dirs, files in os.walk(str(self.dirname)): - if 'geometry_fe_input.frd' in files: + if 'final_fe_input.frd' in files: bbox_orig,\ bbox_distorted,\ relationship,\ @@ -51,7 +51,7 @@ class MyForm(QtGui.QDialog,Ui_dialog): max_disp_y,\ min_disp_y,\ max_disp_z,\ - min_disp_z = calculix_postprocess(os.path.join(root,'geometry_fe_input.frd')) + min_disp_z = calculix_postprocess(os.path.join(root,'final_fe_input.frd')) if sigini: sigini = False lc_coeff,ltc_coeff = get_sigini_values(os.path.join(root,'sigini_input.txt')) @@ -102,35 +102,86 @@ class MyForm(QtGui.QDialog,Ui_dialog): def start_gnu_plot(self,list,lc_coeff,ltc_coeff): + filename = "graph" + title = "Absolut Displacement in " + x_axis_label ="" + y_axis_label="" + z_axis_label="" + #define all the different variations that could occur and assign proper variable names + if self.check_abs_disp_x.isChecked(): + filename = filename + "_max_disp_x" + title = title + "X vs. " + z_axis_label = "Abs Displacement in X-Direction" + abs_disp_column = 12 + if self.check_abs_disp_y.isChecked(): + filename = filename + "_max_disp_y" + title = title + "Y vs. " + z_axis_label = "Abs Displacement in Y-Direction" + abs_disp_column = 13 + if self.check_abs_disp_z.isChecked(): + filename = filename + "_max_disp_z" + title = title + "Z vs. " + z_axis_label = "Abs Displacement in Z-Direction" + abs_disp_column = 14 + + #The Z-Level Offset is fix and therefore the corresponding variables are predefined: + filename = filename + "_offset_z" + title = title + "Z-Level Offset " + x_axis_label = "Z-Offset" + offset_column = 1 + + if self.check_rot_x.isChecked(): + filename = filename + "_rotation_x" + title = title + "and Rotation around X-Axis" + y_axis_label = "Rotation around X-Axis" + rot_column = 2 + if self.check_rot_y.isChecked(): + filename = filename + "_rotation_y" + title = title + "and Rotation around Y-Axis" + y_axis_label = "Rotation around Y-Axis" + rot_column = 3 + if self.check_rot_z.isChecked(): + filename = filename + "_rotation_z" + title = title + "and Rotation around Z-Axis" + y_axis_label = "Rotation around Z-Axis" + rot_column = 4 + + + gnu_plot_input_file = open(str(self.dirname + "/gnu_plot_input.txt"),"wb") gnu_plot_input_file.write( "set term png\n" + - "set output \"max_disp_z.png\"\n"+ + "set output \"" + filename + ".png\"\n"+ "set surface\n" + "set grid\n"+ "set hidden3d\n"+ "set dgrid3d " + str(len(list)-1) + "," + str(len(list)-1) + ",100\n" + "set view 80,05,1.3,1.0\n"+ - "set title \"Abs Displacement in Z vs. Z-Level Offset and Rotation around Z-Axis\" 0,-2\n"+ + "set title \"" + title + "\" offset 0,-2\n"+ "show title\n"+ - "set pm3d\n"+ - "set label \"L Coefficients used for the calculation:" + lc_coeff[0] + "," + lc_coeff[1] + "," + lc_coeff[2] + "," + lc_coeff[3] + "," + lc_coeff[4] + "," + lc_coeff[5][:-1] + "\" at screen 0.1, screen 0.95 left\n"+ - "set label \"LT Coefficients used for the calculation:" + ltc_coeff[0] + "," + ltc_coeff[1] + "," + ltc_coeff[2] + "," + ltc_coeff[3] + "," + ltc_coeff[4] + "," + ltc_coeff[5][:-1] + "\" at screen 0.1, screen 0.93 left\n"+ - "set label \"Z-Offset\\nin [mm]\" at screen 0.5, screen 0.1 center rotate by 0\n"+ - "set label \"Rotation around Z-Axis\\nin [" + str(chr(248)) +"]\" at screen 0.91, screen 0.2 center rotate by 50\n"+ - "set label \"Max Displacement Z direction\\nin [mm]\" at screen 0.03, screen 0.5 center rotate by 90\n"+ - "set xtics nomirror\n"+ - "splot \"postprocessing_input.txt\" u 1:4:14 with pm3d title \"\"\n" + + "set label \"Fly to Buy Ratio = " + str( + "set label \"L Coefficients used for the calculation:" + lc_coeff[0] + "," + lc_coeff[1] + "," + lc_coeff[2] + "," + lc_coeff[3] + "," + lc_coeff[4] + "," + lc_coeff[5][:-1] + "\" at screen 0.1, screen 0.95 left font \"Arial,8\"\n"+ + "set label \"LT Coefficients used for the calculation:" + ltc_coeff[0] + "," + ltc_coeff[1] + "," + ltc_coeff[2] + "," + ltc_coeff[3] + "," + ltc_coeff[4] + "," + ltc_coeff[5][:-1] + "\" at screen 0.1, screen 0.93 left font \"Arial,8\"\n"+ + "set label \"" + x_axis_label + "\\nin [mm]\" at screen 0.5, screen 0.1 center rotate by 0\n"+ + "set label \"" + y_axis_label +"\\nin [" + str(chr(248)) +"]\" at screen 0.91, screen 0.2 center rotate by 50\n"+ + "set label \"" + z_axis_label + "\\nin [mm]\" at screen 0.03, screen 0.5 center rotate by 90\n"+ + "set xtics in nomirror offset character 0,-0.5\n"+ + "splot \"postprocessing_input.txt\" u " + str(offset_column) + ":" + str(rot_column) + ":" + str(abs_disp_column) + " with pm3d title \"\"\n" + "exit" ) - - - + gnu_plot_input_file.close() os.chdir(str(self.dirname)) fnull = open(os.devnull, 'w') - commandline = "gnuplot gnu_plot_input.txt" + commandline = FreeCAD.getHomePath() + "gnuplot gnu_plot_input.txt" result = subprocess.call(commandline, shell = True, stdout = fnull, stderr = fnull) fnull.close() - + self.button_start_postprocessing.setEnabled(False) + #Reset all radio buttons + self.check_rot_x.setChecked(False) + self.check_rot_y.setChecked(False) + self.check_rot_z.setChecked(False) + self.check_abs_disp_x.setChecked(False) + self.check_abs_disp_y.setChecked(False) + self.check_abs_disp_z.setChecked(False) From 4498765f029c9fec364cb332bd72ba11b7014ef5 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 21 Aug 2012 19:38:00 -0300 Subject: [PATCH 67/98] New splashscreen and windowsinstaller bmps --- src/Gui/Icons/freecadsplash.png | Bin 121441 -> 148474 bytes .../Bitmaps/BackgroundBitmap.png | Bin 0 -> 93173 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/WindowsInstaller/Bitmaps/BackgroundBitmap.png diff --git a/src/Gui/Icons/freecadsplash.png b/src/Gui/Icons/freecadsplash.png index 465aa7ce97127f80c4c3d7d92ef62bcad00ad8f1..a0e8ad13dd843711641790d227ab448ee244febb 100644 GIT binary patch literal 148474 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 g!OHUdv2x)DI*|SsgzbP_ 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 Y|6clYU19(}Pyhe`07*qoM6N<$g24cSi~s-t diff --git a/src/WindowsInstaller/Bitmaps/BackgroundBitmap.png b/src/WindowsInstaller/Bitmaps/BackgroundBitmap.png new file mode 100644 index 0000000000000000000000000000000000000000..8567d8d172c732a8d81c7fe7d906463680ba06b2 GIT binary patch literal 93173 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

I>NwX~QZ}!{X!*0mP5QzX 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 literal 0 HcmV?d00001 From 230ccd7b819e7056e1b1b9c6e999d16374335393 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 27 Aug 2012 13:22:45 +0200 Subject: [PATCH 68/98] Improve documentation for isInside() --- src/Mod/Part/App/TopoShapePy.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/App/TopoShapePy.xml b/src/Mod/Part/App/TopoShapePy.xml index c144c1986..222bfd204 100644 --- a/src/Mod/Part/App/TopoShapePy.xml +++ b/src/Mod/Part/App/TopoShapePy.xml @@ -296,7 +296,12 @@ The parameter is a list of shapes. - Checks whether a point is inside or outside a given shape + Checks whether a point is inside or outside the shape. +isInside(App.Vector, float, Boolean) => Boolean +The App.Vector is the point you want to check if it's inside or not +float gives the tolerance +Boolean indicates if the point lying directly on a face is considered to be inside or not + From f3865e7efeaf76a37b21c082a86ba9b1a7445542 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 28 Aug 2012 10:46:41 +0200 Subject: [PATCH 69/98] Fix crash when loading projects built with Kene's Buildes module --- src/App/PropertyPythonObject.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/App/PropertyPythonObject.cpp b/src/App/PropertyPythonObject.cpp index aa5534e61..1b8d14652 100644 --- a/src/App/PropertyPythonObject.cpp +++ b/src/App/PropertyPythonObject.cpp @@ -294,6 +294,7 @@ void PropertyPythonObject::Restore(Base::XMLReader &reader) else { bool load_json=false; bool load_pickle=false; + bool load_failed=false; std::string buffer = reader.getAttribute("value"); if (reader.hasAttribute("encoded") && strcmp(reader.getAttribute("encoded"),"yes") == 0) { @@ -312,7 +313,16 @@ void PropertyPythonObject::Restore(Base::XMLReader &reader) end = buffer.end(); if (reader.hasAttribute("module") && reader.hasAttribute("class")) { Py::Module mod(PyImport_ImportModule(reader.getAttribute("module")),true); - this->object = PyInstance_NewRaw(mod.getAttr(reader.getAttribute("class")).ptr(), 0); + PyObject* cls = mod.getAttr(reader.getAttribute("class")).ptr(); + if (PyClass_Check(cls)) { + this->object = PyInstance_NewRaw(cls, 0); + } + else if (PyType_Check(cls)) { + this->object = PyType_GenericAlloc((PyTypeObject*)cls, 0); + } + else { + throw Py::TypeError("neither class nor type object"); + } load_json = true; } else if (boost::regex_search(start, end, what, pickle)) { @@ -327,6 +337,8 @@ void PropertyPythonObject::Restore(Base::XMLReader &reader) catch (Py::Exception&) { Base::PyException e; // extract the Python error text Base::Console().Warning("PropertyPythonObject::Restore: %s\n", e.what()); + this->object = Py::None(); + load_failed = true; } aboutToSetValue(); @@ -334,7 +346,7 @@ void PropertyPythonObject::Restore(Base::XMLReader &reader) this->fromString(buffer); else if (load_pickle) this->loadPickle(buffer); - else + else if (!load_failed) Base::Console().Warning("PropertyPythonObject::Restore: unsupported serialisation: %s\n", buffer.c_str()); restoreObject(reader); hasSetValue(); From 4cd1be2dafb5d3286812c7a5d2a208d1bebb32fb Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 29 Aug 2012 13:33:27 +0200 Subject: [PATCH 70/98] Fix title is task panel for rectangular pattern --- src/Mod/PartDesign/Gui/TaskPatternRectangularParameters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mod/PartDesign/Gui/TaskPatternRectangularParameters.cpp b/src/Mod/PartDesign/Gui/TaskPatternRectangularParameters.cpp index e836e6932..5ef0a2a96 100644 --- a/src/Mod/PartDesign/Gui/TaskPatternRectangularParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPatternRectangularParameters.cpp @@ -44,7 +44,7 @@ using namespace Gui; /* TRANSLATOR PartDesignGui::TaskPatternRectangularParameters */ TaskPatternRectangularParameters::TaskPatternRectangularParameters(QWidget *parent) - : TaskBox(Gui::BitmapFactory().pixmap("document-new"),tr("TaskPatternRectangularParameters"),true, parent) + : TaskBox(Gui::BitmapFactory().pixmap("document-new"),tr("Parameters rectangular pattern"),true, parent) { // we need a separate container widget to add all controls to proxy = new QWidget(this); From 549f4dfa2691507be18935f330d5fa1b51e835e5 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 29 Aug 2012 16:34:31 +0200 Subject: [PATCH 71/98] Add TKFeat to OCC_LIBRARIES --- cMake/UseLibPack6x.cmake | 45 ++++++++++++++++++++-------------------- cMake/UseLibPack7x.cmake | 45 ++++++++++++++++++++-------------------- cMake/UseLibPack8x.cmake | 45 ++++++++++++++++++++-------------------- 3 files changed, 69 insertions(+), 66 deletions(-) diff --git a/cMake/UseLibPack6x.cmake b/cMake/UseLibPack6x.cmake index 7e4916cc6..738404e4c 100644 --- a/cMake/UseLibPack6x.cmake +++ b/cMake/UseLibPack6x.cmake @@ -278,28 +278,29 @@ set(ODE_FOUND TRUE) # OCC set(OCC_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include/OpenCascade) set(OCC_LIBRARIES - TKFillet - TKMesh - TKernel - TKG2d - TKG3d - TKMath - TKIGES - TKSTL - TKShHealing - TKXSBase - TKBool - TKBO - TKBRep - TKTopAlgo - TKGeomAlgo - TKGeomBase - TKOffset - TKPrim - TKSTEP - TKSTEPBase - TKSTEPAttr - TKHLR + TKFillet + TKMesh + TKernel + TKG2d + TKG3d + TKMath + TKIGES + TKSTL + TKShHealing + TKXSBase + TKBool + TKBO + TKBRep + TKTopAlgo + TKGeomAlgo + TKGeomBase + TKOffset + TKPrim + TKSTEP + TKSTEPBase + TKSTEPAttr + TKHLR + TKFeat ) set(OCC_LIBRARY_DIR ${FREECAD_LIBPACK_DIR}/lib diff --git a/cMake/UseLibPack7x.cmake b/cMake/UseLibPack7x.cmake index 7b8e71b94..b74fc595c 100644 --- a/cMake/UseLibPack7x.cmake +++ b/cMake/UseLibPack7x.cmake @@ -284,28 +284,29 @@ set(OPENCV_FOUND TRUE) # OCC set(OCC_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include/OpenCascade) set(OCC_LIBRARIES - TKFillet - TKMesh - TKernel - TKG2d - TKG3d - TKMath - TKIGES - TKSTL - TKShHealing - TKXSBase - TKBool - TKBO - TKBRep - TKTopAlgo - TKGeomAlgo - TKGeomBase - TKOffset - TKPrim - TKSTEP - TKSTEPBase - TKSTEPAttr - TKHLR + TKFillet + TKMesh + TKernel + TKG2d + TKG3d + TKMath + TKIGES + TKSTL + TKShHealing + TKXSBase + TKBool + TKBO + TKBRep + TKTopAlgo + TKGeomAlgo + TKGeomBase + TKOffset + TKPrim + TKSTEP + TKSTEPBase + TKSTEPAttr + TKHLR + TKFeat ) set(OCC_LIBRARY_DIR ${FREECAD_LIBPACK_DIR}/lib diff --git a/cMake/UseLibPack8x.cmake b/cMake/UseLibPack8x.cmake index d75740064..f77a3afcd 100644 --- a/cMake/UseLibPack8x.cmake +++ b/cMake/UseLibPack8x.cmake @@ -284,16 +284,16 @@ set(OPENCV_FOUND TRUE) # OCC set(OCC_INCLUDE_DIR ${FREECAD_LIBPACK_DIR}/include/OpenCascade) set(OCC_LIBRARIES - TKFillet - TKMesh - TKernel - TKG2d - TKG3d - TKMath - TKIGES - TKSTL - TKShHealing - TKXSBase + TKFillet + TKMesh + TKernel + TKG2d + TKG3d + TKMath + TKIGES + TKSTL + TKShHealing + TKXSBase TKBool TKXSBase TKXCAF @@ -302,18 +302,19 @@ set(OCC_LIBRARIES TKSTEP TKIGES TKXDESTEP - TKXDEIGES - TKBO - TKBRep - TKTopAlgo - TKGeomAlgo - TKGeomBase - TKOffset - TKPrim - TKSTEP - TKSTEPBase - TKSTEPAttr - TKHLR + TKXDEIGES + TKBO + TKBRep + TKTopAlgo + TKGeomAlgo + TKGeomBase + TKOffset + TKPrim + TKSTEP + TKSTEPBase + TKSTEPAttr + TKHLR + TKFeat ) set(OCC_LIBRARY_DIR ${FREECAD_LIBPACK_DIR}/lib From 57b633f21fc55dd3d98e36b6a87e2e324beae585 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 30 Aug 2012 11:31:46 +0200 Subject: [PATCH 72/98] 0000818: [PATCH] added new page to Customize dialog for space navigator --- .../GuiApplicationNativeEventAwareWin32.cpp | 5 +- src/Gui/CMakeLists.txt | 5 + src/Gui/DlgCustomizeSpNavSettings.cpp | 310 ++++++++++ src/Gui/DlgCustomizeSpNavSettings.h | 85 +++ src/Gui/DlgCustomizeSpNavSettings.ui | 534 ++++++++++++++++++ src/Gui/DlgCustomizeSpaceball.cpp | 2 +- src/Gui/GuiApplicationNativeEventAware.cpp | 5 +- src/Gui/Icons/SpNav-PanLR.png | Bin 0 -> 1977 bytes src/Gui/Icons/SpNav-PanUD.png | Bin 0 -> 1488 bytes src/Gui/Icons/SpNav-Roll.png | Bin 0 -> 2615 bytes src/Gui/Icons/SpNav-Spin.png | Bin 0 -> 2257 bytes src/Gui/Icons/SpNav-Tilt.png | Bin 0 -> 1929 bytes src/Gui/Icons/SpNav-Zoom.png | Bin 0 -> 2204 bytes src/Gui/Icons/resource.qrc | 6 + src/Gui/SpaceballEvent.cpp | 140 ++++- src/Gui/SpaceballEvent.h | 3 + src/Gui/resource.cpp | 2 + 17 files changed, 1080 insertions(+), 17 deletions(-) create mode 100644 src/Gui/DlgCustomizeSpNavSettings.cpp create mode 100644 src/Gui/DlgCustomizeSpNavSettings.h create mode 100644 src/Gui/DlgCustomizeSpNavSettings.ui create mode 100644 src/Gui/Icons/SpNav-PanLR.png create mode 100644 src/Gui/Icons/SpNav-PanUD.png create mode 100644 src/Gui/Icons/SpNav-Roll.png create mode 100644 src/Gui/Icons/SpNav-Spin.png create mode 100644 src/Gui/Icons/SpNav-Tilt.png create mode 100644 src/Gui/Icons/SpNav-Zoom.png diff --git a/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp b/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp index 425a7af7a..4403fd22b 100644 --- a/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp +++ b/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp @@ -202,8 +202,9 @@ void Gui::GUIApplicationNativeEventAware::Move3d(HANDLE device, std::vectorsetTranslations(x, y, z); - motionEvent->setRotations(rx, ry, rz); + //motionEvent->setTranslations(x, y, z); + //motionEvent->setRotations(rx, ry, rz); + motionEvent->setMotionData(x, y, z, rx, ry, rz); this->postEvent(currentWidget, motionEvent); } diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index b4bf7c5a5..ed70b71d6 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -104,6 +104,7 @@ set(Gui_MOC_HDRS DlgCommandsImp.h DlgCustomizeImp.h DlgCustomizeSpaceball.h + DlgCustomizeSpNavSettings.h DlgDisplayPropertiesImp.h DlgEditorImp.h DlgGeneralImp.h @@ -190,6 +191,7 @@ SET(Gui_UIC_SRCS DlgAuthorization.ui DlgChooseIcon.ui DlgCommands.ui + DlgCustomizeSpNavSettings.ui DlgDisplayProperties.ui DlgEditor.ui DlgGeneral.ui @@ -338,6 +340,7 @@ SET(Dialog_Customize_CPP_SRCS DlgCommandsImp.cpp DlgCustomizeImp.cpp DlgCustomizeSpaceball.cpp + DlgCustomizeSpNavSettings.cpp DlgKeyboardImp.cpp DlgToolbarsImp.cpp ) @@ -346,6 +349,7 @@ SET(Dialog_Customize_HPP_SRCS DlgCommandsImp.h DlgCustomizeImp.h DlgCustomizeSpaceball.h + DlgCustomizeSpNavSettings.h DlgKeyboardImp.h DlgToolbarsImp.h ) @@ -355,6 +359,7 @@ SET(Dialog_Customize_SRCS DlgActions.ui DlgChooseIcon.ui DlgCommands.ui + DlgCustomizeSpNavSettings.ui DlgKeyboard.ui DlgToolbars.ui ) diff --git a/src/Gui/DlgCustomizeSpNavSettings.cpp b/src/Gui/DlgCustomizeSpNavSettings.cpp new file mode 100644 index 000000000..9a7113737 --- /dev/null +++ b/src/Gui/DlgCustomizeSpNavSettings.cpp @@ -0,0 +1,310 @@ +/*************************************************************************** + * Copyright (c) 2012 Petar Perisin * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + +#include "PreCompiled.h" + +#include "DlgCustomizeSpNavSettings.h" +#include "GuiApplicationNativeEventAware.h" +#include "Application.h" + + +using namespace Gui::Dialog; + +DlgCustomizeSpNavSettings::DlgCustomizeSpNavSettings(QWidget *parent) : + CustomizeActionPage(parent) +{ + GUIApplicationNativeEventAware *app = qobject_cast(QApplication::instance()); + + if (!app) + return; + if (!app->isSpaceballPresent()) + { + this->setWindowTitle(tr("Spaceball Motion")); + this->setMessage(tr("No Spaceball Present")); + return; + } + this->setupUi(this); + initialize(); +} + +DlgCustomizeSpNavSettings::~DlgCustomizeSpNavSettings() +{ +} + +void DlgCustomizeSpNavSettings::setMessage(const QString& message) +{ + QLabel *messageLabel = new QLabel(message,this); + QVBoxLayout *layout = new QVBoxLayout(); + QHBoxLayout *layout2 = new QHBoxLayout(); + layout2->addStretch(); + layout2->addWidget(messageLabel); + layout2->addStretch(); + layout->addItem(layout2); + this->setLayout(layout); +} + + +void DlgCustomizeSpNavSettings::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); +} + +ParameterGrp::handle DlgCustomizeSpNavSettings::spaceballMotionGroup() const +{ + static ParameterGrp::handle group = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Spaceball")->GetGroup("Motion"); + return group; +} + +void DlgCustomizeSpNavSettings::on_ButtonCalibrate_clicked() +{ + spaceballMotionGroup()->SetBool("Calibrate", true); +} + +void DlgCustomizeSpNavSettings::initialize() +{ + CBDominant->setChecked(spaceballMotionGroup()->GetBool("Dominant", false)); + CBFlipYZ->setChecked(spaceballMotionGroup()->GetBool("FlipYZ", false)); + CBRotations->setChecked(spaceballMotionGroup()->GetBool("Rotations", true)); + CBTranslations->setChecked(spaceballMotionGroup()->GetBool("Translations", true)); + SliderGlobal->setValue(spaceballMotionGroup()->GetInt("GlobalSensitivity", 0)); + + CBEnablePanLR ->setChecked(spaceballMotionGroup()->GetBool("PanLREnable", true)); + CBReversePanLR->setChecked(spaceballMotionGroup()->GetBool("PanLRReverse", false)); + SliderPanLR ->setValue(spaceballMotionGroup()->GetInt("PanLRSensitivity", 0)); + + CBEnablePanUD ->setChecked(spaceballMotionGroup()->GetBool("PanUDEnable", true)); + CBReversePanUD->setChecked(spaceballMotionGroup()->GetBool("PanUDReverse", false)); + SliderPanUD ->setValue(spaceballMotionGroup()->GetInt("PanUDSensitivity", 0)); + + CBEnableZoom ->setChecked(spaceballMotionGroup()->GetBool("ZoomEnable", true)); + CBReverseZoom->setChecked(spaceballMotionGroup()->GetBool("ZoomReverse", false)); + SliderZoom ->setValue(spaceballMotionGroup()->GetInt("ZoomSensitivity", 0)); + + CBEnableTilt ->setChecked(spaceballMotionGroup()->GetBool("TiltEnable", true)); + CBReverseTilt->setChecked(spaceballMotionGroup()->GetBool("TiltReverse", false)); + SliderTilt ->setValue(spaceballMotionGroup()->GetInt("TiltSensitivity", 0)); + + CBEnableRoll ->setChecked(spaceballMotionGroup()->GetBool("RollEnable", true)); + CBReverseRoll->setChecked(spaceballMotionGroup()->GetBool("RollReverse", false)); + SliderRoll ->setValue(spaceballMotionGroup()->GetInt("RollSensitivity", 0)); + + CBEnableSpin ->setChecked(spaceballMotionGroup()->GetBool("SpinEnable", true)); + CBReverseSpin->setChecked(spaceballMotionGroup()->GetBool("SpinReverse", false)); + SliderSpin ->setValue(spaceballMotionGroup()->GetInt("SpinSensitivity", 0)); + + CBEnableTilt ->setEnabled(CBRotations->isChecked()); + CBReverseTilt->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked()); + SliderTilt ->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked()); + CBEnableRoll ->setEnabled(CBRotations->isChecked()); + CBReverseRoll->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked()); + SliderRoll ->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked()); + CBEnableSpin ->setEnabled(CBRotations->isChecked()); + CBReverseSpin->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked()); + SliderSpin ->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked()); + + CBEnablePanLR ->setEnabled(CBTranslations->isChecked()); + CBReversePanLR->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked()); + SliderPanLR ->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked()); + CBEnablePanUD ->setEnabled(CBTranslations->isChecked()); + CBReversePanUD->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked()); + SliderPanUD ->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked()); + CBEnableZoom ->setEnabled(CBTranslations->isChecked()); + CBReverseZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked()); + SliderZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_ButtonDefaultSpNavMotions_clicked() +{ + spaceballMotionGroup()->Clear(); + initialize(); +} + +void DlgCustomizeSpNavSettings::on_CBDominant_clicked() +{ + spaceballMotionGroup()->SetBool("Dominant", CBDominant->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBFlipYZ_clicked() +{ + spaceballMotionGroup()->SetBool("FlipYZ", CBFlipYZ->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBRotations_clicked() +{ + spaceballMotionGroup()->SetBool("Rotations", CBRotations->isChecked()); + + CBEnableTilt ->setEnabled(CBRotations->isChecked()); + CBReverseTilt->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked()); + SliderTilt ->setEnabled(CBRotations->isChecked() && CBEnableTilt->isChecked()); + CBEnableRoll ->setEnabled(CBRotations->isChecked()); + CBReverseRoll->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked()); + SliderRoll ->setEnabled(CBRotations->isChecked() && CBEnableRoll->isChecked()); + CBEnableSpin ->setEnabled(CBRotations->isChecked()); + CBReverseSpin->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked()); + SliderSpin ->setEnabled(CBRotations->isChecked() && CBEnableSpin->isChecked()); + +} + +void DlgCustomizeSpNavSettings::on_CBTranslations_clicked() +{ + spaceballMotionGroup()->SetBool("Translations", CBTranslations->isChecked()); + + CBEnablePanLR ->setEnabled(CBTranslations->isChecked()); + CBReversePanLR->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked()); + SliderPanLR ->setEnabled(CBTranslations->isChecked() && CBEnablePanLR->isChecked()); + CBEnablePanUD ->setEnabled(CBTranslations->isChecked()); + CBReversePanUD->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked()); + SliderPanUD ->setEnabled(CBTranslations->isChecked() && CBEnablePanUD->isChecked()); + CBEnableZoom ->setEnabled(CBTranslations->isChecked()); + CBReverseZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked()); + SliderZoom ->setEnabled(CBTranslations->isChecked() && CBEnableZoom->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderGlobal_sliderReleased() +{ + spaceballMotionGroup()->SetInt("GlobalSensitivity", SliderGlobal->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnablePanLR_clicked() +{ + spaceballMotionGroup()->SetBool("PanLREnable", CBEnablePanLR->isChecked()); + + CBReversePanLR->setEnabled(CBEnablePanLR->isChecked()); + SliderPanLR ->setEnabled(CBEnablePanLR->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReversePanLR_clicked() +{ + spaceballMotionGroup()->SetBool("PanLRReverse", CBReversePanLR->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderPanLR_sliderReleased() +{ + spaceballMotionGroup()->SetInt("PanLRSensitivity", SliderPanLR->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnablePanUD_clicked() +{ + spaceballMotionGroup()->SetBool("PanUDEnable", CBEnablePanUD->isChecked()); + + CBReversePanUD->setEnabled(CBEnablePanUD->isChecked()); + SliderPanUD ->setEnabled(CBEnablePanUD->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReversePanUD_clicked() +{ + spaceballMotionGroup()->SetBool("PanUDReverse", CBReversePanUD->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderPanUD_sliderReleased() +{ + spaceballMotionGroup()->SetInt("PanUDSensitivity", SliderPanUD->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnableZoom_clicked() +{ + spaceballMotionGroup()->SetBool("ZoomEnable", CBEnableZoom->isChecked()); + + CBReverseZoom ->setEnabled(CBEnableZoom->isChecked()); + SliderZoom ->setEnabled(CBEnableZoom->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReverseZoom_clicked() +{ + spaceballMotionGroup()->SetBool("ZoomReverse", CBReverseZoom->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderZoom_sliderReleased() +{ + spaceballMotionGroup()->SetInt("ZoomSensitivity", SliderZoom->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnableTilt_clicked() +{ + spaceballMotionGroup()->SetBool("TiltEnable", CBEnableTilt->isChecked()); + + CBReverseTilt->setEnabled(CBEnableTilt->isChecked()); + SliderTilt ->setEnabled(CBEnableTilt->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReverseTilt_clicked() +{ + spaceballMotionGroup()->SetBool("TiltReverse", CBReverseTilt->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderTilt_sliderReleased() +{ + spaceballMotionGroup()->SetInt("TiltSensitivity", SliderTilt->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnableRoll_clicked() +{ + spaceballMotionGroup()->SetBool("RollEnable", CBEnableRoll->isChecked()); + + CBReverseRoll->setEnabled(CBEnableRoll->isChecked()); + SliderRoll ->setEnabled(CBEnableRoll->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReverseRoll_clicked() +{ + spaceballMotionGroup()->SetBool("RollReverse", CBReverseRoll->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderRoll_sliderReleased() +{ + spaceballMotionGroup()->SetInt("RollSensitivity", SliderRoll->value()); +} + +void DlgCustomizeSpNavSettings::on_CBEnableSpin_clicked() +{ + spaceballMotionGroup()->SetBool("SpinEnable", CBEnableSpin->isChecked()); + + CBReverseSpin->setEnabled(CBEnableSpin->isChecked()); + SliderSpin ->setEnabled(CBEnableSpin->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_CBReverseSpin_clicked() +{ + spaceballMotionGroup()->SetBool("SpinReverse", CBReverseSpin->isChecked()); +} + +void DlgCustomizeSpNavSettings::on_SliderSpin_sliderReleased() +{ + spaceballMotionGroup()->SetInt("SpinSensitivity", SliderSpin->value()); +} + +void DlgCustomizeSpNavSettings::onAddMacroAction(const QByteArray ¯oName) +{ + //don't think I need to do anything here. +} + +void DlgCustomizeSpNavSettings::onRemoveMacroAction(const QByteArray ¯oName) +{ + //don't think I need to do anything here. +} + +void DlgCustomizeSpNavSettings::onModifyMacroAction(const QByteArray ¯oName) +{ + //don't think I need to do anything here. +} + +#include "moc_DlgCustomizeSpNavSettings.cpp" \ No newline at end of file diff --git a/src/Gui/DlgCustomizeSpNavSettings.h b/src/Gui/DlgCustomizeSpNavSettings.h new file mode 100644 index 000000000..6966094d5 --- /dev/null +++ b/src/Gui/DlgCustomizeSpNavSettings.h @@ -0,0 +1,85 @@ +/*************************************************************************** + * Copyright (c) 2012 Petar Perisin * + * * + * This file is part of the FreeCAD CAx development system. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Library General Public * + * License as published by the Free Software Foundation; either * + * version 2 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Library General Public License for more details. * + * * + * You should have received a copy of the GNU Library General Public * + * License along with this library; see the file COPYING.LIB. If not, * + * write to the Free Software Foundation, Inc., 59 Temple Place, * + * Suite 330, Boston, MA 02111-1307, USA * + * * + ***************************************************************************/ + + +#ifndef DLGCUSTOMIZESPNAVSETTINGS_H +#define DLGCUSTOMIZESPNAVSETTINGS_H + +#include "ui_DlgCustomizeSpNavSettings.h" +#include "PropertyPage.h" +#include + +namespace Gui +{ + namespace Dialog + { + class DlgCustomizeSpNavSettings : public CustomizeActionPage, public Ui_DlgCustomizeSpNavSettings + { + Q_OBJECT + + public: + explicit DlgCustomizeSpNavSettings(QWidget *parent = 0); + ~DlgCustomizeSpNavSettings(); + + + protected Q_SLOTS: + void onAddMacroAction(const QByteArray&); + void onRemoveMacroAction(const QByteArray&); + void onModifyMacroAction(const QByteArray&); + void on_CBDominant_clicked(); + void on_CBFlipYZ_clicked(); + void on_CBRotations_clicked(); + void on_CBTranslations_clicked(); + void on_SliderGlobal_sliderReleased(); + void on_CBEnablePanLR_clicked(); + void on_CBReversePanLR_clicked(); + void on_SliderPanLR_sliderReleased(); + void on_CBEnablePanUD_clicked(); + void on_CBReversePanUD_clicked(); + void on_SliderPanUD_sliderReleased(); + void on_CBEnableZoom_clicked(); + void on_CBReverseZoom_clicked(); + void on_SliderZoom_sliderReleased(); + void on_CBEnableTilt_clicked(); + void on_CBReverseTilt_clicked(); + void on_SliderTilt_sliderReleased(); + void on_CBEnableRoll_clicked(); + void on_CBReverseRoll_clicked(); + void on_SliderRoll_sliderReleased(); + void on_CBEnableSpin_clicked(); + void on_CBReverseSpin_clicked(); + void on_SliderSpin_sliderReleased(); + void on_ButtonDefaultSpNavMotions_clicked(); + void on_ButtonCalibrate_clicked(); + + protected: + void changeEvent(QEvent *e); + + private: + ParameterGrp::handle spaceballMotionGroup() const; + void setMessage(const QString& message); + void initialize(); + }; + } +} + +#endif // DLGCUSTOMIZESPNAVSETTINGS_H diff --git a/src/Gui/DlgCustomizeSpNavSettings.ui b/src/Gui/DlgCustomizeSpNavSettings.ui new file mode 100644 index 000000000..504468780 --- /dev/null +++ b/src/Gui/DlgCustomizeSpNavSettings.ui @@ -0,0 +1,534 @@ + + + DlgCustomizeSpNavSettings + + + + 0 + 0 + 439 + 537 + + + + Spaceball Motion + + + + + + + + Global Sensitivity: + + + + + + + -50 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + + + + + + + Dominant Mode + + + + + + + Flip Y/Z + + + + + + + + + + + Enable Translations + + + true + + + + + + + Enable Rotations + + + true + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Calibrate + + + + + + + Default + + + + + + + + + Qt::Vertical + + + + 20 + 116 + + + + + + + + + + + + + + + :/icons/SpNav-PanLR.png + + + + + + + + + + :/icons/SpNav-PanUD.png + + + + + + + + + + :/icons/SpNav-Zoom.png + + + + + + + + + + :/icons/SpNav-Tilt.png + + + + + + + + + + :/icons/SpNav-Roll.png + + + + + + + + + + :/icons/SpNav-Spin.png + + + + + + + + + 20 + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + 0 + + + + + Enable + + + true + + + + + + + Reverse + + + + + + + + + + + 30 + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + -50 + + + 50 + + + 1 + + + 1 + + + 0 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 10 + + + + + + + + + + + + + + + diff --git a/src/Gui/DlgCustomizeSpaceball.cpp b/src/Gui/DlgCustomizeSpaceball.cpp index 4fa00ba4e..8a7dc5aae 100644 --- a/src/Gui/DlgCustomizeSpaceball.cpp +++ b/src/Gui/DlgCustomizeSpaceball.cpp @@ -525,7 +525,7 @@ DlgCustomizeSpaceball::DlgCustomizeSpaceball(QWidget *parent) : CustomizeActionPage(parent), buttonView(0), buttonModel(0), commandView(0), commandModel(0), clearButton(0), printReference(0) { - this->setWindowTitle(tr("Spaceball")); + this->setWindowTitle(tr("Spaceball Buttons")); GUIApplicationNativeEventAware *app = qobject_cast(QApplication::instance()); if (!app) return; diff --git a/src/Gui/GuiApplicationNativeEventAware.cpp b/src/Gui/GuiApplicationNativeEventAware.cpp index f14beb3bb..6f9485ee1 100644 --- a/src/Gui/GuiApplicationNativeEventAware.cpp +++ b/src/Gui/GuiApplicationNativeEventAware.cpp @@ -143,8 +143,9 @@ bool Gui::GUIApplicationNativeEventAware::x11EventFilter(XEvent *event) if (navEvent.type == SPNAV_EVENT_MOTION) { Spaceball::MotionEvent *motionEvent = new Spaceball::MotionEvent(); - motionEvent->setTranslations(navEvent.motion.x, navEvent.motion.y, navEvent.motion.z); - motionEvent->setRotations(navEvent.motion.rx, navEvent.motion.ry, navEvent.motion.rz); + // motionEvent->setTranslations(navEvent.motion.x, navEvent.motion.y, navEvent.motion.z); + // motionEvent->setRotations(navEvent.motion.rx, navEvent.motion.ry, navEvent.motion.rz); + motionEvent->setMotionData(navEvent.motion.x, navEvent.motion.y, navEvent.motion.z, navEvent.motion.rx, navEvent.motion.ry, navEvent.motion.rz); this->postEvent(currentWidget, motionEvent); return true; } diff --git a/src/Gui/Icons/SpNav-PanLR.png b/src/Gui/Icons/SpNav-PanLR.png new file mode 100644 index 0000000000000000000000000000000000000000..c70a16f58c60a8e3e92618e1f203429213e78504 GIT binary patch literal 1977 zcmV;q2S)gbP)KRM zRG~b;OA!=R1;Gmi`VLe?yr2pJ2~vf)6{Sj=LK`J+YP(6iMT!(DQlvcd56x7v*yK)=^5aShQDHS5E^NB_b7)5N|gkB|;7W zG{cLT7p0V6DVNK?h)%#wOGW444@m9UYz1)6+}aIS#R%FAHaji0*GiNL(@N zW+_2Y@k0pFY%7(@m$qB&{}U;r_mAE&&^OSv!7U3y2#$6>+J@&zNBnxybJ3QW-)z;1 zy`S1U4j>a%^7|&GP$)FdyU>*ze{%e}{m<@S%pT01HJ%x3^_(&0%b^KLT5Xb)5Wf~z zQ(SdK#6b}JpZ`BWH*m>o^j}Kg%_}av8i+2_Ghf3Z(x_j$6r8r*1%)e)vgpEBu z_Lwu`d`4#FLD?=xgi{}&@eEAG7|{BhW8N&m&=thnM__v31(h5*m&-UUkjg! zo*QF8M9^BJTCJk8RN1%Z(LImsx_j5R0jzr=NrKEu0s$N_f~8=AeSXcq&y6czo$zSkC`L!%G1?`i+KGvquVZ<7Gm?PdMV4Yt|@M4L!dnO@cafLg8gb7uaQ zWm&Lod(D8O`5`Hxh6;<`8=m{V58w9@1OdFjJ1rdXi0V=sFB)7YNOh@hB6`psus=EW zv$5wZla=>Y&#(TdGF5qL`sDOtV))ntcCP1{o|m1^IuF$B8rMp-a0V%9W;emF!r2W6 z;`=_d*3eq78N8GdQc5VLpp(^9DuHSQtN^N0!Ds{1ZW06wXr;qWoQ*3Y zoN)jMf&i_Ej)zNBF_AEP0|1OP2&^EPi4{O)6wHc&(FU*qV;P9s1v0%E0s}C06}2QK zDmMgxPy*H+R>&|oV0f>2Fc%D*ryY>JUa|U2ofM_iVA4_?4l-0jG~aBNYhp=v3;@K0 zfO=RZW=roS54EKltYHhPPXQ+KJ>6PWYn37hB#9cd(3%c4;xcnz2KYEodA$PXpaYl$ zLhFOOH@<|%$=S@v#glVvC%v!vy%v$Jh80v-gAC1yd90xl(UKJJU*3xPkosNbuFO4< z7?d4SK*T<3>U5FV*bEcV_oMzI9MooepQw8kkz5`Pp@s+QwPBBJy0)4%1lK2<08=qw z&8{x%3wlYPZb{1IvB?UK;jy7ZLw4uqJKOz9|8eIY=bO&m&L9K;Q(uUPh#^6VE~oy# zK`G@R5pn2jlL!e{n03i;1I08B5<RL@p_QoB-nUbKnQ zTQ9!l#mf;}+WX|Q`N4tj3>>mNB_+Agt?qroP%*}UnPH4+9$ISzK>(}IdZz!W{?pL0u@FplD0_?z?=maqRee?e ze)(_9$It)f{69A%q!RHCFE9boPTq^xqrAcdFkTv z%JS7hp@8M(<^S4h$H@`VvrxB&}osk2!N7OzO%ZzdNO)#_!GmJ`s>uW zP!Z97?r7z=$RO9!P=X$8P{ zqh*7nr8jQ%lk9v{JxN}tk*Jx7&J)q=(ar1oh1^b3`uh6dy6)fG+uJ*Y5cf$bTh>I9 zd`OhEsJTl>!c0V@wLVKk2VB>!Tu*rHs8Z(U=1?dUP%4$a;rsq!&-133*=(gIyOp9- z*lMk>d7k&vxw*NqAP5$2iNbY0pNH$Z$mjDmfI%WUNa*d}+t@4p z3BYqf5d33)etroz2s`?_Pd=X?1F(;X?ra#m9Dq(CL^hIGYs`Gj7_(@Mxd`BG0B2m+ z{d1_48&Sbeks?Kk6e&`q_@Hs*$PsHtZT>BSS}KhcDN>|Jar5CnfNre`jFDT{00000 LNkvXXu0mjf6xgd| literal 0 HcmV?d00001 diff --git a/src/Gui/Icons/SpNav-PanUD.png b/src/Gui/Icons/SpNav-PanUD.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ba44fc94288b6bf7a3564fc4eef77a52679bd3 GIT binary patch literal 1488 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 Z@n6do1a#|Z>M#HR002ovPDHLkV1iG=-d+Fz literal 0 HcmV?d00001 diff --git a/src/Gui/Icons/SpNav-Spin.png b/src/Gui/Icons/SpNav-Spin.png new file mode 100644 index 0000000000000000000000000000000000000000..8d198097b9c2459ed6786a16e885ad0238691bbc GIT binary patch literal 2257 zcmV;?2rl=DP)arcsinY7$i{AV7WSON9c6i$F*e9{NXJ%&ZE>gly4-E|s1Nb^KKgY}#5kUxnC=pSFq(s}y+%y2b z5aKx^`i*Vd(}RP9n4O*7_@spHlF#SAqm(*AL{>lmQ@}z<#_f>OXfg%o(lCsl*|z;` z+&xzU#!8b?sZ@~9=fADB{)K3Ogb)xyP^c6ly2(QIBz+cnh9dV8Gk>h7r$^4r%)DJF z6i}&DHoW_AR1I-u#1#_9EffQ-b@Q5S+bcc>u?oR;Uu=e3?50_{#kC}IqwgIW8hZ4u z2(%+3BaRRv6G}d=jyqLK&}OBSwr$(o&`K#5ivR$n)RRd;HQr8AP}2QL&j27PXpmd}I`O=5yI)BIgW z3K5M((`R@L2bFMt3n@_-ir*)M*tJ@H7pth0!;4j~i`6mlSQ95UAm;JAWZESpMimFPKd7m7zXtSA;>U{miQ12w71$ih`J3kLn+mCE2R{)R;)F-N>xY8 z<@)svT#QWPJR4St3QTpm@__E}B`Q)-D6J3&4O!J9hlEYumPOy#OG+ zYuA@HPD(D7UP|rT_w2j9y;~1RS!RF}Nm*=t6DKCBn55?#?-w9q?(6&1R~~pk9JKA1 z4+2lbKkdm_DO&#{x1RoE`&1!k_2VdSc&xd}>@4Xv*SgAj|Z zh?5GqF#fb|BPeL?!?HG^ukR7n-Mzi8^@63f!>QC@S2{iNxyzS-^?TPvea!>y$VkrI zvgIf5rBdS$0x6bqj+83FG))jO3?mIG=ioRW!gbF=>oSNWm>bq^OXUU$3}y=E%>a=F zq8z%qcA~p`H!N!tlyU(ue19H>(FN1&VL-z7?enG5(cRP2SLB+KvVZ?G$Gf`^Jj$G9 zAVWkM0I6Ug0=|C-!#$~IMHnu9Qm9Ebz} zfyVx~56_zga}R_VhGlIAvkxKa04iX10r*VhQLT3N&54N@KfPw8?A`m#!@a$a{Fyn+ zL|Fnd0MY0757jW-G`CT@WG%(;Nce z18~7y15ph?1wa{q2fzn&orx+mH+SNzXU_cPkE@=2ip3(BWw|k!BvLtW4IOk|!?KD& zOgCcjodS!JqJyIhOhrrv?`$Zp{jMfc@E&_PzbM{z_L-WR!s*k;-chOyB82nVLd*@j z6_NKd~-1CA*Gu{%@_ljSh&>N*E^$g4+ywx#5lhfE;J? zH2}3Wty2~j{`s`l^)`b^QqEGt8pYnR6s6EjN3A`~&!7DMnig+`LIL;P_sTh~>la!_ z%u8r5g)9*xV`<7^W@h%M?z!jbkHTLU)`XPl>1n+F`gXYPN3Q|~F((nT7$KpX(GpyS zT9nXkD9m6YL9RRX_qX19f|vW3jXPZ>cON?RQq?p^7|0M{1!*{iM%!!_UpI`}1W+9z zPX{K0ql#pm&^!S3AZ%0vt3jzbOicWs-}5lPrtTA_W&n=sp8F9qQz-XFMaq$ZEhi%- z%~^76Y1A_md^f>$|NElnVSc%;b4R3v(yY}!I10FR*PUR`y9grU*6hNIWr`(|Lv7M8 zvF~4j>rOIYNGYA4NBg%fJ8!eIAC~+2h6|a@wnL`b1t~95rSkp{0Z%Gb*=iU$gQzRw zO5s8{DNb-CMMt+1h!K=(%yszwzu|eMH(mE%&jUS=S=L?=YP5GJ8xmf z_wWDl_3rLH{mdGtPk&~6xr|Ey(A$fxV`I-eZkpr!Of&zWW$hdgBHIO!*)XIU{a_tY z6$7dcu&ecK-S;oom700KUO)9tsdV%W$7#G9z~I9VzjsZD3|#lPJaOW?>6p*1&nDC6 z&6@)^I`sk(zE-c7zL3deOXYGU{L|j$vuBU|I;zgm(cM-i^N?X#qlRJR4WbljT?^6? z1Mu1R&&%1_-+9-rHKT1jp24=KuFucEaxjzGam;bf9S5M-;*Wy26LcwB$E@M^HdTKo f!L@@9ZXf>xQ8II4@zB`S00000NkvXXu0mjfOIIfk literal 0 HcmV?d00001 diff --git a/src/Gui/Icons/SpNav-Tilt.png b/src/Gui/Icons/SpNav-Tilt.png new file mode 100644 index 0000000000000000000000000000000000000000..73f072ec404e9b5e6539df03b8623ba05e51dcd0 GIT binary patch literal 1929 zcmV;42X^?0P)cg6JB{>6i99~KjW$N7vvh54?pL2W%s%Rae!z(n-{55OT*{c5b)32nY|H@fKDkZGHUR-R zLXZX^&dki$bt-jCE0t%@d)--Bc*2e}DPv>zyg!}3a20@)%~Hp8pDtNjg0(ghJP%X~ zvjSjF6^oyJ6F>?u6ONPlD1etoniQf8Gf$2a=?ows%7G{ct!02+`fa2@v^A#G^g97S z!~=7NN8Ua}0)QwClqe0NBLM7e2no7Jv>v$|A4(oPa8lOSfBA;%zVw4ss_VJGgc0r*PdCg0f$* zy1Gh3uat7Re42tZZmU=0>D}yM~{92%qOAsqun{s?H?VG2YB8kh+M(a(p--$5fNjI zU0q$(L#>pshA_rFMBS(Z#b_)q{~pG?2G6_LB}DFEia_wZ$3XNlYPER~Z7T!-`M&?~ z;96+Nl#)P9rVx-J0NWHNaUz$xGN!yy&SjArwn7#~l=m_;b{ zK?G|o)Mpuj>wXu&3#ixUx{FPKF$P;(TX0<$#+Vl!$N7opdHZgEg#$t=l>#$=hM6HE zFvh@I3lT!I`7dNLX#i_b>U>Wb+X}f1U=}xS{1wJn_`VO%^I(htfbM1M+kNLo6&4{jB>JItyNzr%JG}OB90$2v?tZ1z&$QM;L=@(d!DQ?RbYSl2w@>7_ zh{%T%iNu@DX7kmdv`@8Kh39!kMC7_sYJ!<5tWBc9i^vWV29@>Ue$+PMupZi~JH(4I z#v!6(>+9=lLua2_tp*~RWadmXj|>900 zN~ujElHDxRZ;hzELSpVD4|T5*rBoZh;(o5(?psc2Hk)X*T3Ztn6U5B-?UhGD3q|b{ zRY`bG|M3CyBO;>jH5!fQn$6~LCfahjjOFF!tLb!l1Hi|%*1Nv#y^?51T4<~Oi6Rlf z7z1O>lZ{5>oB4bmola+X>y&D>idwCPVzF2xqUVyy$i=^b P00000NkvXXu0mjfO}~G@ literal 0 HcmV?d00001 diff --git a/src/Gui/Icons/SpNav-Zoom.png b/src/Gui/Icons/SpNav-Zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..39686bca445d42828d5a90dd78a99b9937bacfb0 GIT binary patch literal 2204 zcmV;N2xIq&P)(23A?(Xw`pXd4Bdk3t?daTE4j$|^q4q+}J?GLuE1F@sysgB)S z4{RMy)F-M}!ug2hI&j;gZPV&_qP;n?E%G;i)L-AUujxudV?$uMQ)=0u^#7$F)u^rs zw}#);x9xbwKb&i`dR1C}vK%nTv|Geb5?GJFPy#zOlewUG;>?~h(f zb*7LV&aS@5m(E;5`xEU)gZBiFnGc(gnAp>k z13d$t7GBSwTs?Octq--{U$eF5ms*F$>J}Aja^;N;!1rw*af*@Lo$P74w<&aJ@Q`Ov z$g>vw`L@l~+pGJHW`q3){eA2v%cis^yWEm%IStDHJ1YMDZw~59n$AhMrl-KH4?yrZH-ijIS6l zH<;CHE`6eiwq=p+2Y}8$cK$Z_K=2#$?Nj_m@#*fzyMGTr#GJx%>xhK!ce#r;S|s1HfYDo55gk+u-2f#ENgp$z&2kLqmwi z(_1=GwYy_fN;B60AS+T-yLw68A6DzOeWK_DwGnB$GIX5qFIjhPCzQbaDia} z?`1NXE_*OmY)z@FtNW@O$Urp5aJ{brE zdVM}0gb=e*!5-;5rB4M_%uDW!yz5<-ZX@0I+G>u+tV4hl2xa;A&3bGX0XX}e0>mX)`2)y%v_A`vk2 zCZEsufublZgdq2YEySm|Exo(WXquMG=kt+ZFo;5-uyU0Wi9|3lF#$zUo-Bi)`TRyD zSaYe!@jDA4s>0#$19qXFFOD8P3II5AiCxrN`s;Vrdq)KUVH%hTPldTrh zG;PJOuIm{hYMq#v7+)Zmz=;zlN}fWA#bQwaA4(~MHV|jgbdGi|U5o9`aU<#$*Jaj#(*8&`7oxmZ>P&(&ev z%CI|(`_9o3I(VFO*YK|kTp%aWf;a6Gnvfccs#!7K4nQCo7UFWR!J$h0eC?O zu~$))8B4#A=}5c7=(-NevMgqPg_(~t^Nma+&6KoLUe-=(wK``TF{L{B=Mz6g)Pvj^-=ZB5%64mMoA z@Z$?w=j)xX1Ro3@obwFIj0$fR4qE4|Q`)fRAAfheacE%Z@|uFOJ zCGdElYQBB6GuoKUNk1gQ#dPs>?~A=pd2z0uy`Q2_>O+VE6s8(dsA@qYrcw-52%#F# zMzp~-mp%=thIr!}jcFO3zJViU{zJ3QfB=dYiWhqx>)8?r1W+oK){atc4cruiuhyr2>D6O6QR>&9a@x{mQNPk?x;6g%2}()P8DKiv2-Gc(Q6m&;y;&HtEYPpYSG z3RAbeJV#I8&ENjkcJ#m4|GUX^liw#v#B)6BAR=a+DR(BfdkRyxQ_rS69XQXGVn6ro z`g7N*z^4OG1DK^4W@Z?m+rPT~?B(Y#zlvoD&)?0@=kox7kO-ajZT9U|V#>!H55AZb zqT>1D&(q&c|Ds?OmV=4+N^wRQVSn4(ZN0wDzK=6A6NrlM6i;^V@BY?uo|jn8gLho( zm>NGd{#h$$-6lb#-PHQJ_jiA%D4hMLa+0000Tree_Dimension.svg Tree_Python.svg spaceball_button.svg + SpNav-PanLR.png + SpNav-PanUD.png + SpNav-Roll.png + SpNav-Spin.png + SpNav-Tilt.png + SpNav-Zoom.png diff --git a/src/Gui/SpaceballEvent.cpp b/src/Gui/SpaceballEvent.cpp index 55efa7a27..7b93ade1a 100644 --- a/src/Gui/SpaceballEvent.cpp +++ b/src/Gui/SpaceballEvent.cpp @@ -22,6 +22,7 @@ #include "PreCompiled.h" #include "SpaceballEvent.h" +#include "Application.h" using namespace Spaceball; @@ -40,15 +41,132 @@ MotionEvent::MotionEvent() : EventBase(static_cast(MotionEventType MotionEvent::MotionEvent(const MotionEvent& in) : EventBase(static_cast(MotionEventType)) { - xTrans = in.xTrans; - yTrans = in.yTrans; - zTrans = in.zTrans; - xRot = in.xRot; - yRot = in.yRot; - zRot = in.zRot; + int motionDataArray[6] = {in.xTrans, in.yTrans, in.zTrans, in.xRot, in.yRot, in.zRot}; + importSettings(motionDataArray); handled = in.handled; } +float MotionEvent::convertPrefToSensitivity(int value) +{ + if (value < 0) + { + return ((0.6/50)*float(value) + 1); + } + else + { + return ((1.1/50)*float(value) + 1); + } +} + +void MotionEvent::importSettings(int* motionDataArray) +{ + ParameterGrp::handle group = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Spaceball")->GetGroup("Motion"); + + // here I import settings from a dialog. For now they are set as is + bool dominant = group->GetBool("Dominant"); // Is dominant checked + bool flipXY = group->GetBool("FlipYZ");; // Is Flip X/Y checked + float generalSensitivity = convertPrefToSensitivity(group->GetInt("GlobalSensitivity")); + + // array that has stored info about "Enabled" checkboxes of all axes + bool enabled[6]; + enabled[0] = group->GetBool("Translations", true) && group->GetBool("PanLREnable", true); + enabled[1] = group->GetBool("Translations", true) && group->GetBool("PanUDEnable", true); + enabled[2] = group->GetBool("Translations", true) && group->GetBool("ZoomEnable", true); + enabled[3] = group->GetBool("Rotations", true) && group->GetBool("TiltEnable", true); + enabled[4] = group->GetBool("Rotations", true) && group->GetBool("RollEnable", true); + enabled[5] = group->GetBool("Rotations", true) && group->GetBool("SpinEnable", true); + + // array that has stored info about "Reversed" checkboxes of all axes + bool reversed[6]; + reversed[0] = group->GetBool("PanLRReverse"); + reversed[1] = group->GetBool("PanUDReverse"); + reversed[2] = group->GetBool("ZoomReverse"); + reversed[3] = group->GetBool("TiltReverse"); + reversed[4] = group->GetBool("RollReverse"); + reversed[5] = group->GetBool("SpinReverse"); + + // array that has stored info about sliders - on each slider you need to use method DlgSpaceballSettings::GetValuefromSlider + // which will convert <-50, 50> linear integers from slider to <0.1, 10> exponential floating values + float sensitivity[6]; + sensitivity[0] = convertPrefToSensitivity(group->GetInt("PanLRSensitivity")); + sensitivity[1] = convertPrefToSensitivity(group->GetInt("PanUDSensitivity")); + sensitivity[2] = convertPrefToSensitivity(group->GetInt("ZoomSensitivity")); + sensitivity[3] = convertPrefToSensitivity(group->GetInt("TiltSensitivity")); + sensitivity[4] = convertPrefToSensitivity(group->GetInt("RollSensitivity")); + sensitivity[5] = convertPrefToSensitivity(group->GetInt("SpinSensitivity")); + + int i; + + if (group->GetBool("Calibrate")) + { + group->SetInt("CalibrationX",motionDataArray[0]); + group->SetInt("CalibrationY",motionDataArray[1]); + group->SetInt("CalibrationZ",motionDataArray[2]); + group->SetInt("CalibrationXr",motionDataArray[3]); + group->SetInt("CalibrationYr",motionDataArray[4]); + group->SetInt("CalibrationZr",motionDataArray[5]); + + group->RemoveBool("Calibrate"); + + return; + } + else + { + motionDataArray[0] = motionDataArray[0] - group->GetInt("CalibrationX"); + motionDataArray[1] = motionDataArray[1] - group->GetInt("CalibrationY"); + motionDataArray[2] = motionDataArray[2] - group->GetInt("CalibrationZ"); + motionDataArray[3] = motionDataArray[3] - group->GetInt("CalibrationXr"); + motionDataArray[4] = motionDataArray[4] - group->GetInt("CalibrationYr"); + motionDataArray[5] = motionDataArray[5] - group->GetInt("CalibrationZr"); + } + + if (dominant) { // if dominant is checked + int max = 0; + bool flag = false; + for (i = 0; i < 6; ++i) { + if (abs(motionDataArray[i]) > abs(max)) max = motionDataArray[i]; + } + for (i = 0; i < 6; ++i) { + if ((motionDataArray[i] != max) || (flag)) { + motionDataArray[i] = 0; + } else if (motionDataArray[i] == max){ + flag = true; + } + } + } + + if (flipXY) { + int temp = motionDataArray[1]; + motionDataArray[1] = motionDataArray[2]; + motionDataArray[2] = - temp; + } + + for (i = 0; i < 6; ++i) { + if (motionDataArray[i] != 0) { + if (enabled[i] == false) + motionDataArray[i] = 0; + else { + if (reversed[i] == true) + motionDataArray[i] = - motionDataArray[i]; + motionDataArray[i] = (int)((float)(motionDataArray[i]) * sensitivity[i] * generalSensitivity); + } + } + } + + xTrans = motionDataArray[0]; + yTrans = motionDataArray[1]; + zTrans = motionDataArray[2]; + xRot = motionDataArray[3]; + yRot = motionDataArray[4]; + zRot = motionDataArray[5]; +} + + +void MotionEvent::setMotionData(int &xTransIn, int &yTransIn, int &zTransIn, int &xRotIn, int &yRotIn, int &zRotIn){ + int motionDataArray[6] = {xTransIn, yTransIn, zTransIn, xRotIn, yRotIn, zRotIn}; + importSettings(motionDataArray); +} + void MotionEvent::translations(int &xTransOut, int &yTransOut, int &zTransOut) { xTransOut = xTrans; @@ -58,9 +176,8 @@ void MotionEvent::translations(int &xTransOut, int &yTransOut, int &zTransOut) void MotionEvent::setTranslations(const int &xTransIn, const int &yTransIn, const int &zTransIn) { - xTrans = xTransIn; - yTrans = yTransIn; - zTrans = zTransIn; + int motionDataArray[6] = {xTransIn, yTransIn, zTransIn, xRot, yRot, zRot}; + importSettings(motionDataArray); } void MotionEvent::rotations(int &xRotOut, int &yRotOut, int &zRotOut) @@ -72,9 +189,8 @@ void MotionEvent::rotations(int &xRotOut, int &yRotOut, int &zRotOut) void MotionEvent::setRotations(const int &xRotIn, const int &yRotIn, const int &zRotIn) { - xRot = xRotIn; - yRot = yRotIn; - zRot = zRotIn; + int motionDataArray[6] = {xTrans, yTrans, zTrans, xRotIn, yRotIn, zRotIn}; + importSettings(motionDataArray); } diff --git a/src/Gui/SpaceballEvent.h b/src/Gui/SpaceballEvent.h index b07113e56..4f506a0b0 100644 --- a/src/Gui/SpaceballEvent.h +++ b/src/Gui/SpaceballEvent.h @@ -56,6 +56,7 @@ namespace Spaceball int rotationY(){return yRot;} int rotationZ(){return zRot;} + void setMotionData(int &xTransOut, int &yTransOut, int &zTransOut, int &xRotOut, int &yRotOut, int &zRotOut); static int MotionEventType; private: @@ -66,6 +67,8 @@ namespace Spaceball int yRot; int zRot; bool handled; + void importSettings(int* motionDataArray); + float convertPrefToSensitivity(int value); }; class ButtonEvent : public EventBase diff --git a/src/Gui/resource.cpp b/src/Gui/resource.cpp index b7f3ce8fb..8a72ca046 100644 --- a/src/Gui/resource.cpp +++ b/src/Gui/resource.cpp @@ -45,6 +45,7 @@ #include "DlgCommandsImp.h" #include "DlgKeyboardImp.h" #include "DlgCustomizeSpaceball.h" +#include "DlgCustomizeSpNavSettings.h" using namespace Gui; using namespace Gui::Dialog; @@ -75,6 +76,7 @@ WidgetFactorySupplier::WidgetFactorySupplier() new CustomPageProducer; //new CustomPageProducer; new CustomPageProducer; + new CustomPageProducer; new CustomPageProducer; // ADD YOUR PREFERENCE WIDGETS HERE From 5bb46b732d303820e24b46998d31d7be4df8d7f8 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 30 Aug 2012 10:46:04 -0300 Subject: [PATCH 73/98] Draft: reworked some icons --- src/Mod/Draft/Resources/icons/Draft_Apply.svg | 161 ++++--- .../Resources/icons/Draft_Construction.svg | 95 +++- .../Draft/Resources/icons/Draft_Finish.svg | 275 ++++++++++- src/Mod/Draft/Resources/icons/Draft_Lock.svg | 451 +++++++++++++----- .../Resources/icons/Draft_SelectPlane.svg | 92 ++-- src/Mod/Draft/Resources/icons/Draft_Snap.svg | 77 ++- src/Mod/Draft/Resources/icons/Snap_Lock.svg | 47 +- 7 files changed, 899 insertions(+), 299 deletions(-) diff --git a/src/Mod/Draft/Resources/icons/Draft_Apply.svg b/src/Mod/Draft/Resources/icons/Draft_Apply.svg index 674fd4e9e..50f0714d5 100755 --- a/src/Mod/Draft/Resources/icons/Draft_Apply.svg +++ b/src/Mod/Draft/Resources/icons/Draft_Apply.svg @@ -1,5 +1,6 @@ + + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_Apply.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape" + version="1.1"> + + inkscape:window-y="0" + inkscape:window-maximized="1" /> @@ -80,71 +93,69 @@ id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> - - - - - - - - - + + + + + + + diff --git a/src/Mod/Draft/Resources/icons/Draft_Construction.svg b/src/Mod/Draft/Resources/icons/Draft_Construction.svg index c2c5eafb0..923d5088b 100644 --- a/src/Mod/Draft/Resources/icons/Draft_Construction.svg +++ b/src/Mod/Draft/Resources/icons/Draft_Construction.svg @@ -14,8 +14,8 @@ height="64px" id="svg3611" version="1.1" - inkscape:version="0.47 r22583" - sodipodi:docname="New document 2"> + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_Construction.svg"> + + + + + + + image/svg+xml - + @@ -119,23 +160,29 @@ id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> - - - - - + + + + diff --git a/src/Mod/Draft/Resources/icons/Draft_Finish.svg b/src/Mod/Draft/Resources/icons/Draft_Finish.svg index 0dbfa6ff6..07cda3851 100755 --- a/src/Mod/Draft/Resources/icons/Draft_Finish.svg +++ b/src/Mod/Draft/Resources/icons/Draft_Finish.svg @@ -1,29 +1,210 @@ + + id="svg3612" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_Finish.svg"> + id="defs3614"> + + + + + id="perspective3620" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:snap-global="false" + inkscape:snap-nodes="true" + inkscape:object-nodes="true" /> + id="metadata3617"> image/svg+xml + @@ -59,11 +245,60 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> + inkscape:connector-curvature="0" + id="path4235-8-7" + d="m 28.873502,8.1632589 c -2.837435,0.2881572 -5.0625,2.7115381 -5.0625,5.6250001 0,1.085407 0.311381,2.077914 0.843749,2.9375 L 11.061002,29.882009 C 10.198524,29.34446 9.1833717,29.007008 8.0922517,29.007008 c -3.1076916,0 -5.6250003,2.51731 -5.6250003,5.625001 0,3.10769 2.5173087,5.625 5.6250003,5.625 0.2913453,0 0.5955877,-0.01981 0.8749994,-0.0625 l 14.4999999,14.65625 c -0.07495,0.3663 -0.124999,0.73654 -0.124999,1.125 0,3.10769 2.517309,5.625 5.624999,5.625 3.107692,0 5.625001,-2.51731 5.625001,-5.625 0,-0.51871 -0.08736,-1.02305 -0.21875,-1.500001 l 7.562499,-7.687499 c 1.448885,0.75273 3.039722,1.2967 4.750001,1.53125 8.007085,1.09811 15.37064,-4.49291 16.46875,-12.5 1.09811,-8.007087 -4.492914,-15.401885 -12.5,-16.5 -8.007087,-1.098115 -15.370636,4.524164 -16.46875,12.53125 -0.690574,5.035429 1.240843,9.80409 4.781249,12.9375 l -6.593749,6.6875 c -0.943363,-0.7142 -2.131802,-1.125 -3.406251,-1.125 -1.376472,0 -2.647179,0.4918 -3.624999,1.3125 L 12.154751,38.538259 c 0.971456,-1.01124 1.5625,-2.39326 1.5625,-3.90625 0,-0.77692 -0.15276,-1.5143 -0.4375,-2.1875 l 13.843751,-13.53125 c 0.70626,0.319315 1.487018,0.499999 2.3125,0.499999 3.10769,0 5.624999,-2.517309 5.624999,-5.624999 0,-3.107691 -2.517309,-5.6250001 -5.624999,-5.6250001 -0.194232,0 -0.373339,-0.019209 -0.5625,0 z" + style="opacity:0.525;fill:#000000;fill-opacity:1;stroke:none" /> + + + + + + diff --git a/src/Mod/Draft/Resources/icons/Draft_Lock.svg b/src/Mod/Draft/Resources/icons/Draft_Lock.svg index 8c46a656d..06e3c6858 100755 --- a/src/Mod/Draft/Resources/icons/Draft_Lock.svg +++ b/src/Mod/Draft/Resources/icons/Draft_Lock.svg @@ -1,5 +1,6 @@ + + id="svg3612" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_Finish.svg"> + id="defs3614"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30,37 +210,16 @@ offset="1" id="stop3277" /> - - + y1="671.11084" + x2="2900.1479" + y2="671.11084" /> @@ -76,13 +235,33 @@ + y1="671.11084" + x2="2900.1479" + y2="671.11084" /> + + @@ -97,21 +276,54 @@ - + gradientTransform="matrix(-0.1937875,0,0,-0.1937875,670.27087,167.83649)" + x1="2754.6858" + y1="671.11084" + x2="2900.1479" + y2="671.11084" /> + + + + + + + + inkscape:window-width="1280" + inkscape:window-height="777" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:snap-global="false" + inkscape:snap-nodes="true" + inkscape:object-nodes="true" /> + id="metadata3617"> image/svg+xml + @@ -146,56 +363,74 @@ id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> + + + - - - - + id="g4327" + transform="matrix(1.0803489,0,0,1.0803489,-5.9760819,-8.3209228)"> - - - - - - + transform="matrix(0.13587109,-0.99072652,0.99072652,0.13587109,7.1263136,81.286094)" + d="m 65.272727,36.272728 a 13.545455,13.545455 0 1 1 -27.09091,0 13.545455,13.545455 0 1 1 27.09091,0 z" + sodipodi:ry="13.545455" + sodipodi:rx="13.545455" + sodipodi:cy="36.272728" + sodipodi:cx="51.727272" + id="path4278" + style="color:#000000;fill:url(#linearGradient4331);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + sodipodi:type="arc" /> + + + + diff --git a/src/Mod/Draft/Resources/icons/Draft_SelectPlane.svg b/src/Mod/Draft/Resources/icons/Draft_SelectPlane.svg index 276b2135b..5fd36c60c 100644 --- a/src/Mod/Draft/Resources/icons/Draft_SelectPlane.svg +++ b/src/Mod/Draft/Resources/icons/Draft_SelectPlane.svg @@ -14,8 +14,8 @@ height="64px" id="svg3612" version="1.1" - inkscape:version="0.47 r22583" - sodipodi:docname="Draft_BSpline.svg"> + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_SelectPlane.svg"> + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:snap-global="false" + inkscape:snap-nodes="true" + inkscape:object-nodes="true" /> @@ -222,37 +225,60 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> + id="g4075"> + sodipodi:nodetypes="ccccccc" + inkscape:connector-curvature="0" + id="path3305" + d="M 33.636364,3.0909091 9.4545455,16 l 0,45.454545 L 12.545455,61.272727 51.636364,39.818182 51.272727,3.0909091 z" + style="fill:#00bcbf;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:0.73333335;opacity:1" /> + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3190" + d="M 2.6817614,19.853542 34.227331,2.7648421" + style="fill:none;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3190-7" + d="M 2.6817603,43.362531 61.318239,11.546559" + style="fill:none;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3190-9" + d="M 12.681761,61.180713 61.136421,34.819286" + style="fill:none;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + sodipodi:nodetypes="cc" + inkscape:connector-curvature="0" + id="path3190-1" + d="m 51.778932,61.073314 9.545569,-4.361427" + style="fill:none;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + inkscape:connector-curvature="0" + id="path3224" + d="m 9.6363637,2.6639428 0,58.7180442" + style="fill:none;stroke:#004550;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + + + diff --git a/src/Mod/Draft/Resources/icons/Draft_Snap.svg b/src/Mod/Draft/Resources/icons/Draft_Snap.svg index 2d491b621..3d44556d1 100644 --- a/src/Mod/Draft/Resources/icons/Draft_Snap.svg +++ b/src/Mod/Draft/Resources/icons/Draft_Snap.svg @@ -14,10 +14,21 @@ height="64" id="svg4025" version="1.1" - inkscape:version="0.48.1 r9760" - sodipodi:docname="Draft_Edit.svg"> + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Draft_Snap.svg"> + + + + + + + + + @@ -91,7 +122,7 @@ image/svg+xml - + @@ -100,28 +131,40 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" transform="translate(0,32)"> + + transform="translate(14.83703,-21.048975)" /> + + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccc" /> diff --git a/src/Mod/Draft/Resources/icons/Snap_Lock.svg b/src/Mod/Draft/Resources/icons/Snap_Lock.svg index a5fbc85b3..367b1198a 100644 --- a/src/Mod/Draft/Resources/icons/Snap_Lock.svg +++ b/src/Mod/Draft/Resources/icons/Snap_Lock.svg @@ -14,8 +14,8 @@ height="64px" id="svg3230" sodipodi:version="0.32" - inkscape:version="0.48.1 r9760" - sodipodi:docname="Draft_Lock.svg" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="Snap_Lock.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.1"> @@ -141,7 +141,7 @@ image/svg+xml - + @@ -160,13 +160,14 @@ inkscape:export-xdpi="6.5019679" inkscape:export-filename="/home/yorik/Documents/Lab/Draft/icons/close.png" transform="translate(-6,-8)" - id="g2385"> + id="g2385" + style="stroke-width:15.48087467;stroke-miterlimit:4;stroke-dasharray:none"> + d="m 2820.6698,645.73677 c 0,0 -15.7005,16.69534 -17.7546,34.75655 -2.5648,22.55078 8.1728,28.79829 10.4273,53.29339 2.2546,24.49509 -7.3273,42.70091 -7.3273,42.70091 l -68.4824,0 -0.2819,-130.41983 83.4189,-0.33102 z" + style="fill:url(#linearGradient2403);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /> @@ -197,8 +199,9 @@ + d="m 2832.0579,513.74833 c 0,0 -24.6429,-0.35715 -41.7857,11.78571 -17.1429,12.14286 -25.7143,23.21429 -31.4286,40.35714 -5.7143,17.14286 -4.2857,27.85714 -4.2857,27.85714 l 12.5,3.92858 c 0,0 -0.3433,-0.89433 1.3531,-12.59076 1.6899,-11.65095 5.8505,-25.49622 16.0291,-36.92479 10.1785,-11.42857 27.8827,-17.92521 41.1892,-17.38802 13.3065,0.53719 8.2143,-2.025 8.2143,-2.025 z" + style="fill:url(#radialGradient2411);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /> From 35cc5ef56f067db8d2051f938e2f9081dcb9efd6 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 30 Aug 2012 20:22:22 -0300 Subject: [PATCH 74/98] Arch: Minor bugfix --- src/Mod/Arch/ArchCommands.py | 6 + src/Mod/Draft/Draft_rc.py | 2787 +++++++++++++++++----------------- 2 files changed, 1394 insertions(+), 1399 deletions(-) diff --git a/src/Mod/Arch/ArchCommands.py b/src/Mod/Arch/ArchCommands.py index 1268dd89f..e6054bceb 100644 --- a/src/Mod/Arch/ArchCommands.py +++ b/src/Mod/Arch/ArchCommands.py @@ -99,6 +99,12 @@ def addComponents(objectsList,host): if hasattr(o,"Shape"): a.append(o) host.Objects = a + elif host.isDerivedFrom("App::DocumentObjectGroup"): + c = host.Group + for o in objectsList: + if not o in c: + c.append(o) + host.Group = c def removeComponents(objectsList,host=None): '''removeComponents(objectsList,[hostObject]): removes the given component or diff --git a/src/Mod/Draft/Draft_rc.py b/src/Mod/Draft/Draft_rc.py index 770792e39..fce29997b 100644 --- a/src/Mod/Draft/Draft_rc.py +++ b/src/Mod/Draft/Draft_rc.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Thu Aug 16 12:22:58 2012 +# Created: Thu Aug 30 14:59:12 2012 # by: The Resource Compiler for PyQt (Qt v4.8.2) # # WARNING! All changes made in this file will be lost! @@ -28262,557 +28262,377 @@ qt_resource_data = "\ \xca\x21\x00\xfc\xd8\x43\x38\x54\x2e\x1c\xb6\x35\x04\x87\x81\xed\ \x23\xdf\x83\x16\xc4\x9f\xef\x05\x11\xbe\xd5\x89\x78\xb3\x9a\x2d\ \xd4\xb1\xb7\x9a\xfd\x0b\xb3\xde\x14\xff\ -\x00\x00\x13\x1b\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ -\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ -\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ -\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ -\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ -\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\ -\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ -\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\ -\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\ -\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\ -\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\ -\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\ -\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\ -\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\ -\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\ -\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\ -\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\ -\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ -\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ -\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\ -\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\ -\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\ -\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\ -\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\ -\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\ -\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\ -\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x22\x0a\ -\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x22\x0a\x20\ -\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x34\x30\x32\x35\x22\x0a\x20\ -\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\ -\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x31\x20\x72\x39\x37\x36\ -\x30\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x64\ -\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x44\x72\x61\x66\x74\x5f\x45\x64\ -\x69\x74\x2e\x73\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\x65\x66\x73\ -\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x34\x30\ -\x32\x37\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\ -\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\ -\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ -\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\ -\x20\x31\x36\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\ -\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ -\x7a\x3d\x22\x33\x32\x20\x3a\x20\x31\x36\x20\x3a\x20\x31\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\ -\x31\x36\x20\x3a\x20\x31\x30\x2e\x36\x36\x36\x36\x36\x37\x20\x3a\ -\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ -\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x34\x30\x33\x33\x22\x20\ -\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\ -\x69\x76\x65\x34\x30\x31\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\ -\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\ -\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\ -\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ -\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\ -\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\ -\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\ -\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\ -\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ -\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ -\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ -\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ -\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x30\x39\x35\x22\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ -\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x39\x39\x39\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ -\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ -\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\ -\x22\x39\x30\x31\x2e\x31\x38\x37\x35\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x79\x31\x3d\x22\x31\x31\x39\x30\x2e\x38\x37\x35\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\x32\x36\x37\x2e\ -\x39\x30\x36\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ -\x22\x31\x31\x39\x30\x2e\x38\x37\x35\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\ -\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x31\x30\ -\x34\x35\x36\x37\x39\x31\x2c\x30\x2c\x30\x2c\x30\x2e\x31\x30\x34\ -\x35\x36\x37\x39\x31\x2c\x34\x32\x30\x2e\x39\x30\x30\x30\x36\x2c\ -\x33\x31\x2e\x30\x32\x33\x36\x32\x29\x22\x20\x2f\x3e\x0a\x20\x20\ -\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ -\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ -\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x30\x39\x35\x22\ -\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\ -\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x35\x62\x66\x66\ -\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\ -\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\ -\x64\x3d\x22\x73\x74\x6f\x70\x34\x30\x39\x37\x22\x20\x2f\x3e\x0a\ -\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\ -\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x63\x31\x65\x33\x66\x37\x3b\x73\ -\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\ -\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ -\x22\x73\x74\x6f\x70\x34\x30\x39\x39\x22\x20\x2f\x3e\x0a\x20\x20\ -\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ -\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ -\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ -\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\ -\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ -\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x30\x39\x35\x22\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ -\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x32\x39\x37\x39\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\ -\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\ -\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ -\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ -\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x31\x31\x31\x35\x34\x35\x38\ -\x33\x2c\x30\x2c\x30\x2c\x30\x2e\x31\x30\x36\x33\x32\x38\x35\x34\ -\x2c\x2d\x39\x39\x2e\x30\x33\x34\x32\x38\x31\x2c\x2d\x31\x33\x35\ -\x2e\x37\x30\x34\x34\x39\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x78\x31\x3d\x22\x39\x30\x31\x2e\x31\x38\x37\x35\x22\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x31\x31\x39\x30\x2e\x38\x37\ -\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\x32\ -\x36\x37\x2e\x39\x30\x36\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x79\x32\x3d\x22\x31\x31\x39\x30\x2e\x38\x37\x35\x22\x20\x2f\x3e\ -\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\ -\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\ -\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\ -\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\ -\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\ -\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\ -\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\ -\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\ -\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\ -\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\x20\x20\x20\x20\x69\ -\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x31\x2e\ -\x39\x37\x39\x35\x31\x30\x35\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x31\x31\x2e\x31\x33\ -\x30\x36\x32\x35\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3a\x63\x79\x3d\x22\x32\x31\x2e\x32\x32\x30\x32\x30\ -\x37\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\ -\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\ -\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\ -\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\x20\ -\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\x63\x75\x6d\x65\ -\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\x0a\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\ -\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\x30\x22\x0a\ -\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ -\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x37\x35\x35\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\ -\x77\x2d\x79\x3d\x22\x32\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x6d\x61\ -\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\x31\x22\x20\x2f\x3e\x0a\x20\ -\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0a\x20\x20\x20\x20\x20\ -\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x34\x30\x33\x30\ -\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\ -\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\ -\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ -\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\ -\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\ -\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\ -\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ -\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\ -\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\ -\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\ -\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x20\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\x64\x63\x3a\ -\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\ -\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\ -\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\ -\x61\x74\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\ -\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\ -\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\ -\x4c\x61\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\ -\x3d\x22\x6c\x61\x79\x65\x72\x22\x0a\x20\x20\x20\x20\x20\x74\x72\ -\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\x61\ -\x74\x65\x28\x30\x2c\x33\x32\x29\x22\x3e\x0a\x20\x20\x20\x20\x3c\ -\x72\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\ -\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\ -\x3b\x66\x69\x6c\x6c\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\x66\x69\ -\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\ -\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\ -\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x33\x2e\x35\x34\x32\x39\x39\ -\x39\x39\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\ -\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ -\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\ -\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ -\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\ -\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ -\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ -\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\ -\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\ -\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\ -\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\ -\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\ -\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\ -\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x33\x37\x38\x30\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x38\x2e\ -\x32\x32\x35\x37\x31\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x68\ -\x65\x69\x67\x68\x74\x3d\x22\x38\x2e\x35\x37\x33\x31\x31\x30\x36\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x2d\x35\x2e\x39\ -\x35\x37\x37\x36\x30\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\ -\x3d\x22\x32\x31\x2e\x33\x32\x37\x34\x33\x33\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\ -\x61\x74\x72\x69\x78\x28\x30\x2e\x38\x34\x33\x39\x32\x33\x38\x36\ -\x2c\x2d\x30\x2e\x35\x33\x36\x34\x36\x32\x39\x38\x2c\x30\x2e\x35\ -\x33\x36\x34\x36\x32\x39\x38\x2c\x30\x2e\x38\x34\x33\x39\x32\x33\ -\x38\x36\x2c\x30\x2c\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\ -\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\ -\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x61\x72\x63\x22\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\ -\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\ -\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\ -\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\ -\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\ -\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ -\x2d\x77\x69\x64\x74\x68\x3a\x33\x2e\x35\x34\x32\x39\x39\x39\x39\ -\x38\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\ -\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\ -\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\ -\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\ -\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ -\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\ -\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\ -\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\ -\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\ -\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\ -\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\ -\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\ -\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\ -\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ -\x64\x3d\x22\x70\x61\x74\x68\x33\x37\x38\x32\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x63\x78\x3d\ -\x22\x32\x30\x2e\x36\x32\x39\x30\x34\x37\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x63\x79\x3d\x22\ -\x32\x39\x2e\x30\x38\x32\x34\x33\x34\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x78\x3d\x22\x31\ -\x30\x2e\x39\x38\x34\x32\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x72\x79\x3d\x22\x31\x30\ -\x2e\x39\x38\x34\x32\x39\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x64\x3d\x22\x6d\x20\x33\x31\x2e\x36\x31\x33\x33\x34\x36\x2c\x32\ -\x39\x2e\x30\x38\x32\x34\x33\x34\x20\x61\x20\x31\x30\x2e\x39\x38\ -\x34\x32\x39\x39\x2c\x31\x30\x2e\x39\x38\x34\x32\x39\x39\x20\x30\ -\x20\x31\x20\x31\x20\x2d\x32\x31\x2e\x39\x36\x38\x35\x39\x37\x33\ -\x2c\x30\x20\x31\x30\x2e\x39\x38\x34\x32\x39\x39\x2c\x31\x30\x2e\ -\x39\x38\x34\x32\x39\x39\x20\x30\x20\x31\x20\x31\x20\x32\x31\x2e\ -\x39\x36\x38\x35\x39\x37\x33\x2c\x30\x20\x7a\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\ -\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x31\x32\x2e\x35\x36\x33\x37\ -\x34\x32\x2c\x2d\x32\x31\x2e\x30\x34\x38\x39\x37\x34\x29\x22\x20\ -\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\ -\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x66\ -\x66\x30\x63\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\ -\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\ -\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x34\ -\x37\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\ -\x74\x68\x3a\x33\x2e\x32\x33\x38\x36\x33\x32\x32\x3b\x73\x74\x72\ -\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\ -\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\ -\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\ -\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\ -\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ -\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ -\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\ -\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\ -\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\ -\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\ -\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\ -\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\ -\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\ -\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\x31\ -\x34\x2e\x31\x38\x30\x33\x39\x32\x2c\x2d\x32\x38\x2e\x32\x34\x36\ -\x32\x39\x35\x20\x30\x2c\x31\x32\x2e\x31\x39\x35\x39\x32\x38\x20\ -\x2d\x39\x2e\x32\x39\x39\x36\x39\x2c\x30\x20\x30\x2c\x36\x2e\x35\ -\x36\x37\x30\x33\x37\x38\x20\x39\x2e\x32\x39\x39\x36\x39\x2c\x30\ -\x20\x37\x2e\x31\x33\x39\x31\x35\x35\x2c\x30\x20\x39\x2e\x36\x37\ -\x35\x34\x33\x35\x2c\x30\x20\x30\x2c\x2d\x36\x2e\x35\x36\x37\x30\ -\x33\x37\x38\x20\x2d\x39\x2e\x36\x37\x35\x34\x33\x35\x2c\x30\x20\ -\x30\x2c\x2d\x31\x32\x2e\x31\x39\x35\x39\x32\x38\x20\x2d\x37\x2e\ -\x31\x33\x39\x31\x35\x35\x2c\x30\x20\x7a\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x33\x37\x38\x34\x22\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\ -\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\ -\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ -\x00\x00\x08\x45\ +\x00\x00\x07\xda\ \x00\ -\x00\x26\xfb\x78\x9c\xed\x59\x6b\x6f\xdb\x38\x16\xfd\x9e\x5f\xa1\ -\x75\xbf\xb4\x58\x8b\xe6\xfb\xe1\x3c\x06\xd8\x2d\x66\x30\xc0\x2e\ -\x76\xb1\x6d\xb1\x1f\x07\x8a\x44\x3b\xda\xca\x92\x21\xc9\xb1\x93\ -\x5f\xbf\x97\x7a\xcb\x91\x93\x34\x99\x69\x07\x45\x5d\x34\x96\xc8\ -\x4b\x5e\xf2\xf0\xdc\x73\x49\xfa\xe2\xa7\xc3\x26\xf1\x6e\x6d\x5e\ -\xc4\x59\x7a\x39\x23\x08\xcf\x3c\x9b\x86\x59\x14\xa7\xeb\xcb\xd9\ -\xa7\x8f\x3f\xfb\x7a\xe6\x15\x65\x90\x46\x41\x92\xa5\xf6\x72\x96\ -\x66\xb3\x9f\xae\xce\x2e\xfe\xe2\xfb\xde\xdf\x73\x1b\x94\x36\xf2\ -\xf6\x71\x79\xe3\xfd\x9a\x7e\x2e\xc2\x60\x6b\xbd\xb7\x37\x65\xb9\ -\x5d\x2e\x16\xfb\xfd\x1e\xc5\x4d\x21\xca\xf2\xf5\xe2\x9d\xe7\xfb\ -\x57\x67\x67\x17\xc5\xed\xfa\xcc\xf3\x3c\xf0\x9b\x16\xcb\x28\xbc\ -\x9c\x35\x0d\xb6\xbb\x3c\xa9\x0c\xa3\x70\x61\x13\xbb\xb1\x69\x59\ -\x2c\x08\x22\x8b\x59\x6f\x1e\xf6\xe6\xa1\xf3\x1e\xdf\xda\x30\xdb\ -\x6c\xb2\xb4\xa8\x5a\xa6\xc5\x9b\x81\x71\x1e\xad\x3a\x6b\x37\x9a\ -\x3d\xab\x8c\x88\x31\x66\x81\xe9\x82\x52\x1f\x2c\xfc\xe2\x2e\x2d\ -\x83\x83\x3f\x6e\x0a\x63\x9c\x6a\x4a\x31\xc6\x0b\xa8\xeb\x2d\x9f\ -\x67\xb5\x3c\x24\x00\xc5\xc9\xc1\x54\xb5\x43\xef\x00\xff\x16\xfe\ -\x77\x0d\xda\x02\x54\x64\xbb\x3c\xb4\x2b\x68\x69\x51\x6a\xcb\xc5\ -\xfb\x8f\xef\xbb\x4a\x1f\xa3\xa8\x8c\x06\xdd\xb4\xe8\x8f\xfc\x8e\ -\x96\x24\x0d\x36\xb6\xd8\x06\xa1\x2d\x16\x6d\x79\xd5\x7e\x1f\x47\ -\xe5\xcd\xe5\x4c\xf2\xed\xa1\x7a\xbf\xb1\xf1\xfa\xa6\x1c\x14\xc4\ -\xd1\xe5\x0c\x66\xc8\x24\xa1\xd5\xfb\x80\x40\xa4\x36\x68\xba\x5b\ -\x76\x35\x18\x71\xe5\xe5\x94\x0a\xcd\x2a\x8b\x76\xd8\xcb\x28\x0b\ -\xdd\x38\x2e\x67\xef\xf3\x60\x55\xfe\xf6\xb7\x0f\x5b\x80\xc3\x22\ -\x07\xe0\x15\x18\x5e\x44\x76\x55\xb8\x06\xb5\x57\xf7\x06\x6e\x79\ -\x55\x07\xb5\x9d\xa3\x2d\x38\xda\xda\xd0\x51\xa2\xb6\x1e\xb8\x28\ -\xef\x1c\x0a\x63\x53\x56\x43\xe5\x8d\x06\xbb\xfd\xed\x00\x23\xf5\ -\x96\x1e\xa3\xf0\x87\x4c\x5a\xdc\xd5\x16\x04\x56\x19\xbe\xf0\xa4\ -\xcd\xbd\xc3\xea\x91\x6e\x9a\x11\xf8\x59\x1e\xaf\x63\x00\xa7\xb2\ -\xa3\x04\xb1\xea\x33\x6e\x03\x93\x1e\xcc\x8d\x49\x0a\x21\xba\x78\ -\xc6\xec\x8f\x1b\x0a\xad\x9f\x1e\x08\x46\xc2\x4d\xaa\x19\xc8\xf1\ -\x50\xc6\x33\x24\x95\xa5\x78\x15\x50\x0d\xdc\xc7\xdd\x3c\xb5\x72\ -\x2f\x02\x40\x1a\xfa\xfd\x01\x90\x07\x51\x1c\x24\xbf\xb8\x2f\x10\ -\xcc\x07\x1e\xc2\x2c\x49\x60\xfa\x97\xb3\x20\xd9\x07\x77\x45\xd7\ -\x7f\x25\x39\xcb\x9b\xdc\x82\x44\xbe\x71\xf1\x16\xe4\x6d\x1f\x8c\ -\x70\xee\xcb\x11\xff\xc6\x4e\x98\xd4\xbc\xab\x5e\x37\x85\x9f\xd2\ -\xb8\x04\x35\xdc\x15\x36\xff\xe0\x14\xe5\x5f\xe9\xa7\xc2\x3e\xb0\ -\xfa\x98\x07\x69\x01\xf2\xb5\xb9\x9c\x6d\x82\x32\x8f\x0f\x6f\xc9\ -\x1c\xbb\x7f\x48\x1a\x2d\xa8\xe1\xf0\x4c\x31\x45\x9a\x6a\xc9\xde\ -\x75\xcd\x43\x40\x09\x94\x03\x51\xc9\x71\xbf\x86\x21\xe0\x2b\x15\ -\x45\xca\x28\xd6\x8f\x77\x35\x69\xbb\x9a\xb4\xcd\x21\xf2\x38\x62\ -\x5c\x10\x88\x8d\x0e\xd2\x31\x1c\x43\x1c\x26\x81\xba\x6a\x2c\x2e\ -\x8a\x32\xdb\xb6\xd6\x8d\x44\x42\x09\x58\x49\xdf\xcc\xfa\x8a\xa2\ -\xbc\x4b\x6c\x5d\xe7\xc3\xf2\x64\xf9\xf2\xcd\xaa\xfa\x9c\x57\x45\ -\x19\xa0\x17\x97\x77\x4b\x32\x68\x92\xad\x56\x85\x85\x45\xec\x23\ -\xff\x31\x77\xda\xa7\x5f\xee\x0e\x4f\xb8\x23\x3d\x26\x8b\xf1\xd4\ -\xbf\x29\xf9\xe4\x0f\xf2\x01\x0e\x0a\x93\x27\xa9\xa7\x30\xfb\x7a\ -\xc4\x53\x58\x7c\xd7\xb4\xd3\x3f\x68\x57\xd1\x4e\x3f\x4d\x3b\x82\ -\xbf\x22\xed\xc8\xb7\x55\xbb\x11\x9e\x8f\x43\x3f\xbd\x4c\xd3\x4b\ -\x3a\xbd\xfc\xaf\xe4\xd4\xf3\x88\x3b\xc1\x7e\x45\xd9\x4b\xc2\xe8\ -\x54\x44\xbe\x68\xfb\xa6\x07\xfa\xf2\xdd\x6c\xdf\x4e\xc4\xdd\x6b\ -\xa4\x4c\x4b\xee\x63\x1f\xcf\x1e\x09\x62\xc3\x7e\xbf\x0d\x1c\x46\ -\x94\x12\x4c\xb9\x9c\xc3\x01\x54\x28\x6d\xa8\x24\xee\x51\x11\x69\ -\x8c\x34\xcc\x3d\x33\xc1\xb8\x84\xfc\x30\x17\xc4\x20\xa3\xb1\x16\ -\x73\x2e\x39\x22\x86\xf2\x01\x3b\x0f\x04\x02\xc1\x48\x24\x15\xa3\ -\x3d\xe5\xef\xa0\x54\x29\x84\xb9\xa4\x83\x51\x1f\x28\xd8\x0a\x8e\ -\x34\xc6\x03\x6a\xde\x41\x29\x21\x02\x61\x62\x14\x7f\x81\xb8\xb5\ -\xd0\x3d\xa5\x39\x5a\x4a\x5f\xf8\x6a\x52\xb1\x1e\xd5\x22\x2c\x89\ -\x09\xf1\x91\xf0\x9d\x3f\x43\xe5\xb4\xd4\xbe\x1a\x84\xd6\x50\xb6\ -\x1e\xf5\xc8\x94\x09\x57\xd7\x27\x3d\x9e\x90\xba\x3f\x80\x96\x4c\ -\xa9\x47\x29\xc9\xe9\x88\x08\xc2\x28\xa4\x14\xd5\x6c\x44\x04\xce\ -\x11\x50\x8d\x0d\x6d\x1d\x11\x80\x55\x0c\x33\xaa\x47\x44\x60\xc0\ -\x4c\xc5\x9f\xcd\xf4\x2f\x67\x8b\x9b\xd1\x53\xeb\x06\xf0\x7f\x39\ -\x4b\x56\xab\x20\xc0\x2f\x61\x09\xd3\x53\x59\xf4\x09\x86\xac\x82\ -\xd5\x8a\xfe\x19\x18\x52\x45\xdf\x63\x1c\x91\x42\x7d\x23\xd9\x62\ -\x12\x71\x42\x05\x99\x73\x48\xd4\xee\xd6\xeb\x35\xaa\x05\x4e\x30\ -\x17\x66\xac\x5a\xcc\x20\x8e\x8d\xa6\x2f\x55\xad\xe7\x69\xd6\xd7\ -\x56\xac\xaf\xa2\x57\x17\x0b\x77\x29\x58\x3d\x75\x79\xd7\xdd\x28\ -\x46\xb7\xb1\xdd\x9f\x75\xa3\xba\x0e\x3a\x62\x6c\x83\xb5\xad\xfc\ -\x01\x09\xeb\xed\x61\x53\x71\x9d\xe5\x91\xcd\xdb\x2a\x59\x7d\x46\ -\x55\xcd\x90\xea\x9b\xf2\xb3\x31\xe7\x5d\xaf\x5d\x3d\x9e\xae\x2f\ -\x6e\x82\x28\xdb\xc3\xd6\xee\xb8\xf2\x3e\xcb\x80\x9c\x02\x89\xe3\ -\x0a\xb7\x11\x64\x0f\xcc\xdd\xa6\x71\xa2\x74\x97\xe7\x00\x8a\x9f\ -\x04\x77\x16\x26\x50\x7d\xb5\x78\x17\x37\xd9\x7e\x9d\x3b\x20\xca\ -\x7c\x67\x8f\x5b\x46\x59\xb8\x73\x37\xee\xfe\xae\x8e\xa7\xe6\x9e\ -\x77\x60\xe1\xda\xfa\xd7\xd7\xd9\x61\xba\x83\x7d\x9c\xc2\xc4\xfc\ -\xe6\xe6\x98\x50\xfd\x60\xfa\x8d\x45\x7b\x97\xac\x84\x3e\x61\x71\ -\xe8\x49\x79\x5c\xe5\x80\x37\x27\xea\x36\xc1\x21\xde\xc4\xf7\x36\ -\xea\xcf\x0d\x17\x1b\x5b\x06\x51\x50\x06\x3d\x0b\xda\x12\x08\xe2\ -\x56\xbd\x2f\xf2\x68\xb5\xfc\xcf\xfb\x9f\x3b\x46\x87\xe1\xf2\xbf\ -\x59\xfe\xb9\xe7\xa9\x33\x08\xae\xb3\x1d\x0c\xbb\x8b\x33\x77\x33\ -\x1d\x2e\x9d\xa6\x04\xe5\x55\xbc\x81\xb5\x75\x77\xfe\x7f\x3d\x6c\ -\x12\xe0\x63\x57\x31\x32\x76\x9b\xc1\xbe\xd3\xba\xdb\xdc\xd6\x77\ -\xfa\x93\x3f\x83\x44\xe1\x26\x76\x8d\x16\x1f\xca\x38\x49\x7e\x75\ -\x4e\x06\x91\xd7\x74\x1a\x97\x89\xbd\xaa\x7c\xd6\x8f\xed\x2c\x16\ -\xcd\x34\xda\xc0\x19\xcc\xf2\x62\xd1\xc2\x50\xbd\xad\x7b\x78\x46\ -\x94\xe9\x10\x4e\x82\x6b\x9b\x5c\xce\xfe\xe1\x2a\xbd\x07\xb5\xeb\ -\x3c\xdb\x6d\x37\x59\x64\x9b\xe6\x2d\xac\xeb\x76\x9c\xe5\xc9\xd3\ -\x0a\xa8\x2e\x2c\x84\xe0\x73\x5f\x28\x89\x98\x56\xa6\x92\x63\xc9\ -\x99\x34\x98\xbc\x1b\x25\x83\xfa\xe7\x81\xc2\xba\xbc\xf2\xef\x24\ -\x48\x7b\x95\x6f\x64\x24\x8a\x8b\x2d\x0c\x60\x19\xa7\x4e\x23\x7a\ -\x41\xdc\x06\xe5\xcd\x03\xcd\x69\xe5\xad\xfa\x9c\xaf\x00\xde\xd1\ -\x4b\x7f\x52\x44\x4a\x73\x46\x98\x62\x75\x79\xbe\x4b\xec\x32\xcd\ -\xd2\x7b\xd0\x02\x50\xa9\x3c\xfb\x5c\xbd\xda\xe6\xb9\x0e\x80\x25\ -\x05\x31\x77\x1f\x72\xbe\x09\xf2\xcf\x36\xaf\x4d\x6e\xe3\x22\xbe\ -\x8e\x13\xd7\x6d\xf5\x98\xd8\xf3\xf1\x98\xcf\xb3\x5b\x9b\xaf\x92\ -\x6c\xdf\xd5\xdb\x34\x80\x2f\xff\x3a\x08\x3f\x3b\x98\xd3\x68\x19\ -\x84\x10\xa9\xbb\x24\x28\xed\x40\x48\x1d\xb1\x3d\x61\x04\x52\x70\ -\xf8\x63\x73\x01\xc9\x44\x41\x8a\x31\x5e\xe8\x69\x24\xb1\x20\x80\ -\xb0\x44\x46\x08\x49\x95\x47\x14\x72\xa9\x4f\xcf\x7d\xc2\x90\x21\ -\x90\xd7\x98\x07\x27\x4d\x0d\xeb\x40\xe7\x3e\xc5\x08\x52\x85\xd6\ -\x9e\x2f\x20\xe7\x49\x97\x15\x29\x24\x37\x4c\x8d\xf4\x7c\x02\x95\ -\x8c\x51\xc8\x8e\x02\x8e\xbc\x58\x18\x02\x65\x12\x51\x6e\x34\x78\ -\xd0\xb0\xf1\xc6\x5a\x2b\xcf\x6f\x9d\x76\x3e\xfd\xc6\xa9\x99\xf7\ -\x3e\xfd\xc6\x29\x9b\x77\x3e\x5b\x97\x9d\xc7\xc6\x21\x9f\x77\xfe\ -\x1a\x77\x62\xde\x79\xbb\x1f\x00\x51\x9d\x5d\x81\x20\x0c\x18\xe4\ -\x9b\x61\x9a\x3a\x62\x41\x97\x28\x80\xb7\x2e\xc4\x40\xf3\x42\xf7\ -\x99\xee\x8b\xfb\xec\x18\x6d\xd8\x04\x20\xa2\x01\xe4\xb9\x54\x08\ -\x08\xcb\x14\x9f\x44\x71\x0a\x9e\xce\xae\x33\xeb\xac\x26\x67\xf5\ -\x1d\x71\xf6\xf4\x8a\x9c\x9c\x23\x08\xe2\xdb\xe3\xbd\x22\x9c\x60\ -\xdf\x8d\x27\x4d\x4e\xcf\xb5\xed\xed\xc4\x74\x9b\x62\xe7\x01\xf4\ -\x6c\x79\xbd\x2b\xcb\x61\xd9\xff\xb2\x38\x5d\x56\xf3\x68\x4b\x41\ -\x94\x6d\x9e\x40\xb2\x29\x97\xbc\x2d\xeb\x87\xd1\x14\x44\x01\xe4\ -\xfa\x3c\x07\x9c\x86\x50\xbb\xd2\x7a\x27\xb4\xc4\xdf\x42\x1b\x28\ -\xec\x65\x6b\x6d\xd0\x7f\x3a\x6d\xd0\x13\xda\x40\x9f\xd6\x06\xf6\ -\x40\x1b\x4e\x44\xd1\x50\x1b\x7e\x37\x65\xd0\x93\x48\x53\x26\xf4\ -\x9c\x72\xc4\x5d\x18\x92\x0a\x69\xa1\xa5\x11\x0e\x69\xac\x85\xc1\ -\xd2\x21\x0d\x87\x0b\x02\x09\x0f\x84\x04\x36\x43\x4c\x49\x8f\x4a\ -\x04\x6b\xa4\x00\x42\x38\xd1\x2a\x23\x60\x99\xbc\xc4\x73\x19\x11\ -\x86\xac\xe6\x4c\x40\xc2\xa4\x44\xea\x09\x78\xa4\x33\x23\x0a\x4b\ -\xc0\x1a\x4e\x2b\xc6\x30\x18\xc8\x33\x45\x64\x32\xc0\x38\xfd\x11\ -\x60\x2f\x13\xb2\x2f\x4c\x2d\x63\x02\xfd\xb3\x4b\x2c\x7a\x2e\x49\ -\x9d\x58\x98\x27\x99\x9e\x73\x90\x75\x25\xb9\x61\x8e\x12\x7f\x6c\ -\x56\x99\x22\x04\x1c\xbe\x7f\x10\xe2\x45\x84\xa8\x2e\xb2\xa1\x84\ -\xc3\x16\xe1\xc1\x2e\x02\x0b\x88\x5a\xc1\xe8\x9c\x29\x50\x06\x4e\ -\x95\xa9\x02\x99\x4a\x88\x77\xdf\x20\xc1\x30\x56\xc4\x49\x1d\x65\ -\xa0\xb6\xb0\xd3\x00\x9d\x80\xc0\x0e\x9d\x15\x26\xb0\x9f\x02\x41\ -\x81\x58\x05\xa1\x80\x77\x65\xdc\x3b\x51\x8a\x53\x0a\xef\x84\x18\ -\x2d\xe7\x06\x41\x67\x84\xd5\xb4\x71\xd7\x1e\x1c\x44\x47\x21\xd8\ -\x5f\x4b\x28\x9c\x20\x44\xbd\xb1\x68\x7e\x36\x39\x5a\xf1\xc7\xd7\ -\x97\x60\xa9\x15\x33\xe6\x59\x0b\x5c\xad\xe9\x2b\x16\x78\xf6\x9c\ -\x90\xeb\xef\x0d\xd6\xf5\xc1\x07\xbe\x2e\xdc\x41\xed\xea\xec\xff\ -\xfe\x3a\xdd\x9e\ -\x00\x00\x06\x99\ +\x00\x1b\x14\x78\x9c\xdd\x58\x4b\x6f\xdb\x48\x12\xbe\xfb\x57\x70\ +\x98\x4b\x82\x15\x5b\xfd\x6e\x92\x96\x3c\x87\x09\x66\x10\x60\x81\ +\x05\x36\x09\xf6\x38\xa0\xc8\x96\xc4\x35\x45\x0a\x4d\xca\x92\xfc\ +\xeb\xb7\x9a\xe2\x53\x0f\xc7\x9e\x45\x7c\x18\x1a\xb1\xd9\x55\xd5\ +\xd5\x55\xc5\xaf\xeb\x91\xd9\xaf\x87\x4d\xe6\x3c\x69\x53\xa6\x45\ +\x3e\x77\x09\xc2\xae\xa3\xf3\xb8\x48\xd2\x7c\x35\x77\xbf\x7f\xfb\ +\xdd\xf3\x5d\xa7\xac\xa2\x3c\x89\xb2\x22\xd7\x73\x37\x2f\xdc\x5f\ +\x1f\xee\x66\xbf\x78\x9e\xf3\x9b\xd1\x51\xa5\x13\x67\x9f\x56\x6b\ +\xe7\x4b\xfe\x58\xc6\xd1\x56\x3b\x1f\xd7\x55\xb5\x0d\xa7\xd3\xfd\ +\x7e\x8f\xd2\x86\x88\x0a\xb3\x9a\x7e\x72\x3c\xef\xe1\xee\x6e\x56\ +\x3e\xad\xee\x1c\xc7\x81\x73\xf3\x32\x4c\xe2\xb9\xdb\x6c\xd8\xee\ +\x4c\x56\x0b\x26\xf1\x54\x67\x7a\xa3\xf3\xaa\x9c\x12\x44\xa6\x6e\ +\x2f\x1e\xf7\xe2\xb1\x3d\x3d\x7d\xd2\x71\xb1\xd9\x14\x79\x59\xef\ +\xcc\xcb\x0f\x03\x61\x93\x2c\x3b\x69\x6b\xcd\x9e\xd5\x42\x24\x08\ +\x82\x29\xa6\x53\x4a\x3d\x90\xf0\xca\x63\x5e\x45\x07\x6f\xbc\x15\ +\x6c\xbc\xb6\x95\x62\x8c\xa7\xc0\xeb\x25\x5f\x27\x15\x1e\x32\x08\ +\xc5\x4d\x63\x6a\xee\xf0\x74\x08\xff\x16\xfe\x75\x1b\x5a\x02\x2a\ +\x8b\x9d\x89\xf5\x12\x76\x6a\x94\xeb\x6a\xfa\xf9\xdb\xe7\x8e\xe9\ +\x61\x94\x54\xc9\x40\x4d\x1b\xfd\xd1\xb9\xa3\x4f\x92\x47\x1b\x5d\ +\x6e\xa3\x58\x97\xd3\x96\x5e\xef\xdf\xa7\x49\xb5\x9e\xbb\x92\xd7\ +\xab\xb5\x4e\x57\xeb\xaa\x5b\xa6\xc9\xdc\x05\xef\x38\xa6\xa2\x5e\ +\x0f\xc0\x43\x4e\x02\x8d\xaa\xb0\xe3\x60\xc4\x7d\xc4\x10\x71\x4c\ +\xe0\xfb\xb2\x16\x6a\xad\x0e\x93\x22\xb6\x66\xcc\xdd\xcf\x26\x5a\ +\x56\x7f\x7e\xcd\xa3\x2d\xb2\xc1\x7b\x00\xa9\x59\xa2\x97\xa5\x95\ +\x3e\x9d\x6a\x57\x70\xac\xaa\x79\xc0\x85\xb0\xe9\xc8\xfc\x61\xa2\ +\x24\x05\xb0\x9c\xe4\x4e\x92\x63\x0e\x53\x12\x37\x7b\x60\x57\x59\ +\x15\xdb\x56\x16\xec\xa8\x8e\x19\x1c\x6e\x89\x5e\x5c\x64\x85\x09\ +\x3f\x60\xcc\x16\x7e\x7c\x5f\x93\x0a\x88\x4e\x5a\x1d\x43\x72\xef\ +\xf6\x7b\x8a\xe5\xb2\xd4\x10\x10\x3c\xa0\xd5\x51\x81\x1d\x70\x16\ +\x75\x9d\xe9\xeb\x4f\xe3\x24\x58\x2e\xd5\x2b\x4e\x23\xd7\x4f\xe3\ +\xdd\x69\xb3\xe9\xd8\xed\x86\xda\x7d\x8e\x2d\x7c\x8e\xad\x8e\xed\ +\xa5\x69\x35\x75\x5f\xa1\x3a\x5a\x9c\x8c\x45\x59\xd2\x9d\xd8\x7f\ +\xd2\xed\x9f\x07\x70\xdc\x09\x1d\x22\xed\xaf\xab\x12\xc7\x46\x02\ +\xee\x01\xfc\xc1\x57\x65\x9e\xe7\x2e\xa3\x2f\xa8\x69\x2c\xf0\x0a\ +\x93\xae\x52\x0b\xae\x5a\x0e\x23\x69\x1f\x35\xde\x03\xc1\x18\xf8\ +\xc6\x31\x63\x7d\x4c\x5e\xf2\xfe\x62\x23\xb9\x62\xeb\xb9\x21\x18\ +\x09\xeb\x14\x62\xcd\x73\x33\x0a\xe0\x21\xa9\x25\xc5\xff\x15\xa8\ +\x26\xdc\xe7\x6a\x7e\xf4\xe5\xba\x00\xdc\xb8\x24\xad\x3c\xa0\x30\ +\x03\xf7\xe7\x6e\x94\xed\xa3\x63\xd9\xe9\xaf\x73\x52\xb8\x36\x1a\ +\x72\xe8\x87\xb1\x0e\x8e\x03\xe1\xbe\x70\xdb\x20\xa5\x75\xec\x55\ +\x43\xfc\x9e\xa7\x15\x24\xcb\x5d\xa9\xcd\x57\x9b\x70\xfe\x95\x7f\ +\x2f\x75\x7f\x18\x99\xbb\x01\x86\xfc\xe1\xab\x5e\xf3\x11\x88\x84\ +\x04\x18\x0d\x89\x07\x0a\x44\x2a\x15\x0a\x30\xdc\xb3\x4e\x94\x5e\ +\x11\x6d\x8f\xfe\x66\xa2\xbc\x84\x94\xb9\x99\xbb\x9b\xa8\x32\xe9\ +\xe1\x23\x46\x04\x73\x21\x55\x40\x26\xd8\xfe\xf4\x4b\x4e\x31\x68\ +\xc6\x58\x4e\x18\x94\x42\xca\x24\xfd\xf4\xc3\x48\x5e\x04\xa0\x8e\ +\xcf\x5b\xd2\x8d\x58\x2c\x97\x7f\x31\xdd\xc0\x59\xea\x4d\xe9\x26\ +\x26\x9a\xfd\xe5\x74\x03\xa7\x05\x3f\x4a\x37\xef\x8e\x37\x1a\xa8\ +\xb7\xe2\xed\x45\x68\x10\x22\xb8\xf0\x59\x07\x0d\xc9\xa8\x2f\xf8\ +\xc4\x0b\x02\x84\x19\xa7\x3e\x99\x78\x84\x09\xa4\x30\xe7\xc1\xa7\ +\x9f\x03\xe1\x9f\x78\x79\xeb\x5a\xf8\x62\xa9\x94\x23\x9f\x28\x41\ +\x82\xd0\xc0\x67\x23\xa7\x38\x04\x26\x90\x34\x60\x63\xaf\x7c\xa4\ +\x18\x57\xc2\x1f\x7b\xa5\x10\x25\xd8\x27\xf4\x95\x1f\xe9\xcd\xf7\ +\xcd\xba\x04\x6d\xea\x3b\x16\x78\x0f\xbf\x6f\x89\xf7\xd8\x8b\xb7\ +\x6e\x36\xb5\x9d\x51\xfd\xd6\x95\x05\xdb\x53\x25\x4f\xa9\xde\xf7\ +\xed\xd3\x22\xea\xae\xc0\x36\x5a\xe9\xda\x38\xc0\xc7\xb2\x7e\x1a\ +\xc6\xa2\x30\x89\x36\x2d\xab\x2e\xb6\x72\xc4\x6a\xec\x3f\x8d\x0a\ +\x77\x63\x38\x5a\xad\x1d\x1f\x5f\xe7\x97\xeb\x28\x29\xf6\x80\xab\ +\x73\xe6\x73\x51\x6c\xac\x56\xb8\xcd\x82\x60\x71\xce\x8e\xa1\x0e\ +\x7a\x90\x9d\x25\xf7\x05\x63\x17\x5c\x38\xd0\xe3\xc8\x0f\x94\xa2\ +\xea\x72\xef\xce\x18\x08\x95\x97\x45\x47\x0d\x6e\xd5\x7f\xda\x50\ +\x97\xeb\x62\xbf\x32\x36\x3c\x95\xd9\xe9\xf3\x9d\x96\xe3\x2d\x16\ +\xc5\xe1\x3a\x1b\x7a\xd7\x9d\x9d\x53\xbc\xdd\x09\xc9\xdb\xc3\xb9\ +\xc4\x3e\xcd\xc1\x5d\xaf\x69\xa8\x09\xf5\x2f\x82\xd2\x48\xb4\x4d\ +\xb6\x52\xea\x86\xc4\xa1\xc7\xe3\x39\xeb\x78\x9b\xb5\x89\x0e\xe9\ +\x26\x7d\xd6\x89\x45\xd7\x09\x44\xb3\x8d\xae\xa2\x24\xaa\xa2\x1e\ +\x1a\x2d\x05\x7a\xa7\xb6\x53\x9e\xc1\x70\x14\xfe\xfb\xf3\xef\x1d\ +\xcc\xe3\x38\xfc\x4f\x61\x1e\x7b\x84\x5a\x81\x68\x51\xec\xc0\xea\ +\xee\xf2\xd9\x9e\x3d\x0e\x6d\x4a\x8d\xaa\x87\x74\x03\x1f\xdc\x4e\ +\x42\xff\x80\x81\x04\x40\xda\x31\x46\xc2\xb6\x81\xe9\x95\x9e\xd4\ +\x1a\x7d\x9a\x74\xae\x0e\x87\x49\xbc\x49\xed\xa6\xe9\xd7\x2a\xcd\ +\xb2\x2f\xf6\x90\xc1\x75\x6c\x94\xa6\x55\xa6\x07\x77\x74\xda\x58\ +\xdf\x5e\xa2\x81\x73\xb3\x69\xeb\x7d\xbd\x5a\xf5\x51\x19\x01\xa5\ +\x0b\x6c\x16\x2d\x74\x36\x77\xff\x69\x99\xce\x05\x77\x65\x8a\xdd\ +\x76\x53\x24\xba\xd9\xde\xf0\xab\xbe\xd2\xd4\xaf\x19\x4c\xce\x1f\ +\xf1\x84\x41\x7f\xd1\x98\xb4\x8d\xaa\x75\xd7\xdc\x9d\x72\x48\x9b\ +\x2b\xb0\x4d\xc1\xe2\xbe\xcb\x5e\xf6\xb9\x5f\x82\xef\xa3\xc5\x20\ +\xb5\x94\x95\x29\x1e\x75\x98\xc3\xc4\xde\xbc\x9f\x10\x18\xd2\xfb\ +\x4d\x64\x1e\xb5\x39\xb1\x9e\xd2\x32\x5d\xa4\x99\xdd\x53\xbf\x66\ +\xfa\x3e\x49\xcb\x2d\xd8\x0d\xb3\xa3\x4d\x33\xf7\x05\x8c\x70\xcb\ +\xac\xd8\x77\x7c\x9d\x47\xf0\xc7\x5b\x44\xf1\xa3\xf5\x34\x4f\xc2\ +\x28\x86\x3b\xb0\xb3\xfe\x74\xc9\xcb\x02\xca\x11\x50\x0c\x7c\x0a\ +\xe3\xde\xc4\x93\x88\xfa\xcc\x67\x4a\x39\x1e\x91\x50\x44\xc1\x99\ +\x09\xb4\xf2\xb6\x54\x3a\x31\xd0\x10\x70\x05\xf1\xa1\xae\x22\xe6\ +\x4b\x82\x03\x07\xee\x32\x21\xcc\x57\xc1\xc4\xa3\x88\x0a\x07\x54\ +\x88\x80\x29\xd1\x2f\xb1\x94\x5c\x42\xff\x06\xdb\xa1\x6d\x43\x01\ +\x63\x82\x05\xf5\x02\x34\x07\xf5\xa3\x1c\x5b\xc0\x95\x8f\x31\x21\ +\xd0\x3f\x43\x17\xc1\x81\x8b\x04\x57\x94\xc1\x1a\x8c\x00\x65\x50\ +\x97\x84\x93\xc1\x46\x81\x04\x18\xc6\x03\x31\x09\x6c\x0d\x76\x58\ +\xb7\x06\x8e\x04\x21\x90\x80\x2d\x5e\x80\xe4\xc9\x6e\x48\x55\x92\ +\x72\xe8\x0c\xac\xfd\x44\x08\xee\x70\x24\x31\x38\xa0\x40\xaf\x35\ +\xd6\x51\x48\xb4\xaf\x03\x83\xad\x7d\x56\xc5\x04\x9c\x0c\x30\xa5\ +\x7e\x30\x20\xb5\x6f\x60\x3a\x44\x83\x28\x2a\xa8\x03\x83\x3d\x11\ +\x81\xf2\x6b\xef\xed\x49\xa4\xa6\xc1\x92\x21\xa6\x38\x78\x2a\xc1\ +\x03\x30\x4f\x91\x56\xc7\x09\x16\xd8\x77\x40\xc4\x1a\x3f\xf1\x4e\ +\x4e\x00\x8d\x3a\xcf\xa3\xfa\x6f\xa0\x81\x60\x10\x24\xaf\xaf\xda\ +\x83\xfe\x22\xcf\x81\x5d\x18\x0f\x52\xe8\x53\x54\xed\x8c\xb6\x99\ +\xa6\xab\x45\x76\xef\x19\x66\xaf\x81\xf4\x54\x61\x6e\x80\xb4\x15\ +\x3d\xc3\x69\xb3\xb4\x28\x04\x53\xc2\xc5\xae\xaa\x86\xb4\xff\x16\ +\x69\x1e\xd6\x00\x6c\xa9\x90\x13\xb4\xc9\x20\xd7\x55\x21\x6f\x69\ +\xe7\x87\x79\x49\x04\xf5\xc7\x18\x00\xf8\xf0\x6e\x58\xea\xa9\x04\ +\x87\xf8\x5d\x2e\xc8\x30\xee\x1d\xb1\xa9\x11\x02\x1a\x43\x45\x03\ +\xdc\x7f\x8e\xee\xff\x5f\x90\x24\x52\x62\xd2\x77\xbb\xb6\x26\x32\ +\x84\x7d\x1f\xf2\x76\xdf\x73\xd5\x4d\x1b\x80\x9d\x0e\x5a\xae\xea\ +\x4a\xa7\xeb\x73\x16\x50\x66\x2f\x28\x80\x89\x01\x3a\xa1\xcd\x9b\ +\x8c\x5e\x3b\x09\xb8\x48\x83\x41\x68\x94\xaa\xc6\x73\x68\x64\x62\ +\xf7\xc7\x88\x80\x64\xfe\xf1\xb2\x2f\x95\x9f\xce\x21\x52\x2f\xcd\ +\x2e\xd3\xa1\x7e\xd2\x79\x91\x24\x43\xd0\x04\x74\x31\x06\x0d\x40\ +\xfd\xef\x0f\x1b\x1b\x7b\x80\x4d\xff\x65\xbb\x0f\x60\x3b\x24\xdb\ +\x20\x01\x76\xb8\xba\xc2\xb6\xb8\x80\x11\xc6\xa7\x9c\xf1\x4b\xb6\ +\x81\xdd\x36\xf9\xf8\x9c\x0e\xc6\xf7\x9e\x7d\xbc\xc6\xae\x13\x3d\ +\x4c\xca\x92\x30\xc6\xe5\xa4\x53\xef\x44\x4e\x27\x3c\xe9\xde\x1c\ +\xc8\x7d\xf0\xe3\x59\x74\x4a\x1f\x32\x1a\x6b\xb2\xe1\x75\xb9\x91\ +\xd8\xf3\x35\x24\xf7\x95\x94\x40\xef\xc7\x14\x66\x13\xab\x1c\x73\ +\xe8\x03\xc5\x2d\xbc\x5e\x94\xd6\x37\x55\xd6\x9b\x88\xbc\xac\xb5\ +\x0c\xd9\xab\xc3\xe8\x3b\xd6\x5c\xc2\x6c\x18\x18\x86\x69\x95\x0a\ +\xc4\xa9\x50\x0a\x2a\xdd\x04\x26\x30\x48\x11\x92\x07\xcc\xf1\xea\ +\xb1\x93\x71\x0c\x77\x1a\x38\x50\x15\xa0\x76\x11\x2e\x9d\x21\xdd\ +\x16\x2b\x68\xc2\x39\xbc\xfa\x88\x82\x16\xdf\xaf\xa5\xbd\x5e\xdc\ +\x1b\x33\x06\x27\x5c\xad\x2e\xdc\x93\xaf\xae\x2e\x17\xd8\x83\x30\ +\x6b\x9b\x5d\xa0\xc1\x8e\xfb\xe7\xc5\xcf\x7b\xfd\x83\x26\xfe\x22\ +\x7a\x4b\x8a\xe1\x8a\x25\x67\x75\x09\x29\x98\x3e\x02\xe1\xff\xbd\ +\x13\xcd\x09\x4c\xc4\x76\x47\xdc\xd6\x07\xb8\xd8\x94\x4b\xa9\x64\ +\x0f\x26\xd1\x43\x49\x8d\xa0\xc4\x9d\x21\xbd\x81\x12\xbb\x09\x25\ +\x7e\x03\x4a\xe2\x06\x90\x7e\x12\x8c\x66\xd3\xd5\xc3\xdd\xcc\xce\ +\x2a\x0f\x77\xff\x03\x83\x3b\xb2\xf2\ +\x00\x00\x08\x1e\ \x00\ -\x00\x1c\xb5\x78\x9c\xed\x59\xdd\x6f\xdb\x36\x10\x7f\xef\x5f\xa1\ -\x29\x2f\x2d\x16\x51\x22\x29\x51\x1f\x89\xd3\x87\x05\x1d\x0a\x74\ -\x18\xb0\xb6\xd8\x63\x41\x4b\xb4\xad\x45\x16\x05\x4a\x8e\xed\xfe\ -\xf5\x3b\xea\x5b\xb6\x1c\xa4\x18\x56\x60\x6b\x14\x24\x92\xee\x8b\ -\xc7\xe3\xef\xee\x28\xe6\xf6\xed\x61\x9b\x19\x8f\x42\x95\xa9\xcc\ -\x17\x26\x46\x8e\x69\x88\x3c\x96\x49\x9a\xaf\x17\xe6\xe7\x4f\xef\ -\xac\xc0\x34\xca\x8a\xe7\x09\xcf\x64\x2e\x16\x66\x2e\xcd\xb7\x77\ -\xaf\x6e\x7f\xb2\x2c\xe3\x17\x25\x78\x25\x12\x63\x9f\x56\x1b\xe3\ -\x7d\xfe\x50\xc6\xbc\x10\xc6\xeb\x4d\x55\x15\x91\x6d\xef\xf7\x7b\ -\x94\xb6\x44\x24\xd5\xda\x7e\x63\x58\x16\x68\x96\x8f\xeb\x57\x86\ -\x61\xc0\xb0\x79\x19\x25\xf1\xc2\x6c\xe5\x8b\x9d\xca\x6a\xb9\x24\ -\xb6\x45\x26\xb6\x22\xaf\x4a\x1b\x23\x6c\x9b\x83\x78\x3c\x88\xc7\ -\x7a\xf0\xf4\x51\xc4\x72\xbb\x95\x79\x59\x6b\xe6\xe5\xd5\x48\x58\ -\x25\xab\x5e\x5a\x3b\xb3\xa7\xb5\x10\x0e\xc3\xd0\x76\x88\x4d\x88\ -\x05\x12\x56\x79\xcc\x2b\x7e\xb0\xa6\xaa\xe0\xe3\x9c\x2a\x71\x1c\ -\xc7\x06\xde\x20\xf9\x3c\xa9\xe8\x90\x41\x24\x2e\x3a\x53\x73\xc7\ -\xa3\x43\xf4\x0b\xf8\xed\x15\x3a\x02\x2a\xe5\x4e\xc5\x62\x05\x9a\ -\x02\xe5\xa2\xb2\xef\x3f\xdd\xf7\x4c\xcb\x41\x49\x95\x8c\xcc\x74\ -\xc1\x9f\x8c\x3b\x59\x91\x9c\x6f\x45\x59\xf0\x58\x94\x76\x47\xaf\ -\xf5\xf7\x69\x52\x6d\x16\x26\x73\x8b\x43\xfd\xbe\x11\xe9\x7a\x53\ -\x8d\x08\x69\xb2\x30\x61\x86\x14\x07\x41\xfd\xde\xf9\x10\xf5\x40\ -\x72\x10\x25\x8d\x68\x6b\x78\xcc\x72\xd9\x54\x2b\x91\xb1\x76\x65\ -\x61\xf2\xa2\xc8\x8e\xa8\x8b\x5d\xaf\x2a\x77\x55\xb1\xab\xbe\x88\ -\x43\x25\xf2\xc6\x06\x78\x3f\x9a\x4a\xcd\xd6\x6a\x3d\xcd\xbc\x03\ -\x03\xb7\x89\x58\x95\xda\x50\xe3\xb0\x7e\xa3\x38\x74\x6a\x1e\x70\ -\x21\xea\x82\xab\x5f\x15\x4f\x52\xc0\x5a\x23\xd7\x48\x4e\x39\x94\ -\x7a\x6e\xab\x03\x5a\x65\x25\x8b\x4e\x16\xa6\x50\x1d\x33\xf0\x5b\ -\x13\xad\x58\x66\x52\x45\x57\x04\x7b\x7e\xec\xdf\xd4\x24\x09\xc1\ -\x4d\xab\x63\x84\x6f\xcc\x41\x47\xae\x56\xa5\x80\x68\x3a\x23\x5a\ -\x1d\x50\xd0\x80\xb1\x98\x69\xd8\xcf\x1f\x8d\x25\x9c\xaf\x56\xcf\ -\x18\x0d\xcf\x8f\x16\xf4\xa3\xdd\xda\xd3\x69\x3f\x1d\xa5\x6e\x69\ -\xc0\x8d\x4c\xc4\x60\x9f\x67\x7b\x7e\x2c\xfb\x41\x6a\x4c\x47\x1b\ -\x25\x20\x07\xaf\x66\xe2\xf9\x44\xb8\xbd\x30\xec\xd9\xeb\x96\xf8\ -\x39\x4f\x2b\x48\xb6\x5d\x29\xd4\x47\x0d\xd8\xdf\xf3\xcf\xa5\x38\ -\x93\xfa\xa4\x78\x5e\x42\x76\x6c\x17\xe6\x96\x57\x2a\x3d\xbc\x86\ -\x7a\xe6\x04\x60\x31\xb8\x76\xf4\x0f\xf2\x31\x61\xcc\xbd\xb6\x48\ -\x88\x98\x83\x71\x80\xaf\x69\x18\x20\xe2\xb9\xbe\xff\x66\xf0\x1d\ -\x2f\x4c\x42\x43\x82\x08\xc5\xb4\xa7\x1e\x81\x8a\x31\x03\x6a\xe8\ -\x0e\xd4\x03\x01\x59\x46\x03\x14\x7a\x83\x24\x19\x4b\xf6\xf1\xed\ -\x63\x56\x40\x26\x14\x10\x34\xa8\x5e\x9d\x4a\x9f\x0a\xd5\x51\x27\ -\xec\x54\x94\x26\xe6\x59\xdc\x1f\x8b\x2f\x07\x80\x90\x11\x19\x94\ -\xc0\x1f\x3c\x2b\x71\x6c\x24\x30\x14\x24\xb8\x39\xb3\x32\x5f\x75\ -\x5a\x3f\x61\xa6\xf5\xc0\x92\x2a\x5d\xa7\x90\x79\xb5\x1c\xc1\x88\ -\xd6\xd7\x54\x07\xd6\x72\x34\x37\xc8\xb5\x0e\xcb\xb7\xb6\x4e\xbe\ -\xfa\xa9\x9f\xa9\xce\xf8\xe4\x31\x15\xfb\x21\x43\x97\xbc\x5f\xd4\ -\x82\xaf\x45\x0d\x71\x80\xcf\xaa\xbe\x5a\xc6\x52\xaa\x44\xa8\x8e\ -\xc5\xea\x6b\xc2\x6a\xb3\xa0\xe9\x65\xaf\x4e\x26\x03\x56\x7b\xbe\ -\x33\xcf\x2f\x37\x3c\x91\x7b\x58\xd5\x53\xe6\x57\x29\x01\x58\x04\ -\xf9\xde\x29\x27\x86\xa5\x20\x1e\x40\xcd\xc5\x61\x70\xc6\x3c\x6a\ -\xa5\x80\x52\x00\x62\x78\xc6\xdc\x29\x05\xc0\xb5\x32\x7e\x14\x30\ -\x9f\xfa\xd6\x05\xb4\xdc\xc8\xfd\x5a\xe9\xb8\x54\x6a\x27\x4e\x35\ -\xa1\x66\xee\x74\x8f\xb4\x76\x4d\x6a\xb4\x95\x79\x24\xa1\x75\xad\ -\xe5\x52\x1e\xe6\x0d\xec\xd3\x1c\xe6\x69\xf5\xb5\x1e\x5f\x10\xe8\ -\x8a\xbf\x4f\xce\x22\xd2\x4a\x1c\x86\x5a\x76\xca\xd2\x73\xf7\x3a\ -\x10\x6c\x45\xc5\x13\x5e\xf1\x61\xc1\x3b\x0a\x40\x85\x76\x65\x19\ -\x9a\x72\xf4\xc7\xfd\xbb\xbe\x04\xc6\x71\xf4\xa7\x54\x0f\x43\xf5\ -\xd2\x02\x7c\x09\x45\x7f\x61\xf6\x65\x59\x17\xfb\x38\xd2\xa9\xcf\ -\xab\xbb\x74\x0b\xcb\xa8\x3b\xf0\xcf\xd0\x08\x01\x7a\x3d\x63\x22\ -\xac\x33\x6d\x30\xda\x98\x55\xa2\xe9\xb0\xb3\x9b\x92\x24\xde\xa6\ -\x5a\xc9\xfe\x58\xa5\x59\xf6\x5e\x0f\x32\x2e\xd5\x76\xeb\x68\x57\ -\x4d\x47\xf3\xb8\xb5\xbb\x89\xd6\x6f\xeb\x21\x00\x93\x05\xef\x83\ -\x97\xf1\xa5\xc8\x16\xe6\x07\xcd\x34\xce\xb8\x6b\x25\x77\xc5\x56\ -\x26\xa2\x55\xef\x02\xb7\x1e\xe7\xe1\x9a\x32\x3c\x64\x66\x75\x56\ -\x18\x1d\x84\xbd\xc0\xf7\x3c\xdc\x16\xc6\xee\xcd\xa2\xcc\xd1\xa5\ -\x91\xb1\x6b\x0b\x7b\x2e\xc2\x14\x63\xf7\xcd\xd0\xfe\x0a\x5e\x6d\ -\xa6\x8d\x44\x41\xb6\xeb\x6a\x39\xea\x2f\x40\xfd\xcd\x80\xe2\xe9\ -\xa3\x10\x7b\xe4\x1a\x3b\x75\xbd\x70\x5c\xe3\xc3\x98\x4a\x3d\x8a\ -\x98\xef\x62\x4d\x75\x5d\x0a\x43\xd1\xf0\x12\x95\x04\x04\x85\x01\ -\xf3\x35\xd5\x23\x2e\x54\x56\x87\x5c\xa2\x42\x7f\x41\x8e\x1b\xd6\ -\x16\xa0\x97\x40\xbe\x06\xda\x82\x47\x90\x4b\x1a\xbb\x83\x2c\x66\ -\x21\xa4\x66\xe3\xd9\xc8\x2e\x01\x59\xcf\x73\x4f\x7c\x98\xa5\xce\ -\xcf\xad\xa7\x7e\x1d\x85\xa5\x6d\xdf\x2b\x40\x4f\x74\xe5\xd4\xd7\ -\x8d\x7e\xe9\x1b\xb7\x83\x3c\x46\xb1\xc3\x7c\xd6\xd0\xd5\x2e\x13\ -\x91\x78\x14\xb9\x4c\x12\x68\xf1\x4a\x3e\x88\x28\x87\x5d\x78\xfb\ -\xdc\xe4\x6e\x84\xc1\x15\x50\xf2\xdc\x80\x76\x0c\xdd\x51\x01\x2b\ -\xd1\x72\x57\x55\x63\xda\x5f\x32\xcd\x23\x40\xb1\x50\x37\x5b\xae\ -\x1e\x84\x6a\xcc\x35\xcf\x16\x6c\xf3\x55\x35\xa1\x6c\xd3\x64\xf2\ -\x2e\xf2\x64\xe2\x40\x6d\x2a\x4b\xe1\x16\xb9\x1d\x2d\xe1\x50\x41\ -\x95\xe2\xc7\x89\xa4\xa6\x36\x5b\x91\xc8\xe9\x68\xc3\x7e\xe5\x31\ -\x2d\xd3\x65\x9a\xe9\x97\xfa\x31\x13\x37\x49\x5a\x16\x00\x6f\xd8\ -\xc5\x6a\xc7\x6f\x24\x6c\x1f\x57\x99\xdc\xf7\x7c\x91\x73\xb8\x59\ -\x4b\x1e\x3f\xe8\x84\x00\xc7\x78\x0c\x15\x71\x97\xc1\x27\xc9\x38\ -\x2d\x35\x3c\x47\x80\xed\x92\x48\x1c\x0a\xa9\x2a\xeb\x98\x14\xb0\ -\xcd\x06\x98\xb3\x80\x06\x7d\xed\x9e\x93\x3c\x3c\x5b\x12\x96\x4e\ -\x34\xdb\x59\x7b\x23\xb7\xc2\x3e\x42\xeb\x7c\xb0\xef\xdb\x7a\x5d\ -\xda\x1f\xf8\xd2\xbe\x57\x7c\x55\xd9\x69\x0c\x5f\x2e\x76\xbc\xe1\ -\xf9\x5a\x14\xd0\xb8\x50\x91\xaf\x47\x86\xa1\x78\x86\xa1\x87\x5c\ -\xdf\x65\xe3\xdd\x9b\x6e\x36\x54\xe3\x0f\x30\x3d\x22\x77\x75\x9a\ -\x52\x82\xa8\xcb\x5c\x7f\xc4\x6b\x8b\x3c\x28\x20\xe2\x50\x36\xce\ -\xd5\x21\x85\x99\x7b\x09\xab\x4d\x03\x9e\x62\x15\x5f\x86\x68\x87\ -\xed\x17\x94\xfe\x20\x28\xc5\x0e\x76\x50\x48\x29\x3b\x45\xa9\xe7\ -\x23\xec\x92\x60\x06\xa5\x2c\x40\x9e\x0f\x3c\x76\x8e\x52\x80\xbc\ -\xe6\xf8\xe1\x0c\x4a\x61\xcb\xe9\x5d\x46\xe9\x79\x45\x7d\x02\xa5\ -\x33\x85\x94\x40\xe7\xd3\x17\x0d\x5e\x20\xfa\xbf\x83\x68\xc0\xbe\ -\x1b\x44\xfd\xa7\x0a\xe9\x0b\x44\x5f\x20\x3a\x0f\x51\xcc\xdc\xef\ -\x06\xd1\xf0\xa9\x7d\xe9\x37\xf4\xfa\x17\x88\xfe\x50\x10\x25\x2e\ -\xf9\x5e\x10\x75\xf1\x65\x88\xbe\x54\xd1\x7f\x11\xa2\x27\x9f\xf8\ -\xff\x25\x88\x0e\x87\x8b\x32\x11\xfa\xac\xa6\x5c\x98\x71\x7b\x9d\ -\x80\x4c\xcf\x12\x40\x46\x47\xe4\xe6\xd8\xc2\x73\x43\xe4\x06\xae\ -\x7b\x8d\x31\x7c\x64\x85\xcc\x6f\x8e\x17\x06\x6a\xc8\x90\x17\xd6\ -\x44\x98\x16\x82\xbd\x6f\x70\x81\x48\x74\x56\x50\x27\x98\xea\xcf\ -\x53\xa9\x03\x5a\x21\xa9\x8f\x11\x18\xd1\x7d\x80\xf9\xfa\xc8\x01\ -\xcc\x9e\x48\xf6\x5e\x5d\x3a\x5a\xd8\xa9\xec\xf5\xe9\x91\xbb\x17\ -\x86\x6f\xfe\xe1\xf7\x9b\x83\x02\x58\x47\x1c\x7a\xdf\x92\x33\xdf\ -\x8c\xfa\xde\xbd\xd1\xff\x25\xd6\xcd\x19\x1a\xdc\x6e\xf5\xa9\xde\ -\xdd\xab\xbf\x01\x27\x65\xb4\xab\ +\x00\x27\x42\x78\x9c\xed\x59\x5b\x8f\xdb\xb8\x15\x7e\x9f\x5f\xa1\ +\x3a\x2f\x1b\xd4\xa2\x79\x13\x49\x69\xec\xd9\x87\x06\x5b\x2c\xb0\ +\x45\x8b\x26\x41\x1f\x17\xb4\x44\x7b\xb4\x91\x25\x43\x92\xc7\x76\ +\x7e\x7d\x0f\x75\xb3\x64\x6b\x2e\x99\xd9\x4e\x76\xd3\xd8\x48\x2c\ +\xf1\x1c\xde\xbe\xf3\x9d\x8f\x97\x99\xff\x78\xd8\x24\xce\x9d\xc9\ +\x8b\x38\x4b\x17\x13\x82\xf0\xc4\x31\x69\x98\x45\x71\xba\x5e\x4c\ +\x3e\x7e\xf8\xc9\x55\x13\xa7\x28\x75\x1a\xe9\x24\x4b\xcd\x62\x92\ +\x66\x93\x1f\x6f\xae\xe6\x7f\x71\x5d\xe7\x6f\xb9\xd1\xa5\x89\x9c\ +\x7d\x5c\xde\x3a\x3f\xa7\x9f\x8a\x50\x6f\x8d\xf3\xc3\x6d\x59\x6e\ +\x83\xd9\x6c\xbf\xdf\xa3\xb8\x29\x44\x59\xbe\x9e\xbd\x75\x5c\xf7\ +\xe6\xea\x6a\x5e\xdc\xad\xaf\x1c\xc7\x81\x7e\xd3\x22\x88\xc2\xc5\ +\xa4\xa9\xb0\xdd\xe5\x49\xe5\x18\x85\x33\x93\x98\x8d\x49\xcb\x62\ +\x46\x10\x99\x4d\x4e\xee\xe1\xc9\x3d\xb4\xbd\xc7\x77\x26\xcc\x36\ +\x9b\x2c\x2d\xaa\x9a\x69\xf1\xa6\xe7\x9c\x47\xab\xce\xdb\x8e\x66\ +\xcf\x2a\x27\xe2\xfb\xfe\x0c\xd3\x19\xa5\x2e\x78\xb8\xc5\x31\x2d\ +\xf5\xc1\x1d\x56\x85\x31\x8e\x55\xa5\x18\xe3\x19\xd8\x4e\x9e\x4f\ +\xf3\x0a\x0e\x09\x40\x71\xef\x60\x2a\x6b\xbf\x77\x80\x7f\x0b\xff\ +\xba\x0a\x6d\x01\x2a\xb2\x5d\x1e\x9a\x15\xd4\x34\x28\x35\xe5\xec\ +\xdd\x87\x77\x9d\xd1\xc5\x28\x2a\xa3\x5e\x33\x2d\xfa\x83\x7e\x07\ +\x21\x49\xf5\xc6\x14\x5b\x1d\x9a\x62\xd6\x96\x57\xf5\xf7\x71\x54\ +\xde\x2e\x26\x82\x6f\x0f\xd5\xfb\xad\x89\xd7\xb7\x65\xaf\x20\x8e\ +\x16\x13\x98\x21\x13\x84\x56\xef\x3d\x02\x91\xda\xa1\x69\x2e\xe8\ +\x2c\x18\x71\x85\x18\x22\x4e\xee\x2b\x25\x2a\xa7\x76\xe4\x41\x94\ +\x85\x76\x28\x8b\xc9\xbb\x5c\xaf\xca\x5f\xdf\x43\xf8\xc3\xf2\x5f\ +\x89\x4e\x0d\xb2\x38\xde\x80\xf3\x3c\x32\xab\xc2\x56\xaa\x3b\xb7\ +\x6f\xd0\x3b\xaf\x6c\x60\xed\xfa\xdb\x42\x7f\x5b\xa8\x0d\xcc\xa8\ +\xbd\x7b\xdd\x94\x47\x0b\xc6\xd0\x95\xd5\x88\x39\x83\x31\x6f\x7f\ +\x3d\xc0\x80\x9d\xc0\x61\x14\xfe\x23\xa3\x1e\xc7\xda\x83\x40\xb0\ +\xe1\x07\x8f\xfa\x7c\xb6\x90\x3d\xd0\x4c\x33\x02\x37\xcb\xe3\x75\ +\x0c\x18\x55\x7e\x94\x20\x56\x7d\x86\x75\x60\xd2\xbd\xb9\x31\x41\ +\x21\x53\x67\x4f\x98\xfd\x79\x45\x4f\xa9\xc7\x07\x82\x91\x67\x27\ +\xd5\x0c\xe4\x7c\x28\xc3\x19\x92\xca\xd3\x7b\x11\x50\x0d\xdc\xe7\ +\xcd\x3c\x16\xb9\x67\x01\x20\x7c\xfa\xed\x01\x90\xeb\x28\xd6\xc9\ +\xdf\xed\x0f\xe8\xe6\x45\x0f\x61\x96\xd8\x94\x5a\x4c\x74\xb2\xd7\ +\xc7\xa2\x6b\xbf\x52\x9e\xe0\x36\x37\xa0\x94\x6f\xe0\xd9\xe8\xbc\ +\x6d\x83\x11\xce\x5d\x31\xe0\xdf\xb0\x13\x26\x14\xef\xcc\xeb\xa6\ +\xf0\x63\x1a\x97\x20\x8a\xbb\xc2\xe4\xef\xad\xb0\xfc\x33\xfd\x58\ +\x98\x0b\xaf\x0f\xb9\x4e\x0b\x50\xb1\xcd\x62\xb2\xd1\x65\x1e\x1f\ +\x7e\x20\x53\x6c\xbf\x48\xf8\xca\xa3\x3e\x87\x67\x8a\x29\x52\x54\ +\x09\xf6\xb6\xab\x1e\x02\x4a\x94\x7a\x88\x0a\x8e\x4f\x31\x0c\x01\ +\x5f\x21\x29\x92\xbe\x64\xa7\xf1\xae\x46\x7d\x57\xa3\xbe\x39\x64\ +\x1e\x47\x8c\x7b\x04\x72\xa3\x83\x74\x08\x47\x1f\x87\x51\xa0\x6e\ +\x1a\x8f\x79\x51\x66\xdb\xd6\xbb\x51\x4a\x28\x01\x2f\xe1\xfa\x93\ +\x93\xa1\x28\x8f\x89\xa9\x6d\x2e\x84\x27\xcb\x83\x37\xab\xea\x73\ +\x5d\x15\x65\x80\x5e\x5c\x1e\x03\xd2\xab\x92\xad\x56\x85\x81\x20\ +\x9e\x32\xff\xa1\xee\x94\x4b\xbf\xbc\x3b\x3c\xd2\x1d\x39\x61\x32\ +\x1b\x4e\xfd\xab\x92\x4f\x7c\x27\x1f\xe0\x20\x31\x79\x94\x7a\x12\ +\xb3\xd7\x23\x9e\xc4\xde\x37\x4d\x3b\xf5\x9d\x76\x15\xed\xd4\xe3\ +\xb4\x23\xf8\x15\x69\x47\xbe\xae\xda\x0d\xf0\x7c\x18\xfa\xf1\x30\ +\x8d\x87\x74\x3c\xfc\x2f\xe4\xd4\xd3\x88\x3b\xc2\x7e\x49\xd9\x73\ +\xd2\xe8\xbe\x8c\x7c\xd6\xf6\x4d\xf5\xf4\xe5\x9b\xd9\xbe\xdd\x93\ +\x77\x2f\x91\x32\x25\xb8\x8b\x5d\x3c\x79\x20\x89\x7d\xf6\xfb\x6d\ +\xe0\x30\xa2\x94\x60\xca\xc5\x14\xce\xa1\x9e\x54\x3e\x15\xc4\x3e\ +\x4a\x22\x7c\x5f\xf8\xcc\x3e\x33\x8f\x71\x01\xeb\xc3\xd4\x23\x3e\ +\xf2\x15\x56\xde\x94\x0b\x8e\x88\x4f\x79\x8f\x9d\x07\x02\x89\xe0\ +\x0b\x24\x24\xa3\x27\xca\x1f\xa1\x54\x4a\x84\xb9\xa0\xbd\x51\x1f\ +\x28\xf8\x7a\x1c\x29\x8c\x7b\xd4\x3c\x42\x29\x21\x1e\xc2\xc4\x97\ +\xfc\x19\xe2\xd6\x42\xf7\x98\xe6\x28\x21\x5c\xcf\x95\xa3\x8a\xf5\ +\xa0\x16\x61\x41\xfc\x10\x9f\x09\xdf\xf5\x13\x54\x4e\x09\xe5\xca\ +\x5e\x6a\xf5\x65\xeb\xc1\x1e\x99\xf4\xc3\xd5\xf2\xde\x1e\xef\x91\ +\xba\xff\x01\x2d\x99\x94\x0f\x52\x92\xd3\x01\x11\x3c\x5f\x22\x29\ +\xa9\x62\x03\x22\x70\x8e\x80\x6a\xac\xef\x6b\x89\x00\xac\x62\x98\ +\x51\x35\x20\x02\x03\x66\x4a\xfe\x64\xa6\x7f\x39\x5b\xec\x8c\x1e\ +\x8b\x1b\xc0\xff\xe5\x2c\x59\xad\xb4\xc6\xcf\x61\x09\x53\x63\xab\ +\xe8\x23\x0c\x59\xe9\xd5\x8a\xfe\x11\x18\x52\x65\xdf\x43\x1c\x11\ +\x9e\xfc\x4a\xb2\xc5\x04\xe2\x84\x7a\x64\xca\x61\xa1\xb6\x97\x5f\ +\x2f\x51\x2d\xe8\x04\x73\xcf\x1f\xaa\x16\xf3\x11\xc7\xbe\xa2\xcf\ +\x55\xad\xa7\x69\xd6\x6b\x2b\xd6\xab\xe8\xd5\x7c\x66\x2f\x05\xab\ +\xa7\x6e\xdd\xb5\xb7\x8a\xd1\x5d\x6c\xf6\x57\xdd\xa8\x96\xba\x23\ +\xc6\x56\xaf\x4d\xd5\x1f\x90\xb0\xde\x1e\x36\x86\x65\x96\x47\x26\ +\x6f\x4d\xa2\xfa\x0c\x4c\xcd\x90\xea\x0b\xf3\xab\x21\xe7\x6d\xab\ +\x9d\x1d\x8f\xdb\x8b\x5b\x1d\x65\x7b\xd8\xda\x9d\x1b\x3f\x67\x19\ +\x90\x13\x76\x81\xde\xb9\xa5\xda\x09\x32\xe4\x09\x8f\x79\x97\xc6\ +\xa3\xdd\x26\x22\xc2\x38\x16\xf2\xc2\xb8\xcb\x73\xc0\xc8\x4d\xf4\ +\xd1\xc0\x7c\xaa\x9f\x16\xfe\xe2\x36\xdb\xaf\x73\x8b\x4b\x99\xef\ +\xcc\x79\xcd\x28\x0b\x77\xf6\x1e\xde\xdd\xd5\xe9\xd5\xdc\xfe\xf6\ +\x3c\x6c\x5d\x77\xb9\xcc\x0e\xe3\x0d\xec\xe3\x14\xe6\xe9\x36\xf7\ +\xc9\x84\xaa\x0b\x34\x1a\x8f\xf6\x86\x59\xca\x8b\xe1\x37\x1e\x87\ +\x13\x47\xcf\x4d\xc7\xfb\x4d\x1b\x7d\x88\x37\xf1\x67\x13\x9d\x18\ +\xd7\xb9\x14\xa9\xde\xba\xeb\x24\x5b\xea\x64\x31\x59\xe9\xa4\xb8\ +\x18\x7e\xe5\x91\x66\x91\x29\xc6\xa7\x97\x2d\x7f\x03\x75\x1b\x78\ +\xd4\x0c\x9d\x6f\x4c\xa9\x23\x5d\xea\x13\xef\xda\x12\x90\x8d\x76\ +\xbd\x98\xe7\xd1\x2a\xf8\xf7\xbb\x9f\xba\x1c\x0a\xc3\xe0\x3f\x59\ +\xfe\xe9\x94\x19\xd6\x41\x2f\xb3\x1d\x20\xd3\x65\xb6\xbd\x0b\x0f\ +\x03\xab\x62\xba\xbc\x89\x37\xc0\x26\xfb\xc7\x86\xbf\x1e\x36\x09\ +\x64\x40\x67\x18\x38\xdb\xed\xe7\xa9\xd1\xba\xd9\xdc\xd4\x7f\x4c\ +\x18\xfd\xfb\x4b\x14\x6e\x62\x5b\x69\xf6\xbe\x8c\x93\xe4\x67\xdb\ +\x49\x2f\xd7\x9b\x46\xe3\x32\x31\x37\x55\x9f\xf5\x63\x3b\x8b\x59\ +\x33\x8d\x36\x55\x7b\xb3\x9c\xcf\x5a\x18\xaa\xb7\xf5\x09\x9e\x01\ +\x2b\x3b\x80\x13\xbd\x34\x10\x9c\x5f\xac\xd1\xb9\xb0\xae\xf3\x6c\ +\xb7\xdd\x00\xf8\x4d\xf5\x16\xd6\x75\x5f\x25\xd7\x1c\x43\x32\x75\ +\x83\xdb\xea\xf2\xb6\xa7\x3c\x9d\x50\x40\x2b\x76\xc2\x10\xc6\xb0\ +\xfe\xf4\xf4\xa9\xb7\x9c\xa5\x29\x04\x3c\xcb\x5d\xc8\xa9\x3b\x5d\ +\xee\x72\x33\x54\xce\xea\xb0\x02\x3d\x30\x36\xb8\x05\x81\xd2\x7f\ +\x38\x8c\x21\xc1\xe0\xcb\xa7\x0c\x61\xdf\x7e\x89\x03\x6a\xef\xd9\ +\xaf\x37\x25\xc2\x49\x1c\x3c\xe5\x5e\x53\xe2\xfc\xe2\x10\x8a\x1a\ +\xa3\x20\xb0\x87\xb1\x5f\xc7\x23\x5d\x23\x3e\x52\x04\xbe\xd4\x96\ +\xd5\xd6\x5e\xc3\x9f\x2f\xe5\x75\x05\x91\x04\x21\xc7\xcb\x70\x69\ +\x8f\xc1\x79\xf6\xc9\xd8\x57\x68\x1f\x37\xaf\x75\x9e\x06\xb4\x7d\ +\xb5\x1a\x0b\xf3\x0e\x96\xbb\xb2\xec\x97\xfd\x96\xc5\x69\x00\x04\ +\x31\x79\x5b\x7a\x92\xe8\xa6\xa0\xb2\x26\x90\x7a\x65\xc0\xdb\xb2\ +\x48\x83\xec\xe5\xb9\x3e\x02\xda\xa9\xb9\xb6\xe3\x39\x9d\xc4\x91\ +\xac\x4f\x6a\xde\xf5\xe9\x26\xa0\xb7\xba\x3c\x25\x6c\x2f\x8b\x18\ +\xf1\xf1\x79\xc4\x28\x12\x8a\x48\x41\xf8\x14\x76\x96\x0a\x74\x97\ +\x53\x07\x0e\xf9\x94\xc2\x58\xc9\x14\x44\x5a\x70\xc5\xe9\xc8\x4a\ +\x56\x41\x5d\x4d\xf2\xeb\xe3\xfc\xea\x28\x0e\x96\xfb\x3e\x8e\x98\ +\x4d\x39\x83\x6d\x13\xf5\x18\x71\x80\xd2\x0c\xc8\xcb\xfc\x29\x21\ +\x40\x73\xe1\x79\x23\x97\xe3\xff\xdf\x38\xfa\xe7\x38\x92\x96\x90\ +\x56\x10\x88\xc2\x92\x30\x8b\x23\x01\x39\xa0\x64\x0a\xcc\x54\x70\ +\x94\x56\xe2\x3b\x8e\x43\x1c\xc9\x10\xc7\x8d\x15\x4c\x09\x5b\x7d\ +\x46\x2d\x8e\xd8\x26\x33\x07\x25\xb6\x4a\x2b\xfc\xa9\xcb\xed\xce\ +\x9e\x53\xf9\x67\x85\xf1\x19\x28\x51\xca\xcf\x31\xf2\xeb\x75\x86\ +\x49\xd0\x39\x21\xec\xb9\x5c\xc1\xf2\xe4\x29\x38\x19\x29\xcc\xf9\ +\xc8\x65\xeb\xb7\x8c\x8e\x7b\x81\x0f\x83\x15\xab\x5a\x75\x61\xd1\ +\xe5\x9e\xe4\xd2\xf7\x2c\x3e\x12\xf9\x3e\x27\x8c\x8c\xfc\x0d\xe4\ +\x8f\x8a\x4f\x0e\x28\x9c\x06\x5b\x8e\x1c\x91\x95\x54\x0c\x03\x07\ +\xec\x61\x98\x4b\x65\xcf\xa7\x53\x3c\xad\xae\x9a\xdf\xf6\xe6\x09\ +\xdb\x70\xe6\x21\xca\xfd\xc1\x65\x87\x3d\xb6\x58\x85\x27\x82\xf7\ +\x13\xb1\xdd\xf0\x83\x4d\x50\xe9\xab\x7e\xba\x35\xc7\x05\x2a\xe0\ +\x18\x24\x28\x56\x67\x41\xb1\x03\x66\x44\x8e\x9c\x58\xdb\xc3\x6a\ +\xf5\xb9\xae\x37\x3c\xcd\xbd\xff\x60\xb7\x41\xea\xd7\x7c\x97\x98\ +\xc0\xdc\x19\xd0\x9b\xa8\x17\x94\xaa\xf2\x20\x28\x0c\x51\x4c\xb0\ +\x4f\xb9\x3a\x8f\x0e\xec\x40\xd3\xe8\x22\x3c\x83\xd2\xb1\x68\x5c\ +\x84\xec\x6c\x6f\xd4\x2b\xad\x0f\xcc\x01\xbe\xde\xe8\xfc\x93\xc9\ +\x6b\xfb\x5d\x5c\xc4\xcb\x38\xb1\x4d\x54\x8f\x89\xb9\x8e\xe2\x62\ +\x0b\xbb\xe0\x20\x4e\xed\x30\xae\xb3\x3b\x93\xaf\x92\x6c\xdf\xd9\ +\x4d\xaa\xe1\xc7\x5d\xea\xf0\xd3\xba\x1a\x5f\xa0\x43\x38\xdd\xed\ +\x12\x5d\xfe\xfe\xe9\x22\x47\x24\xb7\xde\xd7\xda\x6d\x13\xa3\x1e\ +\xd0\xa8\x96\x13\xe6\x31\xac\xbc\x3f\x8b\x9c\xcc\x67\xeb\xfa\x18\ +\x03\x3f\x73\x7b\xec\xba\xb9\xfa\x2f\xd9\x7f\x1d\x21\ +\x00\x00\x06\xc5\ +\x00\ +\x00\x19\x86\x78\x9c\xdd\x58\x59\x6f\xe3\x38\x12\x7e\xcf\xaf\xd0\ +\x2a\x2f\xdd\xd8\x88\xe2\xa1\x83\x54\xec\x0c\x16\x1b\xcc\x62\x80\ +\x01\x16\x98\xe9\xc6\x3c\x36\x68\x89\xb6\xb5\x91\x25\x81\x92\x63\ +\xbb\x7f\xfd\x16\x75\xcb\x76\x1a\x69\xf4\x74\x63\x32\x0a\x12\x5b\ +\x75\x90\xac\xaa\xaf\x0e\x66\xf1\xd3\x71\x97\x59\xcf\x4a\x57\x69\ +\x91\x2f\x6d\x82\xb0\x6d\xa9\x3c\x2e\x92\x34\xdf\x2c\xed\x8f\x1f\ +\x7e\x76\xb8\x6d\x55\xb5\xcc\x13\x99\x15\xb9\x5a\xda\x79\x61\xff\ +\xf4\x70\xb3\xf8\x87\xe3\x58\xff\xd6\x4a\xd6\x2a\xb1\x0e\x69\xbd\ +\xb5\x7e\xc9\x9f\xaa\x58\x96\xca\x7a\xb7\xad\xeb\x32\x72\xdd\xc3\ +\xe1\x80\xd2\x8e\x88\x0a\xbd\x71\xdf\x5b\x8e\xf3\x70\x73\xb3\xa8\ +\x9e\x37\x37\x96\x65\xc1\xbe\x79\x15\x25\xf1\xd2\xee\x14\xca\xbd\ +\xce\x1a\xc1\x24\x76\x55\xa6\x76\x2a\xaf\x2b\x97\x20\xe2\xda\xa3\ +\x78\x3c\x8a\xc7\x66\xf7\xf4\x59\xc5\xc5\x6e\x57\xe4\x55\xa3\x99\ +\x57\xb7\x13\x61\x9d\xac\x07\x69\x73\x9a\x03\x6b\x84\x88\x10\xc2\ +\xc5\xd4\xa5\xd4\x01\x09\xa7\x3a\xe5\xb5\x3c\x3a\x73\x55\x38\xe3\ +\x35\x55\x8a\x31\x76\x81\x37\x4a\xbe\x4e\x2a\x3a\x66\xe0\x8a\x17\ +\x0f\xd3\x70\xa7\xbb\x83\xfb\x4b\xf8\x1d\x14\x7a\x02\xaa\x8a\xbd\ +\x8e\xd5\x1a\x34\x15\xca\x55\xed\x3e\x7e\x78\x1c\x98\x0e\x46\x49\ +\x9d\x4c\x96\xe9\xbd\x3f\xdb\x77\x16\x92\x5c\xee\x54\x55\xca\x58\ +\x55\x6e\x4f\x6f\xf4\x0f\x69\x52\x6f\x97\x76\xe0\x95\xc7\xe6\x7d\ +\xab\xd2\xcd\xb6\x9e\x10\xd2\x64\x69\x83\x85\x8c\x70\xde\xbc\xf7\ +\x67\x88\x06\x24\x61\xc4\x68\x2b\xda\x2d\x3c\x65\x79\x1c\x31\x44\ +\x2c\x2d\x38\x0f\xe6\xfa\x49\x11\x9b\x43\x2d\xed\x47\x2d\xd7\xf5\ +\xa7\x7f\x95\x65\x76\x42\xbd\x2f\x87\xa5\x8a\x7d\x5d\xee\xeb\x4f\ +\xea\x58\xab\xbc\x5d\x13\xac\x99\x98\xd6\xb0\x8d\x1a\x9a\x99\x35\ +\x81\x39\xb1\x1f\x80\xb2\x48\xd4\xba\x32\x9c\xd6\x22\xf3\xc6\x88\ +\xc0\x0d\x0f\xb8\x10\x16\x25\xf5\x7f\xb4\x4c\x52\x00\x63\x2b\xd7\ +\x4a\xce\x39\x8c\xf9\x5e\xa7\x03\x5a\x55\x5d\x94\xbd\x2c\x58\x56\ +\x9f\x32\x30\xc7\x10\x9d\xb8\xc8\x0a\x1d\xdd\x52\xe2\x87\x71\x78\ +\xdf\x90\x0a\xf0\x7e\x5a\x9f\x22\x72\x6f\x8f\x3a\xc5\x7a\x5d\x29\ +\x70\x37\x9e\xd0\x1a\x8f\x83\x06\xec\x15\xd8\x96\xfb\xfa\xdd\x82\ +\x44\xca\xf5\xfa\x15\xbb\x91\xeb\xbb\xf1\x61\xb7\x85\x3b\x37\xfb\ +\xcb\x5e\xea\x63\x05\xc7\xc8\x54\x0c\xeb\xcb\xec\x20\x4f\xd5\xb0\ +\x49\x03\xfa\x68\xab\x15\x24\xe9\xed\x15\x7f\x7e\xc1\xdd\xbe\x10\ +\x03\x7b\xd3\x11\x3f\xe6\x69\x0d\xd9\xb8\xaf\x94\xfe\xdd\x20\xfa\ +\xbf\xf9\xc7\x4a\x5d\x48\x7d\xd0\x32\xaf\x20\x7d\x76\x4b\x7b\x27\ +\x6b\x9d\x1e\xdf\x41\xc5\xc3\x1c\x56\xe4\x77\xd8\xfc\xa0\x90\xd0\ +\x20\xf0\xee\x1c\x2a\x50\x80\x09\xe1\xe4\x8e\x09\x8e\xa8\xef\x85\ +\xe1\xfb\xf1\xec\x64\x69\x53\x26\x28\xa2\x8c\xb0\x81\x7a\x02\x2a\ +\x21\x01\x50\x85\x37\x52\x8f\x14\x64\x03\xc6\x91\xf0\x47\x49\x3a\ +\x95\x1c\xfc\x3b\xf8\xac\x04\xa0\x96\xe0\x34\x28\x6f\xbd\xca\x90\ +\x21\xf5\xc9\x64\xf4\x5c\x94\x25\xf6\x85\xdf\x9f\xcb\x4f\x47\x80\ +\x90\x15\x59\x8c\xc2\x1f\x72\x55\xe2\xd4\x4a\x10\xa8\x58\xf0\x81\ +\xaf\xca\x7c\x36\x79\xff\x85\x65\xba\x13\x38\x85\x4e\x37\x29\x24\ +\x57\x23\x47\x09\x62\xcd\x33\xd7\x81\x58\x4e\x6c\x83\x5c\x1b\xb1\ +\xfc\xe3\x71\x44\x85\x08\xfe\x34\x1c\x61\x04\x59\x1d\x70\xca\xc3\ +\x0e\x48\xc4\xc7\x5c\x50\xc2\xee\x1c\x40\x17\x0a\x7c\x02\xa0\x22\ +\x4c\x20\xec\x87\x98\x7d\x5f\x28\x2d\x5c\x53\xc9\x9a\x6f\x03\x6c\ +\x4c\x55\x4d\x9e\x53\x75\x18\xcb\xdd\x4a\x0e\x96\x95\x72\xa3\x9a\ +\x7a\x01\x3e\x5c\x37\x4f\xc7\x58\x15\x3a\x51\xba\x67\x05\xcd\x33\ +\x63\x75\x25\xa5\x1d\x1d\x6e\xce\x90\x01\xab\x0e\x7c\x7c\x9d\x5f\ +\x6d\x65\x52\x1c\xc0\xae\x73\xe6\xe7\xa2\x00\xef\x52\xe4\x09\x0c\ +\x6d\x82\x9c\xb3\x63\x00\x37\x0d\x51\xc8\x08\x66\x17\x3c\x73\x1c\ +\x8c\xb8\xcf\x3d\xea\x5f\x30\xf7\x5a\x43\x04\x9d\x4c\x9e\x14\xd8\ +\xd4\x7c\xf4\xab\x57\xdb\xe2\xb0\xd1\xc6\x37\xb5\xde\xab\x73\x4d\ +\xe8\x4d\x7b\x33\x95\x38\xfb\x16\x23\x5d\x2f\x9c\x48\x18\x5d\x67\ +\xb5\x2a\x8e\xd7\x17\x38\xa4\x39\xd8\xea\x74\xdd\x95\x50\x7e\xe1\ +\x91\x4e\xa2\xef\xb7\x61\x18\xbe\x20\x71\x1c\xbb\xc3\x39\xeb\xf4\ +\x32\x6b\x27\x8f\xe9\x2e\xfd\xac\x12\x53\xed\x3b\xac\xec\x54\x2d\ +\x13\x59\xcb\x11\x17\x3d\x05\xd2\x93\xf5\xad\x10\x26\xa5\xe8\xb7\ +\xc7\x9f\x87\xb6\x13\xc7\xd1\x1f\x85\x7e\x1a\x3b\x86\x11\x90\x2b\ +\xe8\xbc\x4b\x7b\x68\x85\xa6\xc1\xc6\x91\x49\x13\x59\x3f\xa4\x3b\ +\x88\xb6\x19\x8b\xfe\x09\xd3\x09\x20\x74\x60\xcc\x84\x4d\x75\x1b\ +\x17\x6d\x97\xd5\xaa\x1d\x7b\xae\x4e\x8a\x49\xbc\x4b\x8d\x92\xfb\ +\x7b\x9d\x66\xd9\x2f\x66\x93\x69\x7b\x74\xbb\x83\xf6\x1d\x6c\x62\ +\xc7\xc2\xed\x0d\x6d\xde\x36\xa3\x03\x66\x98\x18\x7c\x98\xc9\x95\ +\xca\x96\xf6\xaf\x86\x69\x5d\x70\x37\xba\xd8\x97\xbb\x22\x51\x9d\ +\x7a\xef\xb8\x52\xd6\xdb\x2b\xb5\x2c\xcf\xa1\x96\x15\xda\x01\x34\ +\x3e\xcb\x7a\xaf\xd5\xb4\xdb\x77\x5d\x7c\x0d\x06\x45\xb7\xb8\x79\ +\xee\xcd\xcb\xd0\xbf\x31\xf2\x03\x00\x7e\x10\x06\x2d\x5d\xef\x33\ +\x15\xa9\x67\x95\x17\x49\x02\x9d\x5e\x17\x4f\x2a\xca\x61\x5c\xef\ +\xbe\xb7\x88\x8b\x08\xcc\x5c\xa0\xe4\x7b\x9c\xdd\xef\xa4\x7e\x52\ +\xba\x15\x7a\x4e\xab\x74\x95\x66\x66\xe1\xe6\x6b\xa6\xee\x93\xb4\ +\x2a\xc1\x0c\x18\x21\x4d\xc9\xbc\x2f\x60\x72\x5a\x67\xc5\x61\xe0\ +\xab\x5c\xc2\x87\xb3\x92\xf1\x93\x31\x3c\x4f\x22\x19\x43\x72\xec\ +\x33\xb8\x10\x0c\x66\x18\x28\x59\x21\x62\xa1\x80\x29\xd7\xbb\xe3\ +\x08\x13\x4c\x03\xc1\x2d\x7c\xe7\x53\x14\x06\x84\xfa\x21\xb5\x88\ +\x40\x1c\x24\x70\x18\xdc\x61\xe0\x38\x84\x20\x4a\x89\xe0\xbe\x45\ +\x28\xe2\x9c\x89\x8e\x01\x4d\x18\x8a\x68\x48\x2c\x10\x10\x9c\x60\ +\x8f\x98\x7a\x0a\x16\x85\xc4\xb3\x9c\x73\x22\x35\x92\x46\x09\x5a\ +\x80\xc7\x43\x10\x98\x2d\xe6\x30\x90\xa7\x22\x20\x82\x02\x6b\x7a\ +\x82\xcf\xb3\x86\xa1\x21\x4a\xa6\x3a\x8f\x5d\xca\x50\xae\xc6\xa9\ +\x2d\x9b\xf3\x38\x91\x97\xc3\xd3\xc7\x75\x16\x21\x8a\x30\x27\x8c\ +\x33\xca\x7a\xba\x71\x3f\x40\x26\x5a\xed\xeb\x7a\x4a\xfb\x5f\x91\ +\xe6\x11\x20\x5f\xe9\x9e\xda\xbc\x64\x90\xde\x75\xe4\xf5\xb4\xf1\ +\x1c\x1d\x21\x91\x50\x6f\xb5\x86\xc8\x4e\xe1\x61\xa8\xed\x14\x18\ +\xe1\x1f\x82\x8c\xd1\xb5\xc1\xd8\xa0\xfb\xb2\x68\xa2\x11\x84\x93\ +\x66\xd8\x57\xc3\x16\x34\xc1\xa4\x69\x1f\x4d\xef\x33\x00\xf3\x70\ +\x38\x76\x44\x18\x41\x90\xc0\xbe\xcf\x08\xb5\x2f\x52\x4f\x1d\xcb\ +\x42\xd7\x0e\xc4\x45\xb5\x17\x0d\x77\x5b\xec\x94\x7b\x82\xe9\xe5\ +\xc9\x7d\xec\x2a\x7c\xe5\xfe\x2a\x57\x6e\x73\x05\x71\x53\x48\xd6\ +\xca\x8d\xb7\x32\xdf\xa8\x12\xda\x1d\x2a\xf3\xcd\x8b\xcb\x1e\x93\ +\x12\x6e\x6d\x1e\x22\x01\x67\x5c\xf0\x17\xe5\x4e\x67\x72\xaf\x81\ +\xd7\x65\x19\xf8\x02\xbc\xae\x64\x3f\x85\x81\xd6\x3c\x8c\xff\xd0\ +\x18\xc3\x0c\xe8\x5f\xc4\xd8\x47\x44\xf8\x57\x42\x6c\xba\x36\x0f\ +\xf0\x04\x15\x26\xc4\x0c\x4e\x1e\x84\xdc\x9f\x86\x38\x80\xcc\x16\ +\x21\x00\xe8\xef\x14\x62\x13\xe4\xb7\x19\xe2\xf0\x3b\x84\x98\x70\ +\x04\xf3\x1b\xf9\x3b\x65\xb1\x09\xce\x57\x34\x89\xbf\x54\x88\xc5\ +\x77\x08\x31\x03\x49\xcc\xf1\x95\x5b\xe5\xdb\x8d\xf0\x9b\x4d\x62\ +\x8f\x7c\x87\x08\x7b\x30\x8d\xc1\x0d\x6e\xd2\x9f\xdf\x4a\x88\xbf\ +\x75\x72\x87\x4b\xca\xbb\xdb\xcb\xff\x38\xbc\xff\xaa\x11\x11\x6e\ +\xb0\xe7\x23\x62\x68\x3c\x8f\x05\x7d\xd5\x88\xd8\x84\xfd\x1b\x46\ +\xc4\xf9\x30\x0f\xc1\x84\xeb\x43\x10\x90\x3b\xa8\xcd\x30\xa6\xc2\ +\x8c\xd5\x0c\xd9\x30\x46\x07\x81\xb0\x1c\xea\x23\x1c\x0a\x78\x69\ +\x86\x6c\x90\x09\x45\xe8\x73\x6b\x4e\x0e\x11\x7c\x0d\x29\xb7\x48\ +\x60\xbe\xf9\x22\x80\x99\x3d\x84\x7b\x3e\xf1\x84\x38\x9b\xbf\x4d\ +\x0c\x00\x98\x23\x00\xc7\xff\x67\xc0\x55\xcb\xdc\xfb\xe0\x1e\x1e\ +\x77\xcf\xdb\x42\xd8\xc2\xdd\x3c\xdc\x2c\xcc\x85\xf8\xe1\xe6\xff\ +\x51\x05\x95\x67\ \x00\x00\x0a\x3d\ \x00\ \x00\x35\xb4\x78\x9c\xe5\x5a\x5b\x6f\xa3\x48\x16\x7e\xcf\xaf\x60\ @@ -33756,7 +33576,7 @@ qt_resource_data = "\ \x45\x60\x16\x9e\xbd\xc2\xae\xe8\x15\x76\xc9\x27\x59\x56\x59\xf6\ \x9f\xef\x76\xfe\x30\x45\x4c\x74\x93\xff\xb2\xdb\x75\x9f\xae\xf0\ \x78\x50\x1f\xd3\x1f\xde\xfc\x1b\x69\x58\x64\x83\ -\x00\x00\x15\x00\ +\x00\x00\x1c\x12\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ \x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ @@ -33796,304 +33616,418 @@ qt_resource_data = "\ \x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x33\x36\x31\ \x31\x22\x0a\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\ \x2e\x31\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x37\x20\x72\x32\ -\x32\x35\x38\x33\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\ -\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x4e\x65\x77\x20\x64\ -\x6f\x63\x75\x6d\x65\x6e\x74\x20\x32\x22\x3e\x0a\x20\x20\x3c\x64\ -\x65\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\ -\x73\x33\x36\x31\x33\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ -\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\ -\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\ -\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\ -\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\ +\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x33\x2e\ +\x31\x20\x72\x39\x38\x38\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x44\x72\ +\x61\x66\x74\x5f\x43\x6f\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\ +\x2e\x73\x76\x67\x22\x3e\x0a\x20\x20\x3c\x64\x65\x66\x73\x0a\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x33\x36\x31\x33\ +\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\ +\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ +\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x33\ +\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\ +\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\ +\x22\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\ +\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x33\x32\ +\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\ +\x73\x70\x65\x63\x74\x69\x76\x65\x33\x36\x31\x39\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\ +\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ +\x65\x33\x35\x39\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\ +\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\x3a\x20\x30\x2e\x33\ +\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\ +\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\ \x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\x20\ -\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ -\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\ -\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\x33\ -\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ -\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x33\x36\x31\ -\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\ -\x65\x63\x74\x69\x76\x65\x33\x35\x39\x33\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\ -\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x30\x2e\x35\x20\ -\x3a\x20\x30\x2e\x33\x33\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ -\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x31\x20\x3a\x20\x30\x2e\x35\x20\ -\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ -\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\ -\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\ -\x20\x3a\x20\x30\x2e\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\ -\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\ -\x33\x64\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ -\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\ -\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\ -\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\ -\x39\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\ -\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x31\x32\ -\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\ -\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\ -\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x78\x31\x3d\x22\x36\x35\x37\x2e\x34\x32\x38\x35\x39\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x39\x32\x2e\x31\x31\x37\ -\x32\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\ -\x36\x39\x36\x2e\x35\x33\x32\x31\x37\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x79\x32\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\x34\x39\x22\ -\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\ -\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\ -\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ -\x74\x34\x32\x39\x32\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\ -\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ -\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\ -\x38\x62\x38\x62\x38\x62\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\ -\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ -\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\ -\x34\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ +\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\ +\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x30\x2e\ +\x35\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\ +\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ +\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ +\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\ +\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\ +\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x39\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x31\x32\x35\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\ +\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\ +\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x36\ +\x35\x37\x2e\x34\x32\x38\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x31\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\x34\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x36\x39\x36\x2e\x35\ +\x33\x32\x31\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\ +\x22\x39\x32\x2e\x31\x31\x37\x32\x34\x39\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x39\x32\ +\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\ +\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x32\x64\x39\x63\ +\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ +\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\ +\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\x34\x22\x20\x2f\x3e\ +\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\ +\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\x66\x66\x3b\ +\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\ +\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\x36\x22\x20\x2f\x3e\x0a\x20\ +\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\ +\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x33\x30\x30\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x31\x32\x37\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\ +\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\ +\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\ +\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x35\x33\x34\x34\ +\x33\x33\x2c\x30\x2e\x30\x39\x36\x33\x38\x32\x39\x35\x2c\x2d\x30\ +\x2e\x30\x39\x36\x33\x38\x32\x39\x35\x2c\x30\x2e\x39\x39\x35\x33\ +\x34\x34\x33\x33\x2c\x31\x32\x2e\x39\x37\x39\x34\x37\x31\x2c\x2d\ +\x36\x32\x2e\x37\x35\x38\x34\x31\x29\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x78\x31\x3d\x22\x36\x35\x31\x2e\x36\x39\x33\x36\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x31\x30\x38\x2e\ +\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\ +\x36\x37\x37\x2e\x33\x37\x37\x30\x38\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x79\x32\x3d\x22\x31\x30\x38\x2e\x33\x37\x39\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\ +\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\ +\x33\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\ \x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\ -\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\ -\x66\x66\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ +\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x64\x64\ +\x34\x31\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\ \x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\ -\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\x36\x22\ +\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x33\x30\x32\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x61\x38\x30\x31\ +\x30\x31\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x33\x30\x34\x22\x20\x2f\ +\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\ +\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x79\x32\x3d\x22\x31\x30\x38\x2e\x33\x37\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x36\x37\x37\x2e\x33\ +\x37\x37\x30\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\ +\x22\x31\x30\x38\x2e\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x31\x3d\x22\x36\x35\x31\x2e\x36\x39\x33\x36\x36\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\ +\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\ +\x28\x30\x2e\x39\x39\x35\x33\x34\x34\x33\x33\x2c\x30\x2e\x30\x39\ +\x36\x33\x38\x32\x39\x35\x2c\x2d\x30\x2e\x30\x39\x36\x33\x38\x32\ +\x39\x35\x2c\x30\x2e\x39\x39\x35\x33\x34\x34\x33\x33\x2c\x31\x32\ +\x2e\x39\x37\x39\x34\x37\x31\x2c\x2d\x36\x32\x2e\x37\x35\x38\x34\ +\x31\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\ +\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\ +\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\ +\x65\x6e\x74\x33\x36\x30\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x33\x30\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ +\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\ +\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\ +\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\ +\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x39\x32\ +\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x30\x30\x31\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\ +\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\ +\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x31\ +\x3d\x22\x36\x35\x37\x2e\x34\x32\x38\x35\x39\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x79\x31\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\x34\ +\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x36\x39\ +\x36\x2e\x35\x33\x32\x31\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x79\x32\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\x34\x39\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\ +\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\ +\x30\x2e\x39\x30\x34\x39\x32\x38\x31\x38\x2c\x30\x2e\x34\x36\x31\ +\x34\x33\x33\x35\x37\x2c\x2d\x30\x2e\x34\x33\x36\x34\x39\x33\x38\ +\x36\x2c\x30\x2e\x39\x35\x36\x36\x33\x32\x35\x37\x2c\x2d\x35\x33\ +\x33\x2e\x38\x30\x34\x31\x37\x2c\x2d\x33\x37\x37\x2e\x34\x32\x36\ +\x36\x34\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\ +\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\ +\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\ +\x32\x39\x32\x2d\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ +\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ +\x33\x30\x30\x31\x2d\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\ +\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\ +\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x36\x35\x37\x2e\x34\x32\x38\ +\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x39\ +\x32\x2e\x31\x31\x37\x32\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x78\x32\x3d\x22\x36\x39\x36\x2e\x35\x33\x32\x31\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x39\x32\x2e\x31\x31\ +\x37\x32\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x33\x33\x34\x32\x34\x34\ +\x35\x2c\x30\x2e\x34\x34\x35\x35\x39\x31\x38\x2c\x2d\x30\x2e\x34\ +\x35\x30\x32\x33\x39\x30\x39\x2c\x30\x2e\x39\x32\x33\x37\x38\x39\ +\x38\x31\x2c\x2d\x35\x35\x32\x2e\x35\x32\x36\x37\x31\x2c\x2d\x33\ +\x36\x34\x2e\x30\x38\x33\x32\x37\x29\x22\x20\x2f\x3e\x0a\x20\x20\ +\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ +\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\ +\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x34\x32\x39\x32\x2d\ +\x34\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x36\x32\x64\x39\ +\x63\x35\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\x34\x2d\x34\x22\ +\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x66\x66\x66\x66\ +\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\ +\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x32\x39\x36\x2d\x34\x22\ \x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\ \x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\ \x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\ -\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\ -\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\ -\x74\x34\x33\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ -\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ -\x34\x31\x32\x37\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ -\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\x73\x65\x72\ -\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\ -\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\ -\x39\x35\x33\x34\x34\x33\x33\x2c\x30\x2e\x30\x39\x36\x33\x38\x32\ -\x39\x35\x2c\x2d\x30\x2e\x30\x39\x36\x33\x38\x32\x39\x35\x2c\x30\ -\x2e\x39\x39\x35\x33\x34\x34\x33\x33\x2c\x31\x32\x2e\x39\x37\x39\ -\x34\x37\x31\x2c\x2d\x36\x32\x2e\x37\x35\x38\x34\x31\x29\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x36\x35\x31\x2e\x36\ -\x39\x33\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x31\x3d\ -\x22\x31\x30\x38\x2e\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x78\x32\x3d\x22\x36\x37\x37\x2e\x33\x37\x37\x30\x38\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x31\x30\x38\x2e\x33\ -\x37\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\ -\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ -\x69\x65\x6e\x74\x34\x33\x30\x30\x22\x3e\x0a\x20\x20\x20\x20\x20\ -\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ -\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\ -\x72\x3a\x23\x64\x64\x34\x31\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\ -\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\ -\x34\x33\x30\x32\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\ -\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\ -\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\ -\x23\x61\x38\x30\x31\x30\x31\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\ -\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x34\x33\ -\x30\x34\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\ -\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\ -\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x31\x30\x38\x2e\ -\x33\x37\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\ -\x36\x37\x37\x2e\x33\x37\x37\x30\x38\x22\x0a\x20\x20\x20\x20\x20\ -\x20\x20\x79\x31\x3d\x22\x31\x30\x38\x2e\x33\x37\x39\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x36\x35\x31\x2e\x36\x39\ -\x33\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\ -\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\ -\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x35\x33\x34\x34\x33\x33\ -\x2c\x30\x2e\x30\x39\x36\x33\x38\x32\x39\x35\x2c\x2d\x30\x2e\x30\ -\x39\x36\x33\x38\x32\x39\x35\x2c\x30\x2e\x39\x39\x35\x33\x34\x34\ -\x33\x33\x2c\x31\x32\x2e\x39\x37\x39\x34\x37\x31\x2c\x2d\x36\x32\ -\x2e\x37\x35\x38\x34\x31\x29\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\x22\x75\ -\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x0a\x20\ -\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\ -\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x36\x30\x39\x22\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\ -\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\ -\x34\x33\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\ -\x6c\x77\x61\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\ -\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ -\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\ -\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\ -\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\ -\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\ -\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\ -\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\ -\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\ -\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\ -\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x7a\x6f\x6f\x6d\x3d\x22\x35\x2e\x35\x22\x0a\x20\x20\x20\x20\ -\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x33\x32\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x63\x79\x3d\x22\x33\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\ -\x79\x65\x72\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\ -\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\ -\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ -\x65\x3a\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\ -\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\ -\x32\x38\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ -\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\ -\x3d\x22\x37\x35\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ -\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x30\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x39\x22\x0a\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\ -\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\x30\x22\ -\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0a\ -\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\ -\x61\x33\x36\x31\x36\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\ -\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\ -\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\ -\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\ -\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\ -\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\ -\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\ -\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\ -\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\ -\x3c\x2f\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\ -\x20\x20\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\ -\x20\x3c\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\ -\x6d\x65\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\ -\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\ -\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\ -\x62\x65\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\x31\x22\x0a\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\ -\x70\x6d\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\ -\x20\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\ -\x22\x67\x34\x31\x32\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x74\ -\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x74\x72\x61\x6e\x73\x6c\ -\x61\x74\x65\x28\x2d\x36\x34\x32\x2e\x31\x38\x32\x38\x37\x2c\x2d\ -\x36\x39\x2e\x33\x35\x38\x37\x33\x33\x29\x22\x3e\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x79\x32\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\ +\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x36\ +\x39\x36\x2e\x35\x33\x32\x31\x37\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x79\x31\x3d\x22\x39\x32\x2e\x31\x31\x37\x32\x34\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x31\x3d\x22\x36\x35\x37\x2e\x34\ +\x32\x38\x35\x39\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\ +\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\ +\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x33\x33\x34\x32\x34\x34\ +\x35\x2c\x30\x2e\x34\x34\x35\x35\x39\x31\x38\x2c\x2d\x30\x2e\x34\ +\x35\x30\x32\x33\x39\x30\x39\x2c\x30\x2e\x39\x32\x33\x37\x38\x39\ +\x38\x31\x2c\x2d\x35\x32\x37\x2e\x38\x36\x31\x31\x38\x2c\x2d\x33\ +\x36\x38\x2e\x36\x32\x36\x34\x35\x29\x22\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3d\ +\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\ +\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x38\x30\x37\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\ +\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x34\x32\x39\x32\x2d\x34\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\ +\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\x22\x20\x2f\x3e\x0a\x20\x20\ +\x3c\x2f\x64\x65\x66\x73\x3e\x0a\x20\x20\x3c\x73\x6f\x64\x69\x70\ +\x6f\x64\x69\x3a\x6e\x61\x6d\x65\x64\x76\x69\x65\x77\x0a\x20\x20\ +\x20\x20\x20\x69\x64\x3d\x22\x62\x61\x73\x65\x22\x0a\x20\x20\x20\ +\x20\x20\x70\x61\x67\x65\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x66\x66\ +\x66\x66\x66\x66\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\ +\x72\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x36\x36\x36\x36\x36\x36\x22\ +\x0a\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x6f\x70\x61\x63\ +\x69\x74\x79\x3d\x22\x31\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x6f\x70\x61\x63\ +\x69\x74\x79\x3d\x22\x30\x2e\x30\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x61\x67\x65\x73\x68\x61\x64\ +\x6f\x77\x3d\x22\x32\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x7a\x6f\x6f\x6d\x3d\x22\x35\x2e\x35\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\ +\x3d\x22\x33\x35\x2e\x34\x31\x37\x36\x39\x37\x22\x0a\x20\x20\x20\ +\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x34\ +\x30\x2e\x30\x37\x31\x35\x31\x39\x22\x0a\x20\x20\x20\x20\x20\x69\ +\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\ +\x6c\x61\x79\x65\x72\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\ +\x20\x20\x20\x20\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\ +\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\ +\x3d\x22\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\ +\x72\x75\x65\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ +\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x32\x38\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x37\x35\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\ +\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ +\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x39\x22\x0a\ +\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\ +\x6e\x64\x6f\x77\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\ +\x30\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\ +\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\ +\x61\x74\x61\x33\x36\x31\x36\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\ +\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\ +\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\ +\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\ +\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\ +\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\ +\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\ +\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\x74\x6c\ +\x65\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\ +\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\ +\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\ +\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\ +\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\ +\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ +\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\ +\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ +\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\x35\x32\x31\x36\x36\x36\ +\x36\x34\x3b\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ +\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\ +\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x64\x3d\x22\x6d\x20\x35\x33\x2e\x39\x34\x31\x36\x33\ +\x38\x2c\x31\x37\x2e\x31\x36\x36\x37\x32\x39\x20\x63\x20\x2d\x31\ +\x31\x2e\x37\x34\x39\x33\x30\x35\x2c\x30\x2e\x34\x32\x35\x35\x32\ +\x38\x20\x2d\x33\x32\x2e\x36\x32\x38\x37\x36\x37\x2c\x38\x2e\x35\ +\x31\x30\x39\x34\x35\x20\x2d\x33\x32\x2e\x36\x32\x38\x37\x36\x37\ +\x2c\x38\x2e\x35\x31\x30\x39\x34\x35\x20\x6c\x20\x32\x2e\x37\x32\ +\x36\x36\x33\x38\x2c\x33\x2e\x35\x39\x32\x30\x37\x31\x20\x63\x20\ +\x2d\x36\x2e\x36\x37\x38\x39\x33\x37\x2c\x31\x2e\x36\x34\x37\x39\ +\x35\x36\x20\x2d\x31\x33\x2e\x34\x33\x30\x39\x31\x39\x2c\x34\x2e\ +\x31\x34\x39\x34\x33\x32\x20\x2d\x31\x36\x2e\x39\x30\x35\x31\x35\ +\x35\x31\x2c\x37\x2e\x33\x37\x38\x33\x30\x39\x20\x2d\x32\x2e\x36\ +\x38\x37\x35\x33\x31\x33\x2c\x32\x2e\x36\x38\x34\x35\x38\x20\x2d\ +\x34\x2e\x38\x35\x34\x38\x39\x38\x37\x2c\x39\x2e\x31\x30\x31\x39\ +\x33\x34\x20\x30\x2e\x30\x39\x30\x38\x38\x38\x2c\x31\x30\x2e\x35\ +\x34\x39\x36\x38\x38\x20\x35\x2e\x39\x36\x36\x32\x36\x37\x31\x2c\ +\x32\x2e\x31\x38\x33\x31\x37\x31\x20\x31\x30\x2e\x30\x35\x30\x32\ +\x31\x36\x31\x2c\x30\x2e\x30\x39\x31\x39\x35\x20\x31\x34\x2e\x35\ +\x37\x32\x33\x36\x35\x31\x2c\x2d\x33\x2e\x36\x35\x36\x37\x39\x34\ +\x20\x31\x2e\x34\x39\x34\x36\x34\x35\x2c\x2d\x31\x2e\x32\x39\x38\ +\x38\x32\x38\x20\x34\x2e\x39\x35\x30\x37\x38\x36\x2c\x2d\x33\x2e\ +\x36\x38\x36\x37\x38\x38\x20\x38\x2e\x33\x30\x31\x30\x39\x38\x2c\ +\x2d\x36\x2e\x33\x37\x35\x31\x31\x38\x20\x6c\x20\x39\x2e\x36\x36\ +\x34\x34\x31\x36\x2c\x31\x32\x2e\x36\x35\x33\x31\x35\x33\x20\x63\ +\x20\x30\x2c\x30\x20\x32\x38\x2e\x34\x39\x36\x35\x34\x37\x2c\x2d\ +\x32\x32\x2e\x31\x39\x31\x34\x32\x32\x20\x32\x31\x2e\x32\x33\x37\ +\x34\x38\x2c\x2d\x33\x30\x2e\x38\x34\x30\x30\x33\x37\x20\x2d\x31\ +\x2e\x31\x39\x34\x33\x31\x33\x2c\x2d\x31\x2e\x34\x32\x32\x39\x33\ +\x31\x20\x2d\x33\x2e\x37\x36\x39\x31\x35\x37\x2c\x2d\x31\x2e\x39\ +\x33\x31\x33\x36\x34\x20\x2d\x37\x2e\x30\x35\x38\x39\x36\x33\x2c\ +\x2d\x31\x2e\x38\x31\x32\x32\x31\x37\x20\x7a\x22\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x34\x39\x38\ +\x2d\x33\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ +\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\ +\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x2f\x3e\x0a\x20\ \x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x34\x39\x38\x2d\x32\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x6d\x20\ -\x36\x39\x32\x2e\x36\x32\x35\x2c\x37\x39\x2e\x39\x30\x36\x32\x35\ -\x20\x63\x20\x2d\x39\x2e\x30\x30\x35\x31\x33\x2c\x30\x2e\x32\x35\ -\x37\x38\x36\x33\x20\x2d\x33\x31\x2e\x32\x35\x2c\x32\x33\x2e\x31\ -\x32\x35\x20\x2d\x33\x31\x2e\x32\x35\x2c\x32\x33\x2e\x31\x32\x35\ -\x20\x6c\x20\x37\x2e\x31\x32\x35\x2c\x33\x2e\x33\x37\x35\x20\x63\ -\x20\x2d\x35\x2e\x38\x38\x38\x32\x37\x2c\x34\x2e\x35\x33\x39\x34\ -\x33\x20\x2d\x31\x31\x2e\x38\x33\x34\x31\x34\x2c\x31\x30\x2e\x31\ -\x36\x37\x20\x2d\x31\x33\x2e\x38\x31\x32\x35\x2c\x31\x34\x2e\x38\ -\x34\x33\x37\x35\x20\x2d\x31\x2e\x33\x31\x31\x32\x2c\x33\x2e\x34\ -\x33\x38\x37\x34\x20\x2d\x30\x2e\x36\x31\x39\x37\x36\x2c\x39\x2e\ -\x38\x34\x38\x34\x32\x20\x34\x2e\x34\x30\x36\x32\x35\x2c\x38\x2e\ -\x39\x33\x37\x35\x20\x36\x2e\x32\x34\x31\x36\x37\x2c\x2d\x30\x2e\ -\x37\x32\x38\x35\x34\x20\x39\x2e\x30\x37\x33\x31\x34\x2c\x2d\x34\ -\x2e\x32\x37\x31\x37\x35\x20\x31\x31\x2e\x35\x39\x33\x37\x35\x2c\ -\x2d\x39\x2e\x34\x30\x36\x32\x35\x20\x30\x2e\x39\x32\x38\x34\x2c\ -\x2d\x32\x2e\x30\x30\x36\x36\x31\x20\x33\x2e\x35\x38\x31\x34\x31\ -\x2c\x2d\x36\x2e\x33\x33\x38\x38\x34\x20\x35\x2e\x36\x35\x36\x32\ -\x35\x2c\x2d\x31\x30\x2e\x36\x35\x36\x32\x35\x20\x6c\x20\x31\x31\ -\x2e\x34\x33\x37\x35\x2c\x35\x2e\x34\x30\x36\x32\x35\x20\x63\x20\ -\x30\x2c\x30\x20\x31\x36\x2e\x34\x38\x32\x38\x32\x2c\x2d\x33\x31\ -\x2e\x31\x34\x38\x34\x34\x36\x20\x36\x2e\x34\x33\x37\x35\x2c\x2d\ -\x33\x35\x2e\x33\x34\x33\x37\x35\x20\x2d\x30\x2e\x34\x37\x32\x32\ -\x31\x2c\x2d\x30\x2e\x31\x39\x37\x32\x31\x32\x20\x2d\x30\x2e\x39\ -\x39\x33\x34\x31\x2c\x2d\x30\x2e\x32\x39\x38\x34\x34\x31\x20\x2d\ -\x31\x2e\x35\x39\x33\x37\x35\x2c\x2d\x30\x2e\x32\x38\x31\x32\x35\ -\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ -\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\ -\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\ -\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x2e\x37\x38\ -\x34\x33\x31\x33\x37\x33\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ -\x3a\x6e\x6f\x6e\x7a\x65\x72\x6f\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ -\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ -\x68\x3a\x33\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\ -\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\ -\x6c\x65\x3b\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\ -\x65\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\ -\x6c\x65\x3b\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\ -\x6f\x75\x6e\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\ -\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\ -\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\ -\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ -\x70\x61\x74\x68\x33\x34\x39\x38\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x20\x20\x64\x3d\x22\x6d\x20\x36\x39\x31\x2e\x37\x38\x35\x37\ -\x32\x2c\x37\x34\x2e\x35\x37\x31\x34\x32\x38\x20\x63\x20\x2d\x37\ -\x2e\x35\x35\x35\x33\x32\x2c\x2d\x33\x2e\x31\x35\x35\x33\x38\x37\ -\x20\x2d\x33\x32\x2e\x38\x35\x37\x31\x35\x2c\x32\x32\x2e\x38\x35\ -\x37\x31\x34\x33\x20\x2d\x33\x32\x2e\x38\x35\x37\x31\x35\x2c\x32\ -\x32\x2e\x38\x35\x37\x31\x34\x33\x20\x6c\x20\x32\x36\x2e\x34\x32\ -\x38\x35\x38\x2c\x31\x32\x2e\x34\x39\x39\x39\x39\x39\x20\x63\x20\ -\x30\x2c\x30\x20\x31\x36\x2e\x34\x37\x33\x38\x39\x2c\x2d\x33\x31\ -\x2e\x31\x36\x31\x38\x33\x34\x20\x36\x2e\x34\x32\x38\x35\x37\x2c\ -\x2d\x33\x35\x2e\x33\x35\x37\x31\x34\x32\x20\x7a\x22\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\ -\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\ -\x61\x64\x69\x65\x6e\x74\x34\x31\x32\x35\x29\x3b\x66\x69\x6c\x6c\ -\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\ -\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\x6f\x6b\x65\ -\x2d\x77\x69\x64\x74\x68\x3a\x33\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ -\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\ -\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\ -\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\ -\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\ -\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\ -\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x20\x2f\ -\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\ -\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ -\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\ -\x61\x74\x68\x33\x35\x30\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ -\x20\x20\x64\x3d\x22\x6d\x20\x36\x37\x36\x2e\x31\x35\x36\x31\x35\ -\x2c\x39\x34\x2e\x30\x33\x31\x38\x32\x37\x20\x63\x20\x2d\x36\x2e\ -\x39\x34\x36\x37\x32\x2c\x33\x2e\x38\x30\x30\x39\x33\x31\x20\x2d\ -\x32\x30\x2e\x36\x37\x34\x35\x39\x2c\x31\x33\x2e\x39\x39\x30\x39\ -\x38\x33\x20\x2d\x32\x33\x2e\x39\x30\x32\x34\x34\x2c\x32\x31\x2e\ -\x36\x32\x31\x34\x36\x33\x20\x2d\x31\x2e\x33\x31\x31\x32\x2c\x33\ -\x2e\x34\x33\x38\x37\x34\x20\x2d\x30\x2e\x36\x31\x39\x36\x2c\x39\ -\x2e\x38\x33\x30\x35\x31\x20\x34\x2e\x34\x30\x36\x34\x31\x2c\x38\ -\x2e\x39\x31\x39\x35\x39\x20\x36\x2e\x32\x34\x31\x36\x37\x2c\x2d\ -\x30\x2e\x37\x32\x38\x35\x34\x20\x39\x2e\x30\x35\x35\x32\x2c\x2d\ -\x34\x2e\x32\x37\x35\x32\x32\x20\x31\x31\x2e\x35\x37\x35\x38\x31\ -\x2c\x2d\x39\x2e\x34\x30\x39\x37\x32\x20\x31\x2e\x38\x33\x38\x34\ -\x35\x2c\x2d\x33\x2e\x39\x37\x33\x35\x35\x20\x31\x30\x2e\x34\x34\ -\x31\x37\x2c\x2d\x31\x37\x2e\x30\x33\x39\x35\x31\x37\x20\x37\x2e\ -\x39\x32\x30\x32\x32\x2c\x2d\x32\x31\x2e\x31\x33\x31\x33\x33\x33\ -\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\ -\x6c\x65\x3d\x22\x66\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x6c\x69\ -\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x33\x36\x30\x39\ -\x29\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\ -\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\ -\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x33\x3b\x73\ -\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\ -\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\ -\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ -\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\ -\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\ -\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\ -\x6f\x6e\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\ -\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ +\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\ +\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\ +\x69\x6c\x6c\x3a\x75\x72\x6c\x28\x23\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x33\x30\x30\x31\x29\x3b\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\ +\x6b\x65\x3a\x23\x30\x30\x33\x62\x32\x64\x3b\x73\x74\x72\x6f\x6b\ +\x65\x2d\x77\x69\x64\x74\x68\x3a\x33\x2e\x30\x39\x39\x30\x31\x30\ +\x39\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\ +\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\ +\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\ +\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\ +\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\ +\x61\x79\x3a\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x64\x3d\x22\x4d\x20\x35\x39\x2e\x36\x36\x32\x32\x35\x33\x2c\x31\ +\x33\x2e\x31\x32\x33\x39\x36\x38\x20\x43\x20\x35\x34\x2e\x32\x30\ +\x32\x35\x33\x38\x2c\x36\x2e\x36\x31\x39\x31\x34\x34\x36\x20\x31\ +\x39\x2e\x39\x35\x31\x38\x38\x39\x2c\x31\x39\x2e\x38\x32\x38\x34\ +\x36\x34\x20\x31\x39\x2e\x39\x35\x31\x38\x38\x39\x2c\x31\x39\x2e\ +\x38\x32\x38\x34\x36\x34\x20\x6c\x20\x31\x38\x2e\x34\x35\x39\x37\ +\x39\x33\x2c\x32\x34\x2e\x31\x35\x32\x39\x33\x39\x20\x63\x20\x30\ +\x2c\x30\x20\x32\x38\x2e\x35\x30\x39\x36\x33\x38\x2c\x2d\x32\x32\ +\x2e\x32\x30\x38\x38\x31\x39\x20\x32\x31\x2e\x32\x35\x30\x35\x37\ +\x31\x2c\x2d\x33\x30\x2e\x38\x35\x37\x34\x33\x35\x20\x7a\x22\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x33\ +\x34\x39\x38\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\ +\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\x22\ +\x63\x63\x63\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x72\x65\ +\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\ +\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\ +\x69\x6c\x6c\x3a\x23\x30\x30\x62\x65\x62\x35\x3b\x66\x69\x6c\x6c\ +\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\ +\x72\x75\x6c\x65\x3a\x6e\x6f\x6e\x7a\x65\x72\x6f\x3b\x73\x74\x72\ +\x6f\x6b\x65\x3a\x23\x30\x30\x33\x62\x32\x64\x3b\x73\x74\x72\x6f\ +\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x33\x2e\x30\x39\x39\x30\x31\ +\x30\x39\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\ +\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\ +\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\ +\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\ +\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\ +\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\x3b\x6d\x61\x72\ +\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\ +\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\ +\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\ +\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\ +\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\ +\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x33\x37\x37\x32\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x2e\x32\ +\x39\x31\x34\x37\x37\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x68\ +\x65\x69\x67\x68\x74\x3d\x22\x31\x31\x2e\x31\x30\x38\x36\x35\x22\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x3d\x22\x33\x34\x2e\x37\x32\ +\x38\x34\x38\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x79\x3d\x22\ +\x32\x31\x2e\x32\x35\x33\x30\x34\x22\x20\x2f\x3e\x0a\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\ +\x6b\x73\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\ +\x2d\x63\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\x66\x69\x6c\ +\x6c\x3a\x23\x30\x30\x62\x65\x62\x35\x3b\x66\x69\x6c\x6c\x2d\x6f\ +\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x3a\ +\x23\x30\x30\x33\x62\x32\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\ +\x69\x64\x74\x68\x3a\x33\x2e\x30\x39\x39\x30\x31\x30\x39\x34\x3b\ +\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\ +\x75\x74\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\ +\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\x64\x3b\x73\x74\x72\x6f\x6b\x65\ +\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\ +\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x73\ +\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\ +\x6e\x6f\x6e\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\ +\x6d\x20\x33\x36\x2e\x38\x34\x38\x30\x30\x32\x2c\x32\x31\x2e\x31\ +\x33\x39\x33\x33\x32\x20\x63\x20\x2d\x37\x2e\x39\x34\x35\x33\x36\ +\x36\x2c\x30\x2e\x34\x33\x30\x36\x34\x34\x20\x2d\x32\x34\x2e\x38\ +\x31\x35\x39\x39\x38\x2c\x33\x2e\x38\x34\x34\x32\x38\x20\x2d\x33\ +\x31\x2e\x30\x36\x37\x36\x32\x38\x34\x2c\x39\x2e\x36\x35\x34\x34\ +\x30\x36\x20\x2d\x32\x2e\x36\x38\x37\x35\x33\x30\x39\x2c\x32\x2e\ +\x36\x38\x34\x35\x38\x20\x2d\x34\x2e\x38\x35\x31\x36\x35\x30\x39\ +\x32\x2c\x39\x2e\x31\x31\x38\x32\x38\x33\x20\x30\x2e\x30\x39\x34\ +\x31\x33\x38\x2c\x31\x30\x2e\x35\x36\x36\x30\x33\x36\x20\x35\x2e\ +\x39\x36\x36\x32\x36\x36\x34\x2c\x32\x2e\x31\x38\x33\x31\x37\x31\ +\x20\x31\x30\x2e\x30\x36\x30\x34\x31\x33\x34\x2c\x30\x2e\x30\x38\ +\x38\x35\x36\x20\x31\x34\x2e\x35\x38\x32\x35\x36\x32\x34\x2c\x2d\ +\x33\x2e\x36\x36\x30\x31\x37\x36\x20\x33\x2e\x33\x39\x38\x30\x39\ +\x36\x2c\x2d\x32\x2e\x39\x35\x32\x39\x30\x35\x20\x31\x36\x2e\x38\ +\x38\x36\x36\x33\x34\x2c\x2d\x31\x31\x2e\x34\x38\x32\x34\x30\x37\ +\x20\x31\x36\x2e\x33\x39\x30\x39\x32\x38\x2c\x2d\x31\x36\x2e\x35\ +\x36\x30\x32\x36\x36\x20\x7a\x22\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x69\x64\x3d\x22\x70\x61\x74\x68\x33\x35\x30\x30\x22\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\ +\x64\x65\x74\x79\x70\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x22\x20\ +\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x0a\ \x00\x00\x14\x8d\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -35777,174 +35711,226 @@ qt_resource_data = "\ \x38\x2c\x30\x2c\x30\x29\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\ \x2f\x67\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\ \x3e\x0a\ -\x00\x00\x0a\x5e\ +\x00\x00\x0d\x97\ \x00\ -\x00\x29\x34\x78\x9c\xed\x5a\xdb\x8e\xdb\x46\x12\x7d\xf7\x57\x68\ -\xe9\x17\x1b\x2b\xb6\xfa\x7e\x91\x47\xce\x83\x8d\x2c\x02\xcc\x62\ -\x81\x8d\x8d\x7d\x0c\x38\x24\x47\xc3\x1d\x8a\x14\x48\x6a\x46\x9a\ -\xaf\xdf\xea\xe6\x5d\xa4\x26\x76\xec\xd8\x59\xc0\x0a\x62\x89\xa7\ -\xab\xba\xbb\xaa\xeb\x54\x57\xd1\xbe\xfa\xe9\xb8\x4b\x17\x0f\x71\ -\x51\x26\x79\xb6\xf1\x08\xc2\xde\x22\xce\xc2\x3c\x4a\xb2\xed\xc6\ -\xfb\xf8\xe1\x67\x5f\x7b\x8b\xb2\x0a\xb2\x28\x48\xf3\x2c\xde\x78\ -\x59\xee\xfd\xf4\xf6\xc5\xd5\xdf\x7c\x7f\xf1\xae\x88\x83\x2a\x8e\ -\x16\x8f\x49\x75\xb7\xf8\x25\xbb\x2f\xc3\x60\x1f\x2f\x5e\xdd\x55\ -\xd5\x7e\xbd\x5a\x3d\x3e\x3e\xa2\xa4\x01\x51\x5e\x6c\x57\xaf\x17\ -\xbe\x0f\x9a\xe5\xc3\xf6\xc5\x62\xb1\x80\x65\xb3\x72\x1d\x85\x1b\ -\xaf\x91\xdf\x1f\x8a\xd4\xc9\x45\xe1\x2a\x4e\xe3\x5d\x9c\x55\xe5\ -\x8a\x20\xb2\xf2\x7a\xf1\xb0\x17\x0f\xed\xe2\xc9\x43\x1c\xe6\xbb\ -\x5d\x9e\x95\x4e\x33\x2b\x5f\x0e\x84\x8b\xe8\xb6\x93\xb6\x9b\x79\ -\x64\x4e\x88\x18\x63\x56\x98\xae\x28\xf5\x41\xc2\x2f\x4f\x59\x15\ -\x1c\xfd\xb1\x2a\xec\x71\x4e\x95\x62\x8c\x57\x30\xd6\x4b\x7e\x9a\ -\xd4\xfa\x98\x82\x27\x2e\x6e\xc6\x8d\x0e\x57\x07\xef\xef\xe1\xff\ -\x4e\xa1\x05\x50\x99\x1f\x8a\x30\xbe\x05\xcd\x18\x65\x71\xb5\x7a\ -\xff\xe1\x7d\x37\xe8\x63\x14\x55\xd1\x60\x9a\xd6\xf9\xa3\x75\x47\ -\x27\x92\x05\xbb\xb8\xdc\x07\x61\x5c\xae\x5a\xdc\xe9\x3f\x26\x51\ -\x75\xb7\xf1\x24\xdf\x1f\xdd\xf3\x5d\x9c\x6c\xef\xaa\x01\x90\x44\ -\x1b\x0f\x2c\x64\x94\x61\xf7\xdc\xee\x61\xdd\x05\x12\x46\x8c\xd6\ -\xa2\xcd\xc4\xc3\x21\x2e\xc7\x5a\x51\x1e\xda\xad\x6c\xbc\x34\x0f\ -\xef\x51\xeb\xba\x4e\x33\x3f\x54\xfb\x43\xf5\x5b\x7c\xac\xe2\xac\ -\x9e\x02\x36\x3f\xb0\xc4\x0d\x5b\xb5\x0e\xf3\xde\xc2\x04\x57\x51\ -\x7c\x5b\xda\x89\xea\xfd\xda\x27\xd8\x30\x75\x63\x30\x0a\x4e\x8f\ -\x83\xe2\x1f\x45\x10\x25\x10\x6a\xb5\xdc\x60\xd1\x30\x4f\xd3\x38\ -\x04\xa3\x83\xf4\x31\x38\x95\x5e\x27\x00\x53\x8d\x55\x19\x55\xac\ -\x99\x14\xa6\x2d\xab\x7c\xdf\xca\x82\x89\xd5\x29\x05\xbb\x2c\xe8\ -\xc3\x8c\x79\xb1\x7e\x79\xeb\x3e\x6f\x1c\x94\x83\xf3\x93\xea\xb4\ -\x26\x6f\xbc\x5e\x27\xbf\xbd\x2d\x63\x58\x18\x0f\x30\xe7\x70\xd0\ -\x80\xb5\x84\xb7\x58\x7d\xd9\x6a\x78\x6e\x35\x32\xbf\x9a\xea\x56\ -\xbb\x5a\x8d\xcd\x6e\x50\xfb\x14\xa4\x9f\xed\x46\x17\xf3\xeb\xbb\ -\x22\x06\x8e\xbe\x9c\xf1\xe7\xd0\xdd\xe3\x25\x28\x27\xfd\x5e\xb7\ -\x0d\xf8\x31\x4b\x2a\x20\xe3\xa1\x8c\x8b\x5f\x6d\x40\xff\x2b\xfb\ -\x58\xc6\x13\xa9\x0f\x45\x90\x95\xc0\x9e\xdd\xc6\xdb\x05\x55\x91\ -\x1c\x5f\x91\x25\x86\xff\x20\xeb\x69\xac\xb8\x31\xf0\xdb\xe7\x1c\ -\x49\x2e\x39\x56\xaf\x3b\xfd\xf0\xb8\xf1\xa8\xd2\x0a\x09\x63\xfa\ -\xb5\xc3\xd3\xc6\x13\x82\x22\x6d\x14\x93\x1d\x7a\x3b\x2b\x7b\x3b\ -\x2b\x5b\x6c\x3c\xa6\x91\xa6\x86\x49\xd3\xfb\xf9\x0f\x06\xe6\xb3\ -\x1e\x35\xec\x99\x00\xa6\x1c\x9b\xaf\xe6\x51\xbf\x76\x29\x7c\x09\ -\x29\x24\xd2\x8c\xe9\x25\xe1\x58\x23\x4a\x89\xec\x5d\x7a\x24\xd6\ -\x4d\x02\x7c\xad\x85\xee\xd0\x13\xa0\x52\x41\xd2\x27\x58\xf7\xce\ -\x3b\x52\x90\x35\x18\x23\xc2\x07\xa2\x74\x28\xfa\x5d\x9d\xa7\xfe\ -\x5c\xe7\x31\x25\xff\xda\xce\x9b\x4b\x89\xe6\x73\x52\xa2\x06\xfa\ -\x61\xfc\x87\x53\xa2\xf9\xbc\x94\x38\xb7\xda\x67\xa4\x44\xf3\xbb\ -\x29\xf1\x7b\xc4\xa0\xf8\x93\x63\x10\xb2\xe2\xff\x5d\x0c\x0a\xf1\ -\xed\xae\x65\xa1\xbe\xe5\xb5\x2c\xcc\xf7\x88\x41\x21\x9e\x8f\x41\ -\xf6\xd5\x62\x10\x23\xa5\x31\xa5\x8c\xd7\xd7\xf3\x12\xee\x52\xa4\ -\x05\x11\x72\x89\xcf\x23\x90\x51\xc4\x84\x22\xa3\x08\x54\xc4\x86\ -\x15\x25\x66\x1c\x81\x9a\x19\x84\x15\x61\xa3\x10\xec\x65\x3b\x8f\ -\x76\x5e\xda\x43\xc9\xba\x07\x37\x41\x9b\xd1\xaa\x74\x35\x6b\x75\ -\xb2\x95\xf5\x58\x94\x45\xde\xc4\xd3\x0f\xfb\xdf\xa0\x22\xc0\x8b\ -\xf5\x82\x51\xf8\x83\xcc\x4a\x9c\x6a\x09\x02\x79\x09\xbe\xf0\xac\ -\xcc\x93\xad\xbf\x9f\x99\xa6\xd9\x81\x9f\x17\xc9\x36\x81\x1a\xd9\ -\xc9\x51\x82\x98\xfb\x8c\x75\xe0\xf4\x06\xb6\x41\x55\xac\x1b\xeb\ -\xaf\x56\xb6\x4c\x76\xbf\x3a\x4b\x6d\x69\x1e\x3d\x24\xf1\x63\x5f\ -\x4b\xdf\x04\xdd\x31\xee\x83\x6d\xec\x82\x1a\x02\xa6\x8e\xea\x66\ -\xe0\x26\x2f\xa2\xb8\x68\x87\xa4\xfb\x8c\x86\x9a\xb8\xaf\x9b\xce\ -\x17\x67\xc6\xc0\xac\xdd\x38\x9e\x1f\x2f\xef\x82\x28\x7f\x84\x73\ -\x3d\x1f\x7c\xca\x73\x08\x25\x81\xc4\xf9\x80\xab\xe3\xec\x65\x6a\ -\x30\xe5\x93\xc1\x93\x1b\xe4\xc4\x50\xa2\x27\x83\x87\xa2\x80\x48\ -\xf5\xd3\xe0\x14\x83\x39\x5b\xf0\x58\x1b\x46\xe5\x5d\xfe\xb8\x2d\ -\xac\x57\xaa\xe2\x10\x9f\x2b\x42\x6b\x73\xb0\xad\xac\x7f\xa8\xa9\ -\xd0\x34\x50\x03\x09\xab\xeb\xdf\xdc\xe4\xc7\xf9\x09\x1e\x93\x0c\ -\xac\xf4\x9b\x96\x8c\x60\x32\x31\xb7\x91\x68\x9b\x34\x45\x2f\x49\ -\x1c\xad\xbe\xb9\x30\x68\xad\x6f\xef\xd1\xab\x5d\x5c\x05\x51\x50\ -\x05\xfd\x89\xb7\x08\xc4\x4a\x9b\x55\xaf\xa0\x7d\x5e\xff\xfb\xfd\ -\xcf\x5d\xd6\x0b\xc3\xf5\x7f\xf2\xe2\xbe\x4f\x58\x56\x20\xb8\x81\ -\xfe\x6c\xe3\x75\x99\xd8\xf6\x65\xe1\xda\xb2\x3d\xa8\xde\x26\x3b\ -\x38\x47\xdb\x2b\xff\x1d\x5a\x56\x88\xbd\x6e\x60\x24\x6c\xa9\xd6\ -\x4f\x5a\x4f\x5b\xc4\x75\x2f\x3c\xfb\xfa\x20\x0a\x77\x89\x55\x5a\ -\xfd\x5a\x25\x69\xfa\x8b\x5d\x64\x98\x9d\x57\xcd\x46\xdb\x04\x3a\ -\xb0\xe3\x6a\xd5\x1a\xea\x9e\xb6\xbd\x03\xdc\xc9\x93\x73\xe7\xa5\ -\xc1\x4d\x9c\x6e\xbc\x6b\x3b\xb8\x98\x8c\x6e\x8b\xfc\xb0\xdf\xe5\ -\x51\xdc\xa8\xb7\x8e\xdb\x0e\x89\x38\x8c\xa5\xc5\xa2\x9a\xc9\x85\ -\xc4\x30\x68\x28\x84\xcb\x85\xfd\x93\x0f\xf9\x10\x61\x22\x05\x59\ -\xfa\x86\x21\xa5\x94\x24\x83\x9e\xa5\xdb\x44\x7c\xdc\xe7\x45\xe5\ -\xdf\x26\x69\x5c\x37\xd9\xab\xbb\x7c\x17\xaf\x4e\x90\x27\xee\x57\ -\xef\x9b\xf0\x2c\x57\xd7\xc1\xcd\xea\x7d\x11\xdc\x56\xab\x24\xcc\ -\xb3\x72\x15\xa6\x79\x19\xa3\x7d\xb6\xbd\x38\xe3\x31\xda\x27\x1b\ -\x8f\x23\x6e\x24\xe1\x92\x5e\x94\x3b\x9d\xc9\x75\xe7\xb0\xed\x0f\ -\x75\x5e\x47\x22\x81\x89\x91\xaa\xcf\xe3\x97\x76\xf1\x29\x92\x5f\ -\xee\x81\xd1\xf1\xb8\x9f\x69\x50\xc5\xaf\x7c\xb9\xf4\xf5\xeb\xe1\ -\xca\xcd\xb1\x8a\x61\xd4\xef\x83\xea\x6e\x18\xc5\x4d\x55\xd0\xd7\ -\x1a\xb0\xbf\xd4\x56\x06\x91\xad\x4e\xed\x83\x3f\x1e\xf3\x8b\x43\ -\x0a\xc6\x3c\xc4\x59\x1e\x45\x50\x3a\x14\xf9\x7d\xbc\x7e\x89\xdd\ -\xa7\x79\xac\xd3\xc4\x5a\x21\xc5\x31\x67\x8a\xb1\x16\xb7\x77\x35\ -\xf8\x62\x7d\x73\xa8\xaa\x21\xf6\xdf\x3c\xc9\xd6\x40\x96\xb8\x78\ -\xb3\x0b\x8a\xfb\xb8\x58\x67\x79\x16\x37\xbf\xfd\xb2\x0a\x8a\x6a\ -\x84\xec\x92\x68\xf4\x1c\x67\xcd\x73\x33\xa7\x9b\x2a\x4d\xe0\x6b\ -\xcd\x5b\x2c\x0a\x20\x53\x17\x45\x70\x1a\x49\x5a\xb4\x2e\x72\xd6\ -\xdd\xee\x7b\x7b\x1f\x92\x32\xb9\x49\x52\xfb\xe0\x7e\xa6\xf1\x9b\ -\x28\x29\xf7\xc0\xa2\x75\x92\xd9\x8d\xbf\xc9\x1f\xe2\xe2\x36\xcd\ -\x1f\xbb\x71\x38\x5b\xf8\xf2\x6f\x82\xf0\xde\xf2\x0e\x36\x16\x84\ -\x70\xb4\x07\x7b\x44\xde\xd0\xf1\x70\x38\xff\x5c\x40\x31\x80\x91\ -\x86\xcf\x52\x10\x48\xfa\x5a\xd0\xc5\xbb\x05\xf4\xed\x1a\x11\xc9\ -\x3a\x90\x18\xc0\x04\x43\x4c\x1b\xbe\x14\x82\x20\xdb\x2a\x6b\x8b\ -\x51\x24\x84\x62\x50\x98\x70\xc4\x0c\xd3\x74\x71\xdd\xa0\x50\x26\ -\x5d\x44\x05\x32\x5a\x30\x32\x42\xa5\x64\x88\x08\xc2\x84\x43\x35\ -\x85\x0a\x85\xcb\x0b\xe8\x78\x5e\x8b\x52\x6e\x06\xa8\xb3\x80\x21\ -\x68\x88\x60\xb7\x52\x21\x61\x09\x07\xa6\x62\x61\x27\x03\xab\xb8\ -\x44\x44\x49\xb0\x15\xcc\x27\xc8\x60\xcd\x06\x18\x68\x6b\x01\x15\ -\x12\x61\xb2\x43\x09\x60\x1a\xee\x67\x61\x25\xa5\x46\x58\x4b\x6d\ -\x6a\x4c\x19\xa2\x9c\x4d\x5c\xd6\x26\x69\xbb\x21\x22\xc4\x3c\x28\ -\x25\x45\x1a\xb6\xa2\x2c\x6a\xb0\x41\x8c\x98\x4b\xa8\x80\x7c\xa6\ -\x15\x91\xa4\x45\x01\xa4\x03\xf4\x9d\x45\x61\x33\xca\x9e\x80\xc0\ -\x60\x08\xd3\x70\x2a\x5a\x31\xc4\x6d\xd1\xd8\x1e\x29\x99\x3b\xe6\ -\xa7\x51\x30\xb8\x52\x08\x98\x09\x6c\x1d\x56\xf0\xf6\x76\x83\xe2\ -\xe8\x07\x5f\xff\x02\x7c\x75\xaf\x00\xe1\x30\xe0\x88\xcc\x68\xa0\ -\xad\x89\x0c\x5c\x8a\x82\x1b\x3e\x1a\x6c\xcb\x21\xc2\x05\x92\x8a\ -\x33\x31\x1a\x75\x2f\xe9\x98\xbb\x35\xc6\x03\x27\x5b\x65\x4b\x28\ -\x9a\xa1\xdb\x1d\xd5\x0c\xdb\xee\xe7\x38\x91\xf7\x65\x32\xdc\xf3\ -\xb6\xe8\x80\x22\x2f\x2c\xcb\x10\x3e\x67\x37\x42\x1d\x66\x66\xd8\ -\xd1\x35\xa9\x88\x70\x04\x2d\x0c\x5b\x4a\x8e\xe1\x87\xe4\xda\x71\ -\x71\x8a\x52\x05\x7d\x10\xe6\x8a\x2f\xa5\xd0\x48\x68\x03\x0d\x01\ -\x60\xca\x96\x01\x80\x29\x4b\x89\x46\x5b\x41\x52\xe0\x1a\xf3\xa5\ -\xc2\x14\x71\xac\x68\x93\x07\xb0\x51\x14\x30\xa0\x14\x07\x02\x5b\ -\x4c\x21\x46\x41\x5b\x31\x31\x58\x1b\x04\x84\x80\x76\x4b\x01\x3f\ -\x31\x16\x58\x58\x0c\xea\x70\x4d\xc4\x52\x01\xf9\x65\xab\x3d\xc1\ -\x6c\x66\xb2\x3d\x99\x34\x6c\x8a\x62\x83\xa5\xb3\xc7\x30\x26\x99\ -\xcb\x0f\x53\x2b\x87\x04\x6d\x48\xe7\xa8\x06\x05\xde\xab\x97\xd3\ -\xa6\xf3\xf5\x27\x73\x6f\x18\xce\x35\xf1\xc8\xfe\xf8\x19\x8c\x3b\ -\x8f\xfa\x61\x7c\x6c\x7f\xa7\x46\xc0\xcb\xb9\x0a\x61\xf0\x96\xec\ -\x93\x2b\x84\x79\x37\x88\x67\xdc\x00\x76\x3f\x41\xbb\x75\xd9\x0d\ -\x02\x92\xb9\xfd\x28\xf2\x23\xff\x5c\xaa\x17\x14\xdc\xa7\xc4\xd6\ -\xdd\x52\x12\x24\x1c\xc5\x80\x1b\x42\x1a\xd3\x20\x70\xa5\x6b\x24\ -\x85\x7d\x84\x90\x26\x84\xb9\xda\x41\x21\x77\xc7\x6b\xa4\xac\xb2\ -\x53\x03\x0c\x48\x58\xa3\x02\xee\x4a\xda\xa8\x1a\x4d\x1c\xc6\xa5\ -\x95\x04\xcc\xd8\x9f\x7a\x80\xb9\xfb\x94\x21\x33\x46\x2d\x5f\xb5\ -\xb1\x6f\x4c\x4c\x87\x42\x5e\xd0\x36\x03\x30\xbb\x61\xb8\x16\x29\ -\x24\x34\x39\xc2\x20\x03\x08\x49\xeb\x39\x3b\x54\xbb\xbb\x75\xf0\ -\x4c\x11\x25\x90\x3b\x6b\x8c\x42\xe3\x01\x98\x2d\x87\xa8\xb4\x35\ -\x84\xbb\x90\xad\x18\x1f\x6c\xc5\x80\x29\x50\x6d\x38\x41\x98\x85\ -\x48\x7b\x59\x53\xb7\x5a\xbd\xac\xd2\x62\x04\x71\x84\x19\xa9\x77\ -\x32\x40\x29\x6a\x1d\xd6\x80\x90\x22\x24\xf4\xee\x92\xbb\xa2\x04\ -\x92\x1e\x2c\xc9\x9d\xef\xb9\x8d\x5d\x8b\x41\xb6\x71\xca\xee\x3c\ -\xae\x27\x67\x76\xe9\xe6\x1f\xbd\x3f\xfe\x42\x1e\xaa\x1f\x3c\xfc\ -\x56\x3c\x84\xe8\x3b\xe3\xa1\x43\x7a\x1e\x1a\x79\xc6\x43\x05\xd7\ -\xd5\x94\x87\x16\x3d\xe7\xa1\xc5\xce\x79\xd8\x63\x43\x1e\xf6\xe8\ -\x90\x87\x2d\x3a\xe4\xa1\x82\xeb\xf7\x9c\x87\xee\xed\xe3\x84\x87\ -\x70\x1f\x8e\x78\xa8\xe0\x92\x3c\xe7\xa1\x82\xee\xff\x8c\x87\xca\ -\x96\xb8\x13\x1e\x5a\xc1\x73\x1e\xba\x65\xc7\x3c\x54\x58\xce\xf0\ -\x50\x61\x3e\xc3\x43\x98\x7a\xc2\x43\xd8\xc3\x84\x87\xee\x3c\xae\ -\x27\x67\x76\x91\x87\xea\xeb\xf1\xd0\xfc\xe0\xe1\x37\xe2\x21\x50\ -\xe8\x8c\x87\x35\xd2\xf1\x50\x51\x7d\xce\x43\x28\x05\x67\x78\xc8\ -\xe8\x94\x87\x80\x4d\x78\xd8\x61\x23\x1e\x76\xe8\x88\x87\x0d\x3a\ -\xe2\x21\x53\x53\x1e\x72\x36\xc7\x43\x2e\xc6\x3c\x84\xce\x60\xc2\ -\x43\xae\x26\x3c\xe4\x7a\x8e\x87\x20\x38\xe1\xa1\x5d\xf6\x8c\x87\ -\x4c\xcf\xf1\x10\x7a\x95\x09\x0f\x15\xf4\xb6\xe7\x3c\xb4\xbe\x3f\ -\xe7\x61\x7d\x1e\xd7\x93\x33\xbb\xc8\x43\xf3\x65\x9d\xcf\xd3\xd3\ -\xd3\x7c\xf3\xc3\xf1\x4c\xf3\x63\xdf\xb9\x53\x0d\x4d\x3f\x69\xdb\ -\x82\x77\xb3\x28\x34\x1b\x04\x0e\x15\x9a\x12\x8b\xb5\x0d\x91\xb6\ -\xff\x5a\x83\x42\x7b\x4f\x6d\x48\x19\xc6\xeb\x48\x54\xce\x09\x4b\ -\xc1\x38\xd2\x92\x36\x11\x65\xdc\x84\xd0\x0f\x36\x13\xda\x37\x3b\ -\x70\x9c\x74\x09\xce\x1c\x74\x4e\xbc\x55\xd6\xe0\x5e\x37\x25\xb5\ -\x27\x5a\x6b\x9b\x7a\x3b\x74\x16\x73\x2e\x26\xcd\xc6\x4d\xb3\xf4\ -\xbb\x39\x90\x2a\x45\x20\x56\xdc\xdb\x1b\x81\x34\xe7\x6e\x15\x28\ -\xd4\x5c\x2f\x24\xc0\xaa\xba\x3f\xb3\xca\x0a\xae\x0d\x49\x60\x97\ -\x50\x13\x71\x03\xb7\x9a\xc5\x24\x92\x58\xb9\xbf\xa2\x75\x7b\xb4\ -\xd6\x68\x69\xdd\xa3\x96\x02\xcc\x52\x06\xec\xa9\xfb\x40\x09\xfc\ -\xb0\x36\x72\xdb\x94\x51\xfb\x46\x4b\x83\xff\x38\x87\x00\x12\x96\ -\x09\x8a\xba\x4e\x8e\x18\x64\x6a\x97\x89\xe1\x31\x40\x1f\x48\xb0\ -\x76\x8e\x94\x18\x33\x1b\xe5\x40\xe7\xda\x6b\xb4\xf3\xe4\x0c\x76\ -\x3d\x7b\x88\xcf\xf6\x76\xd3\x7f\xe7\xf3\x17\xe8\xed\x9a\xf8\x77\ -\x5f\x57\xf6\xaf\x2a\xde\xbe\xf8\x1f\xed\x5a\x52\xf3\ +\x00\x42\x91\x78\x9c\xed\x5b\x5b\x6f\xdb\x46\x16\x7e\xcf\xaf\xe0\ +\xaa\x2f\x0d\x56\xa4\xe6\x7e\x51\xec\xf4\x61\x8b\x2e\x0a\xec\x62\ +\x81\x6d\x8b\x7d\x2c\x68\x89\xb2\xd5\x48\xa2\x41\xc9\xd7\x5f\xbf\ +\xdf\x19\xde\x6d\xca\x96\xe2\xc4\x4d\x83\x38\x4d\x4c\xce\x9c\x99\ +\x39\x73\xe6\x3b\x57\x4e\x4f\x7e\xb8\x5d\xaf\xa2\xeb\xac\xd8\x2e\ +\xf3\xcd\xe9\x88\x27\x6c\x14\x65\x9b\x59\x3e\x5f\x6e\xce\x4f\x47\ +\xbf\xfd\xfa\x53\xec\x46\xd1\x76\x97\x6e\xe6\xe9\x2a\xdf\x64\xa7\ +\xa3\x4d\x3e\xfa\xe1\xfd\x9b\x93\xbf\xc5\x71\xf4\x8f\x22\x4b\x77\ +\xd9\x3c\xba\x59\xee\x2e\xa2\x9f\x37\x1f\xb6\xb3\xf4\x32\x8b\xbe\ +\xbf\xd8\xed\x2e\xa7\x93\xc9\xcd\xcd\x4d\xb2\xac\x1a\x93\xbc\x38\ +\x9f\xbc\x8d\xe2\xf8\xfd\x9b\x37\x27\xdb\xeb\xf3\x37\x51\x14\x61\ +\xdd\xcd\x76\x3a\x9f\x9d\x8e\xaa\x01\x97\x57\xc5\x2a\x10\xce\x67\ +\x93\x6c\x95\xad\xb3\xcd\x6e\x3b\xe1\x09\x9f\x8c\x5a\xf2\x59\x4b\ +\x3e\xa3\xd5\x97\xd7\xd9\x2c\x5f\xaf\xf3\xcd\x36\x8c\xdc\x6c\xbf\ +\xeb\x10\x17\xf3\x45\x43\x4d\xdc\xdc\xc8\x40\xc4\xbd\xf7\x13\x26\ +\x26\x42\xc4\xa0\x88\xb7\x77\x9b\x5d\x7a\x1b\xf7\x87\x82\xc7\xa1\ +\xa1\x82\x31\x36\x41\x5f\x4b\x79\x18\xd5\xf4\x76\x05\x51\xec\x65\ +\x26\xf4\x76\x57\x87\xf8\x2f\xf1\xb7\x19\x50\x37\x24\xdb\xfc\xaa\ +\x98\x65\x0b\x8c\xcc\x92\x4d\xb6\x9b\xfc\xf8\xeb\x8f\x4d\x67\xcc\ +\x92\xf9\x6e\xde\x99\xa6\x96\x7e\x6f\xdd\xde\x91\x6c\xd2\x75\xb6\ +\xbd\x4c\x67\xd9\x76\x52\xb7\x87\xf1\x37\xcb\xf9\xee\xe2\x74\x64\ +\xd4\xe5\x6d\x78\xbf\xc8\x96\xe7\x17\xbb\x4e\xc3\x72\x7e\x3a\xc2\ +\x0e\xa5\xe1\x22\xbc\x77\x00\xc4\x4b\x82\x6a\xba\x69\xd3\xc3\x12\ +\xe5\x12\x99\xf0\xa8\xf0\xce\x99\x40\x54\x73\x3e\x9d\xe7\x33\x62\ +\xe5\x74\xf4\x63\x91\x2e\x76\xbf\xff\xb4\xdc\x2c\xb7\x17\x09\x89\ +\xf0\x3d\xe8\x4e\xe6\xd9\x62\x4b\xf4\xe5\xba\xf4\x86\x85\x55\xe8\ +\x43\x2f\x84\x97\xa5\xc5\x3f\x8b\x74\xbe\x04\x64\x4a\xba\x92\xb2\ +\xdf\xa3\x84\x63\xd5\x18\x8c\xda\xee\xf2\xcb\x9a\x16\x9c\xec\xee\ +\x56\x58\x9e\x1a\xe3\x59\xbe\xca\x8b\xe9\x77\x8b\x85\xc1\x39\xbe\ +\x0b\x4d\x39\x64\xb4\xdc\xdd\x4d\xf9\xbb\x51\x3b\x26\x5f\x2c\xb6\ +\x19\x84\xc2\x3a\x6d\x41\x2e\x18\x81\xb5\xc4\x28\x9a\x1c\xb3\x5a\ +\x96\x1d\xb4\x1a\x1f\x5e\x4d\x35\xab\x9d\x4c\xfa\xdb\xae\x5a\x9b\ +\x03\xb9\xc4\x81\x5c\x66\x33\x52\x9d\x7a\xa6\xe6\x1c\x76\x77\x84\ +\x96\x3e\xa9\x9c\x37\x2b\xb6\x87\x7a\xf9\xfb\x2d\x36\x1e\x4d\x23\ +\x29\xf0\x0f\x1f\xa4\xb8\x2b\x29\x38\xa4\x88\x5f\x6c\x90\xe6\x9e\ +\x30\xf5\xc4\x34\x15\x07\x71\x5e\x2c\xcf\x97\x00\x51\xa0\x13\x3c\ +\x91\xe1\xa7\x3f\x06\xc2\xe8\xec\x4d\x1a\xc1\x5a\x99\x3c\xb5\xfb\ +\x87\x03\xb5\x73\xcf\x33\xc2\x12\x4d\x9b\xaa\x18\x79\xc8\x4a\x7f\ +\x87\x3c\x50\xea\x17\x09\xaa\x12\xf7\xc3\x69\x9e\x3b\xb9\x8f\x12\ +\x80\xf1\xe2\xeb\x13\x00\x69\x43\xba\x7a\x64\x25\x6a\x7a\xa8\xe1\ +\x0a\xdb\x3f\x1d\xa5\xab\x9b\xf4\x6e\xdb\xcc\x1f\x4c\xf3\xf4\xa2\ +\xc8\xe0\x4a\xbe\xeb\x2b\x96\xe4\x4a\xc5\xa6\x87\xbf\xfe\x22\xd2\ +\x40\x2d\xeb\xee\xf3\xaa\xf1\xb7\xcd\x72\x07\xaf\x71\xb5\xcd\x8a\ +\x5f\xc8\xf2\xfe\x67\xf3\xdb\x36\x7b\x44\xf5\x6b\x91\x6e\xb6\x30\ +\xf3\xeb\xd3\xd1\x3a\xdd\x15\xcb\xdb\xef\xf9\x98\xd1\x9f\xc4\x78\ +\xa7\x85\x57\x78\x16\x4c\x24\x4e\x38\x23\xdf\x36\xc3\x67\x90\x92\ +\x10\x3a\x11\x46\xb1\xf6\x0c\x67\x90\xaf\xb1\x22\xb1\xde\xca\x96\ +\xdf\xc5\x20\xed\x62\x90\xb6\x80\xe6\xa9\x44\x2a\xcd\xa1\x1b\x8d\ +\x48\x0f\x35\xbc\x95\xa0\xf6\x18\xc3\xda\x88\x81\xca\xc4\xbe\x63\ +\xdd\x06\xad\x24\xfd\x3c\xb0\x92\x83\x26\x79\xaf\xed\xed\x2c\xe7\ +\x62\x71\xfc\x72\x6c\xd0\x26\x3f\x63\x7c\xff\x1c\xf0\x99\x6f\xe0\ +\x83\x1c\x2c\xe3\xcf\x42\xcf\x32\xf9\x7a\xc0\xb3\x4c\x7f\xd5\xb0\ +\x73\xdf\x60\x17\x60\xe7\x9e\x87\x1d\x67\xaf\x08\x3b\xfe\xe7\x5a\ +\xbb\x9e\x3c\x9f\x16\xfd\xf0\x31\x0d\x1f\xe9\xf0\xf1\xbf\x10\x53\ +\x87\x01\x77\x00\xfd\x56\xc8\x8f\x51\xa3\x7d\x1a\xf9\x51\xe1\x9b\ +\xeb\xd8\x97\xaf\x26\x7c\x3b\x58\xef\x9c\x51\x31\x8b\xf7\x26\x7a\ +\x8d\x3a\x38\x63\x62\x1d\xdb\x67\xf2\xb9\x01\x35\x61\x86\xfb\xd9\ +\xe3\x4c\xed\x79\x05\x74\xc6\xc5\xb6\x73\xea\xc3\x39\xdd\xc0\x8a\ +\xd2\xfa\xd9\xe2\x6c\xef\x8a\x7b\xb4\xf0\x60\x89\x49\x6b\x9f\x95\ +\x16\x58\x38\x5e\x52\x8b\x45\x9a\x0e\xe4\xb4\xcf\x4b\x4a\xba\x21\ +\x23\xf7\x8c\x94\x16\xe9\x62\x21\x3e\x9f\x94\x02\xae\x0e\x43\xd5\ +\x6b\x63\xea\x4f\x46\xd4\x0b\xc2\x89\x50\x92\xd9\x2f\x74\x25\x25\ +\x3f\xd2\x26\xdf\x72\xb8\x19\x93\x18\xc7\x1d\x6f\x05\x73\x57\xb6\ +\x0a\x8b\x3f\xad\xf3\xb9\x15\x70\x28\x26\xb1\xd4\xda\xa1\x15\x5d\ +\xda\xa3\x0d\x10\x6d\x09\x10\x38\xbc\xf2\xc3\x98\x3d\x63\xfe\x05\ +\x75\x26\x24\x4d\xc7\x54\x9a\x94\x59\x2c\x5e\x54\x69\xc2\xee\x5e\ +\x3f\xee\x14\x56\x3e\xe1\x77\x85\xe2\xc7\x02\x65\x7f\x84\xc0\x12\ +\xee\xa5\x75\x56\x57\x91\x82\x60\x5e\x49\xed\xc4\x38\x56\x88\x33\ +\xbc\x16\x8e\x8f\x63\xce\x29\xe4\xe0\xca\x3e\x08\x44\x31\x2e\xd1\ +\xde\xb7\xdc\x50\xd4\xa2\x35\x22\x0c\x44\x2d\x6d\x35\x60\x31\x48\ +\xbb\x18\xa4\xa5\xc0\xc9\x21\x42\xf1\xd2\xf8\x67\xf1\xf8\x9c\x8c\ +\x07\x2c\x1b\x89\xf6\x98\x42\xe5\x40\x48\x7a\x28\x5c\xb1\x96\x3e\ +\xb2\x2c\x3a\x10\x93\x1e\x0a\x56\xac\x66\x5f\xdf\xa6\x49\x1c\xd4\ +\x13\xe2\x16\xaa\x13\x9e\xbd\x14\xaa\x71\x19\xcd\xe2\x97\x36\xda\ +\x24\x0e\x9e\x73\xcc\xa5\x52\x89\x10\xdc\xbc\xed\x19\x45\x48\x5e\ +\xc1\x2c\x6a\xd7\x33\x8a\xc6\xf2\x84\x73\xd6\xa9\x53\x91\x51\x14\ +\x9e\x41\x09\x54\xc7\xe7\x93\x51\x6c\x69\x3f\x07\x08\xfd\x31\x20\ +\x74\xcc\x7d\x7c\x6d\x1e\x6b\x1d\x07\xc2\xa1\xd5\x8e\x00\xa1\xff\ +\x22\x41\x68\x3f\x33\x08\xad\xf9\xc2\x41\xf8\x22\xe9\xf9\xcf\x2b\ +\x3d\xc5\xdc\x5f\x59\x7a\x5a\x3f\x2d\x3d\xf9\xc9\xa4\x87\x3d\x6a\ +\xce\x3d\x04\x53\x39\xeb\xda\x75\xc7\x92\xf9\xc4\x32\xcf\x2c\x44\ +\xcb\x10\x10\x32\xaf\xf5\x43\x71\x4a\x91\x48\x6d\x45\x4f\x9c\x96\ +\x93\x88\x04\xef\x87\x89\xc2\x49\x9f\x30\xcb\x65\x4f\x9c\x2d\xed\ +\xe7\xb0\x88\xfa\x98\x28\xf2\x85\x6e\x59\xdb\xd7\x74\xcb\xda\x7f\ +\x71\x16\x51\x19\xfb\xe9\x50\x19\xf7\x43\xc8\xce\xab\xb1\x88\x27\ +\x2d\x73\x76\xcc\x8d\x85\xb2\x1b\xe5\xff\xa2\x3a\xfe\x9c\x34\x3f\ +\xdd\xc7\x87\xc3\xa4\xc9\x13\x23\xb5\xf8\x5a\xa5\xf9\x09\xfd\xcd\ +\x21\xd2\xd4\x3a\x51\x12\x5e\xee\x2f\x29\xcd\x90\x81\xbb\xa7\xe4\ +\x29\x25\x8f\x8f\xfd\x4a\xd1\x2d\x2c\x98\x9e\x00\x9e\x2e\x2c\xb8\ +\x9e\x00\x5e\x5a\x58\xd8\xfb\x4d\xe1\x73\x5c\x60\x89\xbd\x3a\xd2\ +\x2b\xbc\xf0\x0e\x4b\xfc\x74\xa4\x7c\x32\xa1\xab\x3f\xe1\xa9\xa9\ +\x1b\xd3\xb5\xa1\xf9\xf5\x32\xbb\x79\xd3\xcc\x76\x96\x36\xc7\x76\ +\x99\x9e\x67\x81\x39\x80\xa4\xf4\x59\x55\xc7\x59\x5e\xcc\xb3\xa2\ +\xee\x32\xe1\xa7\xd7\x55\xf1\x5f\xde\x88\x7b\xd3\xc7\x24\xcd\xda\ +\xf4\xb3\xe1\xfe\xed\x45\x3a\xcf\x6f\xa0\x07\x0f\x3b\xef\xf3\x7c\ +\x4d\xb3\x7a\xa5\xb4\x6a\xbe\x63\xb4\x78\xbf\x05\x48\x6c\x42\x21\ +\x66\x13\x6c\xb4\x9d\x58\x2f\xa6\x98\x83\x69\xfd\x78\xe4\x55\x51\ +\x40\x50\xf1\x2a\xbd\xcb\xb0\xa9\xf0\xab\x16\xf4\xf6\x22\xbf\x39\ +\x2f\x48\x38\xbb\xe2\x2a\x7b\x38\x72\x9e\xcf\xae\xe8\xb6\x5d\x7c\ +\x55\x6a\x40\x75\xc7\xab\x43\x41\x63\xe3\xb3\xb3\xfc\x76\x78\x82\ +\x9b\xe5\x06\x9b\x8d\xab\x5b\x63\xbc\x2d\xea\x3d\xa4\xa8\xef\x91\ +\x59\x6b\xf7\x50\xdc\xb6\x70\x7c\xd8\x75\xb7\xbf\x6b\x9d\xde\x2e\ +\xd7\xcb\xfb\x6c\xde\x62\xab\x21\xd9\x6e\xd2\xcb\xf8\x7c\x95\x9f\ +\xa5\xab\xd3\xd1\x22\x5d\x6d\x1f\xb1\x1f\x28\x36\xf9\x3c\xdb\x0e\ +\x6f\x2f\x3f\xfb\x03\x26\xa8\x47\x51\xc2\xf4\x64\x9d\xed\xd2\x79\ +\xba\x4b\x5b\xf0\xd5\x2d\xd2\xf0\xba\xaa\x7e\x52\xcc\x17\xd3\xff\ +\xfe\xf8\x53\xa3\x48\xb3\xd9\xf4\x7f\x79\xf1\xa1\xd5\x01\x22\x48\ +\xcf\xf2\x2b\x48\xa6\xd1\x6f\xba\xf6\x36\x9b\x92\xe9\x4e\x77\xef\ +\x97\x6b\x40\x8a\xae\x14\xfe\xfd\x76\xbd\x82\x1a\x34\x1d\x3d\x62\ +\xfa\x86\xd2\x4e\x5a\x4e\x5b\x64\xe5\x95\xc1\xc1\x5b\x96\xf3\xd9\ +\x7a\x49\x83\x26\xbf\xec\x96\xab\xd5\xcf\xb4\x48\x47\xe1\xab\x49\ +\x97\xbb\x55\xf6\x3e\xac\x59\x3e\xd6\xbb\x98\x54\xdb\xa8\xf5\xb5\ +\xb3\xcb\x93\x49\x2d\x86\xf0\x76\xde\x8a\xa7\x87\xca\x46\xc0\xab\ +\xf4\x2c\xc3\xe1\xfc\x8b\x3a\xa3\x47\xbd\xe7\x45\x7e\x75\xb9\x86\ +\xf0\xab\xe1\xb5\x58\x2f\xd3\xdd\x45\xcd\x6a\x65\x8d\x9a\x58\x34\ +\xd1\x46\xe8\x77\x4d\x85\x95\x7e\xde\x2d\xb0\xc7\xde\x4b\xc7\x48\ +\x6d\x77\x45\xfe\x21\x9b\x6e\xf2\x4d\x56\x3d\x97\x68\x9e\x8a\x77\ +\xeb\xb4\xf8\x90\x15\x65\xd7\xf5\x72\xbb\x3c\x5b\xae\x68\x4c\x78\ +\x5c\x65\xef\xe6\xcb\xed\x25\xd8\x9a\x2e\x37\x64\xb0\xde\xe5\xd7\ +\x59\xb1\x58\xe5\x37\x4d\x7f\xb6\x49\xf1\x2b\x3e\x4b\x67\x1f\x68\ +\x23\x9b\xf9\x34\x9d\x41\xdd\xae\x56\xe9\xae\x75\x2e\x04\x9c\x48\ +\xb8\x44\x3a\x2f\x98\x1e\xdb\x84\xae\x48\x22\x38\x8c\x66\x51\x2c\ +\xa1\xee\xd6\x78\xa4\x89\x51\xac\x13\x6c\x6b\x2c\x12\xad\x9c\xd6\ +\xce\xd4\x0d\xf8\x17\xfb\x55\xde\x44\x6c\x0c\x7b\xe5\x34\xd2\x7b\ +\xfa\xb6\xc7\xb9\x74\x02\xe4\xcc\x5a\xcf\x15\x5a\x9c\x92\x96\xc6\ +\xc3\xe3\xeb\x68\x15\xc5\x5c\x26\x9a\x9e\x91\xaf\x27\x5c\x68\x5a\ +\x0e\x44\xda\x63\x6e\x4d\xa1\x81\x96\x42\x1a\x07\xba\xc4\x21\x31\ +\x55\x32\x34\x86\x49\xa2\x18\xb3\x18\x84\x0d\xac\xdb\x36\xc8\x2b\ +\xb7\xc8\xc5\x3a\xac\x62\x1d\x36\xae\x29\xa3\x9a\xa0\xea\xe9\x51\ +\x25\x02\x46\x50\x19\xcc\x06\x56\x90\xbf\x39\x47\x6b\x31\xee\x1d\ +\xa7\xcd\xd8\xb0\x34\x23\xd2\x55\xc4\x55\xa2\x2a\x7e\xf0\x68\xea\ +\xcd\x30\x0b\xb1\x20\x2f\x94\xc6\x48\x26\x42\x4b\xd8\x30\x4b\xac\ +\xb1\xd6\xf9\xb6\x05\x66\x55\x1f\xce\x5b\x45\x03\xd6\xca\xd6\xb8\ +\xd9\x68\xf5\x5e\x6f\x94\xa4\x88\x1c\xb5\x5a\xc9\x95\x09\x69\xc2\ +\x90\x03\x69\x6a\x41\xf2\x48\xdb\xe0\x09\xed\xc1\x06\xd8\x8e\x63\ +\x9b\xd0\x4e\xb0\x01\x9e\x28\xe5\x9c\x27\x6e\x35\xd2\x55\x89\x65\ +\x99\xf4\x56\x80\x59\xe1\x8d\xf1\x36\x52\x49\x60\x5d\x4b\x3a\x3e\ +\x97\x30\x86\x9c\x97\x30\x00\x11\x71\x1d\x71\x9d\x48\xcb\x8c\x1a\ +\xc7\x90\x8e\x17\x04\x02\x6e\x4a\x39\x61\x4d\xb0\x1c\x55\xa4\xe3\ +\xb8\x1c\x4b\x98\xaa\x48\x41\x80\x28\x90\x71\xe7\xc0\x28\xd1\xa2\ +\xc1\x60\x04\xfa\x19\xb8\xe1\x61\x67\x38\x12\x67\x23\x30\xec\xbd\ +\x72\x8a\x3e\xab\x0b\xc8\x80\x63\x00\x1f\x57\x00\x21\x9c\x51\x38\ +\x69\x83\x50\x4a\x46\x67\x51\xc0\x56\x85\x1d\xed\xb1\xb7\x06\x9d\ +\x0d\xd8\xda\x96\x7a\x26\x48\xb3\x39\x9b\x4a\xe0\x3c\x48\xba\x42\ +\x7f\xdc\xca\xbe\x6a\xb9\x8f\xd6\x44\x29\x1c\x56\x1d\x73\x88\x51\ +\x79\xfc\x98\xc0\x80\x65\xd8\x1c\x41\x83\x23\x20\x53\x24\x6b\x53\ +\xee\xa1\xe4\xb1\x1e\x55\xbf\xd3\x00\xcd\x30\x00\x94\x08\x98\x45\ +\x08\x9d\xa5\x93\x4a\x44\xe1\xb9\x54\x29\x1d\x8e\x0e\x20\x71\x95\ +\x3e\xd1\xd9\x30\x21\x71\x26\xde\x40\x6a\x82\xd8\x31\x4c\x7b\x37\ +\x56\x89\x84\x1e\x33\xd1\xa8\xd2\xd8\x12\x22\x8c\x67\xda\x62\x02\ +\x86\x5e\x49\x6c\x81\x3b\x9c\xa9\x4f\x1c\x43\x50\x20\x71\xe2\xe5\ +\x66\x5a\x2d\x36\x61\xd7\xa6\x06\x0d\xe6\xf0\x0a\x80\x23\xa6\x2c\ +\xc7\xda\x92\x56\xe0\x4c\x41\x93\xc0\x0e\xf1\x05\x31\x56\xa2\x0e\ +\x6f\xb4\x21\xa3\xac\x24\xb5\x05\x77\xca\x72\x4b\x98\x53\x9e\x3b\ +\x16\x88\x69\x7e\x9e\x04\x31\x94\x56\xa3\x42\xad\xac\x74\x86\xc4\ +\xe9\x8d\xd7\x56\x05\x70\x73\xe6\x05\x07\xe7\xba\xd2\x0c\x09\x5b\ +\x66\x74\xd3\x20\x93\xea\x30\xc1\x9f\xb3\x9c\x07\xb5\xe4\x4a\x43\ +\xfc\x41\x13\xa4\xd3\x4c\x51\x5b\x7d\xfa\x41\x49\x48\xc7\x65\x52\ +\xaf\x5b\x9e\xc9\x7d\xff\x9b\x10\xbc\xb4\x52\xa2\xfb\x55\xbf\x93\ +\x47\x6c\x36\xe8\xce\x8b\x18\x71\xd2\x75\xba\xbb\x2a\xb2\xee\xb5\ +\x99\x13\x1a\xfb\xc0\x99\x0c\x79\x8f\xaa\xf0\x31\xec\x3d\x6a\xd2\ +\x07\x0e\xa4\x7a\x25\xf7\x00\x56\xa6\x67\x57\xbb\x5d\xb7\xed\x8f\ +\x7c\xb9\x99\xc2\x0f\x67\x45\xdd\x1a\x5e\x56\x08\x68\x76\x53\x55\ +\xb7\x3d\x5c\x2c\x9e\xa7\x08\x31\x8b\x02\x9e\xa7\xeb\xb4\xa8\xb5\ +\x8c\xb2\xa7\xec\x55\x3c\x57\x57\xee\x4d\x63\x15\x08\x4a\x95\x68\ +\x27\xbd\x6a\xd3\xa5\x3a\xfe\x23\xb7\x03\xb3\x63\xda\x1e\xfa\x1e\ +\x46\x19\x13\xc2\xe2\x4e\x76\x45\xe1\x2e\x19\x21\x0f\x10\x37\xad\ +\xbb\x81\x2a\xa0\xf1\x9e\xc6\x0a\xb2\x94\x9c\xbe\xd6\xf9\x0a\xfe\ +\xd5\x73\x97\x62\xcc\xde\xb6\xe7\xde\x0d\x22\xc2\x45\x1a\xbc\x2b\ +\x21\x75\x27\x3f\xac\xe0\xd0\x03\xc0\x17\x70\xe2\x7d\x0c\x76\x43\ +\x89\x7f\x47\x9a\xa2\x00\x27\xb8\x1f\x4b\x11\x4a\x9f\xe4\xcc\xa8\ +\xa4\x2c\x60\xa7\xc7\x9a\xac\x93\x35\xcc\xc0\x96\x08\x0d\x1b\xe6\ +\xe4\x58\x42\xef\x2c\x53\xc2\x44\xc2\x27\x54\x8f\xb0\x06\x61\x08\ +\xdc\xbf\x50\xc6\x44\xd4\x6b\x1c\xc2\x88\x31\x15\x55\xa1\xde\x2e\ +\xf2\x70\x1c\xd6\x69\xc3\x69\xa8\x11\x1c\x87\x14\x96\x50\x1a\xa7\ +\x35\xd6\x90\x3d\x0c\x30\xdc\x89\x72\x89\x86\xb7\xd3\x63\x49\xce\ +\x8e\xc3\xd0\xde\x1f\xac\x9d\xcd\x09\x34\xd9\x1e\xa2\x40\x0a\x58\ +\x11\x86\xcf\xea\x9f\xf6\x2c\xcf\xbb\x07\x79\xae\x64\xe7\xa3\xfe\ +\x63\xcc\x90\x84\x98\x54\xe4\x5c\xc7\x65\xd4\x54\xbe\xc1\x79\x78\ +\xc8\xc6\x41\x76\xf0\x89\xf0\x51\x5e\x08\xf7\xb6\x4d\xbb\xbb\x80\ +\x19\xc6\x22\x07\xe4\x60\x77\x03\x00\x3d\xfc\xbd\x80\xdd\x1f\xf7\ +\x1e\x1b\x0a\x0b\xfb\x6b\x24\x97\x66\xec\x60\xe7\x1d\x4e\x4a\xb5\ +\x25\x97\x2a\x2c\x34\xba\x2c\x19\xd8\x71\x53\x3c\x88\x52\x32\x85\ +\x1a\x09\xa4\x0e\xa1\x5b\xf9\x14\xc1\x33\x45\xe4\x18\x2d\x8e\x86\ +\x85\x20\x6c\x3f\x55\x87\xe8\xbe\xb3\x62\x23\xe9\x82\x52\xdf\x7a\ +\xcc\x20\xc1\xed\x33\x04\x94\xac\x3e\x2e\x8d\x74\x09\x30\x03\x80\ +\x1a\xf6\xd6\xbd\x9a\xd8\xaa\xa1\xed\x8d\xdb\x6b\x95\x91\xd1\x7c\ +\xff\xb0\x06\x24\x25\x7f\xfb\xd0\x4c\x87\xd7\xe2\x6a\x95\x4d\xb3\ +\xeb\x0c\x50\x9a\xef\x0f\xfb\xe5\xab\x18\xcf\x47\xf7\xdf\xd2\xa2\ +\x03\xe7\xc9\xf9\x50\xa2\xf3\x78\xc0\x01\x6e\x4b\x2e\x1c\x5f\xf8\ +\x83\xe5\x31\x68\xd6\x24\xf4\x42\xd3\x71\xf3\x97\x58\xad\xd7\xf2\ +\x49\x25\x80\x3a\xff\x23\x4b\x0f\x76\x1c\xfa\xae\x8d\xee\x54\x27\ +\x1f\xc1\x16\x96\xb2\x73\x4f\xb5\x07\x7b\x9b\x20\x56\xb1\xa6\x73\ +\xd5\xb3\xa7\x36\x8f\xbb\x83\x1e\x73\x18\x42\x8e\xb8\x96\x8f\x9b\ +\xe9\xa1\xc7\x0d\xf1\xb8\x79\xaa\xf5\x18\x69\x0c\xd2\x1f\x2d\x94\ +\x85\x92\xee\xa7\xeb\x91\xdd\x3f\xe9\x25\xad\x56\x06\x09\x95\xa8\ +\xbe\x95\x35\xaf\xe4\x29\x2d\x93\x8e\x87\x6c\x11\xd1\x38\xcc\xba\ +\xdf\xe3\x24\xbf\x01\xf0\x38\x00\xc6\x03\x28\xf9\x06\xc1\x47\x10\ +\x14\x54\xb2\x41\x7a\x23\x11\xdd\x23\x9b\x94\x0a\xff\x7d\x43\xe0\ +\x27\x42\xa0\xfe\x06\xc1\xc3\x20\x48\x79\x2b\x97\x63\x41\x71\xb1\ +\x73\xd6\xee\x43\xe0\x40\x46\xf0\x22\x60\x21\x3d\x37\x56\x22\x4a\ +\xe7\x5f\x77\xb6\x18\x20\x80\x8c\x00\xe1\x99\x10\x63\x28\xba\xd5\ +\x5c\x6b\x51\x96\x39\xb5\x45\x42\x48\xd5\xb1\x2c\x36\x54\xd4\x50\ +\x4e\x30\x13\xca\x48\x4c\x82\x8e\x9a\xb4\xe6\x74\xf8\x78\xe0\x9c\ +\x5b\x17\xad\xa2\x70\xe7\x03\x81\x3b\x73\x78\xc4\xb1\x31\x8d\xac\ +\x24\x54\x34\xa4\xd2\x5e\x53\xe9\x10\x39\x0b\xcc\x89\x42\x33\x72\ +\x49\x47\x45\x13\x19\x9a\xe3\xa6\x3d\xa6\x3a\x9b\x50\x04\x09\x6a\ +\x57\x09\x5c\x21\xa2\xfe\x50\xb1\xa3\xeb\x74\x68\x9e\x55\x85\x42\ +\x00\x97\x58\xf5\xdc\xeb\xb2\x70\xe3\x75\x28\x49\x80\x5d\xcb\xac\ +\x54\x35\x97\x5c\x34\x6d\x65\x15\x8a\xa6\xd2\x94\x90\xc1\xbf\x1a\ +\x2a\xab\x50\x75\xcf\x59\xa5\x24\x4d\x2f\x13\xe9\xa1\x17\x54\xba\ +\xd3\xc8\x44\x1c\x15\x18\x95\xd2\x4e\xd3\x00\xc5\x90\x36\x51\xfd\ +\x83\xe6\x40\x0a\x15\xb8\x04\x13\x42\x52\x41\x0f\xcb\xe0\x17\xe3\ +\xaa\x64\x9e\x98\x63\x4e\x50\xe9\x98\x85\x5a\x9a\x86\x96\x78\xac\ +\x85\x7c\x0f\xa9\x1b\x11\x50\x71\x4d\x86\x15\x90\xf2\x11\xa3\x4d\ +\xd3\xfd\x23\x03\x22\xa4\x3b\xbc\x9a\xf2\x54\xbe\xb6\x6d\x12\xb6\ +\xd9\x76\xbb\xad\x7e\xd5\xdf\x51\x28\xd4\x3d\xa1\xef\x1b\xef\xdf\ +\xfc\x1f\x48\xa4\xe7\x17\ \x00\x00\x09\x90\ \x00\ \x00\x23\x6d\x78\x9c\xed\x59\x5b\x8f\xdb\xd6\x11\x7e\xf7\xaf\x50\ @@ -36239,179 +36225,181 @@ qt_resource_data = "\ \x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\ \x74\x32\x39\x39\x33\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\ \x0a\x3c\x2f\x73\x76\x67\x3e\x0a\ -\x00\x00\x0a\xa7\ -\x3c\ -\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ -\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\ -\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\ -\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\ -\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\ -\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\ -\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\x63\ -\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\ -\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\x2e\ -\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\ -\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\ -\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\ -\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\x68\ -\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\ -\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\x2d\ -\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\x78\ -\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\x2f\ -\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\ -\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\x22\ -\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\ -\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\ -\x6d\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\ -\x74\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\ -\x6f\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\ -\x54\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\ -\x64\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\ -\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\ -\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\ -\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\ -\x65\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\ -\x78\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\ -\x70\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x34\x30\ -\x35\x34\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\ -\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x33\x32\x22\x0a\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\ -\x6f\x6e\x3d\x22\x30\x2e\x34\x36\x22\x0a\x20\x20\x20\x73\x6f\x64\ -\x69\x70\x6f\x64\x69\x3a\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x66\ -\x69\x6e\x69\x73\x68\x2e\x73\x76\x67\x22\x0a\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x6f\x75\x74\x70\x75\x74\x5f\x65\x78\ -\x74\x65\x6e\x73\x69\x6f\x6e\x3d\x22\x6f\x72\x67\x2e\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x2e\x6f\x75\x74\x70\x75\x74\x2e\x73\x76\x67\ -\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x3e\x0a\x20\x20\x3c\x64\ -\x65\x66\x73\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x64\x65\x66\ -\x73\x34\x30\x35\x36\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6e\x6b\ -\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\ -\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\ -\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x70\x65\x72\x73\x70\x33\x64\x22\x0a\x20\x20\x20\x20\x20\x20\ -\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x78\x3d\x22\ -\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x79\ -\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\x30\x20\x3a\x20\x30\x22\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\x3a\x20\x33\x32\x20\x3a\x20\ -\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\ -\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x2d\x6f\x72\x69\x67\x69\ -\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\x31\x2e\x33\x33\x33\x33\x33\ -\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\ -\x3d\x22\x70\x65\x72\x73\x70\x65\x63\x74\x69\x76\x65\x34\x30\x36\ -\x32\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\ -\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\ -\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\ -\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\ -\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\ -\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\ -\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\ -\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\ -\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\ -\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\ -\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\ -\x6d\x3d\x22\x32\x2e\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\x39\x2e\x30\x33\x33\ -\x31\x37\x35\x37\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\ -\x61\x70\x65\x3a\x63\x79\x3d\x22\x38\x2e\x34\x31\x36\x38\x34\x33\ -\x36\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\ -\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\x65\x72\x3d\x22\ -\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x73\x68\x6f\ -\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\x20\ -\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\x63\x75\x6d\ -\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\x22\x0a\x20\ -\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x69\ -\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\x0a\x20\x20\ -\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\ -\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x36\x38\x39\x22\x0a\x20\ -\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\ -\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x37\x32\x32\x22\ -\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\ -\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\ -\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\ -\x2d\x79\x3d\x22\x32\x35\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x6d\x65\ -\x74\x61\x64\x61\x74\x61\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\ -\x6d\x65\x74\x61\x64\x61\x74\x61\x34\x30\x35\x39\x22\x3e\x0a\x20\ -\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x20\ -\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\x72\x6b\x0a\x20\x20\x20\x20\ -\x20\x20\x20\x20\x20\x72\x64\x66\x3a\x61\x62\x6f\x75\x74\x3d\x22\ -\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x66\ -\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\ -\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x0a\ -\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x79\x70\x65\ -\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\ -\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\ -\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x64\x63\x6d\ -\x69\x74\x79\x70\x65\x2f\x53\x74\x69\x6c\x6c\x49\x6d\x61\x67\x65\ -\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x2f\x63\x63\x3a\ -\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x72\x64\x66\x3a\ -\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\x74\x61\x64\x61\x74\ -\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\ -\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\ -\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\x6c\x3d\x22\x4c\x61\ -\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ -\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\x6f\x64\x65\x3d\x22\ -\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ -\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\ -\x66\x69\x6c\x6c\x3a\x23\x30\x30\x64\x30\x30\x30\x3b\x66\x69\x6c\ -\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\ -\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\ -\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x73\x74\x72\ -\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x37\x3b\x73\x74\ -\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\ -\x74\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\ -\x6e\x3a\x6d\x69\x74\x65\x72\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\ -\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\ -\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\ -\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\ -\x3a\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\ -\x32\x2e\x33\x37\x35\x34\x33\x36\x37\x2c\x33\x35\x2e\x32\x31\x38\ -\x32\x33\x35\x20\x43\x20\x31\x32\x2e\x36\x38\x38\x31\x37\x37\x2c\ -\x34\x32\x2e\x34\x38\x34\x38\x36\x31\x20\x31\x33\x2e\x39\x30\x35\ -\x34\x38\x33\x2c\x35\x37\x2e\x31\x36\x32\x33\x31\x37\x20\x31\x33\ -\x2e\x39\x30\x35\x34\x38\x33\x2c\x35\x37\x2e\x31\x36\x32\x33\x31\ -\x37\x20\x4c\x20\x32\x37\x2e\x37\x36\x30\x36\x37\x38\x2c\x35\x37\ -\x2e\x31\x36\x32\x33\x31\x37\x20\x43\x20\x32\x37\x2e\x37\x36\x30\ -\x36\x37\x38\x2c\x35\x37\x2e\x31\x36\x32\x33\x31\x37\x20\x33\x38\ -\x2e\x32\x37\x38\x36\x2c\x32\x33\x2e\x30\x32\x37\x38\x36\x37\x20\ -\x35\x31\x2e\x31\x37\x36\x34\x30\x32\x2c\x31\x32\x2e\x39\x38\x35\ -\x37\x38\x34\x20\x43\x20\x36\x34\x2e\x30\x37\x34\x31\x38\x35\x2c\ -\x32\x2e\x39\x34\x33\x36\x39\x30\x31\x20\x36\x31\x2e\x33\x39\x33\ -\x34\x32\x34\x2c\x34\x2e\x37\x38\x39\x31\x38\x32\x34\x20\x36\x31\ -\x2e\x33\x39\x33\x34\x32\x34\x2c\x34\x2e\x37\x38\x39\x31\x38\x32\ -\x34\x20\x43\x20\x36\x31\x2e\x33\x39\x33\x34\x32\x34\x2c\x34\x2e\ -\x37\x38\x39\x31\x38\x32\x34\x20\x34\x31\x2e\x39\x35\x37\x38\x33\ -\x37\x2c\x38\x2e\x30\x34\x30\x34\x31\x39\x31\x20\x33\x30\x2e\x34\ -\x30\x30\x34\x33\x35\x2c\x32\x32\x2e\x33\x34\x33\x30\x31\x37\x20\ -\x43\x20\x31\x38\x2e\x38\x34\x33\x30\x31\x32\x2c\x33\x36\x2e\x36\ -\x34\x35\x35\x39\x35\x20\x31\x39\x2e\x35\x31\x33\x32\x31\x33\x2c\ -\x34\x31\x2e\x39\x35\x31\x34\x30\x33\x20\x31\x39\x2e\x35\x31\x33\ -\x32\x31\x33\x2c\x34\x31\x2e\x39\x35\x31\x34\x30\x33\x20\x43\x20\ -\x31\x39\x2e\x35\x31\x33\x32\x31\x33\x2c\x34\x31\x2e\x39\x35\x31\ -\x34\x30\x33\x20\x31\x37\x2e\x32\x32\x39\x30\x38\x38\x2c\x33\x38\ -\x2e\x31\x38\x31\x31\x30\x32\x20\x31\x30\x2e\x39\x35\x31\x31\x35\ -\x39\x2c\x33\x36\x2e\x30\x39\x37\x37\x32\x32\x20\x43\x20\x34\x2e\ -\x36\x37\x33\x32\x32\x39\x32\x2c\x33\x34\x2e\x30\x31\x34\x33\x32\ -\x32\x20\x32\x2e\x35\x35\x33\x32\x34\x32\x39\x2c\x33\x35\x2e\x31\ -\x36\x37\x37\x36\x35\x20\x32\x2e\x33\x37\x35\x34\x33\x36\x37\x2c\ -\x33\x35\x2e\x32\x31\x38\x32\x33\x35\x20\x7a\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x61\x74\x68\x32\x33\x38\x31\ -\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\ -\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x66\x69\x6c\x65\x6e\x61\x6d\ -\x65\x3d\x22\x2f\x68\x6f\x6d\x65\x2f\x79\x6f\x72\x69\x6b\x2f\x44\ -\x6f\x63\x75\x6d\x65\x6e\x74\x73\x2f\x4c\x61\x62\x2f\x44\x72\x61\ -\x66\x74\x2f\x69\x63\x6f\x6e\x73\x2f\x66\x69\x6e\x69\x73\x68\x2e\ -\x70\x6e\x67\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\ -\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x78\x64\x70\x69\ -\x3d\x22\x34\x2e\x36\x30\x39\x32\x30\x34\x38\x22\x0a\x20\x20\x20\ -\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\ -\x6f\x72\x74\x2d\x79\x64\x70\x69\x3d\x22\x34\x2e\x36\x30\x39\x32\ -\x30\x34\x38\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\ -\x2f\x73\x76\x67\x3e\x0a\ +\x00\x00\x0a\xc1\ +\x00\ +\x00\x2f\x10\x78\x9c\xed\x59\x59\x8f\xdb\x46\x12\x7e\x9f\x5f\xc1\ +\x95\x5f\x62\xac\x48\xf5\xc1\x3e\x28\xcf\x38\x0f\x31\xb2\x08\x90\ +\xc5\x02\x1b\x1b\xfb\x18\x50\x22\x35\xc3\x98\x22\x05\x92\x73\xf9\ +\xd7\xef\x57\xcd\x43\x94\x44\x79\xc6\x47\x1c\x20\xb0\xc6\x9e\x21\ +\xab\xaa\xbb\x8e\xfe\xaa\xba\xba\x75\xf9\xe3\xc3\x36\xf7\xee\xd2\ +\xaa\xce\xca\xe2\x6a\xc6\x03\x36\xf3\xd2\x62\x5d\x26\x59\x71\x7d\ +\x35\x7b\xf7\xf6\x67\xdf\xce\xbc\xba\x89\x8b\x24\xce\xcb\x22\xbd\ +\x9a\x15\xe5\xec\xc7\xd7\x17\x97\xff\xf0\x7d\xef\xa7\x2a\x8d\x9b\ +\x34\xf1\xee\xb3\xe6\xc6\xfb\xa5\x78\x5f\xaf\xe3\x5d\xea\xfd\x70\ +\xd3\x34\xbb\xe5\x62\x71\x7f\x7f\x1f\x64\x1d\x31\x28\xab\xeb\xc5\ +\x4b\xcf\xf7\x5f\x5f\x5c\x5c\xd6\x77\xd7\x17\x9e\xe7\x41\x6f\x51\ +\x2f\x93\xf5\xd5\xac\x1b\xb0\xbb\xad\x72\x27\x98\xac\x17\x69\x9e\ +\x6e\xd3\xa2\xa9\x17\x3c\xe0\x8b\xd9\x5e\x7c\xbd\x17\x5f\x93\xf6\ +\xec\x2e\x5d\x97\xdb\x6d\x59\xd4\x6e\x64\x51\xbf\x18\x09\x57\xc9\ +\x66\x90\x26\x6b\xee\xa5\x13\xe2\x51\x14\x2d\x98\x58\x08\xe1\x43\ +\xc2\xaf\x1f\x8b\x26\x7e\xf0\x0f\x87\xc2\xc6\xa9\xa1\x82\x31\xb6\ +\x00\x6f\x2f\xf9\x3c\xa9\xe5\x43\x8e\x50\x9c\x35\xc6\x71\xc7\xda\ +\x11\xfe\x1d\xfe\x0f\x03\x7a\x42\x50\x97\xb7\xd5\x3a\xdd\x60\x64\ +\x1a\x14\x69\xb3\x78\xf3\xf6\xcd\xc0\xf4\x59\x90\x34\xc9\x68\x9a\ +\x3e\xfa\x07\x7a\x0f\x96\xa4\x88\xb7\x69\xbd\x8b\xd7\x69\xbd\xe8\ +\xe9\x6e\xfc\x7d\x96\x34\x37\x57\x33\x1d\xee\x1e\xdc\xfb\x4d\x9a\ +\x5d\xdf\x34\x23\x42\x96\x5c\xcd\xe0\xa1\xd4\x5c\xb8\xf7\x11\x80\ +\x78\x2b\xd0\x4d\xb7\x1c\x38\x2c\x08\x6d\x20\x03\xee\x55\x91\xb5\ +\xda\x09\xf5\x96\x2f\x93\x72\x4d\xa6\x5c\xcd\xde\x54\xf1\xa6\xf9\ +\xfd\xe7\xac\xc8\xea\x9b\x80\x42\xf8\x1a\x72\x97\x49\xba\xa9\x49\ +\xbe\xd5\x4b\x6f\x50\x1c\x3a\x1e\xb8\x08\x5e\x1a\x57\xff\xaa\xe2\ +\x24\x03\x64\x5a\xb9\x56\xf2\x90\x13\x0a\xcb\xba\x31\x18\x55\x37\ +\xe5\xae\x97\x85\x25\xcd\x63\x0e\xf5\x44\xf4\xd7\x65\x5e\x56\xcb\ +\x17\x8c\x99\x15\x8b\x5e\x39\x52\x89\x18\x65\xcd\xe3\x92\xbf\x9a\ +\xed\xc7\x94\x9b\x4d\x9d\x22\x28\x6c\x44\x73\x71\xc1\x08\xe8\x12\ +\x33\x6f\xf1\x7c\x6d\xa1\xde\x6c\x18\x7b\x86\x36\x3e\xad\x2d\x1c\ +\xb4\x5d\x2e\x0e\xdd\xee\xa8\xc3\x82\xec\xb0\x20\xbb\x74\x4d\xa9\ +\xd3\xcf\x34\xac\x43\xf3\x48\x68\x39\x14\x95\xc9\xa0\x71\xbf\xa8\ +\xbb\xdf\x1f\xe0\xb8\xb7\xf4\xa4\xc0\x2f\x3e\x29\xf1\xd8\x4a\x70\ +\x64\x03\xfe\xb0\x49\x99\x0f\x84\xa9\x8f\x4c\xd3\x59\xe0\x97\x55\ +\x76\x9d\x01\x44\x4e\x4e\xf0\x40\xba\xcf\xe1\x18\x04\x63\xe4\x9b\ +\xd4\x82\xed\x63\xf2\x31\xef\x8f\x07\x2a\x6b\x9f\x36\x84\x05\x8a\ +\x9c\xea\x0c\x39\x36\xe5\xd0\x43\xee\x24\xd5\x17\x05\xaa\x0b\xf7\ +\xf1\x34\x4f\xad\xdc\x67\x05\x40\x47\xe2\xef\x17\x00\xca\x86\x38\ +\x3f\xa9\x12\xbd\x3c\xd2\x30\x87\xfb\x57\xb3\x38\xbf\x8f\x1f\xeb\ +\x61\x7e\x57\x9a\x97\x37\x55\x8a\xad\xe4\xc5\x61\x62\x49\x1e\x86\ +\xbe\x3e\xc0\xdf\xa1\x12\xa9\x91\x96\x3d\xfb\xba\x23\xbe\x2b\xb2\ +\x06\xbb\xc6\x6d\x9d\x56\xbf\x51\xe5\xfd\x4f\xf1\xae\x4e\x4f\xa4\ +\xde\x56\x71\x51\xa3\xcc\x6f\xaf\x66\xdb\xb8\xa9\xb2\x87\x1f\xf8\ +\x9c\xd1\x4f\xa0\x23\xab\x44\x14\xe2\x59\x30\x11\x58\x61\xb5\x7c\ +\x39\x0c\x5f\x23\x4a\x42\xa8\x40\xe8\x90\xed\xd7\x70\x8d\xf8\x6a\ +\x23\x02\x13\x19\xb9\xb7\x77\x33\x29\xbb\x99\x94\xad\x90\x79\x61\ +\x20\x43\xc5\x91\x1b\x43\x48\x9f\x5b\x78\xbb\x40\x9d\x29\x86\x7d\ +\x11\x83\x94\xf6\xa3\x51\x75\x9b\xa8\x92\x1b\xf7\x39\xaa\x92\x93\ +\x25\xf9\x6c\xed\x1d\xa9\xb3\xbe\xf8\x74\x75\x6c\xb2\x26\x3f\x51\ +\x7c\xff\x1a\xf0\xe9\xef\xe0\x43\x1c\x0c\xe3\x4f\x42\xcf\x30\xf9\ +\xed\x80\x67\x98\xfa\x5b\xc3\xce\x7e\x87\x9d\x83\x9d\x7d\x1a\x76\ +\x9c\x7d\x43\xd8\xf1\xbf\xb6\xda\x1d\xc4\xf3\xe3\xa1\x9f\x5e\xa6\ +\xe9\x25\x9d\x5e\xfe\x2f\xc4\xd4\xf3\x80\x3b\x81\x7e\x23\xe4\xe7\ +\xa4\xd1\xb9\x8c\xfc\xac\xf6\xcd\x8e\xea\xcb\xdf\xa6\x7d\x7b\x76\ +\xde\x59\x1d\xfa\xcc\x3f\x7b\xd0\x1b\xd2\xc1\x6a\xed\x2b\xdf\x3c\ +\x71\x9e\x9b\x3a\x17\x6a\x1e\xad\x4f\x4f\x6a\x4f\x27\xa0\xd5\xd6\ +\x37\xa3\x55\x9f\x3e\xd3\x4d\x68\x94\x26\x5a\x6f\x56\x67\x35\x9e\ +\xc9\xc2\x67\x47\x4c\x1a\xf3\x64\xb4\x60\xc2\xa7\x47\x6a\xb3\x89\ +\xe3\x89\x33\xed\xd3\x91\x92\x76\xaa\xc8\x3d\x11\xa5\x4d\xbc\xd9\ +\x88\x3f\x2f\x4a\x0e\x57\xcf\x43\xd5\xb7\xc6\xd4\x5f\x8c\xa8\x2f\ +\x68\x27\xdc\x95\xcc\xf9\xa0\x83\xbd\x4f\x97\x07\x8e\x0d\x44\x07\ +\xda\x72\xcb\xf7\x2e\x3f\xb6\x54\x61\xf0\xb3\xdf\x56\x1e\x04\xb6\ +\x0a\x1d\x18\xa2\x8e\x64\xc5\x94\xec\xc7\x6b\xfd\x53\x05\xe8\x4f\ +\x74\x5e\x4a\xfe\x89\x1b\xd2\xd7\x0e\xd1\x9f\xec\xfc\x28\x53\xa6\ +\xdd\xf7\x4f\x37\xf4\xe7\x07\x40\x7f\x42\x00\xec\x67\x06\x60\xf2\ +\x8e\x11\x6e\x7d\xc3\x5b\x46\x1c\x99\xbf\xe9\x3d\x23\xbc\xfb\x58\ +\x99\xb8\x5c\xd0\xf5\xac\x7b\x1a\xf6\x76\xba\xda\x4d\xee\xb2\xf4\ +\xfe\x62\x98\x6d\x15\x0f\xab\xb6\x8b\xaf\x53\x67\x1c\x30\xd2\xb6\ +\xa0\x1d\x63\x55\x56\x49\x5a\xf5\x2c\xed\x3e\x07\xac\xce\xfe\xf6\ +\x5b\x8b\x8b\x43\x48\xd2\xac\x03\x9f\x4d\xf3\xeb\x9b\x38\x29\xef\ +\xd1\x3e\x1e\x33\x3f\x94\x25\x1a\x46\x19\x58\x1b\x31\x6b\x4e\xd8\ +\xd4\x72\x72\x19\x68\x6d\x23\xa3\x4f\x98\x64\x0f\x0b\x22\xcb\x8c\ +\x3d\x1d\x79\x5b\x55\x08\x94\x9f\xc7\x8f\x29\x9c\x72\x7f\xfa\x40\ +\xd7\x37\xe5\xfd\x75\x45\xc1\x69\xaa\xdb\xf4\x78\x64\x52\xae\x6f\ +\xe9\x1b\x11\xff\xb6\x4d\x80\xee\x1e\x7e\x24\x41\x63\xfd\xd5\xaa\ +\x7c\x98\x9e\xe0\x3e\x2b\xe0\xac\xdf\xdd\xec\xf3\x7d\xed\x39\x96\ +\xe8\xef\xfa\x8d\x31\x67\x24\x1e\xf6\x68\x3c\x66\x3d\x9e\x67\x6d\ +\xe3\x87\x6c\x9b\x7d\x48\x93\x3d\xb6\x06\x91\xba\x88\x77\xfe\x75\ +\x5e\xae\xe2\xfc\x6a\xb6\x89\xf3\xfa\xc4\x7c\x27\x51\x94\x49\x5a\ +\x4f\xbb\x57\xae\xfe\x40\x05\x3a\x90\x68\x61\x7a\xb9\x4d\x9b\x38\ +\x89\x9b\x78\x0f\xbe\x9e\x22\x35\xef\x3b\x9f\xcb\x2a\xd9\x2c\xff\ +\xfb\xe6\xe7\x21\x91\xd6\xeb\xe5\xff\xca\xea\xfd\x3e\x07\x48\x20\ +\x5e\x95\xb7\x88\xcc\x90\xde\xf4\xd5\xc4\x7a\x49\xc7\x8b\xb8\x79\ +\x9d\x6d\x01\x29\xfa\xda\xe7\x9f\x0f\xdb\x1c\x69\x30\x30\x0e\x84\ +\xa9\xcf\xdd\x4f\xda\x4e\x5b\xa5\xed\xd7\x3a\x93\xdf\x84\x25\xeb\ +\x6d\x46\x83\x16\xbf\x35\x59\x9e\xff\x42\x4a\x46\x09\xdf\x4d\x9a\ +\x35\x79\x3a\xaa\x02\x8b\xce\xfa\x3e\x4d\x47\xce\x5d\x2e\x7a\xef\ +\xdd\xdb\xf5\x3e\x2a\x07\x60\x1c\xe2\x9a\xc7\xab\x14\x6b\xf2\x2b\ +\x31\xbd\x13\xee\x75\x55\xde\xee\xb6\x88\x79\x37\xbc\x8f\xe6\x2e\ +\x6e\x6e\x26\x76\x89\xa2\xc0\x1a\x95\x95\x8f\x34\xb8\x8b\x9b\xdb\ +\x2a\x1d\x97\x35\x77\x8c\xc1\xb8\x50\x48\xe5\x8f\xbb\x1a\x5a\x31\ +\x4f\xd8\xc0\x1a\xa9\x98\x98\xdb\x80\x6b\x29\x94\x8d\xbc\xb5\xe7\ +\xe3\xe4\x26\x4d\x28\x15\x0e\x74\xc2\x5a\xae\x8c\xf0\x7c\x15\x30\ +\x2d\xd4\x1c\x07\x45\xce\x15\x5a\xc9\x81\xa2\x02\xfc\xc6\x21\x85\ +\x7b\x6c\x8e\x92\x61\x55\xc8\x0c\x1d\x81\x38\x87\x14\xe4\x99\x31\ +\x11\x0f\x41\xb1\x21\x26\x8d\x40\x89\xa4\x51\xde\xaf\x1e\x87\xb4\ +\xc6\xf1\x46\xcc\x45\x84\xa2\x20\x18\x8b\xbc\x9f\x70\xde\x09\x38\ +\x1d\x22\x43\xa2\xca\x30\x0c\xb5\x17\x05\xdc\xa2\x57\xe6\x86\x48\ +\x28\xed\x8c\x59\xcf\x06\x2c\xc2\x01\xf5\x80\x06\xcb\x65\xc0\x99\ +\xd1\x11\xd7\x73\x46\x06\xb6\x96\x49\xe8\x84\xa4\xe4\x63\x52\xf7\ +\x44\x56\x77\x83\xbc\x56\x0a\xb5\xa9\x65\x7a\x47\xc2\x70\x41\x44\ +\x1c\x47\x6d\x89\xc9\x71\xe4\x8a\x94\xb2\xc6\xcc\x7d\xd4\x41\x58\ +\xcc\xc9\x43\xf8\x17\xe1\xf4\x4b\x24\x1a\x90\x7b\x3c\x0c\x88\x84\ +\xcf\x1c\x8f\x5a\x11\x15\x66\x82\x0f\x51\x8a\xaf\xd4\x5a\xd2\x3b\ +\x17\x24\x07\x02\x4e\xe1\x2a\x1c\x51\x38\x1e\xd4\xa9\x91\xd1\xc8\ +\x46\x27\xd7\xbe\x76\x52\x02\x16\xf6\x0e\xce\xfd\xde\xfb\x3d\xa5\ +\xf3\x87\x0c\x55\xdc\x1a\xee\x2c\x02\x12\xf4\xdc\xc7\xa2\x08\xc9\ +\x14\x51\x04\x58\x8a\x28\x14\x04\x44\x2a\xf7\x4c\xa0\x9c\xba\xb9\ +\x6f\xd0\x0e\x90\xb7\xf0\x86\x07\x61\x68\xad\x25\x6f\x8c\x12\x46\ +\xc2\x08\x26\x23\x23\x04\x6c\x17\x91\x36\x5e\x08\x3a\x4d\x80\x77\ +\x25\xc9\x1b\xeb\x56\x0c\x23\xa0\x0c\x91\xe3\x1e\x57\x81\x34\x4c\ +\x23\x72\x14\x2f\x44\xd9\xe3\x3a\x08\x75\xab\x1e\xe6\x7b\x9d\xe0\ +\xdc\xef\x86\x1a\xaf\x97\xc4\x18\x8c\x0e\x19\x87\x05\x9e\x13\x06\ +\x41\x63\xc8\x20\xea\x7c\xa2\xd1\xc4\x6f\x15\xc1\xd1\x30\x00\xc6\ +\xb8\x46\xa8\x07\x55\x34\xd8\xd9\xe7\xd3\x45\x06\x53\x26\x44\x54\ +\x99\x54\xa1\x88\x60\x80\x08\x19\x10\x3c\x07\x54\x59\x08\xa4\xc2\ +\x29\x4b\x4b\x44\xa3\x1c\xa0\x73\xcf\x87\xda\xc8\x61\x9c\x9a\x25\ +\xd3\xad\x74\x84\x9e\x4b\x4b\x0a\xb5\xe1\xa1\xa0\xe4\xe2\x92\x5b\ +\xa0\xde\x6f\x97\x16\x98\x0d\x09\x2d\x7c\x20\x70\xd8\xa8\x43\x43\ +\x8b\x08\x69\x3c\x71\x43\xc8\x08\x23\x6e\x49\x5a\xf7\xc0\x70\xb6\ +\x22\x8f\x30\xa3\x0a\x0d\x26\x90\x16\x0e\x58\xa1\x68\x55\xa0\x18\ +\xfa\x54\xbb\xa2\x1c\x96\xc2\x05\x82\x1f\xc1\x41\x46\x52\xe8\xe1\ +\x5d\x06\x11\x1b\xe0\x60\x08\x3d\x0e\x7e\x58\x4a\x37\x58\xf1\xd0\ +\x21\x14\xd9\xeb\x06\x13\x28\x08\xd9\xd2\x25\xb4\x33\x5b\x76\x71\ +\x23\xad\x88\xae\xd0\x04\x6c\x1e\x49\x4e\x0b\x17\x5a\x83\xc5\x71\ +\xf6\xd3\x07\x00\x26\xd9\xfd\x7b\x07\xd9\x0e\xb1\xce\x35\xbf\x07\ +\xf9\x88\xd4\x3f\x91\x99\x7d\x96\x7b\x83\xe0\xdc\xdf\x97\x21\xff\ +\x70\x50\x47\xa4\xb2\x82\x22\xe8\x82\x0a\xeb\x8c\x94\x32\xea\x72\ +\x57\x40\x11\x65\x02\x45\x83\x79\x1f\xf6\xd7\x28\x6d\xa3\x37\xdc\ +\xda\x01\x31\xea\xd5\x06\xfb\x05\x35\x98\xf4\x71\x2f\xa3\x86\xaf\ +\x6e\xaa\xf2\x7d\xba\x2c\xca\x62\x74\xc4\x39\xa8\xda\x07\xd5\xf8\ +\x58\x51\x3b\xf5\x70\x61\xe8\xe6\xea\x35\xb5\xaf\x6d\xa3\xb1\x14\ +\xfd\x2b\x75\x8a\xd8\x05\x96\xab\xdb\xa6\x19\xd3\xfe\x28\xb3\x62\ +\x89\x1d\x2e\xad\x7a\xaa\x7b\xc9\xd1\x2a\x34\xcb\xb0\xa7\x1d\x1b\ +\xee\x27\x31\x9a\xb7\xaa\x8a\x1f\x9d\x0b\x47\xde\x8d\x77\x8e\x7f\ +\x7b\x8a\x4a\xbd\x15\x3c\x9a\x4b\x40\x94\x45\x0a\xab\x81\xdd\x44\ +\x08\x41\x05\x50\xa9\x00\x67\x25\xcd\x34\xd2\x04\xc8\x96\xd6\xca\ +\xb9\x04\x94\x0c\x0b\x01\x3c\x2a\xec\x02\x89\xa2\xe7\x06\x0f\x52\ +\x84\x5a\x7b\xc4\xd5\xe8\xee\x0c\x12\x0c\x78\x41\xbe\xa2\xec\xb3\ +\xc8\x58\xa5\x39\x0d\xd5\x82\x53\xd6\x91\x8a\x50\xa1\xf4\xcf\x15\ +\xa0\x86\x55\xb6\x50\x01\xd4\x33\xa1\xd4\x5c\x52\xc9\x22\xa4\xef\ +\x97\xf0\xb9\xdb\xe4\xbe\xab\xc6\xb6\x4b\x8d\x01\xda\x9d\x75\xff\ +\x99\x5e\xcb\xa3\x4b\xb6\xb8\x5a\x1f\xaf\xe7\x70\x18\x19\xb0\xb2\ +\x44\x0b\xf2\xc3\xf1\x99\x0d\x47\xb2\x97\xc7\x48\x72\xaf\xd5\x6d\ +\x9e\x2e\xd3\xbb\x14\x36\x25\x63\x6c\x1d\x82\x41\xbe\xda\xc6\xd5\ +\xfb\xb4\x6a\x59\x77\x59\x9d\xad\xb2\x9c\x66\x71\x8f\x79\xfa\x2a\ +\xc9\xea\x1d\xfa\x88\x65\x56\x90\xe2\x57\xe5\x5d\x5a\x6d\xf2\xf2\ +\x7e\xe0\xa7\x45\x8c\x3f\xfe\x2a\x5e\xbf\xa7\xce\xa3\x48\x96\xf1\ +\x1a\x6d\xf1\x6d\x1e\x37\xe9\x44\x1f\x61\xec\x69\xd4\xa8\x77\x07\ +\x22\xdc\xa9\x57\x4c\xb0\x1f\xa7\x8e\x8a\x03\xbb\x6a\x3b\x7f\x15\ +\xe2\x47\x4d\xb0\x1f\xa7\xd8\xae\x7f\xd1\xaa\x9d\xd4\xcc\x87\xe9\ +\xbd\xd8\x1b\x84\xe7\xc3\x93\xc7\x3c\xec\x29\xa8\x17\x06\xa0\x62\ +\x11\x47\x9e\x9f\x97\x1a\x09\xed\x91\xd4\x9c\xdc\x79\xa3\xa2\x84\ +\xda\xa0\x3f\xb2\xae\xc6\x1a\x26\x25\x5a\x85\xfd\xd3\x88\x4f\xa1\ +\xc1\xa9\x12\xd5\xc7\x44\xa8\x7b\x3a\xe4\xd1\xcb\x33\xa8\x9a\x28\ +\x05\xd3\x55\xe6\x0b\x2a\x83\x5b\xe5\x2f\xa8\x0c\x87\x8b\x20\x0d\ +\xba\x44\xa9\x38\x9a\x43\x4d\x10\xc0\x76\xa1\x03\xa9\x0c\x9a\x30\ +\x44\x56\x44\x22\xc4\xb6\x87\x27\x74\x75\xc6\xed\x47\xe8\x22\xb0\ +\x73\x4b\x6c\x66\xa0\xf2\x88\x63\x5f\x37\xa8\x17\x38\x15\x1e\xa4\ +\xee\x80\xb8\x68\xe2\xf2\xfb\x4c\x3e\x7f\xbd\x4c\x7d\x21\x37\x96\ +\x6f\xa2\x67\x27\xe6\xe4\x72\xc0\x69\xa3\x08\x5b\xfc\x4b\xea\xf0\ +\xb7\xcd\xef\x68\x2a\x81\x29\x43\x81\x6c\xa5\xd5\xe8\xca\xfa\x24\ +\xbf\x51\xfb\xed\x99\xfc\x36\x01\x7a\x11\xa3\x47\x5f\xe4\x1c\xe4\ +\xf7\x29\xdb\x41\x8b\xa3\xb4\x73\x29\x43\x3e\x1f\xa6\x47\x7e\x0f\ +\xc2\xf3\xe1\xa9\xcf\x6f\x34\xd9\x68\xd1\xd1\xd9\x19\x24\xef\x79\ +\xb9\x03\xb1\x8f\xe7\xb8\x51\xa1\x46\xd3\x2f\xba\x2f\xb8\x86\x57\ +\xd7\x2b\x31\x1c\x71\xac\xa0\x23\x8d\x00\xb4\xcf\x27\xf5\x77\x00\ +\x7e\x12\x00\xfd\x09\x94\x7c\x87\xe0\x09\x04\x05\xf5\xac\x2c\x92\ +\xd2\xd5\xd4\x48\x86\xf8\xf7\x1d\x81\x5f\x09\x81\x13\x8d\xc8\x77\ +\x08\x4e\x41\x10\xcd\x38\xe7\x72\x2e\xa8\xd3\xb7\xd6\x98\x1e\x81\ +\x97\x8b\xeb\xd7\x17\x97\x74\x75\xf7\xfa\xe2\xff\x60\xb5\xa6\xde\ +\ \x00\x00\x0a\x7e\ \x00\ \x00\x39\x49\x78\x9c\xe5\x5b\x59\x6f\xe3\xba\x15\x7e\xcf\xaf\x50\ @@ -36582,178 +36570,179 @@ qt_resource_data = "\ \xcb\xdd\x3a\x51\x7b\x74\x02\xf9\xeb\xe7\x4f\xdb\xeb\xf5\xcb\x1d\ \x4a\xda\x12\xe7\xf5\x68\xd6\xe4\xb0\xb3\x2a\x7b\x9d\xad\xf3\x56\ \xf8\xb9\xb6\x79\xf6\xed\xc5\xff\x01\xea\x49\x79\xab\ -\x00\x00\x0a\x96\ +\x00\x00\x0a\xaa\ \x00\ -\x00\x29\x84\x78\x9c\xed\x5a\x59\x6f\xdb\x48\x12\x7e\xcf\xaf\xd0\ -\x2a\x2f\x09\x56\x6c\xf6\x7d\x28\x96\xe7\x21\xc1\x0c\x06\xf0\x62\ -\x81\x9d\x04\xfb\x18\xd0\x24\x2d\x73\x4d\x91\x02\x49\xd9\x92\x7f\ -\xfd\x56\x37\x6f\x91\xf6\xe4\x9a\x64\x1e\xa2\x20\xb1\xf8\x75\xf5\ -\x51\xc7\x57\x5d\x45\xe7\xe2\x97\xe3\x2e\x5d\xdc\xc7\x45\x99\xe4\ -\xd9\x66\x49\x10\x5e\x2e\xe2\x2c\xcc\xa3\x24\xdb\x6e\x96\x1f\xde\ -\xff\xea\xe9\xe5\xa2\xac\x82\x2c\x0a\xd2\x3c\x8b\x37\xcb\x2c\x5f\ -\xfe\x72\xf9\xe2\xe2\x1f\x9e\xb7\x78\x5b\xc4\x41\x15\x47\x8b\x87\ -\xa4\xba\x5d\xfc\x9e\xdd\x95\x61\xb0\x8f\x17\xaf\x6e\xab\x6a\xbf\ -\xf6\xfd\x87\x87\x07\x94\x34\x20\xca\x8b\xad\xff\x7a\xe1\x79\x97\ -\x2f\x5e\x5c\x94\xf7\xdb\x17\x8b\xc5\x02\xf6\xcd\xca\x75\x14\x6e\ -\x96\xcd\x84\xfd\xa1\x48\x9d\x60\x14\xfa\x71\x1a\xef\xe2\xac\x2a\ -\x7d\x82\x88\xbf\xec\xc5\xc3\x5e\x3c\xb4\xbb\x27\xf7\x71\x98\xef\ -\x76\x79\x56\xba\x99\x59\xf9\x72\x20\x5c\x44\x37\x9d\xb4\x3d\xcd\ -\x03\x73\x42\xc4\x18\xe3\x63\xea\x53\xea\x81\x84\x57\x9e\xb2\x2a\ -\x38\x7a\xe3\xa9\x70\xc6\xb9\xa9\x14\x63\xec\xc3\x58\x2f\xf9\x69\ -\x52\xeb\x63\x0a\xa6\x78\xf2\x30\x6e\x74\xb8\x3b\x98\x7f\x0f\x7f\ -\xbb\x09\x2d\x80\xca\xfc\x50\x84\xf1\x0d\xcc\x8c\x51\x16\x57\xfe\ -\xbb\xf7\xef\xba\x41\x0f\xa3\xa8\x8a\x06\xcb\xb4\xd6\x1f\xed\x3b\ -\x72\x49\x16\xec\xe2\x72\x1f\x84\x71\xe9\xb7\xb8\x9b\xff\x90\x44\ -\xd5\xed\x66\x29\xf9\xfe\xe8\x9e\x6f\xe3\x64\x7b\x5b\x0d\x80\x24\ -\xda\x2c\x41\x43\x46\x19\x76\xcf\xed\x19\xd6\x5d\x24\x61\xc4\x68\ -\x2d\xda\x2c\x3c\x1c\xe2\x1a\x91\x45\x61\x94\x3c\x9b\x1d\xe5\xa1\ -\x3d\xd2\x66\xf9\xae\x08\x6e\xaa\x8f\x57\x79\x78\x87\x5a\x43\x76\ -\xeb\xe4\x87\x6a\x7f\xa8\x3e\xc6\xc7\x2a\xce\xea\x05\x41\x95\x81\ -\x5e\x6e\xd8\x4e\x43\x23\x9d\x06\x31\x4e\x96\x97\x80\x5c\x44\xf1\ -\x4d\x69\x47\x6a\x75\xec\x13\xe8\x43\xdd\x18\x8c\x82\x4f\xe2\xa0\ -\xf8\xad\x08\xa2\x04\x22\xb1\x96\x1b\x9c\x22\xcc\xd3\x34\x0e\xc1\ -\x26\x41\xfa\x10\x9c\xca\x65\x27\x00\x4b\x8d\xa7\x32\xaa\x58\xb3\ -\x28\x2c\x5b\x56\xf9\xbe\x95\x05\xcd\xab\x53\x0a\xea\x5a\xd0\x83\ -\x15\xf3\x62\xfd\xf2\xc6\x7d\xde\x38\x28\x07\xdf\x24\xd5\x69\x4d\ -\xde\x2c\xfb\x39\xf9\xcd\x4d\x19\xc3\xc6\x78\x80\x39\x7f\xc0\x0c\ -\xd8\x4b\x2c\x17\xfe\xd7\xed\x86\xe7\x76\x23\xf3\xbb\xa9\x6e\xb7\ -\x0b\x7f\xac\x76\x83\xda\xa7\x20\xfd\x6c\x33\x3a\x4a\xac\x6f\x8b\ -\x18\x28\xfc\x72\xc6\x9e\x43\x73\x8f\xb7\xa0\x9c\xf4\x67\xdd\x36\ -\xe0\x87\x2c\xa9\x80\xab\x87\x32\x2e\xfe\xb0\xf1\xfe\xef\xec\x43\ -\x19\x4f\xa4\xde\x17\x41\x56\x02\xb9\x76\x9b\xe5\x2e\xa8\x8a\xe4\ -\xf8\x8a\xac\x30\xfc\x81\xac\xa8\xb1\xe2\xc6\xc0\x77\x8f\x73\x24\ -\xb9\xe4\x58\xbd\xee\xe6\x87\xc7\xcd\x92\x2a\xad\x90\x30\xa6\xdf\ -\x3b\x3c\x6d\x96\x42\x50\xa4\x8d\x62\xb2\x43\x6f\x66\x65\x6f\x66\ -\x65\x8b\xcd\x92\x69\xa4\xa9\x61\xd2\xf4\x76\xfe\xc2\xc0\x7c\xd6\ -\xa2\x86\x3d\x13\xc0\x94\x63\xf3\xcd\x2c\xea\xd5\x26\x85\x1f\x42\ -\x0a\x89\x34\x63\x7a\x45\x38\xd6\x88\x52\x22\x7b\x93\x1e\x89\x35\ -\x93\x00\x5b\x6b\xa1\x3b\xf4\x04\xa8\x54\x40\x60\x82\x75\x6f\xbc\ -\x23\x05\x59\x83\x31\x22\x7c\x20\x4a\x87\xa2\x3f\xd4\x78\xea\xaf\ -\x35\x1e\x53\xf2\xc7\x1a\x6f\x26\xe3\x99\xcf\xc9\x78\x18\xd3\x80\ -\x46\x5f\x9c\xf1\xcc\xe7\x65\x3c\x0c\x5c\x16\xe6\x8b\x33\x9e\xf9\ -\xd3\x8c\xf7\x23\x42\x4c\xfc\xc5\x21\x06\x49\xef\x6f\xcd\xcf\xb9\ -\x18\x14\xe2\xfb\xdd\xba\x42\x7d\xcf\x5b\x57\x98\x1f\x11\x83\x42\ -\x3c\x1f\x83\xec\x9b\xc5\x20\x46\x4a\x63\x4a\x19\xaf\x6f\xdf\x15\ -\x5c\x95\x48\x0b\x22\xe4\x0a\x9f\x47\x20\xa3\x88\x09\x45\x46\x11\ -\xa8\x88\x0d\x2b\x4a\xcc\x38\x02\x35\x33\x08\x2b\xc2\x46\x21\xd8\ -\xcb\x76\x16\xed\xac\xb4\x87\x8a\x71\x0f\x66\x82\x26\xa3\x9d\xd2\ -\x55\xaa\xd5\xc9\xd6\xd5\x63\x51\x16\x2d\x27\x96\xbe\xdf\x7f\x84\ -\x0b\x1f\x2f\xd6\x0b\x46\xe1\x1f\x32\x2b\x71\xaa\x25\x08\xf4\x0d\ -\xf0\x03\xcf\xca\x3c\xda\xea\xfb\x99\x65\x9a\x13\x78\x79\x91\x6c\ -\x13\xa8\x72\x9d\x1c\x25\x88\xb9\xcf\x78\x0e\x78\x6f\xa0\x1b\x14\ -\xbd\xba\xd1\xfe\xc2\xb7\x55\xb0\xfb\xd6\x69\x6a\x0b\xf2\xe8\x3e\ -\x89\x1f\xfa\x52\xf9\x3a\xe8\xdc\xb8\x0f\xb6\xb1\x0b\x6a\x08\x98\ -\x3a\xaa\x9b\x81\xeb\xbc\x88\xe2\xa2\x1d\x92\xee\x33\x1a\x6a\xe2\ -\xbe\xee\x39\x5f\x9c\x29\x03\xab\x76\xe3\x78\x7e\xbc\xbc\x0d\xa2\ -\xfc\x01\xfc\x7a\x3e\xf8\x98\xe7\x10\x4a\x02\x89\xf3\x01\x57\xa6\ -\x19\x04\xd5\x0c\xa5\x7a\x32\x78\xb2\xe1\x04\x4d\x0b\xa6\x52\x4d\ -\x06\x0f\x45\x01\x91\xea\xa5\xc1\x29\x06\x75\xb6\x94\x75\x09\xb9\ -\xbc\xcd\x1f\xb6\x85\xb5\x4a\x55\x1c\xe2\xf3\x89\xd0\xd0\x1c\x6c\ -\x23\xeb\x1d\x6a\x2a\x34\xed\xd3\x40\xc2\xce\xf5\xae\xaf\xf3\xe3\ -\xfc\x02\x0f\x49\x06\x5a\x7a\x4d\x43\x46\xa8\x9e\xd8\xa2\x91\x68\ -\x5b\x34\x25\x26\x7a\x37\x12\xc7\x3e\x79\x9d\x0f\x59\xdd\x27\x76\ -\x6c\xc6\x76\xc1\x31\xd9\x25\x8f\x71\x64\xb3\x51\x13\x26\xbb\xb8\ -\x0a\xa2\xa0\x0a\xfa\x90\x68\x11\x08\xa6\x36\xed\x5e\x40\x77\xbd\ -\xfe\xcf\xbb\x5f\xbb\xb4\x18\x86\xeb\xff\xe6\xc5\x5d\x9f\xd1\xac\ -\x40\x70\x0d\x0d\xdb\x66\xd9\xa5\x6a\xdb\x97\x85\x6b\x9b\x0e\x82\ -\xea\x32\xd9\x81\xa3\x6d\x2b\xfd\x4f\xe8\x68\x21\x38\xbb\x81\x91\ -\xb0\xe5\x62\xbf\x68\xbd\x6c\x11\xd7\xad\xf2\xec\xdb\x85\x28\xdc\ -\x25\x76\x92\xff\x47\x95\xa4\xe9\xef\x76\x93\x41\xfa\x6e\x16\x4d\ -\xaa\x34\xbe\x74\x7b\xd6\x5f\x5b\x2d\xfc\x46\x8d\x36\xff\x0e\xb4\ -\xbc\xf0\x5b\x33\xb8\xa7\x6d\x6f\x1e\x17\x38\xe4\xdc\xc2\x69\x70\ -\x1d\xa7\x9b\xe5\x95\x1d\x5c\x4c\x46\xb7\x45\x7e\xd8\xef\xf2\x28\ -\x6e\xa6\xb7\x66\xdd\x0e\x79\x0c\xa1\xa8\xfb\x8c\x56\xcd\xa4\x52\ -\x62\x18\xb4\x1b\xc2\xa5\xd2\xfe\xc9\x83\x74\x8a\x30\x91\x82\xac\ -\x3c\xc3\x90\x52\x4a\x92\x41\x47\xd3\x1d\x22\x3e\xee\xf3\xa2\xf2\ -\x6e\x92\x34\xae\x3b\x73\xff\x36\xdf\xc5\xfe\x09\xd2\xcc\x9d\xff\ -\xae\x89\xee\xd2\xbf\x0a\xae\x7d\xd7\xb3\xfb\x49\x98\x67\xa5\x1f\ -\xa6\x79\x19\xa3\x7d\xb6\x7d\x72\xc5\x63\xb4\x4f\x36\x4b\x8e\xb8\ -\x91\x84\x4b\xfa\xa4\xdc\xe9\x4c\xae\xf3\xc3\xb6\x77\xf9\xfc\x1c\ -\x89\x04\x26\x46\xaa\xfe\x1a\x78\xea\x14\x9f\x22\xf9\xf5\x16\x18\ -\xb9\xc7\x7d\x4d\x83\x2a\x7e\xe5\xc9\x95\xa7\x5f\x0f\x77\x6e\xdc\ -\x2a\x86\x9c\xd8\x07\xd5\xed\x30\xc6\x9b\xa2\xa2\x2f\x55\xe0\x7c\ -\xa9\x2d\x6e\x8d\x50\xcc\x3d\x78\xe3\x31\xaf\x38\xa4\xa0\xcc\x7d\ -\x9c\xe5\x91\xad\xb5\x8b\xfc\x2e\x1e\x94\xde\xf6\xb1\xce\x32\x6b\ -\x85\x14\xc7\x9c\xc1\xd5\x6a\xdc\x47\x6b\xd3\x0a\xd8\x3b\x1f\x8c\ -\xb2\xbe\x3e\x54\xd5\x10\xfb\x5f\x9e\x64\x6b\xe0\x54\x5c\xbc\xd9\ -\x05\xc5\x5d\x5c\xac\xb3\x3c\x8b\x9b\xef\x5e\x59\x05\x45\x35\x42\ -\x76\x49\x34\x7a\x8e\xb3\xe6\xb9\x59\xd3\x2d\x95\x42\xda\xa9\xd6\ -\xbc\xc5\xa2\x00\x32\x7e\x51\x04\xa7\x91\xa4\x45\xeb\x62\x09\x0a\ -\xa8\x06\xeb\x15\xbf\x4f\xca\xe4\x3a\x49\xed\x83\xfb\x9a\xc6\x6f\ -\xa2\xa4\xdc\x03\x9d\xd6\x49\x66\x0f\xfe\x26\xbf\x8f\x8b\x9b\x34\ -\x7f\xe8\xc6\xc1\xc9\xf0\xc3\xbb\x0e\xc2\x3b\x4b\x40\x38\x58\x10\ -\x82\x8f\x0f\xd6\x57\xcb\xa1\x07\xc0\x4b\xff\x5a\x40\x51\x81\x91\ -\x86\xcf\x4a\x10\x89\xb8\x16\x74\xf1\x76\x01\xed\xbd\x46\x44\xb2\ -\x0e\x24\x06\x30\xc1\x10\xd3\x86\xaf\x84\x20\xc8\x76\xd4\xda\x62\ -\x14\x09\xf0\x17\x14\x38\x1c\xc1\x95\xa2\xe9\xe2\xaa\x41\xa1\xdc\ -\x7a\x12\x15\xc8\x68\xc1\xc8\x08\x95\x92\x21\x22\x08\x13\x0e\xd5\ -\x14\x2a\x1d\x2e\x9f\x40\xc7\xeb\x5a\x94\x72\x33\x40\x9d\x06\x0c\ -\x41\x63\x05\xa7\x95\x0a\x09\xcb\x3c\x50\x15\x0b\xbb\x18\x68\xc5\ -\x25\x22\x4a\x82\xae\xa0\x3e\x41\x06\x6b\x36\xc0\x60\xb6\x16\x50\ -\x69\x11\x26\x3b\x94\x00\xa6\xe1\x9e\x17\x56\x52\x6a\x84\xb5\xd4\ -\xa6\xc6\x94\x21\xca\xe9\xc4\x65\xad\x92\xb6\x07\x22\x42\xcc\x83\ -\x52\x52\xa4\xe1\x28\xca\xa2\x06\x1b\xc4\x88\x79\x0a\x15\x90\xd8\ -\xb4\x22\x92\xb4\x28\x80\x74\x80\xbe\xb5\x28\x1c\x46\x59\x0f\x08\ -\x0c\x8a\x30\x0d\x5e\xd1\x8a\x21\x6e\x8b\xcf\xd6\xa5\x64\xce\xcd\ -\x8f\xa3\x60\x70\x25\x15\x50\x14\x68\xab\xc6\x57\x49\x01\x45\xd6\ -\xa7\x11\x97\x28\xfe\x6d\x89\x6b\x94\xfe\x49\xdc\x29\x71\xdd\x2b\ -\x43\xf0\x0a\xf8\xca\x8c\x06\xda\x22\xcb\xc0\x35\x29\xb8\xe1\xa3\ -\xc1\xb6\xbe\x22\x5c\x20\xa9\x38\x13\xa3\x51\xf7\x52\x8f\xb9\x7b\ -\x64\x3c\x70\xb2\x65\xbb\x84\x2a\x1c\xda\xe7\x61\x8b\xe8\x6f\xbb\ -\xaf\xe3\xd4\xde\xd7\xdd\x70\xf3\xdb\x22\x05\xaa\xc6\xb0\x2c\x43\ -\xf8\x9c\xdd\x11\x75\xbc\x99\x61\x8b\xd8\xe4\x24\xc2\x11\xf4\x44\ -\x6c\x25\x39\x86\x2f\x92\x6b\x47\xca\x29\x4a\x15\x34\x56\x98\x2b\ -\xbe\x92\x42\x23\xa1\x0d\x74\x18\x80\x29\x5b\x18\x00\xa6\x2c\x37\ -\x9a\xd9\x0a\xb2\x03\xd7\x98\xaf\x14\xa6\x50\x41\x2b\xda\x24\x04\ -\x6c\x14\x05\x0c\xb8\xc5\x81\xc9\x16\xb3\x35\x34\xcc\x56\x4c\x0c\ -\xf6\x06\x01\x21\xa0\x7f\x53\x40\x54\x8c\x05\x16\x16\x83\xc2\x5e\ -\x13\xb1\x52\x90\x05\x64\x3b\x7b\x82\xd9\x14\x65\x9b\x3c\x69\xd8\ -\x14\xc5\x06\x4b\xa7\x8f\x61\x4c\x32\x97\x28\xa6\x5a\x0e\x99\xda\ -\xb0\xcf\x71\x0e\x0a\xc2\x57\x2f\xa7\x5d\xec\xeb\x4f\x26\xe1\x30\ -\x9c\x6b\x06\x92\xfd\xf1\x33\x18\x77\x1e\xf5\xc3\xf8\xd8\xfe\x49\ -\xd5\x80\x57\x73\x35\xc3\xe0\xb5\xdb\x27\xd7\x0c\xf3\x66\x10\xcf\ -\x98\x01\xf4\x7e\x84\xfe\xed\x69\x33\x08\xc8\xea\x2e\xff\x90\x9f\ -\xf9\xe7\xa9\xc2\x41\xc1\xc5\x4a\x6c\x25\x2e\x25\x41\xc2\x51\x0c\ -\xb8\x21\xa4\x31\x0d\x02\x77\xbb\x46\x52\xd8\x47\x08\x69\x42\x98\ -\x2b\x22\x14\x72\x97\xbd\x46\xca\x4e\x76\xd3\x00\x03\x12\xd6\xa8\ -\x80\x4b\x93\x36\x53\x8d\x26\x0e\xe3\xd2\x4a\x02\x66\xec\x57\x3d\ -\xc0\xdc\xc5\xca\x90\x19\xa3\x96\xaf\xda\xd8\x57\x30\xa6\x43\x21\ -\x2f\x68\x9b\x01\x98\x3d\x30\xdc\x8f\x14\x12\x9a\x1c\x61\x90\x01\ -\x84\xa4\xf5\x9a\x1d\xaa\xdd\x25\x3b\x78\xa6\x88\x12\xc8\x9d\x35\ -\x46\xa1\x15\x01\xcc\xd6\x45\x54\xda\x62\xc2\xdd\xcc\x56\x8c\x0f\ -\x8e\x62\x40\x15\x28\x3b\x9c\x20\xac\x42\xa4\xbd\xb5\xa9\xdb\xad\ -\xde\x56\x69\x31\x82\x38\xc2\x8c\xd4\x27\x19\xa0\x14\xb5\x06\x6b\ -\x40\x48\x11\x52\x22\x48\x55\xae\x3a\x81\xa4\x07\x5b\x72\x67\x7b\ -\x6e\x63\xd7\x62\x90\x6d\xdc\x64\xe7\x8f\xab\x89\xcf\x9e\x2a\x01\ -\x46\x2f\xa4\xbf\x92\x87\xea\x27\x0f\xbf\x17\x0f\x21\xfa\xce\x78\ -\xe8\x90\x9e\x87\x46\x9e\xf1\x50\xc1\x75\x35\xe5\xa1\x45\xcf\x79\ -\x68\xb1\x73\x1e\xf6\xd8\x90\x87\x3d\x3a\xe4\x61\x8b\x0e\x79\xa8\ -\xe0\xfa\x3d\xe7\xa1\x7b\x9d\x39\xe1\x21\xdc\x87\x23\x1e\x2a\xb8\ -\x24\xcf\x79\xa8\x88\x38\xe7\xa1\xb2\xb5\xee\x84\x87\x56\xf0\x9c\ -\x87\x6e\xdb\x31\x0f\x15\x96\x33\x3c\x54\x98\xcf\xf0\x10\x96\x9e\ -\xf0\x10\xce\x30\xe1\xa1\xf3\xc7\xd5\xc4\x67\x4f\xf2\x50\x7d\x3b\ -\x1e\x9a\x9f\x3c\xfc\x4e\x3c\x04\x0a\x9d\xf1\xb0\x46\x3a\x1e\x2a\ -\xaa\xcf\x79\x08\xa5\xe0\x0c\x0f\x19\x9d\xf2\x10\xb0\x09\x0f\x3b\ -\x6c\xc4\xc3\x0e\x1d\xf1\xb0\x41\x47\x3c\x64\x6a\xca\x43\xce\xe6\ -\x78\xc8\xc5\x98\x87\xd0\x19\x4c\x78\xc8\xd5\x84\x87\x5c\xcf\xf1\ -\x10\x04\x27\x3c\xb4\xdb\x9e\xf1\x90\xe9\x39\x1e\x42\xaf\x32\xe1\ -\xa1\x82\x26\xf7\x9c\x87\xd6\xf6\xe7\x3c\xac\xfd\x71\x35\xf1\xd9\ -\x93\x3c\x34\x5f\xd7\xf9\x3c\x3e\x3e\xce\x37\x3f\x1c\xcf\x34\x3f\ -\x14\x92\x16\xd5\xd0\xfd\x93\xb6\x2d\x78\x3b\x8b\x42\xb3\x41\xc0\ -\xa9\xd0\x94\x58\xac\x6d\x88\xb4\xfd\xdf\x1d\x14\xfa\x7c\x6a\x43\ -\xca\x30\x5e\x47\xa2\x72\x46\x58\x09\xc6\x91\x96\xb4\x89\x28\xe3\ -\x16\x84\x7e\xb0\x59\xd0\xbe\xe2\x01\x77\xd2\x15\x18\x73\xd0\x39\ -\xf1\x76\xb2\x06\xf3\xba\x25\xa9\xf5\x68\x3d\xdb\xd4\xc7\xa1\xb3\ -\x98\x33\x31\x69\x0e\x6e\x9a\xad\xdf\xce\x81\x54\x29\x02\xb1\xe2\ -\x5e\xe3\x08\xa4\x39\x77\xbb\x40\xa1\xe6\x7a\x21\x01\x5a\xd5\xfd\ -\x99\x9d\xac\xe0\xda\x90\x04\x4e\x09\x35\x11\x37\x70\xab\x59\x4c\ -\x22\x89\x95\xfb\x9d\xaf\x3b\xa3\xd5\x46\x4b\x6b\x1e\xb5\x12\xa0\ -\x96\x32\xa0\x4f\xdd\x07\x4a\xe0\x87\xd5\x91\xdb\xa6\x8c\xda\x57\ -\x5b\x1a\xec\xc7\x39\x04\x90\xb0\x4c\x50\xd4\x75\x72\xc4\x20\x53\ -\x9b\x4c\x0c\xdd\x00\x7d\x20\xc1\xda\x19\x52\x62\xcc\x6c\x94\x03\ -\x9d\x6b\xab\xd1\xce\x92\x33\xd8\xd5\xac\x13\x9f\xed\xed\xa6\xff\ -\x2f\xe8\x6f\xd0\xdb\x35\xf1\xef\x7e\x5c\xd8\x5f\x6d\x5c\xbe\xf8\ -\x3f\x45\x39\x68\xb0\ +\x00\x28\xe1\x78\x9c\xed\x5a\x5b\x6f\xdb\x46\x16\x7e\xcf\xaf\xe0\ +\x2a\x2f\x09\x56\x1c\xcd\xfd\xa2\x58\xe9\x43\x83\x2e\x0a\x78\xb1\ +\xc0\xa6\xc5\x3e\x16\xb4\x44\xcb\x5c\x4b\xa2\x40\x52\xb6\xe4\x5f\ +\xbf\xdf\x0c\x29\x8a\x94\x68\x37\x6d\x9a\x64\x1f\xa2\x22\x95\xf8\ +\xcd\x99\xdb\x39\xe7\x3b\x17\x26\x57\x3f\xec\xd7\xab\xe8\x21\x2d\ +\xca\x2c\xdf\xcc\x46\x8c\xd0\x51\x94\x6e\xe6\xf9\x22\xdb\x2c\x67\ +\xa3\x5f\x7f\xf9\x29\xb6\xa3\xa8\xac\x92\xcd\x22\x59\xe5\x9b\x74\ +\x36\xda\xe4\xa3\x1f\xde\xbf\xba\xfa\x5b\x1c\x47\x3f\x16\x69\x52\ +\xa5\x8b\xe8\x31\xab\xee\xa2\x9f\x37\xf7\xe5\x3c\xd9\xa6\xd1\x9b\ +\xbb\xaa\xda\x4e\x27\x93\xc7\xc7\x47\x92\x35\x20\xc9\x8b\xe5\xe4\ +\x6d\x14\xc7\xef\x5f\xbd\xba\x2a\x1f\x96\xaf\xa2\x28\xc2\xbe\x9b\ +\x72\xba\x98\xcf\x46\xcd\x84\xed\xae\x58\x05\xc1\xc5\x7c\x92\xae\ +\xd2\x75\xba\xa9\xca\x09\x23\x6c\x32\x3a\x89\xcf\x4f\xe2\x73\xbf\ +\x7b\xf6\x90\xce\xf3\xf5\x3a\xdf\x94\x61\xe6\xa6\x7c\xdd\x11\x2e\ +\x16\xb7\xad\xb4\x3f\xcd\xa3\x08\x42\xcc\x39\x37\xa1\x7c\xc2\x79\ +\x0c\x89\xb8\x3c\x6c\xaa\x64\x1f\xf7\xa7\xe2\x8c\x43\x53\x39\xa5\ +\x74\x82\xb1\x93\xe4\xa7\x49\x4d\xf7\x2b\xa8\xe2\xd9\xc3\x84\xd1\ +\xee\xee\x50\xff\x16\x7f\xda\x09\x47\x80\x94\xf9\xae\x98\xa7\xb7\ +\x98\x99\x92\x4d\x5a\x4d\x3e\xfc\xf2\xa1\x1d\x8c\x29\x59\x54\x8b\ +\xce\x32\x47\xed\xf7\xf6\xed\x99\x64\x93\xac\xd3\x72\x9b\xcc\xd3\ +\x72\x72\xc4\xc3\xfc\xc7\x6c\x51\xdd\xcd\x46\x5a\x6e\xf7\xe1\xf9\ +\x2e\xcd\x96\x77\x55\x07\xc8\x16\xb3\x11\x6e\x28\xb8\xa0\xe1\xf9\ +\x78\x86\x69\xeb\x49\x94\x08\x5e\x8b\x36\x0b\x77\x87\xa4\x25\x82\ +\xb0\xa8\x70\xd6\xea\xfe\xfc\x45\x3e\xf7\x87\x9a\x8d\x3e\x6e\x92\ +\xed\x6f\xd7\xf9\xfc\x9e\x1c\x35\xd9\x2e\x94\xef\xaa\xed\xae\xfa\ +\x2d\xdd\x57\xe9\xa6\x5e\x11\x77\xe9\x5c\x2c\x0c\xfb\x69\xa4\x77\ +\xa9\x8e\x93\xb3\xd1\x7b\x20\x57\x8b\xf4\xb6\xf4\x23\xf5\x7d\xfc\ +\x13\x2e\xc4\xc3\x18\x46\x61\x94\x34\x29\xfe\x51\x24\x8b\x0c\xae\ +\x58\xcb\x75\x4e\x31\xcf\x57\xab\x74\x0e\xa5\x24\xab\xc7\xe4\x50\ +\x8e\x5a\x01\x2c\xd5\x9f\x2a\xb8\x11\xcd\xa2\x58\xb6\xac\xf2\xed\ +\x51\x16\x17\xaf\x0e\x2b\xdc\xd6\x83\x31\x56\xcc\x8b\xe9\xeb\xdb\ +\xf0\x79\x17\xa0\x1c\xc6\xc9\xaa\xc3\x94\xbd\x1b\x9d\xe6\xe4\xb7\ +\xb7\x65\x8a\x8d\x69\x07\x0b\x06\xc1\x0c\xec\xa5\x46\xd1\xe4\xf3\ +\x76\xa3\x43\xbb\xb1\xe1\xdd\x4c\xbb\xdb\xd5\xa4\x7f\xed\x06\xf5\ +\x4f\xc9\xea\x0f\xab\x31\x70\x62\x7a\x57\xa4\xe0\xf0\xeb\x01\x7d\ +\x76\xd5\xdd\xdf\x82\x4b\x76\x3a\xeb\xb2\x01\x7f\xdd\x64\x15\xc8\ +\xba\x2b\xd3\xe2\xa3\x77\xf8\x7f\x6d\x7e\x2d\xd3\x0b\xa9\x5f\x8a\ +\x64\x53\x82\x5d\xeb\xd9\x68\x9d\x54\x45\xb6\x7f\xc3\xc6\x14\xff\ +\x21\x2c\x5a\x6a\xa4\x73\x63\x45\x34\x77\x92\xba\x71\x2c\x19\xb1\ +\x82\x19\x2a\xde\xb6\xcb\xcc\xf7\xb3\x11\x37\x96\x12\xa5\xf9\xe9\ +\x84\xf3\xc3\x6c\xa4\xa4\x20\xc6\x32\xc7\x5b\xf4\x76\x50\xf6\x76\ +\x50\xb6\x98\x8d\x84\x25\x96\x3b\xa1\xdd\x49\xdd\x7f\xd2\x3f\x5f\ +\x54\xac\x13\x2f\xf8\x31\xc7\xbd\xff\x32\xc5\xc6\xb5\x66\xf1\xa5\ +\xb4\xd2\x50\xa5\xb0\x63\x26\xa9\x25\x9c\x33\x7d\x52\xe9\x9e\x79\ +\x35\x29\x49\xb4\x55\xb6\x45\x0f\x40\xb5\x01\x8f\x19\xb5\x27\x5b\ +\xef\x39\x64\x1d\xa5\x84\xc9\x8e\x28\xef\x8a\x7e\x53\xe5\x99\x2f\ +\xab\x3c\x61\xf4\xb7\x55\xde\x40\xe0\x73\x7f\x24\xf0\x51\xca\x13\ +\xbe\xf8\xd3\x81\xcf\xfd\xb1\xc0\x47\x41\x69\xe5\xfe\x74\xe0\x73\ +\xbf\x1b\xf8\xbe\x85\x8b\xa9\x2f\xec\x62\x52\xfe\x7f\xf3\x73\xc8\ +\x07\x95\xfa\x7a\xc9\x57\x99\xaf\x99\x7c\x95\xfb\x16\x3e\xa8\xd4\ +\xcb\x3e\x28\xfe\x32\x1f\xa4\xc8\x83\x8e\x3a\xab\x83\x2b\x52\xe2\ +\xb8\xb6\x92\x49\x39\x56\xc8\x9b\x46\x19\x86\x7c\xcc\x09\xe5\xc2\ +\xc9\x0b\x97\x14\x9c\x08\x48\xf4\x5c\xd2\x30\xef\x67\x9c\xb9\xbe\ +\x4b\x5a\xe1\x08\x35\x4c\xf4\x7c\xf2\x24\xdb\xaa\xb8\x55\xdb\x16\ +\x95\xe4\x16\x7a\x43\xf7\x71\x9c\xd2\x16\xb0\xd5\xc1\x17\xdc\x7d\ +\x51\xb1\x18\x5d\xa8\xfe\x61\xfb\x1b\x2a\x00\x1a\x4d\x23\xc1\xf1\ +\x3f\x36\x28\x71\xa8\x25\x18\x1a\x0a\x7c\xd1\x41\x99\x27\x5f\x96\ +\xbf\xb0\x4c\x73\x82\x38\x2f\xb2\x65\x86\xea\x37\xc8\x71\x46\x44\ +\xf8\xf4\xe7\xc0\x9c\x9d\xbb\xa1\x18\xb6\xcd\xed\xaf\x26\xbe\x3a\ +\x0e\xbf\xda\x9b\xfa\x3a\x7d\xf1\x90\xa5\x8f\xa7\x12\xfa\x26\x69\ +\xed\xba\x4d\x96\x69\xf0\x72\x78\x50\xed\xe6\xcd\xc0\x4d\x5e\x2c\ +\xd2\xe2\x38\xa4\xc3\xa7\x37\xd4\x10\xa1\x6e\x46\x5f\x9d\x5d\x06\ +\xab\xb6\xe3\x74\x78\xbc\xbc\x4b\x16\xf9\x23\xec\x7a\x3e\xf8\x94\ +\xe7\xf0\x2d\x41\x2c\x9c\xca\xb6\x25\xe4\x89\x0c\xb0\x87\x62\x44\ +\x32\xc7\xda\x13\x9d\x06\xfd\x79\x0c\xa1\x4a\x32\xca\x2e\x06\x77\ +\x45\x01\x07\x8e\x57\xc9\x21\xc5\xa5\x96\xd0\xdb\x71\xf5\xf2\x2e\ +\x7f\x5c\x16\x5e\x37\x55\xb1\x4b\xcf\x27\xa2\xdb\xd9\xf9\x3e\x37\ +\xde\xd5\x0c\x69\xba\xab\x8e\x84\x9f\x1b\xdf\xdc\xe4\xfb\xe1\x05\ +\x1e\xb3\x0d\xee\x1a\x37\xfd\x1a\xe3\xf6\x42\x23\x8d\xc4\xb1\x83\ +\x33\xc6\x3c\x23\xb1\x3f\xc5\xb4\xf3\xa1\xc3\xf3\x43\xeb\x64\x9f\ +\xad\xb3\xa7\x74\xe1\x63\x54\xe3\x2b\xeb\xb4\x4a\x16\x49\x95\x9c\ +\xfc\xe2\x88\xc0\xa3\x8e\xc1\xf8\x0a\xbd\xf7\xf4\xdf\x1f\x7e\x6a\ +\x83\xe5\x7c\x3e\xfd\x4f\x5e\xdc\x9f\xe2\x9c\x17\x48\x6e\xd0\xcd\ +\xcd\x46\x6d\x00\xf7\x4d\xdb\x7c\xea\x83\x44\x52\xbd\xcf\xd6\xb0\ +\xb6\x6f\xb4\xff\x8e\x7e\x17\x1e\xda\x0e\xf4\x84\x3d\x21\x4f\x8b\ +\xd6\xcb\x16\x69\xdd\x48\x0f\xbe\x7b\x58\xcc\xd7\x99\x9f\x34\xf9\ +\x58\x65\xab\xd5\xcf\x7e\x93\x4e\x50\x6f\x16\xcd\xaa\x55\xda\x89\ +\xf4\x93\xe6\xf4\xc7\x60\xdc\xb9\xdc\xd5\xe4\x78\xfb\xf0\xb4\x3c\ +\x69\x25\xb8\xcb\x85\x33\xad\x92\x9b\x74\x35\x1b\x5d\xfb\xc1\xe8\ +\x62\x74\x59\xe4\xbb\xed\x3a\x5f\xa4\xcd\xf4\xa3\x36\x97\x5d\x0e\ +\x77\x1d\x30\x8a\xaa\x81\xb8\xca\x9c\x30\xd6\xa8\x26\xae\x1e\x9f\ +\x62\xc5\x14\xa1\x4c\x2b\x36\x8e\x1d\x9a\x10\x63\x34\x33\x6f\x2f\ +\x43\x4a\xba\xdf\xe6\x45\x15\xdf\x66\xab\xb4\x6e\xd6\x27\x77\xf9\ +\x3a\x9d\x1c\x10\x62\xee\x27\x1f\x1a\x9f\x2e\x27\xd7\xc9\xcd\xe4\ +\x43\x91\xdc\x56\x93\x6c\x9e\x6f\xca\xc9\x7c\x95\x97\x29\xd9\x6e\ +\x96\xcf\xae\xb8\x5f\x6c\xb3\xd9\x48\x12\xe9\x34\x93\x9a\x3f\x2b\ +\x77\x38\x93\x6b\xed\xb0\x3c\x59\x7a\x78\x8e\x26\x8a\x32\xa7\xcd\ +\x29\x05\x3c\x77\x8a\x4f\x91\xfc\x7c\x0d\xf4\xcc\x13\x7e\xae\x92\ +\x2a\x7d\x13\xeb\x71\x6c\xdf\x76\x77\x6e\xcc\xaa\x3a\x58\x5b\x50\ +\x14\xf9\x7d\x5a\xc7\x80\x29\x0c\x28\x2d\xa2\x9b\xd4\xe6\x5d\x33\ +\x00\x6f\x4e\x8b\x15\x58\x5a\x4d\xe5\x11\x5b\x24\x88\x92\x45\x91\ +\x1c\xa6\x9b\x7c\x93\x76\xe9\xb5\x4d\xaa\xbb\x2e\x5d\x9a\x4d\x4e\ +\xb5\x10\xee\xbc\xf2\xd5\xb3\x53\x46\x84\x87\xb8\x3f\x16\x17\xbb\ +\x15\x14\xf4\x90\x6e\xf2\xc5\xa2\xd9\xaf\x53\xdb\xbf\x7c\x56\x5f\ +\x4c\x40\xc1\xd3\x9b\x5d\x55\x75\xb1\xff\xe6\xd9\x66\x1a\x2e\xf2\ +\x6e\x9d\x14\xf7\x69\x11\xce\xdd\xfc\x8e\xcb\x2a\x29\xaa\x1e\xb2\ +\xce\x16\xbd\xe7\x74\xd3\x3c\x7f\xb2\x4e\xba\x68\x5d\x85\xa1\x32\ +\x6b\xb0\xd3\x85\x1f\xb2\x32\xbb\xc9\x56\xfe\x21\xfc\x5c\xa5\xef\ +\x16\x59\xb9\x05\x35\xa7\xd9\xc6\x1f\xfc\x5d\xfe\x90\x16\xb7\xab\ +\xfc\xb1\x1d\x87\xc3\xe0\x2b\xbe\x49\xe6\xf7\x9e\xcc\x38\x58\x32\ +\x87\xbf\xec\xbc\xdd\x47\x5d\xcd\xc3\xe2\xff\x8c\x50\x9c\x50\x24\ +\x2c\x6b\xc7\x8a\x69\xa8\x4b\xf1\xe8\xc7\x88\x1b\x6b\x09\xd3\xa2\ +\x05\x99\x03\xa6\x04\x11\xd6\xa1\x38\x42\x12\xf3\xad\xba\xf5\x18\ +\x27\x0a\x76\x1a\x2b\x27\x89\x70\xc2\xf2\xe8\xba\x41\x51\xc7\x3d\ +\x8b\x2a\xe2\xac\x12\xac\x87\x6a\x2d\x08\x53\x4c\xa8\x80\x5a\x94\ +\x5d\xb0\xdb\x33\x68\x7f\x5d\x8f\x72\xe9\x3a\x68\xb8\x81\x20\xe8\ +\xd8\x70\x5a\x6d\x88\xf2\x2c\xc6\x55\xa9\xf2\x8b\xe1\x56\x52\x13\ +\x66\x34\xee\x8a\xeb\x33\x82\x6c\x2d\x3a\x18\x66\x5b\x85\x8a\x8d\ +\x09\xdd\xa2\x0c\x98\x45\xbd\xa0\xbc\xa4\xb6\x84\x5a\x6d\x5d\x8d\ +\x19\xc7\x4c\xb8\x93\xd4\xf5\x95\xac\x3f\x10\x53\x6a\x18\xd4\x9a\ +\x13\x8b\xa3\x18\x8f\xa2\xf8\x24\x82\xb9\xe7\x50\x85\x20\x69\x0d\ +\xd3\xec\x88\x02\xe4\x1d\xf4\x47\x8f\xe2\x30\xc6\x5b\x40\xa1\x7e\ +\xa5\xc2\xc2\x2a\xa8\x3d\x88\xe4\x42\xb6\x26\x65\x43\x66\x7e\xea\ +\x39\x43\x28\xcd\x40\x4d\x84\x00\xd3\xcf\x46\x05\x8a\xb5\x4f\x23\ +\x2c\x33\xf2\x3b\x61\xbf\x20\x61\xc3\xab\x48\x58\x03\x36\x72\xbd\ +\x81\x63\x79\xe6\x90\x6a\x95\x74\xb2\x37\x78\xac\xcc\x98\x54\x44\ +\x1b\x29\x54\x6f\x34\xbc\x25\x14\x21\x17\xf5\x07\x0e\xbe\xec\xd7\ +\xa8\xe2\xd1\x8f\x77\x7b\xce\xc9\xb2\xfd\xd9\x0f\xe5\xa7\xba\x1d\ +\xd5\x83\xaf\x6f\x50\x6f\xce\xcb\x72\x8e\xcf\x59\x9e\xa9\xfd\xcc\ +\x75\x7b\x4e\x5f\xc3\xc1\x49\x39\x25\x5a\x3b\x3b\xd6\x38\x2b\x4e\ +\x65\x4c\x34\x8f\x50\x40\x44\x31\x3c\xc3\x50\xaa\xc6\x70\x5e\xed\ +\x94\x90\x40\x0c\x3a\x34\xc4\x02\x21\xf1\xad\x95\x8a\x62\x04\x12\ +\x2d\xed\x98\xfb\x90\x44\x8d\x8d\x10\xc2\x0c\xc7\xb3\x05\x45\x2d\ +\x77\xe8\x72\xc0\x0a\xcf\x14\x1f\x19\x84\x00\x7d\x09\xf7\x2b\x70\ +\x9f\xe7\x15\x75\x51\x6c\x88\x7f\xf5\x3b\x96\xdc\x6f\xe6\xd8\x25\ +\xb0\x8a\x62\x90\x5f\x5a\x2e\xfd\xa1\x28\xe1\x16\x2d\x62\xcc\xc0\ +\x2d\x54\xf5\x56\x44\x08\x3a\x92\x59\x40\x14\x8a\x63\xb4\x4f\xb2\ +\x86\x38\x81\x2e\x28\x07\xdf\xbc\xbe\xec\x6c\xdf\x7e\x32\x7f\x42\ +\x5a\x1d\x28\x1c\x50\x06\x80\x30\x55\x5e\xc4\x68\x1a\x1e\x92\x6a\ +\x57\xa4\xbe\xb8\xee\x18\x70\xf9\x3b\xa5\x01\x1d\x0f\x15\x06\x9d\ +\x17\x6d\x9f\x9c\xc4\x87\x2f\xa9\x5e\xb8\x24\x6e\xf5\x84\x06\xad\ +\x7b\xc9\x7e\x84\x80\x1b\x38\xff\x31\xec\x7b\x80\x78\x2e\xa3\x1b\ +\x64\x3c\xe6\xcb\x6d\xad\x19\x51\x21\x19\x6a\xcf\x0d\xe7\x1a\x04\ +\x49\xd7\x12\xad\xfc\xa3\x24\x8a\x31\x11\xb2\xbb\x21\x21\x0b\x83\ +\x2d\x7e\x72\x98\x06\xcc\x99\x06\x55\xc8\x66\xbc\x99\xea\x2c\x0b\ +\x98\xd4\x5e\x12\x98\xf3\x3f\x6d\x07\x0b\x19\x4f\x10\xd7\x47\x7d\ +\x66\xb5\x8e\x18\x4b\x5d\x8b\x4a\x60\x48\xdc\x52\xf8\x03\x23\x71\ +\x71\x44\x1c\xdd\xc3\x90\xf6\x94\xe6\xf5\x9a\x2d\x6a\x43\xf6\xeb\ +\x3c\x83\xcc\x0c\xc1\xad\xc6\x38\xfa\x0d\x60\xbe\x60\xe1\xda\x67\ +\xf9\x90\x32\xbd\x98\xec\x1c\xc5\xe1\x2a\xa8\x07\x82\x20\x56\x61\ +\xda\xa7\x53\x1e\x76\xab\xb7\x35\x56\xf5\x20\x49\xa8\x60\xf5\x49\ +\x3a\x28\x27\x47\x85\x35\xa0\xc0\xe5\x34\xe1\x08\x62\x3e\xf1\x3a\ +\xe3\xb7\x94\x41\xf7\xd2\xfb\xae\xc7\x18\xf4\xef\x27\x07\x7b\x5c\ +\x5f\xd8\xec\xb9\xdc\xdc\x7b\x05\xfd\x99\x3c\x34\xdf\x79\xf8\xb5\ +\x78\x08\xef\x3b\xe3\x61\x40\x4e\x3c\x74\xfa\x8c\x87\x48\x37\x03\ +\x3c\xf4\xe8\x39\x0f\x3d\x76\xce\xc3\x13\xd6\xe5\xe1\x09\xed\xf2\ +\xf0\x88\x76\x79\x68\x50\x28\x9f\xf3\x30\xbc\xaf\xbc\xe0\xa1\x61\ +\xa2\xc7\x43\xc3\xe4\x05\x0f\x0d\x92\xf7\x19\x0f\x8d\x2f\x42\x2f\ +\x78\xe8\x05\xcf\x79\x18\xb6\xed\xf3\xd0\x50\x3d\xc0\x43\x43\xe5\ +\x00\x0f\xb1\xf4\x05\x0f\x71\x86\x0b\x1e\x06\x7b\x5c\x5f\xd8\xec\ +\x59\x1e\x9a\xbf\x8e\x87\xee\x3b\x0f\xbf\x12\x0f\x41\xa1\x33\x1e\ +\xd6\x48\xcb\x43\x94\x8b\xe7\x3c\x14\x7c\x88\x87\x82\x5f\xf2\x10\ +\xd8\x05\x0f\x5b\xac\xc7\xc3\x16\xed\xf1\xb0\x41\x7b\x3c\x14\xe6\ +\x92\x87\x52\x0c\xf1\x50\xaa\x3e\x0f\x51\xba\x5f\xf0\x50\x9a\x0b\ +\x1e\x4a\x3b\xc4\x43\x08\x5e\xf0\xd0\x6f\x7b\xc6\x43\x61\x87\x78\ +\x88\x66\xe2\x82\x87\x06\x15\xf2\x39\x0f\xbd\xee\xcf\x79\x58\xdb\ +\xe3\xfa\xc2\x66\xcf\xf2\xd0\x7d\x5e\x6b\xf2\xf4\xf4\x34\xdc\x9d\ +\x48\x3a\xd0\x9d\xc0\x42\x54\x19\x87\x16\x5a\x10\x68\x4e\x88\x63\ +\x77\x82\x0e\x42\x4b\x5e\x97\xfd\x0a\x51\x2c\xf2\xff\x78\x03\xca\ +\x32\x63\x56\x7f\xb3\xd0\xaf\x30\x2f\xc3\xb8\xff\xb6\x1a\xb3\x40\ +\x5e\x98\x68\xcc\x85\x37\x15\x1a\x94\x58\xa0\x42\xc0\xd0\x58\xd6\ +\xeb\xa0\xcb\x69\x44\xea\xc9\x7e\x12\x6c\xe9\xd7\xe5\x86\xd8\x5a\ +\xe2\x1c\x58\x45\xd8\x41\x8d\xe1\x6b\xc0\xed\xf1\x84\x58\x50\x0a\ +\xe1\x0f\x08\x77\xc0\xc1\x19\x36\x10\x0c\xad\x0b\x64\x1d\x35\x1a\ +\x80\xb6\xce\xf7\x32\xde\x12\xd4\xa9\x48\x61\x3d\x34\x5c\x71\xb0\ +\x92\xe6\x3c\x42\xc8\xa6\xdc\x61\x0e\x0c\xec\xb8\x34\xa1\xa1\xf2\ +\x2e\x11\x26\x49\x7f\x8a\xc8\x9f\xc2\x72\x33\xf6\xb7\x75\xdc\xbf\ +\x78\x80\x22\xd0\x10\xf1\x80\x08\x6b\xd1\x12\x41\x79\x82\x6a\x35\ +\x46\x2a\x83\x8f\x39\xb4\x69\xde\x51\xb1\x11\x96\x57\x67\x4f\x2f\ +\xb6\x4f\x97\xff\x2a\xe7\x8b\xb7\x4f\x8d\x8b\x85\xaf\x2b\xff\x37\ +\x03\xef\x5f\xfd\x0f\xe7\xda\x3c\xaf\ \x00\x00\x11\x72\ \x3c\ \x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ @@ -37878,59 +37867,59 @@ qt_resource_struct = "\ \x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x01\x64\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x04\xc4\ \x00\x00\x00\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x12\ -\x00\x00\x06\x02\x00\x01\x00\x00\x00\x01\x00\x07\x71\x1b\ +\x00\x00\x06\x02\x00\x01\x00\x00\x00\x01\x00\x07\x65\xdf\ \x00\x00\x03\xb0\x00\x00\x00\x00\x00\x01\x00\x06\xc2\xc8\ -\x00\x00\x08\x38\x00\x01\x00\x00\x00\x01\x00\x08\x24\xe5\ -\x00\x00\x0a\x7e\x00\x01\x00\x00\x00\x01\x00\x08\xe3\xcd\ -\x00\x00\x04\xba\x00\x01\x00\x00\x00\x01\x00\x07\x0d\xaf\ -\x00\x00\x06\x4a\x00\x00\x00\x00\x00\x01\x00\x07\x8e\x65\ -\x00\x00\x07\x5e\x00\x01\x00\x00\x00\x01\x00\x07\xe7\x03\ -\x00\x00\x06\xbe\x00\x00\x00\x00\x00\x01\x00\x07\xb8\x34\ -\x00\x00\x08\xd2\x00\x01\x00\x00\x00\x01\x00\x08\x5e\x74\ -\x00\x00\x0a\xce\x00\x01\x00\x00\x00\x01\x00\x08\xff\xdd\ +\x00\x00\x08\x38\x00\x01\x00\x00\x00\x01\x00\x08\x19\xa9\ +\x00\x00\x0a\x7e\x00\x01\x00\x00\x00\x01\x00\x08\xe2\xf6\ +\x00\x00\x04\xba\x00\x01\x00\x00\x00\x01\x00\x07\x02\x73\ +\x00\x00\x06\x4a\x00\x00\x00\x00\x00\x01\x00\x07\x83\x29\ +\x00\x00\x07\x5e\x00\x01\x00\x00\x00\x01\x00\x07\xdb\xc7\ +\x00\x00\x06\xbe\x00\x00\x00\x00\x00\x01\x00\x07\xac\xf8\ +\x00\x00\x08\xd2\x00\x01\x00\x00\x00\x01\x00\x08\x5a\x4a\ +\x00\x00\x0a\xce\x00\x01\x00\x00\x00\x01\x00\x08\xff\x1a\ \x00\x00\x03\xf6\x00\x01\x00\x00\x00\x01\x00\x06\xdb\xea\ -\x00\x00\x07\x84\x00\x01\x00\x00\x00\x01\x00\x07\xec\xc7\ -\x00\x00\x06\x24\x00\x00\x00\x00\x00\x01\x00\x07\x7b\xcf\ -\x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x06\xe1\x69\ -\x00\x00\x06\x92\x00\x01\x00\x00\x00\x01\x00\x07\xa7\x2a\ +\x00\x00\x07\x84\x00\x01\x00\x00\x00\x01\x00\x07\xe1\x8b\ +\x00\x00\x06\x24\x00\x00\x00\x00\x00\x01\x00\x07\x70\x93\ +\x00\x00\x04\x1a\x00\x01\x00\x00\x00\x01\x00\x06\xe1\x69\ +\x00\x00\x06\x92\x00\x01\x00\x00\x00\x01\x00\x07\x9b\xee\ \x00\x00\x03\xd2\x00\x01\x00\x00\x00\x01\x00\x06\xd1\x7e\ -\x00\x00\x0a\x08\x00\x00\x00\x00\x00\x01\x00\x08\xc6\x13\ +\x00\x00\x0a\x08\x00\x00\x00\x00\x00\x01\x00\x08\xc5\x22\ \x00\x00\x03\x30\x00\x01\x00\x00\x00\x01\x00\x06\x9d\x12\ -\x00\x00\x05\x0a\x00\x01\x00\x00\x00\x01\x00\x07\x28\xce\ -\x00\x00\x09\xc0\x00\x01\x00\x00\x00\x01\x00\x08\xb2\x1d\ -\x00\x00\x09\xe2\x00\x01\x00\x00\x00\x01\x00\x08\xbc\x7f\ -\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x07\x16\xb5\ +\x00\x00\x05\x0a\x00\x01\x00\x00\x00\x01\x00\x07\x1d\x92\ +\x00\x00\x09\xc0\x00\x01\x00\x00\x00\x01\x00\x08\xad\xf3\ +\x00\x00\x09\xe2\x00\x01\x00\x00\x00\x01\x00\x08\xbb\x8e\ +\x00\x00\x04\xe8\x00\x00\x00\x00\x00\x01\x00\x07\x0b\x79\ \x00\x00\x02\xfe\x00\x01\x00\x00\x00\x01\x00\x06\x95\x59\ -\x00\x00\x07\xee\x00\x01\x00\x00\x00\x01\x00\x08\x0d\xbb\ -\x00\x00\x09\x2c\x00\x00\x00\x00\x00\x01\x00\x08\x6e\xbc\ -\x00\x00\x05\x5e\x00\x01\x00\x00\x00\x01\x00\x07\x3a\x3e\ -\x00\x00\x09\x50\x00\x00\x00\x00\x00\x01\x00\x08\x85\x6f\ -\x00\x00\x07\x18\x00\x00\x00\x00\x00\x01\x00\x07\xce\xd6\ -\x00\x00\x04\x6c\x00\x01\x00\x00\x00\x01\x00\x06\xfc\xd1\ -\x00\x00\x0a\x9e\x00\x00\x00\x00\x00\x01\x00\x08\xee\x67\ -\x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x07\x51\x7d\ +\x00\x00\x07\xee\x00\x01\x00\x00\x00\x01\x00\x08\x02\x7f\ +\x00\x00\x09\x2c\x00\x00\x00\x00\x00\x01\x00\x08\x6a\x92\ +\x00\x00\x05\x5e\x00\x01\x00\x00\x00\x01\x00\x07\x2f\x02\ +\x00\x00\x09\x50\x00\x00\x00\x00\x00\x01\x00\x08\x81\x45\ +\x00\x00\x07\x18\x00\x00\x00\x00\x00\x01\x00\x07\xc3\x9a\ +\x00\x00\x04\x6c\x00\x01\x00\x00\x00\x01\x00\x06\xf1\x69\ +\x00\x00\x0a\x9e\x00\x00\x00\x00\x00\x01\x00\x08\xed\xa4\ +\x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x07\x46\x41\ \x00\x00\x03\x5c\x00\x00\x00\x00\x00\x01\x00\x06\xa5\x19\ -\x00\x00\x0a\xfe\x00\x00\x00\x00\x00\x01\x00\x09\x0b\xb6\ -\x00\x00\x09\x98\x00\x00\x00\x00\x00\x01\x00\x08\xa2\xf6\ +\x00\x00\x0a\xfe\x00\x00\x00\x00\x00\x01\x00\x09\x0a\xf3\ +\x00\x00\x09\x98\x00\x00\x00\x00\x00\x01\x00\x08\x9e\xcc\ \x00\x00\x03\x80\x00\x01\x00\x00\x00\x01\x00\x06\xba\x39\ -\x00\x00\x08\x5a\x00\x01\x00\x00\x00\x01\x00\x08\x2d\x8e\ -\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x08\xce\xa0\ -\x00\x00\x05\xe0\x00\x01\x00\x00\x00\x01\x00\x07\x63\xbc\ -\x00\x00\x06\xf0\x00\x01\x00\x00\x00\x01\x00\x07\xc5\x25\ -\x00\x00\x08\xb0\x00\x00\x00\x00\x00\x01\x00\x08\x49\xe3\ -\x00\x00\x04\x90\x00\x01\x00\x00\x00\x01\x00\x07\x03\x6e\ -\x00\x00\x07\x3e\x00\x01\x00\x00\x00\x01\x00\x07\xe0\x8e\ -\x00\x00\x05\x3e\x00\x01\x00\x00\x00\x01\x00\x07\x34\xbf\ -\x00\x00\x08\xfc\x00\x01\x00\x00\x00\x01\x00\x08\x64\xe9\ -\x00\x00\x07\xc6\x00\x01\x00\x00\x00\x01\x00\x08\x02\x49\ -\x00\x00\x08\x10\x00\x01\x00\x00\x00\x01\x00\x08\x15\x0f\ -\x00\x00\x0a\x54\x00\x01\x00\x00\x00\x01\x00\x08\xd9\x4b\ -\x00\x00\x09\x74\x00\x01\x00\x00\x00\x01\x00\x08\x98\x46\ -\x00\x00\x04\x3c\x00\x01\x00\x00\x00\x01\x00\x06\xf4\x88\ -\x00\x00\x07\xa6\x00\x00\x00\x00\x00\x01\x00\x07\xf2\x77\ -\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x07\x42\x23\ -\x00\x00\x06\x72\x00\x01\x00\x00\x00\x01\x00\x07\x9d\xb6\ -\x00\x00\x08\x7e\x00\x00\x00\x00\x00\x01\x00\x08\x34\xdf\ +\x00\x00\x08\x5a\x00\x01\x00\x00\x00\x01\x00\x08\x22\x52\ +\x00\x00\x0a\x2e\x00\x01\x00\x00\x00\x01\x00\x08\xcd\xaf\ +\x00\x00\x05\xe0\x00\x01\x00\x00\x00\x01\x00\x07\x58\x80\ +\x00\x00\x06\xf0\x00\x01\x00\x00\x00\x01\x00\x07\xb9\xe9\ +\x00\x00\x08\xb0\x00\x00\x00\x00\x00\x01\x00\x08\x45\xb9\ +\x00\x00\x04\x90\x00\x01\x00\x00\x00\x01\x00\x06\xf8\x32\ +\x00\x00\x07\x3e\x00\x01\x00\x00\x00\x01\x00\x07\xd5\x52\ +\x00\x00\x05\x3e\x00\x01\x00\x00\x00\x01\x00\x07\x29\x83\ +\x00\x00\x08\xfc\x00\x01\x00\x00\x00\x01\x00\x08\x60\xbf\ +\x00\x00\x07\xc6\x00\x01\x00\x00\x00\x01\x00\x07\xf7\x0d\ +\x00\x00\x08\x10\x00\x01\x00\x00\x00\x01\x00\x08\x09\xd3\ +\x00\x00\x0a\x54\x00\x01\x00\x00\x00\x01\x00\x08\xd8\x74\ +\x00\x00\x09\x74\x00\x01\x00\x00\x00\x01\x00\x08\x94\x1c\ +\x00\x00\x04\x3c\x00\x01\x00\x00\x00\x01\x00\x06\xe9\x47\ +\x00\x00\x07\xa6\x00\x00\x00\x00\x00\x01\x00\x07\xe7\x3b\ +\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x07\x36\xe7\ +\x00\x00\x06\x72\x00\x01\x00\x00\x00\x01\x00\x07\x92\x7a\ +\x00\x00\x08\x7e\x00\x00\x00\x00\x00\x01\x00\x08\x29\xa3\ \x00\x00\x02\xaa\x00\x01\x00\x00\x00\x01\x00\x06\x7b\xb1\ \x00\x00\x02\xd6\x00\x01\x00\x00\x00\x01\x00\x06\x85\x1e\ " From 865f7c64c9bf4b30522944592ab270f47f374c5a Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 30 Aug 2012 20:25:16 -0300 Subject: [PATCH 75/98] Fixed windows installer bitmap --- .../Bitmaps/BackgroundBitmap.bmp | Bin 631822 -> 631890 bytes .../Bitmaps/BackgroundBitmap.png | Bin 93173 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/WindowsInstaller/Bitmaps/BackgroundBitmap.png diff --git a/src/WindowsInstaller/Bitmaps/BackgroundBitmap.bmp b/src/WindowsInstaller/Bitmaps/BackgroundBitmap.bmp index ac89dd19ebabb2daac49cc2353439f5829ef5558..cfbf36ac84e8308d6d464983753f2f207e69d67d 100644 GIT binary patch literal 631890 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

I>NwX~QZ}!{X!*0mP5QzX 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 From 1f94f0846e7d50ed877908ef7e8f35ef4cbd5240 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 31 Aug 2012 13:11:52 +0200 Subject: [PATCH 76/98] Fix translation issues --- src/Mod/Drawing/Gui/TaskOrthoViews.ui | 10 +++--- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 38 +++++++++++------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Mod/Drawing/Gui/TaskOrthoViews.ui b/src/Mod/Drawing/Gui/TaskOrthoViews.ui index 92718a990..580a74765 100644 --- a/src/Mod/Drawing/Gui/TaskOrthoViews.ui +++ b/src/Mod/Drawing/Gui/TaskOrthoViews.ui @@ -7,7 +7,7 @@ 0 0 259 - 491 + 496 @@ -122,22 +122,22 @@ - 0 + 0 - 90 + 90 - 180 + 180 - 270 + 270 diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index 3822e1214..0a0184711 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -500,7 +500,7 @@ class DrawSketchHandlerLineSet: public DrawSketchHandler { public: DrawSketchHandlerLineSet() - : Mode(STATUS_SEEK_First),SegmentMode(SEGMENT_MODE_Line), + : Mode(STATUS_SEEK_First),SegmentMode(SEGMENT_MODE_Line), TransitionMode(TRANSITION_MODE_Free),suppressTransition(false),EditCurve(2), firstVertex(-1),firstCurve(-1),previousCurve(-1),previousPosId(Sketcher::none) {} virtual ~DrawSketchHandlerLineSet() {} @@ -517,7 +517,7 @@ public: SEGMENT_MODE_Arc, SEGMENT_MODE_Line }; - + enum TRANSITION_MODE { TRANSITION_MODE_Free, @@ -631,7 +631,7 @@ public: else EditCurve[1] = EditCurve[0] + EditCurve[1]; } - else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || + else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || TransitionMode == TRANSITION_MODE_Perpendicular_R) { Base::Vector2D Perpendicular(-dirVec.y,dirVec.x); EditCurve[1].ProjToLine(EditCurve[2] - EditCurve[0], Perpendicular); @@ -812,19 +812,19 @@ public: Sketcher::end : Sketcher::start; Sketcher::PointPos lastEndPosId = (SegmentMode == SEGMENT_MODE_Arc && startAngle > endAngle) ? Sketcher::start : Sketcher::end; - // in case of a tangency constraint, the coincident constraint is redundant + // in case of a tangency constraint, the coincident constraint is redundant std::string constrType = "Coincident"; - if (!suppressTransition) { - if (TransitionMode == TRANSITION_MODE_Tangent) - constrType = "Tangent"; - else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || - TransitionMode == TRANSITION_MODE_Perpendicular_R) + if (!suppressTransition) { + if (TransitionMode == TRANSITION_MODE_Tangent) + constrType = "Tangent"; + else if (TransitionMode == TRANSITION_MODE_Perpendicular_L || + TransitionMode == TRANSITION_MODE_Perpendicular_R) constrType = "Perpendicular"; - } + } Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('%s',%i,%i,%i,%i)) ", sketchgui->getObject()->getNameInDocument(), constrType.c_str(), - previousCurve, previousPosId, lastCurve, lastStartPosId); + previousCurve, previousPosId, lastCurve, lastStartPosId); if (Mode == STATUS_Close) { int firstGeoId; Sketcher::PointPos firstPosId; @@ -884,14 +884,14 @@ public: applyCursor(); Mode = STATUS_SEEK_Second; - if (SegmentMode == SEGMENT_MODE_Arc) { - TransitionMode = TRANSITION_MODE_Tangent; - EditCurve.resize(3); + if (SegmentMode == SEGMENT_MODE_Arc) { + TransitionMode = TRANSITION_MODE_Tangent; + EditCurve.resize(3); EditCurve[2] = EditCurve[0]; } else { - TransitionMode = TRANSITION_MODE_Free; - EditCurve.resize(2); + TransitionMode = TRANSITION_MODE_Free; + EditCurve.resize(2); } SegmentMode = SEGMENT_MODE_Line; EditCurve[1] = EditCurve[0]; @@ -912,7 +912,7 @@ protected: int previousCurve; Sketcher::PointPos previousPosId; std::vector sugConstr1, sugConstr2; - + Base::Vector2D CenterPoint; Base::Vector3d dirVec; float startAngle, endAngle, arcRadius; @@ -1077,7 +1077,7 @@ public: float dy = rx * sin(angle) + ry * cos(angle); EditCurve[i] = Base::Vector2D(CenterPoint.fX + dx, CenterPoint.fY + dy); } - + // Display radius and arc angle float radius = (onSketchPos - EditCurve[0]).Length(); @@ -1789,7 +1789,7 @@ CmdSketcherCreateFillet::CmdSketcherCreateFillet() sAppModule = "Sketcher"; sGroup = QT_TR_NOOP("Sketcher"); sMenuText = QT_TR_NOOP("Create fillet"); - sToolTipText = QT_TR_NOOP("Create a fillet between two lines or at a coincidental point"); + sToolTipText = QT_TR_NOOP("Create a fillet between two lines or at a coincident point"); sWhatsThis = sToolTipText; sStatusTip = sToolTipText; sPixmap = "Sketcher_CreateFillet"; From 6b929c766456fed0072c4ef719d47e3b20447a75 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 31 Aug 2012 13:15:08 +0200 Subject: [PATCH 77/98] Replace tabs with spaces --- src/Gui/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index ed70b71d6..2e984d49d 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -104,7 +104,7 @@ set(Gui_MOC_HDRS DlgCommandsImp.h DlgCustomizeImp.h DlgCustomizeSpaceball.h - DlgCustomizeSpNavSettings.h + DlgCustomizeSpNavSettings.h DlgDisplayPropertiesImp.h DlgEditorImp.h DlgGeneralImp.h @@ -191,7 +191,7 @@ SET(Gui_UIC_SRCS DlgAuthorization.ui DlgChooseIcon.ui DlgCommands.ui - DlgCustomizeSpNavSettings.ui + DlgCustomizeSpNavSettings.ui DlgDisplayProperties.ui DlgEditor.ui DlgGeneral.ui @@ -340,7 +340,7 @@ SET(Dialog_Customize_CPP_SRCS DlgCommandsImp.cpp DlgCustomizeImp.cpp DlgCustomizeSpaceball.cpp - DlgCustomizeSpNavSettings.cpp + DlgCustomizeSpNavSettings.cpp DlgKeyboardImp.cpp DlgToolbarsImp.cpp ) @@ -349,7 +349,7 @@ SET(Dialog_Customize_HPP_SRCS DlgCommandsImp.h DlgCustomizeImp.h DlgCustomizeSpaceball.h - DlgCustomizeSpNavSettings.h + DlgCustomizeSpNavSettings.h DlgKeyboardImp.h DlgToolbarsImp.h ) @@ -359,7 +359,7 @@ SET(Dialog_Customize_SRCS DlgActions.ui DlgChooseIcon.ui DlgCommands.ui - DlgCustomizeSpNavSettings.ui + DlgCustomizeSpNavSettings.ui DlgKeyboard.ui DlgToolbars.ui ) From bdaf97625b6a64c7b241e755834685305f42ba52 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Fri, 31 Aug 2012 11:00:40 -0300 Subject: [PATCH 78/98] 0000820: Draft dimension dots --- src/Mod/Arch/importIFC.py | 3 ++- src/Mod/Draft/Draft.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Arch/importIFC.py b/src/Mod/Arch/importIFC.py index f99a3df30..19b22a579 100644 --- a/src/Mod/Arch/importIFC.py +++ b/src/Mod/Arch/importIFC.py @@ -420,7 +420,8 @@ def getShape(obj): m[1], m[4], m[7], m[10], m[2], m[5], m[8], m[11], 0, 0, 0, 1) - sh.Placement = FreeCAD.Placement(mat) + sh.Placement = FreeCAD.Placement(mat) + if DEBUG: print "getting Shape from ",obj return sh def getWire(entity,placement=None): diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 27320c4a3..cc4d05e01 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1245,6 +1245,7 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct svg = "" linewidth = linewidth/scale fontsize = (fontsize/scale)/2 + pointratio = 4 # the number of times the dots are smaller than the font size plane = None if direction: if isinstance(direction,FreeCAD.Vector): @@ -1388,13 +1389,13 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct svg += 'freecad:dimpoint="'+str(p2.x)+' '+str(p2.y)+'"' svg += '/>\n' svg += ' Date: Fri, 31 Aug 2012 16:34:55 -0300 Subject: [PATCH 79/98] Reworked pocket and groove icons --- .../Gui/Resources/icons/PartDesign_Groove.svg | 314 +++++++++++++----- .../Gui/Resources/icons/PartDesign_Pocket.svg | 37 ++- 2 files changed, 257 insertions(+), 94 deletions(-) mode change 100644 => 100755 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg mode change 100644 => 100755 src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg old mode 100644 new mode 100755 index 28e52af97..e4aee8ca0 --- a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Groove.svg @@ -15,7 +15,7 @@ id="svg2901" sodipodi:version="0.32" inkscape:version="0.48.3.1 r9886" - sodipodi:docname="PartDesign_Groove.svg" + sodipodi:docname="PartDesign_Groove_alt.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.1" inkscape:export-filename="/home/yorik/PartDesign_Groove.png" @@ -23,6 +23,17 @@ inkscape:export-ydpi="90"> + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inkscape:object-paths="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="true" /> @@ -202,7 +371,7 @@ image/svg+xml - + @@ -210,56 +379,41 @@ id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer"> - - - - - - - - - - + + + + + + diff --git a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg old mode 100644 new mode 100755 index 17460ccbb..8000798e5 --- a/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg +++ b/src/Mod/PartDesign/Gui/Resources/icons/PartDesign_Pocket.svg @@ -134,11 +134,11 @@ @@ -486,6 +486,15 @@ id="linearGradient3698-9" xlink:href="#linearGradient3669-0" inkscape:collect="always" /> + @@ -514,7 +523,7 @@ image/svg+xml - + @@ -542,16 +551,16 @@ id="path3679" sodipodi:nodetypes="czc" /> - + From d3f08057e1f6a7b0e3a907a3f83e0efeaf6e96b1 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 1 Sep 2012 17:08:04 -0300 Subject: [PATCH 80/98] Draft: Small fix to Point tool --- src/Mod/Draft/DraftTools.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 916632716..7f0b9ece8 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -3752,6 +3752,9 @@ class Point: def Activated(self): self.view = Draft.get3DView() self.stack = [] + rot = self.view.getCameraNode().getField("orientation").getValue() + upv = Vector(rot.multVec(coin.SbVec3f(0,1,0)).getValue()) + plane.setup(DraftVecUtils.neg(self.view.getViewDirection()), Vector(0,0,0), upv) self.point = None # adding 2 callback functions self.callbackClick = self.view.addEventCallbackPivy(coin.SoMouseButtonEvent.getClassTypeId(),self.click) @@ -3772,7 +3775,7 @@ class Point: self.view.removeEventCallbackPivy(coin.SoMouseButtonEvent.getClassTypeId(),self.callbackClick) self.view.removeEventCallbackPivy(coin.SoLocation2Event.getClassTypeId(),self.callbackMove) FreeCAD.ActiveDocument.openTransaction("Create Point") - Draft.makePoint((self.stack[0][0]),(self.stack[0][1]),0.0) + Draft.makePoint((self.stack[0][0]),(self.stack[0][1]),self.stack[0][2]) FreeCAD.ActiveDocument.commitTransaction() FreeCADGui.Snapper.off() From 19b5a06727d9d71bff945592ddf1a2a64789521d Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 3 Sep 2012 11:05:50 -0300 Subject: [PATCH 81/98] Draft: small bugfix in shape2Dview object --- src/Mod/Draft/Draft.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index cc4d05e01..738552cf6 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1538,7 +1538,7 @@ def makeShape2DView(baseobj,projectionVector=None): obj = FreeCAD.ActiveDocument.addObject("Part::Part2DObjectPython","Shape2DView") _Shape2DView(obj) if gui: - _ViewProviderDraft(obj.ViewObject) + _ViewProviderDraftAlt(obj.ViewObject) obj.Base = baseobj if projectionVector: obj.Projection = projectionVector @@ -2732,7 +2732,7 @@ class _Shape2DView: "The base object this 2D view must represent") obj.addProperty("App::PropertyVector","Projection","Base", "The projection vector of this object") - obj.Projection = Vector(0,0,-1) + obj.Projection = Vector(0,0,1) obj.Proxy = self self.Type = "2DShapeView" @@ -2979,29 +2979,33 @@ class _Clone: if not DraftGeomUtils.isNull(pl): obj.Placement = pl -class _ViewProviderDraftPart(_ViewProviderDraft): - "a view provider that displays a Part icon instead of a Draft icon" +class _ViewProviderDraftAlt(_ViewProviderDraft): + "a view provider that doesn't swallow its base object" def __init__(self,vobj): _ViewProviderDraft.__init__(self,vobj) + def claimChildren(self): + return [] + +class _ViewProviderDraftPart(_ViewProviderDraftAlt): + "a view provider that displays a Part icon instead of a Draft icon" + + def __init__(self,vobj): + _ViewProviderDraftAlt.__init__(self,vobj) + def getIcon(self): return ":/icons/Tree_Part.svg" - def claimChildren(self): - return [] - -class _ViewProviderClone(_ViewProviderDraft): +class _ViewProviderClone(_ViewProviderDraftAlt): "a view provider that displays a Part icon instead of a Draft icon" def __init__(self,vobj): - _ViewProviderDraft.__init__(self,vobj) + _ViewProviderDraftAlt.__init__(self,vobj) def getIcon(self): return ":/icons/Draft_Clone.svg" - def claimChildren(self): - return [] if not hasattr(FreeCADGui,"Snapper"): import DraftSnap From b827d9eb31cdac260cad5098cd4ab79867917720 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Mon, 3 Sep 2012 18:42:00 -0300 Subject: [PATCH 82/98] Draft: small improvement do Shape2DView object --- src/Mod/Draft/Draft.py | 73 ++++++++++++++++++++++++++++--------- src/Mod/Draft/DraftTools.py | 20 ++++++++-- 2 files changed, 71 insertions(+), 22 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 738552cf6..1e6b54dc7 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1530,10 +1530,11 @@ def makeDrawingView(obj,page,lwmod=None,tmod=None): if tmod: viewobj.TextModifier = tmod return viewobj -def makeShape2DView(baseobj,projectionVector=None): +def makeShape2DView(baseobj,projectionVector=None,facenumbers=[]): ''' - makeShape2DView(object,[projectionVector]) - adds a 2D shape to the document, which is a - 2D projection of the given object. A specific projection vector can also be given. + makeShape2DView(object,[projectionVector,facenumbers]) - adds a 2D shape to the document, which is a + 2D projection of the given object. A specific projection vector can also be given. You can also + specify a list of face numbers to be considered in individual faces mode. ''' obj = FreeCAD.ActiveDocument.addObject("Part::Part2DObjectPython","Shape2DView") _Shape2DView(obj) @@ -1542,6 +1543,8 @@ def makeShape2DView(baseobj,projectionVector=None): obj.Base = baseobj if projectionVector: obj.Projection = projectionVector + if facenumbers: + obj.FaceNumbers = facenumbers select(obj) return obj @@ -2732,15 +2735,20 @@ class _Shape2DView: "The base object this 2D view must represent") obj.addProperty("App::PropertyVector","Projection","Base", "The projection vector of this object") + obj.addProperty("App::PropertyEnumeration","ProjectionMode","Base", + "The way the viewed object must be projected") + obj.addProperty("App::PropertyIntegerList","FaceNumbers","Base", + "The indices of the faces to be projected in Individual Faces mode") obj.Projection = Vector(0,0,1) obj.Proxy = self + obj.ProjectionMode = ["Solid","Individual Faces","Cutlines"] self.Type = "2DShapeView" def execute(self,obj): self.createGeometry(obj) def onChanged(self,obj,prop): - if prop in ["Projection","Base"]: + if prop in ["Projection","Base","ProjectionMode","FaceNumbers"]: self.createGeometry(obj) def createGeometry(self,obj): @@ -2758,22 +2766,51 @@ class _Shape2DView: shapes.extend(o.Shape.Solids) cutp,cutv,iv =Arch.getCutVolume(obj.Base.Shape,shapes) cuts = [] - for sh in shapes: - if sh.Volume < 0: - sh.reverse() - c = sh.cut(cutv) - cuts.extend(c.Solids) - comp = Part.makeCompound(cuts) - opl = FreeCAD.Placement(obj.Base.Placement) - proj = opl.Rotation.multVec(FreeCAD.Vector(0,0,1)) - [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(comp,proj) - if visibleG0: - obj.Shape = visibleG0 + if obj.ProjectionMode == "Solid": + for sh in shapes: + if sh.Volume < 0: + sh.reverse() + c = sh.cut(cutv) + cuts.extend(c.Solids) + comp = Part.makeCompound(cuts) + opl = FreeCAD.Placement(obj.Base.Placement) + proj = opl.Rotation.multVec(FreeCAD.Vector(0,0,1)) + [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(comp,proj) + print visibleG0 + if visibleG0: + obj.Shape = visibleG0 + elif obj.ProjectionMode == "Cutlines": + for sh in shapes: + if sh.Volume < 0: + sh.reverse() + c = sh.section(cutp) + cuts.append(c) + comp = Part.makeCompound(cuts) + opl = FreeCAD.Placement(obj.Base.Placement) + comp.Placement = opl.inverse() + if comp: + obj.Shape = comp + elif obj.Base.isDerivedFrom("Part::Feature"): if not DraftVecUtils.isNull(obj.Projection): - [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(obj.Base.Shape,obj.Projection) - if visibleG0: - obj.Shape = visibleG0 + if obj.ProjectionMode == "Solid": + [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(obj.Base.Shape,obj.Projection) + if visibleG0: + obj.Shape = visibleG0 + elif obj.ProjectionMode == "Individual Faces": + import Part + if obj.FaceNumbers: + faces = [] + for i in obj.FaceNumbers: + if len(obj.Base.Shape.Faces) > i: + faces.append(obj.Base.Shape.Faces[i]) + views = [] + for f in faces: + [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(f,obj.Projection) + if visibleG0: + views.append(visibleG0) + if views: + obj.Shape = Part.makeCompound(views) if not DraftGeomUtils.isNull(pl): obj.Placement = pl diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 7f0b9ece8..bfd4a5478 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -3658,15 +3658,27 @@ class Shape2DView(): 'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_Shape2DView", "Creates Shape 2D views of selected objects")} def IsActive(self): - if Draft.getSelection(): + if FreeCADGui.Selection.getSelection(): return True else: return False def Activated(self): - sellist = [] - for ob in Draft.getSelection(): - Draft.makeShape2DView(ob) + faces = [] + objs = [] + sel = FreeCADGui.Selection.getSelectionEx() + for s in sel: + objs.append(s.Object) + for e in s.SubElementNames: + if "Face" in e: + faces.append(int(e[4:])-1) + print objs,faces + if len(objs) == 1: + if faces: + Draft.makeShape2DView(objs[0],facenumbers=faces) + return + for o in objs: + Draft.makeShape2DView(o) class Draft2Sketch(): "The Draft2Sketch FreeCAD command definition" From 43dd774840029487854bd2d95c8bdb413e978122 Mon Sep 17 00:00:00 2001 From: logari81 Date: Tue, 4 Sep 2012 14:08:03 +0200 Subject: [PATCH 83/98] Sketcher: fix memory leak in MoveConstraint --- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 29 ++++++++++----------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 5106f3c9a..16301c0d9 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -874,17 +874,18 @@ void ViewProviderSketch::moveConstraint(int constNum, const Base::Vector2D &toPo const std::vector &constrlist = getSketchObject()->Constraints.getValues(); Constraint *Constr = constrlist[constNum]; + int intGeoCount = getSketchObject()->getHighestCurveIndex() + 1; + int extGeoCount = getSketchObject()->getExternalGeometryCount(); + // with memory allocation + const std::vector geomlist = edit->ActSketch.extractGeometry(true, true); + + assert(int(geomlist.size()) == extGeoCount + intGeoCount); + assert((Constr->First >= -extGeoCount && Constr->First < intGeoCount) + || Constr->First != Constraint::GeoUndef); + if (Constr->Type == Distance || Constr->Type == DistanceX || Constr->Type == DistanceY || Constr->Type == Radius) { - int intGeoCount = getSketchObject()->getHighestCurveIndex() + 1; - int extGeoCount = getSketchObject()->getExternalGeometryCount(); - const std::vector geomlist = edit->ActSketch.extractGeometry(true, true); - - assert(int(geomlist.size()) == extGeoCount + intGeoCount); - assert((Constr->First >= -extGeoCount && Constr->First < intGeoCount) - || Constr->First != Constraint::GeoUndef); - Base::Vector3d p1(0.,0.,0.), p2(0.,0.,0.); if (Constr->SecondPos != Sketcher::none) { // point to point distance p1 = edit->ActSketch.getPoint(Constr->First, Constr->FirstPos); @@ -954,13 +955,6 @@ void ViewProviderSketch::moveConstraint(int constNum, const Base::Vector2D &toPo } } else if (Constr->Type == Angle) { - int intGeoCount = getSketchObject()->getHighestCurveIndex() + 1; - int extGeoCount = getSketchObject()->getExternalGeometryCount(); - const std::vector geomlist = edit->ActSketch.extractGeometry(true, true); - - assert(int(geomlist.size()) == extGeoCount + intGeoCount); - assert((Constr->First >= -extGeoCount && Constr->First < intGeoCount) - || Constr->First != Constraint::GeoUndef); Base::Vector3d p0(0.,0.,0.); if (Constr->Second != Constraint::GeoUndef) { // line to line angle @@ -1002,6 +996,11 @@ void ViewProviderSketch::moveConstraint(int constNum, const Base::Vector2D &toPo Base::Vector3d vec = Base::Vector3d(toPos.fX, toPos.fY, 0) - p0; Constr->LabelDistance = vec.Length()/2; } + + // delete the cloned objects + for (std::vector::const_iterator it=geomlist.begin(); it != geomlist.end(); ++it) + if (*it) delete *it; + draw(true); } From e7ca7631fec82e481c94190d4474d757d04edeb5 Mon Sep 17 00:00:00 2001 From: logari81 Date: Tue, 4 Sep 2012 14:14:03 +0200 Subject: [PATCH 84/98] Sketcher: implement box selection (based on mrlukeparry's work) --- src/Gui/ViewProvider.cpp | 46 ++-- src/Gui/ViewProvider.h | 15 +- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 281 ++++++++++++++++++-- src/Mod/Sketcher/Gui/ViewProviderSketch.h | 19 +- 4 files changed, 311 insertions(+), 50 deletions(-) diff --git a/src/Gui/ViewProvider.cpp b/src/Gui/ViewProvider.cpp index a65d3d2d9..b670ef4c6 100644 --- a/src/Gui/ViewProvider.cpp +++ b/src/Gui/ViewProvider.cpp @@ -142,29 +142,10 @@ void ViewProvider::setUpdatesEnabled (bool enable) void ViewProvider::eventCallback(void * ud, SoEventCallback * node) { const SoEvent * ev = node->getEvent(); - Gui::View3DInventorViewer* view = reinterpret_cast(node->getUserData()); + Gui::View3DInventorViewer* viewer = reinterpret_cast(node->getUserData()); ViewProvider *self = reinterpret_cast(ud); assert(self); - // Calculate 3d point to the mouse position - SbVec3f point, norm; - point = view->getPointOnScreen(ev->getPosition()); - norm = view->getViewDirection(); - - // for convenience make a pick ray action to get the (potentially) picked entity in the provider - //SoPickedPoint* Point = self->getPointOnRay(point,norm,*view); - SoSeparator* root = new SoSeparator; - root->ref(); - root->addChild(view->getCamera()); - root->addChild(self->pcRoot); - - SoRayPickAction rp(view->getViewportRegion()); - rp.setPoint(ev->getPosition()); - rp.apply(root); - root->unref(); - - SoPickedPoint* pp = rp.getPickedPoint(); - try { // Keyboard events if (ev->getTypeId().isDerivedFrom(SoKeyboardEvent::getClassTypeId())) { @@ -192,12 +173,12 @@ void ViewProvider::eventCallback(void * ud, SoEventCallback * node) const SbBool press = event->getState() == SoButtonEvent::DOWN ? TRUE : FALSE; // call the virtual method - if (self->mouseButtonPressed(button,press,point,norm,pp)) + if (self->mouseButtonPressed(button,press,ev->getPosition(),viewer)) node->setHandled(); } // Mouse Movement handling else if (ev->getTypeId().isDerivedFrom(SoLocation2Event::getClassTypeId())) { - if (self->mouseMove(point,norm,pp)) + if (self->mouseMove(ev->getPosition(),viewer)) node->setHandled(); } } @@ -352,11 +333,28 @@ PyObject* ViewProvider::getPyObject() return pyViewObject; } -SoPickedPoint* ViewProvider::getPointOnRay(const SbVec3f& pos,const SbVec3f& dir, const View3DInventorViewer& viewer) const +SoPickedPoint* ViewProvider::getPointOnRay(const SbVec2s& pos, const View3DInventorViewer* viewer) const +{ + // for convenience make a pick ray action to get the (potentially) picked entity in the provider + SoSeparator* root = new SoSeparator; + root->ref(); + root->addChild(viewer->getCamera()); + root->addChild(pcRoot); + + SoRayPickAction rp(viewer->getViewportRegion()); + rp.setPoint(pos); + rp.apply(root); + root->unref(); + + SoPickedPoint* pick = rp.getPickedPoint(); + return (pick ? new SoPickedPoint(*pick) : 0); +} + +SoPickedPoint* ViewProvider::getPointOnRay(const SbVec3f& pos,const SbVec3f& dir, const View3DInventorViewer* viewer) const { // Note: There seems to be a bug with setRay() which causes SoRayPickAction // to fail to get intersections between the ray and a line - SoRayPickAction rp(viewer.getViewportRegion()); + SoRayPickAction rp(viewer->getViewportRegion()); rp.setRay(pos,dir); rp.apply(pcRoot); diff --git a/src/Gui/ViewProvider.h b/src/Gui/ViewProvider.h index 7a22c7a89..0aeeee4e3 100644 --- a/src/Gui/ViewProvider.h +++ b/src/Gui/ViewProvider.h @@ -30,6 +30,7 @@ #include #include +class SbVec2s; class SbVec3f; class SoNode; class SoPath; @@ -220,11 +221,12 @@ public: /// is called by the tree if the user double click on the object virtual bool doubleClicked(void) { return false; } /// is called when the provider is in edit and the mouse is moved - virtual bool mouseMove(const SbVec3f &pos, const SbVec3f &norm, const SoPickedPoint* pp) + virtual bool mouseMove(const SbVec2s &cursorPos, + View3DInventorViewer* viewer) { return false; } /// is called when the Provider is in edit and the mouse is clicked - virtual bool mouseButtonPressed(int Button, bool pressed, const SbVec3f &pos, - const SbVec3f &norm, const SoPickedPoint* pp) + virtual bool mouseButtonPressed(int button, bool pressed, const SbVec2s &cursorPos, + const View3DInventorViewer* viewer) { return false; } /// set up the context-menu with the supported edit modes virtual void setupContextMenu(QMenu*, QObject*, const char*) {} @@ -264,8 +266,11 @@ protected: void setDefaultMode(int); //@} /// Helper method to get picked entities while editing - SoPickedPoint* getPointOnRay(const SbVec3f& pos,const SbVec3f& dir, - const View3DInventorViewer& viewer) const; + SoPickedPoint* getPointOnRay(const SbVec2s& pos, + const View3DInventorViewer* viewer) const; + /// Helper method to get picked entities while editing + SoPickedPoint* getPointOnRay(const SbVec3f& pos, const SbVec3f& dir, + const View3DInventorViewer* viewer) const; /// Reimplemented from subclass void onChanged(const App::Property* prop); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 16301c0d9..5511166a8 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -115,6 +116,7 @@ SbColor ViewProviderSketch::SelectColor (0.11f,0.68f,0.11f); // #1CAD // Variables for holding previous click SbTime ViewProviderSketch::prvClickTime; SbVec3f ViewProviderSketch::prvClickPoint; +SbVec2s ViewProviderSketch::prvCursorPos; //************************************************************************** // Edit data structure @@ -182,8 +184,8 @@ struct EditData { SoCoordinate3 *RootCrossCoordinate; SoCoordinate3 *EditCurvesCoordinate; SoLineSet *CurveSet; - SoLineSet *EditCurveSet; SoLineSet *RootCrossSet; + SoLineSet *EditCurveSet; SoMarkerSet *PointSet; SoText2 *textX; @@ -348,11 +350,17 @@ void ViewProviderSketch::getCoordsOnSketchPlane(double &u, double &v,const SbVec v = S.y; } -bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVec3f &point, - const SbVec3f &normal, const SoPickedPoint *pp) +bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVec2s &cursorPos, + const Gui::View3DInventorViewer *viewer) { assert(edit); + // Calculate 3d point to the mouse position + SbVec3f point = viewer->getPointOnScreen(cursorPos); + SbVec3f normal = viewer->getViewDirection(); + + SoPickedPoint *pp = this->getPointOnRay(cursorPos, viewer); + // Radius maximum to allow double click event const int dblClickRadius = 5; @@ -375,11 +383,6 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe switch (Mode) { case STATUS_NONE:{ bool done=false; - // Double click events variables - SbTime tmp = (SbTime::getTimeOfDay() - prvClickTime); - float dci = (float) QApplication::doubleClickInterval()/1000.0f; - float length = (point - prvClickPoint).length(); - if (edit->PreselectPoint != -1) { //Base::Console().Log("start dragging, point:%d\n",this->DragPoint); Mode = STATUS_SELECT_Point; @@ -398,7 +401,13 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe done = true; } - if (done && length < dblClickRadius && tmp.getValue() < dci) { + // Double click events variables + float dci = (float) QApplication::doubleClickInterval()/1000.0f; + + if (done && + (point - prvClickPoint).length() < dblClickRadius && + (SbTime::getTimeOfDay() - prvClickTime).getValue() < dci) { + // Double Click Event Occured editDoubleClicked(); // Reset Double Click Static Variables @@ -409,6 +418,9 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe } else { prvClickTime = SbTime::getTimeOfDay(); prvClickPoint = point; + prvCursorPos = cursorPos; + if (!done) + Mode = STATUS_SKETCH_StartRubberBand; } return done; @@ -418,7 +430,7 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe default: return false; } - } else { + } else { // released // Do things depending on the mode of the user interaction switch (Mode) { case STATUS_SELECT_Point: @@ -582,6 +594,16 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe } Mode = STATUS_NONE; return true; + case STATUS_SKETCH_StartRubberBand: // a single click happened, so clear selection + Mode = STATUS_NONE; + Gui::Selection().clearSelection(); + return true; + case STATUS_SKETCH_UseRubberBand: + doBoxSelection(prvCursorPos, cursorPos, viewer); + // a redraw is required in order to clear the rubberband + draw(true); + Mode = STATUS_NONE; + return true; case STATUS_SKETCH_UseHandler: return edit->sketchHandler->releaseButton(Base::Vector2D(x,y)); case STATUS_NONE: @@ -740,12 +762,16 @@ void ViewProviderSketch::editDoubleClicked(void) } } -bool ViewProviderSketch::mouseMove(const SbVec3f &point, const SbVec3f &normal, const SoPickedPoint *pp) +bool ViewProviderSketch::mouseMove(const SbVec2s &cursorPos, Gui::View3DInventorViewer *viewer) { if (!edit) return false; assert(edit); + // Calculate 3d point to the mouse position + SbVec3f point = viewer->getPointOnScreen(cursorPos); + SbVec3f normal = viewer->getViewDirection(); + double x,y; getCoordsOnSketchPlane(x,y,point,normal); snapToGrid(x, y); @@ -753,6 +779,9 @@ bool ViewProviderSketch::mouseMove(const SbVec3f &point, const SbVec3f &normal, bool preselectChanged; if (Mode!=STATUS_SKETCH_DragPoint && Mode!=STATUS_SKETCH_DragCurve && Mode!=STATUS_SKETCH_DragConstraint) { + + SoPickedPoint *pp = this->getPointOnRay(cursorPos, viewer); + int PtIndex,GeoIndex,ConstrIndex,CrossIndex; preselectChanged = detectPreselection(pp,PtIndex,GeoIndex,ConstrIndex,CrossIndex); } @@ -858,6 +887,19 @@ bool ViewProviderSketch::mouseMove(const SbVec3f &point, const SbVec3f &normal, this->updateColor(); } return true; + case STATUS_SKETCH_StartRubberBand: { + Mode = STATUS_SKETCH_UseRubberBand; + return true; + } + case STATUS_SKETCH_UseRubberBand: { + // a redraw is required in order to clear any previous rubberband + draw(true); + viewer->drawRect(prvCursorPos.getValue()[0], + viewer->getGLWidget()->height() - prvCursorPos.getValue()[1], + cursorPos.getValue()[0], + viewer->getGLWidget()->height() - cursorPos.getValue()[1]); + return true; + } default: return false; } @@ -1362,6 +1404,214 @@ bool ViewProviderSketch::detectPreselection(const SoPickedPoint *Point, int &PtI return false; } +void ViewProviderSketch::doBoxSelection(const SbVec2s &startPos, const SbVec2s &endPos, + const Gui::View3DInventorViewer *viewer) +{ + std::vector corners0; + corners0.push_back(startPos); + corners0.push_back(endPos); + std::vector corners = viewer->getGLPolygon(corners0); + + // all calculations with polygon and proj are in dimensionless [0 1] screen coordinates + Base::Polygon2D polygon; + polygon.Add(Base::Vector2D(corners[0].getValue()[0], corners[0].getValue()[1])); + polygon.Add(Base::Vector2D(corners[0].getValue()[0], corners[1].getValue()[1])); + polygon.Add(Base::Vector2D(corners[1].getValue()[0], corners[1].getValue()[1])); + polygon.Add(Base::Vector2D(corners[1].getValue()[0], corners[0].getValue()[1])); + + Gui::ViewVolumeProjection proj(viewer->getCamera()->getViewVolume()); + + App::Document* doc = App::GetApplication().getActiveDocument(); + Sketcher::SketchObject *sketchObject = NULL; + if (doc) + sketchObject = dynamic_cast(doc->getActiveObject()); + if (!sketchObject) + return; + + Base::Placement Plm = sketchObject->Placement.getValue(); + + int intGeoCount = sketchObject->getHighestCurveIndex() + 1; + int extGeoCount = sketchObject->getExternalGeometryCount(); + + const std::vector geomlist = sketchObject->getCompleteGeometry(); // without memory allocation + assert(int(geomlist.size()) == extGeoCount + intGeoCount); + assert(int(geomlist.size()) >= 2); + + Base::Vector3d pnt0, pnt1, pnt2, pnt; + int VertexId = -1; // the loop below should be in sync with the main loop in ViewProviderSketch::draw + // so that the vertex indices are calculated correctly + int GeoId = 0; + for (std::vector::const_iterator it = geomlist.begin(); it != geomlist.end()-2; ++it, ++GeoId) { + + if (GeoId >= intGeoCount) + GeoId = -extGeoCount; + + if ((*it)->getTypeId() == Part::GeomPoint::getClassTypeId()) { + // ----- Check if single point lies inside box selection -----/ + const Part::GeomPoint *point = dynamic_cast(*it); + Plm.multVec(point->getPoint(), pnt0); + pnt0 = proj(pnt0); + VertexId += 1; + + if (polygon.Contains(Base::Vector2D(pnt0.x, pnt0.y))) { + std::stringstream ss; + ss << "Vertex" << VertexId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + } else if ((*it)->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { + // ----- Check if line segment lies inside box selection -----/ + const Part::GeomLineSegment *lineSeg = dynamic_cast(*it); + Plm.multVec(lineSeg->getStartPoint(), pnt1); + Plm.multVec(lineSeg->getEndPoint(), pnt2); + pnt1 = proj(pnt1); + pnt2 = proj(pnt2); + VertexId += 2; + + bool pnt1Inside = polygon.Contains(Base::Vector2D(pnt1.x, pnt1.y)); + bool pnt2Inside = polygon.Contains(Base::Vector2D(pnt2.x, pnt2.y)); + if (pnt1Inside) { + std::stringstream ss; + ss << "Vertex" << VertexId - 1; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + if (pnt2Inside) { + std::stringstream ss; + ss << "Vertex" << VertexId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + if (pnt1Inside && pnt2Inside) { + std::stringstream ss; + ss << "Edge" << GeoId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + } else if ((*it)->getTypeId() == Part::GeomCircle::getClassTypeId()) { + // ----- Check if circle lies inside box selection -----/ + const Part::GeomCircle *circle = dynamic_cast(*it); + pnt0 = circle->getCenter(); + VertexId += 1; + + Plm.multVec(pnt0, pnt0); + pnt0 = proj(pnt0); + + if (polygon.Contains(Base::Vector2D(pnt0.x, pnt0.y))) { + std::stringstream ss; + ss << "Vertex" << VertexId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + + int countSegments = 12; + float segment = float(2 * M_PI) / countSegments; + + // circumscribed polygon radius + float radius = float(circle->getRadius()) / cos(segment/2); + + bool bpolyInside = true; + pnt0 = circle->getCenter(); + float angle = 0.f; + for (int i = 0; i < countSegments; ++i, angle += segment) { + pnt = Base::Vector3d(pnt0.x + radius * cos(angle), + pnt0.y + radius * sin(angle), + 0.f); + Plm.multVec(pnt, pnt); + pnt = proj(pnt); + if (!polygon.Contains(Base::Vector2D(pnt.x, pnt.y))) { + bpolyInside = false; + break; + } + } + + if (bpolyInside) { + ss.clear(); + ss.str(""); + ss << "Edge" << GeoId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(),ss.str().c_str()); + } + } + + } else if ((*it)->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { + // Check if arc lies inside box selection + const Part::GeomArcOfCircle *aoc = dynamic_cast(*it); + + pnt0 = aoc->getCenter(); + pnt1 = aoc->getStartPoint(); + pnt2 = aoc->getEndPoint(); + VertexId += 3; + + Plm.multVec(pnt0, pnt0); + Plm.multVec(pnt1, pnt1); + Plm.multVec(pnt2, pnt2); + pnt0 = proj(pnt0); + pnt1 = proj(pnt1); + pnt2 = proj(pnt2); + + if (polygon.Contains(Base::Vector2D(pnt0.x, pnt0.y))) { + std::stringstream ss; + ss << "Vertex" << VertexId - 2; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + bool pnt1Inside = polygon.Contains(Base::Vector2D(pnt1.x, pnt1.y)); + if (pnt1Inside) { + std::stringstream ss; + ss << "Vertex" << VertexId - 1; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + bool pnt2Inside = polygon.Contains(Base::Vector2D(pnt2.x, pnt2.y)); + if (pnt2Inside) { + std::stringstream ss; + ss << "Vertex" << VertexId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + + if (pnt1Inside && pnt2Inside) { + double startangle, endangle; + aoc->getRange(startangle, endangle); + if (startangle > endangle) // if arc is reversed + std::swap(startangle, endangle); + + double range = endangle-startangle; + int countSegments = std::max(2, int(12.0 * range / (2 * M_PI))); + float segment = float(range) / countSegments; + + // circumscribed polygon radius + float radius = float(aoc->getRadius()) / cos(segment/2); + + bool bpolyInside = true; + pnt0 = aoc->getCenter(); + float angle = float(startangle) + segment/2; + for (int i = 0; i < countSegments; ++i, angle += segment) { + pnt = Base::Vector3d(pnt0.x + radius * cos(angle), + pnt0.y + radius * sin(angle), + 0.f); + Plm.multVec(pnt, pnt); + pnt = proj(pnt); + if (!polygon.Contains(Base::Vector2D(pnt.x, pnt.y))) { + bpolyInside = false; + break; + } + } + + if (bpolyInside) { + std::stringstream ss; + ss << "Edge" << GeoId; + Gui::Selection().addSelection(doc->getName(), sketchObject->getNameInDocument(), ss.str().c_str()); + } + } + + } else if ((*it)->getTypeId() == Part::GeomBSplineCurve::getClassTypeId()) { + const Part::GeomBSplineCurve *spline = dynamic_cast(*it); + std::vector poles = spline->getPoles(); + VertexId += poles.size(); + // TODO + } + } + +} + void ViewProviderSketch::updateColor(void) { assert(edit); @@ -2543,7 +2793,7 @@ bool ViewProviderSketch::setEdit(int ModNum) // clear the selection (convenience) Gui::Selection().clearSelection(); - // create the container for the addtitional edit data + // create the container for the additional edit data assert(!edit); edit = new EditData(); @@ -2740,9 +2990,9 @@ void ViewProviderSketch::createEditInventorNodes(void) cursorTextColor.setPackedValue((uint32_t)hGrp->GetUnsigned("CursorTextColor", cursorTextColor.getPackedValue()), transparency); // stuff for the edit coordinates ++++++++++++++++++++++++++++++++++++++ - SoMaterial *EditMaterials = new SoMaterial; - EditMaterials->diffuseColor = cursorTextColor; - edit->EditRoot->addChild(EditMaterials); + SoMaterial *CoordTextMaterials = new SoMaterial; + CoordTextMaterials->diffuseColor = cursorTextColor; + edit->EditRoot->addChild(CoordTextMaterials); SoSeparator *Coordsep = new SoSeparator(); // no caching for fluctuand data structures @@ -2759,6 +3009,7 @@ void ViewProviderSketch::createEditInventorNodes(void) edit->textX->justification = SoText2::LEFT; edit->textX->string = ""; Coordsep->addChild(edit->textX); + edit->EditRoot->addChild(Coordsep); // group node for the Constraint visual +++++++++++++++++++++++++++++++++++ diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 4a850ae3c..d281ce597 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -112,7 +112,9 @@ public: STATUS_SKETCH_DragPoint, /**< enum value while dragging a point. */ STATUS_SKETCH_DragCurve, /**< enum value while dragging a curve. */ STATUS_SKETCH_DragConstraint, /**< enum value while dragging a compatible constraint. */ - STATUS_SKETCH_UseHandler /**< enum value a DrawSketchHandler is in control. */ + STATUS_SKETCH_UseHandler, /**< enum value a DrawSketchHandler is in control. */ + STATUS_SKETCH_StartRubberBand, /**< enum value for initiating a rubber band selection */ + STATUS_SKETCH_UseRubberBand /**< enum value when making a rubber band selection *//**< enum value a DrawSketchHandler is in control. */ }; /// is called by GuiCommands to set the drawing mode void setSketchMode(SketchMode mode) {Mode = mode;} @@ -124,10 +126,14 @@ public: //@{ /// give the coordinates of a line on the sketch plane in sketcher (2D) coordinates void getCoordsOnSketchPlane(double &u, double &v,const SbVec3f &point, const SbVec3f &normal); - /// helper to detect preselection - //bool handlePreselection(const SoPickedPoint *pp); + /// helper to detect preselection bool detectPreselection(const SoPickedPoint *Point, int &PtIndex,int &GeoIndex, int &ConstrIndex, int &CrossIndex); + + /// box selection method + void doBoxSelection(const SbVec2s &startPos, const SbVec2s &endPos, + const Gui::View3DInventorViewer *viewer); + /// helper change the color of the sketch according to selection and solver status void updateColor(void); /// get the pointer to the sketch document object @@ -161,12 +167,12 @@ public: /// is called by the tree if the user double click on the object virtual bool doubleClicked(void); /// is called when the Provider is in edit and the mouse is moved - virtual bool mouseMove(const SbVec3f &pNear, const SbVec3f &pFar, const SoPickedPoint *pp); + virtual bool mouseMove(const SbVec2s &pos, Gui::View3DInventorViewer *viewer); /// is called when the Provider is in edit and a key event ocours. Only ESC ends edit. virtual bool keyPressed(bool pressed, int key); /// is called when the Provider is in edit and the mouse is clicked - virtual bool mouseButtonPressed(int Button, bool pressed, const SbVec3f &point, - const SbVec3f &normal, const SoPickedPoint *pp); + virtual bool mouseButtonPressed(int Button, bool pressed, const SbVec2s &pos, + const Gui::View3DInventorViewer *viewer); //@} friend class DrawSketchHandler; @@ -229,6 +235,7 @@ protected: static SbTime prvClickTime; static SbVec3f prvClickPoint; + static SbVec2s prvCursorPos; float zCross; float zLines; From f6624a6d7fa8aa3034fd0d397918630228596ca6 Mon Sep 17 00:00:00 2001 From: logari81 Date: Tue, 4 Sep 2012 14:40:05 +0200 Subject: [PATCH 85/98] Sketcher: fix an issue when a polyline is started at the start point of an existing line segment --- src/Mod/Sketcher/Gui/CommandCreateGeo.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp index 0a0184711..ade7d2a5f 100644 --- a/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp +++ b/src/Mod/Sketcher/Gui/CommandCreateGeo.cpp @@ -740,7 +740,7 @@ public: sugConstr1[i].PosId == Sketcher::end)) { previousCurve = sugConstr1[i].GeoId; previousPosId = sugConstr1[i].PosId; - updateTransitionData(previousCurve,previousPosId); // -> dirVec, EditMode[0] + updateTransitionData(previousCurve,previousPosId); // -> dirVec, EditCurve[0] if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) TransitionMode = TRANSITION_MODE_Tangent; sugConstr1.erase(sugConstr1.begin()+i); // actually we should clear the vector completely @@ -923,12 +923,15 @@ protected: const Part::Geometry *geom = sketchgui->getSketchObject()->getGeometry(GeoId); if (geom->getTypeId() == Part::GeomLineSegment::getClassTypeId()) { const Part::GeomLineSegment *lineSeg = dynamic_cast(geom); - EditCurve[0] = Base::Vector2D(lineSeg->getEndPoint().x, lineSeg->getEndPoint().y); dirVec.Set(lineSeg->getEndPoint().x - lineSeg->getStartPoint().x, lineSeg->getEndPoint().y - lineSeg->getStartPoint().y, 0.f); - if (PosId == Sketcher::start) + if (PosId == Sketcher::start) { dirVec *= -1; + EditCurve[0] = Base::Vector2D(lineSeg->getStartPoint().x, lineSeg->getStartPoint().y); + } + else + EditCurve[0] = Base::Vector2D(lineSeg->getEndPoint().x, lineSeg->getEndPoint().y); } else if (geom->getTypeId() == Part::GeomArcOfCircle::getClassTypeId()) { const Part::GeomArcOfCircle *arcSeg = dynamic_cast(geom); From 12f6ef3458fdadd19ed1326243960386bdc23404 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 4 Sep 2012 12:07:26 -0300 Subject: [PATCH 86/98] Draft: Bugfixing + All Draft (and Arch) objects now correctly get/set theiir type on save/load + Draft Shape2DView now produces valid shapes --- src/Mod/Arch/ArchAxis.py | 8 +- src/Mod/Arch/ArchComponent.py | 7 ++ src/Mod/Arch/ArchFloor.py | 5 +- src/Mod/Arch/ArchSectionPlane.py | 18 ++- src/Mod/Draft/Draft.py | 193 +++++++++++++++++-------------- 5 files changed, 142 insertions(+), 89 deletions(-) diff --git a/src/Mod/Arch/ArchAxis.py b/src/Mod/Arch/ArchAxis.py index 26de5866c..0b86cd657 100644 --- a/src/Mod/Arch/ArchAxis.py +++ b/src/Mod/Arch/ArchAxis.py @@ -101,6 +101,13 @@ class _Axis: if geoms: obj.Shape = Part.Compound(geoms) obj.Placement = pl + + def __getstate__(self): + return self.Type + + def __setstate__(self,state): + if state: + self.Type = state class _ViewProviderAxis: "A View Provider for the Axis object" @@ -252,7 +259,6 @@ class _ViewProviderAxis: return None - class _AxisTaskPanel: '''The editmode TaskPanel for Axis objects''' def __init__(self): diff --git a/src/Mod/Arch/ArchComponent.py b/src/Mod/Arch/ArchComponent.py index a2646dcc0..777d43127 100644 --- a/src/Mod/Arch/ArchComponent.py +++ b/src/Mod/Arch/ArchComponent.py @@ -265,6 +265,13 @@ class Component: obj.Proxy = self self.Type = "Component" self.Subvolume = None + + def __getstate__(self): + return self.Type + + def __setstate__(self,state): + if state: + self.Type = state class ViewProviderComponent: "A default View Provider for Component objects" diff --git a/src/Mod/Arch/ArchFloor.py b/src/Mod/Arch/ArchFloor.py index be9956107..f7eb0c75c 100644 --- a/src/Mod/Arch/ArchFloor.py +++ b/src/Mod/Arch/ArchFloor.py @@ -83,10 +83,11 @@ class _Floor: self.Object = obj def __getstate__(self): - return None + return self.Type def __setstate__(self,state): - return None + if state: + self.Type = state def execute(self,obj): pass diff --git a/src/Mod/Arch/ArchSectionPlane.py b/src/Mod/Arch/ArchSectionPlane.py index 6966b88bd..ebb4549ba 100644 --- a/src/Mod/Arch/ArchSectionPlane.py +++ b/src/Mod/Arch/ArchSectionPlane.py @@ -110,6 +110,13 @@ class _SectionPlane: def getNormal(self,obj): return obj.Shape.Faces[0].normalAt(0,0) + def __getstate__(self): + return self.Type + + def __setstate__(self,state): + if state: + self.Type = state + class _ViewProviderSectionPlane(ArchComponent.ViewProviderComponent): "A View Provider for Section Planes" def __init__(self,vobj): @@ -180,6 +187,12 @@ class _ViewProviderSectionPlane(ArchComponent.ViewProviderComponent): vobj.Object.Proxy.execute(vobj.Object) return + def __getstate__(self): + return None + + def __setstate__(self,state): + return None + class _ArchDrawingView: def __init__(self, obj): obj.addProperty("App::PropertyLink","Source","Base","The linked object") @@ -203,10 +216,11 @@ class _ArchDrawingView: obj.ViewResult = self.updateSVG(obj) def __getstate__(self): - return None + return self.Type def __setstate__(self,state): - return None + if state: + self.Type = state def getDisplayModes(self,vobj): modes=["Default"] diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 1e6b54dc7..6cdce843f 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -1732,12 +1732,37 @@ def heal(objlist=None,delete=True,reparent=True): # Python Features definitions #--------------------------------------------------------------------------- +class _DraftObject: + "The base class for Draft objects" + def __init__(self,obj,tp="Unknown"): + obj.Proxy = self + self.Type = tp + + def __getstate__(self): + return self.Type + + def __setstate__(self,state): + if state: + self.Type = state + + def execute(self,obj): + pass + + def onChanged(self, fp, prop): + pass + class _ViewProviderDraft: - "A generic View Provider for Draft objects" + "The base class for Draft Viewproviders" def __init__(self, obj): obj.Proxy = self self.Object = obj.Object + + def __getstate__(self): + return None + + def __setstate__(self,state): + return None def attach(self, obj): self.Object = obj.Object @@ -1756,11 +1781,8 @@ class _ViewProviderDraft: def onChanged(self, vp, prop): return - def __getstate__(self): - return None - - def __setstate__(self,state): - return None + def execute(self,obj): + return def setEdit(self,vp,mode): FreeCADGui.runCommand("Draft_Edit") @@ -1783,10 +1805,30 @@ class _ViewProviderDraft: if hasattr(self.Object,"Components"): objs.extend(self.Object.Components) return objs + +class _ViewProviderDraftAlt(_ViewProviderDraft): + "a view provider that doesn't swallow its base object" + + def __init__(self,vobj): + _ViewProviderDraft.__init__(self,vobj) + + def claimChildren(self): + return [] + +class _ViewProviderDraftPart(_ViewProviderDraftAlt): + "a view provider that displays a Part icon instead of a Draft icon" + + def __init__(self,vobj): + _ViewProviderDraftAlt.__init__(self,vobj) + + def getIcon(self): + return ":/icons/Tree_Part.svg" + -class _Dimension: - "The Dimension object" +class _Dimension(_DraftObject): + "The Draft Dimension object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Dimension") obj.addProperty("App::PropertyVector","Start","Base", "Startpoint of dimension") obj.addProperty("App::PropertyVector","End","Base", @@ -1801,8 +1843,6 @@ class _Dimension: obj.Start = FreeCAD.Vector(0,0,0) obj.End = FreeCAD.Vector(1,0,0) obj.Dimline = FreeCAD.Vector(0,1,0) - obj.Proxy = self - self.Type = "Dimension" def onChanged(self, obj, prop): obj.setEditorMode('Distance',1) @@ -1811,8 +1851,8 @@ class _Dimension: if obj.ViewObject: obj.ViewObject.update() -class _ViewProviderDimension: - "A View Provider for the Dimension object" +class _ViewProviderDimension(_ViewProviderDraft): + "A View Provider for the Draft Dimension object" def __init__(self, obj): obj.addProperty("App::PropertyLength","FontSize","Base","Font size") obj.addProperty("App::PropertyString","FontName","Base","Font name") @@ -1821,11 +1861,11 @@ class _ViewProviderDimension: obj.addProperty("App::PropertyLength","ExtLines","Base","Ext lines") obj.addProperty("App::PropertyVector","TextPosition","Base","The position of the text. Leave (0,0,0) for automatic position") obj.addProperty("App::PropertyString","Override","Base","Text override. Use 'dim' to insert the dimension length") - obj.Proxy = self obj.FontSize=getParam("textheight") obj.FontName=getParam("textfont") obj.ExtLines=0.3 obj.Override = '' + _ViewProviderDraft.__init__(self,obj) def calcGeom(self,obj): import Part, DraftGeomUtils @@ -2013,17 +2053,23 @@ class _ViewProviderDimension: def onChanged(self, vp, prop): self.Object = vp.Object if prop == "FontSize": - self.font.size = vp.FontSize - self.font3d.size = vp.FontSize*100 + if hasattr(self,"font"): + self.font.size = vp.FontSize + if hasattr(self,"font3d"): + self.font3d.size = vp.FontSize*100 elif prop == "FontName": - self.font.name = self.font3d.name = str(vp.FontName) + if hasattr(self,"font") and hasattr(self,"font3d"): + self.font.name = self.font3d.name = str(vp.FontName) elif prop == "LineColor": c = vp.LineColor - self.color.rgb.setValue(c[0],c[1],c[2]) + if hasattr(self,"color"): + self.color.rgb.setValue(c[0],c[1],c[2]) elif prop == "LineWidth": - self.drawstyle.lineWidth = vp.LineWidth + if hasattr(self,"drawstyle"): + self.drawstyle.lineWidth = vp.LineWidth else: - self.drawstyle.lineWidth = vp.LineWidth + if hasattr(self,"drawstyle"): + self.drawstyle.lineWidth = vp.LineWidth self.updateData(vp.Object, None) def getDisplayModes(self,obj): @@ -2102,9 +2148,10 @@ class _ViewProviderDimension: self.defaultmode = state self.setDisplayMode(state) -class _AngularDimension: - "The AngularDimension object" +class _AngularDimension(_DraftObject): + "The Draft AngularDimension object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"AngularDimension") obj.addProperty("App::PropertyAngle","FirstAngle","Base", "Start angle of the dimension") obj.addProperty("App::PropertyAngle","LastAngle","Base", @@ -2117,18 +2164,13 @@ class _AngularDimension: obj.LastAngle = 90 obj.Dimline = FreeCAD.Vector(0,1,0) obj.Center = FreeCAD.Vector(0,0,0) - obj.Proxy = self - self.Type = "AngularDimension" - def onChanged(self, fp, prop): - pass - def execute(self, fp): if fp.ViewObject: fp.ViewObject.update() -class _ViewProviderAngularDimension: - "A View Provider for the Angular Dimension object" +class _ViewProviderAngularDimension(_ViewProviderDraft): + "A View Provider for the Draft Angular Dimension object" def __init__(self, obj): obj.addProperty("App::PropertyLength","FontSize","Base","Font size") obj.addProperty("App::PropertyString","FontName","Base","Font name") @@ -2136,10 +2178,10 @@ class _ViewProviderAngularDimension: obj.addProperty("App::PropertyColor","LineColor","Base","Line color") obj.addProperty("App::PropertyVector","TextPosition","Base","The position of the text. Leave (0,0,0) for automatic position") obj.addProperty("App::PropertyString","Override","Base","Text override. Use 'dim' to insert the dimension length") - obj.Proxy = self obj.FontSize=getParam("textheight") obj.FontName=getParam("textfont") obj.Override = '' + _ViewProviderDraft.__init__(self,obj) def attach(self, vobj): from pivy import coin @@ -2313,17 +2355,16 @@ class _ViewProviderAngularDimension: " "}; """ -class _Rectangle: +class _Rectangle(_DraftObject): "The Rectangle object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Rectangle") obj.addProperty("App::PropertyDistance","Length","Base","Length of the rectangle") obj.addProperty("App::PropertyDistance","Height","Base","Height of the rectange") obj.addProperty("App::PropertyDistance","FilletRadius","Base","Radius to use to fillet the corners") - obj.Proxy = self obj.Length=1 obj.Height=1 - self.Type = "Rectangle" def execute(self, fp): self.createGeometry(fp) @@ -2375,18 +2416,17 @@ class _ViewProviderRectangle(_ViewProviderDraft): self.texture = None return -class _Circle: +class _Circle(_DraftObject): "The Circle object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Circle") obj.addProperty("App::PropertyAngle","FirstAngle","Base", "Start angle of the arc") obj.addProperty("App::PropertyAngle","LastAngle","Base", "End angle of the arc (for a full circle, give it same value as First Angle)") obj.addProperty("App::PropertyDistance","Radius","Base", "Radius of the circle") - obj.Proxy = self - self.Type = "Circle" def execute(self, fp): self.createGeometry(fp) @@ -2406,10 +2446,11 @@ class _Circle: fp.Shape = shape fp.Placement = plm -class _Wire: +class _Wire(_DraftObject): "The Wire object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Wire") obj.addProperty("App::PropertyVectorList","Points","Base", "The vertices of the wire") obj.addProperty("App::PropertyBool","Closed","Base", @@ -2423,9 +2464,7 @@ class _Wire: obj.addProperty("App::PropertyVector","End","Base", "The end point of this line") obj.addProperty("App::PropertyDistance","FilletRadius","Base","Radius to use to fillet the corners") - obj.Proxy = self obj.Closed = False - self.Type = "Wire" def execute(self, fp): self.createGeometry(fp) @@ -2545,10 +2584,11 @@ class _ViewProviderWire(_ViewProviderDraft): def claimChildren(self): return [self.Object.Base,self.Object.Tool] -class _Polygon: +class _Polygon(_DraftObject): "The Polygon object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Polygon") obj.addProperty("App::PropertyInteger","FacesNumber","Base","Number of faces") obj.addProperty("App::PropertyDistance","Radius","Base","Radius of the control circle") obj.addProperty("App::PropertyEnumeration","DrawMode","Base","How the polygon must be drawn from the control circle") @@ -2556,8 +2596,6 @@ class _Polygon: obj.DrawMode = ['inscribed','circumscribed'] obj.FacesNumber = 3 obj.Radius = 1 - obj.Proxy = self - self.Type = "Polygon" def execute(self, fp): self.createGeometry(fp) @@ -2589,8 +2627,10 @@ class _Polygon: fp.Shape = shape fp.Placement = plm -class _DrawingView: +class _DrawingView(_DraftObject): + "The Draft DrawingView object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"DrawingView") obj.addProperty("App::PropertyVector","Direction","Shape View","Projection direction") obj.addProperty("App::PropertyFloat","LineWidth","Drawing View","The width of the lines inside this object") obj.addProperty("App::PropertyFloat","FontSize","Drawing View","The size of the texts inside this object") @@ -2600,10 +2640,8 @@ class _DrawingView: for f in FreeCAD.svgpatterns.keys(): fills.append(f) obj.FillStyle = fills - obj.Proxy = self obj.LineWidth = 0.35 obj.FontSize = 12 - self.Type = "DrawingView" def execute(self, obj): if obj.Source: @@ -2627,17 +2665,16 @@ class _DrawingView: result += '' return result -class _BSpline: +class _BSpline(_DraftObject): "The BSpline object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"BSpline") obj.addProperty("App::PropertyVectorList","Points","Base", "The points of the b-spline") obj.addProperty("App::PropertyBool","Closed","Base", "If the b-spline is closed or not") - obj.Proxy = self obj.Closed = False - self.Type = "BSpline" def execute(self, fp): self.createGeometry(fp) @@ -2700,14 +2737,13 @@ class _ViewProviderBSpline(_ViewProviderDraft): rn.removeChild(self.pt) return -class _Block: +class _Block(_DraftObject): "The Block object" def __init__(self, obj): + _DraftObject.__init__(self,obj,"Block") obj.addProperty("App::PropertyLinkList","Components","Base", "The components of this block") - obj.Proxy = self - self.Type = "Block" def execute(self, fp): self.createGeometry(fp) @@ -2727,7 +2763,7 @@ class _Block: fp.Shape = shape fp.Placement = plm -class _Shape2DView: +class _Shape2DView(_DraftObject): "The Shape2DView object" def __init__(self,obj): @@ -2740,9 +2776,8 @@ class _Shape2DView: obj.addProperty("App::PropertyIntegerList","FaceNumbers","Base", "The indices of the faces to be projected in Individual Faces mode") obj.Projection = Vector(0,0,1) - obj.Proxy = self obj.ProjectionMode = ["Solid","Individual Faces","Cutlines"] - self.Type = "2DShapeView" + _DraftObject.__init__(self,obj,"Shape2DView") def execute(self,obj): self.createGeometry(obj) @@ -2751,6 +2786,15 @@ class _Shape2DView: if prop in ["Projection","Base","ProjectionMode","FaceNumbers"]: self.createGeometry(obj) + def clean(self,shape): + "returns a valid compound of edges" + import Part + oldedges = shape.Edges + newedges = [] + for e in oldedges: + newedges.append(e.Curve.toShape()) + return Part.makeCompound(newedges) + def createGeometry(self,obj): import Drawing, DraftGeomUtils pl = obj.Placement @@ -2778,7 +2822,7 @@ class _Shape2DView: [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(comp,proj) print visibleG0 if visibleG0: - obj.Shape = visibleG0 + obj.Shape = self.clean(visibleG0) elif obj.ProjectionMode == "Cutlines": for sh in shapes: if sh.Volume < 0: @@ -2796,7 +2840,7 @@ class _Shape2DView: if obj.ProjectionMode == "Solid": [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(obj.Base.Shape,obj.Projection) if visibleG0: - obj.Shape = visibleG0 + obj.Shape = self.clean(visibleG0) elif obj.ProjectionMode == "Individual Faces": import Part if obj.FaceNumbers: @@ -2814,10 +2858,11 @@ class _Shape2DView: if not DraftGeomUtils.isNull(pl): obj.Placement = pl -class _Array: +class _Array(_DraftObject): "The Draft Array object" def __init__(self,obj): + _DraftObject.__init__(self,obj,"Array") obj.addProperty("App::PropertyLink","Base","Base", "The base object that must be duplicated") obj.addProperty("App::PropertyEnumeration","ArrayType","Base", @@ -2842,8 +2887,6 @@ class _Array: "Center point") obj.addProperty("App::PropertyAngle","Angle","Base", "Angle to cover with copies") - obj.Proxy = self - self.Type = "Array" obj.ArrayType = ['ortho','polar'] obj.NumberX = 1 obj.NumberY = 1 @@ -2936,15 +2979,15 @@ class _Array: base.append(nshape) return Part.makeCompound(base) -class _Point: +class _Point(_DraftObject): + "The Draft Point object" def __init__(self, obj,x,y,z): + _DraftObject.__init__(self,obj,"Point") obj.addProperty("App::PropertyFloat","X","Point","Location").X = x obj.addProperty("App::PropertyFloat","Y","Point","Location").Y = y obj.addProperty("App::PropertyFloat","Z","Point","Location").Z = z mode = 2 obj.setEditorMode('Placement',mode) - obj.Proxy = self - self.Type = "Point" def execute(self, fp): self.createGeometry(fp) @@ -2954,9 +2997,10 @@ class _Point: shape = Part.Vertex(Vector(fp.X,fp.Y,fp.Z)) fp.Shape = shape -class _ViewProviderPoint: +class _ViewProviderPoint(_ViewProviderDraft): + "A viewprovider for the Draft Point object" def __init__(self, obj): - obj.Proxy = self + _ViewProviderDraft.__init__(self,obj) def onChanged(self, vp, prop): mode = 2 @@ -2976,17 +3020,16 @@ class _ViewProviderPoint: def getIcon(self): return ":/icons/Draft_Dot.svg" -class _Clone: +class _Clone(_DraftObject): "The Clone object" def __init__(self,obj): + _DraftObject.__init__(self,obj,"Clone") obj.addProperty("App::PropertyLinkList","Objects","Base", "The objects included in this scale object") obj.addProperty("App::PropertyVector","Scale","Base", "The scale vector of this object") obj.Scale = Vector(1,1,1) - obj.Proxy = self - self.Type = "Clone" def execute(self,obj): self.createGeometry(obj) @@ -3016,24 +3059,6 @@ class _Clone: if not DraftGeomUtils.isNull(pl): obj.Placement = pl -class _ViewProviderDraftAlt(_ViewProviderDraft): - "a view provider that doesn't swallow its base object" - - def __init__(self,vobj): - _ViewProviderDraft.__init__(self,vobj) - - def claimChildren(self): - return [] - -class _ViewProviderDraftPart(_ViewProviderDraftAlt): - "a view provider that displays a Part icon instead of a Draft icon" - - def __init__(self,vobj): - _ViewProviderDraftAlt.__init__(self,vobj) - - def getIcon(self): - return ":/icons/Tree_Part.svg" - class _ViewProviderClone(_ViewProviderDraftAlt): "a view provider that displays a Part icon instead of a Draft icon" From 3124974d702391b018f263509046cd81a6270d2b Mon Sep 17 00:00:00 2001 From: jriegel Date: Tue, 4 Sep 2012 18:13:42 +0200 Subject: [PATCH 87/98] Do not show status information as error in cmake configure --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 671b30cfd..fc7240bc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,10 +77,10 @@ SET(CMAKE_INSTALL_DOCDIR doc CACHE PATH "Output directory for documentation and SET(RESOURCEDIR "${CMAKE_INSTALL_DATADIR}") SET(DOCDIR "${CMAKE_INSTALL_DOCDIR}") -MESSAGE("prefix: ${CMAKE_INSTALL_PREFIX}") -MESSAGE("datadir: ${CMAKE_INSTALL_DATADIR}") -MESSAGE("docdir: ${CMAKE_INSTALL_DOCDIR}") -MESSAGE("includedir: ${CMAKE_INSTALL_INCLUDEDIR}") +MESSAGE( STATUS "prefix: ${CMAKE_INSTALL_PREFIX}") +MESSAGE(STATUS "datadir: ${CMAKE_INSTALL_DATADIR}") +MESSAGE(STATUS "docdir: ${CMAKE_INSTALL_DOCDIR}") +MESSAGE(STATUS "includedir: ${CMAKE_INSTALL_INCLUDEDIR}") # ============================================================================== # == Win32 is default behaviour use the LibPack copied in Source tree ========== From a26f42b7b3f9256e7221d1f47e39c1d8bf20566d Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 4 Sep 2012 19:14:28 -0300 Subject: [PATCH 88/98] Draft: minor bugfixes --- src/Mod/Draft/Draft.py | 6 ++++-- src/Mod/Draft/importDXF.py | 11 ++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index 6cdce843f..eadde9144 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -2792,7 +2792,10 @@ class _Shape2DView(_DraftObject): oldedges = shape.Edges newedges = [] for e in oldedges: - newedges.append(e.Curve.toShape()) + try: + newedges.append(e.Curve.toShape()) + except: + print "Debug: error cleaning edge ",e return Part.makeCompound(newedges) def createGeometry(self,obj): @@ -2820,7 +2823,6 @@ class _Shape2DView(_DraftObject): opl = FreeCAD.Placement(obj.Base.Placement) proj = opl.Rotation.multVec(FreeCAD.Vector(0,0,1)) [visibleG0,visibleG1,hiddenG0,hiddenG1] = Drawing.project(comp,proj) - print visibleG0 if visibleG0: obj.Shape = self.clean(visibleG0) elif obj.ProjectionMode == "Cutlines": diff --git a/src/Mod/Draft/importDXF.py b/src/Mod/Draft/importDXF.py index 8efd01723..4de4a6bb9 100644 --- a/src/Mod/Draft/importDXF.py +++ b/src/Mod/Draft/importDXF.py @@ -1331,11 +1331,12 @@ def writeShape(ob,dxfobject,nospline=False): ang1, ang2, color=getACI(ob), layer=getGroup(ob,exportList))) else: # anything else is treated as lines - ve1=edge.Vertexes[0].Point - ve2=edge.Vertexes[1].Point - dxfobject.append(dxfLibrary.Line([DraftVecUtils.tup(ve1), DraftVecUtils.tup(ve2)], - color=getACI(ob), - layer=getGroup(ob,exportList))) + if len(edge.Vertexes) > 1: + ve1=edge.Vertexes[0].Point + ve2=edge.Vertexes[1].Point + dxfobject.append(dxfLibrary.Line([DraftVecUtils.tup(ve1), DraftVecUtils.tup(ve2)], + color=getACI(ob), + layer=getGroup(ob,exportList))) def writeMesh(ob,dxfobject): "export a shape as a polyface mesh" From 3140c13baf4c2f0ae519d544c4eeb721a33b79e3 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 5 Sep 2012 16:01:39 +0200 Subject: [PATCH 89/98] 0000822: Two little tweaks for the python console --- src/Gui/PythonConsole.cpp | 37 ++++++++++++++++++++++++++++++------- src/Gui/PythonConsole.h | 2 ++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/Gui/PythonConsole.cpp b/src/Gui/PythonConsole.cpp index eaa7f53cb..2c62d316a 100644 --- a/src/Gui/PythonConsole.cpp +++ b/src/Gui/PythonConsole.cpp @@ -442,13 +442,8 @@ void PythonConsole::OnChange( Base::Subject &rCaller,const char* sR void PythonConsole::keyPressEvent(QKeyEvent * e) { bool restartHistory = true; - QTextCursor cursor = this->textCursor(); - - // construct reference cursor at begin of input line ... - QTextCursor inputLineBegin = cursor; - inputLineBegin.movePosition( QTextCursor::End ); - inputLineBegin.movePosition( QTextCursor::StartOfLine ); - inputLineBegin.movePosition( QTextCursor::Right, QTextCursor::MoveAnchor, promptLength ); + QTextCursor cursor = this->textCursor(); + QTextCursor inputLineBegin = this->inputBegin(); if (cursor < inputLineBegin) { @@ -579,6 +574,9 @@ void PythonConsole::keyPressEvent(QKeyEvent * e) // the event and afterwards update the list widget if (d->callTipsList->isVisible()) { d->callTipsList->validateCursor(); } + + // disable history restart if input line changed + restartHistory &= (inputLine != inputBlock.text().mid(promptLength)); } // any cursor move resets the history to its latest item. if (restartHistory) @@ -806,6 +804,21 @@ void PythonConsole::changeEvent(QEvent *e) TextEdit::changeEvent(e); } +void PythonConsole::mouseReleaseEvent( QMouseEvent *e ) +{ + TextEdit::mouseReleaseEvent( e ); + if (e->button() == Qt::LeftButton) + { + QTextCursor cursor = this->textCursor(); + if (cursor.hasSelection() == false + && cursor < this->inputBegin()) + { + cursor.movePosition( QTextCursor::End ); + this->setTextCursor( cursor ); + } + } +} + /** * Drops the event \a e and writes the right Python command. */ @@ -904,6 +917,16 @@ void PythonConsole::insertFromMimeData (const QMimeData * source) } } +QTextCursor PythonConsole::inputBegin( void ) const +{ + // construct cursor at begin of input line ... + QTextCursor inputLineBegin( this->textCursor() ); + inputLineBegin.movePosition( QTextCursor::End ); + inputLineBegin.movePosition( QTextCursor::StartOfLine ); + inputLineBegin.movePosition( QTextCursor::Right, QTextCursor::MoveAnchor, promptLength ); + return inputLineBegin; +} + QMimeData * PythonConsole::createMimeDataFromSelection () const { QMimeData* mime = new QMimeData(); diff --git a/src/Gui/PythonConsole.h b/src/Gui/PythonConsole.h index 9ac632adf..ceda0a5ec 100644 --- a/src/Gui/PythonConsole.h +++ b/src/Gui/PythonConsole.h @@ -126,6 +126,7 @@ protected: void dragEnterEvent ( QDragEnterEvent * e ); void dragMoveEvent ( QDragMoveEvent * e ); void changeEvent ( QEvent * e ); + void mouseReleaseEvent( QMouseEvent * e ); void overrideCursor(const QString& txt); @@ -134,6 +135,7 @@ protected: bool canInsertFromMimeData ( const QMimeData * source ) const; QMimeData * createMimeDataFromSelection () const; void insertFromMimeData ( const QMimeData * source ); + QTextCursor inputBegin( void ) const; private: void runSource(const QString&); From 4f9db45798adfb30caf191ce95d0be7881eb894e Mon Sep 17 00:00:00 2001 From: jriegel Date: Wed, 5 Sep 2012 19:44:03 +0200 Subject: [PATCH 90/98] Add Installer entry for the OpenSCAD module --- src/Mod/CMakeLists.txt | 2 + src/WindowsInstaller/FreeCAD.wxs | 2 + src/WindowsInstaller/FreeCADModules.wxs | 1 + src/WindowsInstaller/ModOpenSCAD.wxi | 51 +++++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 src/WindowsInstaller/ModOpenSCAD.wxi diff --git a/src/Mod/CMakeLists.txt b/src/Mod/CMakeLists.txt index 181d3ef91..d1f0736ae 100644 --- a/src/Mod/CMakeLists.txt +++ b/src/Mod/CMakeLists.txt @@ -47,3 +47,5 @@ endif(FREECAD_BUILD_SANDBOX) add_subdirectory(Surfaces) add_subdirectory(Ship) add_subdirectory(OpenSCAD) + + diff --git a/src/WindowsInstaller/FreeCAD.wxs b/src/WindowsInstaller/FreeCAD.wxs index ee21354a8..05a5d19fd 100644 --- a/src/WindowsInstaller/FreeCAD.wxs +++ b/src/WindowsInstaller/FreeCAD.wxs @@ -159,6 +159,8 @@ + + diff --git a/src/WindowsInstaller/FreeCADModules.wxs b/src/WindowsInstaller/FreeCADModules.wxs index e8d7e7db8..019ae14f8 100644 --- a/src/WindowsInstaller/FreeCADModules.wxs +++ b/src/WindowsInstaller/FreeCADModules.wxs @@ -52,6 +52,7 @@ + diff --git a/src/WindowsInstaller/ModOpenSCAD.wxi b/src/WindowsInstaller/ModOpenSCAD.wxi new file mode 100644 index 000000000..3e5bae553 --- /dev/null +++ b/src/WindowsInstaller/ModOpenSCAD.wxi @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 305c9ad1bc677f29fdb6e78b8c97c85a7ca96b77 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Wed, 5 Sep 2012 17:55:27 -0300 Subject: [PATCH 91/98] Draft: bugfix in taskpanel --- src/Mod/Draft/DraftGui.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 9ccaea267..9f7a9cd39 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -490,7 +490,7 @@ class DraftToolBar: # Interface modes #--------------------------------------------------------------------------- - def taskUi(self,title,extra=None): + def taskUi(self,title,extra=None,icon="Draft_Draft"): if self.taskmode: self.isTaskOn = True todo.delay(FreeCADGui.Control.closeDialog,None) @@ -529,9 +529,9 @@ class DraftToolBar: def lineUi(self,title=None): if title: - self.pointUi(title) + self.pointUi(title,icon="Draft_Line") else: - self.pointUi(translate("draft", "Line")) + self.pointUi(translate("draft", "Line"),icon="Draft_Line") self.xValue.setEnabled(True) self.yValue.setEnabled(True) self.isRelative.show() @@ -542,7 +542,7 @@ class DraftToolBar: if title: self.pointUi(title) else: - self.pointUi(translate("draft", "DWire")) + self.pointUi(translate("draft", "DWire"),icon="Draft_Wire") self.xValue.setEnabled(True) self.yValue.setEnabled(True) self.isRelative.show() @@ -554,20 +554,20 @@ class DraftToolBar: self.continueCmd.show() def circleUi(self): - self.pointUi(translate("draft", "Circle")) + self.pointUi(translate("draft", "Circle"),icon="Draft_Circle") self.continueCmd.show() self.labelx.setText(translate("draft", "Center X")) self.hasFill.show() def arcUi(self): - self.pointUi(translate("draft", "Arc")) + self.pointUi(translate("draft", "Arc"),icon="Draft_Arc") self.labelx.setText(translate("draft", "Center X")) self.continueCmd.show() - def pointUi(self,title=translate("draft","Point"),cancel=None,extra=None,getcoords=None,rel=False): + def pointUi(self,title=translate("draft","Point"),cancel=None,extra=None,getcoords=None,rel=False,icon="Draft_Draft"): if cancel: self.cancel = cancel if getcoords: self.pointcallback = getcoords - self.taskUi(title,extra) + self.taskUi(title,extra,icon) self.xValue.setEnabled(True) self.yValue.setEnabled(True) self.labelx.setText(translate("draft", "X")) @@ -691,9 +691,10 @@ class DraftToolBar: if self.state[5]:self.zValue.show() self.state = None - def setTitle(self,title): + def setTitle(self,title,icon="Draft_Draft"): if self.taskmode: self.baseWidget.setWindowTitle(title) + self.baseWidget.setWindowIcon(QtGui.QIcon(":/icons/"+icon+".svg")) else: self.cmdlabel.setText(title) From c4b2df909659b2e47b841023d5bb8044ce838b46 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 6 Sep 2012 10:26:32 +0200 Subject: [PATCH 92/98] Fix typo in ModOpenSCAD.wxi --- src/WindowsInstaller/ModOpenSCAD.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WindowsInstaller/ModOpenSCAD.wxi b/src/WindowsInstaller/ModOpenSCAD.wxi index 3e5bae553..15f7c84d1 100644 --- a/src/WindowsInstaller/ModOpenSCAD.wxi +++ b/src/WindowsInstaller/ModOpenSCAD.wxi @@ -32,7 +32,7 @@ - + From 71c7cfab68c18c9113d9fa6c48ed20daf740726a Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 6 Sep 2012 12:26:22 +0200 Subject: [PATCH 93/98] Fix memory leaks --- src/Base/Parameter.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Base/Parameter.cpp b/src/Base/Parameter.cpp index 61b678539..e38784e01 100644 --- a/src/Base/Parameter.cpp +++ b/src/Base/Parameter.cpp @@ -1131,10 +1131,16 @@ int ParameterManager::LoadDocument(const char* sFileName) errorsOccured = true; } - if (errorsOccured) + if (errorsOccured) { + delete parser; + delete errReporter; return 0; + } + + _pDocument = parser->adoptDocument(); + delete parser; + delete errReporter; - _pDocument = parser->getDocument(); if (!_pDocument) throw Exception("Malformed Parameter document: Invalid document"); From 629cf6546c1363d03a6f0dcb8c28263736d3f77e Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 6 Sep 2012 12:38:00 +0200 Subject: [PATCH 94/98] 0000823: Extension of Facet class for getting vertex indices natively --- src/Mod/Mesh/App/FacetPy.xml | 14 +++++++++++++- src/Mod/Mesh/App/FacetPyImp.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/Mod/Mesh/App/FacetPy.xml b/src/Mod/Mesh/App/FacetPy.xml index 50f0dfa0e..47ceb3de4 100644 --- a/src/Mod/Mesh/App/FacetPy.xml +++ b/src/Mod/Mesh/App/FacetPy.xml @@ -63,5 +63,17 @@ Get a list of intersection points with another triangle. - + + + The index tuple of point vertices of the mesh this facet is built of + + + + + + The index tuple of neighbour facets of the mesh this facet is adjacent with + + + + \ No newline at end of file diff --git a/src/Mod/Mesh/App/FacetPyImp.cpp b/src/Mod/Mesh/App/FacetPyImp.cpp index 17ee6ccc5..94dc00eca 100644 --- a/src/Mod/Mesh/App/FacetPyImp.cpp +++ b/src/Mod/Mesh/App/FacetPyImp.cpp @@ -144,6 +144,30 @@ Py::List FacetPy::getPoints(void) const return pts; } +Py::Tuple FacetPy::getPointIndices(void) const +{ + FacetPy::PointerType face = this->getFacetPtr(); + if (!face->isBound()) + { return Py::Tuple(); } + + Py::Tuple idxTuple(3); + for (int i=0; i<3; i++) + { idxTuple.setItem( i, Py::Int( (long)face->PIndex[i] ) ); } + return idxTuple; +} + +Py::Tuple FacetPy::getNeighbourIndices(void) const +{ + FacetPy::PointerType face = this->getFacetPtr(); + if (!face->isBound()) + { return Py::Tuple(); } + + Py::Tuple idxTuple(3); + for (int i=0; i<3; i++) + { idxTuple.setItem( i, Py::Int( (long)face->NIndex[i] ) ); } + return idxTuple; +} + PyObject *FacetPy::getCustomAttributes(const char* attr) const { return 0; From 2d172cde0b8fd80a52e958ff35956c265e0313b2 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 6 Sep 2012 14:09:43 +0200 Subject: [PATCH 95/98] 0000818: [PATCH] added new page to Customize dialog for space navigator --- .../GuiApplicationNativeEventAwareWin32.cpp | 25 ++- src/Gui/DlgCustomizeSpaceball.cpp | 6 +- src/Gui/GuiApplicationNativeEventAware.cpp | 196 +++++++++++++++++- src/Gui/GuiApplicationNativeEventAware.h | 6 +- src/Gui/SpaceballEvent.cpp | 139 ++----------- src/Gui/SpaceballEvent.h | 3 - 6 files changed, 229 insertions(+), 146 deletions(-) diff --git a/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp b/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp index 4403fd22b..a8a0b0db5 100644 --- a/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp +++ b/src/Gui/3Dconnexion/GuiApplicationNativeEventAwareWin32.cpp @@ -193,18 +193,21 @@ void Gui::GUIApplicationNativeEventAware::Move3d(HANDLE device, std::vectorsetTranslations(x, y, z); - //motionEvent->setRotations(rx, ry, rz); - motionEvent->setMotionData(x, y, z, rx, ry, rz); + + motionEvent->setTranslations(motionDataArray[0], motionDataArray[1], motionDataArray[2]); + motionEvent->setRotations(motionDataArray[3], motionDataArray[4], motionDataArray[5]); + this->postEvent(currentWidget, motionEvent); } diff --git a/src/Gui/DlgCustomizeSpaceball.cpp b/src/Gui/DlgCustomizeSpaceball.cpp index 8a7dc5aae..dc89ce9fc 100644 --- a/src/Gui/DlgCustomizeSpaceball.cpp +++ b/src/Gui/DlgCustomizeSpaceball.cpp @@ -555,7 +555,11 @@ void DlgCustomizeSpaceball::setMessage(const QString& message) { QLabel *messageLabel = new QLabel(message,this); QVBoxLayout *layout = new QVBoxLayout(); - layout->addWidget(messageLabel); + QHBoxLayout *layout2 = new QHBoxLayout(); + layout2->addStretch(); + layout2->addWidget(messageLabel); + layout2->addStretch(); + layout->addItem(layout2); this->setLayout(layout); } diff --git a/src/Gui/GuiApplicationNativeEventAware.cpp b/src/Gui/GuiApplicationNativeEventAware.cpp index 6f9485ee1..171fb02cd 100644 --- a/src/Gui/GuiApplicationNativeEventAware.cpp +++ b/src/Gui/GuiApplicationNativeEventAware.cpp @@ -32,6 +32,7 @@ #include #include "GuiApplicationNativeEventAware.h" #include "SpaceballEvent.h" +#include "Application.h" //linux dependency libspnav-dev #ifdef Q_WS_X11 @@ -128,6 +129,184 @@ bool Gui::GUIApplicationNativeEventAware::processSpaceballEvent(QObject *object, return true; } + +float Gui::GUIApplicationNativeEventAware::convertPrefToSensitivity(int value) +{ + if (value < 0) + { + return ((0.9/50)*float(value) + 1); + } + else + { + return ((2.5/50)*float(value) + 1); + } +} + +// This function modifies motionDataArray to be OS independent +// on some OSes these axes are inverted, and some are switched - this method sets them up like this: + +// motionDataArray[0] - pan Left - Right with mouse - pan Left(Left) - Right(Left) on screen +// motionDataArray[1] - pan Front - Back with mouse - pan Up(Front) - Down(Back) on screen +// motionDataArray[2] - pan Up - Down with mouse - zoom In(Up) - Out(Down) on screen +// motionDataArray[3] - lean mouse Left-Right - rotate around Vertical axis on screen +// motionDataArray[4] - lean mouse Front - Back - rotate around Horizointal axis on screen on screen +// motionDataArray[5] - Spin mouse - rotate around "Zoom" axis on screen + + +bool Gui::GUIApplicationNativeEventAware::setOSIndependentMotionData() +{ +#ifdef SPNAV_FOUND + int temp; + motionDataArray[0] = -motionDataArray[0]; + motionDataArray[3] = -motionDataArray[3]; + + temp = motionDataArray[1]; + motionDataArray[1] = -motionDataArray[2]; + motionDataArray[2] = -temp; + + temp = motionDataArray[4]; + motionDataArray[4] = -motionDataArray[5]; + motionDataArray[5] = -temp; +#elif _USE_3DCONNEXION_SDK + motionDataArray[0] = -motionDataArray[0]; + motionDataArray[3] = -motionDataArray[3]; +#else + return false; +#endif + return true; +} + +void Gui::GUIApplicationNativeEventAware::importSettings() +{ + ParameterGrp::handle group = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Spaceball")->GetGroup("Motion"); + + // here I import settings from a dialog. For now they are set as is + bool dominant = group->GetBool("Dominant"); // Is dominant checked + bool flipXY = group->GetBool("FlipYZ");; // Is Flip X/Y checked + float generalSensitivity = convertPrefToSensitivity(group->GetInt("GlobalSensitivity")); + + // array that has stored info about "Enabled" checkboxes of all axes + bool enabled[6]; + enabled[0] = group->GetBool("Translations", true) && group->GetBool("PanLREnable", true); + enabled[1] = group->GetBool("Translations", true) && group->GetBool("PanUDEnable", true); + enabled[2] = group->GetBool("Translations", true) && group->GetBool("ZoomEnable", true); + enabled[3] = group->GetBool("Rotations", true) && group->GetBool("TiltEnable", true); + enabled[4] = group->GetBool("Rotations", true) && group->GetBool("RollEnable", true); + enabled[5] = group->GetBool("Rotations", true) && group->GetBool("SpinEnable", true); + + // array that has stored info about "Reversed" checkboxes of all axes + bool reversed[6]; + reversed[0] = group->GetBool("PanLRReverse"); + reversed[1] = group->GetBool("PanUDReverse"); + reversed[2] = group->GetBool("ZoomReverse"); + reversed[3] = group->GetBool("TiltReverse"); + reversed[4] = group->GetBool("RollReverse"); + reversed[5] = group->GetBool("SpinReverse"); + + // array that has stored info about sliders - on each slider you need to use method DlgSpaceballSettings::GetValuefromSlider + // which will convert <-50, 50> linear integers from slider to <0.1, 10> exponential floating values + float sensitivity[6]; + sensitivity[0] = convertPrefToSensitivity(group->GetInt("PanLRSensitivity")); + sensitivity[1] = convertPrefToSensitivity(group->GetInt("PanUDSensitivity")); + sensitivity[2] = convertPrefToSensitivity(group->GetInt("ZoomSensitivity")); + sensitivity[3] = convertPrefToSensitivity(group->GetInt("TiltSensitivity")); + sensitivity[4] = convertPrefToSensitivity(group->GetInt("RollSensitivity")); + sensitivity[5] = convertPrefToSensitivity(group->GetInt("SpinSensitivity")); + + if (group->GetBool("Calibrate")) + { + group->SetInt("CalibrationX",motionDataArray[0]); + group->SetInt("CalibrationY",motionDataArray[1]); + group->SetInt("CalibrationZ",motionDataArray[2]); + group->SetInt("CalibrationXr",motionDataArray[3]); + group->SetInt("CalibrationYr",motionDataArray[4]); + group->SetInt("CalibrationZr",motionDataArray[5]); + + group->RemoveBool("Calibrate"); + + return; + } + else + { + motionDataArray[0] = motionDataArray[0] - group->GetInt("CalibrationX"); + motionDataArray[1] = motionDataArray[1] - group->GetInt("CalibrationY"); + motionDataArray[2] = motionDataArray[2] - group->GetInt("CalibrationZ"); + motionDataArray[3] = motionDataArray[3] - group->GetInt("CalibrationXr"); + motionDataArray[4] = motionDataArray[4] - group->GetInt("CalibrationYr"); + motionDataArray[5] = motionDataArray[5] - group->GetInt("CalibrationZr"); + } + + int i; + + if (flipXY) { + bool tempBool; + float tempFloat; + + tempBool = enabled[1]; + enabled[1] = enabled[2]; + enabled[2] = tempBool; + + tempBool = enabled[4]; + enabled[4] = enabled[5]; + enabled[5] = tempBool; + + + tempBool = reversed[1]; + reversed[1] = reversed[2]; + reversed[2] = tempBool; + + tempBool = reversed[4]; + reversed[4] = reversed[5]; + reversed[5] = tempBool; + + + tempFloat = sensitivity[1]; + sensitivity[1] = sensitivity[2]; + sensitivity[2] = tempFloat; + + tempFloat = sensitivity[4]; + sensitivity[4] = sensitivity[5]; + sensitivity[5] = tempFloat; + + + i = motionDataArray[1]; + motionDataArray[1] = motionDataArray[2]; + motionDataArray[2] = - i; + + i = motionDataArray[4]; + motionDataArray[4] = motionDataArray[5]; + motionDataArray[5] = - i; + } + + if (dominant) { // if dominant is checked + int max = 0; + bool flag = false; + for (i = 0; i < 6; ++i) { + if (abs(motionDataArray[i]) > abs(max)) max = motionDataArray[i]; + } + for (i = 0; i < 6; ++i) { + if ((motionDataArray[i] != max) || (flag)) { + motionDataArray[i] = 0; + } else if (motionDataArray[i] == max) { + flag = true; + } + } + } + + for (i = 0; i < 6; ++i) { + if (motionDataArray[i] != 0) { + if (enabled[i] == false) + motionDataArray[i] = 0; + else { + if (reversed[i] == true) + motionDataArray[i] = - motionDataArray[i]; + motionDataArray[i] = (int)((float)(motionDataArray[i]) * sensitivity[i] * generalSensitivity); + } + } + } +} + + #ifdef Q_WS_X11 bool Gui::GUIApplicationNativeEventAware::x11EventFilter(XEvent *event) { @@ -142,10 +321,21 @@ bool Gui::GUIApplicationNativeEventAware::x11EventFilter(XEvent *event) if (navEvent.type == SPNAV_EVENT_MOTION) { + motionDataArray[0] = navEvent.motion.x; + motionDataArray[1] = navEvent.motion.y; + motionDataArray[2] = navEvent.motion.z; + motionDataArray[3] = navEvent.motion.rx; + motionDataArray[4] = navEvent.motion.ry; + motionDataArray[5] = navEvent.motion.rz; + + if (!setOSIndependentMotionData()) return false; + importSettings(); + Spaceball::MotionEvent *motionEvent = new Spaceball::MotionEvent(); - // motionEvent->setTranslations(navEvent.motion.x, navEvent.motion.y, navEvent.motion.z); - // motionEvent->setRotations(navEvent.motion.rx, navEvent.motion.ry, navEvent.motion.rz); - motionEvent->setMotionData(navEvent.motion.x, navEvent.motion.y, navEvent.motion.z, navEvent.motion.rx, navEvent.motion.ry, navEvent.motion.rz); + + motionEvent->setTranslations(motionDataArray[0], motionDataArray[1], motionDataArray[2]); + motionEvent->setRotations(motionDataArray[3], motionDataArray[4], motionDataArray[5]); + this->postEvent(currentWidget, motionEvent); return true; } diff --git a/src/Gui/GuiApplicationNativeEventAware.h b/src/Gui/GuiApplicationNativeEventAware.h index 113dd4b1f..89fef7c7e 100644 --- a/src/Gui/GuiApplicationNativeEventAware.h +++ b/src/Gui/GuiApplicationNativeEventAware.h @@ -36,7 +36,7 @@ class QMainWindow; #include #include -// #define _WIN32_WINNT 0x0501 //target at least windows XP +//#define _WIN32_WINNT 0x0501 //target at least windows XP #include @@ -56,6 +56,10 @@ namespace Gui private: bool spaceballPresent; QMainWindow *mainWindow; + int motionDataArray[6]; + bool setOSIndependentMotionData(); + void importSettings(); + float convertPrefToSensitivity(int value); // For X11 #ifdef Q_WS_X11 diff --git a/src/Gui/SpaceballEvent.cpp b/src/Gui/SpaceballEvent.cpp index 7b93ade1a..d420dd434 100644 --- a/src/Gui/SpaceballEvent.cpp +++ b/src/Gui/SpaceballEvent.cpp @@ -41,132 +41,15 @@ MotionEvent::MotionEvent() : EventBase(static_cast(MotionEventType MotionEvent::MotionEvent(const MotionEvent& in) : EventBase(static_cast(MotionEventType)) { - int motionDataArray[6] = {in.xTrans, in.yTrans, in.zTrans, in.xRot, in.yRot, in.zRot}; - importSettings(motionDataArray); + xTrans = in.xTrans; + yTrans = in.yTrans; + zTrans = in.zTrans; + xRot = in.xRot; + yRot = in.yRot; + zRot = in.zRot; handled = in.handled; } -float MotionEvent::convertPrefToSensitivity(int value) -{ - if (value < 0) - { - return ((0.6/50)*float(value) + 1); - } - else - { - return ((1.1/50)*float(value) + 1); - } -} - -void MotionEvent::importSettings(int* motionDataArray) -{ - ParameterGrp::handle group = App::GetApplication().GetUserParameter().GetGroup("BaseApp")->GetGroup("Spaceball")->GetGroup("Motion"); - - // here I import settings from a dialog. For now they are set as is - bool dominant = group->GetBool("Dominant"); // Is dominant checked - bool flipXY = group->GetBool("FlipYZ");; // Is Flip X/Y checked - float generalSensitivity = convertPrefToSensitivity(group->GetInt("GlobalSensitivity")); - - // array that has stored info about "Enabled" checkboxes of all axes - bool enabled[6]; - enabled[0] = group->GetBool("Translations", true) && group->GetBool("PanLREnable", true); - enabled[1] = group->GetBool("Translations", true) && group->GetBool("PanUDEnable", true); - enabled[2] = group->GetBool("Translations", true) && group->GetBool("ZoomEnable", true); - enabled[3] = group->GetBool("Rotations", true) && group->GetBool("TiltEnable", true); - enabled[4] = group->GetBool("Rotations", true) && group->GetBool("RollEnable", true); - enabled[5] = group->GetBool("Rotations", true) && group->GetBool("SpinEnable", true); - - // array that has stored info about "Reversed" checkboxes of all axes - bool reversed[6]; - reversed[0] = group->GetBool("PanLRReverse"); - reversed[1] = group->GetBool("PanUDReverse"); - reversed[2] = group->GetBool("ZoomReverse"); - reversed[3] = group->GetBool("TiltReverse"); - reversed[4] = group->GetBool("RollReverse"); - reversed[5] = group->GetBool("SpinReverse"); - - // array that has stored info about sliders - on each slider you need to use method DlgSpaceballSettings::GetValuefromSlider - // which will convert <-50, 50> linear integers from slider to <0.1, 10> exponential floating values - float sensitivity[6]; - sensitivity[0] = convertPrefToSensitivity(group->GetInt("PanLRSensitivity")); - sensitivity[1] = convertPrefToSensitivity(group->GetInt("PanUDSensitivity")); - sensitivity[2] = convertPrefToSensitivity(group->GetInt("ZoomSensitivity")); - sensitivity[3] = convertPrefToSensitivity(group->GetInt("TiltSensitivity")); - sensitivity[4] = convertPrefToSensitivity(group->GetInt("RollSensitivity")); - sensitivity[5] = convertPrefToSensitivity(group->GetInt("SpinSensitivity")); - - int i; - - if (group->GetBool("Calibrate")) - { - group->SetInt("CalibrationX",motionDataArray[0]); - group->SetInt("CalibrationY",motionDataArray[1]); - group->SetInt("CalibrationZ",motionDataArray[2]); - group->SetInt("CalibrationXr",motionDataArray[3]); - group->SetInt("CalibrationYr",motionDataArray[4]); - group->SetInt("CalibrationZr",motionDataArray[5]); - - group->RemoveBool("Calibrate"); - - return; - } - else - { - motionDataArray[0] = motionDataArray[0] - group->GetInt("CalibrationX"); - motionDataArray[1] = motionDataArray[1] - group->GetInt("CalibrationY"); - motionDataArray[2] = motionDataArray[2] - group->GetInt("CalibrationZ"); - motionDataArray[3] = motionDataArray[3] - group->GetInt("CalibrationXr"); - motionDataArray[4] = motionDataArray[4] - group->GetInt("CalibrationYr"); - motionDataArray[5] = motionDataArray[5] - group->GetInt("CalibrationZr"); - } - - if (dominant) { // if dominant is checked - int max = 0; - bool flag = false; - for (i = 0; i < 6; ++i) { - if (abs(motionDataArray[i]) > abs(max)) max = motionDataArray[i]; - } - for (i = 0; i < 6; ++i) { - if ((motionDataArray[i] != max) || (flag)) { - motionDataArray[i] = 0; - } else if (motionDataArray[i] == max){ - flag = true; - } - } - } - - if (flipXY) { - int temp = motionDataArray[1]; - motionDataArray[1] = motionDataArray[2]; - motionDataArray[2] = - temp; - } - - for (i = 0; i < 6; ++i) { - if (motionDataArray[i] != 0) { - if (enabled[i] == false) - motionDataArray[i] = 0; - else { - if (reversed[i] == true) - motionDataArray[i] = - motionDataArray[i]; - motionDataArray[i] = (int)((float)(motionDataArray[i]) * sensitivity[i] * generalSensitivity); - } - } - } - - xTrans = motionDataArray[0]; - yTrans = motionDataArray[1]; - zTrans = motionDataArray[2]; - xRot = motionDataArray[3]; - yRot = motionDataArray[4]; - zRot = motionDataArray[5]; -} - - -void MotionEvent::setMotionData(int &xTransIn, int &yTransIn, int &zTransIn, int &xRotIn, int &yRotIn, int &zRotIn){ - int motionDataArray[6] = {xTransIn, yTransIn, zTransIn, xRotIn, yRotIn, zRotIn}; - importSettings(motionDataArray); -} - void MotionEvent::translations(int &xTransOut, int &yTransOut, int &zTransOut) { xTransOut = xTrans; @@ -176,8 +59,9 @@ void MotionEvent::translations(int &xTransOut, int &yTransOut, int &zTransOut) void MotionEvent::setTranslations(const int &xTransIn, const int &yTransIn, const int &zTransIn) { - int motionDataArray[6] = {xTransIn, yTransIn, zTransIn, xRot, yRot, zRot}; - importSettings(motionDataArray); + xTrans = xTransIn; + yTrans = yTransIn; + zTrans = zTransIn; } void MotionEvent::rotations(int &xRotOut, int &yRotOut, int &zRotOut) @@ -189,8 +73,9 @@ void MotionEvent::rotations(int &xRotOut, int &yRotOut, int &zRotOut) void MotionEvent::setRotations(const int &xRotIn, const int &yRotIn, const int &zRotIn) { - int motionDataArray[6] = {xTrans, yTrans, zTrans, xRotIn, yRotIn, zRotIn}; - importSettings(motionDataArray); + xRot = xRotIn; + yRot = yRotIn; + zRot = zRotIn; } diff --git a/src/Gui/SpaceballEvent.h b/src/Gui/SpaceballEvent.h index 4f506a0b0..b07113e56 100644 --- a/src/Gui/SpaceballEvent.h +++ b/src/Gui/SpaceballEvent.h @@ -56,7 +56,6 @@ namespace Spaceball int rotationY(){return yRot;} int rotationZ(){return zRot;} - void setMotionData(int &xTransOut, int &yTransOut, int &zTransOut, int &xRotOut, int &yRotOut, int &zRotOut); static int MotionEventType; private: @@ -67,8 +66,6 @@ namespace Spaceball int yRot; int zRot; bool handled; - void importSettings(int* motionDataArray); - float convertPrefToSensitivity(int value); }; class ButtonEvent : public EventBase From 53c07cf744a5315837ad49631b079efcdebdf02c Mon Sep 17 00:00:00 2001 From: logari81 Date: Thu, 6 Sep 2012 14:21:55 +0200 Subject: [PATCH 96/98] Add missing dllexport keyword to PartDesign classes --- src/Mod/PartDesign/App/FeatureAdditive.h | 2 +- src/Mod/PartDesign/App/FeatureChamfer.h | 2 +- src/Mod/PartDesign/App/FeatureDressUp.h | 2 +- src/Mod/PartDesign/App/FeatureFace.h | 2 +- src/Mod/PartDesign/App/FeatureFillet.h | 2 +- src/Mod/PartDesign/App/FeatureGroove.h | 2 +- src/Mod/PartDesign/App/FeatureHole.h | 2 +- src/Mod/PartDesign/App/FeaturePad.h | 2 +- src/Mod/PartDesign/App/FeaturePocket.h | 2 +- src/Mod/PartDesign/App/FeatureRevolution.h | 2 +- src/Mod/PartDesign/App/FeatureSubtractive.h | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Mod/PartDesign/App/FeatureAdditive.h b/src/Mod/PartDesign/App/FeatureAdditive.h index 0c992321a..fd213cf29 100644 --- a/src/Mod/PartDesign/App/FeatureAdditive.h +++ b/src/Mod/PartDesign/App/FeatureAdditive.h @@ -33,7 +33,7 @@ namespace PartDesign { -class Additive : public SketchBased +class PartDesignExport Additive : public SketchBased { PROPERTY_HEADER(PartDesign::Additive); diff --git a/src/Mod/PartDesign/App/FeatureChamfer.h b/src/Mod/PartDesign/App/FeatureChamfer.h index 16bbc1246..bcd5b36f9 100644 --- a/src/Mod/PartDesign/App/FeatureChamfer.h +++ b/src/Mod/PartDesign/App/FeatureChamfer.h @@ -31,7 +31,7 @@ namespace PartDesign { -class Chamfer : public DressUp +class PartDesignExport Chamfer : public DressUp { PROPERTY_HEADER(PartDesign::Chamfer); diff --git a/src/Mod/PartDesign/App/FeatureDressUp.h b/src/Mod/PartDesign/App/FeatureDressUp.h index e439172f2..44236f26a 100644 --- a/src/Mod/PartDesign/App/FeatureDressUp.h +++ b/src/Mod/PartDesign/App/FeatureDressUp.h @@ -30,7 +30,7 @@ namespace PartDesign { -class DressUp : public PartDesign::Feature +class PartDesignExport DressUp : public PartDesign::Feature { PROPERTY_HEADER(PartDesign::DressUp); diff --git a/src/Mod/PartDesign/App/FeatureFace.h b/src/Mod/PartDesign/App/FeatureFace.h index b2277989a..b30ec92ef 100644 --- a/src/Mod/PartDesign/App/FeatureFace.h +++ b/src/Mod/PartDesign/App/FeatureFace.h @@ -29,7 +29,7 @@ namespace PartDesign { -class Face : public Part::Part2DObject +class PartDesignExport Face : public Part::Part2DObject { PROPERTY_HEADER(PartDesign::Face); diff --git a/src/Mod/PartDesign/App/FeatureFillet.h b/src/Mod/PartDesign/App/FeatureFillet.h index 53a638c85..57bdd9fae 100644 --- a/src/Mod/PartDesign/App/FeatureFillet.h +++ b/src/Mod/PartDesign/App/FeatureFillet.h @@ -31,7 +31,7 @@ namespace PartDesign { -class Fillet : public DressUp +class PartDesignExport Fillet : public DressUp { PROPERTY_HEADER(PartDesign::Fillet); diff --git a/src/Mod/PartDesign/App/FeatureGroove.h b/src/Mod/PartDesign/App/FeatureGroove.h index 782e728cb..5f17ce092 100644 --- a/src/Mod/PartDesign/App/FeatureGroove.h +++ b/src/Mod/PartDesign/App/FeatureGroove.h @@ -30,7 +30,7 @@ namespace PartDesign { -class Groove : public SketchBased +class PartDesignExport Groove : public SketchBased { PROPERTY_HEADER(PartDesign::Groove); diff --git a/src/Mod/PartDesign/App/FeatureHole.h b/src/Mod/PartDesign/App/FeatureHole.h index 9a8e5a52b..e202544ab 100644 --- a/src/Mod/PartDesign/App/FeatureHole.h +++ b/src/Mod/PartDesign/App/FeatureHole.h @@ -30,7 +30,7 @@ namespace PartDesign { -class Hole : public Subtractive +class PartDesignExport Hole : public Subtractive { PROPERTY_HEADER(PartDesign::Hole); diff --git a/src/Mod/PartDesign/App/FeaturePad.h b/src/Mod/PartDesign/App/FeaturePad.h index 91bdeff59..8c9787685 100644 --- a/src/Mod/PartDesign/App/FeaturePad.h +++ b/src/Mod/PartDesign/App/FeaturePad.h @@ -31,7 +31,7 @@ namespace PartDesign { -class Pad : public Additive +class PartDesignExport Pad : public Additive { PROPERTY_HEADER(PartDesign::Pad); diff --git a/src/Mod/PartDesign/App/FeaturePocket.h b/src/Mod/PartDesign/App/FeaturePocket.h index b9b47aa72..cab10b16a 100644 --- a/src/Mod/PartDesign/App/FeaturePocket.h +++ b/src/Mod/PartDesign/App/FeaturePocket.h @@ -30,7 +30,7 @@ namespace PartDesign { -class Pocket : public Subtractive +class PartDesignExport Pocket : public Subtractive { PROPERTY_HEADER(PartDesign::Pocket); diff --git a/src/Mod/PartDesign/App/FeatureRevolution.h b/src/Mod/PartDesign/App/FeatureRevolution.h index ed11adc06..19166e2d5 100644 --- a/src/Mod/PartDesign/App/FeatureRevolution.h +++ b/src/Mod/PartDesign/App/FeatureRevolution.h @@ -30,7 +30,7 @@ namespace PartDesign { -class Revolution : public SketchBased +class PartDesignExport Revolution : public SketchBased { PROPERTY_HEADER(PartDesign::Revolution); diff --git a/src/Mod/PartDesign/App/FeatureSubtractive.h b/src/Mod/PartDesign/App/FeatureSubtractive.h index f0fe1cd3c..450f457ee 100644 --- a/src/Mod/PartDesign/App/FeatureSubtractive.h +++ b/src/Mod/PartDesign/App/FeatureSubtractive.h @@ -32,7 +32,7 @@ namespace PartDesign { -class Subtractive : public SketchBased +class PartDesignExport Subtractive : public SketchBased { PROPERTY_HEADER(PartDesign::Subtractive); From de81ba90e14c3e3427b27c8bae2aa5bbae1535f3 Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 6 Sep 2012 15:01:03 +0200 Subject: [PATCH 97/98] Fix trailing whitespaces, handle language change events --- src/Gui/DlgCustomizeSpNavSettings.cpp | 46 ++++++++++++++------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/Gui/DlgCustomizeSpNavSettings.cpp b/src/Gui/DlgCustomizeSpNavSettings.cpp index 9a7113737..808bee740 100644 --- a/src/Gui/DlgCustomizeSpNavSettings.cpp +++ b/src/Gui/DlgCustomizeSpNavSettings.cpp @@ -31,7 +31,7 @@ using namespace Gui::Dialog; DlgCustomizeSpNavSettings::DlgCustomizeSpNavSettings(QWidget *parent) : CustomizeActionPage(parent) -{ +{ GUIApplicationNativeEventAware *app = qobject_cast(QApplication::instance()); if (!app) @@ -62,9 +62,11 @@ void DlgCustomizeSpNavSettings::setMessage(const QString& message) this->setLayout(layout); } - void DlgCustomizeSpNavSettings::changeEvent(QEvent *e) { + if (e->type() == QEvent::LanguageChange) { + this->retranslateUi(this); + } QWidget::changeEvent(e); } @@ -195,12 +197,12 @@ void DlgCustomizeSpNavSettings::on_CBEnablePanLR_clicked() void DlgCustomizeSpNavSettings::on_CBReversePanLR_clicked() { spaceballMotionGroup()->SetBool("PanLRReverse", CBReversePanLR->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderPanLR_sliderReleased() { spaceballMotionGroup()->SetInt("PanLRSensitivity", SliderPanLR->value()); -} +} void DlgCustomizeSpNavSettings::on_CBEnablePanUD_clicked() { @@ -208,17 +210,17 @@ void DlgCustomizeSpNavSettings::on_CBEnablePanUD_clicked() CBReversePanUD->setEnabled(CBEnablePanUD->isChecked()); SliderPanUD ->setEnabled(CBEnablePanUD->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_CBReversePanUD_clicked() { spaceballMotionGroup()->SetBool("PanUDReverse", CBReversePanUD->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderPanUD_sliderReleased() { spaceballMotionGroup()->SetInt("PanUDSensitivity", SliderPanUD->value()); -} +} void DlgCustomizeSpNavSettings::on_CBEnableZoom_clicked() { @@ -226,17 +228,17 @@ void DlgCustomizeSpNavSettings::on_CBEnableZoom_clicked() CBReverseZoom ->setEnabled(CBEnableZoom->isChecked()); SliderZoom ->setEnabled(CBEnableZoom->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_CBReverseZoom_clicked() { spaceballMotionGroup()->SetBool("ZoomReverse", CBReverseZoom->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderZoom_sliderReleased() { spaceballMotionGroup()->SetInt("ZoomSensitivity", SliderZoom->value()); -} +} void DlgCustomizeSpNavSettings::on_CBEnableTilt_clicked() { @@ -244,17 +246,17 @@ void DlgCustomizeSpNavSettings::on_CBEnableTilt_clicked() CBReverseTilt->setEnabled(CBEnableTilt->isChecked()); SliderTilt ->setEnabled(CBEnableTilt->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_CBReverseTilt_clicked() { spaceballMotionGroup()->SetBool("TiltReverse", CBReverseTilt->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderTilt_sliderReleased() { spaceballMotionGroup()->SetInt("TiltSensitivity", SliderTilt->value()); -} +} void DlgCustomizeSpNavSettings::on_CBEnableRoll_clicked() { @@ -262,17 +264,17 @@ void DlgCustomizeSpNavSettings::on_CBEnableRoll_clicked() CBReverseRoll->setEnabled(CBEnableRoll->isChecked()); SliderRoll ->setEnabled(CBEnableRoll->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_CBReverseRoll_clicked() { spaceballMotionGroup()->SetBool("RollReverse", CBReverseRoll->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderRoll_sliderReleased() { spaceballMotionGroup()->SetInt("RollSensitivity", SliderRoll->value()); -} +} void DlgCustomizeSpNavSettings::on_CBEnableSpin_clicked() { @@ -280,12 +282,12 @@ void DlgCustomizeSpNavSettings::on_CBEnableSpin_clicked() CBReverseSpin->setEnabled(CBEnableSpin->isChecked()); SliderSpin ->setEnabled(CBEnableSpin->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_CBReverseSpin_clicked() { spaceballMotionGroup()->SetBool("SpinReverse", CBReverseSpin->isChecked()); -} +} void DlgCustomizeSpNavSettings::on_SliderSpin_sliderReleased() { @@ -294,17 +296,17 @@ void DlgCustomizeSpNavSettings::on_SliderSpin_sliderReleased() void DlgCustomizeSpNavSettings::onAddMacroAction(const QByteArray ¯oName) { - //don't think I need to do anything here. + //don't need to do anything here. } void DlgCustomizeSpNavSettings::onRemoveMacroAction(const QByteArray ¯oName) { - //don't think I need to do anything here. + //don't need to do anything here. } void DlgCustomizeSpNavSettings::onModifyMacroAction(const QByteArray ¯oName) { - //don't think I need to do anything here. + //don't need to do anything here. } -#include "moc_DlgCustomizeSpNavSettings.cpp" \ No newline at end of file +#include "moc_DlgCustomizeSpNavSettings.cpp" From 1d5f4147f1e91de14306339d3e4e83d5cae7b472 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 6 Sep 2012 11:16:47 -0300 Subject: [PATCH 98/98] Draft: fixed radius dimension symbols --- src/Mod/Draft/Draft.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Mod/Draft/Draft.py b/src/Mod/Draft/Draft.py index eadde9144..471cafad6 100644 --- a/src/Mod/Draft/Draft.py +++ b/src/Mod/Draft/Draft.py @@ -520,10 +520,10 @@ def makeDimension(p1,p2,p3=None,p4=None): obj.Base = p1 if p3 == "radius": obj.LinkedVertices = [p2,1,1] - obj.ViewObject.Override = "rdim" + obj.ViewObject.Override = "Rdim" elif p3 == "diameter": obj.LinkedVertices = [p2,2,1] - obj.ViewObject.Override = "ddim" + obj.ViewObject.Override = "Ddim" p3 = p4 if not p3: p3 = obj.Base.Shape.Edges[0].Curve.Center.add(Vector(1,0,0))