找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5369|回复: 16

[原创]:坡度标注程序

[复制链接]
发表于 2009-6-27 09:02:46 | 显示全部楼层 |阅读模式

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

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

×
这是一个标注坡度的程序,捕捉一直线的两个端点后,即可自动标出该直线的坡度,提供给有这方面要求的朋友使用。程序中字高设为350,如不适合,可自行修改。
[PHP](defun c:nn( / a a1 d dx dy i os p1 p2 pmid str stri)
  (princ "\n欢迎使用坡度标注程序!  gysjy 2009.6.27. ")
  (command "undo" "g")
  (setq os (getvar "osmode"))
  (setvar "osmode" 1)
  (setq p1 (getpoint "\n第一点:")
        p2 (getpoint "\n第二点:" p1)
        a (angle p1 p2)         
        d (/ (distance p1 p2) 2)
        pmid (polar p1 a d)
        a (if (and (> a 1.571)(< a 4.713))(- a pi) a)
        a1 (+ 1.57 a) pmid (polar pmid a1 300)
        a (* a 57.3)
        dx (- (car p1) (car p2))
        dy (- (cadr p1) (cadr p2))
        i (if (= dx 0) 10000 (* 100 (abs (/ dy dx))))
        stri (rtos i 2 1)
        str (if (= dx 0) "垂直" (strcat "i=" stri "%"))
  )
  (setvar "osmode" os)
  (grdraw p1 p2 2)
  (command "text" "j" "m" pmid "350" a str)
  (command "undo" "e")
  (princ)
)[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-8-21 01:10:24 | 显示全部楼层
挺不错的程序,可以直接标坡度,免得去算了,省事。谢谢。另外,想问下楼主,请问这个示意的动画视频是用什么做的啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-21 08:15:50 | 显示全部楼层
动画视频用ggg.exe做。该软件可到网上下载。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-8-21 15:09:21 | 显示全部楼层
谢谢楼主,楼主,发现你的很多LISP的命令都是nn。关于这个LISP我想提点建议,就是如果能选择表示成1/N就更好了,有些时候需要用分数表示啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-21 21:43:26 | 显示全部楼层
最初由 paladi 发布
[B]谢谢楼主,楼主,发现你的很多LISP的命令都是nn。关于这个LISP我想提点建议,就是如果能选择表示成1/N就更好了,有些时候需要用分数表示啊。 [/B]

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

使用道具 举报

发表于 2009-8-22 00:42:37 | 显示全部楼层
哦,那这成了两个LISP了,能否在原LISP中加一个选择啊,就是可选百分比,也可选分数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-22 09:10:42 | 显示全部楼层
最初由 paladi 发布
[B]哦,那这成了两个LISP了,能否在原LISP中加一个选择啊,就是可选百分比,也可选分数。 [/B]

[PHP]
(defun c:nn( / a a1 d dx dy i os p1 p2 pmid str stri)
  (princ "\n欢迎使用坡度标注程序!  gysjy 2009.6.27. ")
  (command "undo" "g")
  (setq os (getvar "osmode"))
  (setvar "osmode" 1)
  (setq p (getpoint "\n标注为分数(鼠标左键)/百分比<回车>"))
  (while (setq p1 (getpoint "\n第一点:"))
  (setq p2 (getpoint "\n第二点:" p1)
        a (angle p1 p2)         
        d (/ (distance p1 p2) 2)
        pmid (polar p1 a d)
        a (if (and (> a 1.571)(< a 4.713))(- a pi) a)
        a1 (+ 1.57 a) pmid (polar pmid a1 300)
        a (* a 57.3)
        dx (- (car p1) (car p2))
        dy (- (cadr p1) (cadr p2))
  )
  (if p
    (setq i (if (= dy 0) 10000 (abs (/ dx dy)))
          stri (rtos i 2 1)
          str (if (= dy 0) "水平" (strcat "1/" stri))
          str (if (= dx 0) "垂直" str)
    )
    (setq i (if (= dx 0) 10000 (* 100 (abs (/ dy dx))))
          stri (rtos i 2 1)
          str (if (= dx 0) "垂直" (strcat "i=" stri "%"))
    )
  )
  (setvar "osmode" 0)
  (grdraw p1 p2 2)
  (command "text" "j" "m" pmid "350" a str)
  (setvar "osmode" 1)
  )
  (setvar "osmode" os)
  (command "undo" "e")
  (princ)
)
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2009-8-22 14:26:37 | 显示全部楼层
哦,这下好用了,在设坡道的过程中可以方便地知道大概可以做的坡度了,谢谢楼主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2018-12-22 18:43:04 | 显示全部楼层
想问问楼主,我用你的程序,出现了跟自己换算不一样的数值,怎么破,还是我用的不对?
1545309075(1).png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11个

财富等级: 恭喜发财

发表于 2019-1-10 10:13:00 | 显示全部楼层
谢谢楼主,请问这个插件可以修改成能设置标注精度的版本吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 08:35 , Processed in 0.363067 second(s), 71 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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