在CAD定位的过程中我们可以利用对象捕捉在图中获取已有图形的一些特征点,例如端点、中点、交点、圆心等,有时我们需要让一个点的X坐标跟A点相同,但Y坐标于B点相同,如下图中的圆心位置分别取了横竖两条直线的中点。其实在CAD中要完成这样的 *** 作不止一种方法,比如我们可以用对象追踪和点过滤器捕捉,这两个功能都分别介绍过,下面只是结合下面的实例简单介绍一下。
一、对象追踪
1、首先确认打开了中点和交点捕捉方式,确认底部状态中的对象追踪按钮被按下,如下图所示。
2、输入 C回车 ,执行 画圆命令 ,将光标移动到侧面直线的中点处, 出现中点捕捉标记时横向移动光标 ,如下图所示。
3、我们可以看到在中点处出现了一个十字标记,同时沿中点出现了一条虚线,这就是从捕捉点延伸出来的极轴。 将光标移动到顶部直线的中点附近, 当出现中点捕捉标记的时候向下移动,如下图所示。
4、从这个中点也会延伸出一条极轴,如果仔细观察,会发现之前捕捉的侧边中点处还有一个 小的十字 。继续向下移动光标,直到两条极轴同时出现,如下图所示。
5、在两条极轴的交点处我们可看到 交点的标记 。单击,即可确定圆心位置 ,输入圆的半径, 就可以完成绘制。
二、点过滤器
1、在上面提供的经验引用中已经有详细的 *** 作步骤,这里就简单的讲一下。输入 C回车 ,执行画圆的命令, 输入x ,捕捉顶部直线的中点,如下图所示。
2、在提示(需YZ)时 捕捉侧边的中点,即可完成圆心的定位 ,如下图所示。
小结:
当然还有其他的办法,上面是两种相对简单的方法,这两种方法各有优劣势。对象追踪无需输入任何参数,但 *** 作起来稍微麻烦一点,需要比较拖动光标到比较准确的位置。点过滤器需要多输入一个x或y,但定位起来稍微简单一点。在实际 *** 作中用哪个功能取决于个人的习惯和喜好。
该程序主要用于CAD点(point)三维坐标提取,并将数据输出为CASS软件中使用的数据格式
;输出格式: 点号,,测量Y值,测量X值,测量Z值 例:1,,1003244,1232,433,25
;2010-05-17 罗泽钢 中国葛洲坝集团基础工程有限公司
;命令:plzbsc
(defun c:plzbsc()
(princ "\n选择所需输出的点(point):")
(setq ss (ssget ));;选取坐标点
(setq n (sslength ss ));计算坐标点数量
(setq ff (open (getfiled "文件保存为" "f:/" "dat" 1) "w"));保存路径
(setq i 0)
(repeat n
(setq spt (ssname ss i ))
(setq ept (entget spt))
(if (= (cdr (assoc 0 ept)) "POINT")
(progn
(setq lxyz (cdr (assoc 10 ept)))
(setq sx (rtos (nth 1 lxyz)));将坐标值实数转换成字符
(setq sy (rtos (nth 0 lxyz)))
(setq sz (rtos (nth 2 lxyz)))
(setq i1 (+ i 1));计算点序号
(setq sn (rtos i1 2 0));将序号实数转换成字符
(setq sxyz (strcat sn",," sy "," sx "," sz))
(write-line sxyz ff)
)
)
(setq i (+ i 1))
);repeat
)
(prompt "只适合point点 << 命令:plzbsc >> 输出格式(点号,, Y,X,Z)")
(prin1)
原文地址:
>
先取得多段线上的点参数;
vlax-curve-getDistAtParam函数求得到起点的距离。
以autolisp为例:
(defun C:tes ();例(setq ent (car (entsel "\n请选择曲线")))
(setq p1 (getpoint "\n请选择曲线上一点"))
(w190330 ent p1);多段线任意点到起点的距离
)
(defun w190330 (ent p1 / d1 d2 ent n p1 p2)
(setq p1 (vlax-curve-getclosestpointto ent p1));最近点
(if (setq n (vlax-curve-getParamAtPoint ent p1));提取参数
(vlax-curve-getDistAtParam ent n)
(progn;如果没有办法取得参数,就逼近法计算
(setq p2 (vlax-curve-getStartPoint ent))
(setq d1 (distance p1 p2) p2 (vlax-curve-getPointAtDist ent d1))
(while (> (setq d2 (distance p1 p2)) 000001)
(setq d1 (+ d1 d2) p2 (vlax-curve-getPointAtDist ent d1))
);while
d1
)
)
)函数w190330可以直接得到曲线上任意点到起点的距离,试试VBA调用这个函数。
以上就是关于Auto CAD定位点时如何取两个点的XY轴坐标全部的内容,包括:Auto CAD定位点时如何取两个点的XY轴坐标、CAD如何批量提取点坐标、CAD VBA 获取多段线任意一点到起点的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)