dingtiedt 发表于 2015-7-5 20:32:31

多重引线(mld)对齐

本帖最后由 dingtiedt 于 2015-7-5 20:32 编辑


求一个函数,第一,能使多重引线对齐时,第一条引线的角度不发生改变,第二,能调整设置水平引线之间的距离。
多重引线对齐时,水平方向上没有问题,垂直方向上对齐时,第一条引线的角度会发生改变,影响统一性

caoyin 发表于 2015-7-5 20:32:32

帮你整理几个函数,自己慢慢摸索吧

(setq OBJ (car (entsel "\n选择多重引线: "))
      OBJ (vlax-ename->vla-object OBJ))

;;获得引线的序号列表(多重引线的每个子对象都有一个序号)
(vlax-invoke OBJ 'GetLeaderLineIndexes 0)


;;一个个子引线 的顶点列表,下面第一行的0表示第一个引线的序号
(setq LST (vlax-invoke OBJ 'GetLeaderLineVertices 0))
(while LST
(setq PTLST (cons (mapcar '+ '(0 0 0)LST) PTLST )
      LSt   (cdddr LST)
)
)
;;顶点数量
(vlax-invoke OBJ 'GetVertexCount 0)
;;折线方向
(vlax-invoke OBJ 'GetDoglegDirection 0)
;;折线长度
(vla-get-DoglegLength OBJ)

易水寒08376 发表于 2015-7-5 22:41:25

学习学习

dingtiedt 发表于 2015-7-6 10:02:35

本帖最后由 dingtiedt 于 2015-7-6 10:05 编辑

cad2010中本身就有mla,多重引线对齐,提供了“平行”和“对齐”,但是操作时只能执行其中一项,要么“平行”要么“对齐”,在垂直方向对齐时就不平行了,现在就是要把这两个功能合在一起同时执行。
大师们,出手啊!

dingtiedt 发表于 2015-7-7 10:15:26

大师们,帮帮忙啊,在室内设计上还是用的很多的

dingtiedt 发表于 2015-7-8 10:52:44

我顶啊顶,我顶啊顶,路过的大师,帮帮忙啊

dingtiedt 发表于 2015-7-9 11:30:48

只能自己顶了

dingtiedt 发表于 2015-7-11 16:06:05


Select object: ((-1 . <Entity name: 7ee3d4c0>) (0 . "MULTILEADER") (330 .
<Entity name: 7ee3bcf8>) (5 . "208") (100 . "AcDbEntity") (67 . 0) (410 .
"Model") (8 . "0") (100 . "AcDbMLeader") (270 . 2) (300 . "CONTEXT_DATA{") (40
. 1.0) (10 10255.1 1470.8 0.0) (41 . 444.0) (140 . 4.0) (145 . 2.0) (174 . 1)
(175 . 1) (176 . 0) (177 . 0) (290 . 1) (304 . "adsfasdfadsf") (11 0.0 0.0 1.0)
(340 . <Entity name: 7ee3bc88>) (12 10257.1 1696.43 0.0) (13 1.0 0.0 0.0) (42 .
0.0) (43 . 0.0) (44 . 0.0) (45 . 1.0) (170 . 1) (90 . -1073741824) (171 . 1)
(172 . 5) (91 . -1073741824) (141 . 0.0) (92 . 0) (291 . 0) (292 . 0) (173 . 0)
(293 . 0) (142 . 0.0) (143 . 0.0) (294 . 0) (295 . 0) (296 . 0) (110 1266.05
-3096.2 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (297 . 0) (302 . "LEADER{")
(290 . 1) (291 . 1) (10 1266.05 1470.8 0.0) (11 1.0 0.0 0.0) (90 . 0) (40 .
8989.0) (304 . "LEADER_LINE{") (10 1266.05 -3096.2 0.0) (91 . 0) (170 . 1) (92
. -1056964608) (340 . <Entity name: 0>) (171 . -2) (40 . 0.0) (341 . <Entity
name: 0>) (93 . 0) (305 . "}") (271 . 0) (303 . "}") (272 . 9) (273 . 9) (301 .
"}") (340 . <Entity name: 7ee3d0b0>) (90 . 345280) (170 . 1) (91 . -1056964608)
(341 . <Entity name: 7ee3bca0>) (171 . -2) (290 . 1) (291 . 1) (41 . 8989.0)
(42 . 4.0) (172 . 2) (343 . <Entity name: 7ee3bc88>) (173 . 1) (95 . 1) (174 .
1) (175 . 0) (92 . -1056964608) (292 . 0) (93 . -1056964608) (10 1.0 1.0 1.0)
(43 . 0.0) (176 . 0) (293 . 0) (294 . 0) (178 . 0) (179 . 1) (45 . 1.0) (271 .
0) (272 . 9) (273 . 9))
其中有三个(40 . _),第二个是改变基线长度,现在选择第二个(40 . _)。请问怎么选择又怎么修改。
有时个以上的信息还不一样。在此先谢谢!

dingtiedt 发表于 2015-7-12 09:36:40

caoyin 发表于 2015-7-12 01:48 static/image/common/back.gif
帮你整理几个函数,自己慢慢摸索吧

(setq OBJ (car (entsel "\n选择多重引线: "))


谢谢版主的无私帮忙

dingtiedt 发表于 2015-7-24 12:24:11

多重引线对齐,只写了垂直对齐,对于水平对齐,还要以后再多多学习,继续完善。在此谢谢无私帮忙的前辈们。

页: [1] 2 3
查看完整版本: 多重引线(mld)对齐