Macro Select Hovering/it: Difference between revisions

From FreeCAD Documentation
(Created page with "==Vincolo==")
(Updating to match new version of source page)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{Macro/it
{{Macro/it
|Name=Macro Select Hovering
|Name=Macro Select Hovering
Line 11: Line 12:
|Download=[https://www.freecadweb.org/wiki/images/d/d8/Macro_Select_Hovering.png ToolBar Icon]
|Download=[https://www.freecadweb.org/wiki/images/d/d8/Macro_Select_Hovering.png ToolBar Icon]
}}
}}
</div>


<span id="Description"></span>
[[File:Select_Hovering00.gif|Macro Select Hovering]]


[[File:Macro Select Hovering 00.png|Macro Select Hovering]]

==Descrizione==
==Descrizione==


Questa macro seleziona a scelta una Faccia, Bordo, Vertice passando sopra con il mouse
Questa macro seleziona a scelta una Faccia, Bordo, Vertice passando sopra con il mouse


PS: Per deselezionare una faccia (o altro) cliccare {{KEY | Pause grab}} e usare la procedura standard: CTRL + Click


[[File:Select_Hovering00.gif|Macro Select Hovering]]
== Utilizzo ==
Passare sopra agli elementi con il mouse
===Icone===
L'icona deve essere copiata nella stessa directory della macro
==Script==
L'icona per la barra degli strumenti [[File:Macro Select Hovering.png|Macro Select Hovering]]


'''Macro_Select_Hovering.FCMacro'''


{{Codeextralink|https://gist.githubusercontent.com/mario52a/7ebe6b3fd047441114d9d0e08ceddd63/raw/f9dea03a0327b48c76a7c3e9d7cd391b5093a8cf/Macro%2520Select%2520Hovering.FCMacro}}
{{MacroCode|code=
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
#
"""
***************************************************************************
* Copyright (c) 2017 2018 2019 2020 <mario52> *
* *
* This file is a supplement to 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. *
* *
* This software 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 macro; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
* USA *
***************************************************************************
* WARNING! All changes in this file will be lost and *
* may cause malfunction of the program *
***************************************************************************
"""
#
#Macro_ _01-25/12/2017 02-26/12/2017 03-26/12/2017 03b-28/10/2020
#
#OS: Windows 10
#Word size of OS: 64-bit
#Word size of FreeCAD: 64-bit
#Version: 0.16.6712 (Git)
#Build type: Release
#Branch: releases/FreeCAD-0-16
#Hash: da2d364457257a7a8c6fb2137cea12c45becd71a
#Python version: 2.7.8
#Qt version: 4.8.7
#Coin version: 4.0.0a
#OCC version: 6.8.0.oce-0.17
#
__title__ = "Macro_Select_Hovering"
__author__ = "Mario52"
__url__ = "http://www.freecadweb.org/index-fr.html"
__Wiki__ = "http://www.freecadweb.org/wiki/index.php?title=Macro_Select_Hovering"
__version__ = "00.03b"
__date__ = "28/10/2020"


import PySide
from PySide import QtGui ,QtCore
from PySide.QtGui import *
from PySide.QtCore import *
import Draft, Part, PartGui, FreeCADGui, FreeCAD


[[File:Macro Select Hovering 00.png|Macro Select Hovering]]
Gui = FreeCADGui
App = FreeCAD


<div class="mw-translate-fuzzy">
global ui ; ui = ""
PS: Per deselezionare una faccia (o altro) cliccare {{KEY | Pause grab}} e usare la procedura standard: CTRL + Click
global s ; s = ""
</div>


<span id="How_To_Use"></span>
try:
== Utilizzo ==
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s


Passare sopra agli elementi con il mouse
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)


====Section Face====
class Ui_MainWindow(object):


{{CheckBox}} Select Face → 3 number of face(s)
def __init__(self, MainWindow):
{{LineEdit|300.0}} area total of selections
self.window = MainWindow
{{LineEdit|100.0}} area of the latest selection
#################################################################################
#self.path = FreeCAD.ConfigGet("AppHomePath")
#self.path = FreeCAD.ConfigGet("UserAppData")
#self.path = "your path"
param = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Macro")# macro path
self.path = param.GetString("MacroPath","") + "/" # macro path
self.path = self.path.replace("\\","/")
# print( "Path for the icons : " , self.path)
#################################################################################
self.FontImpost = "Arial"
self.fontGlobal_08 = QtGui.QFont() # pour compatibilite Windows Linux
self.fontGlobal_08.setFamily(self.FontImpost) # pour compatibilite Windows Linux
self.fontGlobal_08.setPointSize(8.0) # pour compatibilite Windows Linux
#self.xxxx.setFont(self.fontGlobal_08) # pour W L
#self.xxxx.setFont(QtGui.QFont(self.FontImpost,weight=QtGui.QFont.Bold)) # Bold
#################################################################################


====Section Edge====
self.comptFace = 0
self.comptEdge = 0
self.comptVertex = 0
self.Stop_Grab = 1
self.comptSurfaceFace = 0.0
self.comptSurfaceTotal = 0.0
self.comptLengthObject = 0.0
self.comptLengthTotal = 0.0


{{CheckBox}} Select Edge → 4 number of edge(s)
def setupUi(self, MainWindow):
{{LineEdit|40.0}} length total of selections
MainWindow.resize(197, 307)
{{LineEdit|10.0}} length of the latest selection
MainWindow.setMinimumSize(QtCore.QSize(197, 307))
MainWindow.setMaximumSize(QtCore.QSize(197, 307))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))


====Section Vertex====
self.GBOX_01_Face = QtGui.QGroupBox(self.centralwidget)
self.GBOX_01_Face.setGeometry(QtCore.QRect(10, 10, 176, 91))
self.GBOX_01_Face.setFont(self.fontGlobal_08) # pour W L
self.GBOX_01_Face.setObjectName(_fromUtf8("GBOX_01_Face"))


{{CheckBox}} Select Vertex → 1 number of vertex(s)
self.LE_02_Area_Object = QtGui.QLineEdit(self.GBOX_01_Face)
self.LE_02_Area_Object.setGeometry(QtCore.QRect(90, 60, 75, 20))
self.LE_02_Area_Object.setFont(self.fontGlobal_08) # pour W L
self.LE_02_Area_Object.setObjectName(_fromUtf8("LE_02_Area_Object"))


====Section Main====
self.LAB_05_Area_Object = QtGui.QLabel(self.GBOX_01_Face)
self.LAB_05_Area_Object.setGeometry(QtCore.QRect(90, 40, 71, 16))
self.LAB_05_Area_Object.setFont(self.fontGlobal_08) # pour W L
self.LAB_05_Area_Object.setObjectName(_fromUtf8("LAB_05_Area_Object"))


Title display info of the :
self.CB_01_Sel_Face = QtGui.QCheckBox(self.GBOX_01_Face)
*( Obj: 1 ) : number object(s) selected
self.CB_01_Sel_Face.setGeometry(QtCore.QRect(10, 20, 91, 17))
*( Sub: 8 ) : number of Sub object(s) selected
self.CB_01_Sel_Face.setFont(self.fontGlobal_08) # pour W L
*( Tot: 9 ) : Somme Obj + Sub
self.CB_01_Sel_Face.setObjectName(_fromUtf8("CB_01_Sel_Face"))


{{LineEdit|Unnamed: Box. Face6 (1.34,2.64,10.0)}}
self.LE_01_Area_Total = QtGui.QLineEdit(self.GBOX_01_Face)
self.LE_01_Area_Total.setGeometry(QtCore.QRect(10, 60, 75, 20))
self.LE_01_Area_Total.setFont(self.fontGlobal_08) # pour W L
self.LE_01_Area_Total.setObjectName(_fromUtf8("LE_01_Area_Total"))


* display little info and info below the cursor mouse
self.LAB_01_Face = QtGui.QLabel(self.GBOX_01_Face)
self.LAB_01_Face.setGeometry(QtCore.QRect(110, 23, 56, 16))
self.LAB_01_Face.setFont(self.fontGlobal_08) # pour W L
self.LAB_01_Face.setObjectName(_fromUtf8("LAB_01_Face"))


{{ComboBox|Unnamed: 1 : (8 sel.) (Obj. 1, Fa. 3, Ed. 4, Ve. 1) }}
self.LAB_04_Area_Total = QtGui.QLabel(self.GBOX_01_Face)
self.LAB_04_Area_Total.setGeometry(QtCore.QRect(10, 40, 56, 16))
self.LAB_04_Area_Total.setFont(self.fontGlobal_08) # pour W L
self.LAB_04_Area_Total.setObjectName(_fromUtf8("LAB_04_Area_Total"))


*Name of document
*8 selections
*Obj. 1 object
*Fa. 3 faces
*Ed. 4 edges
*Ve. 1 vertex
*If you use several document the macro restores only the selection in the document open (to work)
*The toolTip display the listing of the selected document Name and subObject


[[File:Macro_Select_Hovering_01.png|Info objects memorized displayed]]
self.GBOX_02_Edge = QtGui.QGroupBox(self.centralwidget)
self.GBOX_02_Edge.setGeometry(QtCore.QRect(10, 105, 176, 91))
self.GBOX_02_Edge.setFont(self.fontGlobal_08) # pour W L
self.GBOX_02_Edge.setObjectName(_fromUtf8("GBOX_02_Edge"))


{{Button|Selected by Box}}
self.LAB_02_Edge = QtGui.QLabel(self.GBOX_02_Edge)
self.LAB_02_Edge.setGeometry(QtCore.QRect(110, 25, 56, 16))
self.LAB_02_Edge.setFont(self.fontGlobal_08) # pour W L
self.LAB_02_Edge.setObjectName(_fromUtf8("LAB_02_Edge"))


*if you select by the Box selection this button select all objects checked of the selection
self.CB_02_Sel_Edge = QtGui.QCheckBox(self.GBOX_02_Edge)
*Other think you check the vertex option and you want selected all vertexes of the object ... click this button
self.CB_02_Sel_Edge.setGeometry(QtCore.QRect(10, 20, 91, 17))
self.CB_02_Sel_Edge.setFont(self.fontGlobal_08) # pour W L
self.CB_02_Sel_Edge.setObjectName(_fromUtf8("CB_02_Sel_Edge"))


{{Button|Reset Data}}
self.LE_03_Length_Total = QtGui.QLineEdit(self.GBOX_02_Edge)
self.LE_03_Length_Total.setGeometry(QtCore.QRect(10, 60, 75, 20))
self.LE_03_Length_Total.setFont(self.fontGlobal_08) # pour W L
self.LE_03_Length_Total.setObjectName(_fromUtf8("LE_03_Length_Total"))


*Reset all data in the macro (not the memo)
self.LE_04_Length_Object = QtGui.QLineEdit(self.GBOX_02_Edge)
self.LE_04_Length_Object.setGeometry(QtCore.QRect(90, 60, 75, 20))
self.LE_04_Length_Object.setFont(self.fontGlobal_08) # pour W L
self.LE_04_Length_Object.setObjectName(_fromUtf8("LE_04_Length_Object"))


{{Button|Reset Memo}}
self.LAB_06_Length_Total = QtGui.QLabel(self.GBOX_02_Edge)
self.LAB_06_Length_Total.setGeometry(QtCore.QRect(10, 40, 71, 16))
self.LAB_06_Length_Total.setFont(self.fontGlobal_08) # pour W L
self.LAB_06_Length_Total.setObjectName(_fromUtf8("LAB_06_Length_Total"))


*Reset the memo
self.LAB_07_Length_Obgect = QtGui.QLabel(self.GBOX_02_Edge)
self.LAB_07_Length_Obgect.setGeometry(QtCore.QRect(90, 40, 71, 16))
self.LAB_07_Length_Obgect.setFont(self.fontGlobal_08) # pour W L
self.LAB_07_Length_Obgect.setObjectName(_fromUtf8("LAB_07_Length_Obgect"))


{{Button|Remove selection}}


*Remove the selections in the current document
self.GBOX_03_Vertex = QtGui.QGroupBox(self.centralwidget)
''('''PS:''' if several document are open on click mouse in the 3D view remove all selection in all documents)''
self.GBOX_03_Vertex.setGeometry(QtCore.QRect(10, 200, 176, 46))
self.GBOX_03_Vertex.setFont(self.fontGlobal_08) # pour W L
self.GBOX_03_Vertex.setObjectName(_fromUtf8("GBOX_03_Vertex"))


{{Button|Quit}}
self.LAB_03_Vertex = QtGui.QLabel(self.GBOX_03_Vertex)
self.LAB_03_Vertex.setGeometry(QtCore.QRect(110, 25, 56, 16))
self.LAB_03_Vertex.setFont(self.fontGlobal_08) # pour W L
self.LAB_03_Vertex.setObjectName(_fromUtf8("LAB_03_Vertex"))


*Quit the macro
self.CB_03_Sel_Vertex = QtGui.QCheckBox(self.GBOX_03_Vertex)
self.CB_03_Sel_Vertex.setGeometry(QtCore.QRect(10, 22, 91, 17))
self.CB_03_Sel_Vertex.setFont(self.fontGlobal_08) # pour W L
self.CB_03_Sel_Vertex.setObjectName(_fromUtf8("CB_03_Sel_Vertex"))


{{Button|Pause grab/Refresh}}


*Pause the macro for ex: deselect on of many object
self.GBOX_04_Main = QtGui.QGroupBox(self.centralwidget)
*after pause click for return on macro and upgrade al info in the macro
self.GBOX_04_Main.setGeometry(QtCore.QRect(10, 250, 176, 51))
*Can be use for upgrade the selections in the macro (all time)
self.GBOX_04_Main.setFont(self.fontGlobal_08) # pour W L
*Ex: many object are selected before run the macro
self.GBOX_04_Main.setObjectName(_fromUtf8("GBOX_04_Main"))
*The macro adapts and detect all change of document


<span id="Icons"></span>
self.PB_02_Stop_Grab = QtGui.QPushButton(self.GBOX_04_Main)
===Icone===
self.PB_02_Stop_Grab.setGeometry(QtCore.QRect(90, 20, 75, 23))
self.PB_02_Stop_Grab.setFont(self.fontGlobal_08) # pour W L
self.PB_02_Stop_Grab.setObjectName(_fromUtf8("PB_02_Stop_Grab"))
self.PB_02_Stop_Grab.clicked.connect(self.on_PB_02_Stop_Grab_clicked)


L'icona deve essere copiata nella stessa directory della macro
self.PB_01_Quit = QtGui.QPushButton(self.GBOX_04_Main)
self.PB_01_Quit.setGeometry(QtCore.QRect(5, 20, 75, 23))
self.PB_01_Quit.setFont(self.fontGlobal_08) # pour W L
self.PB_01_Quit.setObjectName(_fromUtf8("PB_01_Quit"))
self.PB_01_Quit.clicked.connect(self.on_PB_Quit_clicked)


The icon ToolBar [[File:Macro Select Hovering.png|Macro Select Hovering]]
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)


==Script==
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle("Select_Hovering")
MainWindow.setWindowIcon(QtGui.QIcon(self.path + __title__ +".png"))#
self.GBOX_01_Face.setTitle("Face")
self.CB_01_Sel_Face.setText("Select Face")
self.LAB_01_Face.setText("0")
self.LAB_04_Area_Total.setText("Area Total")
self.LAB_05_Area_Object.setText("Area Object")


'''Macro_Select_Hovering.FCMacro'''
self.GBOX_02_Edge.setTitle("Edge")
self.CB_02_Sel_Edge.setText("Select Edge")
self.LAB_02_Edge.setText("0")
self.LAB_06_Length_Total.setText("Length Total")
self.LAB_07_Length_Obgect.setText("Length Object")


{{CodeDownload|https://gist.github.com/mario52a/7ebe6b3fd047441114d9d0e08ceddd63| Download latest version of the macro}}
self.GBOX_03_Vertex.setTitle("Vertex")
self.CB_03_Sel_Vertex.setText("Select Vertex")
self.LAB_03_Vertex.setText("0")


<span id="Version"></span>
self.GBOX_04_Main.setTitle("Main")
==Versioni==
self.PB_01_Quit.setText("Quit")
self.PB_02_Stop_Grab.setText("Pause grab")


ver 00.04 (11/01/2024) : add:
MainWindow.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint) # PySide cette fonction met la fenetre en avant
*LineEdit info,
*ComboBox memo selection,
*Button Memo selection,
*Button Selected by body
*Button Reset Data
*Button Reset Memo
*Button Remove Selection



def on_PB_02_Stop_Grab_clicked(self):
global s

if self.Stop_Grab == 1:
FreeCADGui.Selection.removeObserver(s) # desinstalle la fonction residente SelObserver
self.Stop_Grab = 0
self.PB_02_Stop_Grab.setText("Active grab")
print( "Grab pause")
else:
s=SelObserver()
FreeCADGui.Selection.addObserver(s) # installe la fonction en mode resident
self.Stop_Grab = 1
self.PB_02_Stop_Grab.setText("Pause grab")
print( "Grab active")

def on_PB_Quit_clicked(self):
global s

FreeCADGui.Selection.removeObserver(s) # desinstalle la fonction residente SelObserver
self.window.hide() # hide the window and close the macro
print( "Quit ",__title__)

##################################################################################################
class SelObserver:
global ui

def setPreselection(self,doc,obj,sub): # preselection
global ui

if ui.CB_01_Sel_Face.isChecked():

if (sub[:4] == "Face") and (Gui.Selection.isSelected (FreeCAD.ActiveDocument.getObject(obj), sub) == False):
Gui.Selection.addSelection(FreeCAD.ActiveDocument.getObject(obj), sub)
ui.comptFace += 1
ui.LAB_01_Face.setText(str(ui.comptFace))

ui.comptSurfaceFace = FreeCAD.ActiveDocument.getObject(obj).Shape.Faces[int(sub[4:])-1].Area
ui.comptSurfaceTotal += ui.comptSurfaceFace
ui.LE_01_Area_Total.setText(str(ui.comptSurfaceTotal))
ui.LE_02_Area_Object.setText(str(ui.comptSurfaceFace))


if ui.CB_02_Sel_Edge.isChecked():

if (sub[:4] == "Edge") and (Gui.Selection.isSelected (FreeCAD.ActiveDocument.getObject(obj), sub) == False):
objetSelect = Gui.Selection.addSelection(FreeCAD.ActiveDocument.getObject(obj), sub)

ui.comptEdge += 1
ui.LAB_02_Edge.setText(str(ui.comptEdge))

ui.comptLengthObject = FreeCAD.ActiveDocument.getObject(obj).Shape.Edges[int(sub[4:])-1].Length
ui.comptLengthTotal += ui.comptLengthObject
ui.LE_03_Length_Total.setText(str(ui.comptLengthTotal))
ui.LE_04_Length_Object.setText(str(ui.comptLengthObject))


if ui.CB_03_Sel_Vertex.isChecked():

if sub[:6] == "Vertex" and (Gui.Selection.isSelected (FreeCAD.ActiveDocument.getObject(obj), sub) == False):
Gui.Selection.addSelection(FreeCAD.ActiveDocument.getObject(obj), sub)
ui.comptVertex += 1
ui.LAB_03_Vertex.setText(str(ui.comptVertex))


# def removePreselection(self,doc,obj,sub) #
# print( "removePreselection")
# def addSelection(self,doc,obj,sub,pnt): # Selection
# print( "addSelection")
# def removeSelection(self,doc,obj,sub): # Effacer l'objet selectionne
# print( "removeSelection")
# def setSelection(self,doc): # Selection dans ComboView
# FreeCADGui.Selection.removeObserver(s)
# print( "setSelection quit")

def clearSelection(self,doc): # Si clic sur l'ecran, effacer la selection
global ui

ui.comptFace = 0
ui.comptEdge = 0
ui.comptVertex = 0
ui.comptSurfaceFace = 0.0
ui.comptSurfaceTotal = 0.0
ui.comptLengthObject = 0.0
ui.comptLengthTotal = 0.0
ui.LAB_01_Face.setText(str(ui.comptFace))
ui.LAB_02_Edge.setText(str(ui.comptEdge))
ui.LAB_03_Vertex.setText(str(ui.comptVertex))
ui.LE_01_Area_Total.setText(str(ui.comptSurfaceTotal))
ui.LE_02_Area_Object.setText(str(ui.comptSurfaceFace))
ui.LE_03_Length_Total.setText(str(ui.comptLengthTotal))
ui.LE_04_Length_Object.setText(str(ui.comptLengthObject))
# print( "clearSelection")

s=SelObserver()
FreeCADGui.Selection.addObserver(s) # installe la fonction en mode resident
###################################################################################################

doc = FreeCAD.ActiveDocument
if doc == None:
doc = FreeCAD.newDocument()

MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow(MainWindow)
ui.setupUi(MainWindow)
MainWindow.show()



}}

