Jump to content

checking holes of sheetmetal parts


---
 Share

Recommended Posts

---

Hi all,

we are running a lot of sheetmetal parts in ScanBox-KIOSK and are mainly focusing on the surfaces (+alignment-holes) to keep the measuring time as short as possible. If we would teach for all holes, the time would be significantly longer and sometimes it's impossible to compute some holes if some properties of the part change slightly.

We don't need to check the holes position or diameter in this cases but it would be realy helpful to check if there "is" a hole or "is not" a hole. For this evaluation it wouldn't be necessary to use a lot of scans as no edges are needed.

I already tried to create surface points at the middle of a hole to cut with the mesh, so if it's calculated, something should be wrong, if it's not calculated everything's fine. But the result is unsteady, as it is possible that there is some mesh left of the background (fixture f.e.)

It should be a super simple inspection, as usually no additional scans are necessary, but i don't find the right measuring principle to do it.

Anyone who already had the same problem or any ideas how to check this?

I'm looking forward to any food for thought.

Best Regards

Michael

Link to comment
Share on other sites

---

Hello,

maybe constructing a silhouette and circles + measuring principle fitting element works for this. This would only require the surface data. You could also uncheck the box "consider element" in the element's properties -> Teaching Settings, so no positions will be created for this element. If the rest of the measurement positions are sufficient depends on the part and data of course. Contacting the support with the concrete project is of course also an option 🙂

There is a keyword for the computation status for the next step available.

Nanno

Link to comment
Share on other sites

---

Hi Nanno,

thx a lot for your hints. I didn't work with silhouettes before, but this could be a good solution. 

I used to create a circle on my CAD element at the beginning as a basic element, select a sphere +2mm arround the basic element to create the silhouette with referenced measuring principle and in the end another fitting circle with referenced principle. This seems to work greate if there is no edge <1mm next to the hole.

I tried with a few parts without any errors or wrong results untill now. Maybe i need to check the "only outer silhouett" box to avoid errors if there is any surface on the backside. 

The result will be a flag with a red or green dot:

format(((computation_status.status)=='computed')?("██") : "",color='#00ff00')
format(((computation_status.status)=="not_computed")?("██ Loch überprüfen") : "",color='#FF0000')
format(((computation_status.status)=="partly_not_computed")?("██ Loch überprüfen") : "",color='#FF0000')

 

This priciple can also be useful to check inner threads, as i always do have problems with correct results when using intersection point cylinder/plane measuring principle.

