乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: jt6572

[编程交流] 在explor中打开特定文件夹

[复制链接]

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:24:28 | 显示全部楼层
jt6572有一种方法可以键入B1234 B456 b789123等的任意组合,这会导致错误,因为“命令未知”,但如果您始终将一致的“B”作为第一个字符,并且目录结构始终相同,则可以为每个项目使用1个库函数,而不是多个defuns。
 
这是圆角偏移的代码&直接键入的圆基本上切出一个或两个步骤F123表示半径为123的圆角。它使用已出错的命令,但查看键入的内容并将其分离,然后执行正确的命令。
 
代码已修订,请参阅满足要求的进一步发布。
回复

使用道具 举报

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:30:06 | 显示全部楼层
哇,越来越好了!
如果我能得到这个破解,那就太棒了,因为B只是我们所有布里斯班项目的前缀。神秘的
 
我不是一个Lisp程序的专家,所以如果我通过,你能帮我吗?可能需要一点耐心。。。我对自己的进步感到高兴。
 
从代码来看,我可能只能使用其中一个wcmatch。。。段落(告诉你我不是编码员!!)用B替换C?
我不知道该如何把这些和我已经拥有的结合起来。但我现在有一点时间来处理这个问题,所以会造成一些Lisp程序的破坏!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:30:54 | 显示全部楼层
你的正确答案是添加“B”,并使一个新的defun名称说“openex”,并使用你的startapp。
 
如果你看变量com,这将返回项目编号,这是一个有趣的想法,我可能会尝试一下,因为我们的项目基于年份+项目编号2016123
 
这段代码是从我们公司的lisp库自动加载的,试着用圆角圆等记住小数点是一个“-”f12-5
回复

使用道具 举报

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:35:35 | 显示全部楼层
文字写完了,现在开始!!
回复

使用道具 举报

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:38:50 | 显示全部楼层
不。不知道我在做什么。顺便说一句,出于某种原因,我第一次单击目录的按钮时,它会重复最后一个命令。
在我现有的lisp中是否有不应该出现的空格或“”或\的地方?
 
  1. (defun jobs ()
  2. (STARTAPP (strcat "EXPLORER /e," "F:\\Jobs"))
  3. )

 
 
  1.   ; Enter the filet radius as part of a command line entry f100 offset O234 circle c123-45
  2. ; note - is used for decimal point
  3. ; original code and methology by Alan H
  4. ; assistance and code that worked by Lee-Mac
  5. ; OCT 2015
  6. (   (lambda nil
  7.        (vl-load-com)
  8.        (foreach obj (cdar (vlr-reactors :vlr-command-reactor))
  9.            (if (= "openx" (vlr-data obj))
  10.                (vlr-remove obj)
  11.            )
  12.        )
  13.        (vlr-command-reactor "openx" '((:vlr-unknowncommand . openx-callback)))
  14.    )
  15. )
  16. (defun openx ( obj com )
  17. (setq com (vl-string-translate "-" "." (strcase (car com))))
  18.    (cond   
  19.        (   (and
  20.            (wcmatch com "~*[~B.0-9]*")
  21.            (wcmatch com "B*")
  22.            (wcmatch com "~B*B*")
  23.            (wcmatch com "~*.*.*")
  24.            ) ; and
  25.            (openx)
  26.         )
  27.    ) ; master cond
  28. ) ; defun
  29. (STARTAPP (strcat "EXPLORER /e," "F:\\Jobs\\B16000\\B16007\\Drawings"))
  30. )
  31. (princ)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:42:53 | 显示全部楼层
您需要返回一点您的混合defun,并将openx放入重复的defun中。
 
