明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 414|回复: 3

[测绘] 请各位大侠同行帮忙看下,为什么运行有问题,怎么改

[复制链接]
发表于 2016-10-23 09:34 | 显示全部楼层 |阅读模式
(defun c:ggcd ()
  (princ "\n 选取要修改的高程点:")
  (setq ss (ssget))
  (setq zz (getreal "\n 输入增(+)减(-)高程值:"))
  (setq n 0)
  (repeat (sslength ss)
    (setq ssn (ssname ss n))
    (setq ssdata (entget ssn))
    (setq mms (assoc 2 ssdata))
    (setq mmm (cdr mms))
    (if (= mmm "GC200")
       (progn
         (setq en1 (assoc 10 ssdata))
         (setq old_zz (cdr en1))
         (setq X (car old_zz))
         (setq Y (cadr old_zz))
         (setq Z (caddr old_zz))
         (setq m (+ Z zz))
         (setq new_zz (cons 10 endata))
         (setq ssdata (subst new_zz en1 ssdata))
         (entmod ssdata)
         )
      )
    (setq n (1+ n))         
  )
  (prin1)
)

发表于 2016-10-23 11:38 | 显示全部楼层
  1. ;; tt(修改高程图块的Z值)
  2. (defun c:tt ()
  3.   (setq dz (getreal "\n输入增(+)减(-)高程值: "))
  4.   (princ "\n选取要修改的高程点: ")
  5.   (if (setq ss (ssget '((0 . "insert") (2 . "GC200"))))
  6.     (progn
  7.       (setq n 0)
  8.       (repeat (sslength ss)
  9.         (setq date (entget (ssname ss n))
  10.               en   (assoc 10 date)
  11.               p0   (cdr en)
  12.               X   (car p0)
  13.               Y   (cadr p0)
  14.               z   (+ (caddr p0) dz)
  15.               date (subst (cons 10 (list x y z)) en date)
  16.         )
  17.         (entmod date)
  18.         (setq n (1+ n))
  19.       )
  20.     )
  21.   )
  22.   (princ)
  23. )
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-10-23 15:14 | 显示全部楼层
非常感谢您
发表于 2016-10-28 09:23 | 显示全部楼层
本帖最后由 llsheng_73 于 2016-10-28 10:24 编辑

难道高程点只需要改它的Z坐标,它的注记不需要修改?
  1. (defun c:tt(/ dz n ss e1 en)
  2.   (if(and(setq dz(getreal "\n输入增(+)减(-)高程值: ")
  3.         dz(list 0 0 dz))
  4.   (princ "\n选取要修改的高程点: ")
  5.   (setq n 0
  6.         ss(ssget '((0 . "insert")(2 . "GC200")))))
  7.     (progn
  8.       (command"move"ss""'(0 0 0)dz)
  9.       (repeat(sslength ss)
  10. (if(/="SEQEND"(cdr(assoc 0(setq e1(entnext(ssname ss n))
  11.      n(1+ n)
  12.      en(entget e1)))));;高程点未被打散
  13.    (entmod(mapcar'cons'(-1 1)(list e1(rtos(last(assoc 10 en))2 2))))))
  14.       (command"regen")
  15.      ))
  16.   (princ)
  17. )

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

本版积分规则

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

GMT+8, 2024-4-20 08:35 , Processed in 0.377112 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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