乐筑天下

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

[编程交流] 系统变量/LISP到Repo

[复制链接]

4

主题

30

帖子

26

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 19:48:10 | 显示全部楼层 |阅读模式
我试图找出是否存在一个系统变量,该变量将保存打开的平台(AutoCAD、Civil 3D等)上的信息。
 
我知道如何找到软件的版本,我需要的是将其应用于LISP中的if/then类型例程,其中。。。。
 
如果用户正在运行AUTOCAD且版本>19.1,则执行此操作;或
如果用户正在运行CIVIL 3D,并且版本>19.1,则执行此操作。
 
背景知识,处理可信位置问题,在我所在的公司中,我有一个将配置应用于CAD安装的自动化过程。该过程的一部分涉及受信任的位置,其中,AutoCAD在Civil 3D中不需要相同的位置。我希望在LISP开始时进行条件代码检查,该检查将应用于AutoCAD或Civil 3D,取决于“系统变量检查”,这将使过程确认应用程序。
 
有人有什么想法吗?我肯定有什么东西在那里,只是还没有找到它,没有ACADVER,虽然有用,但只回复版本,而不是实际使用的平台/软件。
 
非常感谢任何帮助或见解。。。。。。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 20:02:00 | 显示全部楼层
您是否考虑过只获取acad对象的名称?
 
  1. (setq acadObjName (vla-get-name (vlax-get-acad-object)))

 
对于reg autocad,它应该是“autocad”,对于civil 3d,它应该是“autocad civil 3d(年份)”
 
至少对我来说是这样。
回复

使用道具 举报

4

主题

30

帖子

26

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:20:58 | 显示全部楼层
谢谢你的回复,我会检查一下,看看这是否符合我的要求。我测试完后会回复。
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 20:25:43 | 显示全部楼层
此外,您可以随时关闭受信任的位置。。。也许在所有情况下都不可取,但有另一种选择。
回复

使用道具 举报

4

主题

30

帖子

26

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:43:07 | 显示全部楼层
没错,这是我们IT部门不想做的事情,但是的,这是一种选择。
 
基本上,我得到了一个调色板按钮(实际上有几个),作为配置过程的一部分,自动配置用户的软件。我希望创建一个条件函数,如果用户运行AutoCAD,则执行1,2,3,如果用户运行Civil 3D,则执行4,5,6。AutoCAD似乎不需要用户的应用程序数据等任何可信位置(或在后台处理),而Civil 3D确实需要多条路径,准确地说是3条,指向用户的唯一配置文件路径等。如果我可以找到列出软件/平台的变量,那么我可以将其作为条件要求来执行。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:54:43 | 显示全部楼层
这可能是你想要的,我作为一个单独的函数运行,在主程序之前加载它。这是为了打开Civ3D界面
 
  1. ;vercheck.lsp  version check for *aecc objects
  2. (defun ah:vercheck ( / vrsn appstr)
  3. (vl-load-com)
  4. (if ((lambda (vrsn)
  5.        (cond
  6.         ((vl-string-search "R17.2" vrsn) (setq appstr "6.0")) ;09
  7.         ((vl-string-search "R18.0" vrsn) (setq appstr "7.0")) ;10
  8.         ((vl-string-search "R18.1" vrsn) (setq appstr "8.0")) ;11
  9.         ((vl-string-search "R18.2" vrsn) (setq appstr "9.0")) ;12 ?
  10.         ((vl-string-search "R19.0" vrsn) (setq appstr "10.0")) ;13
  11.         ((vl-string-search "R19.1" vrsn)(setq appstr "11.0"));;2014
  12.         ((vl-string-search "R20.0" vrsn)(setq appstr "12.0"));;2015
  13.         ((alert "This version of C3D not supported!"))
  14.        )
  15.       )
  16.       (vlax-product-key)
  17.      )                         ; end if condition progn is true
  18.      (progn
  19.        (cond (*AeccDoc*)
  20.          ((setq *AeccDoc*
  21.            (vlax-get
  22.              (cond (*AeccApp*)
  23.                ((setq *AeccApp*
  24.                  (vla-getinterfaceobject
  25.                     (cond (*Acad*)
  26.                     ((setq *Acad* (vlax-get-acad-object)))
  27.                     )
  28.                     (strcat "AeccXUiLand.AeccApplication." appstr)
  29.                  )
  30.                 )
  31.                )
  32.              )
  33.              'ActiveDocument
  34.            )
  35.           )
  36.          )
  37.        ) ; end main cond
  38.      ) ; end progn
  39. ) ; end if vsrn
  40. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:33 , Processed in 0.538151 second(s), 64 queries .

© 2020-2025 乐筑天下

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