尘缘一生 发表于 2020-3-21 00:58:48


[*];;;;取中点函数---enam 实体名-----------------------(一级)------------------------------
[*](defun e-mid (enam / ent typ obj cen_po pt pt10 pt13 pt14 pt15 dis ang)
[*](setq ent (entget enam))
[*](setq typ (dxf1 ent 0))
[*](if (= typ "LINE")
[*]    (setq pt (yy:mid (dxf1 ent 10) (dxf1 ent 11)))
[*])
[*](if (or (= typ "ARC") (= typ "SPLINE") (and (or (= typ "LWPOLYLINE") (= typ "POLYLINE")) (= (fy-recP enam) nil))) ;;;矩形非闭合多义线
[*]    (progn
[*]      (setq obj (en2obj enam))
[*]      (setq dis (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)))
[*]      (setq pt (vlax-curve-getPointAtDist obj (* dis 0.5))) ;取得中点
[*]    )
[*])
[*](if (= typ "CIRCLE")
[*]    (setq pt (dxf1 ent 10))
[*])
[*](if (= typ "DIMENSION")
[*]    (progn
[*]      (if (= (dxf1 ent 70) 37) ;;圆弧标注
[*]      (progn
[*]          (setq pt11 (dxf1 ent 11))
[*]          (setq pt15 (dxf1 ent 15))
[*]          (setq ang (angle pt11 pt15))
[*]          (setq pt (polar pt11 ang (* (getvar "dimscale") (+ (* (getvar "dimtxt") 0.5) (getvar "dimgap")))))
[*]      )
[*]      )
[*]      (if (= (dxf1 ent 70) 34) ;;角度标注
[*]      (progn
[*]          (setq pt11 (dxf1 ent 11))
[*]          (setq pt13 (dxf1 ent 13))
[*]          (setq pt15 (dxf1 ent 15))
[*]          (setq ang (angle pt11 (yy:mid pt13 pt15)))
[*]          (setq pt (polar pt11 ang (* (getvar "dimscale") (+ (* (getvar "dimtxt") 0.5) (getvar "dimgap")))))
[*]      )
[*]      )
[*]      (if (vl-position "AcDbAlignedDimension" (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 100)) ent))) ;;;如果对齐32 线性 33 标注
[*]      (progn
[*]          (setq pt11 (dxf1 ent 10))
[*]          (setq pt13 (dxf1 ent 13))
[*]          (setq pt14 (dxf1 ent 14))
[*]          (setq dis (distance pt14 pt13))
[*]          (setq ang (angle pt14 pt13))
[*]          (setq pt (polar pt10 ang (* dis 0.5)))
[*]      )
[*]      )
[*]      (if (null pt)
[*]      (setq pt (dxf1 ent 11));;;标注文字中心,近似中点
[*]      )
[*]    )
[*])
[*](if (or (= typ "TEXT") (= typ "MTEXT"))
[*]    (setq pt (yy:mid (car (txbox enam nil)) (caddr (txbox enam nil))))
[*])
[*](if (null pt)
[*]    (setq cen_po (get-box (SL:PickSet-fromList (list enam)))
[*]      pt (yy:mid (car cen_po) (cadr cen_po))
[*]    )
[*])
[*]pt
[*])
[*];;----------------------------------------------------------------------------------------------

13916020908 发表于 2020-3-21 08:02:07

依然小小鸟 发表于 2020-3-20 13:34
希望能实现这样的功能

这样的效果能实现吗

wudechao 发表于 2020-3-21 09:59:58

尘缘一生 发表于 2020-3-21 00:58
[*];;;;取中点函数---enam 实体名-----------------------(一级)------------------------------
[*]( ...

缺了几个自定义函数

无名之辈 发表于 2020-3-25 17:24:32

学习一下!

love_cq 发表于 2020-4-22 10:27:00

依然小小鸟 发表于 2020-3-20 13:34
希望能实现这样的功能

这个好!有了吗,发一个学习下。

love_cq 发表于 2020-4-22 10:30:12

Gu_xl 发表于 2020-3-19 11:47


D:\autolisp\【czj】个人函数库\【20200420】批量自动修改梁宽和梁偏位范例图及需求描述\柱居中对齐

love_cq 发表于 2020-4-22 10:35:18

Gu_xl 发表于 2020-3-19 11:47


G版您好,下图所示的这种批量对齐,怎么实现呢。感觉跟您这个很类似的一个思路。
柱居中对齐后的效果

柱居中对齐后的效果


845245015 发表于 2020-4-22 12:09:59

持续追踪此类问题

cqu20104225 发表于 2020-4-22 23:12:29

持续追踪,G版出手

yangchao2005090 发表于 2020-6-9 23:34:36

Gu_xl 发表于 2020-3-19 11:47


请问可以实现实体表格居中吗
页: 1 [2] 3
查看完整版本: 物件居中问题