我使用的是defun openx和“D”,代码将自动重用D项目编号“123345”等,因此不需要单独的硬编码文件名。你必须有一个严格的目录结构,它才能工作。
 
  1. (   (lambda nil
  2.        (vl-load-com)
  3.        (foreach obj (cdar (vlr-reactors :vlr-command-reactor))
  4.            (if (= "fillet-reactor" (vlr-data obj))
  5.                (vlr-remove obj)
  6.            )
  7.        )
  8.        (vlr-command-reactor "fillet-reactor" '((:vlr-unknowncommand . fillet-reactor-callback)))
  9.    )
  10. )
  11. ; open a project that is 3 directory deep just by project number
  12. ; my example c:\2016 projects\2016123\design
  13. (defun openx ( / Proj)
  14.            (setq projno (strcat "EXPLORER C:\" (substr com 2 4) " Projects\" (substr com 2) "\\Design\"))
  15.            (vla-sendcommand fillet-reactor-acdoc (STARTAPP projno))                  
  16. )
  17. ; calls the fillet command with the radius f123
  18. (defun filletrad ( / rad)
  19. (setq rad (distof (substr com 2) 2))
  20.            (if (<= 0.0 rad)
  21.              (progn        
  22.              (setvar 'filletrad rad)
  23.              (vla-sendcommand fillet-reactor-acdoc "_.fillet ")
  24.              )
  25.              )
  26. )
  27. ;calls the circle command with radius c123
  28. (defun makecirc ( / rad radd)
  29. (setq rad (distof (substr com 2) 2))
  30.            (if (<= 0.0 rad)
  31.            (progn
  32.            (setvar 'circlerad rad)
  33.            (setq pt (getpoint "Pick centre pt"))      
  34.            (vla-sendcommand fillet-reactor-acdoc "_.Circle !pt  ")      
  35.            )
  36.            )
  37. )
  38. ;calls offset with a distance + or - for left and right O123
  39. (defun offdist ( / dist)
  40. (setq dist (distof (substr com 2) 2))
  41.            (if (<= 0.0 dist)
  42.            (progn        
  43.            (setvar 'offsetdist dist)
  44.            (vla-sendcommand fillet-reactor-acdoc "_.Offset  ")
  45.            )
  46.            )
  47. )
  48. ; calls a lisp program
  49. (defun pipeoff ( / dist)
  50. (setq dist (distof (substr com 2) 2))
  51.            (if (<= 0.0 dist)
  52.            (progn
  53.            (setq poff (strcat "P" (rtos dist 2 0)))
  54.            (if (not poff)(load "Pipe offsets"))
  55.            (vla-sendcommand fillet-reactor-acdoc poff)
  56.            )
  57.            )
  58. )
  59. ; start of call back F O P D as 1st character
  60. (defun fillet-reactor-callback ( obj com )
  61. (setq com (vl-string-translate "-" "." (strcase (car com))))
  62.    (cond   
  63. ; open explorer
  64.         (  (and
  65.            (wcmatch com "~*[~D.0-9]*")
  66.            (wcmatch com "D*")
  67.            (wcmatch com "~D*D*")
  68.            (wcmatch com "~*.*.*")
  69.            ) ; and
  70.            (openx)
  71.         )
  72. ; fillet
  73.        (   (and
  74.            (wcmatch com "~*[~F.0-9]*")
  75.            (wcmatch com "F*")
  76.            (wcmatch com "~F*F*")
  77.            (wcmatch com "~*.*.*")
  78.            ) ; and
  79.            (filletrad)
  80.         )
  81. ; circle
  82.         (  (and
  83.            (wcmatch com "~*[~C.0-9]*")
  84.            (wcmatch com "C*")
  85.            (wcmatch com "~C*C*")
  86.            (wcmatch com "~*.*.*")
  87.            ) ;and
  88.            (makecirc)
  89.         )
  90. ; offset
  91.         (  (and
  92.            (wcmatch com "~*[~O.0-9]*")
  93.            (wcmatch com "O*")
  94.            (wcmatch com "~O*O*")
  95.            (wcmatch com "~*.*.*")
  96.            ) ; and
  97.            (offdist)
  98.         )
  99. ; pipe
  100.         (  (and
  101.            (wcmatch com "~*[~P.0-9]*")
  102.            (wcmatch com "P*")
  103.            (wcmatch com "~P*P*")
  104.            (wcmatch com "~*.*.*")
  105.            ) ; and
  106.            (pipeoff)
  107.         )
  108.    ) ; master cond
  109. ) ; defun

 

 
  1. ^C^C(startapp "explorer" (findfile "Drawing Register.xlsm"))

 
在一场令人惊讶的无知秀中。。。
 
哦,好吧。。。试一试!!至少我不是一个什么都没做的人嘿?!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:43:05 | 显示全部楼层
  1. ^C^C(startapp "explorer" (findfolder "PDF"))
  1. (findfile "pdf")
回复

使用道具 举报

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:46:34 | 显示全部楼层
 
哈哈。。。非常感谢Roy!
 
(再靠近一点就会咬到我?!)
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:49:39 | 显示全部楼层
回复

使用道具 举报

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 16:54:36 | 显示全部楼层
 
ha ha... thanks very much Roy!
 
(any closer it would've bitten me?!)
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 21:14 , Processed in 0.387294 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表