乐筑天下

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

[编程交流] 领导者mtext。。Lisp程序打断

[复制链接]

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 14:21:14 | 显示全部楼层 |阅读模式
该代码在ACAD2008中工作,但在ADT2008中,当我创建leader并尝试编写文本时,该代码停止。
 
拜托,有什么想法吗??
 
 
  1. (defun LDR:SetLayer (skala)
  2. (setq lagerDel1 "A-------D3-------")
  3. (cond
  4.    ((= skala "1") (setq lagernamn (strcat lagerDel1 "A")))
  5.    ((= skala "2") (setq lagernamn (strcat lagerDel1 "J")))
  6.    ((= skala "5") (setq lagernamn (strcat lagerDel1 "B")))
  7.    ((= skala "10") (setq lagernamn (strcat lagerDel1 "C")))
  8.    ((= skala "20") (setq lagernamn (strcat lagerDel1 "D")))
  9.    ((= skala "50") (setq lagernamn (strcat lagerDel1 "E")))
  10.    ((= skala "100") (setq lagernamn (strcat lagerDel1 "F")))
  11.    ((= skala "200") (setq lagernamn (strcat lagerDel1 "G")))
  12.    ((= skala "400") (setq lagernamn (strcat lagerDel1 "K")))
  13.    ((= skala "500") (setq lagernamn (strcat lagerDel1 "H")))
  14. )
  15. (if (tblsearch "layer" lagernamn)
  16.    (command "_layer" "s" lagernamn "")
  17.    (command "_layer" "m" lagernamn "c" 1 "" "")
  18. )
  19. )
  20. (defun LDR:SkapaLDRstilPILText ()
  21. (setq dimtyp   "PilText-")
  22. (setq DimNamnPiltext (strcat "AIX_" dimtyp skala))
  23. (IF (tblsearch "dimstyle" DimNamnPiltext)
  24.    (command "dimstyle" "r" DimNamnPiltext)
  25.    (progn
  26.      (setvar "dimtxt" 3)
  27. (setvar "DIMCLRD" 1)
  28.      (setvar "textsize" (* 3.0 (atoi skala)))
  29.      (setvar "dimasz" 3.25)
  30.      (setvar "dimtxsty" "AIX_ISO")
  31.      (setvar "dimgap" 1.5)
  32.    (setvar "dimldrblk" "_Open90")
  33.      (setvar "dimscale" (atoi skala))
  34.      (command "_dimstyle" "s" DimNamnPiltext)
  35. (setvar "DIMCLRT" 1)
  36. (setvar "DIMCLRD" 1)
  37.    )
  38. )
  39. )
  40. (defun c:AIX:LDRPil_Text (/ skala p1 p2 p3 oldlay)
  41. (setq oldlay (getvar "clayer"))
  42. (Load "K:\\CAD\\AIX-meny-2008\\Lisp\\alla\\AIX_PopupSkala.lsp")
  43. (PopupSkala)
  44. (LDR:SetLager skala)
  45. (LDR:SetLager skala)
  46. (IF (NOT (TBLSEARCH "Style" "AIX_ISO"))
  47.    (AIX:ISO)
  48. )
  49. (LDR:SkapaLDRstilPilText)
  50. (setq p1 (getpoint "\nStart Point: ")
  51. p2 (getpoint p1 "\nSecond point: ")
  52. )
  53. (grdraw p1 p2 1 1)
  54. (setq p3 (getpoint p2 "\nTextplacement: "))
  55. (command "_leader" p1 p2 p3 "" "" "" "")
  56. (setvar "clayer" oldlay)
  57. (redraw)
  58. )
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 14:36:58 | 显示全部楼层
简单得多
 
  1. (defun c:ldr (/  p1 p2 p3 oldlay)
  2. (setq oldlay (getvar "clayer"))
  3. (setq        p1 (getpoint "\nStart Point: ")
  4. p2 (getpoint p1 "\nSecond point: ")
  5. )
  6. (grdraw p1 p2 1 1)
  7. (setq p3 (getpoint p2 "\nText Placement: "))
  8. (command "_leader" p1 p2 p3 "" "" "" "")
  9. (setvar "clayer" oldlay)
  10. (redraw)
  11. )

 
ADT中断??为什么?
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 14:40:25 | 显示全部楼层
ADT中的引线提示是否与ACAD08中的相同?
 
有时,在Lisp中使用命令函数时,OSNAP可能会出现问题
 
 
 
  1. (defun c:ldr (/  p1 p2 p3 oldlay os)
  2. (setq oldlay (getvar "clayer")
  3.        os (getvar "osmode"))
  4. (setq        p1 (getpoint "\nStart Point: ")
  5. p2 (getpoint p1 "\nSecond point: ")
  6. )
  7. (grdraw p1 p2 1 1)
  8. (setq p3 (getpoint p2 "\nText Placement: "))
  9. (setvar "osmode" 0)
  10. (command "_leader" p1 p2 p3 "" "" "" "")
  11. (setvar "clayer" oldlay)
  12. (setvar "osmode" os)
  13. (redraw)
  14. )
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 14:47:01 | 显示全部楼层
你也许是对的。
 
如果他们不同,那就糟糕了。我需要让lisp在两个程序上工作,ACAD2008和ADT2008。
 
对于Thanx的建议,它并没有解决问题。。。
我正在
 
起点:
第二点:
文本位置:无
 
所以它在文本放置后中断
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:57:27 | 显示全部楼层
你能不能成为领导者?
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 15:08:07 | 显示全部楼层
  1. (entmake
  2. (list
  3. (cons 0 "LEADER")
  4. )
  5. )
  6. (defun c:ldr (/  p1 p2 p3 oldlay os)
  7. (setq oldlay (getvar "clayer")
  8.        os (getvar "osmode"))
  9. (setq leader (entlast)
  10.      elist (entget leader))
  11. (setq    p1 (getpoint "\nStart Point: ")
  12.    p2 (getpoint p1 "\nSecond point: ")
  13. )
  14. (grdraw p1 p2 1 1)
  15. (setq p3 (getpoint p2 "\nText Placement: "))
  16. (setvar "osmode" 0)
  17. (command "_leader" leader p1 p2 p3 "" "" "" "")
  18. (setvar "clayer" oldlay)
  19. (setvar "osmode" os)
  20. (redraw)
  21. )

 
这是一个好看整洁的代码吗?至少目前有效。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:17:08 | 显示全部楼层
我认为有更好的方法检查此>
http://www.theswamp.org/index.php?topic=29245.0
 
[或者直接使用它]
回复

使用道具 举报

31

主题

107

帖子

76

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
155
发表于 2022-7-6 15:23:06 | 显示全部楼层
 
是 啊
我试过了,但没用。
Lisp可以工作,但它就像一个领导者和多行文字分开。
它只选择文本在一侧。如果我抓取文本并移动它,“leader”不会像真正的acad leader那样跟随。
 
上述中断也。。。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 03:13 , Processed in 0.480169 second(s), 68 queries .

© 2020-2025 乐筑天下

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