crear dimstyle por codigo
2 participantes
Página 1 de 1.
crear dimstyle por codigo
hola amigos del foro, tengo una consulta, es posible crear un dimstyle usando lisp o visual lisp? y si es posible alguien me podria explicar un poco
muchas gracias a todos, espero atentamente alguna respuesta
muchas gracias a todos, espero atentamente alguna respuesta
melissa-CAD- Mensajes : 2
Fecha de inscripción : 25/01/2017
Re: crear dimstyle por codigo
Hola "melissa-cad" una de las maneras para empezar creando estilo de cotas es tener una ya creada y apartir de hay transladar sus valores al lisp, te doy un ejemplo
1- Mediante este lisp obtienes los valores de tu estilo de dimensión, solo tienes que ingresar el nombre.
2- Despues mediante la funcion "entmake" puedes crear el estilo, te adjunto dos subfunciones, la primera es para crear el estilo de cota logicamente tienes que adecuar las valores segun tu estilo definido y la segunda para crear el estilo de texto.
Espero te sea util. Saludos
1- Mediante este lisp obtienes los valores de tu estilo de dimensión, solo tienes que ingresar el nombre.
- Código:
(defun c:ListDim (/ name)
(setq name (getstring T "\nIngresa nombre de Dimstyle: "))
(command ".dimstyle" "_v" name "")
(princ))
2- Despues mediante la funcion "entmake" puedes crear el estilo, te adjunto dos subfunciones, la primera es para crear el estilo de cota logicamente tienes que adecuar las valores segun tu estilo definido y la segunda para crear el estilo de texto.
- Código:
;;-----------------------------------------------------;;
;; Creador de style ---> AX:ProgramLisp ;;
;; (2ap_Draw_DimStyle_4 "cota_1" 1.0 "style_4") ;;
;;-----------------------------------------------------;;
(defun 2ap_Draw_DimStyle_4 (StyleName ScaleDim TextStyle / OldDimBlk)
;; Crea dimblk
(if (not (tblobjname "block" "_Oblique"))
(progn
(setq OldDimBlk (getvar "dimblk"))
(if (= OldDimBlk "") (setq OldDimBlk ".") )
(setvar "dimblk" "_Oblique")
(setvar "dimblk" OldDimBlk)
)
)
(entmake
(list
(cons 0 "DIMSTYLE"); Table
(cons 100 "AcDbSymbolTableRecord"); Subclass marker
(cons 100 "AcDbDimStyleTableRecord"); Subclass marker
(cons 2 StyleName); Dimstyle name
(cons 70 0); Standard flag
(cons 3 ""); DIMPOST
(cons 4 ""); DIMAPOST
(cons 5 "_Oblique"); DIMBLK
(cons 6 "_Oblique"); DIMBLK1
(cons 7 ""); DIMBLK2
(cons 40 ScaleDim); DIMSCALE
(cons 41 0.0937); DIMASZ
(cons 42 0.0937); DIMEXO
(cons 43 0.38); DIMDLI
(cons 44 0.0625); DIMEXE
(cons 45 0.0); DIMRND
(cons 46 0.0625); DIMDLE
(cons 47 0.0); DIMTP
(cons 48 0.0); DIMTM
(cons 140 0.0937); DIMTXT
(cons 141 0.09); DIMCEN
(cons 142 0.0); DIMTSZ
(cons 143 25.4); DIMALTF
(cons 144 1.0); DIMLFAC
(cons 145 0.0); DIMTVP
(cons 146 1.0); DIMTFAC
(cons 147 0.0625); DIMGAP
(cons 71 0); DIMTOL
(cons 72 0); DIMLIM
(cons 73 0); DIMTIH
(cons 74 0); DIMTOH
(cons 75 0); DIMSE1
(cons 76 0); DIMSE2
(cons 77 1); DIMTAD
(cons 78 3); DIMZIM
(cons 170 0); DIMALT
(cons 171 2); DIMALTD
(cons 172 0); DIMTOFL
(cons 173 0); DIMSAH
(cons 174 0); DIMTIX
(cons 175 0); DIMSOXD
(cons 176 0); DIMCLRD
(cons 177 0); DIMCLRE
(cons 178 2); DIMCRRT
(cons 270 4); DIMUNIT
(cons 271 4); DIMDEC
(cons 272 4); DIMTDEC
(cons 273 2); DIMALTU
(cons 274 2); DIMALTTD
(cons 275 0); DIMAUNIT
(cons 276 2); DIM?????
(cons 277 4); DIMLUNIT
(cons 279 2); DIM????
(cons 280 0); DIMJUST
(cons 281 0); DIMSD1
(cons 282 0); DIMSD2
(cons 283 1); DIMTOLJ
(cons 284 0); DIMTZIN
(cons 285 0); DIMALTZ
(cons 286 0); DIMALTTZ
(cons 287 5); DIMFIT
(cons 288 0); DIMUPT
; DIMTXSTY
(cons 340 (tblobjname "style" TextStyle))
; DIMLDRBLK
(cons 342 (cdr (assoc 330 (entget(tblobjname "block" "_Oblique")))))
; DIMLDRBLK1
(cons 343 (cdr (assoc 330 (entget(tblobjname "block" "_Oblique")))))
; DIMLDRBLK2 Block for the leader
;(cons 341 (cdr (assoc 330 (entget(tblobjname "block" "")))))
)
)
(command "-dimstyle" "restore" StyleName)
(prompt (strcat "\n-Se ha creado el Dimstyle [ " StyleName " ]"))
(princ)
)
;;-----------------------------------------------------;;
;; Creador de style ---> AX:ProgramLisp ;;
;; (2ap_Draw_Style "style_1" "romans" 0 0.90 "-30") ;;
;;-----------------------------------------------------;;
(defun 2ap_Draw_Style ( name font alt anc obl)
(if (null (tblobjname "STYLE" name))
(entmake (list '(0 . "STYLE")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbTextStyleTableRecord")
(cons 2 name) ;;nombre del TextStyle
(cons 3 font) ;;nombre del estilo de texto
'(70 . 0)
(cons 40 alt) ;;altura del texto
(cons 41 anc) ;;ancho del texto
(cons 50 (angtof obl)) ;;oblicuidad del texto
)
)
)
)
(defun c:TestDim ()
(2ap_Draw_Style "style_4" "romans" 0 0.90 "0")
(2ap_Draw_DimStyle_4 "Cota_1" 1.0 "style_4")
(princ))
Espero te sea util. Saludos
Re: crear dimstyle por codigo
Hola amc.dicsac muchas gracias por tu respuesta tan rapida, voy a estudiar el codigo que has expuesto muy agradecida
melissa
melissa
melissa-CAD- Mensajes : 2
Fecha de inscripción : 25/01/2017
![-](https://2img.net/i/empty.gif)
» Crear Rutina Lisp para Crear Tipo de Linea
» CODIGO FUENTE
» Crear un archivo VLX
» Crear Pagesetup
» Crear un block con dos entidades.
» CODIGO FUENTE
» Crear un archivo VLX
» Crear Pagesetup
» Crear un block con dos entidades.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|