QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3557|回复: 9
收起左侧

[分享] 关于SW二次开发常用代码

[复制链接]
发表于 2015-1-9 16:54:19 | 显示全部楼层 |阅读模式 来自: 中国广东深圳

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 steve_suich 于 2015-1-9 17:00 编辑 * M" N" Y4 Z( Y# Y+ p& g& Z" o+ @0 F1 @

( S% N% G; ]* c# U3 o' qVB.NET代码
6 U  U( Y! T9 f. n4 ^引用SW库 : SolidWorks.Interop.sldworks.dll,SolidWorks.Interop.swconst.dll; r2 H/ w; b& c. I1 J& A0 ^, n
连接SW,打开文件  :
  1. Dim swapp As SldWorks7 j" ]3 u$ r) m5 ^4 b( G  w9 X8 L
  2. Dim swdoc As ModelDoc2
    : Y( _. J2 m& b0 T0 ~; T3 R
  3. swapp = GetObject(, "SldWorks.Application"). l, m4 O+ t1 m/ v& B6 |6 E3 x
  4. With OpenFileDialog1
    5 i3 @7 K4 |( X' i
  5.             .Filter = "SW文件(*.sldprt;*.sldasm)|*.sldprt;*.sldasm"
    % n1 c7 A& l, s4 Z  L
  6.             .FilterIndex = 1& s5 K6 Y( [' g, d, t
  7.             .Title = "选择零件或者装配件(Ctrl可多选)"
    6 D& \6 j2 I. y0 |% h7 M% W
  8.         End With
    9 m" t! E. S: n+ y/ e+ b, `6 q
  9.         If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    3 h$ q0 ?. ?0 s& Q# U+ z- j7 f% D
  10.             Dim stname As String, F$ Y5 v% V: J" o0 e8 f/ Z
  11.             For Each stname In OpenFileDialog1.FileNames
    # W2 i  ^& t" C! d$ t. {- ]& j& j7 ?" S
  12.                 If Mid(stname, Len(stname) - 6) = ".SLDPRT" Then
    7 G* c/ s2 x6 N9 q. v2 Y
  13.                     swapp.OpenDoc(stname, 1)4 D4 S) G4 e+ n/ ^- G3 `0 b+ A- w" f5 s
  14.                 ElseIf Mid(stname, Len(stname) - 6) = ".SLDASM" Then
    9 A& _# @$ R  h* v0 ~4 |8 Q: _
  15.                     swapp.OpenDoc(stname, 2)
    ) }1 @- o! f5 p7 k* U) o8 P  G( }
  16.                 End If
    / I; `6 D8 ]% n  C( V
  17.                 swdoc = swapp.ActiveDoc
复制代码

评分

参与人数 1三维币 +10 收起 理由
阿帕奇 + 10

查看全部评分

 楼主| 发表于 2015-1-9 17:01:45 | 显示全部楼层 来自: 中国广东深圳
只学了点皮毛。抛钻引玉!!
 楼主| 发表于 2015-1-9 17:03:51 | 显示全部楼层 来自: 中国广东深圳
本帖最后由 steve_suich 于 2015-1-9 17:05 编辑
4 o) k0 w$ [3 f
0 [- U3 o) r* b4 A* ]添加自定义属性:swdoc.AddCustomInfo2(“自定义属性名称”, swCustomInfoType_e.swCustomInfoText, "内容")
8 M* i/ P% b$ t: ?! V还可以这样:
$ s* {1 N2 x1 M# y" }swdoc.AddCustomInfo2(“Weight”, swCustomInfoType_e.swCustomInfoText,  """" & "SW-Mass@" & swdoc.GetTitle & """")
发表于 2015-1-9 19:08:16 | 显示全部楼层 来自: 中国浙江宁波
退出并保留草图绘制,代码怎么写
发表于 2015-1-9 19:47:02 | 显示全部楼层 来自: 中国安徽芜湖
3d草图每两条线倒R角怎样选择直线?楼主会吗?
 楼主| 发表于 2015-1-10 14:05:17 | 显示全部楼层 来自: 中国广东深圳
steve_suich 发表于 2015-1-9 17:01 static/image/common/back.gif* P" [- f: k; o. m. X, e) \. l
只学了点皮毛。抛钻引玉!!
/ M: P- R/ M+ c+ V2 M+ n
我想应该是这个吧。
9 T0 w* x6 h) [4 }swmodel.SketchManager.InsertSketch(True)
 楼主| 发表于 2015-1-10 14:06:05 | 显示全部楼层 来自: 中国广东深圳
foxjinlin 发表于 2015-1-9 19:08 static/image/common/back.gif
, l! W( S. _* a( k1 W" W7 m0 j0 e* Y2 ?退出并保留草图绘制,代码怎么写
1 n" J8 Z4 j8 p! j
我想应该是这个吧。
0 Z$ ^; {' H) f# p. ?swmodel.SketchManager.InsertSketch(True)
 楼主| 发表于 2015-1-10 14:07:11 | 显示全部楼层 来自: 中国广东深圳
ss988 发表于 2015-1-9 19:47 static/image/common/back.gif
" k. n6 A  G& Y9 s7 g  S3d草图每两条线倒R角怎样选择直线?楼主会吗?

5 [" I* j/ ]8 ?这个不会,期待高手解答。
 楼主| 发表于 2015-1-10 14:27:26 | 显示全部楼层 来自: 中国广东深圳
Mid(stname, Len(stname) - 6) = ".SLDPRT"
, ~) i% d7 `& J/ M# V改为 Path.GetExtension(stname) = ".SLDPRT" 更合理。
 楼主| 发表于 2015-1-14 08:57:07 | 显示全部楼层 来自: 中国广东深圳
单位设置:
  1. swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, 0, swUnitSystem_e.swUnitSystem_Custom)
    9 e5 k  p% B* N  T
  2.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsLinear, 0, swLengthUnit_e.swMM)
    / A. c6 M. M  a* n2 J% s$ s
  3.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsDualLinear, 0, swLengthUnit_e.swINCHES)
    * x; x' |% M  E5 o
  4.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, 0, swUnitsMassPropMass_e.swUnitsMassPropMass_Kilograms)) s1 y7 m: `. j
  5.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropLength, 0, swLengthUnit_e.swMM)  ?# `6 M: ^" h( P+ d+ R! G0 B3 q
  6.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropVolume, 0, swUnitsMassPropVolume_e.swUnitsMassPropVolume_Millimeters3)
    ' ?' t6 [9 V9 @% T2 _' u& u
  7.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsPowerUnits, 0, swUnitsPowerUnit_e.swUnitsPowerUnit_Watt)4 e6 I0 U# ^' Q
  8.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsForce, 0, swUnitsForce_e.swUnitsForce_Newtons)4 c9 [: `& D0 Z5 j- v  Y
  9.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropVolume, 0, swUnitsMassPropVolume_e.swUnitsMassPropVolume_Millimeters3)  a' U. w3 A- U# @3 n" x9 u6 R" g
  10.         swdoc.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsTimeUnits, 0, swUnitsTimeUnit_e.swUnitsTimeUnit_Second)* X3 n$ z  h' j
复制代码
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表