乐筑天下

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

[编程交流] 匹配点t的Z高程

[复制链接]

14

主题

47

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 09:56:12 | 显示全部楼层 |阅读模式
所有人,
 
我有一个测量图,其中有很多没有高程的点,我有一个来自另一个源的dwg,其中有Z高程到点,问题是这些点不完全在同一位置。我只是在属性管理器中检查属性并分别编辑每个点的z。
 
是否有任何lisp将匹配从源到目标的Z高程,红色是带Z的点,绿色是不带Z的点
. 105617ehhs5foylwzww7fs.jpeg
 
提前感谢
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:03:07 | 显示全部楼层
我将从以下内容开始:
 
  1. [b][color=BLACK]([/color][/b]defun C:Red2GrnZ [b][color=FUCHSIA]([/color][/b]/ tol ri rs rn rd rp md gs ce gi gn gd gp[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]defun p2d [b][color=NAVY]([/color][/b]p[b][color=NAVY])[/color][/b]
  3.        [b][color=NAVY]([/color][/b]list [b][color=MAROON]([/color][/b]car p[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]cadr p[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]initget 7[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setq tol [b][color=NAVY]([/color][/b]getdist [color=#2f4f4f]"\nBase Point Search Tolerance:   "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ri -1[b][color=NAVY])[/color][/b]
  7.       [b][color=NAVY]([/color][/b]setq rs [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"POINT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]62 . 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  8.       [b][color=NAVY]([/color][/b]setq gs [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"POINT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]62 . 3[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  9.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq rn [b][color=GREEN]([/color][/b]ssname rs [b][color=BLUE]([/color][/b]setq ri [b][color=RED]([/color][/b]1+ ri[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  10.              [b][color=MAROON]([/color][/b]setq rd [b][color=GREEN]([/color][/b]entget rn[b][color=GREEN])[/color][/b]
  11.                    rp [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 rd[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  12.                    md [b][color=GREEN]([/color][/b]distance [b][color=BLUE]([/color][/b]p2d [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"EXTMIN"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  13.                                 [b][color=BLUE]([/color][/b]p2d [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"EXTMAX"[/color][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  14.              [b][color=MAROON]([/color][/b]and
  15.                [b][color=GREEN]([/color][/b]setq gs [b][color=BLUE]([/color][/b]ssget [color=#2f4f4f]"C"[/color] [b][color=RED]([/color][/b]polar rp [b][color=PURPLE]([/color][/b]* pi 0.25[b][color=PURPLE])[/color][/b] tol[b][color=RED])[/color][/b]
  16.                                    [b][color=RED]([/color][/b]polar rp [b][color=PURPLE]([/color][/b]* pi 1.25[b][color=PURPLE])[/color][/b] tol[b][color=RED])[/color][/b]
  17.                                   '[b][color=RED]([/color][/b][b][color=PURPLE]([/color][/b]0 . [color=#2f4f4f]"POINT"[/color][b][color=PURPLE])[/color][/b][b][color=PURPLE]([/color][/b]62 . 3[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  18.                [b][color=GREEN]([/color][/b]setq ce nil
  19.                      gi -1[b][color=GREEN])[/color][/b]
  20.                [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]setq gn [b][color=RED]([/color][/b]ssname gs [b][color=PURPLE]([/color][/b]setq gi [b][color=TEAL]([/color][/b]1+ gi[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  21.                       [b][color=BLUE]([/color][/b]setq gd [b][color=RED]([/color][/b]entget gn[b][color=RED])[/color][/b]
  22.                             gp [b][color=RED]([/color][/b]p2d [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 10 gd[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  23.                       [b][color=BLUE]([/color][/b]if [b][color=RED]([/color][/b]< [b][color=PURPLE]([/color][/b]distance [b][color=TEAL]([/color][/b]p2d rp[b][color=TEAL])[/color][/b] gp[b][color=PURPLE])[/color][/b] md[b][color=RED])[/color][/b]
  24.                           [b][color=RED]([/color][/b]setq md [b][color=PURPLE]([/color][/b]distance [b][color=TEAL]([/color][/b]p2d rp[b][color=TEAL])[/color][/b] gp[b][color=PURPLE])[/color][/b]
  25.                                 ce gn[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  26.                       gn[b][color=GREEN])[/color][/b]
  27.                [b][color=GREEN]([/color][/b]and ce
  28.                       [b][color=BLUE]([/color][/b]entmod [b][color=RED]([/color][/b]subst [b][color=PURPLE]([/color][/b]list 10 [b][color=TEAL]([/color][/b]car gp[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]cadr gp[b][color=TEAL])[/color][/b] [b][color=TEAL]([/color][/b]caddr rp[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b]
  29.                                      [b][color=PURPLE]([/color][/b]assoc 10 gd[b][color=PURPLE])[/color][/b] gd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  30.                       [b][color=BLUE]([/color][/b]redraw ce 3[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  31. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
鉴于:
[列表]
  • 红色和绿色强制在点实体上(不是具有各自图层的BYLAYER)
  • 我猜你的公差是1个单位(可能是米)
  • PDMODE自上次重新生成后未更改
  • PDMODE显示几何形状将包含在公差中
    [/列表]
    举几个例子。。。。
     
     
    你可以去掉公差,但是一张有数千个点的画要比北极的糖蜜画慢。
     
     
    玩得开心-大卫
    -CPT。图纸
  • 回复

    使用道具 举报

    54

    主题

    3755

    帖子

    3583

    银币

    后起之秀

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

    铜币
    438
    发表于 2022-7-6 10:14:21 | 显示全部楼层
    看起来是个有趣的项目。很遗憾,我再过一个星期就不能接近AutoCAD了,更不用说用电脑了,但我会是个骗子。
    回复

    使用道具 举报

    pBe

    32

    主题

    2722

    帖子

    2666

    银币

    后起之秀

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

    铜币
    211
    发表于 2022-7-6 10:21:39 | 显示全部楼层
     
    非常有信心的大卫,我总是想知道如何应对这种情况
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 10:26:24 | 显示全部楼层
     
    谢谢,通过将每个点与其他点进行比较,迭代将呈指数增长。我想您可以尝试计算ssget交叉值,但这仍然是一个猜测-大卫
    回复

    使用道具 举报

    14

    主题

    47

    帖子

    33

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    70
    发表于 2022-7-6 10:34:49 | 显示全部楼层
    非常感谢和感谢你,大卫先生,希望我的工作量会减轻。
     
    大卫先生,有没有什么方法可以让我一层一层地工作,或者一个区域一个区域地工作,而不是一次完成所有的功能。这里有许多不同层次的特征,如道路和桥梁等
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 10:39:06 | 显示全部楼层
    symoin,
     
    是的,有很多方法可以分解选择集。
     
    你必须有一些一致的参数才能工作。ie层名称、点颜色。
     
    您可以从ssget调用中删除“X”,以允许用户选择-大卫
    回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-6 10:44:44 | 显示全部楼层
    如果在查找列表中找到点时也将其删除,这意味着随着列表的减少,它将逐渐加快。
     
    另一个技巧10000分需要13分才能找到正确的一个,不是9999。你注意到了吗?
    回复

    使用道具 举报

    14

    主题

    47

    帖子

    33

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    70
    发表于 2022-7-6 10:50:26 | 显示全部楼层
     
     
    这听起来很刺激,你能做到吗。
    回复

    使用道具 举报

    106

    主题

    1万

    帖子

    101

    银币

    顶梁支柱

    Rank: 50Rank: 50

    铜币
    1299
    发表于 2022-7-6 11:01:33 | 显示全部楼层
    很容易,只要想一想,你的列表在10000中寻找一个点排序,列表跳转到中间值=项目5000是否等于是非跳转,然后再跳转到1/2,一半列表或多或少重复,并将剩余项目减少一半。
    10000个项目开始
    5000项目编号
    2500项目编号
    1250项目编号等,最多13倍
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-7 00:33 , Processed in 0.361278 second(s), 75 queries .

    © 2020-2025 乐筑天下

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