yoin

alexander

krijg van onderstaande lisp een fout.
de bedoeling is dat hij de hoogte meet de breedte dit gaat goed daarna aangeven hoeveel , hier gaat het fout want uiteindelijk tekent hij er maar 1

(defun front-deurverdeling (/ r)(/ a)(/ d)(/ b)(/ c)(/ e)(/ g)(/ j)(/ punt1)(/ punt2)(/ punt3)(/ punt4))
   (setq r (getdist "MEET UIT UW TEKENING; DE HOOGTE VAN DE ROMP... "))(terpri)
   (setq d (getdist "MEET UIT UW TEKENING; DE BREEDTE VAN DE ROMP... "))(terpri)
   (setq c (getint "HOEVEEL FRONTEN OF DEUREN WILT U IN DE BREEDTE TOEPASSEN  ? "))(terpri)
   (setq a (getint "HOEVEEL FRONTEN OF DEUREN WILT U IN DE HOOGTE TOEPASSEN  ? "))(terpri)
   (setq g (getreal "HOEVEEL GROOT MOET DE HANGNAAD BOVENIN WORDEN ? "))(terpri)
   (setq k (getreal "HOEVEEL GROOT MOET DE HANGNAAD AAN DE ZIJ' en ONDERKANT WORDEN ? "))(terpri)
   (setq j (getreal "HOEVEEL GROOT MOET DE HANGNAAD ONDERLING WORDEN ? "))(terpri)
   (setq h (- a 1))
   (setq e (- c 1))
   (setq b (/ (- d (+ (+ k k (* j e)))) c))
   (setq f (/ (- r (+ (+ g k (* j h)))) a))
   (setq x (+ f j))
   (setq y (+ b j))
   (if (= 1 a ) (setq x y) (setq x x))
   (setq punt1 (getpoint "KlIK AAN; DE LINKER BENEDENHOEK VAN DE ROMP... "))(terpri)
   (setq punt2 (polar punt1 0 k))
   (setq punt3 (polar punt2 1.570795 k))
   (setq punt4 (polar punt3 0 b))
   (setq punt5 (polar punt4 1.570795 f))
   (setq punt6 (polar punt5 pi b))
   (setq lastlay (getvar "clayer"))
   (command "layer" "n" "deur-front" "")
   (command "layer" "th" "deur-front" "")
   (command "layer" "on" "deur-front" "")
   (command "clayer" "deur-front")
   (command "layer" "c" "4" "" "")
   (command "pline" "non" punt3 "non" punt4 "non" punt5 "non" punt6 "non" "c")



kan er niet uit komen..

Joop

Voorzover ik kan zien geef je ook maar een tekenopdracht.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

alexander

je bent er vroeg bij joop.. :lol:
Ja dat is ook de bedoeling.. als ik een vooraanzicht van een kast heb bijv rechthoek dan wil ik dmv de breedte te meten en de hoogte van mijn corpus  hierna aan te geven hoeveel deuren in de hoogte en de breedte en door aan te geven wat de hangnaad moet zijn dat hij auto deze deuren intekent..
Ik kan nu netjes alles ingeven maar als ik aangeef in mijn vcb bijv 2 in de breedte dan tekent hij maar 1

HofCAD

Citaat van: alexanderkrijg van onderstaande lisp een fout.
de bedoeling is dat hij de hoogte meet de breedte dit gaat goed daarna aangeven hoeveel , hier gaat het fout want uiteindelijk tekent hij er maar 1

