QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2413|回复: 8
收起左侧

[求助] 在宏里怎么调用solidworks自带的“选择文件夹”对话框?

[复制链接]
发表于 2022-4-21 13:37:53 | 显示全部楼层 |阅读模式 来自: 中国江苏常州
其他
主题分类用于问题归类:

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

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

x
求助各位大佬,在SW宏里怎么调用solidworks自带的“选择文件夹”对话框,如下图,不知道用哪个函数或者方法可以调用这个对话框。类似于用GetOpenFileName可以调用“打开”对话框一样,9 K' U4 H. \3 z, P5 `; D
用BrowseForFolder也可以选择文件夹,但是感觉没有solidworks自带的那个好用。8 M  |: d# b  E) n
选择文件夹01.png $ y! Y" g5 L6 n- n) A# o! G) t9 ^
$ Q! r  H3 H. p5 k# B

7 x. f% B8 O3 }$ d/ N1 _1 `/ i+ v* f9 @! q
 楼主| 发表于 2022-4-23 09:18:32 | 显示全部楼层 来自: 中国江苏常州
自己顶一下,希望知道的朋友能分享下方法
发表于 2022-4-26 22:03:49 | 显示全部楼层 来自: 中国福建厦门
microsoft shell controls and automation
 楼主| 发表于 2022-4-28 18:22:26 | 显示全部楼层 来自: 中国江苏常州
fend5566 发表于 2022-4-26 22:03; X5 |% }" |& D
microsoft shell controls and automation

1 j6 z, g( V$ i+ k) y能具体点吗,宏不是太懂,只自学了一点,能有个例子就好了。用这个方法我只能打开这样的对话框5 [- P& {1 u1 k2 j& t; @
4 q8 a$ C6 q" w  p
12345.png 6 A$ k. j( n. ]4 H& W

点评

樓主是想要開啟左邊的快速存取?  发表于 2022-5-20 09:39
 楼主| 发表于 2022-5-16 15:43:40 | 显示全部楼层 来自: 中国江苏常州
还有希望能得到高手的指点吗
发表于 2022-5-20 09:38:05 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2022-5-20 09:58 编辑
' E( ^1 `  s* k3 M1 |0 k$ w& E7 ?% {' O% D4 N; R
代碼如下~
6 G" o3 x, P' X6 R* c: n% {$ s
  1. Option Explicit2 c2 l' {$ o) p/ d

  2. ) m- _* T& t; Z' s% }9 E. f9 X. ?
  3. Dim swApp As SldWorks.SldWorks1 d1 J9 |" N9 U4 E* ~

  4. 1 N# n9 F- p- i0 p& b9 C
  5. Sub main()
    & ]* K2 w2 G8 k$ P% h7 H( M
  6. $ A8 o1 s: R8 b# o( G* R. l9 P
  7.   Set swApp = Application.SldWorks) f. P; ]5 `: ~
  8.   Dim swFilter As String8 R& i* T) a) ]2 t& E1 q
  9.   Dim fileName As String, H/ w) O0 Y+ \/ c
  10.   Dim fileConfig As String
    ( X; l5 _9 j: O% J
  11.   Dim fileDispName As String
    2 ]5 F: p1 J- i) \2 |/ F$ L6 v. o
  12.   Dim fileOptions As Long
    6 q" U( R) z" l
  13.   swFilter = "SOLIDWORKS Files (*.sldprt; *.sldasm; *.slddrw)|*.sldprt;*.sldasm;*.slddrw") z0 s2 N0 [7 L# f8 l5 C
  14.   7 c3 v! H( Z9 l5 s# [- F. v) Y  n% T
  15.   ' Browse and get the Selected file name2 l- f% \1 i/ K" e; r  `
  16.   fileName = swApp.GetOpenFileName("Browse Document", "", swFilter, fileOptions, fileConfig, fileDispName), z, L+ n7 c- w$ ?7 ~/ _/ E; ^2 E

  17. + t" \5 W3 z# M. t' x5 p
  18. End Sub
复制代码

; A" p% ^8 [9 T+ X# D+ m
' S; k6 u, Y8 d
 楼主| 发表于 2022-5-23 15:16:20 | 显示全部楼层 来自: 中国江苏常州
gt.adan 发表于 2022-5-20 09:38; A/ K! m0 r1 j$ o& Y
代碼如下~
7 P+ U6 d0 F- y5 g) F! D; W: o
多谢回复,您的代码是打开某个文件的,我现在是想要选择到某个文件夹位置,而不打开具体文件,只要得到文件夹的路径就好。
5 d- X5 Z& C& P  S比如我们在”系统选项“设置 文件模板 位置的时候,只需要选择一个文件夹,现在就不知道在宏里怎么调用到和那一样的“选择文件夹”对话框。

点评

多加一行代碼就可以了…  详情 回复 发表于 2022-12-13 13:31
发表于 2022-12-13 13:31:53 | 显示全部楼层 来自: 中国台湾
lider2010 发表于 2022-5-23 15:16
& Y8 O) `: B( }+ ^" e8 e. ~- |! B多谢回复,您的代码是打开某个文件的,我现在是想要选择到某个文件夹位置,而不打开具体文件,只要得到文 ...

- L7 t  e; d/ a# Z' s: N多加一行代碼就可以了…3 S) I( C$ s' S7 y
6 I, Z9 |* `; O" S
  1. Option Explicit9 W0 g3 z, q( R

  2. : X4 K$ `  {# [& }8 [
  3. Dim swApp As SldWorks.SldWorks
    & ~" m5 i2 W7 w8 @5 l9 p
  4. Dim swFilter As String, fileName As String, fileConfig As String, fileDispName As String
      n2 z% f! ?  c! _5 s- B, C" ?
  5. Dim fileOptions As Long! }+ D$ b+ A! X( M  I) F
  6. 3 w. Z! G( S3 ^- P; Q8 ^8 J
  7. Sub main()
    * H" c1 c5 n, N: o
  8. Set swApp = Application.SldWorks
    . E' ]1 C5 J* w$ W
  9. swFilter = "All(*.*)|*.*"
    3 g; B. q) n- ~' T3 Y$ l! w& Z; v* M

  10. 9 Z& C+ U& u& e& }
  11. ' Browse and get the Selected file name- B2 d8 m: l9 y$ i4 Z2 @
  12. fileName = swApp.GetOpenFileName("Browse Document", "", swFilter, fileOptions, fileConfig, fileDispName): Y8 J% \4 l2 l* R  _( _$ p
  13. ' Get the path of the selected file
    5 f. i6 Z1 Z) k2 P  o
  14. fileName = Left(fileName, InStrRev(fileName, "")): z2 w0 S6 G* m1 e
  15. Debug.Print fileName. p; Z: B) `! G$ ~( ?8 q
  16. End Sub  p& D* C8 a0 E" `( p
复制代码
  h( X# W, }! F9 K  A

; S& i) m6 c/ n5 V  E" r
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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