使用entmake函数发生的怪事!
我用一下代码创建一个多段线:(entmake '((0 . "LWPOLYLINE")(100 . "AcDbEntity")
(100 . "AcDbPolyline")
(62 . 5)
(10 0 64.30)
(10 200 64.35)
(10 400 64.04)
(10 600 64.14)
(10 800 64.39)
(10 1000 64.29)
(10 1250 64.44)
)
)
,但奇怪的事,创建的图元无论把图放多大,都只能看见一个点,并且查询他的图元表,发现以10为组码的坐标全是0,并且只剩下两个顶点坐标,真是让我百思不得其解,恳请高手们帮忙啊!
下面是查询到的图元表:
((-1 . <图元名: 7ef6e9c8>) (0 . LWPOLYLINE) (330 . <图元名: 7ef6ccc0>) (5 .
4A9) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (62 . 5) (6 .
Continuous) (100 . AcDbPolyline) (90 . 2) (70 . 0) (43 . 0.0) (38 . 0.0) (39 .
0.0) (10 0.0 0.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 0.0 0.0) (40 . 0.0) (41
. 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
差一项:(90.7)
改为如下即可:
(entmake '((0 . "LWPOLYLINE")
(100 . "AcDbEntity")
(100 . "AcDbPolyline")
(62 . 5)
(90 . 7)
(10 0 64.30)
(10 200 64.35)
(10 400 64.04)
(10 600 64.14)
(10 800 64.39)
(10 1000 64.29)
(10 1250 64.44)
)
)
yshf 发表于 2012-3-14 20:40 static/image/common/back.gif
差一项:(90.7)
改为如下即可:
(entmake '((0 . "LWPOLYLINE")
谢谢,果真如此,关于这个函数,书上介绍的不多,具体到每类图元没有说哪些数据可以省略,哪些数据不可省略,所以才造成我少了一项,呵呵。 嗯 学习了 谢谢楼主分享! 回复ynhh :
40是定义片段的起始宽度,41是定义片段的结束宽度,43是定义全线的宽度,42是定义弧片段的弓弦比(圆弧弓高/弦长)。例如:
(entmake '((0 . "LWPOLYLINE")
(100 . "AcDbEntity")
(100 . "AcDbPolyline")
(62 . 5)
(90 . 7)
(10 0 64.30)
(40 . 10)
(41 . 0.5)
(10 200 64.35)
(42 . 1.0)
(10 400 64.04)
(10 600 64.14)
(10 800 64.39)
(10 1000 64.29)
(10 1250 64.44)
)
)
生成的多段线,其中第一片段的起始宽度为10,结束宽度为0.5,第二段为逆时针的半圆弧(弓弦比大于零为逆时针转,小于零为顺针转)。如出现43项,则每个片段的起始、结束宽度均43项的值为准。
页:
[1]