明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5158|回复: 18

[已解答] 自动编号问题

[复制链接]
发表于 2014-6-10 16:07:44 | 显示全部楼层 |阅读模式
各位大神门   这是个编号程序  论坛上有很多  但都不能在执行命令的时候让选择输入字的大小 都是默认程序里边的大小  请大神门帮忙完善下  谢谢啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-1-30 19:08:59 | 显示全部楼层
zmzk 发表于 2022-1-29 17:56
加入这些封闭图形 大小不一样,排序还是会出现问题的

这就需要用到排序了,这个只是对图元出现的顺序进行排序
发表于 2019-12-12 15:45:25 | 显示全部楼层
edata 发表于 2016-8-4 21:49
这个就是上面的代码文件,选择对象,根据对象顺序填写序号。命令 tt

数字位置能改吗
发表于 2022-1-29 17:56:28 | 显示全部楼层
加入这些封闭图形 大小不一样,排序还是会出现问题的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-6-10 16:42:50 | 显示全部楼层
本帖最后由 edata 于 2014-6-10 17:07 编辑

顺序已改
  1. (defun c:tt(/ ss font_height1 n k po na)
  2.      (or font_height (setq font_height 100))
  3.       (if(setq font_height1(getdist (strcat "\n输入文字高度<"(rtos font_height 2 )  ">:")))
  4.         (setq font_height font_height1))
  5.   (if(and (setq ss (ssget (list '(0 . "LWPOLYLINE"))))
  6.           )
  7.     (progn
  8.   (setq n 0 k 1)
  9.   (repeat (sslength ss)
  10.     (setq na (ssname ss n))
  11.     (setq po (Get_center_relative na))
  12.     (entmake (list '(0 . "MTEXT")
  13.                    '(100 . "AcDbEntity")
  14.                    '(100 . "AcDbMText")
  15.                    (cons 7(getvar 'TEXTSTYLE))
  16.                    (cons 1 (rtos k 2 0))
  17.                    (cons 10 po)
  18.                    (cons 40 font_height)
  19.                    (cons 71 5)
  20.                    )
  21.              )
  22.     ;(command "text" "j" "mc" "non" po font_height 0 k "")
  23.     (setq k (1+ k))
  24.     (setq n (1+ n))
  25.     )
  26.   )
  27.     )
  28.   (princ)
  29.   )

  30. (defun Get_center_relative (ename /  Pts   2R Mk   Mkline  points   DelLine   Tssred
  31.                    i   lst  N  Newlst    DistList     R   Number  Tssbak TssSub  Pt)
  32.     (setq Obj     (Vlax-Ename->Vla-Object ename)
  33.           Tssbak  (Vlax-Get Obj 'Thickness )
  34.           TssSub  (Vlax-Put Obj 'Thickness 0 ))
  35.     (setq Pts     (GetBoundingBox ename)
  36.           2R      (MJ:MIDPOINT (CAR Pts) (CADR Pts))
  37.           Mk      (entmake (list (cons 0 "LINE")(cons 8 "JMDSS")(cons 10 (polar 2R 0.0 1000))(cons 11 (polar 2R 3.14159 1000))))
  38.           Mkline  (entlast)
  39.           points  (vlax-invoke (vlax-ename->vla-object ename) 'IntersectWith (vlax-ename->vla-object Mkline) acExtendOtherEntity)
  40.           Tssred  (Vlax-Put Obj 'Thickness (eval Tssbak) )
  41.           DelLine (entdel Mkline)
  42.           i       0
  43.           lst     nil
  44.           )
  45.   (repeat (/ (length points) 3)
  46.        (setq lst (append lst (list (list (nth i points) (nth (1+ i) points) (nth (+ 2 i) points)))))
  47.        (setq i (+ i 3))
  48.   )
  49.   (setq lst (px lst))
  50.   (if (>= (length lst) 4)
  51.       (progn
  52.           (setq N      0
  53.                 Newlst nil)
  54.           (repeat (/ (length lst) 2)
  55.               (setq Newlst (append Newlst (list (list (nth N lst) (nth (1+ N) lst)))))
  56.               (setq N (+ 2 N))
  57.           )
  58.           (setq DistList nil
  59.                 R        0)
  60.           (repeat (length Newlst)
  61.             (setq Number (nth R Newlst)
  62.                   DistList (append DistList  (list(distance (car Number) (cadr Number)))))
  63.             (setq R (1+ R))
  64.           )
  65.           (setq  Pt (nth (vl-position (car (vl-sort DistList '>)) DistList) Newlst))
  66.         (MJ:MIDPOINT (car pt) (cadr pt));返回值
  67.       )
  68.       (MJ:MIDPOINT (car lst) (cadr lst));返回值
  69.   )
  70. )

  71. (defun MJ:MIDPOINT (P1 P2)
  72.   (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) P1 P2)
  73. )

  74. (defun GetBoundingBox (ent / ll ur)
  75.     (vla-getboundingbox (vlax-ename->vla-object ent) 'll 'ur)
  76.     (mapcar 'vlax-safearray->list (list ll ur))
  77. )

  78. (defun px (X)
  79.     (vl-sort  X
  80.              (function (lambda (e1 e2)
  81.                          (< (car e1) (car e2)) ) ) )
  82. )

 楼主| 发表于 2014-6-10 17:05:32 | 显示全部楼层
edata 发表于 2014-6-10 16:42

大哥  谢谢 啊  就是这样的    但是能帮我改下顺序吗?  你这个是反的  能改正码 ?(你的开始数字和结束数字反过来下 )  谢谢

点评

楼上已改。。  发表于 2014-6-10 17:07
发表于 2014-6-10 21:08:49 | 显示全部楼层
喜欢!呵呵
发表于 2014-6-11 09:56:15 | 显示全部楼层
love1030312 发表于 2014-6-10 17:05
大哥  谢谢 啊  就是这样的    但是能帮我改下顺序吗?  你这个是反的  能改正码 ?(你的开始数字和结束 ...

数值是按照选择顺序排序的,如果是框选按图形建立逆向顺序排序。
关于这个排序,水很深,暂时不涉及。
发表于 2015-2-28 14:23:28 | 显示全部楼层
edata 发表于 2014-6-11 09:56
数值是按照选择顺序排序的,如果是框选按图形建立逆向顺序排序。
关于这个排序,水很深,暂时不涉及。

若再能解决排序问题的话就更完美了
发表于 2016-6-20 14:28:57 | 显示全部楼层
谢谢,学习的参考
发表于 2016-8-4 16:25:06 | 显示全部楼层
没看明白,,,,,,,
发表于 2016-8-4 16:26:42 | 显示全部楼层
求一个自动编号闭合面的插件
发表于 2016-8-4 21:49:22 | 显示全部楼层
906460210 发表于 2016-8-4 16:26
求一个自动编号闭合面的插件


这个就是上面的代码文件,选择对象,根据对象顺序填写序号。命令 tt

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-14 14:49 , Processed in 0.404409 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表