FastFiber

Bepalen waar op te slaan

Gestart door thomas151283, ma 18 04 2005, 14:04:39

Vorige topic - Volgende topic

thomas151283

Dag Kenny,

ik heb nog 2.5 week om alles af te krijgen. Zal wel lukken denk ik; moet vooral nog testen.

Citeer;;; Insert block
(if (= (getvar "ATTDIA") 0)

Dit wil zeggen als Attdia 0 is overloopt hij gans die if
Nu kan het zijn dat bij die attdia op 1 staat en dan leest hij dit niet.
Om dit te voorkomen moet ge in het begin

(command "ATTDIA" "0")

zetten  

Nu gaat er niks meer via een dialoogbox!!
Alles gaat nu via de commandoregel, waarbij alles eerst moet ingetikt worden, en vervolgens bevestigd worden.
Dit laatste is logisch omdat ik mijn attributes invul met "V" (antwoord zie HofCAD CSI).

Geen probleem dat ge met mij lacht hoor Kenny, daarvoor ken ik u al lang genoeg.

Grtz,
Thomas

Kenny H

Da komt door die attdia die dialoogbox.
En die bevestiging krijg ik ook.

Het gaat nu :D

Des te beter hé
8) Volvo 4 Life 8)

thomas151283

CiteerDa komt door die attdia die dialoogbox.
En die bevestiging krijg ik ook.

Het gaat nu  

Des te beter hé



Het werkt nu, das is héél goed!  :vreegoe:
Maar nu is mijn vraag ofdat het via die dialoogbox kan? Ik vind dat overzichtelijker.  :?

Want ik blijf erbij dat als breedte en hoogte automatisch kunnen worden ingevuld, het ook moet lukken  met de refnaam.

Toch al hartelijk dank,
MVG

Kenny H

Ik zal eens proberen.
Ik denk dat ge dan die if en die attdia op 1 moet zetten
8) Volvo 4 Life 8)

Kenny H

Citaat van: Kenny HIk zal eens proberen.
Ik denk dat ge dan die if en die attdia op 1 moet zetten

Het is niet zo simpel :!:  :(
8) Volvo 4 Life 8)

thomas151283

Kenny,

