多义线的70码怎么会变成128和129
本帖最后由 vbnewer 于 2024-12-24 16:43 编辑我这里有个dwg文件,只要在这个图中将直线转换成多段线,非闭合多段线的70码就会变成128,闭合多段线的70码就会变成129。正常应该是0和1的呀,怎么会这样?查了下资料,说是128代表多义线重生,也不知道是什么意思。各位有没有遇到过这种情况?
文件见附件,有兴趣可以测试一下。
自贡黄明儒 发表于 2024-12-24 17:36
我炸开,再转成多段线,就是1 0,不知道你那个128 129怎么来的。
70多段线标志(按位编码);默认值为 0:
1 = 关闭;128 = Plinegen
最下边那个线型生成开启就会在原来的0,1基础上加128
炸开,再转成多段线,就是1或0而不是129或128是因为系统变量PLINEGEN
保存位置:图形
初始值:0
设置围绕二维多段线的顶点生成线型图案的方式。 这并不适用于具有锥状线段的多段线。
0
在每个顶点以虚线开始并以虚线结束生成多段线
1
围绕多段线顶点生成连续的线型图案
如果PLINEGEN =0,那么新生成的多段线70组只会是0或1,同样线型会在每个顶点重新开始,如果它等于1,那么新生成的多段线70组就会有128,线型连续而不会重新开始 我炸开,再转成多段线,就是1 0,不知道你那个128 129怎么来的。 http://www.mjtd.com/thread-19016-1-1.html
这种问题要探究
通常要列出所有系统变量
与正常dwg进行比对
加油 ;;是否是曲线---(一级)---
(defun sl-iscur (e)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getstartparam (list e))))
)
;;曲线是否封闭--(一级)----
;;(sl:isClosed (car (entsel)))
(defun sl:isClosed (e)
(if (sl-iscur e)
(or (vlax-curve-isclosed e) (equal (vlax-curve-getstartpoint e) (vlax-curve-getendpoint e) 1e-5))
nil
)
) 本帖最后由 vbnewer 于 2024-12-24 20:19 编辑
llsheng_73 发表于 2024-12-24 18:38
70多段线标志(按位编码);默认值为 0:
1 = 关闭;128 = Plinegen
最下边那个线型生成开启就 ...
感谢解惑,问题解决了,就是这样原因。
看来这个PLINEGEN变量是存储在文件里的啊,在一个文件里设置只对该文件有效,我电脑里所有dwg文件只有这个文件是这种现象,其他文件都正常,我不知道有这个变量,更没有去设置过,不知道是怎么产生的。
也感谢另外几位大神的关注。 本帖最后由 gzcsun 于 2024-12-24 21:23 编辑
尘缘一生 发表于 2024-12-24 18:40
;;是否是曲线---(一级)---
(defun sl-iscur (e)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vlax ...
;;曲线是否封闭--(一级)----
应该是:曲线是否可以封闭。因为有些曲线不封闭而可以封闭的不显示nil,会显示数值。
页:
[1]