FastFiber

Versschil tussen AutoCAD 2002, 2004 en 2005

Gestart door thomas151283, wo 20 04 2005, 15:36:13

Vorige topic - Volgende topic

thomas151283

Ik heb het volgende probleem:

verscheidene lisp-files moeten werken op verschillende pc's.
Op de ene draait AutoCAD 2002, de andere 2004 en de laatste heeft 2005

Nu heb ik een aantal files die volledig werken onder 2002, al iets minder werken in 2004 en totaal niks meer doen in 2005.

Met "iets minder" bedoel ik dat de routine niet meer volledig wordt doorlopen, en daarbijhorend dat niet elke variabele dus wordt ingevuld!

Kan dit liggen aan de verschillen tussen 2002, 2004 en 2005?
Zoja, hoe kan dit opgelost worden??

MVG,
Thomas

HofCAD

Citaat van: thomas151283Ik heb het volgende probleem:

verscheidene lisp-files moeten werken op verschillende pc's.
Op de ene draait AutoCAD 2002, de andere 2004 en de laatste heeft 2005

Nu heb ik een aantal files die volledig werken onder 2002, al iets minder werken in 2004 en totaal niks meer doen in 2005.

Met "iets minder" bedoel ik dat de routine niet meer volledig wordt doorlopen, en daarbijhorend dat niet elke variabele dus wordt ingevuld!

Kan dit liggen aan de verschillen tussen 2002, 2004 en 2005?
Zoja, hoe kan dit opgelost worden??

MVG,
Thomas

Beste Thomas,

Bij de meeste programma's die ik maak, probeer ik ervoor te zorgen
dat ze zowel in AutoCAD Release 12 tot en met AutoCAD 2006 werken.
Natuurlijk zijn er uitbreidingen in AutoCAD in commando's,
systeemvariabelen en natuurlijk Visual Lisp, die dat niet altijd mogelijk
maken.
Echte grote wijzigingen in AutoLISP zijn er eigenlijk nooit geweest, wel
een paar kleintjes in AutoCAD 2000, dus lijkt het me moeilijk om op
afstand de oorzaak aan te geven.
De zin:
'Met "iets minder" bedoel ik dat de routine niet meer volledig wordt doorlopen,
en daarbijhorend dat niet elke variabele dus wordt ingevuld!'

is voor mij iets te vaag.
Probeer of het gehele programma aan te bieden, of het gedeelte waarom
het gaat.

Groetjes HofCAD CSI
ACADcadabra

thomas151283

Beste HofCAD,

Het betreft hier nog steeds dezelfde lisp-file waar ik al enkele weken met bezig ben.
Thuis (AutoCAD 2002) worden alle attributes ingevuld die ik als default waarde wil laten invullen; PC op stage heeft AutoCAD 2004 en daar worden maar 2 default waarden (lengte en breedte) ingevuld.

Het rode gedeelte werkt niet overal.
Maar dat ligt ongetwijfeld weer aan mij :oops:


