FastFiber

custom props updaten dcl

Gestart door dimitry, vr 04 09 2015, 15:24:38

Vorige topic - Volgende topic

dimitry

Hallo,
HELP!!!!!Ik heb hier een lisp code (orgineel van ene Tharwat, daarvoor nog bedankt). De mijne deed niet helemaal wat ik wou. In eerste instantie was de orginele lisp voor een dialoogbox van 1x edit box en 1x popup list. Key’s waren PRO_NU en STA.

Ik probeer nu al een paar dagen de code te bewerken/herschrijven met meer keys die weer corresponderen met key (name) in custom props (name op tabblad custom dus gelijk aan key lisp/dcl). Kan iemand de code veranderen zodat alle keys werken die ik nu allemaal heb bij geplaatst, en makkelijker uit te breiden is met nieuwe?

Probleem.
wegschrijven naar custom props bij ok dailogbox: v1 2 3 4 5 6 7 and 24 (v7, v24=dcl popup_list) worden wel goed naar de custom props geschreven. Maar popup list v27, hier komt een value van v24. Bij v29 gebeurt helemaal niks

Voordat de dialogbox values wegschrijft wordt bij het oprpoepen van de dcl eerst naar de custom properties gekeken en neemt value daarvan over naar de goede box in de dcl. Belangrijk wanneer dialog box meerdere keren wordt opgeroepen. Echter loopt het hieral niet. allen v1 komt terug in de dcl. In v2 v3 v4 v5 v6 wordt ook de waarde van v1 geplaatst. Bij de popup lijsten van v7 v24 v27 en v29 gebeurt helemaal niks

Ik moet de lisp nog uitbeiden tot v43. Kan iemand de lisp veranderen zodat hij goed de custom prop values ophaalt, deze verandert kunnen worden en weer geupded worden als in dcl op ok wordt gedrukt en dat ik zelf makkelijk de lisp kan uitbereiden tot v43?

key=v
PRO_NU (Project Number)= v1, PAR_NU (Parcel Number) =v2, CLI (Client) =v3, CON (Contractor) =v4, PRO_MA (Project Manager)=v5, DRA (Draftsman)=v6, STA (Status) =v7, PRO_DEL (Product Delivery) =v24, FSC_T (FSC Type) =v27 , CAL_CON (calculation=v29

als dcl en dwg benodigd zijn, laat mij maar weten. In de dwg zijn alle keys al ingevuld in de custom props (bereikbaar via command dwgprops). zijn er andere vragen dan hoor ik het graag


(defun c:dprop (/ id STA PRO_DEL FSC_T CAL_CON in l st v1 v2 v3 v4 v5 v6 v7 v24 v27 v29 )
  ;; ORGINAL BY Tharwat 01.09.2015;;
  ;; see below for variables/values that i still need to enter in code.
  ;; v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23
  ;; v25 v26 v28 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43
  ;; these v's are all editboxes
  (if (and (< 0 (setq id (load_dialog "dprop2.dcl")))
           (new_dialog "dprop2" id)
      )
    (progn
      (setq in     (vla-get-summaryinfo
                     (vla-get-activedocument (vlax-get-acad-object))
                   )
    STA (list "A" "A1" "A2" "A3" "A4");;v7
    PRO_DEL (list "B" "B1" "B2" "B3" "B4");;v24
FSC_T (list "C" "C1" "C2 C3" "C4");;v27
  CAL_CON (list "D" "D1" "D2" "D3");;v29
      )
      (mapcar '(lambda (k)
                 (vla-getcustombykey in k 'st)
                 (setq l (append l (list st)))
               )
              '("PRO_NU" "PAR_NU" "CLI" "CON" "PRO_MA" "DRA" "STA" "PRO_DEL" "FSC_T" "CAL_CON")
      )
      (set_tile "PRO_NU" (car l)) ;;v1
      (set_tile "PAR_NU" (car l)) ;;v2
      (set_tile "CLI" (car l)) ;;v3
      (set_tile "CON" (car l)) ;;v4
      (set_tile "PRO_MA" (car l)) ;;v5
      (set_tile "DRA" (car l)) ;;v6
     
      (start_list "STA") ;;v7
      (mapcar 'add_list STA)
      (end_list)
      (set_tile "STA"
                (if (member (cadr l) STA)
                  (itoa (vl-position (cadr l) STA))
                  "0"))
     
      (start_list "PRO_DEL") ;;v24
      (mapcar 'add_list PRO_DEL)
      (end_list)
            (set_tile "PRO_DEL"
                (if (member (cadr l) PRO_DEL)
                  (itoa (vl-position (cadr l) PRO_DEL))
                  "0"))
     
      (start_list "FSC_T") ;;v27
      (mapcar 'add_list FSC_T)
      (end_list)
            (set_tile "FSC_T"
                (if (member (cadr l) FSC_T)
                  (itoa (vl-position (cadr l) FSC_T))
                  "0"))
     
      (start_list "CAL_CON") ;;v29
      (mapcar 'add_list CAL_CON)
      (end_list)
            (set_tile "CAL_CON"
                (if (member (cadr l) CAL_CON)
                  (itoa (vl-position (cadr l) CAL_CON))
                  "0"))
      (action_tile
        "accept"
        "(if (/= (setq v1 (get_tile \"PRO_NU\")) \"\") (vla-setcustombykey in \"PRO_NU\" v1))
         (if (/= (setq v2 (get_tile \"PAR_NU\")) \"\") (vla-setcustombykey in \"PAR_NU\" v2))
         (if (/= (setq v3 (get_tile \"CLI\")) \"\") (vla-setcustombykey in \"CLI\" v3))
         (if (/= (setq v4 (get_tile \"CON\")) \"\") (vla-setcustombykey in \"CON\" v4))
         (if (/= (setq v5 (get_tile \"PRO_MA\")) \"\") (vla-setcustombykey in \"PRO_MA\" v5))
         (if (/= (setq v6 (get_tile \"DRA\")) \"\") (vla-setcustombykey in \"DRA\" v6))
         (if (setq v7 (get_tile \"STA\")) (vla-setcustombykey in \"STA\" (nth (atoi v7) STA)))
         (if (setq v24 (get_tile \"PRO_DEL\")) (vla-setcustombykey in \"PRO_DEL\" (nth (atoi v24) PRO_DEL)))
         (if (setq v27 (get_tile \"FSC_T\")) (vla-setcustombykey in \"FSC_T\" (nth (atoi v27) PRO_DEL)))
         (if (setq v29 (get_tile \"CON_CAL\")) (vla-setcustombykey in \"CAL_CON\" (nth (atoi v29) CAL_CON)))
                             (done_dialog)"
      )
      (action_tile "cancel" "(done_dialog)")
      (start_dialog)
      (unload_dialog id)
    )
    (if (< 0 id)
      (unload_dialog id)
    )
  )
  (princ)
)(vl-load-com)/code]

groeten dimitty

EddyBeerke

Ik mis de "dprop2.dcl"
Kun je die hier ook plaatsen?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

dimitry

#2
hoi Eddy,

hierbij de dcl en de dwg. de dwg is handig omdat keys ook hier als name in custom prop zijn aangemaakt. lisp schrijft namelijk de key niet als name weg, alleen de value (dus verricht een update). ik ben bang dat ander de field die ik wil gaan gebruiken #### gaan weergeven na totaal herschrijven van custom prop. hoop dat jij er wel uitkomt

groeten dimitry

dimitry

#3
Denk dat ik er al uit.....
car / cadr foutje.....moest zijn nth

moment a.u.b. ff checken of  het op alle 43 variabelen lukt

FastFiber