乐筑天下

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

[编程交流] 修剪Lisp程序

[复制链接]
bao

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:11:24 | 显示全部楼层 |阅读模式
怎么了,伙计们?有人有“chop lisp”吗?我换电脑了,忘了保存程序,我的“lsp”都丢失了。它是一种可以修剪线条的东西,但你可以给它在每一边的修剪方式提供一定的值。
提前谢谢,非常感谢。
回复

使用道具 举报

1

主题

61

帖子

65

银币

初来乍到

Rank: 1

铜币
4
发表于 2022-7-6 17:30:25 | 显示全部楼层
就是这个吗?我不认为这是文本
 
  1. (defun C:CHOP (/ rad2deg txt2edit chopword entname entdata dotpairtxt dotpairht ht dotpairang rotang longtxt wordlen longtxtlen counter teststr)
  2.   (setvar "CMDECHO" 0)
  3.   (setq Rad2Deg (/ 360 pi 2))
  4.   (setq Txt2Edit (ssget))
  5.   (setq ChopWord (getstring "\nChop after what word?: "))
  6.   (setq EntName (ssname Txt2Edit 0))
  7.   (setq EntData (entget EntName))
  8.   (setq DotPairTxt (assoc (quote 1.0) EntData))
  9.   (setq DotPairHt (assoc (quote 40.0) EntData))
  10.   (setq Ht (cdr DotPairHt))
  11.   (setq DotPairAng (assoc (quote 50.0) EntData))
  12.   (setq RotAng (cdr DotPairAng))
  13.   (setq RotAng (* RotAng Rad2Deg))
  14.   (setq LongTxt (cdr DotPairTxt))
  15.   (setq WordLen (strlen ChopWord))
  16.   (setq LongTxtLen (strlen LongTxt))
  17.   (FINDWORD)
  18. )
  19. (defun FINDWORD ()
  20.   (setq Counter 1)
  21.   (setq TestStr (substr LongTxt Counter WordLen))
  22.   (while (not (equal TestStr ChopWord))
  23.      (progn
  24.         (setq Counter (+ 1 Counter))
  25.         (setq TestStr (substr LongTxt Counter WordLen))
  26.      )
  27.   )
  28.   (FINISHED)
  29. )
  30. (defun FINISHED (/ beforlen befortxt aftstart afttxt aftpt)
  31.   (setq BeforLen (+ Counter WordLen))
  32.   (setq BeforTxt (substr LongTxt 1 BeforLen))
  33.   (setq AftStart (+ 1 BeforLen))
  34.   (setq AftTxt (substr LongTxt AftStart))
  35.   (command "CHANGE" "prev" "" "" "" "" "" "" BeforTxt)
  36.   (setq AftPt (getpoint "\nStarting point of remaining text:"))
  37.   (command "TEXT" AftPt Ht RotAng AftTxt)
  38.   (setvar "CMDECHO" 1)
  39. )
  40. (prompt "\nCommand: CHOP - Break a text string\n")
回复

使用道具 举报

bao

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:40:16 | 显示全部楼层
是的,这个命令是CHOP,但不是用于文本。它适用于线条,比如你在画一个图表,你想修剪一条交叉的线条。所以,你不用“修剪”,而是用chop。你有吗?如果你觉得可以的话,可以发邮件给我吗?我的电子邮件是rlapaz@dvpe.net
谢谢
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 17:52:45 | 显示全部楼层
加长命令不管用吗?
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-6 18:01:29 | 显示全部楼层
我有一个叫bkwr的可能就是你想要的
  1. (DEFUN C:Bkwr (/ PT PT1 PT2 PT3 A1)
  2. (modes '("CMDECHO" "osmode" "orthomode"))
  3. (PROMPT "\n \nBreak @ Intersection")
  4. (INITGET 1)
  5. (SETVAR "OSMODE" 32)
  6. (COMMAND "SNAP" "OFF")
  7. (setq dsc (getvar "dimscale"))
  8. (SETQ PT1 (GETPOINT "\n\n Pick intersection to be broken: "))
  9. (SETVAR "OSMODE" 0)
  10. (INITGET 33)
  11. (SETVAR "OSMODE" 512)
  12. (SETQ PT (GETPOINT PT1 "\n Pick Line to be broken: "))
  13. (IF (= BRKW NIL)
  14.    (SETQ BRKW 0.0625)   ;set wire gap here. Gap is double the value set
  15. )
  16. (SETQ A1  (ANGLE PT1 PT)
  17. PT2 (POLAR PT1 A1 (* dsc BRKW))
  18. PT3 (POLAR PT1 (+ A1 PI) (* dsc BRKW))
  19. )
  20. (COMMAND ".BREAK" PT "F" PT2 PT3)
  21. (moder)
  22. )
回复

使用道具 举报

0

主题

55

帖子

57

银币

限制会员

铜币
-1
发表于 2022-7-6 18:22:07 | 显示全部楼层
这个怎么样?
切碎拉链
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:33 , Processed in 0.466051 second(s), 75 queries .

© 2020-2025 乐筑天下

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