(defun c:modifylinetype ()
;; 定义虚线图层名称为"虚线"
(setq dash_layer "虚线")
;; 1. 检查并创建虚线图层(如不存在)
(if (not (tblsearch "LAYER" dash_layer))
(progn
;; 创建图层:名称"虚线",颜色2(黄色),线型为虚线,线宽0.13
(command "-LAYER" "N" dash_layer "C" 2 "" "L" "ACAD_ISO02W100" "" "LW" "0.13" "" "")
(princ (strcat "\n已创建虚线图层: " dash_layer "(黄色、ACAD_ISO02W100线型、0.13线宽)"))
)
)
;; 2. 选择颜色为155的虚线实体
(setq sset (ssget "X"
(list
(cons 62 155) ; 颜色代码155
(cons 6 "ACAD_ISO02W100,DASHED,DASHED2,DASHEDX2") ; 常见虚线线型
)
))
(if sset
(progn
(setq i 0)
(while (< i (sslength sset))
(setq ent (ssname sset i))
;; 3. 修改实体属性:移动到"虚线"图层并设置属性随层
(entmod (list
(cons -1 ent)
(cons 8 dash_layer) ; 移动到"虚线"图层(组码8控制图层)
(cons 62 256) ; 颜色随层(256为中望CAD随层标准值)
(cons 6 "BYLAYER") ; 线型随层
(cons 370 -1) ; 线宽随层(-1为中望CAD随层标准值)
))
(setq i (1+ i))
)
;; 4. 提示用户输入线型比例(默认1.0)
(setq LTS (getreal "\n请输入线型比例(默认1): "))
(if (not LTS) (setq LTS 1.0))
;; 5. 应用线型比例到实体
(setq i 0)
(while (< i (sslength sset))
(setq ent (ssname sset i))
(entmod (list (cons -1 ent) (cons 48 LTS))) ; 线型比例(组码48)
(setq i (1+ i))
)
;; 操作结果提示
(princ (strcat "\n已完成 " (itoa (sslength sset)) " 个实体处理:\n"
" - 移动至图层: " dash_layer "\n"
" - 属性已设置为随层\n"
" - 线型比例: " (rtos LTS)))
)
(princ "\n未找到颜色为155的虚线实体!")
)
(princ) ; 清理命令行输出
)
上面这段代码运行后,如下图中红圈内所示,部分线条不能选中更改,请问有什么办法可以解决?
线条句柄是2B*开头,不是圆弧,应该是3阶曲线