CADsite forum

AutoCAD => Autolisp => Topic gestart door: Atwist op ma 31 05 2010, 19:12:53

Titel: Style wil niet current worden (Opgelost door HofCad)
Bericht door: Atwist op ma 31 05 2010, 19:12:53
Hallo forumleden,

Ik heb nu zelf een lisp gemaakt met deze wissel ik naar een tekst layer dit werkt goed, maar ik wil ook van textstyle wisselen , maar dit krijg ik niet goed.
Het commando Dtext werkt wel weer goed.

  ((= op "18")
   (command "-layer" "S" "Tekst-18" "")
   (command "-style" "Tekst-18" "isocp" "A" "Y" "N" "1.8" "" "" "" "" "")
   (command "_Dtext" "" ""))


Wil zou eens willen kijken wat er mis is.

Atwist
Titel: Re:Style wil niet current worden
Bericht door: EddyBeerke op di 01 06 2010, 12:23:15
Citaat van: Atwist op ma 31 05 2010, 19:12:53
Hallo forumleden,

Ik heb nu zelf een lisp gemaakt met deze wissel ik naar een tekst layer dit werkt goed, maar ik wil ook van textstyle wisselen , maar dit krijg ik niet goed.
Het commando Dtext werkt wel weer goed.

   ((= op "18")
    (command "-layer" "S" "Tekst-18" "")
    (command "-style" "Tekst-18" "isocp" "A" "Y" "N" "1.8" "" "" "" "" "")
    (command "_Dtext" "" ""))


Wil zou eens willen kijken wat er mis is.

Atwist

Vervang:
(command "-style" "Tekst-18" "isocp" "A" "Y" "N" "1.8" "" "" "" "" "")

door:
(command "-style" "Tekst-18" "isocp" "A" "Y" "N" "1.8" "" "" "" "")


Uitleg:
Er zat een "" teveel bij het (actief) maken van de style.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op di 01 06 2010, 15:35:32
EddyBeerke,

Dank voor jou reactie, heb gelijk de lisp gewijzigd en de textstyle wordt nu wel current maar als ik een tekst wil plaatsen dan worde de tekst niet in die style uitgevoerd.
Weet jij misschien daar ook een oplossing op?

Atwist
Titel: Re:Style wil niet current worden
Bericht door: EddyBeerke op di 01 06 2010, 21:16:24
Citaat van: Atwist op di 01 06 2010, 15:35:32
EddyBeerke,

Dank voor jou reactie, heb gelijk de lisp gewijzigd en de textstyle wordt nu wel current maar als ik een tekst wil plaatsen dan worde de tekst niet in die style uitgevoerd.
Weet jij misschien daar ook een oplossing op?

Atwist

Wat ik altijd doe is op de commandline intypen wat het moet worden.
Dan als het naar wens is verwerken in de lisp.
Titel: Re:Style wil niet current worden
Bericht door: Joop op wo 02 06 2010, 08:09:43
In de op dit forum geplaatste cursus voor het maken van scripts staat een uitgebreide beschrijving voor het maken van scripts.
Deze zelfde techniek is van toepassing voor lisp, met het verschil dat de opdracten tussen aanhalingstekens geplaatst moeten worden en voor enter "" gebruikt wordt.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 08:53:34
@EddyBeerke

Zo doe ik het nu meestal ook (tip destijds van Roy) waar dan werkt het als ik deze dan weer in de lisp zet werkt het niet.

@Joop

Ik ben met de "" ook al bezig geweest maar ook dan krijg ik het niet voor elkaar.

Atwist
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op do 03 06 2010, 09:37:44
Citaat van: Atwist op do 03 06 2010, 08:53:34
@EddyBeerke

Zo doe ik het nu meestal ook (tip destijds van Roy) waar dan werkt het als ik deze dan weer in de lisp zet werkt het niet.

@Joop

Ik ben met de "" ook al bezig geweest maar ook dan krijg ik het niet voor elkaar.

Atwist
Beste Atwist,

