[fast gelöst] Trennfläche für Formenbau, Trimmen an Silhouette - wie?

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

Gift wrote: Fri Sep 29, 2017 7:08 pm Hallo Wilfried,

erstell mal eine einfache Kopie(Part) von Fillet. Dann zerlegst du in der Draft-Workbench mit "downgrade" die Kopie. Anschließend blende mal alle entstanden Flächen bis auf die "silhouetten-ähnliche" aus.
Wo soll bitte die "silhouetten-ähnliche" sein?
Gift wrote: Fri Sep 29, 2017 7:08 pmDie nochmal downgraden. Dann erhälst du ein Wire. Das wieder downgraden. Nun gibt es bedingt durch deine Radien drei Kanten (Edge). Jetzt kannst du z.B. einen Kreis zeichen und mit Loft aus dem Kreis sowie einer der Edges ein Fläche erstellen. Wenn du jetzt wieder die enstsprechenden Flächen (Radius und Grundfläche) einblendest und auswählst, kannst diese mittels upgrade mit der neuen Flächen verbinden...
Das würde ich zu gerne mal sehen, wie das gehen soll. Bitte sei so nett und halte diese Schritte in einem Video fest.
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

saso wrote: Fri Sep 29, 2017 8:14 pm If you could offset (or scale) the projection lines (or the faces that you extrude from the projection lines) for some very small value like 0,1 mm then by doing the section of two shapes you should get two wires that are very close to the real line that you want.
I tried different ways to offset the curve or the face, no idea how to achieve this task. Nothing that seems to be precise enough.
saso wrote: Fri Sep 29, 2017 8:14 pm To get the real line one would have to do a sweep of an half circle (or just a horizontal line) along the fillet, but the "half circle" (or line) sketch would have to stay horizontal for the full sweep, don't know if such a function is available in FreeCAD or OCCT? :|
That sounds like a great tool, but I guess it does not exist as well as the Freecad silhouette trim tool. :roll:
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by saso »

freecad-heini-1 wrote: Fri Sep 29, 2017 9:45 pm
saso wrote: Fri Sep 29, 2017 8:14 pm If you could offset (or scale) the projection lines (or the faces that you extrude from the projection lines) for some very small value like 0,1 mm then by doing the section of two shapes you should get two wires that are very close to the real line that you want.
I tried different ways to offset the curve or the face, no idea how to achieve this task. Nothing that seems to be precise enough.
Yes, I have also failed with the few quick tests to make this offset. However I am guessing this way should be more easy and can possibly work for many different shapes (maybe all?), but it is probably not possible to be absolutely exact (but with a very small offset it can be very very close). The problem doing it this way and having no offset is that the face from the extruded projection is touching the fillet face as tangent so the precision to find the intersection between the two goes in to infinity.

Update: I was able to get this working by using the draft scale on the 2d projection shape... You can see the two lines that one gets from doing it this way. Playing a bit more with the offset (scale), one can get this error to be even smaller.
freecad-heini-1 wrote: Fri Sep 29, 2017 9:45 pm
saso wrote: Fri Sep 29, 2017 8:14 pm To get the real line one would have to do a sweep of an half circle (or just a horizontal line) along the fillet, but the "half circle" (or line) sketch would have to stay horizontal for the full sweep, don't know if such a function is available in FreeCAD or OCCT? :|
That sounds like a great tool, but I guess it does not exist as well as the Freecad silhouette trim tool. :roll:
Attached is a solution, sorry I was working fast and so it is very ugly. I still don't know if there is the functionality to keep the orientation of single sketch along the sweep, but one can force FreeCAD to do this with multiple sketches along the path...

The short workflow, make a copy of the basic form (SOLID), downgrade this copy to get faces from it, chose the top or the bottom face and offset it for 1,5 mm so you get a new face exactly between the two existing faces. Downgrade this "center" face again to get the wire from it. Now draw three sketches at the beginning, middle and end of the wire (this will force FreeCAD to keep the sweep horizontal), each sketch is just a single horizontal line. Make a sweep between the three sketches and the wire of the center face as the path. Now select this sweep and one of the fillet face and do the section of two shapes, you will get the wire that should be the exact line that you want. The bad thing about this approach however is that I believe it works only because we have a nice circle for the fillet :|
trennflaeche_silhouette_aus_proe_step_import.fcstd
(286.11 KiB) Downloaded 38 times
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

