乐筑天下

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

[编程交流] 标记变量问题

[复制链接]

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 19:39:02 | 显示全部楼层 |阅读模式
为什么这两个变量都不标?这是正确的术语吗?
一、 E.图层名称和图层颜色
 
它将标记一个或另一个,但不是两个?
 
  1. (vl-load-com)
  2. (defun C:Test (/ nwent layername layercolor)
  3. (setq nwent (entsel))
  4. (if nwent
  5.    (progn
  6.      (setq nwen(car nwent))
  7.      (setq nwelist (entget nwen))
  8.      (setq layername (cdr (assoc 8 nwelist)))
  9.      (setq obj (vlax-ename->vla-object (car nwent)))
  10.      (setq layerinfo (tblsearch "layer" layername))
  11.      (setq layercolor (cdr (assoc 62 layerinfo)))
  12.      (setq Textloc (getpoint "Pick Label Location: "))
  13.      )
  14.    (alert "Nothing Selected")
  15.        )
  16. (command "text" textloc "" "" layername layercolor)
  17.    (princ)
  18. )
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 19:47:49 | 显示全部楼层
(strcat layername layercolor)
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 19:50:50 | 显示全部楼层
你能告诉我怎么用吗?我对编写lisp相当陌生
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:56:37 | 显示全部楼层
由于您还没有VL命令,因此不需要第一行。我还去掉了一个“”,因为在我的autocad版本中,它只要求点和旋转,我不确定其余的是什么。如果需要,您可以将其添加回。
 
  1. (defun C:Test (/ nwent layername layercolor)
  2. (setq nwent (entsel))
  3. (if nwent
  4.    (progn
  5.      (setq nwen(car nwent))
  6.      (setq nwelist (entget nwen))
  7.      (setq layername (cdr (assoc 8 nwelist)))
  8.      (setq obj (vlax-ename->vla-object (car nwent)))
  9.      (setq layerinfo (tblsearch "layer" layername))
  10.      (setq layercolor (cdr (assoc 62 layerinfo)))
  11.      (setq Textloc (getpoint "Pick Label Location: "))
  12.      )
  13.    (alert "Nothing Selected")
  14.        )
  15. (command "text" textloc "" (strcat layername " " (itoa layercolor)))
  16.    (princ)
  17. )
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 19:59:47 | 显示全部楼层
如果你想让他们在不同的线路上,那么让我知道。这与代码略有不同。
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 20:07:44 | 显示全部楼层
我该如何将它们放在不同的行上?
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 20:13:15 | 显示全部楼层
另外,你能解释一下你做了什么吗?
 
 
我不明白
  1. (itoa layercolor)))
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:18:11 | 显示全部楼层
通过Autolsp使用TEXT命令很容易导致不想要的结果
 
