明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1088|回复: 6

[提问] 求个位大神写一个,批量选取矩形,标注矩形旋转角度的程序

[复制链接]
发表于 2022-1-2 15:34:59 | 显示全部楼层 |阅读模式
求个位大神写一个,批量选取矩形,标注矩形旋转角度的程序
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-1-4 14:00:32 | 显示全部楼层
  1. ;获得多段线顶点
  2. (setq
  3.       ptn (mapcar
  4.       'cdr
  5.       (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget s1))
  6.     )
  7.     )

  8. ;从ptn中选取邻近顶点,用angle算出角度
  9. ;选位置写文字,用command或entmake都可以

 楼主| 发表于 2022-1-4 20:45:14 | 显示全部楼层

你好大神,可以来一个可以运行的程序不
发表于 2022-1-4 21:04:37 | 显示全部楼层
664571221 发表于 2022-1-4 20:45
你好大神,可以来一个可以运行的程序不

我不是大神,菜鸟,我试试编一个.
 楼主| 发表于 2022-1-4 21:32:17 | 显示全部楼层
tigcat 发表于 2022-1-4 21:04
我不是大神,菜鸟,我试试编一个.

好的 我看了你的帖子都是好东西,加下我qq3298554767
发表于 2022-1-29 20:36:11 | 显示全部楼层
664571221 发表于 2022-1-4 21:32
好的 我看了你的帖子都是好东西,加下我qq3298554767

  1. ;函数是东抄西抄的
  2. ;当天写好结果发现论坛崩溃了,一直到现在才能贴
  3. (defun c:tt4 (/ en i ptn ptn_xmax ptn_ymin ss)
  4.   (vl-load-com)
  5.   (setq  ss (ssget '((0 . "lw*") (70 . 1)))
  6.     i  0
  7.   )
  8.   (repeat (sslength ss)
  9.     (setq en (ssname ss i))
  10.     (setq
  11.       ptn (mapcar
  12.             'cdr
  13.             (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget en))
  14.           )
  15.     )
  16.     (setq ptn_ymin (vl-sort ptn (function (lambda (e1 e2)  (< (cadr e1) (cadr e2)) ) ) ))
  17.     (setq ptn_xmax (vl-sort ptn (function (lambda (e1 e2)  (> (car e1) (car e2)) ) ) ))
  18.     (if  (or (equal (angle (car ptn_ymin) (car ptn_xmax)) 0 1e-3)
  19.           (equal (angle (car ptn_ymin) (car ptn_xmax)) (* 0.5 pi) 1e-3)
  20.         )
  21.       
  22.       (entmake
  23.         (list
  24.           '(0 . "TEXT")
  25.           (cons
  26.             1
  27.             "旋转角度0"
  28.             
  29.             
  30.           )
  31.           (cons 10 (append (car ptn_xmax) '(0)))
  32.           (cons  40
  33.             (* 0.4
  34.               (min  (distance (car ptn) (cadr ptn))
  35.                 (distance (cadr ptn) (caddr ptn))
  36.               )
  37.             )
  38.           )
  39.         )
  40.       )
  41.       (entmake
  42.         (list
  43.           '(0 . "TEXT")
  44.           (cons
  45.             1
  46.             (strcat "旋转角度"
  47.               (rtos (/ (* 180 (angle (car ptn_ymin) (car ptn_xmax)))pi) 2 2)
  48.               "°"
  49.             )
  50.           )
  51.           (cons 10 (append (car ptn_xmax) '(0)))
  52.           (cons  40
  53.             (* 0.4
  54.               (min  (distance (car ptn) (cadr ptn))
  55.                 (distance (cadr ptn) (caddr ptn))
  56.               )
  57.             )
  58.           )
  59.         )
  60.       )
  61.       
  62.       
  63.       
  64.     )
  65.     (setq i (1+ i))
  66.   )
  67.   (prin1)
  68. )

发表于 2022-1-30 14:48:24 | 显示全部楼层
没有测试图,只能动手画几个框了

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-9-29 07:25 , Processed in 0.195176 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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