Cerrar arco

Un buen lugar donde debatir temas relacionados con este Soft.


Tema anteriorTema siguiente
Avatar de Usuario

Autor del Tema
Fgs
Oficial 1º
Oficial 1º
Mensajes: 2079
Registrado: Lun Nov 23, 2009 9:20 pm
Temas: 537
Programa CAD o CAM: AUTOCAD
Agradecimiento recibido: 205 veces
Género:
Estado: Desconectado

Cerrar arco

Mensaje por Fgs »

Hola, buenas tardes para los españoles, y buenos días para los que están al otro lado del charco.

A veces me gusta tocar Autocad. Y estoy haciendo un dibujo que me resulta sencillo pero que he querido hacer algo y no lo tengo. Tengo un arco y quiero convertirlo en circulo. Se que existe por ahí, en la web, una rutina que hace eso. y para saber como está hecha, me gustaría, si la tenéis, destriparla, y por lo tanto, en formato Autolisp.

De todos modos, voy a seguir buceando. Si la encuentra, la subo. Pero, si no lo hago cuando leáis esto y si la tenéis, por favor, hacerlo por mi.

Gracias.

La historia la escribes con tus actos.

Avatar de Usuario

Mondeo14
Webmaster
Webmaster
Mensajes: 10975
Registrado: Mar Nov 03, 2009 8:48 pm
Temas: 648
Programa CAD o CAM: SOLID WORKS
Ubicación: NAVARRA
Agradecido : 3514 veces
Agradecimiento recibido: 2493 veces
Género:
Zodíaco:
Edad: 63
Estado: Desconectado

Re: Cerrar arco

Mensaje por Mondeo14 »

Buenas tardes.
Siento ser un aguafiestas pero no te hace falta ninguna rutina.
Comando UNIR (_JOIN en inglés), seleccionas el arco, le das a INTRO y te la opción de cerrar el arco, en castellano es la E (de cErrar).

¿Que existe la rutina?, pues no te lo voy a negar, ni a afirmar, pero esto es lo que he encontrado antes que la rutina.

Un saludo

Nos leemos, Mondi


Procesador: CPU Intel i7 4820kDisco Duro: SSD 500 GB y 2 TBMemoria RAM: 24 GB-DDR3 667 MHzTarjeta Gráfica: NVIDIA Quadro K2000 2 GB GDDR5


Avatar de Usuario

Autor del Tema
Fgs
Oficial 1º
Oficial 1º
Mensajes: 2079
Registrado: Lun Nov 23, 2009 9:20 pm
Temas: 537
Programa CAD o CAM: AUTOCAD
Agradecimiento recibido: 205 veces
Género:
Estado: Desconectado

Re: Cerrar arco

Mensaje por Fgs »

Pues, no pondría la mano en el fuego, por si me quemo, pero creo haberla visto alguna vez, pero tan solo creo.

Lo de cerrar el arco, ahora que lo he leído, creo que lo había leído en alguna parte pero no me acordaba. Quizás me he empecinado en la rutina. He estado a un clic de ponerme a repasar autolisp y hacerla yo mismo, pero ya que lo hace el propio programa, creo que no voy a molestarme en ello.

Gracias, ya no se me olvida. Espero que lo tenga la Release que utilizo yo.

La historia la escribes con tus actos.

Avatar de Usuario

Autor del Tema
Fgs
Oficial 1º
Oficial 1º
Mensajes: 2079
Registrado: Lun Nov 23, 2009 9:20 pm
Temas: 537
Programa CAD o CAM: AUTOCAD
Agradecimiento recibido: 205 veces
Género:
Estado: Desconectado

Re: Cerrar arco

Mensaje por Fgs »

Bueno, no me quemaría, porque, despues de buscar una y otra vez, al fin la he encontrado. Eureka.

pongo el código aquí para que se vea que no tiene nada de malicioso. Lo digo porque la he probado, (funciona correctamente ) pero me sale un mensaje de advertencia.
 

Código: Seleccionar todo

[color=#16a085];*****************************************************************************
;                            ATC.LSP V1.0
;                           by Zoltan Toth
;    ZOTO Technologies,
;    23 Greenhills Dve,
;    Melton 3337.
;    E-MAIL: zoltan.toth@ains.net.au
;       WWW: http://www.ains.net.au/zoto/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  This program takes any number of arcs and converts them into circles.
;  Each circle is a new object with all the properties of the arc it
;  replaces. Non-arc objects are ignored.
;
;*****************************************************************************
(defun C:ATC (/ CTR2 CTR3 D2 SS2 OBN2 OBD2 OBD3)
 (setq CTR2 0)                             ;initialize CTR2 for object counter
 (prompt "\nSelect arcs to convert to circles: ")
 (setq SS2 (ssget '((0 . "ARC"))))        ;create selection set with arcs only
 (repeat (sslength SS2)                                ;repeat for each object
  (setq OBN2 (ssname SS2 CTR2))                               ;get object name
  (setq OBD2 (entget OBN2))                             ;get object data lists
;substitute CIRCLE in assoc. 0
  (setq OBD2 (subst (cons 0 "CIRCLE")(assoc 0 OBD2) OBD2))
  (setq CTR3 (1- (length OBD2)))         ;set CTR3 to 1 less than size of OBD2
  (repeat (length OBD2)                          ;repeat for each list in OBD2
   (setq D2 (nth CTR3 OBD2))       ;set D2 to an association list from the arc
;;;;
;if association list is neither a start or end angle,
;copy the association list to OBD3
   (if (and (/= 50 (car D2))(/= 51 (car D2)))        ;check for assoc. 50 & 51
    (setq OBD3 (cons D2 OBD3))                       ;copy assoc. list to OBD3
   )
   (setq CTR3 (1- CTR3))                               ;decrement counter CTR3
  )                                                    ;end of second (repeat)
  (entdel OBN2)                                                    ;delete arc
  (entmake OBD3)                                                  ;make circle
  (setq OBD3 nil)                                           ;set OBD3 to (nil)
  (setq CTR2 (1+ CTR2))                              ;increment object counter
 )                                                      ;end of first (repeat)
 (princ)                                                         ;exit quietly
)[/color]

 

La historia la escribes con tus actos.

Avatar de Usuario

Mondeo14
Webmaster
Webmaster
Mensajes: 10975
Registrado: Mar Nov 03, 2009 8:48 pm
Temas: 648
Programa CAD o CAM: SOLID WORKS
Ubicación: NAVARRA
Agradecido : 3514 veces
Agradecimiento recibido: 2493 veces
Género:
Zodíaco:
Edad: 63
Estado: Desconectado

Re: Cerrar arco

Mensaje por Mondeo14 »

Excelente aportación, me alegra de que hayas insistido, otra rutina mas para la colección de todos.

Un saludo

Nos leemos, Mondi


Procesador: CPU Intel i7 4820kDisco Duro: SSD 500 GB y 2 TBMemoria RAM: 24 GB-DDR3 667 MHzTarjeta Gráfica: NVIDIA Quadro K2000 2 GB GDDR5


Tema anteriorTema siguiente