Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by microelly2 »

layers.png
layers.png (10.74 KiB) Viewed 1127 times
Das wäre ein dockbarer Dialog mit treewidget.
Klicken auf ein Layer blendet diesen ein/aus, dazu würde ich noch das icon wechseln lassen
Wenn man ein oder mehrere Teil selektiert hat und dann den Layer klickt, kann man mit den Buttons das Teil in den Layer aufnehmen oder wegnehmen.
Braucht man noch andere Methoden?
User avatar
Gift
Posts: 769
Joined: Tue Aug 18, 2015 10:08 am
Location: Germany, Sauerland

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by Gift »

freecad-heini-1 wrote: Tue Oct 23, 2018 7:37 am Ob mein Vorschlag mit dem Verschieben der "Layer" an den Anfang des Modellbaumes des Weisheits letzter Schluss ist, kann ich nicht sagen, mittlerweile denke ich aber eher nicht. Wir benötigen irgend eine grafische Lösung, damit Layer schnell und einfach ein- und ausgeschaltet werden können, sowie Features und Teile zugeordnet werden können.
Ein Reiter im Modellbaum ist nicht so schlecht.

Wer hat weitere Ideen?

Sollte man das im Englischen Forum diskutieren?
Huhu, unnötige Entwicklungsarbeit kostet pauschal eine Kiste Bier. :lol: Vielleicht kann dich Chris noch retten. Untergruppen gehen jetzt auch. Siehe Bild.


microelly2 wrote: Tue Oct 23, 2018 10:14 am ...
Das wäre ein dockbarer Dialog mit treewidget.
Klicken auf ein Layer blendet diesen ein/aus, dazu würde ich noch das icon wechseln lassen
Wenn man ein oder mehrere Teil selektiert hat und dann den Layer klickt, kann man mit den Buttons das Teil in den Layer aufnehmen oder wegnehmen.
Braucht man noch andere Methoden?
Die Lösung sieht doch schon gut aus. Hast du dazu auch schon etwas Code?
Attachments
MoveTreeItems2.gif
MoveTreeItems2.gif (41.25 KiB) Viewed 1124 times
User avatar
Gift
Posts: 769
Joined: Tue Aug 18, 2015 10:08 am
Location: Germany, Sauerland

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by Gift »

Die CombiView zu erweitern geht recht simpel:

Code: Select all

from PySide import QtGui

mw=Gui.getMainWindow()
tab = mw.findChild(QtGui.QTabWidget, u'combiTab')

layer = QtGui.QTreeView()
tab.addTab(layer,u'Layer')
Weiß einer was mit der auskommentieren projectView geplant war?
https://github.com/FreeCAD/FreeCAD/blob ... ew.cpp#L83
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by freecad-heini-1 »

Gift wrote: Tue Oct 23, 2018 12:04 pm Die CombiView zu erweitern geht recht simpel:

Code: Select all

from PySide import QtGui

mw=Gui.getMainWindow()
tab = mw.findChild(QtGui.QTabWidget, u'combiTab')

layer = QtGui.QTreeView()
tab.addTab(layer,u'Layer')
Das sieht gut aus!
Combo-Ansicht_Layer.png
Combo-Ansicht_Layer.png (38.62 KiB) Viewed 1103 times
Mich wundert es etwas, dass das Thema Layer und View-Manager bisher nicht von großem Interesse war.
Oder habe ich das nur übersehen und irgendwo gibt es einen umfangreichen Thread zum Thema?
microelly2 wrote: Tue Oct 23, 2018 10:14 am Image
Damit kann ich irgendwie gar nichts anfangen. Das sieht nach Windows aus, aber wie das in Freecad auftauchen soll, keine Ahnung, leider. :cry:
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by microelly2 »

bp_903.png
bp_903.png (55.94 KiB) Viewed 1096 times
Hier der erste Baumerzeuger.
Ein paar Objekt selektieren und Skript starten.
Nebenbei bemerkt: ich habe in meiner miki-Bilbiothek es generell vorgesehen, dass jeder Dialog alterantiv in 3 Formen erscheinen kann:
Main Window, DockWindow oder als Tab im Combo View.
Da kann dann jeder machen, was er will und wir sparen uns die Diskussion, wohin das Teil soll.

Code: Select all

import sys, os, random
from PySide.QtCore import *
from PySide.QtGui import *

class TreeTest(QTreeWidget):
	
	def __init__(self, parent = None):
		super(TreeTest, self).__init__(parent)

		self.setHeaderLabel("Folders")
