FastFiber

Bepalen waar op te slaan

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

Vorige topic - Volgende topic

Kenny H

Beste HofCAD,

Dat van die part... enz daar moet ge niet over piekeren.
Die part... staat er enkel als hij u vraag waar wilt ge uw invoegpunt wilt hebben voor die atributes.

Citeer(setq   insertmat
    (getpoint
      "\nDuid een invoegpunt voor de attributes aan aub: "
    )
 )

Dan staat er heel even op het scherm partmat, partl enz mar dit wordt dan vervangen door uw gegevens. Ik dacht eerst dat dit er bij moest blijven staan zodat ge dus

partmat: Graniet
partref: Tablet
enz

zou staan hebben op het scherm.


Wat er in feite enkel opkomt na het doorlopen van het progrmma is dit

Graniet
Tablet
enz

Wat denk ik voldoende is.
8) Volvo 4 Life 8)

thomas151283

Aan HofCAD en Kenny,

Ik heb attpl6 ook enkele malen uitgetest (denk pakweg 15x). Vanaf poging 1 tem poging 15 komt er dezelfde werkwijze op. Alles blijft gaan via dialoogbox (behalve invullen blocknaam).
Ik heb hieraan geen problemen ondervonden.

AttExp1 werkt ook probleemloos bij mij. Elke attribuut wordt omgezet naar een txt bestand. Ongeacht ofdat er nu maar 1 of 10 attributes in de tekening staan.

Bij AttExp2 heb ik nog een vraag: er wordt gevraagd naar een template.
Is dit een template zoals er een nodig is voor AttExp1?
Want verder dan de waarschuwing kom ik hier niet.


Verder wil ik verduidelijken waarom ik werk met afgeronde getallen: wanneer ik dit niet doe worden de attributes hoogt en breedte ingevuld als vb: 800,00000000.
Ikzelf vind dit enorm onoverzichtelijk (zeker omdat de getallen in een stuklijst worden geplaatst achteraf).
Daarom rond ik ze af, en wordt er 800 ingevuld.

Antwoord op:

PS2 Moet die rechthoek, die je wenst en laat tekenen , niet opgenomen worden in het block?

=> dit gebeurt bij mij altijd. Vermoed dat dit is omdat ik mijn nodige gegevens selecteer via een window.



Het grootste nadeel van te werken met AttExp1 is dat de gegevens als TXTbestand worden aangemaakt en opgeslagen.
Via -eattext kunnen de gegevens direct als *.CSV bestand worden opgeslagen. Dit laatste is voor mij gemakkelijker omdat de gegevens nadien worden ingelezen in een ander programma (nl.: Ardis Cutting Optimizer, en dit programma kan enkel *.CSV bestanden inlezen)

Het is niet dat ik lui ben, maar wanneer ik hetzelfde kan bekomen door een bewerking minder te moeten doen, lijkt me dit toch wel een enorme tijdswinst.



Dit is speciaal voor HofCAD:
wat is mijn uiteindelijke doelstelling van mijn programmering:

=> tekenen van verschillende onderdelen van een meubel (zijkanten, deuren, ruggen, ladefronten, ...) en hieraan toekennen van attributes (breedte, hoogte, naam, aantal en soort plaatmateriaal).
De attributes worden toegekend zodat ik vanuit mijn tekeningen automatisch mijn stuklijsten kan opstellen.
Deze stuklijsten moeten liefst in een *.CSV bestand opgemaakt worden omdat de stuklijsten in een volgende stap worden gebruikt in een nog een ander programma.

Ik hoop dat u door deze korte beschrijving toch stilaan een idee begint te krijgen wat de bedoeling is. (Ik dacht dat iedereen dit wel doorhad omdat niemand er specifiek achter vroeg  :oops: )

Thx,
MVG,
Thomas

thomas151283

Aan Kenny;


Kenny schreef:

Thomas in dit programma is de blocknaam = de referentienaam. Dat wou je toch bereiken. Hij vraag u dus ook maar 1 keer een naam in te geven en zet deze direct ook als refnaam voor de block.


=> Dit is inderdaad de bedoeling dat die gelijk zijn. Maar bij mij wordt deze nog steeds niet automatisch ingegeven.
Ik moet dus een blocknaam én referentienaam opgeven.


Kenny schreef:

Moet ge zelf die refnaam nog kunnen veranderen? Ik denk van niet aangezien ge wilt dat de blocknaam gelijk is aan de refnaam.

=> Als de blocknaam = refnaam moet deze niet meer kunnen veranderen; anders heeft het weinig nut dat deze gelijk zijn aan elkaar.
Ik bezie het eigenlijk als een soort min vereiste  :lol:


