找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1025|回复: 4

[求助] 求帮忙修改两根等高线内插高点使之能连续使用

[复制链接]
发表于 2020-7-23 22:48:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 3114637 于 2020-8-4 21:16 编辑

(defun c:nc(/ p0 p1 p2 h h0 h1 h2 len ang dat strl min sec sec1 num num1 ss)
       (SETVAR "OSMODE" 512)
       (while (SETQ P0 (GETPOINT "\n指定第一条等高线:    "))
           (WHILE (not (SETQ P2 (GETPOINT "\n指定相邻的另一条等高线:    "))))
           (setq h1 (nth 2 p0) h2 (nth 2 p2) p0 (list (nth 0 p0) (nth 1 p0)) p2 (list (nth 0 p2) (nth 1 p2)))
           (setq len (distance p0 p2) ang (angle p0 p2))
           (if (and (/= h1 h2) (/= h1 0.0) (/= h2 0.0)) (progn
               (SETQ DAT (rtos (* (GETVAR "CDATE") 100000000) 2 8))
               (setq strl (strlen dat))
               (setq min (atoi (substr dat (- strl 5) 2)))
               (if (= min 0) (setq min 0.5))
               (setq sec (atoi (substr dat (- strl 3) 2)))
               (if (= sec 0) (setq sec 0.5))
               (setq sec1 (atoi (substr dat (- strl 1))))
               (if (= sec1 0) (setq sec1 0.5)(setq sec1 sec1))
               (setq num1 (/ (+ PI (* sec1 min)) sec))
               (IF (< NUM1 0.1) (SETQ NUM (* NUM1 10)))
               (if (AND (> NUM1 0.1) (< num1 1)) (setq num num1))
               (if (and (> num1 1) (< num1 10)) (setq num (/ num1 10.0)))
               (if (and (> num1 10) (< num 100)) (setq num (/ num1 100.0)))
               (if (and (> num1 100) (< num 1000)) (setq num (/ num1 1000.0)))
               (if (and (> num1 1000) (< num 10000)) (setq num (/ num1 10000.0)))
               (SETQ NUM (/ (ATOI (RTOS (* NUM 1000) 2 0)) 1000.0)) ;;;随机数函数
               (setq h (+ h1 (* num (- h2 h1))))
               (setq p1 (polar p0 ang (* len num)))
               (setq p1 (list (car p1) (cadr p1) h))
               (SETQ P2 (LIST (+ (CAR P1) 1.5) (- (CADR P1) 0.5) H))
               (SETVAR "OSMODE" 0)
               (command "layer" "s" "GCD" "")
               ;(COMMAND "TEXT" "S" "HZ" P2 "2.00" "0.0" (RTOS H 2 2))
               (SETQ SS (SSGET "W" (LIST (- (CAR P1) 0.3) (- (CADR P1) 0.3))
                                   (LIST (+ (CAR P1) 0.3) (+ (CADR P1) 0.3))))
               (IF SS (COMMAND "ERASE" SS ""))
               (COMMAND "ELEV" "0.0" "1610000")
               ;(COMMAND "POINT" P1)
               (command "clayer" "gcd")
               (command "dd" "202101"  "1" p1  "")
               (setvar "osmode" 0)
           ));;;end of IF
           (princ "\n.\n.\n.")
           (if (= h1 h2) (princ "\n警告: 等高线有严重错误或选中同一条等高线!两等高线之间的高差为0!!"))
           (if (or (> (- h1 h2) 0.5) (< (- h1 h2) -0.5)) (progn(princ "\n两等高线高差太大。为")
               (princ (- h2 h1))(princ"米。内插高程正确性难以保证。")))
           (SETVAR "OSMODE" 512)
       );;;end of WHILE
    );;;end of ADD_HI子函数


选择两根相邻等高线随机加高程后  在继续选择等高线会出现函数错误中断  求修改后可以连续选择等高线添加高程点

测试附件.rar

350.94 KB, 下载次数: 2, 下载积分: D豆 -1 , 活跃度 1

等高线

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

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-7-24 13:44:48 | 显示全部楼层
求助问题,应该把你的图附上,让人家测试,几根线即可
另外,有什么错误,详细信息说明下,别人也好帮你
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 541个

财富等级: 财运亨通

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

使用道具 举报

 楼主| 发表于 2020-8-4 21:12:48 | 显示全部楼层
Lisphk 发表于 2020-7-24 13:44
求助问题,应该把你的图附上,让人家测试,几根线即可
另外,有什么错误,详细信息说明下,别人也好帮你

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

使用道具 举报

 楼主| 发表于 2020-8-4 21:16:36 | 显示全部楼层
Lisphk 发表于 2020-7-24 13:44
求助问题,应该把你的图附上,让人家测试,几根线即可
另外,有什么错误,详细信息说明下,别人也好帮你

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 15:48 , Processed in 0.417207 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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