明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xuexicad1960

求程序:等高线高程值取整

  [复制链接]
发表于 2011-2-3 17:45:11 | 显示全部楼层
楼上的学习了
等会试试
谢谢楼上
 楼主| 发表于 2011-2-3 22:02:47 | 显示全部楼层
回复 gzxl 的帖子

这几天没上网,没有及时回帖,刚才试了一下这个程序,是我想要的结果,很好速度很快,向你学习了。借此给大家拜年了,兔年吉祥!
发表于 2011-2-4 19:17:43 | 显示全部楼层
对地形图进行变换的时候,选择公共点时,输入.XY,过滤Z值,或者直接输公共点的坐标,这样不会造成你所说的这种情况。
因为你变换的时候,选择到了Z值,就成三维空间变换了,所以才有出现小数。
 楼主| 发表于 2011-2-5 21:18:02 | 显示全部楼层
回复 usercoolbo 的帖子

昨天看了你的回帖,我琢磨了半天也没明白如何过滤z值.   我是通过选择两个点作为定向点,对图形作缩放、旋转、平移 ,经过了scale后就出现了小数的,如果按你说的过滤z值能使高程值不变,那是最好的了。可我不知道如何操作。还请你尽量说的详细点,我对过滤z值比较陌生,麻烦你了。
发表于 2011-2-7 09:23:04 | 显示全部楼层
转换前后的坐标直接手工输入,这样就避免了Z值的三维变换。
如果直接在CAD上选择的话,可以输入.XY后点选该点,接着提示你输入Z值,都输入0就可以了
 楼主| 发表于 2011-2-7 22:36:17 | 显示全部楼层
回复 usercoolbo 的帖子

我明白了,谢谢你的提点。
发表于 2011-2-9 07:57:48 | 显示全部楼层
xuexicad1960 发表于 2011-2-3 22:02
回复 gzxl 的帖子

这几天没上网,没有及时回帖,刚才试了一下这个程序,是我想要的结果,很好速度很快,向 ...

兔年吉祥如意!
请教一个问题:我将你的样图下载了,将高程值修改为有小数位数,然后运行gzxl第二个程序,高程值没有改变,不知为什么?我是在cass9.0操作。
谢谢
发表于 2011-2-9 23:01:20 | 显示全部楼层
我将样图的高程值改了后,放在同事的电脑上,cass8.0下运行也是不行,不知是为什么?
我现在将改了的样图上传,麻烦帮我看看,能否找出问题?
使用的程序也一同传上,是后面的一个。
谢谢


本帖子中包含更多资源

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

x
发表于 2022-8-29 13:46:58 | 显示全部楼层
461045462 发表于 2011-2-9 23:01
我将样图的高程值改了后,放在同事的电脑上,cass8.0下运行也是不行,不知是为什么?
我现在将改了的样图 ...

;;自己加个循环吧
(vl-load-com)
(defun c:tt ()
  (princ "功能:等高线高程值取整")
  (setq ss (ssget))
  (setq ent (ssname ss 0))
  (setq obj (vlax-ename->vla-object ent))
  (setq zgc (itoa (fix (vla-get-Elevation obj))))
  (setq ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for obj ssv (vlax-put obj 'Elevation zgc))
  (princ)
)

;这个好像可以了。
(defun c:tt6 ()
  (princ "功能:等高线高程值取整")
  (setq ss (ssget "X" (list (cons 8 "dgx") (cons 0 "LWPOLYLINE"))))
  ;(setq ss (ssget))
  (if ss
    (progn
      (setq ss4 (sslength ss))
      (setq n 0)
      (while (/= ss4 n)
             (setq en (ssname ss n))
             (setq end (entget en))
             (setq a (cdr (assoc 38 end)) adata end)
             (setq b (rtos a 2 0))
             (setq adata (subst (cons 38 (atoi b)) (assoc 38 adata) adata))
             (entmod adata)
             (setq n (+ n 1))
      )
    )
  )
  (princ)
)


改成这样TT也可以,TT6也可以
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 19:59 , Processed in 0.181604 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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