找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 801|回复: 4

[求助] [求助]:关于"高程"合并

[复制链接]
发表于 2007-3-27 13:32:09 | 显示全部楼层 |阅读模式

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

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

×
有大量的地形点需要加注上下高,,就这个问题首先需要解决的问题就是上下高程点的高程合并问题...

  不如单击高程1 高程2  ,就可以合并成高程3,,,并且要求合并出的点以高程1的圆心为准!!

  带上附件供大家研究,谢谢大家献出援手____
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2007-3-27 18:39:43 | 显示全部楼层
不明白!

是CASS生成的高程点吗?
所谓的标上下高是什么意思?坎?建筑物?桥?或其他什么东东???
一般的地形点是没有上下不同的高程的?
而且你所说的合并是加?减?或其他运算公式???

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

使用道具 举报

 楼主| 发表于 2007-3-27 18:54:53 | 显示全部楼层
主要是针对坎子,,合并只是单一的高程值的合并

下面 这个是我刚编写的不完善的程序,,达到了合并值的效果,但是在显示比例 (比原来大一倍) 和数学精度方面还存在问题,,


(defun C:12()
        (setvar "cmdecho" 0)
        (setq en1 (entsel "Select a point:"))
       
       
                (setq en1_data(entget(car en1)))
                (setq en1_type(cdr(assoc 0 en1_data)))            ;是不是插入“insert”对象
                (setq base_1xyh (cdr (assoc 10 en1_data)))        ;取得高程点1的xyh坐标值,后面以此做为
                (setq gc1 (cdr (cdr  base_1xyh)))                 ;取得高程点1的h值,做为新插入的”7023“的DH值
             
        (setq en2 (entsel "Select a point:"))     
       
               
                (setq en2_data(entget(car en2)))
                (setq en2_type(cdr(assoc 0 en2_data)))
                (setq base_2xyh (cdr (assoc 10 en2_data)))         ;取得高程点2的xyh坐标值,后面以此做为         
                (setq gc2 (cdr (cdr  base_2xyh)))                  ;取得高程点2的h值,做为新插入的”7023“的GC值  
               
                (setq GC1 (nth  0  gc1 ))
                (setq GC2 (nth  0  gc2 ))
               
                      (command  "-LAYER"  "S"  ""  ""  "insert" "C:\\program Files\\ppsp\\symbols\\7023.dwg"  base_1xyh   ""  ""  "0"  "-" GC1 GC2)   ;新插入"7023"的高程值      
                      ;(command  "-LAYER"  "S"  ""  ""  "insert" "C:\\program Files\\ppsp\\symbols\\7023.dwg" base_1xyh  ""  ""  "0"  gc1   gc2)                 
)
               
(prompt "********<<命令12:坎子高程编辑>>**********")
(prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-27 19:54:18 | 显示全部楼层
(command  "-LAYER"  "S"  ""  ""  "insert" "C:\\program Files\\ppsp\\symbols\\7023.dwg"  base_1xyh   ""  ""  "0"  "-" GC1 GC2)


(command  "-LAYER"  "S"  ""  ""  "insert" "C:\\program Files\\ppsp\\symbols\\7023.dwg"  base_1xyh   "0.5"  ""  "0"  "-" GC1 GC2)

经过把  ""    修改为  "0.5" 把显示比列的问题解决拉!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-27 22:14:04 | 显示全部楼层
问题已经解决:

(defun C:12()
        (setvar "cmdecho" 0)
        (setq en1 (entsel "Select a point:"))
               
                (setq en1_data(entget(car en1)))
                (setq en1_type(cdr(assoc 0 en1_data)))            ;是不是插入“insert”对象
                (setq base_1xyh (cdr (assoc 10 en1_data)))        ;取得高程点1的xyh坐标值,后面以此做为
                (setq gc1 (cdr (cdr  base_1xyh)))                 ;取得高程点1的h值列表,做为新插入的”7023“的DH值列表               
                (command "erase" en1 "")                          ;删除高程点1的对象
                
        (setq en2 (entsel "Select a point:"))     
                       
                (setq en2_data(entget(car en2)))
                (setq en2_type(cdr(assoc 0 en2_data)))
                (setq base_2xyh (cdr (assoc 10 en2_data)))         ;取得高程点2的xyh坐标值,后面以此做为         
                (setq gc2 (cdr (cdr  base_2xyh)))                  ;取得高程点2的h值列表,做为新插入的”7023“的GC值列表        
                (command "erase" en2 "")                           ;删除高程点2的对象
               
                (setq GC1 (nth  0  gc1 ))                          ;从列表中取出高程值
                (setq GC2 (nth  0  gc2 ))
               
                (setq GC1 (rtos GC1 2 2))                          ;解决AutoLisp实数的有效位数最多为16位,所以需要
                (setq GC2 (rtos GC2 2 2))                          ;对实数精度进行控制
                
                (setq Xscale (cdr (assoc 41 en1_data)))            ;读取图形X轴方向比列值
               
               
               
                      (command  "-LAYER"  "S"  ""  ""  "insert" "C:\\program Files\\ppsp\\symbols\\7023.dwg"  base_1xyh  Xscale  ""  ""    "-"  GC1  GC2 )  
                            ;新插入"7023"的高程值对象,Xscale是比列因子是由图形对象的X轴比例尺决定的,而非图形比列尺。。   
                            ;Xscale  ""  "" 分别为Xscale,Yscale,Zscale 。
                      ;"-" 为标记符号                                       
)
               
(prompt "********<<命令12:坎子高程编辑>>**********")
(prin1)




        希望各位能指点指点!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 15:46 , Processed in 0.205093 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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