saso wrote: Fri Sep 29, 2017 10:09 pm Update: I was able to get this working by using the draft scale on the 2d projection shape... You can see the two lines that one gets from doing it this way. Playing a bit more with the offset (scale), one can get this error to be even smaller.
Hi saso,
great job, draft scale was a good idea. I measuresd the distance between the two curves, it is 0.24mm.
So I cloned one curve, and moved it 0,12mm in Y direction. I cloned the new curve again and scaled it up with factor 2. Between the two curves I created a ruled surface. The result looks good. That is a nice parting plane. The trick with scaling the outer curce is better than the ProE trick with projection to a cylinder surface.
parting-plane_silhouette.png
parting-plane_silhouette.png (57.18 KiB) Viewed 1938 times
parting-plane_silhouette1.png
parting-plane_silhouette1.png (52.4 KiB) Viewed 1938 times
saso wrote: Fri Sep 29, 2017 10:09 pm The short workflow, make a copy of the basic form (SOLID), downgrade this copy to get faces from it, chose the top or the bottom face and offset it for 1,5 mm so you get a new face exactly between the two existing faces. Downgrade this "center" face again to get the wire from it. Now draw three sketches at the beginning, middle and end of the wire (this will force FreeCAD to keep the sweep horizontal), each sketch is just a single horizontal line. Make a sweep between the three sketches and the wire of the center face as the path. Now select this sweep and one of the fillet face and do the section of two shapes, you will get the wire that should be the exact line that you want. The bad thing about this approach however is that I believe it works only because we have a nice circle for the fillet :|
That is also a great idea to crack the nut.

But this is a really easy model. I created it to explain the subject. Mostly plastic parts are more complex, with rounds and bevel of mold.
Shape2dview must be more precice as well as section.

Thank you saso for your work.

Best regards
Wilfried
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

Diese Variante der Trennfläche gefällt mir am Besten.
Ein Sweep entlang der Silhouetten-Kurve mit drei waagerechten Sweep-Profilen:
parting-plane_silhouette2.png
parting-plane_silhouette2.png (57.35 KiB) Viewed 1934 times
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

wmayer wrote:Ping
ickby wrote:Ping
Hallo Werner und Stefan,
ihr habt genug andere Dinge um die Ohren, aber falls es sich irgendwann mal ergibt, bitte schaut euch Draft shape2dview an und Part-Section. Woher kommt die Ungenauigkeit?
Wenn diese Tools genau genug wären, hätte Freecad eine gute Möglichkeit für Formenbau-Konstrukteure Silhouttenkanten an Kunststoffteilen zu finden. Optimal wäre ein Tool, welches gleich schon mit einem Befehl die Silhouttenkante findet und daraus Edges erzeugt.
Viele Grüße
Wilfried
User avatar
Gift
Posts: 769
Joined: Tue Aug 18, 2015 10:08 am
Location: Germany, Sauerland

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by Gift »

freecad-heini-1 wrote: Fri Sep 29, 2017 9:38 pm ...
Wo soll bitte die "silhouetten-ähnliche" sein?
...
Oops. Mein Fehler. Ich dachte du meinst den kompletten Umfang, und nicht die Projektion.
Attachments
Bild1.png
Bild1.png (25.09 KiB) Viewed 1914 times
Bild2.png
Bild2.png (28.56 KiB) Viewed 1914 times
Bild3.png
Bild3.png (28.72 KiB) Viewed 1914 times
freecad-heini-1
Veteran
Posts: 7788
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by freecad-heini-1 »

Gift wrote: Sat Sep 30, 2017 11:04 am Oops. Mein Fehler. Ich dachte du meinst den kompletten Umfang, und nicht die Projektion.
Vielen Dank, sieht aus der Ferne gut aus. Bitte lade Deine Datei hoch.
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by microelly2 »

Ich habe mal den ersten Prototypen eines Skriptes, der diese Schnittflächen berechnet.
bp_579.png
bp_579.png (36.44 KiB) Viewed 1838 times
Es braucht noch die Feinarbeit, aber so könnte man das hinbekommen.
Alle Punkte berechnen, bei denen der Flächennormalenvektor horizontal ist. Davon die Kurven und dann die Normalenrichtung drauf.

Code: Select all

