psbs-shj 发表于 2008-3-25 15:40

请教如何有表达式捕捉角度

我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白:L

hebei 发表于 2008-3-26 07:45

输入@100<80,@100是长度<80是角度,右手方向为0度。

psbs-shj 发表于 2008-3-26 08:39

老兄我不是要的这个,要的是捕捉角度:Q
是这样的:
命令:L
LINE指定第一点:
指定下一点或[放弃(U)]:‘cal
>>>>表达式:[@(dee*3/7<ang(这是我要捕捉的是另外的一个已知角,不会弄呀!总是捕捉不到,提示错误)]
不知道明白我的意思没有,请教了

babylalaji 发表于 2008-3-26 08:44

不明白‘cal这是什么命令

jana1986 发表于 2008-3-26 09:01

刚学CAD不久,第一次知道有 表达式,希望高手能出来给我们解答一下,

xuehong51 发表于 2008-3-26 09:55

ang函数要带参数,不知楼主“另外的一个已知角”是那种形式
一下摘自cad"help"

ang(v)
确定 X 轴和矢量 v 之间的角度。 矢量 v 被认为是二维的,且投影在当前 UCS 的 XY 平面上。

ang(p1,p2)
确定 X 轴和直线(通过 p1、p2,方向为从 p1 到 p2)的夹角。 该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。

ang(apex,p1,p2)
确定直线 (apex,p1) 和 (apex,p2) 的夹角。 该点被认为是二维的,且投影在当前 UCS 的 XY 平面上。

ang(apex,p1,p2,p)
确定直线 (apex,p1) 和 (apex,p2) 的夹角。 直线被认为是三维的。 最后一个参数(点 p)用来定义角度的方向。 此角度以顶点到点 p 的直线为轴按逆时针方向测量。

[ 本帖最后由 xuehong51 于 2008-3-26 10:15 编辑 ]

truezx 发表于 2008-3-26 10:04

试验了大半天,加上[ ]以后表达式为[@dee*2<ang(end,end,end)]
虽然可以画出来,但是长度和角度都不对,跟楼主上一个帖子的情况一样,每次做都是不同的长度和角度,呵呵
要等待高手了。


变通的作法,先画长度

命令: _line 指定第一点:
指定下一点或 [放弃(U)]: 'cal
>>>> 表达式: [@dee*2<0]
>>>> 选择一个端点给 DEE:
>>>> 选择下一个端点给 DEE:
正在恢复执行 LINE 命令。


再旋转

** 旋转 **
指定旋转角度或 [基点(B)/复制(C)/放弃(U)/参照(R)/退出(X)]: 'cal
>>>> 表达式: ang(end,end,end)
>>>> 选择图元用于 END 捕捉:
>>>> 选择图元用于 END 捕捉:
>>>> 选择图元用于 END 捕捉:
正在恢复执行 GRIP_ROTATE 命令。
指定旋转角度或 [基点(B)/复制(C)/放弃(U)/参照(R)/退出(X)]: 66.6226187

[ 本帖最后由 truezx 于 2008-3-26 10:24 编辑 ]

xuehong51 发表于 2008-3-26 10:33

嘿嘿我也没试成:$

指定基点:
指定旋转角度,或 [复制(C)/参照(R)] <0>:'cal
>>>> 表达式: ang
错误:
使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)
>>>> 表达式: ang(v)
错误:
AutoLISP 变量 V 没有值
>>>> 表达式: ang()
错误:
使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)
>>>> 表达式: ang(12)
错误:
使用 ANG(v), ANG(p1,p2), ANG(apex,p1,p2), ANG(apex,p1,p2,p)

[ 本帖最后由 xuehong51 于 2008-3-26 10:37 编辑 ]

kiss军 发表于 2008-3-26 20:07

请问学长们   'CAL  是什么啊?

我是个学员   还没学多久   不知道哪个是什么意思?   可以说一下吗

kiss军 发表于 2008-3-26 20:25

哎呀 我也没试成!

我试成的和你哪个一样....晕啊  不会  学长们可以教教我们吗?

yimin0519 发表于 2008-3-26 22:01

原帖由 psbs-shj 于 2008-3-25 15:40 发表 http://www.askcad.com/bbs/images/common/back.gif
我学会了直线捕捉的表达式,输入的角度是已知的,但我现在要用角度捕捉来确定所画直线的角度,请各位老师指导指导呀,我看帮助没看明白:L
摘录一些文字,供参考,(先看一些文字,然后再看下一楼的例图):

在AutocAD中,CAL命令可以作为透明命令使用,并目将计算的结果直接作为命令的参数使用。更重要的一

点是,几何图形计算器提供了一些用于几何运算的函数,并且可以相对象捕捉结合使用,大大加强了它的

辅助绘图功能。掌握它的使用可以大大提升我们在AutoCAD中的工作效率。下面我们就通过几个典型的实

例来说明几何计算器的基本应用。

一:根据已知点计算点的距离。
要绘制一个圆,圆心相对于点(10,20,0)坐标是(30<60),半径与点(20,20,O)到点(40,40,O)的距离相同,

