461045462
发表于 2011-1-13 19:16:59
本帖最后由 461045462 于 2011-1-13 19:29 编辑
回复 xuexicad1960 的帖子
我现在主要使用南方CASS8.0软件操作
利用内插等高线,其它不知还有什么软件可以操作?
不知你是采用什么软件?
R2V是否只画线条,还要另外赋值?
摸索了大半下午,没有掌握R2V的自动画线操作。
太笨吧,再看看
谢谢
461045462
发表于 2011-1-13 19:58:08
本帖最后由 461045462 于 2011-1-13 20:01 编辑
xuexicad1960 发表于 2011-1-13 17:32 http://bbs.mjtd.com/static/image/common/back.gif
下载不了 你看看说明 能会的
又仔细看了你所有的回复,推敲,“如果是扫描图就用r2v矢量化软件或手描, 然后赋值、 内插.”。终于线可以自动生成了。
请问保存是采用另存为还是采用输出为dxf文件,或者是其它的,那种方式好?
线生成以后,是在r2v软件下继续操作,还是放在CASS下操作好?
望指教
如果能加你的QQ就好了,联系要方便些,能更好的向你学习。
我的QQ:461045462
谢谢
wyjrwy
发表于 2011-1-13 20:42:07
这个可不可以啊
xuexicad1960
发表于 2011-1-13 22:13:57
如果你对cass比较熟,输出矢量时就选择dxf,不是另存,进cass后再做其他的工作,赋值cass中没有这个功能吧,当然一根一根赋除外,如果没有别的程序,那你只能在r2v下赋值,其实r2v也能编辑写高程等,只不过咱刚接触不熟,不愿在那里做别的工作,仅让它把线划出来就行了,我是这么做的。赋值你可以在测绘信息网论坛里找。有个赋值的小程序。
461045462
发表于 2011-1-13 23:10:12
回复 xuexicad1960 的帖子
我是采用输出矢量时选择dxf方式。在cad查了一下线型是POLYLINE,而且线断的比较多,不连贯,要赋值或许工作量比较大。线条采用:平滑B样线段方式。做出来感觉效果不是很好。
谢谢你的指点,我到测绘信息网论坛去找找看。
以前都是采用手工操作。
因为现在的图幅面积太大,等高线多,所以想找一个快捷好用的方式。
谢谢你。
xuexicad1960
发表于 2011-1-14 10:40:14
这是个赋值的小程序,本想让你自己去找,这样也好让你知道是谁做的,感谢人家,不过一时半会的我也不好再找到它的出处了。贴到这里吧 ,你自己再琢磨它的用法吧。从比例尺和等高距上考虑。
(defun C:DGXF( / w s z g1 g2 tp1 tp2 ss1)
(setvar "cmdecho" 0)
(if (car (atoms-family 1 '("vl-load-com"))) (vl-load-com))
(command "undo" "be")
(setq w(getvar "userr1"))
(if (= w 0)
(progn
(setq w(getreal "\n输入等高距: "))
(setvar "userr1" w)
(setq w(getvar "userr1"))
)
)
(initget "g d")
(setq qc_flags (getkword "\nG<往高处>/D<往低处>:<G>"))
(if (eq qc_flags nil)
(setq qc_flags "g")
)
(if (eq qc_flags "g")
(princ)
)
(if (eq qc_flags "d")
(setq w(- 0 w))
)
(setq th(entsel "\n选有值线:"))
(if th (gele (car th)) (setq elev(getreal "\n没选到!请输入基线高程值: ")))
(setq tp1 (getpoint "\n指定第一点:"))
(setq tp2 (getpoint "\n指定第二点:"))
(setq plist (list tp1 tp2))
(setq S (ssget "F" plist ))
(if s
(progn
(setq a 0)
(repeat (sslength s)
(setq z (setq ss1(ssname s a)))
(setq g1(+ elev (* w a) w))
(pele z g1)
;(setq g2(cons 38 g1))
;(entmod (subst g2 (assoc '38 z) z))
(if (= (abs w) 2.5) (setq g3(rem (/ g1 w) 4)))
(if (/= (abs w) 2.5) (setq g3(rem (/ g1 w) 5)))
(if (= g3 0) (pcolor 1))
(if (or (= g3 1) (= g3 -1))(pcolor 6))
(if (or (= g3 2) (= g3 -2))(pcolor 6))
(if (or (= g3 3) (= g3 -3))(pcolor 6))
(if (or (= g3 4) (= g3 -4))(pcolor 6))
(setq a (1+ a ))
)
(princ "\n ")
(princ "最后一线值" )
(princ g1)
(princ)
(command "undo" "e")
)(princ "\n sorry 你没选到等高线!"))
(setvar "cmdecho" 1)
)
;;
(defun gele(name-lsp)
(setq vlaobject-name (vlax-ename->vla-object name-lsp))
(setq elev (vla-get-Elevation vlaobject-name));;高程
(vlax-release-object vlaobject-name)
)
(defun pele(name-lsp elev)
(setq vlaobject-name (vlax-ename->vla-object name-lsp))
(vla-put-Elevation vlaobject-name elev) ;;写入高程
)
(defun pcolor(n)
(vla-put-Color vlaobject-name n)
(vlax-release-object vlaobject-name)
)
461045462
发表于 2011-1-14 12:15:00
回复 xuexicad1960 的帖子
谢谢你了,同时也谢谢原作者。
我试试,学习学习,好好领会。
以前使用过的追加程序不是很理想,有些再转弯处等高线飞了,或者分的不很均匀,要手工再处理。
谢谢
xuexicad1960
发表于 2011-1-14 17:20:10
在大的转弯处等高线飞了是cass的毛病,没办法只能手工处理,我也遇到过。
461045462
发表于 2011-1-16 08:43:17
回复 xuexicad1960 的帖子
周末愉快
谢谢您一直的关注与指教。
用r2v矢量化软件做出来,线断的比较多,不连贯,不知您是否这样的?
不知您是怎样解决这些的?如果还要手工将线连接,再赋值,工作量也很大。如果解决不了这个问题,我想采取航测方式,解决绘制等高线一事。
xgr
发表于 2011-1-17 03:57:10
用r2v矢量化,全自动矢量化是不行的,只有采用半自动跟踪的方法得到等高线,注意把所有的等高线放在一个图层,在用Cass处理时,可以关闭除等高线层外的其它层,全选所有等高线赋CASS的等高线编码。高程值可以在特性栏修改等高线Z值,完全自动的方法还是没有。