danfalck

webkit_freecad_new_window.py

Nov 30th, 2013
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. from PyQt4 import QtCore, QtGui, QtWebKit
  2. import Part
  3. import FreeCADGui, FreeCAD
  4.  
  5. html = """
  6. <HTML>
  7. <HEAD>
  8. <TITLE>Test Input</TITLE>
  9. <SCRIPT LANGUAGE="JavaScript">
  10. function testResults (form) {
  11. var depthVar = form.depth.value;
  12. var standoffVar = form.standoff.value;
  13. var dwellVar = form.dwell.value;
  14. pyObj.newBox(depthVar,standoffVar,dwellVar);
  15. }</SCRIPT>
  16. </HEAD>
  17. <BODY>
  18. <FORM NAME="myform" ACTION="" METHOD="GET">
  19. <table> <TR>
  20. <TH align=right>Drill Depth:
  21. <TD><INPUT TYPE="text" NAME="depth" VALUE=""><TR>
  22. <TH align=right>Safety Height:
  23. <TD><INPUT TYPE="text" NAME="standoff" VALUE=""><TR>
  24. <TH align=right>Dwell Time:
  25. <TD><INPUT TYPE="text" NAME="dwell" VALUE=""><TR> </table>
  26. <INPUT TYPE="button" NAME="button" Value="Get Holes" onClick="testResults(this.form)">
  27. </FORM> </BODY> </HTML>
  28. """
  29. html2 = """
  30. <HTML>
  31. <HEAD>
  32. <TITLE>Test Input</TITLE>
  33. <SCRIPT LANGUAGE="JavaScript">
  34. function testResults (form) {
  35. var depthVar = form.depth.value;
  36. var standoffVar = form.standoff.value;
  37. var dwellVar = form.dwell.value;
  38. pyObj.newBox(depthVar,standoffVar,dwellVar);
  39. }</SCRIPT>
  40. </HEAD>
  41. <BODY>
  42. <FORM NAME="myform" ACTION="" METHOD="GET">
  43. <table> <TR>
  44. <TH align=right>Drill Depth:
  45. <TD><INPUT TYPE="text" NAME="depth" VALUE=""><TR>
  46. <TH align=right>Safety Height:
  47. <TD><INPUT TYPE="text" NAME="standoff" VALUE=""><TR>
  48. <TH align=right>Dwell Time:
  49. <TD><INPUT TYPE="text" NAME="dwell" VALUE=""><TR> </table>
  50. <INPUT TYPE="button" NAME="button" Value="Get Holes2" onClick="testResults(this.form)">
  51. </FORM> </BODY> </HTML>
  52. """
  53.  
  54.  
  55. depth=1
  56. standoff=10.0
  57. dwell=1
  58.  
  59. def findholes():
  60. sel=Gui.Selection.getSelection()
  61. obj = sel[0].Shape
  62.  
  63. facelist = []
  64. holelist = []
  65. for f in obj.Faces:
  66. if f.ParameterRange[1]> 6.28318 and f.ParameterRange[1]< 6.283186 : #eliminate flat faces
  67. facelist.append(f)
  68.  
  69. for h in facelist:
  70. curvelist=[]
  71. for w in h.Wires:
  72. for c in w.Edges:
  73. if ( isinstance(c.Curve,Part.Circle) ):
  74. curvelist.append((c.Curve.Radius,c.Curve.Center.x,c.Curve.Center.y))
  75. coords = list(set(curvelist[:]))
  76. holelist.append(list((coords[0][0], (coords[0][1],coords[0][2]),h.BoundBox.ZMax,h.BoundBox.ZMin)))
  77. return holelist
  78. #FreeCAD.Console.PrintMessage(str(holelist))
  79. # clipboard = QtGui.QApplication.clipboard()
  80. # clipboard.setText(str(holelist))
  81.  
  82. class TestClass(QtCore.QObject):
  83. @QtCore.pyqtSlot(str,str,str)
  84. def newBox(self, msg1,msg2,msg3):
  85. depth = (msg1);standoff = (msg2); dwell= (msg3)
  86.  
  87. holes = findholes()
  88. peck_depth=0.0625
  89. retract_mode=0
  90. spindle_mode=0
  91. FreeCAD.Console.PrintMessage("depth ="+ str(depth)+"\n")
  92. FreeCAD.Console.PrintMessage("standoff = "+ str(standoff)+ "\n")
  93. FreeCAD.Console.PrintMessage("dwell= "+ str(dwell) + "\n")
  94. FreeCAD.Console.PrintMessage("peck_depth = "+ str(peck_depth) + "\n")
  95. FreeCAD.Console.PrintMessage("retract_mode= "+ str(retract_mode) + "\n")
  96. FreeCAD.Console.PrintMessage("spindle_mode="+ str(spindle_mode) + "\n")
  97.  
  98. for h in holes:
  99. st = ("drill("+str(h[1][0])+ "," +str(h[1][1])+ ",depth,standoff,dwell,peck_depth,retract_mode,spindle_mode)" )
  100. FreeCAD.Console.PrintMessage(st+"\n")
  101.  
  102. myObj = TestClass()
  103.  
  104.  
  105.  
  106. WebGui.openBrowser('DrillOps')
  107.  
  108. a = QtGui.qApp
  109. FreeCAD.Console.PrintMessage(str(a))
  110. mw = a.activeWindow()
  111. FreeCAD.Console.PrintMessage(str(mw))
  112. v= mw.findChild(QtWebKit.QWebFrame)
  113.  
  114. curr1 = v.page()
  115. frame1 = curr1.currentFrame()
  116. frame1.setContent(html)
  117. frame1.addToJavaScriptWindowObject("pyObj", myObj)
Add Comment
Please, Sign In to add comment