jbradtke9112 Posted June 5, 2017 Share 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 Link to comment Share on other sites More sharing options...
BIGAL Posted June 6, 2017 Share 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 Link to comment Share on other sites More sharing options...
SLW210 Posted June 6, 2017 Share 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 Link to comment Share on other sites More sharing options...
jbradtke9112 Posted June 7, 2017 Author Share 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 Link to comment Share on other sites More sharing options...
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.