乐筑天下

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

[编程交流] 用脚本编写菜单文件

[复制链接]
cso

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 09:31:25 | 显示全部楼层 |阅读模式
我有一个作业要写“简单”菜单文件,其中嵌入/引用了一个脚本和一个lisp文件。我不知道该怎么做。我可以编写一个.mnu文件并使用cuiload命令加载。我可以编写一个脚本并使用script命令加载它,同样,我可以编写一个lisp例程并加载它。我如何开始将这三个文件合并到一个程序中?它都是一个.mnu文件吗?
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 09:45:18 | 显示全部楼层
假设您知道语法,您可以编写一个“MNU”文件,也可以创建一个新的。使用CUI编辑器的CUIX文件。
无论哪种方式,都可以使用以下宏调用lisp文件:
 
  1. ^C^C(if (not c:myfun)(load "C:\\cadstuff\\mylispfile"));myfun;

 
...其中“mylispfile.lsp”是文件名,“C:\cadstuff”是它所在的位置,“myfun”是函数名。
 
要调用脚本文件,可以使用如下宏:
 
  1. ^C^Cscript;myscript;

 
...其中“myscript”是脚本文件的名称,假设它位于支持文件搜索路径中。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 09:55:16 | 显示全部楼层
只是一个问题。。。在生成宏时,使用正斜杠“/”而不是双反斜杠“\”不是更好吗?只是宏中的反斜杠通常意味着“暂停以供用户输入”。我知道,由于反斜杠包含在lisp括号内,因此您的脚本仍然有效,但如果您必须指定脚本文件的路径,它将暂停以供一些用户输入,因此应该是:
  1. ^C^Cscript;"C:/cadstuff/myscript";
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 09:59:00 | 显示全部楼层
 
抢手货我没有测试它,我确实记得在过去遇到过这个问题。
谢谢.:-)
回复

使用道具 举报

cso

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 10:12:42 | 显示全部楼层
谢谢,我成功了。
回复

使用道具 举报

cso

5

主题

22

帖子

17

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 10:21:05 | 显示全部楼层
实际上,它不起作用。我让脚本部分工作,但不是Lisp程序。我们只是勉强掌握了编写菜单脚本和Lisp的每一部分,所以我还不是很好。对于LISP,我们只编写了非常简单的示例,例如通过获取三个点,然后使用line命令绘制三角形。我们还没有涉及其他项目,比如if、then,以及编写lisp的其他多种方法。我花了很多时间复习网上信息,所以我开始理解它(但不知所措!)。
 
考虑到这一点,我似乎应该能够编写一个菜单文件来加载一个简单的lisp。这样地:
 
这是我的lisp,作为一个独立的lisp;另存为csotriangle。lsp:
(defun c:TRIANG1()
(setq P1(getpoint“\n输入三角形的第一个点:”)
(setq P2(getpoint“\n输入三角形的第二个点:”)
(setq P3(getpoint“\n输入三角形的第三个点:”)
(命令“行”P1 P2 P3“C”)
)
 
 
我救了csotriangle。AutoCAD支持文件路径中的lsp。
现在,如果我想使用菜单文件(.mnu)调用它,似乎我应该能够这样做:
 
***POP1
[LISP FRM MENUcso]
[绘制三角形]^C^Cload;csotriangle。lsp;三角形1
[--]
[退出]^C
我不确定语法;我应该使用括号等吗?;我是否必须将条件语句和/或文件路径作为程序的一部分?
此外,似乎有一些信息提到了。mnl和。mns扩展。在一个示例中,他们保存了一个菜单例程作为示例5。mnu。mns,并加载了这两个扩展,我不知道为什么这样做。谢谢你的帮助。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 10:29:04 | 显示全部楼层
实际上,宏/脚本应该只通过lisp调用加载lisp文件:
代码使用的加载命令是SHX形状文件的加载。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 10:35:01 | 显示全部楼层
 
此线程中已经发布了一个示例。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:16 , Processed in 0.462985 second(s), 68 queries .

© 2020-2025 乐筑天下

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