Macro Corner shapes wizard/de: Difference between revisions
(Updating to match new version of source page) |
mNo edit summary |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Macro/de |
|||
{{Macro/de|Icon=Text-x-python|Name=Corner shapes wizard|Name/de=Corner shapes wizard|Description=This macro is a complete application, it pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.|Author=Nicotuf|Version=1.0|Date=2011-08-01}} |
|||
|Name=Corner shapes wizard |
|||
|Translate=Corner shapes wizard |
|||
⚫ | |||
|Description=Dieses Makro ist eine vollständige Anwendung. Es öffnet sich ein Dialogfeld, in dem Sie nach den Abmessungen Ihres Eckstücks gefragt werden. Anschließend wird das Objekt im Dokument erstellt und eine Seitenansicht mit den Ansichten von oben, von vorne und von der Seite erstellt.<br/>This macro use the DrawingWorkBench |
|||
|Author=Nicotuf |
|||
|Version=1.0 |
|||
|Date=2011-08-01 |
|||
|FCVersion= <= 0.17 |
|||
|Download=[https://www.freecadweb.org/wiki/images/6/60/Macro_Corner_shapes_wizard.png ToolBar Icon] |
|||
⚫ | |||
== |
==Beschreibung== |
||
Dieses Makro ist eine vollständige Anwendung. Es öffnet ein Dialogfeld, in dem Sie nach den Abmessungen Ihres Eckstücks gefragt werden. Anschließend wird das Objekt im Dokument erstellt und eine Seitenansicht mit den Ansichten von oben, von vorne und von der Seite erstellt. |
|||
This macro is a complete application, it pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br /> |
|||
Es gibt einen [[Macro_Corner_shapes_wizard/update|modifizierte Version]] mit Änderungs-GUI. |
|||
[[File:CornerShape1.png]] |
[[File:CornerShape1.png]] |
||
{{clear}} |
|||
===Script=== |
|||
⚫ | |||
==Skript== |
|||
{{Code|code= |
|||
ToolBar Icon [[Image:Macro_Corner_shapes_wizard.png]] |
|||
'''Macro_Corner_shapes_wizard.FCMacro''' |
|||
<!--NOT CHANGE THE <pre> </pre> BALISE CAUSE THE PIPE IN MACRO CODE CUT THE MACRO--> |
|||
<pre> |
|||
# -*- coding:utf-8 -*- |
# -*- coding:utf-8 -*- |
||
Line 185: | Line 199: | ||
dialog.show() |
dialog.show() |
||
</pre> |
|||
⚫ | |||
{{clear}} |
{{clear}} |
Latest revision as of 14:14, 24 July 2019
Beschreibung |
---|
Dieses Makro ist eine vollständige Anwendung. Es öffnet sich ein Dialogfeld, in dem Sie nach den Abmessungen Ihres Eckstücks gefragt werden. Anschließend wird das Objekt im Dokument erstellt und eine Seitenansicht mit den Ansichten von oben, von vorne und von der Seite erstellt. This macro use the DrawingWorkBench Versionsmakro : 1.0 Datum der letzten Änderung : 2011-08-01 FreeCAD version : <= 0.17 Herunterladen : ToolBar Icon Autor: Nicotuf |
Autor |
Nicotuf |
Herunterladen |
ToolBar Icon |
Links |
Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
Macro-Version |
1.0 |
Datum der letzten Änderung |
2011-08-01 |
FreeCAD-Version(s) |
<= 0.17 |
Standardverknüpfung |
None |
Siehe auch |
None |
Beschreibung
Dieses Makro ist eine vollständige Anwendung. Es öffnet ein Dialogfeld, in dem Sie nach den Abmessungen Ihres Eckstücks gefragt werden. Anschließend wird das Objekt im Dokument erstellt und eine Seitenansicht mit den Ansichten von oben, von vorne und von der Seite erstellt.
Es gibt einen modifizierte Version mit Änderungs-GUI.
Skript
Macro_Corner_shapes_wizard.FCMacro
# -*- coding:utf-8 -*- ##################################### # Importation de fonctions externes : #from os import * import FreeCAD, FreeCADGui, Part, Draft, math, MeshPart, Mesh, Drawing #from PyQt4 import QtGui,QtCore from PySide import QtGui,QtCore from FreeCAD import Base App=FreeCAD Gui=FreeCADGui ################################## # Défnition Class : class Corniere: def __init__(self, obj): obj.addProperty("App::PropertyLength","L1","Corniere","Largeur 1").L1=20.0 obj.addProperty("App::PropertyLength","L2","Corniere","Largeur 2").L2=20.0 obj.addProperty("App::PropertyLength","e1","Corniere","Epaisseur 1").e1=2.0 #obj.addProperty("App::PropertyLength","e2","Corniere","Epaisseur 2").e2=2.0 obj.addProperty("App::PropertyLength","Longueur","Corniere","Longueur").Longueur=200.0 obj.Proxy = self def execute(self, fp): P1=Base.Vector(fp.e1,fp.e1,0) S1=Part.makeBox(fp.L1,fp.L2,fp.Longueur) S2=Part.makeBox(fp.L1-fp.e1,fp.L2-fp.e1,fp.Longueur,P1) fp.Shape=S1.cut(S2) ################################## # Défnition locale de fonctions : def proceed(): QtGui.qApp.setOverrideCursor(QtCore.Qt.WaitCursor) if FreeCAD.ActiveDocument==None: FreeCAD.newDocument("Corniere") oldDocumentObjects=App.ActiveDocument.Objects try: QL1 = float(l1.text()) QL2 = float(l2.text()) Qe = float(l3.text()) QLongueur = float(l4.text()) except: FreeCAD.Console.PrintError("Wrong input! Only numbers allowed...\n") Cor=FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Corniere") Corniere(Cor) Cor.ViewObject.Proxy=0 Cor.L1=QL1 Cor.L2=QL2 Cor.e1=Qe Cor.Longueur=QLongueur App.ActiveDocument.recompute() Gui.SendMsgToActiveView("ViewFit") QtGui.qApp.restoreOverrideCursor() Plan(Cor) dialog.hide() def hide(): dialog.hide() def Plan(obj): ObjetProjete=obj.Shape TailleX=ObjetProjete.BoundBox.XLength TailleY=ObjetProjete.BoundBox.YLength TailleZ=ObjetProjete.BoundBox.ZLength page = App.activeDocument().addObject('Drawing::FeaturePage','Page') page.Template = App.getResourceDir()+'Mod/Drawing/Templates/A3_Landscape.svg' vueprofil = App.activeDocument().addObject('Drawing::FeatureViewPart','VueProfil') vueprofil.Source = obj vueprofil.Direction = (0.0,0.0,1.0) vueprofil.Scale = 1.0 vueprofil.X = 50.0 vueprofil.Y = 50.0 page.addObject(vueprofil) vuegauche = App.activeDocument().addObject('Drawing::FeatureViewPart','Vuegauche') vuegauche.Source = obj vuegauche.Direction = (-1.0,0.0,0.0) vuegauche.ShowHiddenLines = True vuegauche.Scale = 1.0 vuegauche.Rotation = 180.0 vuegauche.X = 50.0+TailleX/2+TailleX vuegauche.Y = 50.0 page.addObject(vuegauche) vuedessus = App.activeDocument().addObject('Drawing::FeatureViewPart','Vuedessus') vuedessus.Source = obj vuedessus.Direction = (0.0,-1.0,0.0) vuedessus.ShowHiddenLines = True vuedessus.Scale = 1.0 vuedessus.Rotation = 180.0 vuedessus.X = 50.0+TailleX/2+TailleX vuedessus.Y = 50.0+TailleX/2+TailleY+TailleX page.addObject(vuedessus) vueiso = App.activeDocument().addObject('Drawing::FeatureViewPart','VueIso') vueiso.Source = obj vueiso.Direction = (-1.0,-1.0,0.5) vueiso.Scale = 1.0 vueiso.ShowSmoothLines = True vueiso.X = TailleZ+TailleX/2 vueiso.Y = 7*TailleZ+3*TailleY page.addObject(vueiso) App.activeDocument().recompute() PageFile = open(page.PageResult,'r') OutFile = open('temp.svg','w') OutFile.write(PageFile.read()) del OutFile,PageFile dialog = QtGui.QDialog() dialog.resize(200,200) dialog.setWindowTitle("Corniere") la = QtGui.QVBoxLayout(dialog) e1 = QtGui.QLabel("Dimensions de la corniere") commentFont=QtGui.QFont("Arial",10,True) e1.setFont(commentFont) la.addWidget(e1) t1 = QtGui.QLabel("L1") la.addWidget(t1) l1 = QtGui.QLineEdit() l1.setText("20") la.addWidget(l1) t2 = QtGui.QLabel("L2") la.addWidget(t2) l2 = QtGui.QLineEdit() l2.setText("20") la.addWidget(l2) t3 = QtGui.QLabel("e") la.addWidget(t3) l3 = QtGui.QLineEdit() l3.setText("2") la.addWidget(l3) t4 = QtGui.QLabel("Longueur") la.addWidget(t4) l4 = QtGui.QLineEdit() l4.setText("300") la.addWidget(l4) okbox = QtGui.QDialogButtonBox(dialog) okbox.setOrientation(QtCore.Qt.Horizontal) okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) la.addWidget(okbox) QtCore.QObject.connect(okbox, QtCore.SIGNAL("accepted()"), proceed) QtCore.QObject.connect(okbox, QtCore.SIGNAL("rejected()"), hide) QtCore.QMetaObject.connectSlotsByName(dialog) dialog.show()