#		self.setColumnCount(3)
#		self.setHeaderLabels(["Folders","Description","Count"])

		actionEdit = QAction("New Folder", self)
		actionEdit.triggered.connect(self.addItemAction)
		self.setContextMenuPolicy(Qt.ActionsContextMenu)
		self.addAction(actionEdit)
		
		actionDelete = QAction("Delete", self)
		actionDelete.triggered.connect(self.deleteItem)
		self.addAction(actionDelete)
		
		self.style()
		
	def addItem(self, name, parent):
		self.expandItem(parent) 
		item = QTreeWidgetItem(parent)
		item.setText(0, name)
		item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled | Qt.ItemIsEditable)

		icons=[QStyle.SP_ComputerIcon,QStyle.SP_DriveDVDIcon,QStyle.SP_DriveFDIcon]
		icon=icons[random.randint(0,len(icons)-1)]
		item.setIcon(0,self.style().standardIcon(icon))
		return item
	
	def addItemAction(self):
		parent = self.currentItem()
		if parent is None:
			parent = self.invisibleRootItem()
		new_item = self.addItem("New Folder", parent)
		self.editItem(new_item)
	
	def deleteItem(self):
		root = self.invisibleRootItem()
		for item in self.selectedItems():
			(item.parent() or root).removeChild(item)
#---------------------------------------

def loadAllMessages(*folder):
	FreeCAD.Console.PrintMessage("hu\n") 
	getSelected = treeWidget.selectedItems()
	if getSelected:
		baseNode = getSelected[0]
		getChildNode = baseNode.text(0)
		FreeCAD.Console.PrintMessage("this is " + str(getChildNode) + "\n")


def printer( treeItem ):
	foldername = treeItem.text(0)
	comment = treeItem.text(1)
	data = treeItem.text(2)
	FreeCAD.Console.PrintMessage("\n"+foldername + ': ' + comment + ' (' + data + ')\n')


test = QWidget()
treeWidget = TreeTest()

layout = QVBoxLayout()
layout.addWidget(treeWidget)
test.setLayout(layout)
test.show()

bt_1 = QPushButton("Add selection to Layer")
layout.addWidget(bt_1)
bt_1 = QPushButton("Remove selection from Layer")
layout.addWidget(bt_1)
bt_1 = QPushButton("Hide all Layers")
layout.addWidget(bt_1)


treeWidget.itemSelectionChanged.connect(loadAllMessages)
treeWidget.itemClicked.connect( lambda : printer( treeWidget.currentItem() ) )

# buttons im baum
# https://blog.manash.me/quick-qt-6-how-to-add-qpushbutton-or-widgets-to-a-qtreewidget-as-qtreewidgetitem-2ae9f54c0e5f

def addChildren(item,s):
	for c in s.ViewObject.claimChildren():
		itemc=treeWidget.addItem(c.Label, item)
		addChildren(itemc,c)	

for  s in Gui.Selection.getSelection():
	print s
	item = treeWidget.addItem(s.Label, treeWidget.invisibleRootItem())
	item.fcob=s
	addChildren(item,s)


#----------------------

User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by microelly2 »

freecad-heini-1 wrote: Fri Nov 29, 2019 9:49 am Der OpenCASCADE Cad Prozessor 1.0 hat jetzt Shrink Wrapping:
Das ist aber immer noch im kommerrziellen Produkt eingebettet.
Die Beschreibung des Verfahrens ist klar, aber man muss es frei nochmal implementieren oder übersehe ich da was?
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by freecad-heini-1 »

microelly2 wrote: Fri Nov 29, 2019 10:10 am
freecad-heini-1 wrote: Fri Nov 29, 2019 9:49 am Der OpenCASCADE Cad Prozessor 1.0 hat jetzt Shrink Wrapping:
Das ist aber immer noch im kommerrziellen Produkt eingebettet.
Die Beschreibung des Verfahrens ist klar, aber man muss es frei nochmal implementieren oder übersehe ich da was?
Nein, Du übersiehst nichts. Ob das irgendwann mal frei zur Verfügung für Freecad stehen wird?!? Wäre cool. 8-)
freecad-heini-1
Veteran
Posts: 7791
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by freecad-heini-1 »

Draft Layer:
https://www.freecadweb.org/wiki/Draft_Layer

Beispieldatei:
Draft_Layer.FCStd
(15.2 KiB) Downloaded 28 times
Eine neue Spielwiese um wichtige gleichartige Konstruktionselemente und Sketche auf einen Layer legen zu können, z.B. zum Steuern eines 3D-Modells. Die Layer sind im Modellbaum ganz oben, deswegen leicht zu finden und die darin enthaltenen Features kann man leicht erreichen. Man spart sich das mühsame Suchen im Modellbaum, bei komplexen Modellen.
@hammax - glaub das könnte Dir gefallen. 8-)
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Layer, Folien, vereinfachte Darstellung - welche Möglichkeit gibt es in Freecad?

Post by bernd »

bin durch zufall auf den post gestossen ...
freecad-heini-1 wrote: Tue Oct 16, 2018 8:17 am Layer gibt es meines Wissens nach bisher gar nicht in Freecad, oder doch?
Mal eben alle Achsen ausblenden mit einem Tastenkürzel, gibt es das in Freecad?
Draft_Layer und Arch_Axis aber ich hab keine ahnung wie gut die mit Part und PartDesign zusammenarbeiten
Post Reply