FastFiber

linetype definities

Gestart door cadtools@gmail.com, vr 16 12 2005, 11:27:24

Vorige topic - Volgende topic

cadtools@gmail.com

Wij gaan van lintypes lts=10 over op linetypes lts=10?
Ik zoke een tool waarmee ik lijntype def. kan overschrijven...
Als ik doe dmv een blockmethode waarin ik de linetypes heb gedefinieer krijg ik onderstaande melding

Linetype(s) added. Duplicate definitions will be ignored

.. dit werkt dus niet Idem met Designcenter..
Weet iemand een manier / lisp om lintypes met dezelfde definitie te overschrijven?

************
(defun c:ins_RH-iso_lin ()            ; linetypes lts=10   
      (setvar "cmdecho" 0)
      (command ".insert" "RH-iso_lin.dwg" "0,0" "1" "1" "0")     ; template voor inladen linetypes
      (setq ss (ssget "X" '((2 . "RH_iso_lin"))))      ; del block
      (command "erase" ss "")
      (command "-purge" "b" "RH-iso_lin" "n")      ; houd linetypes over
      (command "-purge" "d" "RH-iso_lin" "n")
      (command "-purge" "st" "RH-iso_lin" "n")
      (setvar "cmdecho" 0))


(defun c:ins_acad_lin ()            ; linetypes lts=1
      (setvar "cmdecho" 0)
      (command ".insert" "acad_lin.dwg" "0,0" "1" "1" "0")     ; template voor inladen linetypes
      (setq ss (ssget "X" '((2 . "acad_lin"))))      ; del block
      (command "erase" ss "")
      (command "-purge" "b" "acad_lin" "n")         ; houd linetypes over
      (command "-purge" "d" "acad_lin" "n")
      (command "-purge" "st" "acad_lin" "n")
      (setvar "cmdecho" 0))

bart

Kan je hier niet met het commando linetype werken vanuit je lisp
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

WebRacer

Misschien helpt dit u al beetje vooruit:
deze routine heeft u een lijst terug van alle aanwezige linetypes in uw tekening,
en als je er eentje kiest verwijderd hij die ook... van hieraf misschien verder bouwen....?


   (vl-load-com)
   (setq acadobject (vlax-get-Acad-Object))
   (setq activedocument (vla-get-activedocument acadobject))
   (setq LinetypeTable (vla-get-Linetypes activedocument))
   (vlax-for each LinetypeTable
      (setq thelist (cons (vla-get-Name each) thelist)))
   (if thelist (reverse thelist))
   (prompt "\nVolgende lijntypes werden gevonden: \n")(princ thelist)(princ)
   (setq dellnt (getstring "\nWelke wil je verwijderen?"))
   (vlax-for dellnt (vla-get-linetypes activedocument)
    (vl-catch-all-apply 'vla-delete (list dellnt))
  )
?

cadtools@gmail.com

Bedankt,
Hier kan ik wel wat mee...
Je kunt inderdaad met commando-benadering maar dit gaat sosm wel lastig omdat ie elke keer vraagt (per linetype)... overwrite (y/n) .. er is geen optie overwrite all zoals je dat in je dialoogje wel krijgt.
Dit is dus latig te omzeilen
Misschien lukt het met jouw code ... beter ...


bart

dat is op te lossen door de systeem variabel  EXPERT tydelijk anders in te stellen

voor alle lijntype's gebruik je een wildcard *
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

cadtools@gmail.com

bedankt voor deze mooie tip..