悬赏已过期 后悬赏过期
悬赏

lisp选择线条问题请教各位

邀请:
(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阶曲线

收藏0
分享
您的回答

回答

默认排序 时间排序
图片审查中...
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
复制链接
微信扫码
已复制到剪贴板