Au-S,
Please carefully read the comments I have added to your routine, and also perhaps study my code so that you may know where you were going wrong.
- [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] C:REVTAG [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ssindexblock lastindexblock inspoint revblockpath blockcount[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#a52a2a]"USERI1"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#a52a2a]"USERI1"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] revblockpath [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"C:\\PATH\\TO\\_REVTAG.dwg"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; No need to use 'strcat', you are not concatenating any strings[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ssindexblock [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#a52a2a]"X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#a52a2a]"INSERT"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; I would recommend using "_X", just for good practice [/color][/i] [b][color=RED]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#a52a2a]"revblockpath"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; This is currently searching for the block[/color][/i] [i][color=#990099];; 'revblockpath' which is not the block you[/color][/i] [i][color=#990099];; are after.[/color][/i] [i][color=#990099];; If you are trying to use the variable here[/color][/i] [i][color=#990099];; you cannot use a string, as the variable will[/color][/i] [i][color=#990099];; not be evaluated. Also, you cannot use an[/color][/i] [i][color=#990099];; apostrophe to declare your list, as the list[/color][/i] [i][color=#990099];; is not evaluated and the variable symbol is taken[/color][/i] [i][color=#990099];; at face value.[/color][/i] [i][color=#990099];; Also, if you were to use the variable, you need t[/color][/i] [i][color=#990099];; use only the block name, not the whole path.[/color][/i] [i][color=#990099];;[/color][/i] [i][color=#990099];; Something like: '((0 . "INSERT") (2 . "_REVTAG"))[/color][/i] [i][color=#990099];; or:[/color][/i] [i][color=#990099];; (setq block "_REVTAG")[/color][/i] [i][color=#990099];; (ssget "_X" (list '(0 . "INSERT") (cons 2 block)))[/color][/i] [i][color=#990099];;[/color][/i][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lastindexblock [b][color=RED]([/color][/b][b][color=BLUE]entget[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssname[/color][/b] ssindexblock [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] blockcount [b][color=RED]([/color][/b][b][color=BLUE]sslength[/color][/b] ssindexblock[b][color=RED])[/color][/b] inspoint [b][color=RED]([/color][/b][b][color=BLUE]polar[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=#009900]10[/color][/b] lastindexblock[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=#009999]6.0[/color][/b] blockcount[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [i][color=#990099];_ end of polar[/color][/i] [b][color=RED])[/color][/b] [i][color=#990099];_ end of setq[/color][/i] [b][color=RED])[/color][/b] [i][color=#990099];_ end of progn[/color][/i] [i][color=#990099];; This is the first block added to the database, as the[/color][/i] [i][color=#990099];; ssget "X" mode will scan the database in order, however,[/color][/i] [i][color=#990099];; I would be inclined to sort the blocks, to make sure you[/color][/i] [i][color=#990099];; have the point you need.[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] inspoint [b][color=#a52a2a]"721.0,202.7,0"[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; This is useless if not used with a command call -[/color][/i] [i][color=#990099];; if you wanted to use this in any other way you would have[/color][/i] [i][color=#990099];; to separate each element from the comma delimiter and[/color][/i] [i][color=#990099];; construct the new list.[/color][/i] [i][color=#990099];; Better to just have: '(721.0 202.7 0)[/color][/i] [i][color=#990099];; which can be used everywhere (except in VL) [/color][/i] [b][color=RED])[/color][/b] [i][color=#990099];_ end of if[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#a52a2a]"attdia"[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#a52a2a]"attreq"[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#a52a2a]"_insert"[/color][/b] revblockpath inspoint [b][color=#009999]1.0[/color][/b] [b][color=#009999]1.0[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Watch out when using command calls, they are unreliable, slow[/color][/i] [i][color=#990099];; and are also affected by OSNAP, causing undesired results.[/color][/i] [i][color=#990099];; Better to use either entmake, or vla-insertblock.[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=DARKRED]'[/color][/b]useri1 [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] useri1[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#a52a2a]"attdia"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#a52a2a]"attreq"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [i][color=#990099];; Be sure to exit cleanly with (princ), so that[/color][/i] [i][color=#990099];; the last function return is suppressed.[/color][/i] [b][color=RED])[/color][/b] [i][color=#990099];_ end of defun[/color][/i]
|