entmake函数常用图元组码
;;entmake 创建图元示例
(setq pts '(0 0 0)
pte '(100 100 0)
)
;创建直线
(entmake
(list
;;必须组码
(cons 0 "LINE")
;起点坐标
(cons 10 pts)
;终点坐标
(cons 11 pte)
;;常用通用可选组码
;设置图元颜色 0-256 0表示随块 256表示随层
(cons 62 1)
;设置图元图层 若不存在 则新建该图层
(cons 8 "1")
;设置图元线形 若未加载 则报错
(cons 6 "CENTER")
;设置图元线形比例
(cons 48 0.5)
;设置图元线宽 线宽值x100
(cons 370 50)
;;常用专属可选组码
;无
)
)
;创建圆
(setq pt '(50 50 0)
r25
)
(entmake
(list
;;必须组码
(cons 0 "CIRCLE")
;圆心坐标
(cons 10 pt)
;半径
(cons 40 r)
;;常用通用可选组码
;设置图元颜色 0-256 0表示随块 256表示随层
(cons 62 1)
;设置图元图层 若不存在 则新建该图层
(cons 8 "1")
;设置图元线形 若未加载 则报错
(cons 6 "CENTER")
;设置图元线形比例
(cons 48 0.5)
;设置图元线宽 线宽值x100
(cons 370 50)
;;常用专属可选组码
;无
)
)
;创建圆弧
(setq pt '(100 100 0)
r 25
angs 0
ange PI
)
(entmake
(list
;;必须组码
(cons 0 "ARC")
;圆心坐标
(cons 10 pt)
;半径
(cons 40 r)
;起点角度 弧度制
(cons 50 angs)
;端点角度 弧度制
(cons 51 ange)
;;常用通用可选组码
;设置图元颜色 0-256 0表示随块 256表示随层
(cons 62 1)
;设置图元图层 若不存在 则新建该图层
(cons 8 "1")
;设置图元线形 若未加载 则报错
(cons 6 "CENTER")
;设置图元线形比例
(cons 48 0.5)
;设置图元线宽 线宽值x100
(cons 370 50)
;;常用专属可选组码
;无
)
)
;创建单行文字
(setq pt'(100 100 0)
h 10
str "如果当时0809"
)
(entmake
(list
;;必须组码
(cons 0 "TEXT")
;插入点坐标
(cons 10 pt)
;文本高度
(cons 40 h)
;文本内容
(cons 1 str)
;;常用通用可选组码
;设置图元颜色 0-256 0表示随块 256表示随层
(cons 62 1)
;设置图元图层 若不存在 则新建该图层
(cons 8 "1")
;;常用专属可选组码
;文本样式 若不存在 则采用默认值
(cons 7 "仿宋")
; 对齐
(cons 72 2)
(cons 73 2)
; 对齐坐标
(cons 11 '(50 50 0))
; 旋转
(cons 50 0.5)
; 宽度因子
(cons 41 0.8)
; 倾斜
(cons 51 0.1)
)
)
;创建多段线
(setq pt1 '(0 0 0)
pt2 '(100 0 0)
pt3 '(100 100 0)
pt4 '(0 100 0)
)
(entmake
(list
;;必须组码
(cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
;顶点数量
(cons 90 4)
;插入顶点坐标及各边参数
(cons 10 pt1)
(cons 10 pt2)
(cons 40 2) ;可选 起点宽度
(cons 41 1) ;可选 端点宽度
(cons 42 1) ;可选 凸度
(cons 10 pt3)
(cons 10 pt4)
(cons 40 1) ;可选 起点宽度
(cons 41 2) ;可选 端点宽度
(cons 42 1) ;可选 凸度
;;常用通用可选组码
;设置图元颜色 0-256 0表示随块 256表示随层
(cons 62 1)
;设置图元图层 若不存在 则新建该图层
(cons 8 "1")
;设置图元线形 若未加载 则报错
(cons 6 "CENTER")
;设置图元线形比例
(cons 48 0.5)
;设置图元线宽 线宽值x100
(cons 370 50)
;;常用专属可选组码
;全局宽度 设置后局部宽度失效
(cons 43 1)
;标高
(cons 38 1)
;闭合
(cons 70 1)
)
)
xcmdos 发表于 2024-11-28 15:27
这个在论坛里就有呀
他这个 加注释了,方便新人 理解 这个在论坛里就有呀 谢谢分享。。。。 谢谢分享。。 很好→很棒!很好~很棒!!很好……很棒!!! 清晰明了! 本帖最后由 llsheng_73 于 2024-11-30 16:08 编辑
entmake创建图元必要条件(慢慢更新)
http://bbs.mjtd.com/forum.php?mo ... 2482&fromuid=202795
(出处: 明经CAD社区)
授人鱼不如授之以渔
(defun NecDXF(e / s en);;;图元必要组码
(vl-some(function(lambda(x / a)
(and(setq a(vl-remove x en)e(entmakeX a))
(setq s(cons e s)en a)nil)))
(setq en(entget e)))
(vl-every(function entdel)s)
en)
但是这个渔具显然不是那么好用,对于一些特殊图元,并不能得到准确结果,比如图层、文字样式等:如果不出现名称这个组注定无法创建,而保留名称组又因为名称重复导致创建新图元失败,最终程序认为所有组都是必要的,显然这个结论是错误的。
最有效的办法是自己结合图元实例,认真查看DXF帮助,通过反复比对,加深对各个组的意义以及必要性进行理解,熟悉对非必要组它按什么原则进行处理等
页:
[1]