乐筑天下

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

[编程交流] 从dtext到z位置

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:15:16 | 显示全部楼层 |阅读模式
问候语,
 
我正在为我的期末项目设计一条道路,我刚刚收到一张高度图。问题是,高度是dtext的,我需要用文本中写的高度创建点。我会手动添加它们,但有大约30000条文本,所以这不是一个现实的选择。
 
所以我的问题是;有没有办法在dtexts的原点自动创建点,其中点的z值来自文本内容,x和y值来自文本的几何体?
 
一些额外信息:
-文本的起源在x和y方向上相距5个单位。
-我正在使用AutoCAD 2008。
 
谢谢。
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:24:14 | 显示全部楼层
快速的答案是肯定的,这可以使用Lisp来完成。
 
缓慢的回答是,你必须引起能写这个Lisp程序的人的注意——可能会在论坛的那个部分发布一个帖子
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 15:26:24 | 显示全部楼层
Eldon是对的,至少我认为他是对的,你可能需要一个lisp来完成这件事-所以我把你的线程移到了论坛的lisp部分,希望你能在这里得到更快的帮助
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:36:37 | 显示全部楼层
谢谢你的回复。
 
如果有那么多工作我会使用我创建的宏,我不想让别人经历那么多麻烦。我花了三个小时来制作宏,每个文本需要2秒,但我只能让它运行一整晚,我只是希望有一些我不知道的秘密命令/功能来加快速度,以防将来我不得不再次这样做。
 
PS,如果有人想做,我不会反对
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:39:55 | 显示全部楼层
一个问题是,LISP应该不会太难,文本项是否只包含z值而不包含其他文本?还有,我们是只说数字文本,还是也说多行文字?
 
此外,我可以创建一个LISP,用户可以在其中手动选择文本(使用选择集)或者,如果所有高度都在同一层上,或者它们是图形中唯一的文本(或DTEXT),那么我可以设置LISP自动为您进行选择为了实现这一点,文本需要一些“定义”因素,因此可以创建一个过滤器列表i、 e.在自己的图层上,或唯一的DTEXT,或有自己的颜色等。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:42:59 | 显示全部楼层
此外,您希望这些“点”位于哪一层我假设它们只是标准ACAD点。
 
如果我是正确的,你想用文本的基点来表示x,y,用文本的内容来表示z?
 
谢谢
 
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:50:31 | 显示全部楼层
回答您的问题:
[列表]
  • 是,文本仅包含高度值,例如:“129.30”
  • 它们都是dtext,没有MTEXT。
  • 文件仅包含文本,并且它们都是相同的层/颜色。图层为“49”,颜色为“12”,这是redish颜色。
    [/列表]
    [列表]
  • 点可以在任何层上,如果需要,我会移动它们。
  • 它们只是常规AutoCAD点。
  • “要将文本的基点用于x、y,将文本的内容用于z?”
    [/列表]
    谢谢你的帮助
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 15:55:24 | 显示全部楼层
    好的,试试这个:
     
    1. (defun c:zht (/ varlist oldvars ss eLst bPt zVal nbPt ptLst)
    2. (vl-load-com)
    3. (setq varlist (list "CMDECHO" "OSMODE")
    4.    oldvars (mapcar 'getvar varlist))
    5. (mapcar 'setvar varlist (list 0 0))
    6. (if (setq ss (ssget "X" '((0 . "TEXT")(8 . "49")(62 . "12"))))
    7.    (progn
    8.      (setq eLst (vl-remove-if 'listp
    9.           (mapcar 'cadr (ssnamex ss))))
    10.      (foreach e eLst
    11.    (setq bPt (cdr (assoc 10 (entget e)))
    12.          zVal (atof (cdr (assoc 1 (entget e))))
    13.          nbPt (subst zVal (last bPt) bPt)
    14.          ptLst (cons nbPt ptLst)))
    15.      (foreach pt ptLst
    16.    (command "_point" pt)))
    17.    (princ "\n<!> No Text Found <!>"))
    18. (mapcar 'setvar varlist oldvars)
    19. (princ))
    回复

    使用道具 举报

    2

    主题

    8

    帖子

    6

    银币

    初来乍到

    Rank: 1

    铜币
    10
    发表于 2022-7-6 15:59:19 | 显示全部楼层
    甜心,很有魅力
     
    以下是我在谷歌上搜索的一些程序中加载的点:
     
    161518keb7p7cs7s76ss7w.jpg
     
    非常感谢!!
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 16:09:01 | 显示全部楼层
    没问题,VeryName,很高兴它对你有用
     
    如果你还有任何问题,请告诉我
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-4 19:27 , Processed in 0.580023 second(s), 74 queries .

    © 2020-2025 乐筑天下

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