求教 如何让提取的坐标与原坐标点号一致
CASS上也一样 往往提取的坐标都是重新的编号提取的坐标为 点号,X,Y,H却无法与原点号对应起来 那个大神有此类插件能框选坐标生成后与原坐标展点号一致谢谢!!!!读取该点的CASS扩展属性“NAME”作为点号即可
q3_2006 发表于 2016-6-21 10:42
用原点号排序不就行了..这有什么难度
我有个方法可以解决用不到程序。EXL和一个程序插件就能完全解决。首先将原点号变成高程点,导出到EXL筛选以X坐标列筛选排序,在将重新提出的坐标以X坐标列筛选排序。剩下的就是复制粘贴了。另附插件一份。 hkhbs 发表于 2016-7-7 09:29
代码不是我的啊没版权不敢拿出来共享高手搞这个貌似很简单
希望能够分享一下!谢谢,这个很有用 订贴顶贴别沉了 用原点号排序不就行了..这有什么难度 不是你想的那样 展的点的顺序 和再重新提取的顺序编号有可能是不一样的原点号也有可能是带字母的啊 而重新提取的是大都是数字编号 CASS 也可以弄 但好好多步骤 不能框选 所以很麻烦 别沉了麻烦 ;;;;读取桩基的编号文本,将编号作为点号
(defun c:TQWZZB()
(princ "\n选择所需输出的点(point):")
(setq ss (ssget ));;选取坐标点
(setq n (sslength ss ));计算坐标点数量
(setq ff (open (getfiled "文件保存为" "f:/" "dat" 1) "w"));保存路径
(setq i 0)
(repeat n
(setq spt (ssname ss i ))
(setq ept (entget spt))
(if (= (cdr (assoc 0 ept)) "TEXT")
(progn
(setq lxyz (cdr (assoc 10ept)))
setq sx (rtos (nth 1 lxyz)));将坐标值实数转换成字符
(setq sX11 (rtos sx1 2 3))
(setq sy (rtos (nth 0 lxyz)2 3))
(setq sz (rtos (nth 2 lxyz)2 3))
(setq i1 (+ i 1));计算点序号
(setq sn (rtos i1 2 0));将序号实数转换成字符
;;获取文本内容(编号)做点号
(setq ent (entget (ssname ss i)))
(setq typeA (cdr (assoc 1 ent)))
;;;;
(setq sxyz (strcat typeA"," sn ","sy ","sx","sz))
(write-line sxyz ff)
)
)
(setq i (+ i 1))
);repeat
)
(prompt "*只适合TEXT点 << 命令:TQWZZB >> *输出格式(点号,, Y,X,Z)**")
(prin1)
这是skg123老师的源码运行显示语法错误提取的和实际的坐标不一致麻烦蓝图老师看下 谢谢 其实CASS就可以手动逐个点取所有的桩位坐标并按点取顺序编号,自己可以试一下。 知道只是读取的是 点号X Y没有高程如要读取高程 需要再生成一遍再合起来 比较麻烦 而且不能随意选 781849579