繁花落叶 发表于 2014-1-4 21:21:46

根据首行改字高左对齐并按一定间距排序

(defun c:wzpx (/ e1 e2 ent heigh heighy i inpoint k lst ob ob_ptx ob_pty pt
         pto ptx ss
      )
(prompt "\n欢迎使用由Gavin业余时间写的程序! 本程序命令:wzpx")
(prompt "\n本程序主要功能:将文字左对齐并按一定间距排序!")
(setq ss (ssget '((0 . "text"))))
(setq i 0
lst '()
)
(repeat (sslength ss)
    (setq ent (ssname ss i))
    (setq inpoint (Vlax-Get (Vlax-Ename->Vla-Object ent) 'InsertionPoint))
    (setq lst (append
    (list (cons ent inpoint))
    lst
      )
    )
    (setq i (1+ i))
)
(setq lst (vl-sort lst (function (lambda (e1 e2)
             (< (caddr e1) (caddr e2))
         )
       )
      )
)
(setq ob_ptx (cadr (last lst)))
(setq ob_pty (caddr (last lst)))
(setq heigh (Vlax-Get (Vlax-Ename->Vla-Object (car (last lst))) 'Height))
(setq k 0)
(repeat (length lst)
    (setq ob (Vlax-Ename->Vla-Object (car (nth k lst))))
    (setq pt (Vlax-Get ob 'InsertionPoint))
    (setq ptx (subst
    ob_ptx
    (car pt)
    pt
      )
    )
    (setq heighy (- ob_pty (* 1.2 heigh (- (length lst) (1+ k)))))
    (setq pto (subst
    heighy
    (cadr ptx)
    ptx
      )
    )
    (Vlax-Put-Property ob 'InsertionPoint (Vlax-3d-Point pto))
    (Vlax-Put-Property ob 'Height heigh)
    (setq k (1+ k))
)
(princ)
)

广易精通 发表于 2022-9-25 10:33:39

垂直向的文字重叠了,能再加个循环就更完美了

zhangcan0515 发表于 2022-9-25 14:47:57

楼主这个源码可以学习不错,谢谢

yk1216 发表于 2024-8-30 22:28:32

谢谢楼主分享

清风明月名字 发表于 2014-1-4 21:40:49

谢谢楼主的分享,试用了,非常好,收藏备用了!

yoyoho 发表于 2014-1-5 00:32:23

谢谢楼主分享,收藏学习!

菜卷鱼 发表于 2014-1-5 09:25:43

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99960

繁花落叶 发表于 2014-1-5 11:16:37

菜卷鱼 发表于 2014-1-5 09:25 static/image/common/back.gif
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99960

这个可以参考。

香田里浪人 发表于 2014-1-6 07:32:32

繁花落叶 发表于 2014-1-5 11:16 static/image/common/back.gif
这个可以参考。

两者各有特色

tianyi1230 发表于 2014-12-16 09:04:27

1.2倍行高!

sabbathcn 发表于 2014-12-16 11:48:37

试了试貌似有时候不起作用哦

springwillow 发表于 2014-12-16 13:54:21

sabbathcn 发表于 2014-12-16 11:48 static/image/common/back.gif
试了试貌似有时候不起作用哦

程序只是改变的插入点,也就是组码10,当文字为中、右、调整时,程序就不起作用的了。

sabbathcn 发表于 2014-12-16 16:03:25

springwillow 发表于 2014-12-16 13:54 static/image/common/back.gif
程序只是改变的插入点,也就是组码10,当文字为中、右、调整时,程序就不起作用的了。

时而管用时而不管用
是和字体有关还是和文字的位置有关系呢?
页: [1] 2
查看完整版本: 根据首行改字高左对齐并按一定间距排序