请问怎样求文字基点到最近平行线距离
本帖最后由 CAD新军 于 2019-4-16 00:22 编辑如图所示,都要求得道绿色线段平行段到abce字符串的距离(白色的是干扰线段)。第一种情况pl线距离(有一段平行,另外一段不一定垂直),第二个虽然红色线有一段更接近,但不是平行段。满足这两种情况就够了,求指导
有高手解答一下吗? ;;比较麻烦
;;文字(单行)基点组码 10 ,旋转角度组码 50
;;线就麻烦了,pl线为例,(可能需要)遍历节点,两相邻节点求角度
;;认为是平行的,求距离,最后得到最近距离 satan421 发表于 2019-4-16 09:18
;;比较麻烦
;;文字(单行)基点组码 10 ,旋转角度组码 50
;;线就麻烦了,pl线为例,(可能需要)遍历节 ...
我觉得这样的也没有问题,只是我不会怎么组织pl线的节点,或者说有没有现成的代码可以获得pl线的各个节点的.pl线的格分段是什么类型能不能能获得?(是直线还是弧线)
;; 伪源码
本帖最后由 1291500406 于 2019-4-17 11:35 编辑
文字组码
组码 说明
100 子类标记 (AcDbText)
39 厚度(可选;默认值 = 0)
10 第一对齐点(在 OCS 中)
DXF:X 值;APP:三维点
20, 30 DXF:第一对齐点的 Y 值和 Z 值(在 OCS 中)
40 文字高度
1 默认值(字符串本身)
50 文字旋转角度(可选;默认值 = 0)
41 X 相对缩放比例宽度(可选;默认值 = 1)
使用拟合类型的文字时,该值也将进行调整。
51 倾斜角(可选;默认值 = 0)
7 文字样式名(可选;默认值 = 标准)
71 文字生成标志(可选;默认值 = 0):
2 = 文字反向(在 X 轴方向镜像)
4 = 文字倒置(在 Y 轴方向镜像)
72 文字水平对正类型(可选;默认值 = 0)整数代码(非按位编码)
0 = 左对正;1 = 居中对正;2 = 右对正
3 = 对齐(如果垂直对齐 = 0)
4 = 中间(如果垂直对齐 = 0)
5 = 拟合(如果垂直对齐 = 0)
详细信息请参见组 72 和 73 整数代码表
11 第二对齐点(在 OCS 中)(可选)
DXF:X 值;APP:三维点
只有当 72 或 73 组的值非零时,该值才有意义(如果对正不是基线对正/左对正)
21, 31 DXF:第二对齐点的 Y 值和 Z 值(在 OCS 中)(可选)
210 拉伸方向(可选;默认值 = 0, 0, 1)
DXF:X 值;APP:三维矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可选)
100 子类标记 (AcDbText)
73 文字垂直对正类型(可选;默认值 = 0):整数代码(非按位编码):
0 = 基线对正;1 = 底端对正;2 = 居中对正;3 = 顶端对正
详细信息请参见组 72 和 73 整数代码表
;;;获取文字基点坐标
(cdr (assoc 10 (entget (car (entsel "选择文字")))))
;;;获取文字角度
(cdr (assoc 50 (entget (car (entsel "选择文字")))))
;;;获取多段线所有端点坐标
(defun c:bb1 (/ en ent ptlst) (setq en(car (entsel)) ent (entget en '("*")) )(setq ptlst (ss-asssoc 10 ent))(princ ptlst)(princ) )
(defun ss-asssoc (a lst / b lst2)(while (setq b (assoc a lst))(setq lst(cdr (member b lst)) lst2 (cons (cdr b) lst2)))(reverse lst2))
;;;获取多段线两点坐标
(defun test (pline point / pp)
(setq point (vlax-curve-getClosestPointTo pline point))(setq pp (fix (vlax-curve-getParamAtPoint pline point)))
(list (vlax-curve-getPointAtParam pline pp) (vlax-curve-getPointAtParam pline (1+ pp))))
;;(apply 'test (entsel "选择线"))
;;;文字与线最近点连线
(defun c:bb()(setq LINE (car(entsel"选择线")) PNT(cdr (assoc 10 (entget (car (entsel "选择文字"))))))
(command "_.LINE" "_NON" PNT "_NON" (vlax-curve-getClosestPointTo LINE PNT T) "")(princ))
两点坐标算角度 文字的角度 相等连线
1291500406 发表于 2019-4-16 23:11
;;;获取文字基点坐标
(cdr (assoc 10 (entget (car (entsel "选择文字")))))
...
你好,请问怎么获取距一个点最近的文字的字符 1291500406 发表于 2019-4-16 23:11
;;;获取文字基点坐标
(cdr (assoc 10 (entget (car (entsel "选择文字")))))
...
你好,请问怎么获取距一个点最近的文字的字符
页:
[1]