Het is inderdaad niet zo simpel wanneer er:

 (if (= (getvar "ATTDIA") 1)

ipv

(if (= (getvar "ATTDIA") 0)

wordt geplaatst krijg ik totaal andere zaken op mijn scherm

VB:
partmat = filedia
partref = 1
partl = regenall
partw = zoom
partqty = e


Enkel hetgeen in cyaan staat verschijnt op het scherm!!

Grtz,
Thomas

HofCAD

Citaat van: Kenny HHoeveel tijd hebt ge misschien nog om uw project af te werken?
2 of 3 weken?

Beste Thomas,

Ik zie geen verschil in werking onder AutoCAD 2002 en 2004.
Kijk even naar de veranderingen in het geel en rood bij  ATTPL8.
Heb je trouwens al AttExp1 (met ATTEXT) en AttExp2 (met -EATTEXT) getest.

Groetjes HofCAD CSI

(defun c:AttExp2(/ ~CMD teknaam TemplateFil DirTemplate DirOutput DirExcel
Template num strNum NOToke Outfile)
(setq ~CMD (getvar "CMDECHO")) (setvar "CMDECHO" 0)
(setq teknaam (getvar "dwgname"))
(setq teknaam (substr teknaam 1 (- (strlen teknaam) 4)))
(setq TemplateFil "atttempl.blk")
(setq DirTemplate "C:\\temp\\")
(setq DirOutput "C:\\temp\\")
(setq DirExcel "c:\\progra~1\\micros~1\\office\\")
(setq Template (strcat DirTemplate TemplateFil))
(if (findfile Template)
(progn
(setq Num 0 strNum "")
(setq NOToke T)
(while NOToke
(setq OutFile (strcat DirOutput teknaam strNum ".csv"))
(setq NOToke nil)
(if (findfile OutFile)(setq NOToke T))
(setq Num (1+ Num) strNum (itoa num))
)
(command "-eattext"
"C";Objects/Currentdwg/Selectdwg
"Y";Xref Yes/No
"Y";Nested blocks Yes/No
template  
"CSV";Csv/Txt/Xls/Mdb
OutFile
)
(if (findfile Outfile)
(progn
(princ (strcat " \n\n" Outfile " is aangemaakt."))
(Startapp (strcat DirExcel "Excel.exe") OutFile)
))
)
(progn
(load "AI_UTILS")
(ai_abort Template "is niet gevonden, maak die eerst aan met EATTEXT")
(princ (strcat Template " is niet gevonden,"))
(princ  "maak die eerst aan met EATTEXT"))
)
(setvar "CMDECHO" ~CMD) (princ)
)
(defun c:AttExp1(/ wfil ~CMD ~FDIA teknaam TemplateFil DirOutput DirExcel
DirTemplate Template Num strNum NOToke OutFile)
(defun wfil(file flist / i f1)
(setq f1 (open file "w") i 0)
(repeat (length flist)
(write-line (nth i flist) f1)
(setq i (1+ i)))
(close f1)
)
(setq ~CMD (getvar "CMDECHO")) (setvar "CMDECHO" 0)
(setq ~FDIA (getvar "FILEDIA"))
(setq teknaam (getvar "dwgname"))
(setq teknaam (substr teknaam 1 (- (strlen teknaam) 4)))
(setq TemplateFil "atttempl.txt")
(setq DirOutput "c:\\Temp\\")
(setq DirExcel "c:/progra~1/micros~1/office/")
(setq DirTemplate "C:\\temp\\")
(setq Template (strcat DirTemplate TemplateFil))
(setq Num 0 strNum "")
(setq NOToke T)
(while NOToke
(setq OutFile (strcat DirOutput teknaam strNum ".txt"))
(setq NOToke nil)
(if (findfile OutFile)(setq NOToke T))
(setq Num (1+ Num) strNum (itoa num))
)
(setq TemplLST '("PARTMAT C008000" "PARTREF C008000" "PARTL N008000" "PARTW N008000"
"PartQTY N008000"))
(wfil Template TemplLST)
(setvar "FILEDIA" 0)
(command
"ATTEXT"
"C" ;;Cdf/Sdf/Dxf
Template
OutFile)    
(setvar "FILEDIA" ~FDIA)
(princ (strcat " \n\n" Outfile " is aangemaakt."))
(Startapp (strcat DirExcel "Excel.exe") OutFile)
)

(defun c:attpl8 ()
;/ ~cmd ~clay ~afl ~atr lay collay NOToke e0 e1 e2 e3 e4 e5 s1 s2 s3 s4 s5 sh)
(setq ~cmd (getvar "CMDECHO") ~clay (getvar "CLAYER")
~afl (getvar "AFLAGS") ~atr (getvar "ATTREQ"))
(setvar "CMDECHO" 0)(setvar "ATTMODE" 1)(setvar "ATTREQ" 1)
;;; style maakt een nieuwe tekststijl aan: genaamd "attributes"
(command "style" "attributes" "tahoma" "15" "" "" "" "")
;;; layer maakt een nieuw laag aan: genaamd "attributes"  
(setq lay "attributes" collay "8")
(if (not (tblsearch "LAYER" lay))
(command "_LAYER" "M" lay "C" collay "" "")
(command "_LAYER" "T" lay "ON" lay "S" lay ""))

;;; Selecteren van hoekpunten
(setq lop (getpoint "\nLinker benedenhoekpunt aub.: "))
(setq rbp (getcorner lop "\nRechter bovenhoekpunt aub.: "))
(setq rop (list (car rbp) (cadr lop)))
(setq lbp (list (car lop) (cadr rbp)))
(command "RECTANGLE" lop rbp)
(setq e0 (entlast))
;;De rechthoek moet toch ook in het block
(setq NOToke T)
(while NOToke
(setq blocknaam
(getstring 7 "\nGeef een naam voor het block op aub: "))
(setq NOToke nil)
(if (tblsearch "BLOCK" blocknaam)
(setq NOToke T))
)


;;; Breedte en Hoogte bepalen
(setq breedte (distance lop rop))
(setq hoogte (distance lop lbp))
(setq afrondbreedte (fix breedte))
(setq afrondhoogte (fix hoogte))
;;; Inserteerpunt Attribute Materiaal (PartMat)
(setq insertmat
(getpoint
"\nDuid een invoegpunt voor de attributes aan aub: "
)
)
(setvar "AFLAGS" 0);Geen Verify meer?
;;; 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: ?"
blocknaam ""
)
(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 blocknaam
;;(getstring 7 "\nGeef een naam voor het block op aub: "))
;;(setq NOToke nil)
;;(if (tblsearch "BLOCK" blocknaam)
;;(setq NOToke T))
;; )

(command "block" blocknaam lop e0 e1 e2 e3 e4 e5 "")
;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 (getstring "\nGeef de Referentienaam op: "))
;;(setq sh (getstring (strcat "\nGeef nogmaals de Referentienaam <" s2 "> op: ")))
;;(setq NOToke nil)
;;(if (/= s2 sh) (setq NOToke T))
;;(if (= sh "")(setq NOToke nil))
;; )

(setq s2 blocknaam)  
(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

(initget 1)
(setq s5 (getint "\nGeef het aantal stukken op: "))
(setq sh (getint (strcat "\nGeef nogmaals het aantal stukken op <" (itoa s5) "> op: ")))
(setq NOToke nil)
(if (/= s5 sh) (setq NOToke T))
(if (= sh nil)(setq NOToke nil))
)

(command "insert" blocknaam lop "1" "1" "0" s1 s2 s3 s4 s5)
);end progn
(command "insert" blocknaam lop "1" "1" "0"))
;end if
(command "regenall")
(command "zoom" "e")
(setvar "AFLAGS" ~afl)(setvar "ATTREQ" ~atr)
(setvar "CLAYER" ~CLAY)(setvar "CMDECHO" ~CMD)
(princ)
)
(princ "\n ATTPL8 is geladen; Start met ATTPL8 bij Attdia= 0 of 1")(princ)
ACADcadabra

