Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt4 import QtCore, QtGui, QtWebKit
- import Part
- import FreeCADGui, FreeCAD
- html = """
- <HTML>
- <HEAD>
- <TITLE>Test Input</TITLE>
- <SCRIPT LANGUAGE="JavaScript">
- function testResults (form) {
- var depthVar = form.depth.value;
- var standoffVar = form.standoff.value;
- var dwellVar = form.dwell.value;
- pyObj.newBox(depthVar,standoffVar,dwellVar);
- }</SCRIPT>
- </HEAD>
- <BODY>
- <FORM NAME="myform" ACTION="" METHOD="GET">
- <table> <TR>
- <TH align=right>Drill Depth:
- <TD><INPUT TYPE="text" NAME="depth" VALUE=""><TR>
- <TH align=right>Safety Height:
- <TD><INPUT TYPE="text" NAME="standoff" VALUE=""><TR>
- <TH align=right>Dwell Time:
- <TD><INPUT TYPE="text" NAME="dwell" VALUE=""><TR> </table>
- <INPUT TYPE="button" NAME="button" Value="Get Holes" onClick="testResults(this.form)">
- </FORM> </BODY> </HTML>
- """
- html2 = """
- <HTML>
- <HEAD>
- <TITLE>Test Input</TITLE>
- <SCRIPT LANGUAGE="JavaScript">
- function testResults (form) {
- var depthVar = form.depth.value;
- var standoffVar = form.standoff.value;
- var dwellVar = form.dwell.value;
- pyObj.newBox(depthVar,standoffVar,dwellVar);
- }</SCRIPT>
- </HEAD>
- <BODY>
- <FORM NAME="myform" ACTION="" METHOD="GET">
- <table> <TR>
- <TH align=right>Drill Depth:
- <TD><INPUT TYPE="text" NAME="depth" VALUE=""><TR>
- <TH align=right>Safety Height:
- <TD><INPUT TYPE="text" NAME="standoff" VALUE=""><TR>
- <TH align=right>Dwell Time:
- <TD><INPUT TYPE="text" NAME="dwell" VALUE=""><TR> </table>
- <INPUT TYPE="button" NAME="button" Value="Get Holes2" onClick="testResults(this.form)">
- </FORM> </BODY> </HTML>
- """
- depth=1
- standoff=10.0
- dwell=1
- def findholes():
- sel=Gui.Selection.getSelection()
- obj = sel[0].Shape
- facelist = []
- holelist = []
- for f in obj.Faces:
- if f.ParameterRange[1]> 6.28318 and f.ParameterRange[1]< 6.283186 : #eliminate flat faces
- facelist.append(f)
- for h in facelist:
- curvelist=[]
- for w in h.Wires:
- for c in w.Edges:
- if ( isinstance(c.Curve,Part.Circle) ):
- curvelist.append((c.Curve.Radius,c.Curve.Center.x,c.Curve.Center.y))
- coords = list(set(curvelist[:]))
- holelist.append(list((coords[0][0], (coords[0][1],coords[0][2]),h.BoundBox.ZMax,h.BoundBox.ZMin)))
- return holelist
- #FreeCAD.Console.PrintMessage(str(holelist))
- # clipboard = QtGui.QApplication.clipboard()
- # clipboard.setText(str(holelist))
- class TestClass(QtCore.QObject):
- @QtCore.pyqtSlot(str,str,str)
- def newBox(self, msg1,msg2,msg3):
- depth = (msg1);standoff = (msg2); dwell= (msg3)
- holes = findholes()
- peck_depth=0.0625
- retract_mode=0
- spindle_mode=0
- FreeCAD.Console.PrintMessage("depth ="+ str(depth)+"\n")
- FreeCAD.Console.PrintMessage("standoff = "+ str(standoff)+ "\n")
- FreeCAD.Console.PrintMessage("dwell= "+ str(dwell) + "\n")
- FreeCAD.Console.PrintMessage("peck_depth = "+ str(peck_depth) + "\n")
- FreeCAD.Console.PrintMessage("retract_mode= "+ str(retract_mode) + "\n")
- FreeCAD.Console.PrintMessage("spindle_mode="+ str(spindle_mode) + "\n")
- for h in holes:
- st = ("drill("+str(h[1][0])+ "," +str(h[1][1])+ ",depth,standoff,dwell,peck_depth,retract_mode,spindle_mode)" )
- FreeCAD.Console.PrintMessage(st+"\n")
- myObj = TestClass()
- WebGui.openBrowser('DrillOps')
- a = QtGui.qApp
- FreeCAD.Console.PrintMessage(str(a))
- mw = a.activeWindow()
- FreeCAD.Console.PrintMessage(str(mw))
- v= mw.findChild(QtWebKit.QWebFrame)
- curr1 = v.page()
- frame1 = curr1.currentFrame()
- frame1.setContent(html)
- frame1.addToJavaScriptWindowObject("pyObj", myObj)
Add Comment
Please, Sign In to add comment