另一个考虑因素是Vanilla AutoLISP:
 
  1. [b][color=BLACK]([/color][/b]defun c:lay-clr [b][color=FUCHSIA]([/color][/b]/ en ss ed ln lc pt[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]not en[b][color=NAVY])[/color][/b]
  3.         [b][color=NAVY]([/color][/b]and [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  4.              [b][color=MAROON]([/color][/b]= [b][color=GREEN]([/color][/b]sslength ss[b][color=GREEN])[/color][/b] 1[b][color=MAROON])[/color][/b]
  5.              [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]setq ed [b][color=NAVY]([/color][/b]entget en[b][color=NAVY])[/color][/b]
  7.        ln [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 8 ed[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  8.        lc [b][color=NAVY]([/color][/b]cdr [b][color=MAROON]([/color][/b]assoc 62 [b][color=GREEN]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] ln[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. [b][color=FUCHSIA]([/color][/b]initget 1[b][color=FUCHSIA])[/color][/b]
  10. [b][color=FUCHSIA]([/color][/b]setq pt [b][color=NAVY]([/color][/b]getpoint [color=#2f4f4f]"\nLabel Location:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  11. [b][color=FUCHSIA]([/color][/b]entmake [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]cons 0 [color=#2f4f4f]"TEXT"[/color][b][color=MAROON])[/color][/b]
  12.                 [b][color=MAROON]([/color][/b]cons 1 [b][color=GREEN]([/color][/b]strcat ln [color=#2f4f4f]" "[/color] [b][color=BLUE]([/color][/b]itoa lc[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  13.                 [b][color=MAROON]([/color][/b]cons 6 [color=#2f4f4f]"CONTINUOUS"[/color][b][color=MAROON])[/color][/b]               [color=#8b4513]; [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"CELTYPE"[/color][b][color=MAROON])[/color][/b][/color]
  14.                 [b][color=MAROON]([/color][/b]cons 7 [b][color=GREEN]([/color][/b]getvar [color=#2f4f4f]"TEXTSTYLE"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  15.                 [b][color=MAROON]([/color][/b]cons 8 [b][color=GREEN]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  16.                 [b][color=MAROON]([/color][/b]cons 10 pt[b][color=MAROON])[/color][/b]
  17.                 [b][color=MAROON]([/color][/b]cons 11 [b][color=GREEN]([/color][/b]list 0 0 0[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]              [color=#8b4513];  pt value if 72 or 73 not zero[/color]
  18.                 [b][color=MAROON]([/color][/b]cons 39 [b][color=GREEN]([/color][/b]getvar [color=#2f4f4f]"THICKNESS"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  19.                 [b][color=MAROON]([/color][/b]cons 40 [b][color=GREEN]([/color][/b]getvar [color=#2f4f4f]"TEXTSIZE"[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  20.                 [b][color=MAROON]([/color][/b]cons 41 1.0[b][color=MAROON])[/color][/b]                       [color=#8b4513]; X axis Scale[/color]
  21.                 [b][color=MAROON]([/color][/b]cons 50 0.0[b][color=MAROON])[/color][/b]                       [color=#8b4513]; Text Angle[/color]
  22.                 [b][color=MAROON]([/color][/b]cons 51 0.0[b][color=MAROON])[/color][/b]                       [color=#8b4513]; Oblique Angle[/color]
  23.                 [b][color=MAROON]([/color][/b]cons 62 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 62 [b][color=RED]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] [b][color=PURPLE]([/color][/b]getvar [color=#2f4f4f]"CLAYER"[/color][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  24.                 [b][color=MAROON]([/color][/b]cons 71 0[b][color=MAROON])[/color][/b]                         [color=#8b4513]; Text Generation[/color]
  25.                 [b][color=MAROON]([/color][/b]cons 72 0[b][color=MAROON])[/color][/b]                         [color=#8b4513]; Justification Flag[/color]
  26.                 [b][color=MAROON]([/color][/b]cons 73 0[b][color=MAROON])[/color][/b]                         [color=#8b4513]; Justification Flag[/color]
  27.                 [b][color=MAROON]([/color][/b]cons 210 [b][color=GREEN]([/color][/b]trans '[b][color=BLUE]([/color][/b]0 0 1[b][color=BLUE])[/color][/b] 0 1[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  28. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
(entmake)提供了对文本实体的完全控制/灵活性
回复

使用道具 举报

12

主题

395

帖子

384

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 20:23:53 | 显示全部楼层
 
ITOA将整数更改为字符串。大卫也是正确的,但最好是按他的方式去做。只是,如果你想要多行文字,我会使用多行文字。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 20:25:34 | 显示全部楼层
(defun FormatColorName(col/)
(条件
((或(=列0)(=列“0”))“ByBlock”)
((或(=列1)(=列“1”))“1(红色)”)
((或(=第2列)(=第2列”)“2(黄色)”)
((或(=第3列)(=第3列”)“3(绿色)”)
((或(=第4列)(=第4列”)“4(青色)”)
((或(=第5列)(=第5列”)“5(蓝色)”)
((或(=第6列)(=第6列”)“6(洋红)”)
((或(=第7列)(=第7列”)“7(黑色/白色)”
((或(=第8列)(=第8列”)“8(D.Gray)”)
((或(=第9列)(=第9列”)“9(L.Gray)”)
((或(=第256列)(=第256列”)“ByLayer”)
(t列)))
 
 
如果您使用以下内容:
(setq layerinfo(tblsearch“layer”layername))
(setq layercolor(cdr(assoc 62 layerinfo)))
 
layercolor将是一个数字。然后,您可以将数字(整数)转换为字符串(ascii),从而实现itoa。如果你想要更可读的东西,你可以使用上面的代码,然后它看起来像:
 
 
(setq layercolor(FormatColorName(cdr(assoc 62 layerinfo)))
 
 
strcat函数可以将两个或多个文本粘合在一起(strcat“hel”“lo”)->“hello”
 
 
rlx公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 13:57 , Processed in 0.779102 second(s), 72 queries .

© 2020-2025 乐筑天下

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