乐筑天下

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

[编程交流] 从中删除引号

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:40:49 | 显示全部楼层
这样地?
 
  1. (eval (read (strcat "(C:" fn ")")))
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 12:42:49 | 显示全部楼层
Razoo,
 
您首先要求删除报价表。
我认为,read函数是正确的回答。
 
然后,您似乎想要评估是否加载了LISP函数
eval和boundp都按您想要的方式使用,请尝试:
  1. (if (not (eval (read (strcat "c:" fn))))
  2. (alert "Not loaded !")
  3. (alert "Already loaded !")
  4. )

它们的工作原理相同,因为if语句不需要条件来返回t,而是一个非nil值。
 
要运行该命令,问题是相同的,您必须强制评估:
  1. (eval (read (strcat "(c:" fn ")")))
(strcat“(c:“fn”))返回“(c:名称)”
(read“(c:NAME)”)返回(c:NAME)
(eval(c:NAME))将运行该函数。
 
 
PS:如果你从一开始就解释了你想做的一切,我一定会回复你:
“你看过自动加载功能吗?”
  1. (autoload fn '(fn))

 
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:44:37 | 显示全部楼层
 
是的。
 
 
同意(在“如果”声明中)。我正在使用boundp。
 
 
我确实知道这一点,但出现了引导错误,导致我的测试代码失败。见我对李的回复。
 
 
当fn设置为“NAME”(autoload fn’(fn))时,返回“错误:参数类型错误”。
 
我希望这是可以解决的,但我更喜欢我编写的“按需加载”Lisp例程,因为它给了我更多的控制,并允许我指定任何错误消息。
 
一开始我没有解释全部任务,因为:
1.我没想到会有这么多麻烦,我想我唯一的问题是记住哪个函数去掉了引号(我在过去3年左右没有写过任何Lisp,我的Lisp圣经已经擅离职守了)。
 
我喜欢自己尽可能多地练习Lisp程序。
 
3.我当时正想让你和李看看谁跑得最快(我想李赢了!)眨眼:
谢谢
 
拉祖
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:49:12 | 显示全部楼层
 
我不同意,吉尔比我知识渊博得多。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:53:58 | 显示全部楼层
对于自动加载,这应该可以工作:
 
  1. 7

 
由于撇号(')表示未计算列表,因此“fn”是无效的参数类型。
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:55:17 | 显示全部楼层
 
谢谢李,
 
我想发回我已经试过了那个代码,但它不起作用——然后我意识到我直接从命令行尝试了它,而没有首先将变量fn设置为“NAME”(当lisp例程终止时,fn重置为nil)。
 
我的“按需加载”Lisp例程现在运行得很好。
 
感谢所有提供指导的人。
 
直到下一次!
 
当做
 
拉祖
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:58:44 | 显示全部楼层
 
我指的是回复的速度,而不是知识的深度
 
拉祖
回复

使用道具 举报

3

主题

19

帖子

16

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 13:03:49 | 显示全部楼层
 
是的,修订后的代码运行良好。
 
我有许多Lisp例程,但从未在AutoCAD会话期间全部运行过。
 
我更喜欢使用预定义的(在Acad.lsp中)“按需加载”Lisp函数(C:Runlsp)。
 
如果我向菜单或工具栏添加新的Lisp命令,我所要做的就是键入宏:
如果“文件名”=“命令名”,或:
否则。
 
拉祖
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:07:24 | 显示全部楼层
我想每个人都有自己的
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:39 , Processed in 0.846404 second(s), 68 queries .

© 2020-2025 乐筑天下

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