1550855711 发表于 2023-12-11 16:18:22

参数太多怎么整合 哪位大神能给看看


[*](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"的所有对象,并将它们选中。如果没有找到符合条件的其他对象,则会显示相应的提示信息。目前反馈参数太多咋整 有点困住了

烟花丝雨 发表于 2023-12-11 16:40:54

11            ent_data (assoc 6 linetype ent_list)

   
页: [1]
查看完整版本: 参数太多怎么整合 哪位大神能给看看