找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6610|回复: 24

[求助] getdist求两点距离?

[复制链接]
发表于 2016-11-28 16:23:24 | 显示全部楼层 |阅读模式

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

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

×
(setq lj (getdist "\n距离:"))程序运行到这一行时,允许用户在屏蔽上点两点

想求改两点的X轴距离 及 y轴距离
(setq xzjl (car  ??   ??))
(setq yzjl (cadr  ??   ??))

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

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-11-29 01:18:41 | 显示全部楼层
你确认你输对了? 我测试了,没问题

命令: (setq pa (getpoint "\n第一点:"))

第一点:(746.027 825.621 0.0)

命令: 'VLIDE
命令:
命令: (setq pb (getpoint "\n第二点:"))

第二点:(1341.78 1170.8 0.0)

命令: (setq bb (mapcar '- pa pb))
(-595.751 -345.181 0.0)
命令:
命令: (setq bjl (fix (cadr bb)))
-345
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-11-28 16:43:35 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2016-11-28 16:50 编辑

getdist改用(getcorner pt [msg]) 吧,行不?
如果只想出现一根虚线
Command: (setq p1(getpoint))
(-1321.2 3027.16 0.0)
Command: (setq p2 (getpoint p1) )

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-11-28 20:30:40 | 显示全部楼层
楼主是想GETDIST得到距离后,求相对起点的 X 增量 和 Y增量吗?

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

使用道具 举报

 楼主| 发表于 2016-11-28 23:05:36 | 显示全部楼层

多谢Lisphk

请问(setq lj (getdist "\n距离:"))这一行过后,如何派生出(mapcar  '- p2 p1) 的 p2 p1 ?

(mapcar  是含X Y两个值的吧,如果只想用到X轴距离,直接这样(setq x (car (mapcar  '- p2 p1)))行不行?

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

使用道具 举报

 楼主| 发表于 2016-11-28 23:07:55 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-11-28 23:45:07 | 显示全部楼层

你为什么不用 getpoint 更直接呢?

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

使用道具 举报

 楼主| 发表于 2016-11-28 23:45:28 | 显示全部楼层
(setq??(getdist "\n距离:"))
两行之间不知怎么接
(setq jl (car (mapcar  '- p2 p1)));中的 jl 是上面那个getdist两点的距离
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-28 23:51:53 | 显示全部楼层

用过,,
(setq pa (getpoint "\n第一点:"))
(setq pb (getpoint "\n第二点:"))
(setq bb (mapcar '- pa pb))
(setq bjl (fix (cadr bb)))       ;;; pb 点到 pa 点 y 轴距离  整数

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2016-11-29 22:58:42 | 显示全部楼层



  1. (defun c:xxx( / pa pb bb )
  2.   (setq pa (getpoint "\n第一点:"))
  3. (setq pb (getpoint pa"\n第二点:"))
  4. (setq bb (mapcar '- pa pb))
  5. (setq bjl (fix (cadr bb)))       ;;; pb 点到 pa 点 y 轴距离  整数
  6. (princ "\ny 轴距离:")
  7. (princ bjl)
  8. (princ)
  9. )




直接打命令xxx

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

使用道具 举报

 楼主| 发表于 2016-11-30 15:54:48 | 显示全部楼层

你好,想请你帮我看看这段代码,请问它错在哪里?
(defun c:xxx( / pa pb bb )
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq pa (getpoint "\n第一点:"))
(setq pb (getpoint pa "\n第二点:"))
(setq bb (mapcar '- pa pb))
(setq byjl (fix (cadr bb)))
(setq bxjl (fix (car bb)))
(setq pt1 (polar pta (* pi 1.5) byjl))
(setq pt2 (polar pt1 (* pi 0.5) bxjl))
(setvar "osmode" "0")
(command "pline" pta pt1 pt2 "")
(setvar "osmode" os)
)


命令: XXX
第一点:
第二点:; 错误: 参数类型错误: 二维/三维点: nil


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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-11-30 16:03:32 | 显示全部楼层
(defun c:xxx ( / pa pb bb )

这样写,变量 pa pb bb 不会影响到这个函数外面,除了这个函数,变量就不存在了。  你不会因为程序里面的变量和外面的变量重名,而改写了函数外面的同名变量的值。

(setq a 1)
(defun c:tt()
   (setq a 2)
)

这样写,你执行完tt命令后,a的值就变成2了,

如果这样写
(setq a 1)
(defun c:tt( / a)
  (setq a 2)
)

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-11-30 16:06:30 | 显示全部楼层

(setq pt1 (polar pta (* pi 1.5) byjl))

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

使用道具 举报

 楼主| 发表于 2016-11-30 16:29:21 | 显示全部楼层

非常感谢,不知这样理解对不对?( / pa pb bb )这样写,运行(defun c:xxx  程序时,不会受到该程序之外,别的程序上同名变量,如pa 或 pb ,,赋值的影响?

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-11-30 16:31:22 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 14:21 , Processed in 0.231458 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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