乐筑天下

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

[编程交流] 这个“Afrali”需要帮助

[复制链接]

59

主题

327

帖子

268

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
295
发表于 2022-7-6 12:08:51 | 显示全部楼层
Alanjt,
 
代码确实有效,它添加了一个支持文件搜索路径!谢谢你的意见,我可能会对这些问题稍微推敲一下”thingies。
 
如果你明白我的意思的话,没有一些代码可以阻止双路径。我试了两次,在选项对话框中得到了两次路径“C:\temp”。
 
尽管我不知道如何开始,但现在让我试着弄清楚,因为我一直都是一个全职的初学者,哈哈。
 
好的,但首先我把代码去掉了,所以我只需要剩下(想象一下我在这么大的例程中被搞糊涂了LOL)
  1. (defun c:CES-Setup (/ #Files #Layout #Flag)
  2. (vl-load-com)
  3. (and
  4.    (not
  5.      (vl-catch-all-error-p
  6.        (vl-catch-all-apply
  7.          '(lambda ()
  8.             (setq #Files  (vla-get-files
  9.                             (vla-get-preferences (vlax-get-acad-object))
  10.                           ) ;_ vla-get-files
  11.                   #Layout (vla-get-activelayout
  12.                             (vla-get-activedocument (vlax-get-acad-object))
  13.                           ) ;_ vla-get-activelayout
  14.             ) ;_ setq
  15.             [color=navy][b](mapcar 'vl-mkdir (list "c:\\TEMP" "c:\\TEMP\\ACAD"))[/b][/color]
  16.             (vla-put-autosavepath #Files "c:\\TEMP\\ACAD")
  17.             (vla-put-supportpath
  18.               #Files
  19.               (strcat ";c:\\temp"
  20.                       ";"
  21.                       (vla-get-supportpath #Files)
  22.               ) ;_ strcat
  23.             ) ;_ vla-put-supportpath
  24.           ) ;_ lambda
  25.        ) ;_ vl-catch-all-apply
  26.      ) ;_ vl-catch-all-error-p
  27.    ) ;_ not
  28.    (alert
  29.      (strcat
  30.        "AutoCAD has been setup for Capital Engineering & Surveying, Inc. Standards.\n\n"
  31.        "                      Please restart AutoCAD."
  32.      ) ;_ strcat
  33.    ) ;_ alert
  34. ) ;_ and
  35. (princ)
  36. ) ;_ defun
  37. (alert "Type: "CES-SETUP" to run setup.")
  38. (princ)

 
(你知道,我现在认识的蓝色部分…)
 
不知何故,我需要toch检查当前的支持文件搜索文件夹是否与新文件夹匹配。如果他们匹配,就跳过那个。。。。
 
不,真的,我不知道。你能帮助我吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:12:08 | 显示全部楼层
 
是的,我从不费心检查重复项(没有意义),因为它只在新安装时运行一次。
 
我建议使用wcmatch来查看现有支持路径中是否已经存在字符串。如果返回true,则不执行任何操作,如果为nil,则添加到支持路径。
 
我知道你说你认识蓝色部分,但只是为了澄清,它只是在c:\驱动器上创建“c:\\temp\\acad”目录。
 
顺便说一句,你可能想删除所有我公司特定的提示/标签。英雄联盟
回复

使用道具 举报

59

主题

327

帖子

268

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
295
发表于 2022-7-6 12:17:17 | 显示全部楼层
是的,我知道,但我只知道一小会儿:眨眼:
 
我以为你喜欢。。。不,我忘了。。。。
 
 
你说“如果字符串allready存在”。。。因此,使用wcmatch,我应该能够看到字符串“c:\temp”在路径中是否就绪。
但接下来的问题是如何做到这一点。我的意思是,首先我需要在一个列表中获取所有supportfile路径,对吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:21:51 | 显示全部楼层
如。
  1. (setq ExistingPaths ";c:\\folder1;c:\\folder2;c:\\folder3")
  2. (setq NewPaths (list "c:\\folder3" "c:\\folder4" "c:\\folder5"))
  3. (setq string "")
  4. (foreach x NewPaths
  5. (or (wcmatch ExistingPaths (strcat "*" x "*"))
  6.      (setq string (strcat string ";" x))))
  7. (vla-put-supportpath ...
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 02:45 , Processed in 0.391698 second(s), 58 queries .

© 2020-2025 乐筑天下

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