找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 822|回复: 5

[编程申请] 在cass环境下,对测量的地物进行标注,如污水井,路灯之类的,看看我的代码,谢谢

[复制链接]
发表于 2020-3-6 18:46:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
    我是一个初学者,这是我写出来的,麻烦各位给我改改,或者给我讲一讲,感激不尽。
(defun c:jin();主函数
  (setq List1 (duqu));执行读取函数,返回污水井坐标列表
;;;  (command "dd" "340102" (nth 0 List1));调用cass污水井命令
;;;  (command "copy" (entlast) " " (nth 0 List1))
     (setq zuobiao (car List1))
     (command "dd" "340102" zuobiao);画出第一个污水井,
      (setq n 1)
   (setq shu (- (length List1) 1))
  (repeat shu
    (setq zuobiao1 (nth n List1))
    (setq ent (entget (entlast)))
    (setq zuobiao2 (cdr (assoc 10 ent)))
   (command "copy" (entlast) "" zuobiao2 zuobiao1 "");使用复制命令,复制上一步图形
    (setq n (+ n 1))
  )
  (prin1)
)

(defun duqu();读取函数,返回污水井坐标列表
(setq dat_file (getfiled "选择文件" "c:\\Users\\HXB\\Desktop\\" "dat" 2));;打开文件
(setq ff (open dat_file "r"));;只读模式
  (setq Array nil zuobiao_list nil);初始化变量
  (setq m 1);初始化变量
(setq date (read-line ff));;读取文件第一行
(while date;;判断date是否为空
   (setq test date)
  (setq Array (get_array date));调用get_array函数
  (setq dianming (substr date 1 (- (nth 3 Array) 1)));记录点名
  (setq x (atof (substr date (+ (nth 2 Array) 1) (- (nth 1 Array) (nth 2 Array) 1))));记录坐标x
  (setq y (atof (substr date (+ (nth 1 Array) 1) (- (nth 0 Array) (nth 1 Array) 1))));记录坐标y
  (setq date_len (strlen date));获取字符串的长度
  (setq h (atof (substr date (+ (nth 0 Array) 1) (- date_len (nth 0 Array) 1))));记录坐标h
  (setq zuobiao (list x y h))
  (if (= dianming "wsj");判断点名是否为污水井
    (setq zuobiao_list (cons  zuobiao zuobiao_list));获得污水井坐标列表
  );需要添加其他地物,在此判断语句内添加即可
  (setq Array nil)
  (setq date (read-line ff));读取文件下一行字符串
)
(close ff)
(setq zuobiao_list zuobiao_list)
)

(defun get_array(string);自定义get_array函数,输入字符串,返回“,”所在位置的列表
   (setq bijiao "," array nil n 1)
   (setq string_len (strlen string));获取字符串的长度
    (repeat string_len  ;遍历字符串
   (setq a (substr string n 1)) ;取出第n个字符
   (if (= a bijiao);判断第n个字符是否为“,”
     (setq array (cons n array));将“,”位置用列表array记录
   )
   (setq n (+ n 1))
  )
  (setq array array)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-3-7 18:15:43 | 显示全部楼层
你自己写出来的,要别人给你讲什么呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 2230个

财富等级: 金玉满堂

发表于 2020-3-9 11:17:02 | 显示全部楼层
做个对论坛有益的人。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 17:02:02 | 显示全部楼层
newer 发表于 2020-3-7 18:15
你自己写出来的,要别人给你讲什么呢?

您好,这个插件写出来本应该是能对地物进行一键标注的,但是它却老出现问题,时而可以标注,时而不可进行标注,或者就是每个标注的地物偏离地物的原坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 17:03:54 | 显示全部楼层
newer 发表于 2020-3-7 18:15
你自己写出来的,要别人给你讲什么呢?

您好,这个插件写出来本应该是能对地物进行一键标注的,但是它却老出现问题,时而可以标注,时而不可进行标注,或者就是每个标注的地物偏离地物的原坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-14 17:06:04 | 显示全部楼层
newer 发表于 2020-3-7 18:15
你自己写出来的,要别人给你讲什么呢?

您好,这个插件写出来本应该是能对地物进行一键标注的,但是它却老出现问题,时而可以标注,时而不可进行标注,或者就是每个标注的地物偏离地物的原坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 00:30 , Processed in 0.446889 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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