等会试试
谢谢楼上 回复 gzxl 的帖子
这几天没上网,没有及时回帖,刚才试了一下这个程序,是我想要的结果,很好速度很快,向你学习了。借此给大家拜年了,兔年吉祥! 对地形图进行变换的时候,选择公共点时,输入.XY,过滤Z值,或者直接输公共点的坐标,这样不会造成你所说的这种情况。
因为你变换的时候,选择到了Z值,就成三维空间变换了,所以才有出现小数。 回复 usercoolbo 的帖子
昨天看了你的回帖,我琢磨了半天也没明白如何过滤z值. 我是通过选择两个点作为定向点,对图形作缩放、旋转、平移 ,经过了scale后就出现了小数的,如果按你说的过滤z值能使高程值不变,那是最好的了。可我不知道如何操作。还请你尽量说的详细点,我对过滤z值比较陌生,麻烦你了。 转换前后的坐标直接手工输入,这样就避免了Z值的三维变换。
如果直接在CAD上选择的话,可以输入.XY后点选该点,接着提示你输入Z值,都输入0就可以了 回复 usercoolbo 的帖子
我明白了,谢谢你的提点。 xuexicad1960 发表于 2011-2-3 22:02 static/image/common/back.gif
回复 gzxl 的帖子
这几天没上网,没有及时回帖,刚才试了一下这个程序,是我想要的结果,很好速度很快,向 ...
兔年吉祥如意!
请教一个问题:我将你的样图下载了,将高程值修改为有小数位数,然后运行gzxl第二个程序,高程值没有改变,不知为什么?我是在cass9.0操作。
谢谢 我将样图的高程值改了后,放在同事的电脑上,cass8.0下运行也是不行,不知是为什么?
我现在将改了的样图上传,麻烦帮我看看,能否找出问题?
使用的程序也一同传上,是后面的一个。
谢谢
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
[2]