乐筑天下

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

[编程交流] 小Lisp程序中的简洁

[复制链接]

21

主题

155

帖子

135

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:28:36 | 显示全部楼层 |阅读模式
在我正在进行的DFX组码研究中,我编写了以下小lisp,效果很好。
 
  1. (defun c:rrr ( / ent entdef n ss x)
  2. (setq x (getstring t "\nEnter text to overwrite: "))
  3. (if (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  4.        (progn
  5. (setq n 0)
  6. (repeat (sslength ss)
  7. (setq ent (ssname ss n))
  8. (setq entdef (entget ent))
  9. (setq entdef (subst (cons 1 x) (assoc 1 entdef) entdef))
  10. (entmod entdef)
  11. (setq n (1+ n))
  12. )
  13. )
  14.    (princ "No Text Selected. Please Try Again")
  15.    )
  16. (princ)
  17. )

 
我的问题是,台词可以:
  1.             (setq ent (ssname ss n))
  2.             (setq entdef (entget ent))
  3.             (setq entdef (subst (cons 1 x) (assoc 1 entdef) entdef))

在不改变任何其他内容或使用那些奇特的vl函数的情况下,减少到两行(甚至一行)?
这是我正在努力解决的问题,放在其他方面
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 18:50:23 | 显示全部楼层
也许是这样的
编辑:对不起,快速阅读。。。
亨里克
回复

使用道具 举报

21

主题

155

帖子

135

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
105
发表于 2022-7-5 18:59:28 | 显示全部楼层
非常感谢你,亨里克。
  1. 4

那更整洁、更短。任何地方都没有vl gizmo!这是这个论坛最好的地方,总有像你或李这样的专家愿意帮助像我这样的新手。
 
我承认我花了很长时间写这个简短的lisp,其中一些函数对我来说是新的。
至于你最初的帖子,我本来打算添加“(if(and)”错误预防,但只是没有做到这一点,在添加这样的奢侈品之前,我仍然需要保持尽可能简单!
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 19:19:51 | 显示全部楼层
不客气,哈比人快乐
很高兴我能帮忙
 
亨里克
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 19:36:30 | 显示全部楼层
快乐的霍比特人你可能会想使用一个图书馆的小defuns,推我自己的独轮车从现在起,我使用getvals。lsp,允许我通过2行到1、2、3行或更多行的拨号出现,而无需写入任何dcl代码;示例代码(ah:getval3“Length”5 4“Width”8 7“Height”6 4)http://www.cadtutor.net/forum/showthread.php?93002-1-line-2-line-3line-dcl-auto-generator-plus-more-if-required&p=636641&viewfull=1#post636641
 
在开发一个商业产品时,几乎每个例程都会更改层和其他设置,每个例程中都有3-4行代码,但每行代码相当于库中约20行代码。
 
您可能需要将键入的字符数与在这个特定示例中未保存多少的实际行数进行比较。像Lee和Tharwat这样的人非常擅长减少实际代码的大小。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:27 , Processed in 0.412223 second(s), 62 queries .

© 2020-2025 乐筑天下

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