solidworks工程图自动绘制半圆的十字中心线/SW宏应用

smellycat solidworks技巧solidworks工程图自动绘制半圆的十字中心线/SW宏应用已关闭评论

solidworks工程图自动绘制半圆的十字中心线/SW宏应用

在SW的工程图中,给“半圆”标十字中心线是个老在难的问题,用过的同学都知道,总是有一条“长长的尾巴”,笨小编每次被它搞的一点脾气都没有。。。

solidworks工程图自动绘制半圆的十字中心线/SW宏应用

但是办法总是有的,世界上总是有牛人的存在,用solidworks”就可以自动成半圆的“十字中心线”,具体的操作方法如下:

1. 准备好“宏”的代码

  1. Sub main()
  2. Set swApp = Application.SldWorks
  3. Set DrawingDoc = swApp.ActiveDoc
  4. If DrawingDoc.GetType <> 3 Then Exit Sub
  5. Set SelMgr = DrawingDoc.SelectionManager
  6. If SelMgr.GetSelectedObjectType2(1) <> 12 Then Exit Sub
  7. Set swview = SelMgr.GetSelectedObjectsDrawingView(1)
  8. Set swDrawComp = swview.RootDrawingComponent
  9. DrawingDoc.ActivateView swDrawComp.View.GetName2
  10. Set Part = swview.ReferencedDocument
  11. Set FeatObj = Part.FirstFeature
  12. FeatObjFeatObjFeatObjname = FeatObj.GetTypeName
  13. While FeatObjname <> "OriginProfileFeature"
  14.     Set FeatObjFeatObjFeatObj = FeatObj.GetNextFeature
  15.     FeatObjFeatObjFeatObjname = FeatObj.GetTypeName
  16. Wend
  17. Featname = FeatObj.Name
  18. ViewOutlines = swview.GetOutline
  19. ViewCXform = swview.GetXform
  20. ViewXform = swview.GetViewXform
  21. Hp1x = (ViewOutlines(0) - ViewCXform(0)) / ViewXform(12)
  22. Hp1y = ((ViewOutlines(1) + ViewOutlines(3)) / 2 - ViewCXform(1)) / ViewXform(12)
  23. Hp2x = (ViewOutlines(2) - ViewCXform(0)) / ViewXform(12)
  24. Hp2y = Hp1y
  25. Vp1x = ((ViewOutlines(0) + ViewOutlines(2)) / 2 - ViewCXform(0)) / ViewXform(12)
  26. Vp1y = (ViewOutlines(3) - ViewCXform(1)) / ViewXform(12)
  27. Vp2x = Vp1x
  28. Vp2y = (ViewOutlines(1) - ViewCXform(1)) / ViewXform(12)
  29. DrawingDoc.SetAddToDB (True)
  30. Set SkLineH = DrawingDoc.SketchManager.CreateCenterLine(Hp1x, Hp1y, 0, Hp2x, Hp2y, 0)
  31. DrawingDoc.SketchAddConstraints "sgHORIZONTAL2D"
  32. boolstatus = DrawingDoc.Extension.SelectByID2("Point1@" & Featname & "@" & swDrawComp.Name & "@" & swDrawComp.View.GetName2, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
  33. DrawingDoc.SketchAddConstraints "sgCOINCIDENT"
  34. Set SkLineV = DrawingDoc.SketchManager.CreateCenterLine(Vp1x, Vp1y, 0, Vp2x, Vp2y, 0)
  35. DrawingDoc.SketchAddConstraints "sgVERTICAL2D"
  36. boolstatus = DrawingDoc.Extension.SelectByID2("Point1@" & Featname & "@" & swDrawComp.Name & "@" & swDrawComp.View.GetName2, "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
  37. DrawingDoc.SketchAddConstraints "sgCOINCIDENT"
  38. DrawingDoc.ClearSelection2 True
  39. End Sub

2. 新建一个“宏”

工具->->新建宏,再把上面的“代码”复制过去,保存,如下图

solidworks工程图自动绘制半圆的十字中心线/SW宏应用

3. 选中“半圆”,再运行“宏”, OK

原文作者Francis,出自http://www.solidworks.org.tw/forum.php?mod=viewthread&tid=24262

总结:在SW没出标注半圆的工具之前,这是工作必备的技巧,小编一直在用,直的是很方便。

 
  • 本文由 smellycat Published on 2016年9月3日