Wat krijg je niet voor elkaar?
Als het een Teksstijl actief maken is, dan kun je dat bijv. met:
(setvar "TEXTSTYLE" "Tekst-18")
als de tekststijl 'Tekst-18' bestaat.
Maar je kan dat ook doen in je tekencommando TEXT:
(command "_.TEXT" "S" "Tekst-18" "J" "MC")
en bij rotation angle van de tekst met een vaste hoek 0
(command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0")

Met vriendelijke groet, HofCAD CSI.

PS1 Let bij het aanmaken van de stijl of de optie Vertical bestaat bij het font.
PS2 Let bij het tekenen of je een tekststijl met een vaste of een variabele hoogte actief hebt.
Titel: Re:Style wil niet current worden
Bericht door: Joop op do 03 06 2010, 09:38:37
Het is heel belangrijk dat je goed leest wat er op de commandlijn verschijnt in antwoord op jouw invoer.
Ook mij overkomt het dat ik over iets heen lees of denk dat ik het wel weet terwijl AutoCAD er anders overdenkt.

Sommige opdrachten reageren anders op de diverse waarden van verschillende systeemvariabelen.

Als je bijvoorbeeld een tekening saved en daarna afsluit wordt de tekeningen zondermeer afgesloten.
Heb je van tevoren niet gesaved dan krijg je de vraag of je de wijzigingen wilt opslaan.
Vanuit een script kan het je gebeuren dat er gevraagd wordt of je de wijzigingen wilt NEGEREN.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 10:41:55
@ Hofcad

Dank voor je antwoord, veranderen van textstyle werkt als een trein Alleen het commando "dtext"wordt niet herkend
In plaats van dtext uitvoeren wordt de tekst dtext op het scherm gezet.
Terwijl het in de lisp toch goed staat als commando.
((= op "18")
    (command "-layer" "S" "Tekst-18" "")
    (command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0")
    (command "dtext"))
   ((= op "25")
    (command "-layer" "S" "Tekst-25" "")
    (command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0")
    (command "dtext"))


@ Joop

Asl ik een commando op de Commandline uit probeer dan schrijf ik elke stap op om fouten te voorkomen als ik dit niet doe dan ben ik zo de kluts kwijt :lol:.
En inderdaad eerst 3 keer lezen voor de volgende stap.
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op do 03 06 2010, 10:50:41
Citaat van: Atwist op do 03 06 2010, 10:41:55
@ Hofcad

Dank voor je antwoord, veranderen van textstyle werkt als een trein Alleen het commando "dtext"wordt niet herkend
In plaats van dtext uitvoeren wordt de tekst dtext op het scherm gezet.
Terwijl het in de lisp toch goed staat als commando.
((= op "18")
    (command "-layer" "S" "Tekst-18" "")
    (command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0")
    (command "dtext"))
   ((= op "25")
    (command "-layer" "S" "Tekst-25" "")
    (command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0")
    (command "dtext"))


@ Joop

Asl ik een commando op de Commandline uit probeer dan schrijf ik elke stap op om fouten te voorkomen als ik dit niet doe dan ben ik zo de kluts kwijt :lol:.
En inderdaad eerst 3 keer lezen voor de volgende stap.
Beste Attwist,

Vroeger was er een verschil tussen de werking van het commando TEXT en
het commando DTEXT, want toen was het commando TEXT niet dynamisch.
Bij het normaal tekenen is dat verschil weggevallen, maar in een programma
en in een script moet je TEXT gebruiken en dan is TEXT niet dynamisch.

Met vriendelijke groet, HofCAD CSI.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 11:04:48
HofCad,

Ik heb dtext gewijzigd in text
(start_dialog)
  (cond
   ((= op "18")
    (command "-layer" "S" "Tekst-18" "")
    (command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0")
    (command "text"))
   ((= op "25")
    (command "-layer" "S" "Tekst-25" "")
    (command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0")
    (command "text"))


Maar in plaats van dtext wordt ni text in het scherm gezet.

Current text style:  "Tekst-25"  Text height:  1.8000  Annotative:  Yes
Specify start point of text or [Justify/Style]: J Enter an option
[Align/Fit/Center/Middle/Right/TL/TC/TR/ML/MC/MR/BL/BC/BR]: MC
Specify middle point of text:
Specify rotation angle of text <0>: 0
Enter text: text


Kortom snap ik er nu niets meer van, naar mijn mening heb ik toch alles goed staan

Atwist
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op do 03 06 2010, 11:10:57
Beste Atwist,

Waarom de regel  (command "text")), want je hebt op de regel daar boven al
het commando TEXT aangeroepen.
(start_dialog)
(cond
  ((= op "18")
   (command "_.-LAYER" "S" "Tekst-18" "")
   (command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0" ))
  ((= op "25")
   (command "_.-LAYER" "S" "Tekst-25" "")
   (command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0" ))
)

of
(start_dialog)
 (cond
  ((= op "18")
   (command "_.-LAYER" "S" "Tekst-18" "")
   (command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0" (getstring)))
  ((= op "25")
   (command "_.-LAYER" "S" "Tekst-25" "")
   (command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0" (getstring)))
)


Met vriendelijke groet, HofCAD CSI.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 13:34:08
HofCad

Ja ik zie het maar als ik de regel Command "text" weg hal de kan ik geen tekst invoegen ik krijg dan gelijk weer mijn keuze scherm te zien.

Titel: Re:Style wil niet current worden
Bericht door: HofCAD op do 03 06 2010, 13:38:28
Citaat van: Atwist op do 03 06 2010, 13:34:08
HofCad

Ja ik zie het maar als ik de regel Command "text" weg hal de kan ik geen tekst invoegen ik krijg dan gelijk weer mijn keuze scherm te zien.


Beste Atwist,

Probeer het volgende op de commando regel te plakken:

(setq op "18")
(cond
((= op "18")
(command "_.-LAYER" "S" "Tekst-18" "")
(command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0" (getstring)))
((= op "25")
(command "_.-LAYER" "S" "Tekst-25" "")
(command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0" (getstring)))
)


Gaat het dan wel goed?
Als dit goed gaat, dan krijgt de variabele op niet de waarde "18" of "25".

Met vriendelijke groet, HofCAD CSI.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 14:00:16
HofCad,

Deze werkt perfect, moet alleen wel even opletten dat ik de tekst ivoer via commandline in plaats van op het scherm.

Mijn dank is groot :vreegoe:

Atwist
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op do 03 06 2010, 14:06:22
Citaat van: Atwist op do 03 06 2010, 14:00:16
HofCad,

Deze werkt perfect, moet alleen wel even opletten dat ik de tekst ivoer via commandline in plaats van op het scherm.

Mijn dank is groot :vreegoe:

Atwist
Beste Atwist,

Wat bedoel je met: "moet alleen wel even opletten dat ik de tekst ivoer via commandline in plaats van op het scherm."
Volgens mij zit of zat de fout in je dialoogbox (zie (start_dialog)), dat daar de variabele op niet op een juiste waarde wordt gezet.

Met vriendelijke groet, HofCAD CSI.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op do 03 06 2010, 15:08:27
 :shock:

Deze snap ik even niet omdat hij voor die tijd wel goed ging.

Er is niet gewijzigd in het eerste deel van lisp.

(defun c:tlm( / dlg_id do_act loop key_pr)
(defun do_act(key_pr)
  (setq op key_pr)
  (if (= key_pr "cancel") (setq loop 0))
  (setq dlg_pt (done_dialog loop))
)
(setq id (load_dialog "tlm") loop 1)
(if (< id 0) (exit))
(if (not dlg_pt) (setq dlg_pt (list -1 -1)))
(while (/= loop 0)
  (if (not (new_dialog "tlm" id "" dlg_pt))
   (exit)
  )
  (action_tile "18" "(do_act $key)")
  (action_tile "25" "(do_act $key)")
  (action_tile "35" "(do_act $key)")
  (action_tile "50" "(do_act $key)")
  (action_tile "70" "(do_act $key)")
  (action_tile "100" "(do_act $key)")
  (action_tile "140" "(do_act $key)")
  (action_tile "200" "(do_act $key)")
  (action_tile "ont" "(do_act $key)")
  (action_tile "cancel" "(do_act $key)")
 
  (start_dialog)
  (cond
((= op "18")
(command "_.-LAYER" "S" "Tekst-18" "")
(command "_.TEXT" "S" "Tekst-18" "J" "MC" (getpoint) "0" (getstring)))
((= op "25")
(command "_.-LAYER" "S" "Tekst-25" "")
(command "_.TEXT" "S" "Tekst-25" "J" "MC" (getpoint) "0" (getstring)))

Titel: Re:Style wil niet current worden
Bericht door: Atwist op vr 04 06 2010, 08:13:23
Heb gisteren eeen tijd zitten puzzelen en vergeleken met een andere lisp die bijne de gelijke opbouw heeft en die wel op het tekenblad werkt.

Heeft iemand nog een oplossing wand het is erg vervelend als je een zin moet in tikken en dan de spatie gebruikt.

Atwist
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op vr 04 06 2010, 11:30:20
Citaat van: Atwist op vr 04 06 2010, 08:13:23
Heb gisteren eeen tijd zitten puzzelen en vergeleken met een andere lisp die bijne de gelijke opbouw heeft en die wel op het tekenblad werkt.

Heeft iemand nog een oplossing wand het is erg vervelend als je een zin moet in tikken en dan de spatie gebruikt.

Atwist
Beste Atwist,

Je hebt niet de DCL file toegevoegd.
Dus ik snap niet:
1) die wel op het tekenblad werkt.
2) en dan de spatie gebruikt.

In de bijlage (attachment) vind je de Lisp file StartTxt.lsp die zelf StartTxt.dcl aanmaakt,
en werkt met tekststijlen en lagen: Tekst-18, Tekst-25, Tekst-35, Tekst-50, Tekst-70,
Tekst-100, Tekst-140 en Tekst-200.


Met vriendelijke groet, HofCAD CSI.

PS Als de DCL file nog niet is aangemaakt krijg je de eerste keer een foutmelding,
maar daarna gaat het goed.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op vr 04 06 2010, 14:29:14
Beste HofCad,

Ik waardeer jou hulp enorm, alleen de laatste oplossing is gelijk aan die van mij, ook hier moet ik de tekst in de commandline invoeren en dat is bij lange zinnen niet te doen.
Graag zou ik de cursor op mijn werkblad willen hebben wandt dan kan ik achter elkaar door tikken.
Titel: Re:Style wil niet current worden
Bericht door: HofCAD op vr 04 06 2010, 16:19:14
Citaat van: Atwist op vr 04 06 2010, 14:29:14
Beste HofCad,

Ik waardeer jou hulp enorm, alleen de laatste oplossing is gelijk aan die van mij, ook hier moet ik de tekst in de commandline invoeren en dat is bij lange zinnen niet te doen.
Graag zou ik de cursor op mijn werkblad willen hebben wandt dan kan ik achter elkaar door tikken.

Beste Atwist,

Ik zie het probleem niet, of ik begrijp je niet.
Verder zie ik een groot verschil tussen mijn aanpak en je TLM programma.
Maar verander in de file StartTxt.lsp de regel
(command "_.TEXT" "S" Choice "J" "MC" (getpoint) "0" (getstring))
in
(command "_.DTEXT" "_S" Choice "_J" "_MC" (getpoint) "0")
Misschien bedoel je dat?

Met vriendelijke groet, HofCAD CSI.
Titel: Re:Style wil niet current worden
Bericht door: Atwist op vr 04 06 2010, 18:38:11
Beste HofCad,

De dtext is de oplossing :vreegoe:
Nu werkt het perfect :mrgreen:


Mijn dank is enorm groot.

Een heel zonning en prettig weekend.

Atwist