乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 94|回复: 3

[编程交流] 改进常规

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 22:54:34 | 显示全部楼层 |阅读模式
各位下午好,
我被要求创建一个rutine,它插入一个具有属性的块,以插入列类型的标签,这是一个圆形,其中列的文本位于圆形内,例如:C1、C2、C3等。
我已经这样做了,问题是我需要在标签的圆周围插入一个擦拭块,但我不知道怎么做。我想知道这里是否有人能帮我绕着圆圈抹平,我会非常感激的!
这是代码。祝福。
 
  1. ;;;  Inicio de programa
  2. (defun columna_planta ()
  3.               ;Definición de la cabecera de bloque:
  4. (entmake
  5.    '((0 . "Block")
  6.      (2 . "COLUMNA_PLANTA")
  7.      (100 . "AcDbEntity")
  8.      (100 . "AcDbBlockBegin")
  9.      (8 . "S-COL-TEXTO")
  10.      (70 . 2)
  11.      (10 0.0 0.0 0.0)
  12.     )
  13. )
  14.               ;Definición de circulo:
  15. (entmake
  16.    '((0 . "Circle")
  17.      (100 . "AcDbCircle")
  18.      (100 . "AcDbEntity")
  19.      (10 0.0 0.0 0.0)
  20.      (40 . 2.9392)
  21.      (62 . 2)
  22.     )
  23. )
  24.               ;Definición de atributo:
  25. (entmake
  26.    '((0 . "ATTDEF")
  27.      (8 . "S-COL-TEXTO")
  28.      (10 0.0 0.0 0.0)
  29.      (1 . "")
  30.      (2 . "TIPO-COLUMNA")
  31.      (3 . "TIPO-COLUMNA")
  32.      (62 . 3)
  33.      (7 . "STANDARD")
  34.      (40 . 2)
  35.      (41 . 1.0)
  36.      (50 . 0.0)
  37.      (70 . 0)
  38.      (71 . 0)
  39.      (72 . 4)
  40.      (73 . 0)
  41.     )
  42. )
  43.               ;Definición de FIN del Bloque:
  44. (entmake '((0 . "ENDBLK")))
  45. )
  46. (defun c:TC ()
  47. (setvar 'attreq 1)
  48. (setvar 'attdia 0)
  49. (vl-cmdf "_.TEXTSTYLE" "standard")
  50. (vl-cmdf "layer" "m" "S-COL-TEXTO" "c" "2" "" "")
  51. (vl-cmdf "_insunits" "0")
  52. (if (null (tblobjname "BLOCK" "COLUMNA_PLANTA"))
  53.    (columna_planta)
  54. )
  55. (prompt
  56.    "\nRutina que inserta bloque tipo de columna "
  57. )
  58. (prompt "\nCreado por Alejandro Serrano Araya. © 2014")
  59. (initget 5)
  60. (setq escala (getreal "\nIndique escala 1:"))
  61. (setq scr (* (/ escala 10) 0.001))
  62. (while
  63.    (setq tipocolumna
  64.      (getstring
  65.        "\nIndique el tipo de columna: (presione ESC para terminar)"
  66.      )
  67.    )
  68.     (setq texto (STRCAT "C" tipocolumna))
  69.     (setq pt (getpoint "\nIndique punto base: "))
  70.     (command "_insert"
  71.         "COLUMNA_PLANTA"
  72.         pt
  73.         (* 1000 scr)
  74.         (* 1000 scr)
  75.         0
  76.         texto
  77.     )
  78. )
  79. (princ)
  80. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 23:23:58 | 显示全部楼层
你好
由于WIPEOUT适用于多段线,因此使用命令的最简单方法是:具有32条边的多边形看起来像一个圆
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 23:54:18 | 显示全部楼层
我当然会使用HATCH,但这里有一个方法-看http://www.lee-mac.com并在“程序”下搜索循环擦除。。。以下是您需要实现的部分代码:
 
  1. ;; Circular Wipeout  -  Lee Mac
  2. ;; Creates a circular wipeout with the given center (UCS) & radius
  3. (defun LM:CircularWipeout ( cen rad / ang inc lst )
  4.    (setq acc 50
  5.          inc (/ pi acc 0.5)
  6.          ang 0.0
  7.    )
  8.    (repeat acc
  9.        (setq lst (cons (list 14 (* 0.5 (cos ang)) (* 0.5 (sin ang))) lst)
  10.              ang (+ ang inc)
  11.        )
  12.    )
  13.    (entmakex
  14.        (append
  15.            (list
  16.               '(000 . "WIPEOUT")
  17.               '(100 . "AcDbEntity")
  18.               '(100 . "AcDbWipeout")
  19.                (cons 10 (trans (mapcar '- cen (list rad rad)) 1 0))
  20.                (cons 11 (trans (list (+ rad rad) 0.0) 1 0 t))
  21.                (cons 12 (trans (list 0.0 (+ rad rad)) 1 0 t))
  22.               '(280 . 1)
  23.               '(071 . 2)
  24.            )
  25.            (cons (last lst) lst)
  26.        )
  27.    )
  28. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 00:14:00 | 显示全部楼层
感谢Marko分享Lee的代码。真正纯粹的编码解释了命令背后的“多边形”和“擦除”:)
 
简而言之:
  1. (defun CW ( p r )
  2. (vl-cmdf "_POLYGON" "32" p "I" r)
  3. (vl-cmdf "_WIPEOUT" "P" "L" "Y")
  4. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 03:33 , Processed in 0.551441 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表