马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Free-Lancer 于 2013-9-28 14:13 编辑
以下仅是测试时用,非完整程序!
LTYPE 组码 | 组码 | 说明 | 100 | 子类标记 (AcDbLinetypeTableRecord) | 2 | 线型名 | 70 | 标准标记值(按位编码值): 16 = 如果设置了此位,则表条目外部依赖于外部参照 32 = 如果同时设置了此位和位 16,则表明已成功融入了外部依赖的外部参照 64 = 如果设置了此位,则表明在上次编辑图形时,图形中至少有一个图元参照了表条目。(此标志对 AutoCAD 命令很有用。大多数读取 DXF 文件的程序都可以忽略它,并且无需由写入 DXF 文件的程序对其进行设置) | 3 | 线型的说明文字 | 72 | 对齐代码;值通常为 65,A 的 ASCII 代码 | 73 | 线型元素的数目 | 40 | 图案总长度 | 49 | 虚线、点或空间长度(每个元素一个条目) | 74 | 复杂线型元素类型(每个元素一种类型)。默认值为 0(无嵌入的形/文字) 以下代码是位值: 1 = 如果设置了此位,则代码 50 指定绝对旋转;如果未设置此位,则代码 50 指定相对旋转 2 = 嵌入元素是字符串 4 = 嵌入元素是形 | 75 | 如果代码 74 指定嵌入的形,则表示形编号(每个元素一个编号) 如果代码 74 指定嵌入的字符串,此值将设置为 0 如果代码 74 设置为 0,则省略代码 75 | 340 | 指向 STYLE 对象的指针(如果代码 74 > 0,则每个元素一个指针) | 46 | S = 比例值(可选);可存在多个条目 | 50 | R = 嵌入的形或文字的相对旋转值(以弧度为单位),A = 嵌入的形或文字的绝对旋转值(以弧度为单位);如果代码 74 指定了嵌入的形或字符串,则每个元素一个 | 44 | X = X 偏移值(可选);可存在多个条目 | 45 | Y = Y 偏移值(可选);可存在多个条目 | 9 | 字符串(如果代码 74 = 2,则每个元素一个字符串) | tblsearch 或 tblnext 函数不返回组码 74、75、340、46、50、44、45 和 9。在应用程序中,必须使用 tblobjname 检索这些值。
 - (setq e (car (nentsel))
- el (entget e)
- )
- (if (not (setq ltyp (cdr (assoc 6 el))))
- (setq ltyp (cdr (assoc 6
- (tblsearch "layer"
- (cdr (assoc 8 el))
- )
- )
- )
- )
- ) ;_ Entity Linetype
- (entget (tblobjname "ltype" ltyp)) ;_ LinetypeTableRecord
- ;; DXF 40 PattenLenth
- ;;方法2 适用 2012+
- (setq e (car (nentsel)))
- (setq ltyp (getpropertyvalue e "LinetypeID"))
- (setq PatternLength (getpropertyvalue ltyp "PatternLength"));_ Dxf 40
- (setq eltscl (getpropertyvalue e "LinetypeScale"))
- (setq ltscl (getvar "ltscale"))
- (setq p1 (getpoint "\nFirst Point: "))
- (setq p2 (getpoint p1 "\nSecond Point: "))
- (setq scl (/ (distance p1 p2) PatternLength))
- (setpropertyvalue e "LinetypeScale" scl);_ change Entity ltscale
- (setvar "ltscale" scl);change globle ltscale
|