yoin

martijn

Hallo,

Is er een manier om in een lispfile de textwidth aan te passen??
Bij sommige lettertypes kun je in het properties menu de textbreedte aanpassen, dit is niet bij elk lettertype mogelijk.
Ga je echter naar de text instellingen via format --> textstyle kun je de breedte wel aanpassen.
Nu is het zo dat we een standaard lettertype hebben dat we gebruiken en dit met een lispfile overal teksten neerzetten in een rechthoekje. Voor de mooi zou de tekst iets smaller moeten zijn. Dus vandaar mijn vraag. Is dit mogelijk en zo ja, hoe??

alvast bedankt,

Martijn





HofCAD

Citaat van: martijn op ma 22 10 2007, 16:15:11
Hallo,

Is er een manier om in een lispfile de textwidth aan te passen??
Bij sommige lettertypes kun je in het properties menu de textbreedte aanpassen, dit is niet bij elk lettertype mogelijk.
Ga je echter naar de text instellingen via format --> textstyle kun je de breedte wel aanpassen.
Nu is het zo dat we een standaard lettertype hebben dat we gebruiken en dit met een lispfile overal teksten neerzetten in een rechthoekje. Voor de mooi zou de tekst iets smaller moeten zijn. Dus vandaar mijn vraag. Is dit mogelijk en zo ja, hoe??
alvast bedankt,
Martijn

Beste Martijn,

Hoe je dit kan doen binnen blocks kan je lezen in
http://www.cadsite.be/smf/index.php/topic,1253.0.html
Heb je het overigens al geprobeerd met PROPERTIES?
Op dit moment kan ik niet aan je probleem werken,
omdat ik mijn vrije tijd geen AutoCAD ter beschikking heb.

Met vriendelijke groet,
HofCAD CSI uit Albanie.
ACADcadabra

martijn

Ik kom er niet helemaal uit en heb daarom de lisp hier maar even geplaats.
Deze lisp file tekent een rechthoekjes met een door jouw aangegeven begin nummer en hierna kun je doorklikken voor opvolgende nummers. Zo nummeren wij onze plafond en wand panelen. Nu is het echter zo dat als we een standaard lettertype gebruiken wat we ook in de rest van de tekening gebruiken en we komen bij de 100-tallen dan komen de cijfer buiten het rechthoekje. Nu kunnen we de tekstbreedte aanpassen, maar ik weet niet hoe je dit in een lispfile gedaan kunt krijgen.
De textwidth en textheight hieronder in het rood lijken niets te doen in de lisp file. Iemand enig idee?


(defun c:pnl-k   ()
               ; get first number
 
  (setq prefix "P")
 
  (command ".layer""s""K11" "")
  (setq stnum (getint "\nStarting number? "))
  (setq label (strcat prefix (itoa stnum)))
  (setq incrnum 1)

  (command "textstyle" "18")
  (setq txtwidth 0.5)
  (setq txtht 50) 
  (setq placepoint (getpoint "\Select text location: "))
 

(command "text" placepoint "0" label)


; de object snap instellingen worden tijdelijk uitgeschakeld
   (setq osm (getvar "osmode"))
   (if (< osm 16384) (setvar "osmode" (+ osm 16384)))

  (setq pt1(cdr(assoc 10 (entget(entlast)))))
  (setq pt2(polar pt1 1.4 -50))
  (setq pt3(polar pt2 0.785398 212))
  (command "rectangle" pt2 pt3)

; de objectsnap wordt weer aangezet
  (setvar "osmode" osm)

  (setq stnum (+ stnum incrnum))
  (setq label (strcat prefix (itoa stnum)))
  (setq placepoint (getpoint "\Select text location: "))
  (while (/= placepoint nil)
    (command "text" placepoint "0" label)

; de object snap instellingen worden tijdelijk uitgeschakeld
   (setq osm (getvar "osmode"))
   (if (< osm 16384) (setvar "osmode" (+ osm 16384)))

(setq pt1(cdr(assoc 10 (entget(entlast)))))
  (setq pt2(polar pt1 1.4 -50))
  (setq pt3(polar pt2 0.785398 212))
  (command "rectangle" pt2 pt3)

; de objectsnap wordt weer aangezet
  (setvar "osmode" osm)

    (setq stnum (+ stnum incrnum))
    (setq label (strcat prefix (itoa stnum)))
    (setq placepoint (getpoint "\Select text location: "))
  )               ;end while
  (princ)
)               ; end defun
(prompt "\nType plafondnum to run. ")


