Cette macro peut faire pivoter l'écran selon un angle défini et l'axe défini et crée un plan pour faire face à l'écran afin de créer un formulaire dans les positions du plan spécifiées : la face sélectionnée faisant face à l'écran, pour détecter la position de la caméra, aligner la vue sur la face ou sur l'axe, aligner l'objet à voir.
Version macro : 0.15b Date dernière modification : 2024/12/19 Version FreeCAD : 1.0 et plus Téléchargement : Icône de la barre d'outils Auteur: Mario52
Cette macro permet de faire pivoter l'écran selon un angle et un axe définis et de créer un plan face à l'écran pour créer une forme dans le plan spécifié, de positionner la face sélectionnée face à l'écran, de détecter la position de la caméra, d'aligner la vue sur la face ou sur l'axe, d'aligner l'objet sur la vue.
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro
# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.
from PySide import QtGui, QtCore
diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
"Information",
"This macro must be downloaded from this link\n"
"\n"
"https://gist.githubusercontent.com/mario52a/4aa545c23b323cf68824/raw/b31c64d26788b796750095eca4a6b92803537732/Macro%2520FCCamera.FCMacro" + "\n"
"\n"
"Quit this window to access the download page")
diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()
import webbrowser
webbrowser.open("https://gist.githubusercontent.com/mario52a/4aa545c23b323cf68824/raw/b31c64d26788b796750095eca4a6b92803537732/Macro%2520FCCamera.FCMacro")
Camera of Axis : boîte de dialogue pour entrer les valeurs de rotation en degrés (la rotation se fait sur un angle à la fois).
Angle de rotation de l'axe en degrés : sélectionner l'axe de rotation X, Y ou Z.
Axe of rotation
Accept the rotation : effectue la rotation selon l'angle donné.
Virtual
Detect camera orientation : détecte l'orientation de la camera et affiche les résultats dans la vue rapport. Les valeurs retournées proviennent de la fonction getCameraOrientation().
Align view to face selected
To Face. : aligne la face sélectionnée sur la vue 3D (face à l'écran). Chaque clic change la vue de l'objet sélectionné pour NormalAt : "(0,0,1) (0,0,-1) (0,1,0) (0,-1,0) (1,0,0) (-1,0,0)"
To Axis. : aligne la vue sur la face de l'axe sélectionnée. (face à l'écran). Chaque clic change la vue de l'objet sélectionné pour Surface Axis : "(0,0,1) (0,0,-1) (0,1,0) (0,-1,0) (1,0,0) (-1,0,0)"
Align object to view. : aligne l'objet sélectionné à la vue en cours. Les valeurs modifiées sont : Rotation Axis((X, Y, Z), Angle), Euler angles identiques : Lacet (Yaw), Tangage (Pitch), Roulis (Roll), la translation n'est pas modifiée.
Create plane of view. : un plan circulaire est créé face à l'écran aux coordonnées du clic de souris sur l'objet. Le rayon du plan circulaire est égal à la plus grande dimension du boîte englobante. Si aucun objet n'est sélectionné le plan est créé aux coordonnées 0, 0, 0 avec un rayon de 20 mm. Le rayon du plan par défaut peut être modifié à la ligne 515 :
rayon=20# Radius of plane
Reset. : réinitialise toutes les valeurs
Photo. : section enregistrant la rotation de l'écran d'une image en valeur d'angle
Quit. : quitter FCCamera
Section Photo
FCCamera
ComboBox Actual : choisir la définition de l'écran déterminera les dimensions de l'image
Available (pre-defined) :
"Actual" (définition en cours de l'écran)
"Icon 16 x 16"
"Icon 32 x 32"
"Icon 64 x 64"
"Icon 128 x 128"
"CGA 320 x 200"
"QVGA 320 x 240"
"VGA 640 x 480"
"SVGA 800 x 600"
"XGA 1024 x 768"
"XGA+ 1152 x 864"
"SXGA 1280 x 1024"
"SXGA+ 1400 x 1050"
"UXGA 1600 x 1200"
"QXGA 2048 x 1536"
"Free"
SpinBox X and Y
ComboBox Format image
Available :
"BMP *.bmp"
"ICO *.ico"
"JPEG *.jpeg"
"JPG *.jpg"
"PNG *.png" (by default)
"PPM *.ppm"
"TIF *.tif"
"TIFF *.tiff"
"XBM *.xbm"
"XPM *.xpm"
Line 1 : nombre d'images calculées avec l'angle donné (ex : angle 60 degrés = 360 (rotation complete) / 60 (angle) = 6 images
Line 2 : définition de l'écran utilisé
Background image :
Actual : sauve l'image avec écran et couleurs actuels
White : sauve l'image avec écran fond blanc
Black : sauve l'image avec écran fond noir
Launch : ouvrir la fenêtre du fichier, donner le nom et le chemin d'accès.
Reset : réinitialiser la valeur par défaut
Return : quitter le panneau photo et revenir au panneau FCCamera
Créez votre cylindre et positionnez le ainsi. Donnez votre axe, angle et cliquez sur le bouton Accept the rotation
Sélectionnez le cylindre qui servira de forage
Dans FCCamera, cliquez sur le bouton Align Object to View
Le cylindre se déplace de 15 degrés (il prend la position de la caméra). Effectuez votre opération booléenne.
Votre perçage est à 15 degrés
Le même résultat peut être obtenu en créant un plan dans le coin donné par la position du clic de la souris et une esquisse.
Exemple du positionnement d'un ressort sur un axe d'une face
Exemple d'utilisation de la section photo rotation avec sauvegarde des fichiers images (vous pouvez créer un Gif animé avec GIMP)
Versions
ver 0.15, 0.15b (19/12/2024): adaptation et retour sur PySide, (FCCamera macro can't find Pyside2) correction de web acces et remplacé WebGui parwebbrowser
ver 0.5 06/09/2016 : correction du nom "FCCamera_Axis_rotation_X.png" dans le bloc reset
ver 0.4 28/02/2016 : affichage de tous les renseignements de la caméra et calcul de la Direction
ver 0.3 18/03/2015 : modié line 492 remplacé "pl.Base = App.Vector(0,0,0)" par "pl.Base = sel[0].Placement.Base" maintenant ne se déplace plus la forme au point (0,0,0) mais à partir des coordonnées d'origine
ver 0.2 25/02/2015 : correction des noms des fichiers (Linux est sensible à la casse) merci microelly2