参数太多怎么整合 哪位大神能给看看
[*](defun c:qw1 (/ ss1 ent ent_list ent_data color layer linetype obj_list result_ss)
[*](prompt "\n选择一个图形: ")
[*]
[*](setq ss1 (ssget)
[*] ent (ssname ss1 0)
[*] ent_list (entget ent)
[*] ent_data (assoc 8 ent_list)
[*] layer_name (cdr ent_data)
[*] ent_data (assoc 62 ent_list)
[*] color (if (= (cdr ent_data) 256) "bylayer" (cdr ent_data))
[*] ent_data (assoc 6 linetype ent_list)
[*] linetype (if (= (cdr ent_data) 7) "bylayer" (cdr ent_data))
[*])
[*]
[*](prompt (strcat "\n所选图形的颜色: " color))
[*](prompt (strcat "\n所选图形所在的图层: " layer_name))
[*](prompt (strcat "\n所选图形的线型: " linetype))
[*]
[*](setq obj_list (list (cons 62 "bylayer") (cons 8 "0") (cons 6 "bylayer")))
[*](setq result_ss (ssget "X" obj_list))
[*]
[*](if result_ss
[*] (progn
[*] (sssetfirst nil result_ss)
[*] (prompt "\n选中了所有颜色为\"bylayer\"、图层为\"0\"、线型为\"bylayer\"的对象!")
[*] )
[*] (prompt "\n未找到符合条件的对象.")
[*])
[*](princ)
[*])
我想用命令"QW1"来运行。当你运行程序后,它会提示你选择一个图形。然后它会获取该图形的颜色、图层和线型,并在命令行上显示出来。接着,它会获取颜色为"bylayer"、图层为"0"、线型为"bylayer"的所有对象,并将它们选中。如果没有找到符合条件的其他对象,则会显示相应的提示信息。目前反馈参数太多咋整 有点困住了
11 ent_data (assoc 6 linetype ent_list)
页:
[1]