明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: love1030312

[已解答] 自动编号问题

[复制链接]
发表于 2016-8-4 22:26:30 | 显示全部楼层
edata 发表于 2016-8-4 21:49
这个就是上面的代码文件,选择对象,根据对象顺序填写序号。命令 tt

首先非常感谢您回复我,按照操作的输入完,点击右键之后就出现这么一句话no function definition: VLAX-ENAME->VLA-OBJECT,还有这个插件能不能把编码格式按照我设置的写,比如说A1,A2,,,或者001,002,求指点。谢谢
发表于 2016-8-4 22:56:37 | 显示全部楼层
你在文件的第一行加一句
(vl-load-com)
发表于 2016-8-4 23:07:50 | 显示全部楼层
;;;改了一下排序
(defun c:tt(/ ss font_height1 n k po na)
     (or font_height (setq font_height 100))
      (if(setq font_height1(getdist (strcat "\n输入文字高度<"(rtos font_height 2 )  ">:")))
        (setq font_height font_height1))
  (if(and (setq ss (ssget (list '(0 . "LWPOLYLINE"))))
          )
    (progn
  (setq n 0 k (sslength ss))
  (repeat (sslength ss)

    (setq na (ssname ss n))
    (setq po (Get_center_relative na))
    (entmake (list '(0 . "MTEXT")
                   '(100 . "AcDbEntity")
                   '(100 . "AcDbMText")
                   (cons 7(getvar 'TEXTSTYLE))
                   (cons 1 (rtos k 2 0))
                   (cons 10 po)
                   (cons 40 font_height)
                   (cons 71 5)
                   )
             )
    ;(command "text" "j" "mc" "non" po font_height 0 k "")
    (setq k (- k 1))
    (setq n (1+ n))
    )
  )
    )
  (princ)
  )

(defun Get_center_relative (ename /  Pts   2R Mk   Mkline  points   DelLine   Tssred
                   i   lst  N  Newlst    DistList     R   Number  Tssbak TssSub  Pt)
    (setq Obj     (Vlax-Ename->Vla-Object ename)
          Tssbak  (Vlax-Get Obj 'Thickness )
          TssSub  (Vlax-Put Obj 'Thickness 0 ))
    (setq Pts     (GetBoundingBox ename)
          2R      (MJ:MIDPOINT (CAR Pts) (CADR Pts))
          Mk      (entmake (list (cons 0 "LINE")(cons 8 "JMDSS")(cons 10 (polar 2R 0.0 1000))(cons 11 (polar 2R 3.14159 1000))))
          Mkline  (entlast)
          points  (vlax-invoke (vlax-ename->vla-object ename) 'IntersectWith (vlax-ename->vla-object Mkline) acExtendOtherEntity)
          Tssred  (Vlax-Put Obj 'Thickness (eval Tssbak) )
          DelLine (entdel Mkline)
          i       0
          lst     nil
          )
  (repeat (/ (length points) 3)
       (setq lst (append lst (list (list (nth i points) (nth (1+ i) points) (nth (+ 2 i) points)))))
       (setq i (+ i 3))
  )
  (setq lst (px lst))
  (if (>= (length lst) 4)
      (progn
          (setq N      0
                Newlst nil)
          (repeat (/ (length lst) 2)
              (setq Newlst (append Newlst (list (list (nth N lst) (nth (1+ N) lst)))))
              (setq N (+ 2 N))
          )
          (setq DistList nil
                R        0)
          (repeat (length Newlst)
            (setq Number (nth R Newlst)
                  DistList (append DistList  (list(distance (car Number) (cadr Number)))))
            (setq R (1+ R))
          )
          (setq  Pt (nth (vl-position (car (vl-sort DistList '>)) DistList) Newlst))
        (MJ:MIDPOINT (car pt) (cadr pt));返回值
      )
      (MJ:MIDPOINT (car lst) (cadr lst));返回值
  )
)

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

(defun GetBoundingBox (ent / ll ur)
    (vla-getboundingbox (vlax-ename->vla-object ent) 'll 'ur)
    (mapcar 'vlax-safearray->list (list ll ur))
)

(defun px (X)
    (vl-sort  X
             (function (lambda (e1 e2)
                         (< (car e1) (car e2)) ) ) )
)

发表于 2016-8-5 09:11:35 | 显示全部楼层
edata 发表于 2016-8-4 22:56
你在文件的第一行加一句
(vl-load-com)

已经解决,非常感谢
发表于 2019-12-12 15:45:25 | 显示全部楼层
edata 发表于 2016-8-4 21:49
这个就是上面的代码文件,选择对象,根据对象顺序填写序号。命令 tt

数字位置能改吗
发表于 2019-12-13 10:06:21 | 显示全部楼层
edata大大很牛,感谢分享~
发表于 2020-9-11 21:49:20 | 显示全部楼层
谢谢,,大家的分享,贴子顶起来
发表于 2022-1-29 17:56:28 | 显示全部楼层
加入这些封闭图形 大小不一样,排序还是会出现问题的

本帖子中包含更多资源

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

x
发表于 2022-1-30 19:08:59 | 显示全部楼层
zmzk 发表于 2022-1-29 17:56
加入这些封闭图形 大小不一样,排序还是会出现问题的

这就需要用到排序了,这个只是对图元出现的顺序进行排序
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:53 , Processed in 0.174626 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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