乐筑天下

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

[编程交流] 获取文本内容????

[复制链接]

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 16:35:48 | 显示全部楼层 |阅读模式
如何获取文本内容并将其作为我将要筛选的对象的高程?
 
  1. (defun c:q1 (/ txt1 q1 ss)
  2. (setq ss (ssget "_C" '((0 . "*TEXT"))))
  3.    (cdr (assoc 1 (entget (ssname ss (setq txt1 0)))))
  4. (prompt "\nSELECT OBJECTS")
  5. (setq sss (ssget "_:L"))
  6. (command"_.CHANGE" sss "" "_P" "_E" txt1)
  7. )
回复

使用道具 举报

17

主题

1274

帖子

25

银币

后起之秀

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

铜币
260
发表于 2022-7-5 16:45:08 | 显示全部楼层
使用获取文本或多行文字内容
  1. (setq txt(vla-get-TextString(vlax-ename->vla-object (car (entsel)))))

不知道你想用它做什么。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:53:52 | 显示全部楼层
一些猜测:
  1. (defun c:q1 ( / LeaveNumbersAndDots txt enx n SS )
  2. (defun LeaveNumbersAndDots (str)
  3.    (if (and (eq 'STR (type str)) (setq str (vl-remove-if-not '(lambda (c) (<= 46 c 57)) (vl-string->list str))) )
  4.      (vl-list->string str)
  5.    )
  6. ); defun LeaveNumbersAndDots
  7. (cond
  8.    ( (not (setq txt (car (entsel "\nPick text with numerical content: "))))
  9.      (alert "\nNothing selected.")
  10.    )
  11.    ( (not (wcmatch (cdr (assoc 0 (setq enx (entget txt)))) "*TEXT"))
  12.      (alert "\nThis is not a text.")
  13.    )
  14.    ( (not (numberp (setq n (read (setq txt (cdr (assoc 1 enx)))))))
  15.      (alert
  16.        (strcat "\nThis text has no full numerical content:
  17.          \nCurrently it is: "" txt ""
  18.          \nIt must be in the following format: "" (cond ((LeaveNumbersAndDots txt)) ("123.4")) ""."
  19.        )
  20.      )
  21.    )   
  22.    ( (not (and (princ "\nSelect objects to change their elevation: ") (setq SS (ssget "_:L"))))
  23.      (alert "\nNothing selected.")
  24.    )
  25.    (
  26.      (mapcar
  27.        '(lambda (enx)
  28.          (cond
  29.            ( (assoc 38 enx) (entmod (append enx (list (cons 38 n)))) )
  30.            ( (entmod (mapcar '(lambda (x) (if (member (car x) '(10 11)) (reverse (cons n (cdr (reverse x)))) x) ) enx)) )
  31.          )
  32.        )
  33.        (mapcar 'entget (apply 'append (mapcar '(lambda (x) (if (= 3 (car x)) (list (cadr x)))) (ssnamex SS))))
  34.      )
  35.    )
  36. ); cond
  37. (princ)
  38. ); defun
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:00:24 | 显示全部楼层
 
你好
 
您的警告语句并不完全正确,因为numberp函数将为此类字符串返回nil。例如:“abc123”
  1. (defun HasNoNumber-p (str)
  2. (not (vl-some '(lambda (no) (< 47 no 57)) (vl-string->list str)))
  3. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:10:12 | 显示全部楼层
嗨,塔瓦,
是的:我的目的是只检查文本内容中的数字字符(我认为这是必需的格式)。
是的,我的警告信息并不完全正确(由于缺乏英语)。
 
无论如何,就像你说的,文本内容可以重新格式化:
  1. ; _$ (LeaveNumbers "Leave 251, 900 and 841 numbers please.") -> "251900841"
  2. (defun LeaveNumbers (str)
  3. (apply 'strcat (mapcar 'chr (vl-remove-if-not '(lambda (c) (< 47 c 58)) (vl-string->list str))))
  4. )

 
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:15:14 | 显示全部楼层
我猜这条线索和这条有某种联系
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:21:28 | 显示全部楼层
 
两者都是正确的,但篇幅较短且直接。
  1. (defun LeaveNumbers (str)
  2. (vl-list->string (vl-remove-if-not '(lambda (c) (< 47 c 58)) (vl-string->list str)))
  3. )
回复

使用道具 举报

66

主题

180

帖子

119

银币

后起之秀

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

铜币
341
发表于 2022-7-5 17:30:54 | 显示全部楼层
 
 
非常感谢。
我试过了,只更改了多段线高程,但没有更改线(起点z终点z)、引线(顶点z)、文字(位置z)。如何将其添加到您的lisp中?我不想破坏你的密码
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:42:53 | 显示全部楼层
 
我已经修改了第#3篇文章中的代码,应该可以更好地工作——但我不能保证它是完美的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:11 , Processed in 0.497386 second(s), 70 queries .

© 2020-2025 乐筑天下

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