明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 13090|回复: 29

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

  [复制链接]
发表于 2013-3-29 19:30:35 | 显示全部楼层 |阅读模式
在地形图缩编1:500变成1:2000的时候,植被符号需要抽稀,(原图是按照2cm填充的,变成2000图间距就很密,需要删减)本人一直用高程点过滤功能,请高人写个程序,一次批选,按照距离自动删减,
发表于 2019-10-15 12:00:57 来自手机 | 显示全部楼层
谢谢分享,支持
发表于 2018-5-26 01:00:57 | 显示全部楼层
阅读权限不足。。。。。
 楼主| 发表于 2013-4-1 18:36:52 | 显示全部楼层
自己顶下,高人快来哦
 楼主| 发表于 2013-4-3 20:20:33 | 显示全部楼层
自己顶下,高人快来哦
发表于 2013-4-3 22:34:39 | 显示全部楼层
CASS里不是 绘图处理 改变当前图形比例尺
不行吗?
 楼主| 发表于 2013-4-5 13:01:45 | 显示全部楼层
gzxl 发表于 2013-4-3 22:34
CASS里不是 绘图处理 改变当前图形比例尺
不行吗?

不能改变植被符号的填充密度,也许是bug
发表于 2013-4-5 19:36:05 | 显示全部楼层
顶,很有用的东东
发表于 2013-4-6 19:09:33 | 显示全部楼层
  1. (defun c:fhcx ()
  2. (vl-load-com)
  3. (setvar "cmdecho" 0)
  4. (setq v1 (getvar "osmode"))
  5. (setvar "osmode" 0)
  6. (setq blc(getreal "请输入当前图形的比例尺<500>:"))
  7. (if (= b1 nil)
  8.     (setq b1 500))
  9. (setq blxs (* 0.001 blc));新插入块的比例系数
  10. (setq xzl (- (* 0.02 blc) 1.5))
  11. (setq yzl (- (* 0.01 blc) 1.5))
  12. (setq s1 (entsel "\n请选择一个植被符号:"))
  13. (command "zoom" "e" "")
  14. (setq tyb (entget(car s1)));图元表
  15. (setq gjz0 (assoc 0 tyb));关键字0
  16. (setq tkm (assoc 2 tyb));图块名
  17. (setq tcm (assoc 8 tyb));图层名
  18. (setq glb (list gjz0 tcm tkm));选择集过滤表
  19. (setq s (ssget "x" glb ));植被选择集
  20. (setq tygs (sslength s));选择集内图元个数
  21. (setq ff (open "d:/坐标表.txt" "w"));新建植被插入点坐标文档
  22. (setq i 0)
  23. (repeat tygs
  24. (setq dgtym (ssname s i))
  25. (setq dgtyb (entget dgtym));单个符号图元表
  26. (setq zbb (cdr (assoc 10 dgtyb)));坐标表
  27. (setq zbx (rtos (car zbb) 2 2))
  28. (setq zby (rtos (cadr zbb) 2 2))
  29. (setq zbzfq (strcat zbx "," zby));坐标字符串
  30. (write-line zbzfq ff);写入坐标字符串
  31. (setq i (1+ i)))
  32. (close ff)
  33. (command  "._erase" s "" );删除植被符号
  34. (setq tcm1 (cdr tcm))
  35. (command "layer" "s" tcm1 "");设置当前层
  36. (setq ff (open "d:/坐标表.txt" "r"));打开植被插入点坐标文档
  37. (setq tkmc (strcat (cdr tkm) ".dwg"))
  38. (setq i 0)
  39. (while (< i tygs)
  40. (setq zbzfq (read-line ff));读出坐标字符串
  41. (setq zfqcd (strlen zbzfq));坐标字符串的长度
  42. (setq dhwz (vl-string-search "," zbzfq));查找,所在位置
  43. (setq xzb (atof (substr zbzfq 1 dhwz)));截取字符串转换为X坐标
  44. (setq yzb (atof (substr zbzfq (+ dhwz 2))));截取字符串转换为y坐标
  45. (setq zbb (list xzb yzb));组合为坐标表
  46. (setq p1 (list (- xzb xzl) (- yzb yzl)));检查是否有植被符号的范围
  47. (setq p2 (list (+ xzb xzl) (+ yzb yzl)))
  48. (setq s (ssget "w" p1 p2 glb ));植被选择集
  49. (if (= s nil)
  50. (progn
  51. (setq p1 (list (- xzb 3) (- yzb 3 (* 0.01 blc))))
  52. (setq p2 (list (+ xzb 3) (+ yzb 3 (* 0.01 blc))))
  53. (setq s (ssget "w" p1 p2 glb ));植被选择集
  54. (if (= s nil)
  55. (command "-insert" tkmc zbb blxs blxs blxs))))
  56. (setq i (1+ i)))
  57. (close ff)
  58. (command "layer" "s" 0 "");设置当前层
  59. )

评分

参与人数 1明经币 +1 金钱 +50 收起 理由
dwjb + 1 + 50

查看全部评分

 楼主| 发表于 2013-4-6 20:58:42 | 显示全部楼层
qfkxc 发表于 2013-4-6 19:09

程序运行速度慢,重新填充的符号不均匀,应该按照3cm重新计算填充坐标
发表于 2013-4-7 22:44:16 | 显示全部楼层
dwjb 发表于 2013-4-6 20:58
程序运行速度慢,重新填充的符号不均匀,应该按照3cm重新计算填充坐标

抽稀还可以,但重新计算填充坐标,意味着要判断出植被的范围,困难了吧。
发表于 2013-4-8 09:24:05 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-4-8 10:23 编辑




本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
88641787 + 1 很给力!

查看全部评分

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

本版积分规则

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

GMT+8, 2024-12-23 03:46 , Processed in 0.253768 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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