明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 949|回复: 7

[测绘] 高程值整体升高或者降低?直接把原有的高程值替换掉

[复制链接]
发表于 2021-5-29 13:04 | 显示全部楼层 |阅读模式
图上的高程能不能批量抬高或者降低操作?图上每个数字代表这个位置的高程,所有的数字减去或者加某一个数字后替换当前数字。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2021-5-29 18:10 | 显示全部楼层
701625004 群文件里有
 楼主| 发表于 2021-5-29 19:37 | 显示全部楼层
xj6019 发表于 2021-5-29 18:10
701625004 群文件里有

我在这个群里,好多批量替换的文件,找到的都是一个一个输入替换值的。
发表于 2021-5-30 10:19 | 显示全部楼层
本帖最后由 lxl217114 于 2021-5-30 10:22 编辑

一.如果是做四则运算,可以用高飞鸟版主的插件
http://bbs.mjtd.com/forum.php?mo ... 4%D4%F2%D4%CB%CB%E3

二.如果是添加后缀/前缀,可以用天正的查找替换功能,里头有添加前/后缀功能


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2021-5-30 13:12 | 显示全部楼层
本帖最后由 Block 于 2021-5-30 13:56 编辑
lxl217114 发表于 2021-5-30 10:19
一.如果是做四则运算,可以用高飞鸟版主的插件
http://bbs.mjtd.com/forum.php?mo ... 4%D4%F2%D4%CB%CB%E ...

这两个都是一个一个数据操作的,我一张图上成千上百个高程。需要批量操作。已经写了一下代码,老实报:参数类型
  1. (DEFUN C:XX()
  2. (setvar "cmdecho" 0)
  3. (setq ss  (SSGET":s" '((0 . "*TEXT"))) )
  4.   (setq n 0)
  5.   (repeat (sslength ss)
  6.     (setq  ent (ssname ss n))
  7.     (setq  ent_data (entget ent))
  8.     (setq ent_data (car (assoc 1 ent_data)))
  9.       (setq ent_data (- 2314 ent_data))
  10.       (entmod ent_data)
  11.     (setq n (1+ n))
  12. (PRINC)
  13. ))


发表于 2021-5-31 10:23 | 显示全部楼层
本帖最后由 lxl217114 于 2021-5-31 10:29 编辑
Block 发表于 2021-5-30 13:12
这两个都是一个一个数据操作的,我一张图上成千上百个高程。需要批量操作。已经写了一下代码,老实报:参 ...

嗯,说明你对这两个工具用的不是很6
应该给数字原位做加/减法,我设置的批量操作数是:+2


下面是用高飞鸟版主的演示的,仅作参考。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2021-5-31 15:15 | 显示全部楼层
图上的高程能不能批量抬高或者降低操作?图上每个数字代表这个位置的高程,所有的数字减去或者加某一个数字后替换当前数字。  TEMP1 - Copy.dwg (92.2 KB, 下载次数: 3)

;这里有一个很简单的
;批量修改高程值
(defun c:plxggcz()
    (setvar "cmdecho" 0)
    (command "_undo" "be") ;撤消命令起点
    (if (setq ent (car (entsel "\n选取要修改中的一个高程文字:")))
        (progn
            (setq dxf (entget ent))
            (setq name (cdr (assoc 0  dxf)))
            (If (wcmatch name "*TEXT")
                (progn
                    ;只选取由数字和小数点组成的文字,且字体样式、图层、字高、颜色与所选取要修改中的那个相同
                    (setq gltjb (append (list '(0 . "*text") '(1 . "~*[~.0-9]*" ))
                                        (vl-remove-if-not '(lambda(a) (member (car a) '(7 8 40 62))) dxf)
                                     
                                )
                    )
                    (if (= (setq dh (getreal "\n增量值(正值升高,负值降低)=")) nil)
                        (setq dh 0.0)
                    )
                    (If (setq ssa (ssget "x" gltjb))
                        (progn
                            (setq i 0  n (sslength ssa))
                            (repeat n
                               (setq dxf (entget (ssname ssa i)))
                               (setq zfc (cdr (assoc 1 dxf)))
                               (setq gcz (vl-catch-all-apply 'atof (list zfc))) ;原高程值
                               (if (vl-catch-all-error-p gcz)
                                   (setq gcz (atoi zfc))
                               )
                               (if (/= dh 0.0)
                                   (progn
                                       (setq ngcz (+ gcz dh)) ;升高或降低的高程值
                                       (setq dxf (subst (cons 1 (rtos ngcz 2 1)) ;转换为字符串,保留1位小数
                                                        (assoc 1 dxf)
                                                        dxf
                                                 )
                                       )
                                       (entmod dxf) ;更新升高或降低的高程值
                                   )
                               )
                               (setq i (1+ i))
                            )
                        )
                    )
                )
            )
        )
    )
    (command "_undo" "e");撤消命令止点
    (princ)
)
发表于 2021-6-1 22:43 | 显示全部楼层
本帖最后由 vitalgg 于 2021-6-1 22:46 编辑
Block 发表于 2021-5-29 19:37
我在这个群里,好多批量替换的文件,找到的都是一个一个输入替换值的。

你在这个群里,就没有看到 ”数学工具-批量运算.mp4“ 这个文件吗?
http://atlisp.cn/package-info?name=at-math&edition=stable
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-5 03:15 , Processed in 0.225522 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表