Jump to content

LISP code is abruptly stopping for invalid option keyword but I can't figure out why.


PinkSnail

Recommended Posts

FIXED IT. CARRY ON!

 

 

 

LISP newbie here. I am writing the following code to automatically assign our office's layers to files we receive from a source outside the office. Many of these commands work but I cannot figure out why the code is abruptly stopping without finishing. It is stopping immediately after it makes the layer change from "TaxPropID" to "V-ANNO-PROP-OWNR-E". I have checked the spelling of these two layers and the spelling is correct. I have also checked the spelling on the next layer change from "Centerline" to "V-ANNO-ROAD-E" and it is correct as well. I could use some help determining where I messed up in the code.

 

Thanks

 

The Code:

 

(defun c:RICAIMS v0.1.0 ( / msg)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Prop_LN")))
 			""
 			"_layer"
 			"V-Prop-Line-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Prop")))
 			""
 			"_layer"
 			"V-PROP-LINE-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "SmallDimension")))
 			""
 			"_layer"
 			"V-ANNO-DIMS-OTLN-N"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "AreaCAcre")))
 			""
 			"_layer"
 			"V-ANNO-SURV-N"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "TaxPropID")))
 			""
 			"_layer"
 			"V-ANNO-PROP-OWNR-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Centerline")))
 			""
 			"_layer"
 			"V-ANNO-ROAD-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Plat")))
 			""
 			"_layer"
 			"V-PROP-SECT-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "NFHL_X - 1 PCT FUTURE CONDITIO")))
 			""
 			"_layer"
 			"V-FLHA-100Y-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Stream")))
 			""
 			"_layer"
 			"V-CREK-CNTR-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "TreeOutline")))
 			""
 			"_layer"
 			"V-PLNT-LMTS-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "EarthDam")))
 			""
 			"_layer"
 			"V-POND-TOPB-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Fence")))
 			""
 			"_layer"
 			"V-FENCE-AIMS-E"
		""
)	
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "GravelRoad")))
 			""
 			"_layer"
 			"V-ROAD-GRVL-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "PLSS")))
 			""
 			"_layer"
 			"V-PROP-SECT-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Thoroughfare")))
 			""
 			"_layer"
 			"V-ROAD-ASPH-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "CenterlineAnno")))
 			""
 			"_layer"
 			"V-ANNO-TEXT"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "NFHL_AE - FLOODWAY")))
 			""
 			"_layer"
 			"V-FLHA-100Y-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "UtilityPole")))
 			""
 			"_layer"
 			"V-POWR-POLE-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "PavedRoad")))
 			""
 			"_layer"
 			"V-ROAD-ASPH-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "Culvert")))
 			""
 			"_layer"
 			"V-STRM-PIPE-E"
		""
)
(command
 		"_.chprop"
 			(ssget "_X" '((8 . "NFHL_AE")))
 			""
 			"_layer"
 			"V-FLHA-100Y-E"
		""
)
)

 

The Command Output:

Command: RICAIMS
_.chprop
Select objects:   228 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <Prop_LN>: V-Prop-Line-E
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   24 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <Prop>: V-PROP-LINE-E
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   38 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <SmallDimension>: V-ANNO-DIMS-OTLN-N
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   5 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <TaxPropID>: V-ANNO-PROP-OWNR-E
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   10 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <AreaCAcre>: V-ANNO-SURV-N
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   3 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <Centerline>: V-ANNO-ROAD-E
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:   2 found
Select objects:
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]: _layer
Enter new layer name <PLAT>: V-PROP-SECT-E
Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/TRansparency/Material/Annotative]:
Command: _.chprop
Select objects:
Command: RICAIMS
Unknown command "RICAIMS".  Press F1 for help.
Command: _layer
Current layer:  "V-TOPO-MAJR-E"
Enter an option [?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/TRansparency/MATerial/Plot/Freeze/Thaw/LOck/Unlock/stAte/Description/rEconcile]: V-ANNO-PROP-OWNR-E
Invalid option keyword.
; error: Function cancelled

Edited by PinkSnail
Link to comment
Share on other sites

IMO your code still needs some work. It can only run properly of every call to ssget returns a non-nil result. Most likely this is also the cause of your problem which actually occurs here:

Command: _.chprop
Select objects:  <------------- No selection set. Chprop command ends.
Command: RICAIMS <------------- Enter repeats the previous command.

Use something like:

(if (setq ss (ssget ...))
 (command ... ss "" ...)
)

Link to comment
Share on other sites

Maybe something a bit more flexible :

 

[b][color=BLACK]([/color][/b]defun c:chlay [b][color=FUCHSIA]([/color][/b]/ ll ss[b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]setq ll '[b][color=NAVY]([/color][/b][b][color=MAROON]([/color][/b][color=#2f4f4f]"1D-OLD"[/color] [color=#2f4f4f]"1D-NEW"[/color][b][color=MAROON])[/color][/b]
            [b][color=MAROON]([/color][/b][color=#2f4f4f]"2D-OLD"[/color] [color=#2f4f4f]"2D-NEW"[/color][b][color=MAROON])[/color][/b]
            [b][color=MAROON]([/color][/b][color=#2f4f4f]"3D-OLD"[/color] [color=#2f4f4f]"3D-NEW"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]

 [b][color=FUCHSIA]([/color][/b]foreach l ll
   [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]setq ss [b][color=GREEN]([/color][/b]ssget [color=#2f4f4f]"X"[/color] [b][color=BLUE]([/color][/b]list [b][color=RED]([/color][/b]cons 0 [b][color=PURPLE]([/color][/b]car l[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
       [b][color=MAROON]([/color][/b]progn
         [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]not [b][color=RED]([/color][/b]tblsearch [color=#2f4f4f]"LAYER"[/color] [b][color=PURPLE]([/color][/b]cadr l[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
             [b][color=BLUE]([/color][/b]command [color=#2f4f4f]"_.LAYER"[/color] [color=#2f4f4f]"_New"[/color] [b][color=RED]([/color][/b]cadr l[b][color=RED])[/color][/b] [color=#2f4f4f]""[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_.CHPROP"[/color] ss [color=#2f4f4f]""[/color] [color=#2f4f4f]"_LA"[/color] [b][color=BLUE]([/color][/b]cadr l[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
 [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 

 

Manipulate the list 'll to your needs.

 

-David

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...