FastFiber

menu om een textstyle te maken

Gestart door Atwist, ma 03 05 2010, 18:19:30

Vorige topic - Volgende topic

Atwist

Hallo forumleden,

Ik ben opzoek naar een menu (lisp en dcl) om textstyle te maken door middel van vinkje te zetten in het dcl menu.
Heb op het net al gegoogled maar kan niets vinden.
Heeft iemand zo'n bestandje of een voorbeeld.
Als ik maar van de lisp een begin een einde en een regel dat een textstyle wordt gemaakt, dan kan ik deze verder uitbreiden.

Alvast bedank voor jullie moeite.

Atwist
Atwist

AutoCad 2008.

Lyrix

Ik heb een lisp voor onze eigen huisstyle dim.

Er zit alleen geen dcl bij omdat de style altijd het zelfde is.
Misschien kan je er iets mee.

(defun c:dim-mampaey ()
(command "-style" "isocp" "isocp" "" "" "" "" "" "")
(command "dim"
"DIMASO" "on"
"DIMADEC" "0"
"DIMALT" "Off"
"DIMALTD" "3"
"DIMALTF" "0.0394"
"DIMALTRND" "0.0000"
"DIMALTTD" "3"
"DIMALTTZ" "0"
"DIMALTU" "2"
"DIMALTZ" "0"
"DIMASZ" "1.000"
"DIMATFIT" "3"
"DIMAUNIT" "0"
"DIMAZIN" "0"
"DIMBLK" "Oblique"
"DIMBLK1" "Oblique"
"DIMBLK2" "Oblique"
"DIMCEN" "2.500"
"DIMCLRD" "BYLAYER"
"DIMCLRE" "BYLAYER"
"DIMCLRT" "BYLAYER"
"DIMDEC" "0"
"DIMDLE" "0.5000"
"DIMDLI" "3.7500"
"DIMDSEP" ","
"DIMEXE" "0.5000"
"DIMEXO" "0.6250"
"DIMFRAC" "0"
"DIMGAP" "0.6250"
"DIMJUST" "0"
"DIMLDRBLK" "Oblique"
"DIMLFAC" "1.000"
"DIMLIM" "Off"
"DIMLUNIT" "2"
"DIMLWD" "-2"
"DIMLWE" "-2"
"DIMRND" "0.0000"
"DIMSAH" "Off"
"DIMSCALE" "50.000"
"DIMSD1" "Off"
"DIMSD2" "Off"
"DIMSE1" "Off"
"DIMSE2" "Off"
"DIMSOXD" "Off"
"DIMTAD" "1"
"DIMTDEC" "0"
"DIMTFAC" "10.000"
"DIMTIH" "Off"
"DIMTIX" "Off"
"DIMTM"   "0.0000"
"DIMTMOVE" "0"
"DIMTOFL" "On"
"DIMTOH" "Off"
"DIMTOL" "Off"
"DIMTOLJ" "0"
"DIMTP" "0.0000"
"DIMTSZ" "0.0000"
"DIMTVP" "0.0000"
"DIMTXSTY" "isocp"
"DIMTXT" "1.800"
"DIMTZIN" "8"
"DIMUPT" "Off"
"DIMZIN" "8"
"exit")
(command "-dimstyle" "s" "MAMPAEY")
(GRAPHSCR)
)




Atwist

Hallo lyrix,

Dank voor je antwoord, alleen zoek ik iets voor de textstyle de dimstyle wijzigt bij mij ook niet snel.
Ik purg namelijk mijn tekeningen regelmatig en dan gaan de nog niet gebruikte textstyles weg, vandaar dat ik dit in een menu vorm wil hebben.

Atwist
Atwist

AutoCad 2008.

bart

Het commando style voldoet niet ?
Wat zou je anders willen zien?
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Atwist

Hallo bart,

Het commando style voldoet in mijn geval niet, wat ik graag zou willen is dat ik een keuze lijst krijg waaruit ik kan kiezen uit mijn textstyles.
Ik heb dit nu ook voor mijn layers die ik wil invoegen, het is gewoon kiezen welke gemaakt moet worden.

Als ik maar een begin van een lisp heb en het einde met daar tussen 1 commando zodat een textstyle wordt gemaakt dan den ik al tevreden en de rest knutsel ik er wel tussen.

Mijn kennis van lispsis nog niet zo dat ik zelfstandig en lisp kan maken maar het verbouwen lukt wel vandaar de bov enstaande regel.

Atwist
Atwist

AutoCad 2008.

roy_043

Beste Atwist,

Waarom niet de andere weg bewandeld: voorkomen dat zaken ongewild worden gepurged. Van alle dingen die niet mogen worden gepurged kun je een exemplaar* opnemen op een aparte, hiervoor gereserveerde layout (die nooit wordt geplot) of in een speciaal data-block (dat je plaatst op een uniek laag die je vervolgens bevriest). Waarbij een layout overzichtelijker en flexibeler is. Het voordeel van een data-block is dat je alle huisstijl-info m.b.v. dit block in 1x in een tekening kunt importeren. Desgewenst kun je zo'n data-block natuurlijk ook op een eigen layout plaatsen.

* een "exemplaar" kan zijn:
een insert van een block
een lijn op bepaalde layer
een lijn met een bepaald linetype
een tekst met een bepaalde style
een maatlijn met een bepaalde dim style.

Atwist

