Ayuda con DCL
Página 1 de 1.
Ayuda con DCL
Hola muchachos como están.
Quería pedirles un favor para ver si termino esto.
Estoy tratando de hacer un lisp con cuadro de dialogo, algo parecido al comando Quick Select.
Lo que pasa es que con ese comando se me hace muy largo seleccionar una entidad, darle ok y después volver al comando, seleccionar otra entidad y así sucesivamente.
Que quiero? poder seleccionar varias entidades a la vez y quede seleccionado todo en pantalla como lo hace el Quick select.
No necesito seleccionar por tantos filtros como el comando, solo por entidad.
Aqui adjunto el codigo del lisp que llevo.
Y este es el codigo del dcl
En el dcl quiero lograr lo siguiente.
En el cuadro izquierdo que muestre el listado de todas las entidades que hay.
Luego poder darle doble click a una de esas entidades y se vaya pasando al lado derecho en el otro cuadro y se va borrando del lado izquierdo.
el botón de select que seleccione todo lo que este en el cuadro derecho.
el botón reset que limpie el cuadro derecho y restablece el cuadro izquierdo y el botón cancelar pues cancela y cierra el dialogo.
Otra cosa hay alguna manera de saber todas las entidades que hay en el dibujo, pero que no sea de la manera que lo estoy haciendo yo.
Es que cuando es mucho se tarda demasiado, de la manera que lo estoy haciendo yo.
Mil gracias y espero puedan ayudarme.
Quería pedirles un favor para ver si termino esto.
Estoy tratando de hacer un lisp con cuadro de dialogo, algo parecido al comando Quick Select.
Lo que pasa es que con ese comando se me hace muy largo seleccionar una entidad, darle ok y después volver al comando, seleccionar otra entidad y así sucesivamente.
Que quiero? poder seleccionar varias entidades a la vez y quede seleccionado todo en pantalla como lo hace el Quick select.
No necesito seleccionar por tantos filtros como el comando, solo por entidad.
Aqui adjunto el codigo del lisp que llevo.
- Código:
(defun c:xxx (/)
(setq all (ssget "_X"))
(setq lst-org nil)
(setq i -1)
(while (setq ent-uni (ssname all (setq i (1+ i))))
(setq lst-org (cons (valor-cod 0 ent-uni) lst-org)))
(reduce-conjunto lst-org)
;;
(cmd-dcl)
;;
)
;;; Listado 10.9. Extracción del valor asociado a un código DXF
(defun valor-cod (clave ename) (cdr (assoc clave (entget ename))))
;;; Elimina atomos repetidos de una lista
;;; Por Jose A. Alonso Jimenez
;;; jalonso@us.es
(defun reduce-conjunto (l)
(cond ((atom l) l)
((member (car l) (cdr l)) (reduce-conjunto (cdr l)))
(t (cons (reduce-conjunto (car l)) (reduce-conjunto (cdr l))))))
;;; Ejecucion del cuadro DCL
(defun cmd-dcl (/)
(setq dcl_id (load_dialog "SelectObj.DCL"))
(new_dialog "SelectObj" dcl_id)
(start_list "txtobjorg" 3)
(mapcar 'add_list (reduce-conjunto lst-org))
(end_list)
(start_dialog)
(unload_dialog dcl_id))
Y este es el codigo del dcl
- Código:
SelectObj : dialog
{label=" Quick select Person";
spacer;
spacer;
:row {
:boxed_column {
label=" Object type: ";
:list_box {
key="txtobjorg";
is_enabled = true;
width=18;
height=13;
}
spacer;
}
:boxed_column {
label=" Apply select to: ";
:list_box {
key="txtd";
is_enabled = false;
width=18;
height=13;
}
spacer;
}
}
spacer;
:row {
:button {
key="selobj";
label="Select";
is_default=false;
}
:button {
key="resselobj";
label="Reset select";
is_default=false;
}
:button {
key="canselobj";
label="Cancel";
is_default=true;
}
}
spacer;
}
En el dcl quiero lograr lo siguiente.
En el cuadro izquierdo que muestre el listado de todas las entidades que hay.
Luego poder darle doble click a una de esas entidades y se vaya pasando al lado derecho en el otro cuadro y se va borrando del lado izquierdo.
el botón de select que seleccione todo lo que este en el cuadro derecho.
el botón reset que limpie el cuadro derecho y restablece el cuadro izquierdo y el botón cancelar pues cancela y cierra el dialogo.
Otra cosa hay alguna manera de saber todas las entidades que hay en el dibujo, pero que no sea de la manera que lo estoy haciendo yo.
Es que cuando es mucho se tarda demasiado, de la manera que lo estoy haciendo yo.
Mil gracias y espero puedan ayudarme.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Temas similares
» AYUDA CON PASAR DWG 3D EN 2D
» Ayuda con un lisp
» Ayuda y consejo con DCL
» ayuda con rutina
» AYUDA LISP NO CORRE
» Ayuda con un lisp
» Ayuda y consejo con DCL
» ayuda con rutina
» AYUDA LISP NO CORRE
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|