明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 546|回复: 9

[提问] 想简化输入,,,没成功

[复制链接]
发表于 2016-10-12 22:04 | 显示全部楼层 |阅读模式
(setq o(getpoint "\n插入点:"))
(setq CD(getdist "\n长度<50>:"))
(if (= CD nil) (setq CD 50))
(setq ang1(getangle "\n旋转角度<0>:"))
(if (= ang1 nil) (setq ang1 0))
(setq os (getvar "osmode"))
(command "osmode" 0)
(setq ang(/ (* 180 ang1) pi))

想简化成这样:

(setq o(getpoint "\n插入点:"))
(setq CD(getdist o "\n长度:")) ;长度 CD 为 oo点到CD点的距离,貌似没成功,CAD报:  长度:; 错误: 参数类型错误: 二维/三维点: 361.536

(setq ang1 (angle o CD)) ;想将角度 ang1 定义为(angle o CD) 即o点和CD点确定角度

(setq os (getvar "osmode"))
(command "osmode" 0)
(setq ang(/ (* 180 ang1) pi));;;;;;;;;;;;;;;;;;;;; ang1 变 ang


后面还有这些  
(command "ucs" "o" o)
(command "ucs" "z" ang)


  (command "ucs" "z" (- 0 ang))
  (command "ucs" "w")

发表于 2016-10-13 00:28 | 显示全部楼层
CD是一个长度值,能ANGLE么?
另看不懂您想达到什么效果。。
(command "ucs" "o" o)
O是一个点,能这样UCS的么?
发表于 2016-10-13 09:23 | 显示全部楼层
可以用grread函数实现
发表于 2016-10-13 11:10 | 显示全部楼层
(setq o(getpoint "\n插入点:"))
(setq CD(getdist o "\n长度:")) ;长度 CD 为 oo点到CD点的距离,貌似没成功,CAD报:  长度:; 错误: 参数类型错误: 二维/三维点: 361.536

这个可以用啊

(setq ang1 (angle o CD)) ;想将角度 ang1 定义为(angle o CD) 即o点和CD点确定角度

这个CD不是点啊,你不是上一句定义了距离么?
 楼主| 发表于 2016-10-13 14:32 | 显示全部楼层
evayleung 发表于 2016-10-13 00:28
CD是一个长度值,能ANGLE么?
另看不懂您想达到什么效果。。
(command "ucs" "o" o)

谢谢回复。
是一个画螺栓的程序。
我是想省略长度与角度的输入,以插入o点和 CD(getdist o点,定义长度和角度,因为两个点已然有一个角度属性。
程序是别人写的,我是菜鸟都还算不上的新手,其中原理,也是云里雾里,一知半解
(command "ucs" "o" o)是不是用户定义坐标系的那个o  ?
此外还想请教(setq ang(/ (* 180 ang1) pi)) ang1乘于180再除3.14是什么算术原理?
我曾尝试删掉ang1的输入,直接在(setq ang(/ (* 180 ang1) pi)) 里面改成(setq ang(/ (* 180360) pi)) ,画出来的螺丝永远指向2点钟那个45度角,不知为什么
 楼主| 发表于 2016-10-13 14:42 | 显示全部楼层
Sylvanas 发表于 2016-10-13 11:10
(setq o(getpoint "\n插入点:"))
(setq CD(getdist o "\n长度:")) ;长度 CD 为 oo点到CD点的距离,貌似没 ...

我是想这样CD(getdist o 定义CD的长度值,不知正确不?

另外,还这样试过
(setq o(getpoint "\n插入点:"))
(setq oo(getdist o "\n长度:"))

(setq CD (polar o oo)) ;定义长度值
(setq ang1 (angle o oo)) ;定义角度值
也没成
发表于 2016-10-13 15:09 | 显示全部楼层
皇上快溜 发表于 2016-10-13 14:42
我是想这样CD(getdist o 定义CD的长度值,不知正确不?

另外,还这样试过

(setq o(getpoint "\n插入点:"))
(setq oo(getdist o "\n长度:"))

我试了下,可以用的啊,包括你原先那个写法,都可以

(setq CD (polar o oo)) ;定义长度值

至于这个。。。建议去看下polar用法
 楼主| 发表于 2016-10-13 15:26 | 显示全部楼层
Sylvanas 发表于 2016-10-13 15:09
(setq o(getpoint "\n插入点:"))
(setq oo(getdist o "\n长度:"))

对的,单改这句(setq oo(getdist o "\n长度:"))
角度部分维持(setq ang1(getangle "\n旋转角度<0>:"))不变,
                    (if (= ang1 nil) (setq ang1 0))

可以实现两点定长度,此前急糙,一下改了两部分,,,

现在想用o点和oo点定义角度(setq ang1(angle o oo))没成。

cad报:
螺丝规格<8>:
插入点:
长度:; 错误: 参数类型错误: 二维/三维点: 40.5724

请问(setq ang1(angle o oo))怎么改呀?
发表于 2016-10-14 13:27 | 显示全部楼层
皇上快溜 发表于 2016-10-13 15:26
对的,单改这句(setq oo(getdist o "\n长度:"))
角度部分维持(setq ang1(getangle "\n旋转角度:"))不变 ...

angle参数要求是点啊,你的oo是长度当然不行咯
 楼主| 发表于 2016-10-14 15:24 | 显示全部楼层
Sylvanas 发表于 2016-10-14 13:27
angle参数要求是点啊,你的oo是长度当然不行咯

请问(setq ang1(?? o oo))怎样实现将两点定义成角度 ang1 ?

即两点输入长度的同时把(setq ang1(getangle "\n旋转角度:"))需要的数值,也一并给输入了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 18:10 , Processed in 0.345246 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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