Ziet er iemand waarom mijn routine steeds vastloopt?
Ze loopt steeds vast vanaf ";;; inserteren referentie"
Thomas
(defun c:attpl2 ()
;;; style maakt een nieuwe tekststijl aan: genaamd "attributes"
(command "style" "attributes" "tahoma" "15" "" "" "" "")
;;; layer maakt een nieuw laag aan: genaamd "attributes"
(command "layer" "m" "attributes" "c" "8" "" "")
;;; 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)))
;;; Breedte en Hoogte bepalen
(setq breedte (distance lop rop))
(setq hoogte (distance lop lbp))
;;; Inserteerpunt Attribute Materiaal (PartMat)
(setq insertmat
(getpoint
"\nDuid een invoegpunt voor de attributes aan aub: "
)
)
(command "attdef" "V" ""
"PartMat" "Geef de Materiaalsoort op: "
"" insertmat "0"
""
)
;;; Inserteren Referentie
(setq insertref
(getpoint
(command
"attdef" "V" ""
"PartRef" "Geef een referentienaam op: "
"" ""
)
)
)
;;; Inserteren Lengte (=hoogte)
(setq insertl
(getpoint
(command "attdef" "V" ""
"PartL" "Geef de hoogte op: "
hoogte ""
)
)
)
;;; Inserteren Breedte
(setq insertw
(getpoint
(command "attdef" "V" ""
"PartW" "Geef de breedte op: "
breedte ""
)
)
)
;;; Maken wblock
(command "filedia" "1")
(command "wblock"
(setq bestandsnaam
(getstring
"\nGeef een bestandsnaam voor het wblock op aub: "
)
)
""
lop
;;; basispunt wblock
lop
rbp
rop
lbp
insertmat
insertref
insertl
insertw
;;; selecteren elementen
""
)
;;; (princ)
;;; (command "insert")
)
;;; Inserteren Referentie
(setq insertref
(getpoint
(command
"attdef" "V" ""
"PartRef" "Geef een referentienaam op: "
"" ""
)
)
)[/list:u]
Je bent vergeten een insertionpoint op te geven. :)
Joop,
met die "v" worden alle attributes alligned onder elkaar weergegeven.
Hoe kan ik hierbij dan een insertion point opgeven / weergeven / bepalen ?
MVG, Thomas
Waarom vraag je dan om een point?
Als ik er een wblock van wil maken, moeten alle elementen geselecteerd worden. als ik deze via hun insertionpoint kan nemen ben ik zeker dat ze er altijd bij zijn.
Maar blijkbaat zou ik al beter met een selectiekader en ssget werken.
Toch al bedankt
MVG Thomas
Als je de routine in VisualLisp opent en je zet een breakpoint in voor de routine waar hij vastloopt, kun je stap voor stap door de resterende code lopen.
Het blijkt dan dat je een getpoint vraagt en een commando geeft in plaats van coordinaten.
Als je de vraag getpoint verwijderd (plus natuurlijk de haakjes) gaat hijn door totdat hij weer vastloopt op de volgende getpoint.
Citaat van: thomas151283Joop,
met die "v" worden alle attributes alligned onder elkaar weergegeven.
Hoe kan ik hierbij dan een insertion point opgeven / weergeven / bepalen ?
MVG, Thomas
Beste Thomas,
Die V is van Verify zie de help van het commando ATTDEF en
de AutoCAD variabele AFLAGS.
Dus een attributdefiniteie met Verify gaat:
(command "ATTDEF" "V" "" "TAG" "PROMPT" "DEFWAARDE" P0 HOOGTE HOEK)of
(setvar "AFLAGS" 4)
(command "ATTDEF" "" "TAG" "PROMPT" "DEFWAARDE" P0 HOOGTE HOEK)Een attributdefiniteie zonder Invisible, Constant, Verify en Preset gaat:
(setvar "AFLAGS" 0)
(command "ATTDEF" "" "TAG" "PROMPT" "DEFWAARDE" P0 HOOGTE HOEK)Groetjes HofCAD
CS
I