乐筑天下

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

[编程交流] 框架(ruller)

[复制链接]

2

主题

19

帖子

17

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:22:28 | 显示全部楼层 |阅读模式
我试着做一个Lisp程序,画一个ruller。
要输入的帧间距、起始帧编号、结束帧编号和比例。
不幸的是,我是lisp的新手,它不起作用。有人能帮忙吗?
框架。LSP
框架。图纸
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:37:36 | 显示全部楼层
这里有一个简单的例子:
 
[code](defun c:foo(/a d i n p p2);;RJP-04-10-2018;;创建简单标尺(cond((and(not(initget 7))(setq i(GEINT“\n输入间距:”)(setq p(getpoint“\n单击起点:”)(setq d(getdist p“\n单击距离:”)))(setq n 0)(而(
回复

使用道具 举报

2

主题

19

帖子

17

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:40:19 | 显示全部楼层
thnx快速回复。这真的很好。
但我想添加“比例因子”,改变文本高度和行长度。也就是说,如果间距为500mm,则文本和行太短。
此外,说明帧编号和结束帧编号也很重要。
顺便问一下,我的Lisp程序怎么了?
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:50:33 | 显示全部楼层
 
您使用的子函数“MakeBlockA”有很多问题,例如错误的cond、错误的列表构造、在重复循环中生成“ENDBLK”,您确定它必须为b重复还是应该为(abs(-b a))。
我将使用块定义的唯一名称,例如(strcat“framing\uuA”\uB”\uFS”\uSC)来说明可能的多个版本
并将所有变量本地化,并将其本地传递给该子函数。
回复

使用道具 举报

2

主题

19

帖子

17

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:02:10 | 显示全部楼层
我一直在努力,但还是有一些问题。我无法通过比例因子更改文本高度。这是最新版本;
 
(定义c:框架()
(setq a(getint“\n开始帧:”)
(setq b(getint“\n和帧:”))
(setq fs(getint“\n帧间距:”))
(setq sc(getint“\n比例:”))
(setq sca(*2 sc))
(if(not(tblsearch“BLOCK”“rullerA”))(MakeBlockA))
(if(not(ssget“X”(list’(0。“INSERT”)'(2。“rullerA”)))(entmake(list’(0。“INSERT”)'(2。“rullerA”)'(10 0 0)))
 
(普林斯)
)
(defun MakeBlockA()
(entmake(list’(0。“BLOCK”)'(2。“rullerA”)'(10 0.0 0.0 0.0)'(70.0)))
(setq i a)
(重复(+b 1)
(setq ii(*i fs))
(续)
((=(*5(/i 5))i)(程序
(setq m 2)
(setq n 1)
(setq scb(*-5 sc))
(entmake(list)(0。“text”)(list 10 ii scb 0)(list 11 ii scb 0)(cons 1(itoa i))'(40.75)(cons 50 0.0)(cons 71 0)(cons 72 1)(cons 73 0)(cons 62 4)))
)
)
)
(setq scc(*-1 sc))
(entmake(list’(0。“LINE”)(list 10 ii 0)(list 11 ii(*scc m)0)(cons 62 n)))
(setq i(1+i)m 1)
(setq n 2)
)
 
(entmake(list’(0。“ENDBLK”))
)
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:10:13 | 显示全部楼层
没有太多时间来研究这一点,但请尝试一下:
也要使用代码标签以确保易读性。
[code](定义c:帧(/a b fs i ii m n sc sca scb scc);;
回复

使用道具 举报

2

主题

19

帖子

17

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:13:56 | 显示全部楼层
嗨,ronjonp,
thnx的帮助和代码标签的东西,它的工作对我很好。
现在,grrr建议解决另一个问题,但我做不到;命名块。
我试图使用(strcat“framing\uuA”\uB”\uFS”\uSC),但它给出了错误:
错误的DXF组:(2 STRCAT“framing\uuA”\uB”\uFS”\uSC)
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:26:04 | 显示全部楼层
您试图将数字传递给只接受字符串的函数。
 
[code](defun c:帧(/a b bn fs i ii m n sc scb scc);;
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 03:21 , Processed in 0.546791 second(s), 79 queries .

© 2020-2025 乐筑天下

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