乐筑天下

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

[编程交流] 管道标签lisp

[复制链接]

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 19:44:04 | 显示全部楼层 |阅读模式
我正在寻找一个lisp例程,它可以将文本水平或垂直放置在一行中,并打断文本周围的行。我在2009年Acad中的那个在2015年Acad中不起作用。
 
 
谢谢
回复

使用道具 举报

16

主题

231

帖子

217

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2022-7-5 19:59:27 | 显示全部楼层
如果你有原件。lisp例程最好在这里添加它,这样人们可以评估和修改原始代码。
回复

使用道具 举报

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:04:32 | 显示全部楼层
史提夫,
这是Lisp程序。
管道标签。lsp
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

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

铜币
260
发表于 2022-7-5 20:14:00 | 显示全部楼层
在那个例行程序中有很多命令调用需要更改。command-s可以工作,但使用vla startundomark和vla EndUndoMark代替命令调用undo将是更好的代码。
未经测试的修改:
  1. (defun CREATESTYLE (/ CMDTST)
  2.    (command-s "_.-style"
  3.             "pipelabeling"
  4.             FNT
  5.             (* (getvar "dimscale") (distof HGHT))
  6.             WDTH
  7.             (while (= (getvar "cmdnames") "-STYLE") "")
  8.    ) ;_ End command
  9. ) ;_ End defun
回复

使用道具 举报

2

主题

12

帖子

10

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:25:48 | 显示全部楼层
写代码对我来说已经不重要了,但这里是它过去的工作方式。
 
 
ppl将开始例行程序
它会提示输入文本高度,我会给它一个值,然后点击回车键
它会提示输入文本字符串信息,我会键入“t”,返回
输入我的文本字符串,(3“san),例如,return
在一条线上选择一个点(水平、垂直或有角度),它会将字符串放置在该线上并修剪。
 
 
这是你能写的东西吗?
非常感谢。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:35:27 | 显示全部楼层
与任务相比,lisp是巨大的,显然它的编写目的是做更多的事情。文本的简单strlen*模糊因子和修剪就可以做到这一点。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:42:03 | 显示全部楼层
这里是一个开始,需要一点细化,以做文字风格等和文字的大小。
 
  1. ; Text at mid point of a line not will not work correctly
  2. ; with plines of multi segments
  3. ; By BIGAL June 2015
  4. (defun C:TextAtMidPoint (/ entItem lstPoint sngDistance ans)
  5. (setq oldsnap (getvar 'osmode))
  6. (setq oldang (getvar 'aunits))
  7. (setq angd (getvar 'angdir))
  8. (setq ans (getstring "Please enter text "))
  9. (setq sngDistance (* (strlen ans) 0.5))
  10. (setvar 'osmode 2)
  11. (setq pt (getpoint "pick line"))
  12. (setq ss (ssget pt))
  13. (setq obj (entget (ssname ss 0)))
  14. (setq startpt (cdr (assoc 10 obj)))
  15. (setq ang (angle pt startpt))  
  16. (vl-cmdf "circle" pt (/ sngDistance 2.0))
  17. (setq entItem (entlast))
  18. (setq lstPoint (getvar "lastpoint"))
  19. (vl-cmdf "trim" entItem "" "Nea" lstPoint "")
  20. (vl-cmdf "erase" entItem "")
  21. (setvar 'aunits 3)
  22. (setvar 'angdir 0)
  23. (vl-cmdf "text" pt ang ans)
  24. (setvar 'osmode oldsnap)
  25. (setvar 'aunits oldang)
  26. (setvar 'angdir angd)
  27. )
  28. (vl-load-com)
回复

使用道具 举报

20

主题

70

帖子

50

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 20:51:58 | 显示全部楼层
 
我不知道你在找什么类型的文本:多段线长度、图层名称等,,,
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 01:15 , Processed in 0.714805 second(s), 68 queries .

© 2020-2025 乐筑天下

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