dwjb 发表于 2013-3-29 19:30:35

地形图缩编1:500变成2000,植被符号抽稀功能,

在地形图缩编1:500变成1:2000的时候,植被符号需要抽稀,(原图是按照2cm填充的,变成2000图间距就很密,需要删减)本人一直用高程点过滤功能,请高人写个程序,一次批选,按照距离自动删减,

happy336 发表于 2019-10-15 12:00:57

谢谢分享,支持

myzwsc1 发表于 2018-5-26 01:00:57

阅读权限不足。。。。。

dwjb 发表于 2013-4-1 18:36:52

自己顶下,高人快来哦

dwjb 发表于 2013-4-3 20:20:33

自己顶下,高人快来哦

gzxl 发表于 2013-4-3 22:34:39

CASS里不是 绘图处理 改变当前图形比例尺
不行吗?

dwjb 发表于 2013-4-5 13:01:45

gzxl 发表于 2013-4-3 22:34 static/image/common/back.gif
CASS里不是 绘图处理 改变当前图形比例尺
不行吗?

不能改变植被符号的填充密度,也许是bug

杨光88888888 发表于 2013-4-5 19:36:05

顶,很有用的东东

qfkxc 发表于 2013-4-6 19:09:33

(defun c:fhcx ()
(vl-load-com)
(setvar "cmdecho" 0)
(setq v1 (getvar "osmode"))
(setvar "osmode" 0)
(setq blc(getreal "请输入当前图形的比例尺<500>:"))
(if (= b1 nil)
    (setq b1 500))
(setq blxs (* 0.001 blc));新插入块的比例系数
(setq xzl (- (* 0.02 blc) 1.5))
(setq yzl (- (* 0.01 blc) 1.5))
(setq s1 (entsel "\n请选择一个植被符号:"))
(command "zoom" "e" "")
(setq tyb (entget(car s1)));图元表
(setq gjz0 (assoc 0 tyb));关键字0
(setq tkm (assoc 2 tyb));图块名
(setq tcm (assoc 8 tyb));图层名
(setq glb (list gjz0 tcm tkm));选择集过滤表
(setq s (ssget "x" glb ));植被选择集
(setq tygs (sslength s));选择集内图元个数
(setq ff (open "d:/坐标表.txt" "w"));新建植被插入点坐标文档
(setq i 0)
(repeat tygs
(setq dgtym (ssname s i))
(setq dgtyb (entget dgtym));单个符号图元表
(setq zbb (cdr (assoc 10 dgtyb)));坐标表
(setq zbx (rtos (car zbb) 2 2))
(setq zby (rtos (cadr zbb) 2 2))
(setq zbzfq (strcat zbx "," zby));坐标字符串
(write-line zbzfq ff);写入坐标字符串
(setq i (1+ i)))
(close ff)
(command"._erase" s "" );删除植被符号
(setq tcm1 (cdr tcm))
(command "layer" "s" tcm1 "");设置当前层
(setq ff (open "d:/坐标表.txt" "r"));打开植被插入点坐标文档
(setq tkmc (strcat (cdr tkm) ".dwg"))
(setq i 0)
(while (< i tygs)
(setq zbzfq (read-line ff));读出坐标字符串
(setq zfqcd (strlen zbzfq));坐标字符串的长度
(setq dhwz (vl-string-search "," zbzfq));查找,所在位置
(setq xzb (atof (substr zbzfq 1 dhwz)));截取字符串转换为X坐标
(setq yzb (atof (substr zbzfq (+ dhwz 2))));截取字符串转换为y坐标
(setq zbb (list xzb yzb));组合为坐标表
(setq p1 (list (- xzb xzl) (- yzb yzl)));检查是否有植被符号的范围
(setq p2 (list (+ xzb xzl) (+ yzb yzl)))
(setq s (ssget "w" p1 p2 glb ));植被选择集
(if (= s nil)
(progn
(setq p1 (list (- xzb 3) (- yzb 3 (* 0.01 blc))))
(setq p2 (list (+ xzb 3) (+ yzb 3 (* 0.01 blc))))
(setq s (ssget "w" p1 p2 glb ));植被选择集
(if (= s nil)
(command "-insert" tkmc zbb blxs blxs blxs))))
(setq i (1+ i)))
(close ff)
(command "layer" "s" 0 "");设置当前层
)

dwjb 发表于 2013-4-6 20:58:42

qfkxc 发表于 2013-4-6 19:09 static/image/common/back.gif


程序运行速度慢,重新填充的符号不均匀,应该按照3cm重新计算填充坐标

004 发表于 2013-4-7 22:44:16

dwjb 发表于 2013-4-6 20:58 static/image/common/back.gif
程序运行速度慢,重新填充的符号不均匀,应该按照3cm重新计算填充坐标

抽稀还可以,但重新计算填充坐标,意味着要判断出植被的范围,困难了吧。

Gu_xl 发表于 2013-4-8 09:24:05

本帖最后由 Gu_xl 于 2013-4-8 10:23 编辑




页: [1] 2 3
查看完整版本: 地形图缩编1:500变成2000,植被符号抽稀功能,