(defun c:attpl3lb (/ ~cmd ~afl NOToke e1 e2 e3 e4 s1 s2 s3 s4 sh)
 (setq   ~cmd (getvar "CMDECHO")
   ~afl (getvar "AFLAGS")
 )
 (setvar "CMDECHO" 0)
;;; style maakt een nieuwe tekststijl aan: genaamd "attributes"
 (command "style" "attributes" "tahoma" "15" "" "" "" "")
;;; layer maakt een nieuw laag aan: genaamd "attributes"
 (command "layer" "m" "zijkant" "c" "red" "" "")

;;; Tekenen van een rechthoek adhv Lengte en breedte
 (setq lop (getpoint "\nLinker benedenhoekpunt aub: "))
 (setq breedte (getreal "\nGeef breedte in :"))
 (setq hoogte (getreal "\nGeef hoogte in :"))
 (setq rop (polar lop 0 breedte))
 (setq rbp (polar rop (dtr 90) hoogte))
 (setq lbp (polar rbp pi breedte))
 (command "rectangle" lop rbp)
;;; Breedte en Hoogte bepalen
 (setq afrondbreedte (fix (+ breedte 0.5)))
 (setq afrondhoogte (fix (+ hoogte 0.5)))

;;; Inserteerpunt Attribute Materiaal (PartMat)
 (setq   insertmat
    (getpoint
      "\nDuid een invoegpunt voor de attributes aan aub: "
    )
 )
 (setvar "AFLAGS" 0)
;;; Definieren attribuut PartMat
 (command "attdef"         ""       "PartMat"
      "Geef de Materiaalsoort op:"       ""
      insertmat         "0"
     )
 (setq e1 (entlast))
;;; Definieren attribuut PartRef
 (command "attdef"          ""         "PartRef"
      "Geef een Referentienaam op: "      ""
      ""
     )
 (setq e2 (entlast))
;;; Definieren attribuut PartL (Lengte =hoogte)
 (command "attdef"       ""           "PartL"
      "Geef de Hoogte op: "        afrondhoogte
      ""
     )
 (setq e3 (entlast))
;;; Definieren attribuut PartW
 (command "attdef"        ""             "PartW"
      "Geef de Breedte op: "          afrondbreedte
      ""
     )
 (setq e4 (entlast))
;;; Definieren attribuut PartQTY
 (command "attdef"          ""         "PartQTY"
      "Geef het aantal stukken op: "      ""
      ""
     )
 (setq e5 (entlast))

;;; Maken block
 (setq notoke T)
 (while NOToke
   (setq bestandsnaam
      (getstring 7
            "\nGeef een bestandsnaam voor het block op aub: "
      )
   )
   (setq NOToke nil)
   (if   (tblsearch "block" bestandsnaam)
     (setq NOToke T)
   )
 )
 (setq   blocknaam
    (strcat bestandsnaam)
 )
 (command "block"
      blocknaam
      lop
      e1
      e2
      e3
      e4
      e5
      (setq crossing (ssget "w" lbp rop))
      ""
 )

;;; Insert block
 (if (= (getvar "ATTDIA") 0)
   (progn
     (setq notoke T)
     (while NOToke
   (setq s1 (getstring "\nGeef de Materiaalsoort op: "))
   (setq
     sh (getstring   (strcat   "\nGeef nogmaals de Materiaalsoort <"
            s1
            "> op: "
         )
        )
   )
   (setq NOToke nil)
   (if (/= s1 sh)
     (setq NOToke T)
   )
   (if (= sh "")
     (setq NOToke nil)
   )
     )
     (setq notoke T)
     (while NOToke
   (setq s2 (strcat blocknaam))
   (setq
     sh (strcat s2
        )
   )
   (setq NOToke nil)
   (if (/= s2 sh)
     (setq NOToke T)
   )
   (if (= sh "")
     (setq NOToke nil)
   )
     )
     (setq notoke T)
     (while NOToke
   (setq s3 (getstring (strcat "\nGeef de Hoogte <"
                (itoa afrondhoogte)
                "> op: "
             )
       )
   )
   (if (= s3 "")
     (setq s3 (itoa afrondhoogte))
   )
   (setq sh (getstring
         (strcat "\nGeef nogmaals de Hoogte <" s3 "> op: ")
       )
   )
   (setq NOToke nil)
   (if (/= s3 sh)
     (setq NOToke T)
   )
   (if (= sh "")
     (setq NOToke nil)
   )
     )
     (setq notoke T)
     (while NOToke
   (setq s4 (getstring (strcat "\nGeef de Breedte <"
                (itoa afrondbreedte)
                ">op: "
             )
       )
   )
   (if (= s4 "")
     (setq s4 (itoa afrondbreedte))
   )
   (setq sh (getstring
         (strcat "\nGeef nogmaals de Breedte <" s4 "> op: ")
       )
   )
   (setq NOToke nil)
   (if (/= s4 sh)
     (setq NOToke T)
   )
   (if (= sh "")
     (setq NOToke nil)
   )
     )
     (setq notoke T)
     (while NOToke
   (setq s5 (getstring "\nGeef het aantal stukken op: "))
   (setq
     sh (getstring
          (strcat "\nGeef nogmaals het aantal stukken op: <"
             s5
             "> op: "
          )
        )
   )
   (setq NOToke nil)
   (if (/= s5 sh)
     (setq NOToke T)
   )
   (if (= sh "")
     (setq NOToke nil)
   )
     )
     (command "insert"   bestandsnaam lop "1" "1" "0" s1   s2 s3 s4 s5)
   )               ; End progn
   (command "insert" bestandsnaam lop "1" "1" "0")
 )               ; End if
 (command "filedia" 1)
 (command "regenall")
 (command "zoom" "e")
 (setvar "AFLAGS" ~afl)
 (setvar "CMDECHO" ~CMD)
 (setvar "osmode" 1)
 (princ)
)