乐筑天下

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

[编程交流] 这个Lisp程序有什么帮助吗?

[复制链接]

96

主题

322

帖子

234

银币

后起之秀

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

铜币
474
发表于 2022-7-5 22:36:58 | 显示全部楼层 |阅读模式
该代码替换块仅对角度插入操作正常不正确且有问题,这意味着不遵循原点块的角度插入:o
  1. (PROMPT "\n*REPLACE BLOCK* ")
  2. (SETQ BN (GETSTRING "\nEnter block name to replace: "))
  3. (SETQ NBFN (GETSTRING "\nEnter block name to replace with: "))
  4. (SETQ FLT (CONS 2 BN))
  5. (SETQ BSS (SSGET "x" (LIST FLT)))
  6. (SETQ BSSL (SSLENGTH BSS))
  7. (SETQ CT (- BSSL 1))
  8. (SETQ LP 1)
  9. (WHILE LP
  10. (SETQ BEN (SSNAME BSS CT))
  11. (SETQ BENL (ENTGET BEN))
  12. (SETQ CT (- CT 1))
  13. (SETQ BENIP (CDR (ASSOC 10 BENL)))
  14. (ENTDEL BEN)
  15. (COMMAND "INSERT" NBFN BENIP "" "" "")
  16. (IF (< CT 0) (SETQ LP NIL))
  17. );END LP
  18. (PRINC)

谢谢你的帮助
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 22:57:26 | 显示全部楼层
尝试
 
  1. (SETQ BENIP (CDR (ASSOC 10 BENL)))
  2. (setq rad (cdr (assoc 50 benl)));; angle in radians
  3. (setq deg (* 180.0 (/ rad pi)));; angle in degrees
  4. (ENTDEL BEN)
  5. (COMMAND "INSERT" NBFN BENIP "" "" deg)

 
HTH公司
亨里克
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

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

铜币
474
发表于 2022-7-5 23:18:08 | 显示全部楼层
所以超过XXXXXXXXXXXXXXXXXXXXXX很多,嗯,席尔瓦
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:44:01 | 显示全部楼层
 
不客气,霍辛!
 
 
作为演示,我的建议是在运行代码之前测试有效的选择集和有效的块名。。。
 
  1. (defun c:demo (/ BEN BENIP BENL BN BSS DEG I NBFN XSC YSC)
  2. (prompt "\n*REPLACE BLOCK* ")
  3. (if (and (setq BN (getstring "\nEnter block name to replace: "))
  4.    (setq NBFN (getstring "\nEnter block name to replace with: "))
  5.    (setq BSS (ssget "x" (list (cons 2 BN))))
  6.    (or (tblsearch "BLOCK" NBFN)
  7.        (findfile NBFN)
  8.    );; or
  9.      );; and
  10.    (repeat (setq I (sslength BSS))
  11.      (setq BEN          (ssname BSS (setq I (1- I)))
  12.     BENL  (entget BEN)
  13.     BENIP (cdr (assoc 10 BENL))
  14.     DEG          (* 180.0 (/ (cdr (assoc 50 BENL)) pi));; rotation
  15.     XSC          (cdr (assoc 41 BENL));; x scale
  16.     YSC          (cdr (assoc 42 BENL));; y scale
  17.      )
  18.      (entdel BEN)
  19.      (command "_.insert" NBFN BENIP XSC YSC DEG)
  20.    );; repeat
  21. );; if
  22. (princ)
  23. );; demo

 
HTH公司
亨里克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:30 , Processed in 1.130492 second(s), 60 queries .

© 2020-2025 乐筑天下

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