==Versioni==
ver 00.03b (28/10/2020) : add print'''()''' for Python 3
ver 00.03b (28/10/2020) : add print'''()''' for Python 3


Line 402: Line 140:
ver 00.01 (25/12/2017) :
ver 00.01 (25/12/2017) :


<span id="Link"></span>
==Vincolo==
==Vincolo==



Latest revision as of 20:30, 11 January 2024

Other languages:

Macro Seleziona passando il mouse.

Descrizione
Questa macro seleziona a scelta una Faccia, Bordo, Vertice passando il mouse.
PS: Per deselezionare una faccia (o altro) cliccare Pause grab e usare la procedura standard: CTRL + Click

Versione macro: 00.03b
Ultima modifica: 2020-10-28
Versione FreeCAD: All
Download: ToolBar Icon
Autore: Mario52
Autore
Mario52
Download
ToolBar Icon
Link
Versione macro
00.03b
Data ultima modifica
2020-10-28
Versioni di FreeCAD
All
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro seleziona a scelta una Faccia, Bordo, Vertice passando sopra con il mouse


Macro Select Hovering


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/7ebe6b3fd047441114d9d0e08ceddd63/raw/f9dea03a0327b48c76a7c3e9d7cd391b5093a8cf/Macro%2520Select%2520Hovering.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/7ebe6b3fd047441114d9d0e08ceddd63/raw/f9dea03a0327b48c76a7c3e9d7cd391b5093a8cf/Macro%2520Select%2520Hovering.FCMacro")


