jbradtke9112 Posted June 5, 2017 Posted June 5, 2017 All, I am new to writing lisp routines and editing them so please bare with me. Essentially what I want to do is to have a panel component report run and then customize the table using the user post button in the report generation dialog box. So what I would like to happen is for the lisp routine to go through the tagnames and if a tagname starts with certain fields (ex. FU, CR,CB, Etc.) then it gets pushed to a new table and displayed along with the wire number. If the tagname is a MOT then that tag would go into a seperate third column. I have the following code below but I cannot get it to work. Please help or comment with any advice/help. Thanks!! and btw this lsp is called pnlcomp.lsp located in the following directory C:\Users\XXXXX\AppData\Roaming\Autodesk\AutoCAD Electrical 2017\R21.0\enu\Support (if (= user_1 "1") (progn (setq newdatalst '()) ; start a new blank list for the modified data (setq tagname (nth 1 data)) ;set variable tagname equal to the nth 1 data which is tagname attribute (foreach data wd_rdata; look at each line in the report (if (/=tagname "AC") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "BB") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "CAP") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "CB") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "CM") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "CR") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "DI") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "DIO") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "DS") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "DU") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "EN") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "FM") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "FU") (setq data (wd_nth_subst 53 tagname data)) () ) (if (/=tagname "I/0") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "J") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "KSW") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "LE") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "LT") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "MC") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "MCB") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "MOL") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "NF") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "PB") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "PBLT") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "PDB") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "PLC") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "RECP") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "RES") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "SD") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "SH") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "SR") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "SS") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "SSS") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "TRMS") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "UPA") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "VFD") (setq data (wd_nth_subst 53 tagname data)) () ) (if (=tagname "MISC") (setq data (wd_nth_subst 53 tagname data)) () ) (setq newdatalst (cons data newdatalst)) ) (setq newdatalst (reverse newdatalst)) (princ) ) ) Quote
BIGAL Posted June 6, 2017 Posted June 6, 2017 A couple of suggestions if (=tagname "PLC") (setq data (wd_nth_subst 53 tagname data)) [color=red]() remove this line[/color] ) The other suggestion is to use a Cond much easier than multiple Ifs and I always have a space beween /= (cond ( (= tagname "PLC")(setq data (wd_nth_subst 53 tagname data)) ) ( (= tagname "UPA")(setq data (wd_nth_subst 53 tagname data)) ) ) Quote
SLW210 Posted June 6, 2017 Posted June 6, 2017 Please read the Code Posting Guidelines and edit your Code to be included in Code Tags.[NOPARSE] Your Code Here[/NOPARSE] = Your Code Here Quote
jbradtke9112 Posted June 7, 2017 Author Posted June 7, 2017 So I added the conditional portion and still nothing I am getting a consp nil right now. check code below. Please help. (if (= user_1 "1") (progn (princ (setq newdatalst '()) ; start a new blank list for the modified data (setq tagname (nth 1 data)) ;set variable tagname equal to the nth 1 data which is tagname attribute (foreach data wd_rdata; look at each line in the report (COND ((= tagname "AC")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "BB")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "CB")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "CM")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "CR")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "DI")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "DIO")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "DS")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "DU")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "EN")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "FM")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "FU")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "I/O")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "J")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "KSW")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "LE")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "LT")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "MC")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "MCB")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "MOL")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "NF")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "PB")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "PBLT")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "PDB")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "PLC")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "RECP")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "RES")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "SD")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "SH")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "SR")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "SS")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "SSS")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "TRMS")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "UPA")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "VFD")(setq data (wd_nth_subst 53 tagname data))) ((= tagname "MISC")(setq data (wd_nth_subst 53 tagname data))) )) (setq newdatalst (cons data newdatalst)) (setq newdatalst (reverse newdatalst)) ) ) ) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.