heey,
ik wil een menu in AutoCAD 2000i aanpassen. Hoe doe ik dit? Ik heb de verwijzing naar het menu gevonden in mijn mnu en mns bestand maar ik moet mijn venster dat erop komt nadat ik hierop klik aanpassen. Het enige dat ik zie is >c>c>p en dan het commando dat het venster opent. Kunnen jullie mij helpen? Hoe kan ik dit aanpassen?
Bedankt op voorhand
greetz
Sam
Veel hangt af van wat je wil aanpassen, verduidelijk even je vraag
Wel het zit zo. Ik hew een menu. Als ik deze menu open dan komt er een scherm tevoorschijn. In dit scherm kan je vannalles aanpassen aan de parameters van de tekening. Als ik in dit scherm op een knopje klik opent er een nieuw scherm waarin ik nog gegevens kan ingeven. Hierin wil ik zorgen dat die gegevens die men moet ingeven dat ze voor geprogrameerd zijn. Nu type je daar maar in wat je wilt. Ik wil een keuze hebben, jeweetwel met zo een pijltje. Hoe moet ik dit doen? Ik werk met AutoCAD 2000i.
Bedankt voor de hulp
Sam
Citaat van: fcbsam op do 22 02 2007, 15:04:45
Wel het zit zo. Ik hew een menu. Als ik deze menu open dan komt er een scherm tevoorschijn. In dit scherm kan je vannalles aanpassen aan de parameters van de tekening. Als ik in dit scherm op een knopje klik opent er een nieuw scherm waarin ik nog gegevens kan ingeven. Hierin wil ik zorgen dat die gegevens die men moet ingeven dat ze voor geprogrameerd zijn. Nu type je daar maar in wat je wilt. Ik wil een keuze hebben, jeweetwel met zo een pijltje. Hoe moet ik dit doen? Ik werk met AutoCAD 2000i.
Bedankt voor de hulp
Sam
probeer eens een paar schermafdrukken te plaatsen
e.a lijkt meer op een lisp met een dcl scherm dan op een menu zo te lezen
inderdaad ik ben voor het moment Vlisp aan het leren zodat ik het kan aanpassen. Ik wil wel een print screen invoegen maar euh... Hoe doe je dat?
Sam
Citaat van: fcbsam op vr 23 02 2007, 08:32:03
inderdaad ik ben voor het moment Vlisp aan het leren zodat ik het kan aanpassen. Ik wil wel een print screen invoegen maar euh... Hoe doe je dat?
Sam
Het is dus geen menu
dan kan je beter je code uploaden
de hulp zal dan een stuk gerichter kunnen zijn.
onder extra opties in (onder aan het reactie of antwoordscherm)
kan je een bijlage uploaden
Als ik op die knop 7 klik (rechts) Kom ik in het scherpje dat je links ziet. Daarin moet ik bij "omschrijving"de keuze laten maken. dus met zo een pijltje rechts. Als ik het goed versta is dit een list_box commando. maar waar moet je dit commando plaatsen? In het dcl bestand? Hoe bouw ik dit op?
Bedankt voor de hulp!
Sam
of popup_list :?
als ik de dcl aanpas moet de lsp dan ook aangepast worden?
: popup_list {
label = "geefheteennaam";
key = "lijstnaam";
edit_width = 7;
}
de lijst defineer je in de lisp
de lisp en de dcl horen bij elkaar je moet ze dus waarschijnlijk beide aanpassen
:popup_list {
label = "Omschrijving";
width = 16;
list = "\Houtsp.plaat MUF\nHoutsp.pl. MUF met vellingkant\nH.sp.pl. MUF wit gegrond\nNaturspan-0\nNaturspan-0 met vellingkant\nNaturspan-0 wit gegrond";
height = 40;
}
ik moest de lisp niet aanpassen...
Bedankt hé!!!
Sam
dat kan ook
maar als je meer soorten en/of
"als dan" constructies in de lijst wilt inbouwen stop ik dit zelf liever in de lisp
aah oké, Seg een klein detail. Als ik in die lijst het juist geselcteerd heb en dan weer sluit dan houd hij die keuze niet bij. hoe komt dit?
Sam
hoe moet ik die list definieren in mijn lisp file?
Sam
(setq lijstnaam (list "100" "120" "140" ))
of
(setq lijstnaam '( "100" "120" "140" ))
het lukt nog altijd niet. Nu definieer ik mijn lijst in mijn lisp file maar hij vind de namen niet terug dus staat er niets in de lijst. Dit is mijn lisp.
(defun HSB-DAKP-Plaat-edit ( / k j l TileVar Soort)
(new_dialog "HSB_PLAAT_EDIT" DAKP)
(setq Spaanderplaten '( "Houtsp.plaat MUF" "Houtsp.pl. MUF met vellingkant" "Houtsp.plaat MUF wit" "H.sp.pl. MUF wit gegrond" "Naturspan-0" "Naturspan-0 met vellingkant" "Naturspan-0 wit gegrond" ))
(setq k 0)
(setq j 0)
(setq TileVar "")
(while (< k (strlen PlaatVar))
(setq k (+ k 1))
(setq l (substr PlaatVar k 1))
(if (= l ";")
(progn
(setq j (+ j 1))
(setq tile (strcat "PlaatVar" (itoa j)))
(if (get_tile tile)
(set_tile tile tilevar)
)
(if (= j 3)
(setq Soort (atoi TileVar))
)
(setq TileVar "")
);progn
(setq TileVar (strcat TileVar l))
)
)
(if (Not Soort) (setq Soort 1))
(HSB-DAKP-Plaat-Image Soort)
(action_tile "cancel"
"(setq HSB_OK nil)(done_dialog)"
)
(action_tile "accept"
"(setq HSB_OK 1)(HSB-DAKP-Plaat-OK)(done_dialog)"
)
(action_tile "Rechts"
"(setq Soort (+ Soort 1))(if (> Soort 8) (setq Soort 1))(HSB-DAKP-Plaat-Image Soort)"
)
(action_tile "Links"
"(setq Soort (- Soort 1))(if (< Soort 1) (setq Soort 8))(HSB-DAKP-Plaat-Image Soort)"
)
(start_dialog)
)
daar in het begin heb ik dus mijn lijst gedefinieerd (Spaanderplaten) dit is mijn dcl:
: popup_list {
label = "Omschrijving";
key = "Spaanderplaten";
edit_width = 40;
}
Weet er iemand waar dit stroef loopt?
1000 X bedankt voor de hulp
Sam
ik heb hier eens mijn oog op geworpen, maar dit is niet simpel e... we krijgen maar 1 subroutine om in te werken, de DCL is zeker al onvolledig, en of die while zal werken tijdens het aanspreken van uw dialoogbox betwijfel ik ook..... maar enfin dit is wat ik al aangepast heb:
(defun HSB-DAKP-Plaat-edit ( / k j l TileVar Soort)
(setq Spaanderplaten '( "Houtsp.plaat MUF" "Houtsp.pl. MUF met vellingkant" "Houtsp.plaat MUF wit" "H.sp.pl. MUF wit gegrond" "Naturspan-0" "Naturspan-0 met vellingkant" "Naturspan-0 wit gegrond" ))
(setq k 0)
(setq j 0)
(setq TileVar "")
(new_dialog "HSB_PLAAT_EDIT" (load_dialog DAKP))
(start_list "Spaanderplaten")
(while (< k (strlen PlaatVar))
(setq k (+ k 1))
(setq l (substr PlaatVar k 1))
(if (= l ";")
(progn
(setq j (+ j 1))
(setq tile (strcat "PlaatVar" (itoa j)))
(if (get_tile tile)
(set_tile tile tilevar))
(if (= j 3)
(setq Soort (atoi TileVar)))
(setq TileVar "")
);progn
(setq TileVar (strcat TileVar l))))
(if (Not Soort) (setq Soort 1)) ; indien geen soort gekozen = soort 1
(HSB-DAKP-Plaat-Image Soort) ; aanspreken subroutine?? niet aanwezig
(action_tile "cancel" "(setq HSB_OK nil)(done_dialog)")
(action_tile "accept" "(setq HSB_OK 1)(HSB-DAKP-Plaat-OK)(done_dialog)")
(action_tile "Rechts" "(setq Soort (+ Soort 1))(if (> Soort 8) (setq Soort 1))(HSB-DAKP-Plaat-Image Soort)")
(action_tile "Links" "(setq Soort (- Soort 1))(if (< Soort 1) (setq Soort 8))(HSB-DAKP-Plaat-Image Soort)")
(start_dialog)
(done_dialog)
(unload_dialog dia_id)
(if (= HSB_OK 1)
(programma verder lopen); hier verder programeren
(exit))
)
als dit inderdaad een subroutine moet zijn, dan zal je deze moeten herbekijken vrees ik en er van uitgaan dat de dialoogbox appart moet staan zoals in deze struktuur:
(setq a a
b b
lijst "lijst van de onderdelen"
enz enz....)
;laden dialoogbox
(setq dia_id (load_dialog naam-dialoogbox))
(new_dialog "dcl-file-naam" dia_id)
;instellen dialoogbox
(start_list "lijst");starten van de lijst om ze zichtbaar te maken
(action_tile "tile-x" "(subroutine aanspreken)"); als je tile-x aanspreekt >> subroutine starten
(action_tile "cancel" "(SETQ ok_ nil)");cancel => ok_ op nil
;laten verschijnen van dialoogbox
(start_dialog)
(done_dialog)
;ontladen dialoogbox
(unload_dialog dia_id)
;programma als ok_ niet nil is
(if (= ok_ nil)
(exit)
(progn
hier komt dan uw programma die de waardes uit het dialoogboxke gebruikt))
in bijlage vindt u het volledige dcl en lsp bestand.
HSB_BLOK_EDIT : dialog {
label = "muurbeschrijving";
:edit_box {
label = "Dikte ";
key="PlaatVar1";
width = 16;
}
:edit_box {
label = "Omschrijving";
key="PlaatVar2";
width = 16;
}
:boxed_row {
label="Verdeling";
:button {
label ="<";
key = "Links";
}
:image {
key="PlaatImage";
aspect_ratio = 1.4;
height=10;
}
:button {
label =">";
key = "Rechts";
}
}
:edit_box {
label= "A";
key="PlaatVar4";
width = 16;
}
:edit_box {
label="B";
key="PlaatVar5";
width = 16;
}
ok_cancel;
}
HSB_PLAAT_EDIT : dialog {
label = "Plaat beschrijving";
:edit_box {
label = "Dikte";
key="PlaatVar1";
width = 16;
}
: popup_list {
popup_height = 4;
label = "Omschrijving";
value = "";
key = "lijst";
fixed_width_font = true;
edit_width = 40;
}
:boxed_row {
label="Verdeling";
:button {
label ="<";
key = "Links";
}
:image {
key="PlaatImage";
aspect_ratio = 1.4;
height=10;
}
:button {
label =">";
key = "Rechts";
}
}
:edit_box {
label= "A";
key="PlaatVar4";
width = 16;
}
:edit_box {
label="B";
key="PlaatVar5";
width = 16;
}
:edit_box {
label="C";
key="PlaatVar6";
width = 16;
}
:edit_box {
label="D";
key="PlaatVar7";
width = 16;
}
ok_cancel;
}
HSB_DETAIL_LIJST : dialog {
label = "Keuze details";
:row {
:image {
key="DetailImage";
aspect_ratio = 1.4;
height=16;
}
:column {
:popup_list {
key="DetailList";
width = 20;
}
:text {
key="DetailLabel2";
width = 16;
}
:text {
key="DetailLabel3";
width = 16;
}
:text {
key="DetailLabel4";
width = 16;
}
:text {
key="DetailLabel5";
width = 16;
}
:text {
key="DetailLabel6";
width = 16;
}
:text {
key="DetailLabel7";
width = 16;
}
:text {
key="DetailLabel8";
width = 16;
}
:text {
key="DetailLabel9";
width = 16;
}
:text {
key="DetailLabel10";
width = 16;
}
:text {
key="DetailLabel11";
width = 16;
}
:text {
key="DetailLabel12";
width = 16;
}
}
}
:row {
:button {
label= "Delete";
key="Delete";
}
:button {
label = "Cancel";
key="cancel";
is_cancel =true;
}
}
}
HSB_GAT_VAR : dialog {
label = "Gat";
:column {
:edit_box {
label="Omschrijving";
key="Omschrijving";
edit_width = 16;
}
:edit_box {
label="Diameter ";
key="Diameter";
edit_width = 8;
}
:toggle {
label="Boven ";
key="Boven";
}
:toggle {
label="Onder ";
key="Onder";
}
}
ok_cancel;
}
HSB_DAKP_OPENING : dialog {
label = "Keuze openingen";
:list_box {
key="OpeningList";
width = 40;
}
:row {
ok_cancel;
:button {
label= "Delete";
key="Delete";
}
}
}
HSB_OPENING_VAR : dialog {
label = "Dakraam-beschrijving";
:column {
:boxed_column {
:button {
key="OpeningKeuze";
label= "D E F A U L T";
}
:button {
key="SaveDefault";
label= "Save as default";
}
}
:edit_box {
label="Omschrijving";
key="Omschrijving";
edit_width = 16;
}
:boxed_column {
label="Afmetingen";
:edit_box {
label="Hoogte boven ";
key="HoogteBoven";
edit_width = 8;
}
:edit_box {
label="Hoogte raam ";
key="HoogteRaam";
edit_width = 8;
}
:edit_box {
label="Afstand panlat ";
key="AfstandPanlat";
edit_width = 8;
}
}
:boxed_column {
label="Details";
:row {
:column{
:text{
label="Boven ";
}
:text{
label="Schuin Boven ";
}
:text{
label="Onder ";
}
:text{
label="Schuin Onder ";
}
:row {
:text{
label="Links ";
}
:edit_box {
key="AantalLinks";
edit_width = 2;
}
}
:row {
:text{
label="Rechts ";
}
:edit_box {
key="AantalRechts";
edit_width = 2;
}
}
}
:column{
:edit_box {
key="DetailBoven";
edit_width = 12;
}
:edit_box {
key="DetailSchuinBoven";
edit_width = 12;
}
:edit_box {
key="DetailOnder";
edit_width = 12;
}
:edit_box {
key="DetailSchuinOnder";
edit_width = 12;
}
:edit_box {
key="DetailLinks";
edit_width = 12;
}
:edit_box {
key="DetailRechts";
edit_width = 12;
}
}
:column{
:button {
label= "EDIT";
key="DetailBovenEdit";
fixed_width = 4;
}
:button {
label= "EDIT";
key="DetailSchuinBovenEdit";
fixed_width = 4;
}
:button {
label= "EDIT";
key="DetailOnderEdit";
fixed_width = 4;
}
:button {
label= "EDIT";
key="DetailSchuinOnderEdit";
fixed_width = 4;
}
:button {
label= "EDIT";
key="DetailLinksEdit";
fixed_width = 4;
}
:button {
label= "EDIT";
key="DetailRechtsEdit";
fixed_width = 4;
}
}
}
}
}
ok_cancel;
}
bedankt voor de hulp. Als het lukt dat trakteer ik je!
groet sam
Citaat van: fcbsam op wo 07 03 2007, 09:01:37
oeps negeer die code. ik kon die dcl niet in bijlage steken maar ik voeg ze nu toe als txt
DCL ziet er uit zoals ik vermoed had...
maar zonder de LSP kan ik het niet doen werken....
je bent wel op goede weg met je lisp, alleen moet je dus idd zoals ik zei 2 subroutines hebben...
eentje voor de klik op linkse pijltje, die dan alle vensters aanpast + andere foto toont.... en visa versa
een while tijdens het inlezen/inladen/aanspreken een dialoogbox kan niet (tenzij het mij iemand anders bewijst)...