各位下午好,
我被要求创建一个rutine,它插入一个具有属性的块,以插入列类型的标签,这是一个圆形,其中列的文本位于圆形内,例如:C1、C2、C3等。
我已经这样做了,问题是我需要在标签的圆周围插入一个擦拭块,但我不知道怎么做。我想知道这里是否有人能帮我绕着圆圈抹平,我会非常感激的!
这是代码。祝福。
- ;;; Inicio de programa
- (defun columna_planta ()
- ;Definición de la cabecera de bloque:
- (entmake
- '((0 . "Block")
- (2 . "COLUMNA_PLANTA")
- (100 . "AcDbEntity")
- (100 . "AcDbBlockBegin")
- (8 . "S-COL-TEXTO")
- (70 . 2)
- (10 0.0 0.0 0.0)
- )
- )
- ;Definición de circulo:
- (entmake
- '((0 . "Circle")
- (100 . "AcDbCircle")
- (100 . "AcDbEntity")
- (10 0.0 0.0 0.0)
- (40 . 2.9392)
- (62 . 2)
- )
- )
- ;Definición de atributo:
- (entmake
- '((0 . "ATTDEF")
- (8 . "S-COL-TEXTO")
- (10 0.0 0.0 0.0)
- (1 . "")
- (2 . "TIPO-COLUMNA")
- (3 . "TIPO-COLUMNA")
- (62 . 3)
- (7 . "STANDARD")
- (40 . 2)
- (41 . 1.0)
- (50 . 0.0)
- (70 . 0)
- (71 . 0)
- (72 . 4)
- (73 . 0)
- )
- )
- ;Definición de FIN del Bloque:
- (entmake '((0 . "ENDBLK")))
- )
- (defun c:TC ()
- (setvar 'attreq 1)
- (setvar 'attdia 0)
- (vl-cmdf "_.TEXTSTYLE" "standard")
- (vl-cmdf "layer" "m" "S-COL-TEXTO" "c" "2" "" "")
- (vl-cmdf "_insunits" "0")
- (if (null (tblobjname "BLOCK" "COLUMNA_PLANTA"))
- (columna_planta)
- )
- (prompt
- "\nRutina que inserta bloque tipo de columna "
- )
- (prompt "\nCreado por Alejandro Serrano Araya. © 2014")
- (initget 5)
- (setq escala (getreal "\nIndique escala 1:"))
- (setq scr (* (/ escala 10) 0.001))
- (while
- (setq tipocolumna
- (getstring
- "\nIndique el tipo de columna: (presione ESC para terminar)"
- )
- )
- (setq texto (STRCAT "C" tipocolumna))
- (setq pt (getpoint "\nIndique punto base: "))
- (command "_insert"
- "COLUMNA_PLANTA"
- pt
- (* 1000 scr)
- (* 1000 scr)
- 0
- texto
- )
- )
- (princ)
- )
|