乐筑天下

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

[编程交流] diesel的lisp版本

[复制链接]

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-5 22:28:28 | 显示全部楼层 |阅读模式
你好
我正在寻找这个diesel表达式的lisp版本:
%%
 
它获取文件名的最后一个字符。XXXXX-A(A版)
文件名长度可能不同,因此我希望它从头到尾计数。
 
谢谢
 
PmxCAD
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 22:37:37 | 显示全部楼层
 
你从头到尾是什么意思?它是指基本文件名吗?
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 22:42:05 | 显示全部楼层
 
LISP翻译为:
 
  1. (substr (getvar 'dwgname) (- (strlen (getvar 'dwgname)) 4) 1)

 
 
然而,使用LISP的一个优点是能够更有效地测试条件,并利用变量/参数和子函数:
 
  1. (vl-load-com)
  2. (defun _GetRevision (dwgName / i)
  3. ;; Example: (_GetRevision "XXXXX-A.dwg")
  4. ;; Returns: "A"
  5. (if (setq i (vl-string-search "-" dwgName))
  6.    (substr dwgName (+ 2 i) 1)
  7. )
  8. )

 
 
 
干杯
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 22:45:47 | 显示全部楼层
  1. (chr (last (vl-string->list (vl-filename-base (getvar 'dwgname)))))
  1. ((lambda (fn) (substr fn (strlen fn))) (vl-filename-base (getvar 'dwgname)))
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 22:50:49 | 显示全部楼层
... 另一个保留文件扩展名,考虑到OP对最后一个字符的请求:
 
  1. (defun _GetRevision (dwgName / i)
  2. ;; Example: (_GetRevision "XXXXX-A.dwg")
  3. ;; Returns: "A"
  4. (if (setq i (vl-string-search "." dwgName))
  5.    (substr dwgName i 1)
  6. )
  7. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 22:55:52 | 显示全部楼层
另一个类似于斯特凡的建议:
  1. (apply '(lambda ( a b c ) (substr b (strlen b))) (fnsplitl (getvar 'dwgname)))
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-5 22:59:00 | 显示全部楼层
是的,它工作,但它只适用于1个标签。
我在脚本中使用它来打印到pdf。使用文件名中的活动布局选项卡名称和修订版创建pdf。(tabname-A.PDF)
 
下一个选项卡出错。
脚本在完成之前停止。
数据似乎保留在内存中。
 
我做错了什么?
 
PmxCAD
 
 
 
  1. (setq Revision (substr (getvar 'dwgname) (- (strlen (getvar 'dwgname)) 5) 2))
  2. (setq DwgN (getvar "CTAB"))
  3. (setq Fname (substr DwgN 1 (- (strlen DwgN)0)))
  4. (setq name (strcat (getvar "DWGPREFIX") Fname Revision".pdf"))
  5. -plot
  6. !name
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 23:04:50 | 显示全部楼层
 
您没有使用AUTOMATICPUB==1。
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-5 23:12:20 | 显示全部楼层
AUTOMATICPUB?
这个变量是什么?
 
pmxcad
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 23:17:24 | 显示全部楼层
 
它启用/禁用了2009年首次实现的自动发布机制。。。我每天都用它来制作计划,每次我保存一张图纸时都会生成一个PDF,甚至用它来定制行为。
 
HTH公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:26 , Processed in 0.439063 second(s), 72 queries .

© 2020-2025 乐筑天下

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