crear dimstyle por codigo

Ver el tema anterior Ver el tema siguiente Ir abajo

crear dimstyle por codigo

Mensaje por melissa-CAD el Miér Ene 25, 2017 8:23 pm

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

melissa-CAD

Mensajes : 2
Fecha de inscripción : 25/01/2017

Ver perfil de usuario

Volver arriba Ir abajo

Re: crear dimstyle por codigo

Mensaje por amc.dicsac el Miér Ene 25, 2017 10:23 pm

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.

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
avatar
amc.dicsac

Mensajes : 80
Fecha de inscripción : 17/03/2016
Edad : 27
Localización : Lima - Perú

Ver perfil de usuario http://axprogramlisp.blogspot.pe/

Volver arriba Ir abajo

Re: crear dimstyle por codigo

Mensaje por melissa-CAD el Jue Ene 26, 2017 12:39 am

Hola amc.dicsac muchas gracias por tu respuesta tan rapida, voy a estudiar el codigo que has expuesto muy agradecida

melissa

melissa-CAD

Mensajes : 2
Fecha de inscripción : 25/01/2017

Ver perfil de usuario

Volver arriba Ir abajo

Re: crear dimstyle por codigo

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.