#obj=App.ActiveDocument.Nurbs
#obj=App.ActiveDocument.Poles
#bs=obj.Shape.Face1.Surface

face=App.ActiveDocument.Fillet.Shape.Face2
Part.show(face)
bs=face.Surface


f=0.01
ui=bs.uIso(0.5)
vc=int(round(ui.length()/f))

vi=bs.vIso(0.5)
uc=int(round(vi.length()/f))
uc
vc

uc=3600
vc=360

sila=[]
silb=[]
pts=[]
tarc=0.0
#tarc=0.5
#tarc=-0.1
#tarc=-0.15
#tarc=0.15
#tarc=0.1

ptsa=[]

uper=bs.UPeriod()
vper=bs.VPeriod()

for u in range(uc):
	aa=0
	for v in range(vc):
		nv=bs.normal(uper/uc*u,vper/vc*v)
		nv2=bs.normal(uper/uc*(u+1),vper/vc*(v+1))
		ptsa.append(bs.value(uper/uc*(u),vper/vc*(v)))
		#print ((u,v), "all ------------------------#",nv.z,nv2.z)

		#if  nv.z * nv2.z<=0:
		#if  (nv.z-tarc) * (nv2.z-tarc)<=0 or  abs(nv.z-tarc)< 0.0001 or abs(nv2.z-tarc)< 0.0001:
		# sonderlocke in y-richtung
		# if  (nv.y-tarc) * (nv2.y-tarc)<=0 or  abs(nv.y-tarc)< 0.0001 or abs(nv2.y-tarc)< 0.0001:
		if  (nv.y-tarc) * (nv2.y-tarc)<=0 :
			
			print ((u,v), "------------------------#",round(nv.z,3),round(nv2.z,3))
			aa +=1
			#print ((u,v))
			pts.append(bs.value(uper/uc*(u+0.5),vper/vc*(v+0.5)))
			sila += [(u,v)]
#
	print

import Points
Points.show(Points.Points(pts))
# Points.show(Points.Points(ptsa))


def dist(a,b):
	(u,v)=a
	(u2,v2)=b
	return abs(u-u2)+abs(v-v2)

def erzeugefaden(sila):
	tra=[sila[0]]
	rest=[]
	for p in sila[1:]:
		if dist(p,tra[-1])<10:
			tra.append(p)
		else:
			rest.append(p)
	print ("erztuegne faden",len(sila),len(rest),len(tra))
	return (rest,tra)


import Draft
def kette(uvl):
	pts=[]
	npts=[]
	for p in uvl:
		(u,v)=p
		pt=bs.value(uper/uc*(u+0.5),vper/vc*(v+0.5))
		pts.append(pt)
		n=bs.normal(uper/uc*(u+0.5),vper/vc*(v+0.5))
		npts.append(pt-10*n)
	if len(pts)==1 : return

	w1=Draft.makeWire(pts)
	w2=Draft.makeWire(npts)

#	ff=App.ActiveDocument.addObject('Part::Loft','Loft')
#	ff.Sections=[w1,w2]

	ff=App.ActiveDocument.addObject('Part::RuledSurface', 'Ruled Surface')
	ff.Curve1=(w1,[''])
	ff.Curve2=(w2,[''])
	#Points.show(Points.Points(pts))

(rest,tra)=erzeugefaden(sila)
kette(tra)

ct=0
while rest<>[] and ct<10:
	ct += 1
	sila=rest
	(rest,tra)=erzeugefaden(sila)
	kette(tra)

App.activeDocument().recompute()


Die vorläufige Datei ist hier:
https://www.dropbox.com/s/hehvz4vj3e1os ... fcstd?dl=0
User avatar
Gift
Posts: 769
Joined: Tue Aug 18, 2015 10:08 am
Location: Germany, Sauerland

Re: Trennfläche für Formenbau, Trimmen an Silhouette - wie?

Post by Gift »

Huhu, ich habe auch etwas rumgespielt.
Attachments
fc016_stapelchips.002.zip
(673.49 KiB) Downloaded 45 times
fc016_stapelchips.001.zip
(1 MiB) Downloaded 46 times
stapelchips1.png
stapelchips1.png (16.43 KiB) Viewed 1837 times
stapelchips2.png
stapelchips2.png (6.6 KiB) Viewed 1837 times
stapelchips3.png
stapelchips3.png (34.2 KiB) Viewed 1837 times
Post Reply