Hallo Roy,

Dit is inderdaad ook een optie hier hab ik niet aangedacht terwijl ik dit vroeger ook zo deed.

Je hebt mij weer even op het goede spoor gezet

Mijn dank hiervoor

Atwist
Atwist

AutoCad 2008.

EddyBeerke

Al eens aan Designcenter gedacht?
Als je namelijk een voorbeeldtekening hebt kun je hiermee lagen, blocks, textstylen, dimstylen, linestylen, layouts en zelfs xrefs d.m.v. dbklik invoegen of slepen.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

Atwist

Hallo forumleden,

Heb nu toch een menu gemaakt (verbouwd) maar loop tegen een probleem aan de lisp maak voor mij netjes een laag aan ik maak deze current (SET) de textstyle wordt ook netjes gemaakt.
Maar nu wil ik van textstyle en layer wijzigen dat gaat ook nog goed de laag textstyle wordt gemaakt maar deze wordt niet current gemaakt hij blijft dus op de eerst gemaakte laag en textstyle staan.
Willen jullie eens kijken wat er mis is?

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


Alvast bedank.

Atwist
Atwist

AutoCad 2008.

roy_043

Atwist: jouw code-fragment is veel te beperkt. Toch alvast 2 opmerkingen:

1.
Dit:
"-layer" "M" "Tekst-18" "S" "Tekst-18" ""
Kun je vervangen door:
"-layer" "M" "Tekst-18" ""
Idem voor alle andere teksthoogtes.
2.
Het probleem dat jij signaleert wordt NIET veroorzaakt door dit code-fragment. Ik vermoed dat na dit fragment ergens anders een oude laag wordt geheractiveerd.

Atwist

Hallo Roy,

Dank voor je antwoord .
Alleen snap ik jouw antwoord niet hellemaal ik maak eerst de layer en ik wil dan deze layer current maken dus moet ik toch na het maken van de layer de layer met "set" current maken.

Ik doe hierbij het hele bestand.

(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 "-style" "Tekst-18" "isocp" "A" "Y" "N" "1.8" "" "" "" "" "" "-layer" "M" "Tekst-18" "S" "Tekst-18" "" "_Dtext" ""))
   ((= op "25")
    (command "-style" "Tekst-25" "isocp" "A" "Y" "N" "2.5" "" "" "" "" "" "-layer" "M" "Tekst-25" "S" "Tekst-25" "" "_Dtext" ""))
   ((= op "35")
    (command "-style" "Tekst-35" "isocp" "A" "Y" "N" "3.5" "" "" "" "" "" "-layer" "M" "Tekst-35" "S" "Tekst-35" "" "_Dtext" ""))
   ((= op "50")
    (command "-style" "Tekst-50" "isocp" "A" "Y" "N" "5" "" "" "" "" "" "-layer" "M" "Tekst-50" "S" "Tekst-50" "" "_Dtext" ""))
   ((= op "70")
    (command "-style" "Tekst-70" "isocp" "A" "Y" "N" "7" "" "" "" "" "" "-layer" "M" "Tekst-70" "S" "Tekst-70" "" "_Dtext" ""))
   ((= op "100")
    (command "-style" "Tekst-100" "isocp" "A" "Y" "N" "10" "" "" "" "" "" "-layer" "M" "Tekst-100" "S" "Tekst-100" "" "_Dtext" ""))
   ((= op "140")
    (command "-style" "Tekst-140" "isocp" "A" "Y" "N" "14" "" "" "" "" "" "-layer" "M" "Tekst-140" "S" "Tekst-140" "" "_Dtext" ""))
   ((= op "200")
    (command "-style" "Tekst-200" "isocp" "A" "Y" "N" "20" "" "" "" "" "" "-layer" "M" "Tekst-200" "S" "Tekst-200" "" "_Dtext" ""))
   ((= op "ont")
    (command "-style" "Ontwerp" "isocpeur" "A" "Y" "N" "10" "" "" "" "" "" "-layer" "M" "Ontwerptekst" "C" "40" "" "S" "Ontwerptekst" "" "_Dtext" ""))
  )
)
(prin1)
(unload_dialog id) )
(princ "\n Text layer menu\n")
(prin1); end tlm.LSP
Atwist

AutoCad 2008.

roy_043

Citaat van: Atwist op za 08 05 2010, 11:10:54Alleen snap ik jouw antwoord niet hellemaal ik maak eerst de layer en ik wil dan deze layer current maken dus moet ik toch na het maken van de layer de layer met "set" current maken.
Dat ligt eraan. Er zijn binnen het Layer commando twee manieren om een nieuwe laag te maken: New en Make. Lees de Help eens na op dit punt of probeer het verschil gewoon eens uit!

Over de lisp:
1.
De declaratie van de variabelen is niet helemaal correct maar volgens mij niet de oorzaak van het probleem.
2.
Er zit een while-lus in de lisp die ik niet begrijp.
3.
Je roept steeds het commando "_Dtext" aan maar dit commando wordt niet afgerond binnen de lisp.
4.
Ik vermoed dat de oorzaak in de tile keys van de dcl zit. Controleer of je daar steeds verschillende keys hebt gebruikt.

Atwist

Roy,

Met deze gegevens ga ik eens puzzelen, _Dtext is omdat ik ook een tekst wil maken na het maken van layer en style.

Atwist
Atwist

AutoCad 2008.

FastFiber