Kenny H

Citeer;;; Plaatsen van attributes 3a
;;; Tekenen van rechthoek met ingave van Lengte en Breedte
;;; Gemaakt op: maandag 18 april 2005
;;; Laatste wijziging: woensdag 20 april 2005


(defun c:Test1 (/ ~cmd ~afl NOToke e1 e2 e3 e4 s1 s2 s3 s4 sh)
 (setq   ~cmd (getvar "CMDECHO")
   ~afl (getvar "AFLAGS")
 )
 (command "ATTDIA" "1")
 (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") 1)
;;;    (progn
;;;      (setq s1 (getstring "\nGeef de Materiaalsoort op: "))
;;;      (setq s3 (getstring (strcat "\nGeef de Hoogte <"
;;;              (itoa afrondhoogte)
;;;              "> op: "
;;;           )
;;;          )
;;;      )
;;;      (setq s4 (getstring (strcat "\nGeef de Breedte <"
;;;              (itoa afrondbreedte)
;;;              ">op: "
;;;           )
;;;          )
;;;      )
;;;      (setq s5 (getstring "\nGeef het aantal stukken op: "))
;;;    )
;;;    (command "insert" bestandsnaam lop "1" "1" "0" s1 blocknaam   s3 s4 s5)
;;;  )
 (command "insert" bestandsnaam lop "1" "1" "0")

 (command "filedia" 1)
 (command "regenall")
 (command "zoom" "e")
 (setvar "AFLAGS" ~afl)
 (setvar "CMDECHO" ~CMD)
 (setvar "osmode" 1)
 (princ)
)
8) Volvo 4 Life 8)

Kenny H

Thomas,

Hier krijgt ge uwe dialoogbox al.
Wat ge hier invult komt in uw attribute te staan.
Enkel die refnaam is nog niet gelink naar de bestands naam.
Da lukt mij nog niet :( .
8) Volvo 4 Life 8)

Kenny H

Het is gelukt :!:  :ole: :ole: :ole: :ole: :ole: :ole: :ole: :ole:

Citeer;;; Plaatsen van attributes 3a
;;; Tekenen van rechthoek met ingave van Lengte en Breedte
;;; Gemaakt op: maandag 18 april 2005
;;; Laatste wijziging: woensdag 20 april 2005


(defun c:Test1 (/ ~cmd ~afl NOToke e1 e2 e3 e4 s1 s2 s3 s4 sh)
 (setq   ~cmd (getvar "CMDECHO")
   ~afl (getvar "AFLAGS")
 )
 (command "ATTDIA" "1")
 (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: "
    )
 )
 (setq   bestandsnaam
    (getstring 7
          "\nGeef een bestandsnaam voor het block op aub: "
    )
 )

 (setq   blocknaam
    (strcat bestandsnaam)
 )

 (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: "      blocknaam
      ""
     )
 (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

 (command "block"
      blocknaam
      lop
      e1
      e2
      e3
      e4
      e5
      (setq crossing (ssget "w" lbp rop))
      ""
 )
 (command "insert" bestandsnaam lop "1" "1" "0")

 (command "filedia" 1)
 (command "regenall")
 (command "zoom" "e")
 (setvar "AFLAGS" ~afl)
 (setvar "CMDECHO" ~CMD)
 (setvar "osmode" 1)
 (princ)
)
8) Volvo 4 Life 8)

HofCAD

Citaat van: Kenny HThomas,

Hier krijgt ge uwe dialoogbox al.
Wat ge hier invult komt in uw attribute te staan.
Enkel die refnaam is nog niet gelink naar de bestands naam.
Da lukt mij nog niet :( .

Beste Kenny,

Heb je ook AttPL8 gezien.

Groetjes HofCAD CSI
ACADcadabra

Kenny H

Sorry HofCAD heb ik nog niet bekeken.
Maar mijn programma gaat nu ook. Zonder problemen.
:wink:
8) Volvo 4 Life 8)

Kenny H

Thomas test het allerlaatste programma uit.
Maar dat vergde enige moeite :!: Bij mij gaat alles goed, test gij ook eens uit hé.
8) Volvo 4 Life 8)

HofCAD

Citaat van: Kenny HSorry HofCAD heb ik nog niet bekeken.
Maar mijn programma gaat nu ook. Zonder problemen.
:wink:

Beste Kenny,

Maar je krijgt geen mooie afhandeling bij:
1) Als ATTDIA op 0
2) Als de laag van de attributen bevroren is of uit staat

Als hij naast de rechthoek en de attributen nog meer in
zijn block moet plaatsen dan is je oplossing goed, is dit
niet het geval dan lijkt mijn oplossing beter.

Op een of andere manier, krijg ik nooit dezelfde problemen bij het testen als julie laatst melde met attdia op 0

Groetjes HofCAD CSI
ACADcadabra

Kenny H

Dat moet Thomas uitmaken hé
8) Volvo 4 Life 8)