乐筑天下

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

[编程交流] 将文字更改为另一层?

[复制链接]

10

主题

40

帖子

30

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
50
发表于 2022-7-5 15:24:16 | 显示全部楼层 |阅读模式
大家好,
我希望有一个简单的lisp,将允许我选择所有文本2.5高,并将其移动到另一层。
 
 
有人见过吗?非常感谢。
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:31:37 | 显示全部楼层
非常非常昂贵,但这是我目前能做的
请大家不要嘲笑我
 
 
 
 
;; 将高度更改为5的基本功能
 
(setq a(ssget“x”((0.TEXT,MTEXT,RTEXT))(40.2.5)))
(setq aa(如果a
(重复(setq i(sslength a))
(setq l(cons(ssname a(setq i(1-i)))l))
)
))
(外汇x l
(setq aaa(vlax ename->vla对象x))
(如果aaa(vla放置高度aaa 5))
)
回复

使用道具 举报

5

主题

1074

帖子

1088

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 15:37:28 | 显示全部楼层
您可以使用FILTER命令或快速选择来实现这一点,快速选择可能更为用户友好,基本上也可以实现同样的功能。
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:40:27 | 显示全部楼层
编辑
 
只是一个拼写错误
代码运行良好
 
 
 
(setq a(ssget“x”((0.TEXT,MTEXT,RTEXT))(40.2.5)))
(setq aa(如果a
(重复(setq i(sslength a))
(setq l(cons(ssname a(setq i(1-i)))l))
)
))
(foreach x l
(程序
(打印x)
(setq aaa(vlax ename->vla对象x))
(如果aaa(vla放置高度aaa 5));;您选择的高度
(如果aaa(vla put layer aaa 0));;您选择的图层
)
)
 
 
 
 
 
 
英雄联盟
刚刚在多个文本对象上测试了我的代码
似乎不起作用
他妈的会带来一个不起作用的代码
你真丢脸
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:46:58 | 显示全部楼层
DGRL,阅读代码发布指南
 