Macro Select Hovering

PS: Per deselezionare una faccia (o altro) cliccare Pause grab e usare la procedura standard: CTRL + Click

Utilizzo

Passare sopra agli elementi con il mouse

Section Face

Select Face → 3 number of face(s) 300.0 area total of selections 100.0 area of the latest selection

Section Edge

Select Edge → 4 number of edge(s) 40.0 length total of selections 10.0 length of the latest selection

Section Vertex

Select Vertex → 1 number of vertex(s)

Section Main

Title display info of the :

  • ( Obj: 1 ) : number object(s) selected
  • ( Sub: 8 ) : number of Sub object(s) selected
  • ( Tot: 9 ) : Somme Obj + Sub

Unnamed: Box. Face6 (1.34,2.64,10.0)

  • display little info and info below the cursor mouse

Unnamed: 1 : (8 sel.) (Obj. 1, Fa. 3, Ed. 4, Ve. 1)

  • Name of document
  • 8 selections
  • Obj. 1 object
  • Fa. 3 faces
  • Ed. 4 edges
  • Ve. 1 vertex
  • If you use several document the macro restores only the selection in the document open (to work)
  • The toolTip display the listing of the selected document Name and subObject

Info objects memorized displayed

Selected by Box

  • if you select by the Box selection this button select all objects checked of the selection
  • Other think you check the vertex option and you want selected all vertexes of the object ... click this button