(defun front-deurverdeling (/ r)(/ a)(/ d)(/ b)(/ c)(/ e)(/ g)(/ j)(/ punt1)(/ punt2)(/ punt3)(/ punt4))
   (setq r (getdist "MEET UIT UW TEKENING; DE HOOGTE VAN DE ROMP... "))(terpri)
   (setq d (getdist "MEET UIT UW TEKENING; DE BREEDTE VAN DE ROMP... "))(terpri)
   (setq c (getint "HOEVEEL FRONTEN OF DEUREN WILT U IN DE BREEDTE TOEPASSEN  ? "))(terpri)
   (setq a (getint "HOEVEEL FRONTEN OF DEUREN WILT U IN DE HOOGTE TOEPASSEN  ? "))(terpri)
   (setq g (getreal "HOEVEEL GROOT MOET DE HANGNAAD BOVENIN WORDEN ? "))(terpri)
   (setq k (getreal "HOEVEEL GROOT MOET DE HANGNAAD AAN DE ZIJ' en ONDERKANT WORDEN ? "))(terpri)
   (setq j (getreal "HOEVEEL GROOT MOET DE HANGNAAD ONDERLING WORDEN ? "))(terpri)
   (setq h (- a 1))
   (setq e (- c 1))
   (setq b (/ (- d (+ (+ k k (* j e)))) c))
   (setq f (/ (- r (+ (+ g k (* j h)))) a))
   (setq x (+ f j))
   (setq y (+ b j))
   (if (= 1 a ) (setq x y) (setq x x))
   (setq punt1 (getpoint "KlIK AAN; DE LINKER BENEDENHOEK VAN DE ROMP... "))(terpri)
   (setq punt2 (polar punt1 0 k))
   (setq punt3 (polar punt2 1.570795 k))
   (setq punt4 (polar punt3 0 b))
   (setq punt5 (polar punt4 1.570795 f))
   (setq punt6 (polar punt5 pi b))
   (setq lastlay (getvar "clayer"))
   (command "layer" "n" "deur-front" "")
   (command "layer" "th" "deur-front" "")
   (command "layer" "on" "deur-front" "")
   (command "clayer" "deur-front")
   (command "layer" "c" "4" "" "")
   (command "pline" "non" punt3 "non" punt4 "non" punt5 "non" punt6 "non" "c")



kan er niet uit komen..


----------- ~\\|//~ ------------
------------
  • -
  • -------------
    -------ooO---(_)---Ooo-------- [/color]

    Beste Alexander,

    Ik snap niks van uw programma kop(declaratie)

    (defun front-deurverdeling (/ r)(/ a)(/ d)(/ b)(/ c)(/ e)(/ g)(/ j)(/ punt1)(/ punt2)(/ punt3)(/ punt4))
    Moet dat niet zijn:

    (defun front-deurverdeling ( / r  a d b c e g j punt1 punt2 punt3 punt4)

    Groetjes HofCAD CSI

    PS Ik ben blond :oops:  :oops:  :oops:  :oops:
ACADcadabra

alexander

ik heb dat gewijzigd maar verandert weinig.

wat mijn bedoeling was is dat als ik een vooraanzicht teken van een kast
bijvoorbeeld 1000x800 hoog en hier 3 deurtjes voor wil hebben in vooraanzicht dat dmv lisp door de hoogte te meten en de breedte kan aangeven dmv hoeveel deuren ik nodig heb en de hangnaad aan onderzijde bovenzijde zijkant en onderling deze automatisch in een laag worden getekend in een bep. kleur..


ps. ik ben ook blond maar heb veel minder haar.. : :roll: roll:

Joop

Je moet van elk deurtje de hoek/tekenpunten bepalen en dan pas de deurtjes tekenen.
Gewoon sequentieel werken.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

alexander

dat valt me dan weer tegen van lisp..
dan ben ik sneler om via een polyline hetzelfde te bereiken.

Joop

Dit heeft niets met lisp te maken maar is een wiskundig probleem.
Je kunt de punten van de deurtjes met gebruik van "wiskunde" bepalen. (basis algebra)

Bv.:
Vlak is 1000x1000
Buitenste rand = 100
Te verdelen vlak = 800x800
Aantal deurtjes = 4
Tussenruimte = 100
punten deurtje links onder = 100,100 ((700 / 2) + 100),100 ((700 / 2) + 100),((700 / 2) + 100),100 100,((700 / 2) + 100),100

Andere deurtjes hetzelfde.
Als je nu variabelen gebruikt is het "simpel" te programmeren.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".