Maar hetgeen ik niet snap is het feit dat het lukt om de breedte en hoogte automatisch te laten invullen, maar voor de blocknaam =  referentienaam lukt dit niet (ligt voor de verandering ongetwijfeld aan mij  :oops: ).



En het idd na het doorlopen voldoende dat er enkel:

Graniet
Tablet
....

staat.
De attributes mogen de tek niet onoverzichtelijk maken.



MVG,
Thomas

Kenny H

Beste Thomas,

Hebt ge het programma op vorige pagina al eens gecopieerd en getest? Ik heb daar even die (if not oké) enz in commentaar gezet. Hij gaat u dit dan ook niet meer vragen of u met die refnaam akkoord bent. Is toch overbodig als het gelijk is aan die blocknaam!

Voor verdere vragen of problemen ben ik steeds beschikbaar.
(Geld dus ook voor alle andere leden :wink: )

MVG

Kenny
8) Volvo 4 Life 8)

thomas151283

Dag Kenny,

heb het gekopieërd, en ik heb nog steeds het probleem dat de refnaam NIET wordt direct wordt ingevuld.

Ligt ongetwijfeld aan mij  :oops: (Weeral)

MVG,
Thomas

Kenny H

Thomas,

Doe dit eens.


(command "insert"   bestandsnaam lop "1" "1" "0" s1   blocknaam s3 s4 s5)

ipv

(command "insert"   bestandsnaam lop "1" "1" "0" s1   s2 s3 s4 s5)

En zet dat S2 pakje volledig in commenataar. Zoals hieronder. Bij mij gaat dit ook zo. :wink:


Citeer;;;      (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)
;;;   )
;;;      )

Hopelijk bij u nu ook  :roll:
8) Volvo 4 Life 8)

thomas151283

Dag Kenny,

Same Shit, Different Lisp

De refnaam wordt nog steeds niet ingevuld.

MVG,
Thomas

Kenny H

Als ge hem eens laat lopen met animate op, slaat hij dan iets over?
Staat blocknaam enz ingevuld? contoleren met watch.
Bij mij staat er alles in wat nodig is voor die attribute.

Weet niet direct wat u probleem kan zijn.  :x  :?
8) Volvo 4 Life 8)

thomas151283

Dag Kenny,

via animate slaat hij een vrij groot stuk over:
vanaf:

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

tot

     (command "insert"   bestandsnaam lop "1" "1" "0" s1   blocknaam s3 s4


Het rare eraan is dat alle nodige variabelen een naam hebben, maar niet worden ingevuld.

Citeer
Weet niet direct wat u probleem kan zijn.    :x  :?



Volgens mij is er maar 1 probleem; en dat ben IK voor de verandering  :cry:  :roll:

Kenny H

Citaat van: thomas151283
Volgens mij is er maar 1 probleem; en dat ben IK voor de verandering  :cry:  :roll:

Dat kan ik best geloven :!:
:lachen:  :lachen:
8) Volvo 4 Life 8)

Kenny H

En nu terug serieus.

:idea:
Deel u programma eens op in stukken. Zet maw een groot deel in commentaar en voeg telkens iets toe mss vindt je zo een oplossing.
8) Volvo 4 Life 8)

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:attpl3la (/ ~cmd ~afl NOToke e1 e2 e3 e4 s1 s2 s3 s4 sh)
 (setq   ~cmd (getvar "CMDECHO")
   ~afl (getvar "AFLAGS")
 )
 (command "ATTDIA" "0")
 (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   blocknaam 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)
)
8) Volvo 4 Life 8)

thomas151283

Ik zal dat op die manier eens proberen.
Hopelijk vind ik op die manier dé oplossing!

Maar ik blijf erbij dat ik het raar vind dat enkel de refnaam niet wordt ingevuld; zelfs niet als ik gedeelte van s2 gelijk maak met stuk van s3 of s4 (respectievelijk hoogte en breedte)

Grtz
Thomas

Kenny H

Beste Thomas,

Ik heb mijn hersens weer effe gepijnigd en mss iets gevonden.
Er staat daar ergens

;;; 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 :!:  :!:

Hopelijk is het dit foutje.  :wink:

MVG

Kenny

Ps met da lachen wil ik u ni kwetsen  :( .
8) Volvo 4 Life 8)

Kenny H

Hoeveel tijd hebt ge misschien nog om uw project af te werken?
2 of 3 weken?
8) Volvo 4 Life 8)

FastFiber