明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 325|回复: 2

[提问] 请教:关于emake

[复制链接]
发表于 2024-8-18 16:51:09 | 显示全部楼层 |阅读模式
5明经币
;;请教:关于emake


;;定义子函数(sf-entmake-arc)
        (defun sf-entmake-arc (cen rad startpt endpt layer color xx)
                (entmakex
                        (list '(000 . "ARC")
                                '(100 . "AcDbEntity")
                                '(100 . "AcDbCircle")
                                '(100 . "AcDbArc")
                                (cons 8 layer)
                                (cons 6 color)
                                (cons 6 xx)
                                (cons 10 cen)
                                (cons 40 rad)
                                (cons        50
                                        (if (listp startpt)
                                                (angle cen startpt)
                                                startpt
                                        )
                                )
                                (cons        51
                                        (if (listp endpt)
                                                (angle cen endpt)
                                                endpt
                                        )
                                )
                        )
                )
        )

;;调用子函数(sf-entmake-arc)
(setq en (sf-entmake-arc pt2 (setq r (1+ r)) (polar pt2 0 r) (polar pt2 ang r) "0" 1 "ByBlock")

如果子函数(sf-entmake-arc)的参数(layer)赋值时不用数字:1,改用:("ByBlock"、"ByLayer"), 如:

(setq en (sf-entmake-arc pt2 (setq r (1+ r)) (polar pt2 0 r) (polar pt2 ang r) "0" "ByBlock" "ByBlock")

子函数(sf-entmake-arc)的代码该如何修改?

最佳答案

查看完整内容

把颜色改成0就可以了
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-8-18 16:51:10 | 显示全部楼层
把颜色改成0就可以了
回复

使用道具 举报

发表于 2024-8-19 17:15:10 | 显示全部楼层
;;定义子函数(sf-entmake-arc)
(defun sf-entmake-arc (cen rad startpt endpt layer color xx)       
        ; 将颜色参数转换为适当的格式  
  (setq color (cond  
                ((equal color "ByBlock") 0) ; "ByBlock" 转换为 0  
                ((equal color "ByLayer") 256) ; "ByLayer" 转换为 256  
                (T color)                                                               
                                                        )
        ) ; 否则保持原值         
        (entmakex
                (list '(000 . "ARC")
                        '(100 . "AcDbEntity")
                        '(100 . "AcDbCircle")
                        '(100 . "AcDbArc")
                        (cons 8 layer)
                        (cons 62 color)
                        (cons 6 xx)
                        (cons 10 cen)
                        (cons 40 rad)
                        (cons        50
                                (if (listp startpt)
                                        (angle cen startpt)
                                        startpt
                                )
                        )
                        (cons        51
                                (if (listp endpt)
                                        (angle cen endpt)
                                        endpt
                                )
                        )
                )
        )
)

;以下测试通过
(defun c:tt ()
        (sf-entmake-arc
                '(0 0) ; 圆弧中心  
                500     ; 半径  
                '(500 0)  ; 起始点  
                '(0 500)  ; 结束点  
                "ByBlock"; 图层  
                "ByBlock" ; 颜色  
                "ByBlock" ; 线型
        )
)       


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:47 , Processed in 0.166694 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表