乐筑天下

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

[编程交流] 更改文本时需要帮助

[复制链接]

32

主题

131

帖子

99

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 15:53:03 | 显示全部楼层 |阅读模式
嗨,朋友们,
所附lisp由Bigal提供,其工作原理,
现在我想把text1和text2旋转到可读角度。
请检查所附的lisp并帮助我更改它。
 
提前谢谢。
bigal-复制。lsp
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:11:03 | 显示全部楼层
Google for a subfunction LM:可读。
回复

使用道具 举报

32

主题

131

帖子

99

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:21:20 | 显示全部楼层
 
您好,Grr,
我在谷歌上搜索了LM:Readable,但我无法理解,你能告诉我,在所附的lisp中,在哪里替换行以使其旋转到可读的角度,请在急需时帮助我
 
 
谢谢
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:31:27 | 显示全部楼层
如果你看一下你发布的代码,有一行有(vla put rotation Tp ang),你需要得到Lee的LM:readable函数,将其添加到lisp并更改为(vla put rotation Tp(LM:readable ang))。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:49:57 | 显示全部楼层
我修改了一点BIGAL的代码,并对其进行了评论:
 
  1. [color=#8b4513]; pick 3 texts and align to a block                                 ;; Write what the code does, so you won't have to figure out what was this[/color]
  2. [b][color=BLACK]([/color][/b]vl-load-com[b][color=BLACK])[/color][/b] [b][color=BLACK]([/color][/b]princ[b][color=BLACK])[/color][/b]                                               [color=#8b4513];; Load all visual lisp extensions[/color]
  3. [b][color=BLACK]([/color][/b]defun c:trt                                                        [color=#8b4513];; Define a command function, call with [color=#2f4f4f]"TRT"[/color] [b][color=FUCHSIA]([/color][/b]this is the main command[b][color=FUCHSIA])[/color][/b][/color]
  4. [b][color=FUCHSIA]([/color][/b] / blockent blockobj oldang oldunit oldsnap ang ins xscale bname [color=#8b4513];; Localise all the used code variables[/color]
  5.    len off textent1 textobj1 pt1 textent2 textobj2 pt1
  6. [b][color=FUCHSIA])[/color][/b]
  7. [color=#8b4513]; Example by BIGAL                                                ;; Write in the author in case you have further questions[/color]
  8. [b][color=FUCHSIA]([/color][/b]and                                                              [color=#8b4513];; wrap all evaluations with [b][color=NAVY]([/color][/b]and[b][color=NAVY])[/color][/b] function - this means if somewhere nil is returned, the program will stop[/color]
  9.    [b][color=NAVY]([/color][/b]setq blockent [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nPick Block object"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]            [color=#8b4513];; Prompt to select block entity[/color]
  10.    [b][color=NAVY]([/color][/b]setq blockobj [b][color=MAROON]([/color][/b]vlax-ename->vla-object blockent[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]               [color=#8b4513];; convert the block entity to vla-object[/color]
  11.    [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]= Objname [color=#2f4f4f]"AcDbBlockReference"[/color][b][color=MAROON])[/color][/b]                            [color=#8b4513];; check if block was selected[/color]
  12.      T                                                             [color=#8b4513];; return True if block was selected [/color]
  13.      [b][color=MAROON]([/color][/b]alert [color=#2f4f4f]"You have not Picked a block\n\nPress ok "[/color][b][color=MAROON])[/color][/b]            [color=#8b4513];; prompt alert message [b][color=MAROON]([/color][/b]alert returns nil[b][color=MAROON])[/color][/b][/color]
  14.    [b][color=NAVY])[/color][/b][color=#8b4513]; if[/color]
  15.    [b][color=NAVY]([/color][/b]mapcar 'set '[b][color=MAROON]([/color][/b]oldang oldunit oldsnap[b][color=MAROON])[/color][/b] [color=#8b4513]; store some system variables [sKIP THIS for now][/color]
  16.      [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]a b / c[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setq c [b][color=RED]([/color][/b]getvar a[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]setvar a b[b][color=BLUE])[/color][/b] c[b][color=GREEN])[/color][/b]
  17.        '[b][color=GREEN]([/color][/b]angdir aunits osmode[b][color=GREEN])[/color][/b] '[b][color=GREEN]([/color][/b]0 3 0[b][color=GREEN])[/color][/b]
  18.      [b][color=MAROON])[/color][/b]
  19.    [b][color=NAVY])[/color][/b][color=#8b4513]; mapcar[/color]
  20.    [b][color=NAVY]([/color][/b]mapcar 'set '[b][color=MAROON]([/color][/b]ang ins xscale bname[b][color=MAROON])[/color][/b] [color=#8b4513]; store some properties from the block's object [sKIP THIS for now][/color]
  21.      [b][color=MAROON]([/color][/b]mapcar '[b][color=GREEN]([/color][/b]lambda [b][color=BLUE]([/color][/b]x[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]vlax-get blockobj x[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  22.        '[b][color=GREEN]([/color][/b]Rotation InsertionPoint XScaleFactor EffectiveName[b][color=GREEN])[/color][/b]
  23.      [b][color=MAROON])[/color][/b]
  24.    [b][color=NAVY])[/color][/b][color=#8b4513]; mapcar[/color]
  25.    
  26.    [b][color=NAVY]([/color][/b]cond                                                           [color=#8b4513];; set a codition to determine what value to assign for 'len', depending on the block name[/color]
  27.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= bname [color=#2f4f4f]"TERM_AER_E"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq len 6[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [color=#8b4513]; as per sample [/color]
  28.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= bname [color=#2f4f4f]"Block1"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq len 10[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [color=#8b4513]; other blocks change len value[/color]
  29.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]= bname [color=#2f4f4f]"Block2"[/color][b][color=GREEN])[/color][/b] [b][color=GREEN]([/color][/b]setq len 10[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [color=#8b4513]; other blocks change len value[/color]
  30.      [b][color=MAROON]([/color][/b] [b][color=GREEN]([/color][/b]setq len 20[b][color=GREEN])[/color][/b] [b][color=MAROON])[/color][/b] [color=#8b4513]; for unknown block change len value[/color]
  31.    [b][color=NAVY])[/color][/b][color=#8b4513]; cond[/color]
  32.    [b][color=NAVY]([/color][/b]setq off 8.0[b][color=NAVY])[/color][/b]                                                  [color=#8b4513];; set offset value[/color]
  33.    
  34.    [b][color=NAVY]([/color][/b]setq textent1 [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nPick text1"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                   [color=#8b4513];; Prompt to select a text entity[/color]
  35.    [b][color=NAVY]([/color][/b]setq textobj1 [b][color=MAROON]([/color][/b]vlax-ename->vla-object textent1[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]               [color=#8b4513];; convert the text entity into a vla-object[/color]
  36.    [b][color=NAVY]([/color][/b]setq pt1 [b][color=MAROON]([/color][/b]polar ins [b][color=GREEN]([/color][/b]+ ang [b][color=BLUE]([/color][/b]/ pi 2.0[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] off[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                   [color=#8b4513];; calculate the new base point for the text[/color]
  37.    [b][color=NAVY]([/color][/b]vla-put textobj1 'insertionpoint pt1[b][color=NAVY])[/color][/b]                          [color=#8b4513];; set the new base point for the text[/color]
  38.    [b][color=NAVY]([/color][/b]vla-put-rotation textobj1 [b][color=MAROON]([/color][/b]MakeReadable ang[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                  [color=#8b4513];; set the text rotation, by recalculating the angle with [b][color=NAVY]([/color][/b]MakeReadable[b][color=NAVY])[/color][/b] subfunction[/color]
  39.    [b][color=NAVY]([/color][/b]setq textent2 [b][color=MAROON]([/color][/b]car [b][color=GREEN]([/color][/b]entsel [color=#2f4f4f]"\nPick text2"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                   [color=#8b4513];; Prompt to select a text entity[/color]
  40.    [b][color=NAVY]([/color][/b]setq textobj2 [b][color=MAROON]([/color][/b]vlax-ename->vla-object textent2 [b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]              [color=#8b4513];; convert the text entity into a vla-object[/color]
  41.    [b][color=NAVY]([/color][/b]setq pt1 [b][color=MAROON]([/color][/b]polar ins ang [b][color=GREEN]([/color][/b]* len 2.0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                          [color=#8b4513];; calculate the new base point for the text[/color]
  42.    [b][color=NAVY]([/color][/b]vlax-put textobj2 'insertionpoint pt1[b][color=NAVY])[/color][/b]                         [color=#8b4513];; set the new base point for the text[/color]
  43.    [b][color=NAVY]([/color][/b]vla-put-rotation textobj2 [b][color=MAROON]([/color][/b]MakeReadable ang[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]                  [color=#8b4513];; set the text rotation, by recalculating the angle with [b][color=NAVY]([/color][/b]MakeReadable[b][color=NAVY])[/color][/b] subfunction[/color]
  44. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; and[/color]
  45. [b][color=FUCHSIA]([/color][/b]mapcar '[b][color=NAVY]([/color][/b]lambda [b][color=MAROON]([/color][/b]a b[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]and a b [b][color=GREEN]([/color][/b]setvar a b[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513]; Restore the system variables [sKIP THIS for now][/color]
  46.    '[b][color=NAVY]([/color][/b]angdir aunits osmode[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]list oldang oldunit oldsnap[b][color=NAVY])[/color][/b]
  47. [b][color=FUCHSIA])[/color][/b][color=#8b4513]; mapcar [/color]
  48. [b][color=FUCHSIA]([/color][/b]princ[b][color=FUCHSIA])[/color][/b]                                                           [color=#8b4513];; Exit Cleanly[/color]
  49. [b][color=BLACK])[/color][/b][color=#8b4513]; defun [/color]
  50. [color=#8b4513];; Define subfunctions that the main program uses:[/color]
  51. [color=#8b4513];; Make Angle Readable by: ymg  [/color]
  52. [b][color=BLACK]([/color][/b]defun MakeReadable [b][color=FUCHSIA]([/color][/b]a[b][color=FUCHSIA])[/color][/b]
  53. [b][color=FUCHSIA]([/color][/b]setq a [b][color=NAVY]([/color][/b]rem [b][color=MAROON]([/color][/b]+ a pi pi[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]+ pi pi[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  54. [b][color=FUCHSIA]([/color][/b]rem [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]< [b][color=GREEN]([/color][/b]* pi 0.5[b][color=GREEN])[/color][/b] a [b][color=GREEN]([/color][/b]* pi 1.5[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  55.    [b][color=MAROON]([/color][/b]+ a pi[b][color=MAROON])[/color][/b]
  56.    a
  57. [b][color=NAVY])[/color][/b]
  58. [b][color=NAVY]([/color][/b]+ pi pi[b][color=NAVY])[/color][/b]
  59. [b][color=FUCHSIA])[/color][/b]
  60. [b][color=BLACK])[/color][/b]

 
从中尽可能多地学习,如果有任何问题,请提问。
希望下次你能发布你的尝试。
回复

使用道具 举报

32

主题

131

帖子

99

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
160
发表于 2022-7-5 16:53:47 | 显示全部楼层
 
您好,GRR,
非常感谢您的帮助,您的解释对我非常有帮助,我尝试使用您提供的lisp,但由于某些原因,左对齐不能与该lisp正常工作,右对齐工作完美,因此我创建了两个独立的lisp,用于左对齐和右对齐,如附件中的lisp文件所示,请检查该文件并提供您的反馈。
另外,请建议,是否可以在一个lisp中完成?
grr。lsp
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 20:59 , Processed in 0.547530 second(s), 64 queries .

© 2020-2025 乐筑天下

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