你很接近,对你的代码发表了一些评论:
  1. [b][color=BLACK]([/color][/b]setq a [b][color=FUCHSIA]([/color][/b]ssget [color=#2f4f4f]"x"[/color] '[b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b]0 . [color=#2f4f4f]"TEXT,MTEXT,RTEXT"[/color][b][color=MAROON])[/color][/b][b][color=MAROON]([/color][/b]40 . 2.5[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] [color=#8b4513]; name your variables properly, so you understand your code properly [b][color=BLACK]([/color][/b]suggested names: 's' 'SS' 'SelSet' 'Selection'[b][color=BLACK])[/color][/b] ; also you could've used [b][color=BLACK]([/color][/b]0 . [color=#2f4f4f]"*TEXT"[/color][b][color=BLACK])[/color][/b][/color]
  2. [b][color=BLACK]([/color][/b]setq aa [color=#8b4513]; <- theres no need to assign variable, you even don't use it, also it would return the last evaluation of the [b][color=FUCHSIA]([/color][/b]repeat[b][color=FUCHSIA])[/color][/b] function[/color]
  3. [b][color=FUCHSIA]([/color][/b]if a
  4.    [b][color=NAVY]([/color][/b]repeat [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]sslength a[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513]; here you iterate through the selection set[/color]
  5.      [b][color=MAROON]([/color][/b]setq l [b][color=GREEN]([/color][/b]cons [b][color=BLUE]([/color][/b]ssname a [b][color=RED]([/color][/b]setq i [b][color=PURPLE]([/color][/b]1- i[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] l[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513]; here you construct a list of enames[/color]
  6.    [b][color=NAVY])[/color][/b]
  7. [b][color=FUCHSIA])[/color][/b]
  8. [b][color=BLACK])[/color][/b]
  9. [b][color=BLACK]([/color][/b]foreach x l [color=#8b4513]; here you iterate through the constructed list, but this is redundant, because you could manipulate the objects in the SS's iteration[/color]
  10. [b][color=FUCHSIA]([/color][/b]progn [color=#8b4513]; you could put this stuff within the [b][color=NAVY]([/color][/b]repeat[b][color=NAVY])[/color][/b] function, where 'x' would be [b][color=NAVY]([/color][/b]ssname a [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1- i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][/color]
  11.    [b][color=NAVY]([/color][/b]print x[b][color=NAVY])[/color][/b]
  12.    [b][color=NAVY]([/color][/b]setq aaa [b][color=MAROON]([/color][/b]vlax-ename->vla-object x[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513]; suggested variable names 'o' 'obj' 'object'[/color]
  13.    [b][color=NAVY]([/color][/b]if aaa [b][color=MAROON]([/color][/b]vla-put-height aaa 5 [b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [color=#8b4513];; HEIGHT OF YOUR CHOICE ; no need to check [b][color=NAVY]([/color][/b]if aaa..[/color]
  14.    [b][color=MAROON]([/color][/b]if aaa [b][color=GREEN]([/color][/b]vla-put-layer aaa 0 [b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513];; LAYER OF YOUR CHOICE ; no need to check [b][color=MAROON]([/color][/b]if aaa..[/color]
  15. [b][color=MAROON])[/color][/b]
  16. [b][color=NAVY])[/color][/b]

 
总的来说,它不能处理冻结/锁定的层(但我建议您稍后了解这个问题)。
 
 
以下是我的建议(有意使用另一种SS迭代):
  1. [b][color=NAVY]([/color][/b]defun C:test [b][color=MAROON]([/color][/b] / L SS [b][color=MAROON])[/color][/b]
  2. [b][color=MAROON]([/color][/b]setq L '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]Height 5[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]Layer [color=#2f4f4f]"0"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [color=#8b4513]; <- Adjust your desired changes here[/color]
  3. [b][color=MAROON]([/color][/b]if
  4.    [b][color=GREEN]([/color][/b]setq SS
  5.      [b][color=BLUE]([/color][/b]ssget [color=#2f4f4f]"_X"[/color]
  6.        [b][color=RED]([/color][/b]list
  7.          '[b][color=PURPLE]([/color][/b]0 . [color=#2f4f4f]"*TEXT"[/color][b][color=PURPLE])[/color][/b]
  8.          '[b][color=PURPLE]([/color][/b]40 . 2.5[b][color=PURPLE])[/color][/b]
  9.          [b][color=PURPLE]([/color][/b]
  10.            [b][color=TEAL]([/color][/b]lambda [b][color=OLIVE]([/color][/b] / s d m [b][color=OLIVE])[/color][/b]
  11.              [b][color=OLIVE]([/color][/b]setq s [color=#2f4f4f]""[/color][b][color=OLIVE])[/color][/b]
  12.              [b][color=OLIVE]([/color][/b]while [b][color=GRAY]([/color][/b]setq d [b][color=AQUA]([/color][/b]tblnext [color=#2f4f4f]"LAYER"[/color] [b][color=LIME]([/color][/b]not d[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b]
  13.                [b][color=GRAY]([/color][/b]setq m [b][color=AQUA]([/color][/b]cdr [b][color=LIME]([/color][/b]assoc 70 d[b][color=LIME])[/color][/b][b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b]
  14.                [b][color=GRAY]([/color][/b]cond
  15.                  [b][color=AQUA]([/color][/b] [b][color=LIME]([/color][/b]vl-some '[b][color=SILVER]([/color][/b]lambda [b][color=YELLOW]([/color][/b]x[b][color=YELLOW])[/color][/b] [b][color=YELLOW]([/color][/b]= x [b][color=WHITE]([/color][/b]logand x m[b][color=WHITE])[/color][/b][b][color=YELLOW])[/color][/b][b][color=SILVER])[/color][/b] '[b][color=SILVER]([/color][/b]1 4[b][color=SILVER])[/color][/b][b][color=LIME])[/color][/b] [b][color=AQUA])[/color][/b]
  16.                  [b][color=AQUA]([/color][/b] [b][color=LIME]([/color][/b]setq s [b][color=SILVER]([/color][/b]strcat s [color=#2f4f4f]","[/color] [b][color=YELLOW]([/color][/b]cdr [b][color=WHITE]([/color][/b]assoc 2 d[b][color=WHITE])[/color][/b][b][color=YELLOW])[/color][/b] [b][color=SILVER])[/color][/b][b][color=LIME])[/color][/b] [b][color=AQUA])[/color][/b]
  17.                [b][color=GRAY])[/color][/b][color=#8b4513]; cond [/color]
  18.              [b][color=OLIVE])[/color][/b][color=#8b4513]; while [/color]
  19.              [b][color=OLIVE]([/color][/b]cons 8 [b][color=GRAY]([/color][/b]cond [b][color=AQUA]([/color][/b] [b][color=LIME]([/color][/b]= [color=#2f4f4f]""[/color] s[b][color=LIME])[/color][/b] [color=#2f4f4f]"*"[/color][b][color=AQUA])[/color][/b] [b][color=AQUA]([/color][/b] [b][color=LIME]([/color][/b]substr s 2[b][color=LIME])[/color][/b] [b][color=AQUA])[/color][/b][b][color=GRAY])[/color][/b][b][color=OLIVE])[/color][/b]
  20.            [b][color=TEAL])[/color][/b][color=#8b4513]; lambda[/color]
  21.          [b][color=PURPLE])[/color][/b]
  22.        [b][color=RED])[/color][/b][color=#8b4513]; list [/color]
  23.      [b][color=BLUE])[/color][/b][color=#8b4513]; ssget[/color]
  24.    [b][color=GREEN])[/color][/b][color=#8b4513]; setq SS[/color]
  25.    [b][color=GREEN]([/color][/b]foreach o [b][color=BLUE]([/color][/b]vl-remove-if-not 'vlax-write-enabled-p [b][color=RED]([/color][/b]mapcar 'vlax-ename->vla-object [b][color=PURPLE]([/color][/b]mapcar 'cadr [b][color=TEAL]([/color][/b]ssnamex SS[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#8b4513]; [b][color=BLUE]([/color][/b]vl-remove 'listp ..[b][color=BLUE])[/color][/b] not required[/color]
  26.      [b][color=BLUE]([/color][/b]foreach x L
  27.        [b][color=RED]([/color][/b]apply 'vlax-put [b][color=PURPLE]([/color][/b]cons o x[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  28.      [b][color=BLUE])[/color][/b][color=#8b4513]; foreach x[/color]
  29.    [b][color=GREEN])[/color][/b][color=#8b4513]; foreach o[/color]
  30. [b][color=MAROON])[/color][/b][color=#8b4513]; if[/color]
  31. [b][color=MAROON]([/color][/b]princ[b][color=MAROON])[/color][/b]
  32. [b][color=NAVY])[/color][/b][color=#8b4513]; defun[/color]
  33. [b][color=NAVY]([/color][/b]vl-load-com[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]princ[b][color=NAVY])[/color][/b]

 
暂时忽略lambda块,不要被信息淹没。
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:49:19 | 显示全部楼层
@Grrrrrr
 
 
谢谢你的信息/课程
谢谢你
 
 
他总是要求一个“简单”的程序,如此简单,他得到哈哈大笑
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 15:55:56 | 显示全部楼层
 
别担心,
一般来说,一切都必须“简单”,但随着每一个问题的出现,代码都在增长——这就是为什么需要一个好的结构。
 
引用Marko Ribar帖子中的一段话(建议我永远记住):
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 15:58:14 | 显示全部楼层
@Grrrr公司
 
作为“程序员”,我们不需要可识别的变量,对吗?
如果你能读代码,那么变量就不再重要了。
虽然“读”和“写”代码有区别。
但我们在这里“帮助”/“教导”其他论坛成员,所以我需要使我上传到这里的代码“阅读”友好
回复

使用道具 举报

18

主题

111

帖子

93

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
90
发表于 2022-7-5 16:03:52 | 显示全部楼层
@Grrrr公司
 
 
我打了这个,没有看到你的回复
是的,当代码增长时,结构变得越来越重要
所以你选择的变量
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:09:17 | 显示全部楼层
 
“可识别”有所不同(取决于程序员),
对于相对较短的代码,只要您能够跟踪保存变量的值类型,这并不重要。
但“短”也各不相同。。对于一些人来说,它有10行代码,对于其他人来说,有50100行。。等等
 
我指出,因为您似乎对LISP比较陌生,所以跟踪作为参数传递给函数的变量很重要(通常这是一种很好的做法)。
这就像在你的脑海中有一个变量名库,与库的子功能一样。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 03:14 , Processed in 0.691736 second(s), 83 queries .

© 2020-2025 乐筑天下

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