yoin

Nico160775

Hallo,

Kan er mij hier iemand helpen?
Heb een 500 tekeningen waarin een block met attributes een andere waarde moet krijgen.
Kan ik dit oplossen met een lisp / macro?
Zoadat ik niet elke keer dit opnieuw moet typen, want 2008 wordt 2009.

Merci in ieder geval...

Joop

Om een of andere reden werkt de upload directory niet.
Dus dan maar op deze manier.
Deze werkt met BaBe.
Save as bv BaBe_ChAtt.lsp
Alleen even de attributenlijst en de nieuwe waarden aanpassen.

;| Deze routine verandert de attributen
   in tekeningen naar nieuwe waarden|;


(vl-load-com)

(defun c:DoIt ()
  (princ "Running....")
  (setq temp nil)
  (setq AttributesToChange
'("TEKNR"
   "WIJZ"
   "FILE"
   "WERKOMSCHR1"
   "WERKOMSCHR2"
   "ONDERDEELOMSCHR1"
   "ONDERDEELOMSCHR2"
   "AANMAAKDATUM"
   "SOORT"
   "MODIFICATION1"
  )
  ) ;_ end of setq
;;; selecteer het kader
  (setq Selection (ssget "X" '((2 . "A3-2"))))
;;;  (if (= Selection nil)
;;;    (setq Selection (ssget "X" '((2 . "0ha3tb"))))
;;;  ) ;_ end of if
;;;  (if (= Selection nil)
;;;    (setq Selection (ssget "X" '((2 . "0BA3TBA"))))
;;;  ) ;_ end of if
  (foreach blok selection
    (setq Entity (ssname Selection 0))
    (setq EntityData (entget Entity))
    (setq VlaEntity (vlax-ename->vla-object Entity))
    (if (= (cdr (assoc 66 (entget Entity))) 1)
      (progn
(setq ListOfAttributes (vlax-safearray->list (variant-value (vla-GetAttributes VlaEntity))))
(foreach item3 ListOfAttributes
  (setq AttributeTag (vla-get-TagString item3))
  (if (member AttributeTag AttributesToChange)
    (progn
      (setq NewTextString nil)
      (setq ValueAttribute (vla-get-TextString item3))
      (setq RightAttribute (vlax-vla-object->ename item3))
      (setq RightAttribute (entget RightAttribute))
      (if (= AttributeTag "WERKOMSCHR1")
(setq NewTextString "Vereiste PBM's per ruimte")
      ) ;_ end of if
;;;     (if (= AttributeTag "WERKOMSCHR2")
;;;       (setq NewTextString "per ruimte")
;;;     ) ;_ end of if
      (if (= AttributeTag "TEKNR")
(setq NewTextString "681128")
      ) ;_ end of if
      (if (= AttributeTag "AANMAAKDATUM")
(setq NewTextString "14-07-2004")
      ) ;_ end of if
      (if (= AttributeTag "WIJZ")
(setq NewTextString "A")
      ) ;_ end of if
      (if (= AttributeTag "FILE")
(setq NewTextString "681128x.DWG")
      ) ;_ end of if
      (if (/= NewTextString nil)
(progn
  (setq RightAttribute
(subst (cons 1 NewTextString) (assoc 1 RightAttribute) RightAttribute)
  ) ;_ end of setq
  (entmod RightAttribute)
) ;_ end of progn
      ) ;_ end of if

    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of foreach
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of foreach
  (command "regen")
  (princ)
) ;_ end of defun
;|«Visual LISP© Format Options»
(100 2 40 2 T "end of " 80 9 0 0 nil T T nil T)
;*** DO NOT add text below the comment! ***|;
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

julien

De verhuis is nog niet helemaal rond.
Ik kijk even na waarom de upload niet werkt.

Joop

Citaat van: julien op do 02 04 2009, 11:00:30
De verhuis is nog niet helemaal rond.
Ik kijk even na waarom de upload niet werkt.
Thanks :wink:
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

julien


Nico160775

Merci,

Maar heb al verschillende keren geprobeerd om babe te doen werken onder autocad 2009 maar dit lukt niet met volgende foutmelding.

Error: no function definition: DOS_SEARCH; error: An error has occurred inside
the *error* functionno function definition: DOS_OPENP

Dat ligt aan dat bestandje en ik weet op de pagina van BaBe kan je een ander downloaden maar 2009 staat er niet bij.

Joop

Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Nico160775

Heb alles gedaan ook de doslib bestanden gecopieerd naar een support dir.
Maar nu krijg ik de volgende melding....

Error: bad argument type: stringp nil
Error Resetting Enviroment

Reimer

Citaat van: Nico160775 op do 02 04 2009, 12:01:30
Heb alles gedaan ook de doslib bestanden gecopieerd naar een support dir.
...

Je moet de DOSlib17.arx in je tekening laden met AP (application load). Je kunt het bestand hier eventueel toevoegen bij Contents zodat deze in iedere tekening standaard geladen wordt.

Reimer

Nico160775

Is reeds toegevoegd.
Maar krijg nog steeds dezelfde fout.
Bij het commando Babe ....

Error: bad argument type: stringp nil
Error Resetting Enviroment

Reimer

Ik heb bij mezelf even getest. Ik krijg dezelfde melding wanneer ik de map waar babe in staat NIET heb toegevoegd aan mijn Support File Search Path. Staat deze bij jou echt goed?

Reimer.

Nico160775

ok da was dus het antwoord.....  :wink:

merci

nu nen keer Babe testen...

FastFiber