For anyone who wants to try or optimize, i made a "check holes"- script for easier/faster usage (it's not perfect and finished at all, but seems to work):

 

# -*- coding: utf-8 -*-
# Skript zum Prüfen von Löchern auf vorhandensein (nur Oberflächenerfassung) - Ergebnis: Vorhanden (grün) / nicht Vorhanden (rot)
# Position + Durchmesser abhängig von der Erfassung ungenau/falsch!

import gom

#Elementeigenschaften abfragen und Element interaktiv konstruieren

DIALOG=gom.script.sys.create_user_defined_dialog (dialog={
	"content": [
		[
			{
				"columns": 2,
				"name": "label",
				"rows": 1,
				"text": {
					"id": "",
					"text": "Elementtyp und -name festlegen",
					"translatable": True
				},
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "label",
				"word_wrap": False
			},
			{
			}
		],
		[
			{
				"columns": 1,
				"name": "label_1",
				"rows": 1,
				"text": {
					"id": "",
					"text": "Typ",
					"translatable": True
				},
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "label",
				"word_wrap": False
			},
			{
				"columns": 1,
				"default": "Loch",
				"items": [
					{
						"id": "",
						"text": "Loch",
						"translatable": True
					},
					{
						"id": "",
						"text": "Langloch",
						"translatable": True
					},
					{
						"id": "",
						"text": "Formloch",
						"translatable": True
					}
				],
				"name": "list",
				"rows": 1,
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "input::list"
			}
		],
		[
			{
				"columns": 1,
				"name": "label_2",
				"rows": 1,
				"text": {
					"id": "",
					"text": "Name",
					"translatable": True
				},
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "label",
				"word_wrap": False
			},
			{
				"basename": {
					"id": "",
					"text": "P",
					"translatable": True
				},
				"columns": 1,
				"mode": "manually",
				"name": "elementname",
				"numbering": True,
				"read_only": False,
				"rows": 1,
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "input::elementname"
			}
		]
	],
	"control": {
		"id": "OkCancel"
	},
	"embedding": "always_toplevel",
	"position": "automatic",
	"size": {
		"height": 172,
		"width": 220
	},
	"sizemode": "automatic",
	"style": "",
	"title": {
		"id": "",
		"text": "Elementname festlegen",
		"translatable": True
	}
})

def dialog_event_handler (widget):
	pass

DIALOG.handler = dialog_event_handler

RESULT=gom.script.sys.show_user_defined_dialog (dialog=DIALOG)
print (RESULT.list)
print (RESULT.elementname)
elementname = RESULT.elementname
gom.script.selection3d.deselect_all ()
if RESULT.list == 'Loch':
	
	MCAD_ELEMENT=gom.interactive.primitive.create_auto_nominal_circle (
		name=elementname, 
		properties=gom.Binary ('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'))

if RESULT.list == 'Langloch':
	MCAD_ELEMENT=gom.interactive.primitive.create_auto_nominal_slotted_hole (
		name=elementname, 
		properties=gom.Binary ('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'))

if RESULT.list == 'Formloch':
	RESULT=gom.script.sys.execute_user_defined_dialog (dialog={
	"content": [
		[
			{
				"columns": 1,
				"default_font_family": "",
				"default_font_size": 0,
				"name": "text",
				"rows": 1,
				"text": {
					"id": "",
					"text": "<html><p>Skriptfunktion unterstützt aktuell noch keine Formlöcher.</p><p>Bitte manuell konstruieren oder wenn möglich als \"Kreis\" auswerten</p></html>",
					"translatable": True
				},
				"tooltip": {
					"id": "",
					"text": "",
					"translatable": True
				},
				"type": "display::text",
				"wordwrap": False
			}
		]
	],
	"control": {
		"id": "OkCancel"
	},
	"embedding": "always_toplevel",
	"position": "automatic",
	"size": {
		"height": 155,
		"width": 409
	},
	"sizemode": "automatic",
	"style": "",
	"title": {
		"id": "",
		"text": "Hinweis",
		"translatable": True
	}
})

#Selektionsdurchmesser der Kugel festlegen + Silhouette erzeugen
try:
	Durchmesser = gom.app.project.inspection[elementname].length
	Radius = Durchmesser/2
	print (Radius)
	
except:
	Durchmesser = gom.app.project.inspection[elementname].diameter
	Radius = Durchmesser/2
	print (Radius)

	
gom.script.inspection.measure_by_no_measuring_principle (elements=[gom.app.project.inspection[elementname]])

gom.script.selection3d.select_inside_sphere (
	center=gom.app.project.inspection[elementname], 
	radius=Radius+2)


MCAD_ELEMENT=gom.script.section.create_silhouette_by_plane (
	only_outer_curves=False, 
	position=0.5, 
	properties=gom.Binary ('eAHEmE1sXFcVx3+u0uKGuGmgFFohGDkG3KbjrziuO0lIcOMqCUmwGtepwscwH2/sweOZycw4jls1faELQEIqLCioG5D4EkQkyqqAkMgGCbFIV0BV1A0gEFIRqAuKkJqi/7nvet6MZ2xXKGIs23fePfd8n/85981WlpJz+4YucHT6E0emH2e2lik26qnUdClYCsqNmVqlGtQaxaCO+/RwJ33b2U4f2/uAr118obAAnJ0+dvp04tip0zPTj84mxkbG9iZOB7XzxVyQmMnkFrlxuZe9dv4dffqB7L03LvcwCdwPYYkMWQJKpMlRoUyZgBwNKtRIU6JoT9KsUCRPgwWeuuPG5dtIAHdB+Oi6U2fWKH/7pmR9EPgAoPVdwO0Q1lkiQ4kSv/7sP8a1I4rtbRo1CLhAg7f/I4l3A3fY2QY102uewVd09ubt8NZthAdYoMESJT6O1gEZ8rZeIqBBhkRkpTjr70H6GaWfBGUyRqUn54x/zrg5DfqNiySvUiIgYatqRO+phslRp27UVR4iYf5L8DQJVligaJRJ6lTJkCMgRYIqNXu6Qo0MVfaT4BkOMByTJ+nDLRZlqZBnlUSMSroUIvvEL6DIvFmRYpwRRox3k6JpT4qyRdxFZX9krzyWjezNMm++KxmdJO2mEPuRD6VTjTxBROE8KzsVadmcJx9FTvsjLfveK839ZMShqadOxaUkYzql2E2OkbVf2dpK2+STom62KKdFJ7trzJvspGV/lRQjVLnQYV9cG0a1tAGV/FYw33fjoyzz8fE03vO16H9+nf3nzb8Ny1BFK2l/xalMiiWzKW9Rk2WtXk/ac6fVeMf9Vp06cWh6p9Nuu2+8RS665XXWbDUbB8xe5fagVVs1ykT5Ir1WjWmTkSdtOZOxenuAgaianAbSZtg8+//3cOcY3CoPtyLCxDtGhAHDDocSDRIMrqGmsK6fPVavWtdZoMIKaZYpG+4dpGB5Wt80IoqNy36tPAK578ouoZ771kT7L/5dfeAIqC+1dDVlwJJli8uGdIQyi2SYt+/KoYLlkXqC0OqFIfWbh4B7IJy3Oh9ipuXc4+tOHf2qdDgE7Ldut41R4Afnv/2LT7564vWrL177ys///dKUut8oQ4wwxCTvgvAYZctN13d5ZfJ4X7eG6N16c1UK7gC2QSinCMw+d0XnbCYIe7V8EHjvpv5YZtkw4/cnxfRe4E4IZyN0S/EET3CMPKmfiedZYC7q5ieAAQjHyTBh/pjkYTIk2ccYo4yTtL4zySMkyZInx17bzfAIE+TsRJZ9jBrVZ2auXBLfDwF9bXo71KtTNAzITcQdIP3V8568ptPbosHo8C5983NKfNJpz4lrw+LWfb7wjj4VzQjpV8X5o8CuNs4Khe+AaZYsWwOePST+fsKZitGcjCh2mj/vB/O/1l6m+rJNYG9cNP97LnF7PIbe/I7k3AP0xvL2sWj369/Q+aNgdaJ1CnjfGqUwc9VwUxWj2a85G3oJ8c+V13d+WFzGgPdDqC7vTmrSkVVpihQiDBB2qw6XjX+e6wfiEeyawhPAfRBWqRu7MQN3OUWNTkObRtfmmNocUcYWJcCnsy9ijauucYw+KeXf49LD3KHEAd4+dOm7H9P3QdB+i6tbA9yUdvLl/1XaAdCoHHOja2EepNS6/DqwMLkhVYOAgnPmWWngS97b+ymyfCGClvWQdeJB2anEV8HEbxO7zCMDoN02Dzj4nKdGxUKb56WkZJ8CPtICHY/ZWDJmMHJiLZ2myFgb0FOt27k1Y3TpVz4O0kQyel2M9AkX2p9oNPheN73d8OCvN85nL091itqc0ewlz7k94qZC19VJa5Xf1R//Jf/pP565/rerU3Onzl68/pMffb5QKOy5/sDQ8efi0os2ZKaNU2s5LZv9yR9Kui/0TUugOzvfFnxqLFOiQZ3n7tuSAEFCP4RbEaDiVcRdq1w1kNPovBjB879e25LIEYd0LYnlE6oa3QDSJsT3/zxv/HJj1j3hl+V9X/FNOPLu+dM3t8TgOLB7U93qLFKkan1b4fW3TYf8HpDqnPtdXOj6TqVMPtwTT5s47rrUafXDXw3lN02bTu3JsatSsUbqq+APb4qh95tHjs2qwBXh+k8vr1kchqLmst4c5ZCuy2oMVdKcp0jACrsWboUeqtydHfWIX3mff+tWyO7UQVwMdA1WsTax6M/lW6FBJwR3GtSj66MrtspvJN2PQHkrRFd435pVNJu4+89D+8ON45uNMN1FVpnmOD3/sGRsmrjdE0fvoPQGSio7A1QZAT/90pYY60XUDrNOWrkrgRBMGj5FwDNzYqMh7N0QHmmh8oPaWeuYW3ul5XG1mzxhp0wpRq9d4uOS+oN8pvwQwAxad+/uuwj8/Hu91nEpb+OD+kP74CQokArqFjvObCwiulR0nsi6i2hC4dMHNxYQ2eDD1ARwNztq8pam3z8sNj5V/SCkJHZvA6MxLqTnvwAAAP//AwCbXyl+Afpm'), 
	reference_plane=gom.app.project.inspection[elementname])



gom.script.inspection.inspect_by_referenced_construction (elements=[gom.app.project.inspection[elementname+' +0.50 mm']])


gom.script.selection3d.deselect_all ()

gom.script.cad.show_element_exclusively (elements=[gom.app.project.inspection[elementname+' +0.50 mm']])

gom.script.selection3d.select_all ()

# neues Element aus Silhouette erzeugen + Ergebnis anzeigen
if RESULT.list == 'Loch':
	MCAD_ELEMENT=gom.script.primitive.create_auto_nominal_circle (
		name=elementname+'_', 
		properties=gom.Binary ('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'))

if RESULT.list == 'Langloch':
	MCAD_ELEMENT=gom.script.primitive.create_auto_nominal_slotted_hole (
		name=elementname+'_', 
		properties=gom.Binary ('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'))



MCAD_ELEMENT=gom.script.inspection.measure_by_fitting_element (
	actual=gom.ActualReference (gom.app.project.inspection[elementname+' +0.50 mm']), 
	elements=[gom.app.project.inspection[elementname+'_']], 
	limit_selection_depending_on_geometry=False, 
	max_normal_angle=0.0872664626, 
	method='best_fit', 
	properties=gom.Binary ('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'), 
	restrict_actual_selection_to_nominal=False)

try:
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[0], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[1], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[2], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[3], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[4], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[5], 'explorer_category', 'nominal_part']}))
	gom.script.cad.show_element (elements=gom.ElementSelection (gom.app.project.inspection[elementname+'_'], {'category': ['key', 'elements', 'part', gom.app.project.parts[6], 'explorer_category', 'nominal_part']}))

except:
	pass

gom.script.sys.edit_properties (
	data=[gom.app.project.inspection[elementname+'_']], 
	label_show=True, 
	label_template='Vorhandensein')

#Fähnchenvorlage:
#
#format(((computation_status.status)=='computed')?("██") : "",color='#00ff00')
#format(((computation_status.status)=="not_computed")?("██ Loch überprüfen") : "",color='#FF0000')
#format(((computation_status.status)=="partly_not_computed")?("██ Loch überprüfen") : "",color='#FF0000')

 

 

Grüße

Michael

Link to comment
Share on other sites

  • 3 weeks later...
---

I've changed the selection a little by deselecting behind plane after the 'selection via sphere' part to make sure there is no background selected, which could be used for creating an element even if there is no hole in the part (if the distance from part to the background is less than holes radius+offset)

gom.script.selection3d.deselect_above_plane (
                invert_normal=True, 
                offset=-2.0, 
                plane=gom.app.project.inspection[elementname])

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...