可以使用下面的方法绘制:
命令:
circle指定圆或[三点(3P)/两点(2P)/,相切、相切、半径(T)]:'cal
>>表达式:+
(25.0,45.9808,0)
指定圆的半径或[直径(D)]:'cal
>>表达式:dist(,)
28.2843
上而的例子中,输入“'Cal”来透明地执行cal命令,并将表达式的值作为参数提供给命令。用

来表示一个点,dist(pt1,pt2)用来计算两个点之间的距离。

二:获取拾取位置的偏移点。
只有和对象捕捉相结合,才能体现出几何计算器的强大功能,因此后面的几个实例均要和对象捕捉结合起

来完成某项任务。如果需要将拾取点右下侧的某个位置作为圆心。创建一个圆.就可以按照下面的提示进

行操作:
命令:
circl指定圆的圆心或[三点(3P/两点(2P)/相切、相切、半径(T):]'cal
>>表达式:cur+
>>输入点:拾取已知点
(109.58 471.58 0.0)
指定圆的半径或[直径(D)]<203 2338>:60
完成操作后,所得圆的圆心相对于拾取点的位置是(20+30)。

三:获得两点的中点。
要获得直线AB的中点P与圆心O之间连线的中点,就可以执行下而的操作:
命令:_point
当前点模式:PDMODE=0 PDSIzE=O O000
指定点:'cal
>>表达式:(cen+mid)/2
>>选择图元用于CEN捕捉:选择圆
>>选择图元用于MID捕捉:选择直线AB的中点P
(754.814 602.811 0.0)
其他的捕捉模式如end、int和tan等均可以在CAL函数的表达式中使用,这样就能使用各种实体特征点来获

得目标点。如果不使用几何计算,就必须创建辅助线来解决这个问题。

四:确定直线上的任意点
要获得直线的四等分点,可以使用下面的操作:
命令:
point
当前点模式:PDMODE=O PDSIZE=0 .0000
指定点’cal
>>表达式:plt(end,end,1/4)
>>选择图元用于END捕捉:拾取直线的第一点
>>选择图元用于END捕捉:拾取直线的第二点
(600.073 472.711 0.0)
上面的操作能够获得距直线第点长度为该直线总长
度1/4的一点,如果用表达式“plt(end,end,3/4)”代替“plt(end,end,1/4)则能够获得距直线第一点长

度为该直线总长度3/4的一点。
要获得直线上距一点长度为20的点,可以使用下面的操作:
命令:
point
当前点模式:PDMODE=O PDSIZE=0.0000
指定点:'cal
>>表达式:pld(end,end,20)
>>选择图元用于END捕捉:拾取直线的第一点
>>选择罔元用于END捕捉:拾取直线的第二点
(524.438 426.591 0.0)
上面的操作.无论直线是否存在,都可以执行。这里所说的直线,仅代表AutocAD根据拾取的两点所构造

的虚拟直线。
上面的表达式中两函数的含义为:
pld(p1,p2,dist):计算通过点pl和p2的直线上的一个点。
参数dist定义该点到点p1的距离。
plt(p1,p2,t):计算通过点p1和p2的直线上的一个点。参数t定义该点在直线上的以参数表示的位置。

五:确定过一点直线的垂线
要确定过某一条直线中点的垂线,可以采用下面的操作:
命令: LINE指定第一点:'cal
>>表达式:mid+10*nee
>>选择图元用于MID捕捉:拾取已知的直线
>>选择一个端点给NEE:拾取直线的第一个端点
>>选择下一个端点给NEE:拾取直线的第二个端点
(639.215 229.744 0.0)
指定下一点或[放弃(u)]:拾取直线的中点
其中,nee函数是nor(end,end)的缩写,用于确定XY平面内的单位矢量,与两个端点连线垂直。nor(p1

,p2)函数用来确定直线P1、p2(由点p1、p2所确定的直线)的二维单位法向矢量,该直线的方向为从p1指

向p2。得出的法向矢量的方向为指向原直线(p1、p2)的左边。

yimin0519 发表于 2008-3-26 22:05

在此贴附上一个含13例的图片文件,最后附上word文档的压缩包:



truezx 发表于 2008-3-26 23:29

呵呵,楼上介绍的都是分步骤作图,楼主的问题是想直接用直线命令画出角度(该角度是用cal计算出来的),但是在直线命令(@长度<角度)中无法完成,当然画好了直线,然后用旋转命令的话就可以,就象我在7楼所说的那样。

yimin0519 发表于 2008-3-27 13:09

回斑竹:
他要的就是   “但我现在要用角度捕捉来确定所画直线的角度”啊?
见精选应用7、8、9等。

渔鱼之道,与网俱送。

[ 本帖最后由 yimin0519 于 2008-3-27 13:17 编辑 ]

psbs-shj 发表于 2008-3-28 08:52

辛苦各位老师了,原来我都把那个角复制过来再旋转,再确定长度:Q
我从03年才学的CAD,完全是自学,自从发现了这个“宝贝”后我有时间就来看看,学到了好多好多,
再次感谢各位老师:victory:
我现在虽然我还是什么也不会,但已是单位里CAD的高手,高高手了:lol :lol
我把各位老师的每一种方法都先下来,然后一个个的试试;P

[ 本帖最后由 psbs-shj 于 2008-3-28 08:54 编辑 ]
页: [1] 2
查看完整版本: 请教如何有表达式捕捉角度