WebRacer

hoi, dag Martijn,
ik keek dit even na en deed enkele aanpassingen...
zie gele teksten.
Dit programma kan anders en beter opgebouwd worden, maar ik liet het zoveel mogelijk in de oorspronkelijke staat staan.
Ik testte in acad 2008, bij mij werkt het ook als: de text-style aanwezig is en de laag K11
uw text-width zou je in uw text-style moeten plaatsen op 0.5..


(defun c:pnl-k   ()
; get first number   
  (setq prefix "P") 
  (command ".layer" "s" "K11" "")
  (setq stnum (getint "\nStarting number? "))
  (setq label (strcat prefix (itoa stnum)))
  (setq incrnum 1)
  (command "textstyle" "18")
  ;(setq txtwidth 0.5)
  (setq txtht 50) 
  (setq placepoint (getpoint "\Select text location: "))
  (command "text" placepoint txtht "0" label)

; de object snap instellingen worden tijdelijk uitgeschakeld
   (setq osm (getvar "osmode"))
   (if (< osm 16384) (setvar "osmode" (+ osm 16384)))
  (setq pt1(cdr(assoc 10 (entget(entlast)))))
  (setq pt2(polar pt1 1.4 -50))
  (setq pt3(polar pt2 0.785398 212))
  (command "rectangle" pt2 pt3)

; de objectsnap wordt weer aangezet
  (setvar "osmode" osm)
  (setq stnum (+ stnum incrnum))
  (setq label (strcat prefix (itoa stnum)))
  (setq placepoint (getpoint "\Select text location: "))
  (while (/= placepoint nil)
    (command "text" placepoint txtht "0" label)

; de object snap instellingen worden tijdelijk uitgeschakeld
    (setq osm (getvar "osmode"))
    (if (< osm 16384) (setvar "osmode" (+ osm 16384)))
    (setq pt1(cdr(assoc 10 (entget(entlast)))))
    (setq pt2(polar pt1 1.4 -50))
    (setq pt3(polar pt2 0.785398 212))
    (command "rectangle" pt2 pt3)

; de objectsnap wordt weer aangezet
   (setvar "osmode" osm)
   (setq stnum (+ stnum incrnum))
   (setq label (strcat prefix (itoa stnum)))
   (setq placepoint (getpoint "\Select text location: "))
  )               ;end while
  (princ)
)               ; end defun
(prompt "\nType pnl-k to run. ")
?

martijn

Bedankt voor de aanpassingen. Het zal vast wel beter kunnen, maar ik ben 'nog' niet echt thuis in lisp.
Het probleem is alleen zo alleen nog niet opgelost. Die textwidth aanpassen zou ik graag in de lispfile terug zien zodat ik dit niet hoef aan te passen in de properties.

Reinier

Citaat van: martijn op do 25 10 2007, 07:43:05
Bedankt voor de aanpassingen. Het zal vast wel beter kunnen, maar ik ben 'nog' niet echt thuis in lisp.
Het probleem is alleen zo alleen nog niet opgelost. Die textwidth aanpassen zou ik graag in de lispfile terug zien zodat ik dit niet hoef aan te passen in de properties.

Kun je commanda "ma" niet proberen?
De creatieve denker ziet het onzichtbare,... voelt het ontastbare en bereikt het onmogelijke....

bart

mogelijk 1

aan het begin van de lisp gebruik je het commando -style en past de style naar wens aan.

aan het eind van het commando zet je de style weer standaard.

een foutafhandeling er omheen die de style voor je reset als je de lisp afbreekt en klaar is martijn

mogelijk 2

je maakt een extra textstyle aan (eventueel binnen de lisp)
en gebruikt deze om de text te plaatsen
aan het einde van de lisp  zet je de style weer terug
de textsyle kan je resetten met (getvar "textstyle")
zoals je nu ook met osmode doet
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart