明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 461045462

等高线之间标注高程值

  [复制链接]
发表于 2013-6-21 16:12:19 | 显示全部楼层
;;内插高程
(defun c:zgx()
(bl_c)
(co_lt)
(setq osvar (getvar "osmode"))
(cond ((= pz nil) (setvar "osmode" 512))
      ((= pz 1) (setvar "osmode" 8))
      ((= pz 2) (setvar "osmode" 4))
);cond
(initget 128)
(setq p1 (getpoint "\nN 捕捉模式/<选择一条等高线>: "))(PRINT)
(while (and (/= p1 nil) (/= (type (list 0 0)) (type p1)))
(if (or (= p1 "n") (= p1 "N")) (setq pz (getint "1 节点/2 圆心/<最近点>:")))
(cond ((= pz 1) (setvar "osmode" 8))
      ((= pz 2) (setvar "osmode" 4))
      ((= pz nil) (setvar "osmode" 512))
);cod
(initget 128)
(setq p1 (getpoint "\nN 捕捉模式/<选择一条等高线>: "))(PRINT)
);while
(setq p2 (getpoint "\n选择另一条等高线: "))(PRINT)
(setvar "osmode" 0)
(setq p3 (getpoint "\n选择选择高程注记点: "))(PRINT)
(setq h1 (caddr p1))
(setq h2 (caddr p2))
(setq d (distance (list (car p1) (cadr p1)) (list (car p2) (cadr p2))))
(setq d1 (distance (list (car p1) (cadr p1)) (list (car p3) (cadr p3))))
(setq h (- h2 h1))
(setq h (* h d1))
(setq h (/ h d))
(setq h (+ h1 h))
(setq p3 (list (car p3) (cadr p3) h))
(setq h (rtos h 2 1))
(if (tblsearch "layer" "gcd")
(setvar "clayer" "GCD")
(command "layer" "m" "GCD" "c" 1 "" "")
);if
(command "insert" "gc200" p3 "xyz" (/ blc 1000.0) (/ blc 1000.0) (/ blc 1000.0) 0)
(setq ent1 (entlast))
(setq ent (entget ent1))
(b_m "202101")

(command "text" (list (+ (car p3) 2.2) (- (cadr p3) 2) (caddr p3)) (* 2 (/ blc 1000.0)) "0"  h)
(setq ent2 (entlast))
(setq ent (entget ent2))
(b_m "202111")
(command "RESUMEGCD" ent1 ent2 "")
(setvar "clayer" "0")
(setvar "osmode" osvar)
(princ)
);defun
;;------------------------------------------------------------------------------------
;;比例尺函数
(defun bl_c()
(if (<= (setq blc (getvar "userr1")) 0)
(progn
(setq blc (getint"\n图形比例尺1:<500>:"))
(if (= blc nil) (setq blc 500.0) (setq blc (* 1.0 blc)))
(setvar "userr1" blc )
(setvar "ltscale" (/ blc 1000.0))
);progn
);if
);defun
;;;-------------------------------------------------------------------
;颜色线型设置函数
(defun co_lt()
;;关闭编组选择
(if (/= (getvar "PICKSTYLE") 0) (setvar "PICKSTYLE" 0))
;;设定新对象的颜色为缺省颜色
(if (/= (getvar "cecolor") "BYLAYER") (setvar "cecolor" "BYLAYER"))
;;设定新对象的线型为连续
(if (/= (getvar "celtype") "CONTINUOUS") (setvar "celtype" "CONTINUOUS"))
);defun
;;-----------------------------------------------------------------------------
;;设置编码函数
(defun b_m(bm)
(setq app_x
            (list
                 (list -3
                       (list "SOUTH"
                             (cons 1000 bm)
                        );list
                  );list
             );list
);setq
(setq ent (append ent app_x))
(entmod ent)
);defun
 楼主| 发表于 2013-6-22 07:05:09 | 显示全部楼层
陈亚娣 发表于 2013-6-21 16:12
;;内插高程
(defun c:zgx()
(bl_c)

谢谢楼上的关注!
先收藏了,等会试试,学习学习。
祝周末快乐!
谢谢!
发表于 2013-6-22 10:39:56 | 显示全部楼层
本帖最后由 清风明月名字 于 2013-6-22 10:58 编辑

004的代码,建立了GCD图层后,可以计算得出结果,但结果是错误的,有严重误差,似乎是没有将过程纯化为平面问题,而在三维立体与平面之间摇摆不写,造成计算过程有误。最好是将数值转化为XY平面中的问题,再来算高程,公式就简单化了,也不至于出错
发表于 2013-6-22 12:14:55 | 显示全部楼层
看能否达你所要:
南方cass两种情况加高程点--源码,运行视屏
http://bbs.mjtd.com/forum.php?mo ... &fromuid=351467
 楼主| 发表于 2013-6-22 17:50:22 | 显示全部楼层
soly2006 发表于 2013-6-22 12:14
看能否达你所要:
南方cass两种情况加高程点--源码,运行视屏
http://bbs.mjtd.com/forum.php?mod=viewth ...

谢谢楼上的关注!
我去看看
谢谢!
周末愉快
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-30 15:13 , Processed in 0.145735 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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