Reset Data

  • Reset all data in the macro (not the memo)

Reset Memo

  • Reset the memo

Remove selection

  • Remove the selections in the current document

(PS: if several document are open on click mouse in the 3D view remove all selection in all documents)

Quit

  • Quit the macro

Pause grab/Refresh

  • Pause the macro for ex: deselect on of many object
  • after pause click for return on macro and upgrade al info in the macro
  • Can be use for upgrade the selections in the macro (all time)
  • Ex: many object are selected before run the macro
  • The macro adapts and detect all change of document

Icone

L'icona deve essere copiata nella stessa directory della macro

The icon ToolBar Macro Select Hovering

Script

Macro_Select_Hovering.FCMacro


Versioni

ver 00.04 (11/01/2024) : add:

  • LineEdit info,
  • ComboBox memo selection,
  • Button Memo selection,
  • Button Selected by body
  • Button Reset Data
  • Button Reset Memo
  • Button Remove Selection

ver 00.03b (28/10/2020) : add print() for Python 3

ver 00.03 (26/12/2017)  : replace test with (FreeCAD.ActiveDocument.getObject(obj), sub) == False)

ver 00.02 (26/12/2017)  :

ver 00.01 (25/12/2017)  :

Vincolo

Multiple face selection to convert a shape to a solid