# 服务端条件查询和表达式查询

# 条件查询

针对后台数据库表结构,使用sql语句条件部分进行数据查询。只需要写where后面的部分

表结构如下

字段名 类型 说明
id integer id
objectid text 实体id(块objectid命名规则:块id_引用的块定义id1_引用的块定义id2(可能有多个)_实体id; 组objectid命名规则:组id$实体id_实体内元素索引;表格命名规则:表格id@实体id_实体内元素索引,其余实体命名规则: id_实体内元素索引
layerindex integer 图层索引
name text 实体类型值,如"1"表示AcDbLine,具体值查看下面的“支持的CAD实体类型”
color int 颜色(根据rgb颜色计算此值,例如黑色为0x000000,加上透明度为0xFF000000, 变成无符号 0xff000000<<0结果为 -16777216)
data blob 几何数据
s1 text 线型
s2 text 扩展字典数据
s3 text 坐标数据,不同实体表达不一样
s4 text 字符型属性数据, 不同实体表达不一样
s5 text 字符型属性数据, 不同实体表达不一样
n1 float 颜色索引
n2 float 线型比例
n3 float 线宽
n4 float 透明度
n5 float 数值型属性数据, 不同实体表达不一样
n6 float 数值型属性数据, 不同实体表达不一样
n7 float 数值型属性数据, 不同实体表达不一样
n8 float 数值型属性数据, 不同实体表达不一样
n9 float 数值型属性数据, 不同实体表达不一样
n10 float 数值型属性数据, 不同实体表达不一样
geom GEOMETRY 实体外包矩形

# 内存渲染模式下样式表达式内置变量

变量 说明 类型 举例
gInColor 当前实体输入颜色 (数值型) 4278255615
gInColorRed 当前实体输入颜色(红色分量) (数值型) 255
gInColorGreen 当前实体输入颜色(绿色分量) (数值型) 255
gInColorBlue 当前实体输入颜色(蓝色分量) (数值型) 0
gInZoom 当前缩放级别 (数值型) 1
println 调试输出函数
gOutColor 输出颜色(要修改的颜色) (数值型) 4278255615

# 几何渲染模式下样式表达式内置变量

变量 说明 类型 举例
gInLayerIndex 当前实体图层索引 (数值型) 0
gInObjectId 当前实体对象ID (字符串) '283' 判断如 gInObjectId=='283'
gInFeatureType 当前实体类型 (字符串) 'AcDbPolyline' 判断如 gInFeatureType=='AcDbPolyline'
gInLayerName 当前实体图层名称 (字符串) '图层1' 判断如 gInLayerName=='图层1'
gInColor 当前实体颜色 (数值型) 4278255615
gInColorRed 当前实体颜色(红色分量) (数值型) 255
gInColorGreen 当前实体颜色(绿色分量) (数值型) 255
gInColorBlue 当前实体颜色(蓝色分量) (数值型) 0
gInColorAlpha 当前实体颜色(透明度分量) (数值型) 0
println 调试输出函数
gInExtendMinX 当前实体图形范围(右下角X) (数值型) 700.10
gInExtendMinY 当前实体图形范围(右下角y) (数值型) 10.01
gInExtendMaxX 当前实体图形范围(左上角X) (数值型) 800.20
gInExtendMaxY 当前实体图形范围(左上角y) (数值型) 20.02
gInAttrs1 当前实体属性一值 (字符串)
gInAttrs2 当前实体属性二值 (字符串)
gInAttrs3 当前实体属性三值 (字符串)
gInAttrs4 当前实体属性四值 (字符串)
gInAttrs5 当前实体属性五值 (字符串)
gInAttrn6 当前实体属性六值 (数值型)
gInAttrn7 当前实体属性七值 (数值型)
gInAttrn8 当前实体属性八值 (数值型)
gInAttrn9 当前实体属性九值 (数值型)
gInAttrn10 当前实体属性十值 (数值型)
gInAttrn11 当前实体属性11值 (数值型)
gInAttrn12 当前实体属性12值 (数值型)
gInAttrn13 当前实体属性13值 (数值型)
gInAttrn14 当前实体属性14值 (数值型)
gInAttrn15 当前实体属性15值 (数值型)
gInCoordX 当前实体坐标X数组 (数值型数组) [10,20...] gInCoordX[0]=10
gInCoordY 当前实体坐标Y数组 (数值型数组) [10,20...] gInCoordY[0]=10
gInCoordZ 当前实体坐标Z数组 (数值型数组) [10,20...] gInCoordZ[0]=10
gInCoordCount 当前实体坐标个数 (数值型) 2
gOutColorRed 返回的颜色(红色分量)(修改当前实体颜色) (数值型) 255,如gOutColorRed := 255;表示所有级别红色分量为255; 也可以是数组表示,如gOutColorRed[0] := 122;gOutColorRed[5] := 200;表示1-4级别红色分量是122,5级别以上是红色分量200
gOutColorGreen 返回的颜色(红色分量)(修改当前实体颜色) (数值型) 255,用法同上
gOutColorBlue 返回的颜色(红色分量)(修改当前实体颜色) (数值型) 255,用法同上
gOutColorAlpha 返回的颜色(透明度分量)(修改当前实体颜色) (数值型) 255,用法同上
gOutLineWidth 返回的线宽值(修改当前实体线宽值) (数值型) 3,用法同上
gOutVisible 返回是否可见(修改当前实体是否可见) (数值型) 1或0,用法同上
gOutReturn 0 不加入选择集;1加入选择集

# 查询数据表达式

同上

# 支持的CAD实体类型

类名称 说明 类型值
AcDbLine 直线 1
AcDbPolyline 多段线 2
AcDb2dPolyline 二维折线 3
AcDb3dPolyline 三维多段线 4
AcDbSpline 样条曲线 5
AcDbArc 圆弧 6
AcDbCircle 7
AcDbEllipse 椭圆 8
AcDbCurve 曲线 9
AcDbBlockReference 块参照 10
AcDbHatch 填充 11
AcDbMText 多行文本 12
AcDbText 单行文本 13
AcDbShape 型实体 14
AcDbRasterImage 栅格图片 15
AcDbWipeout 遮罩实体 16
AcDb2LineAngularDimension 角度标注[两条线] 17
AcDb3PointAngularDimension 角度标注[三点] 18
AcDbAlignedDimension 对齐标注 19
AcDbArcDimension 圆弧标注 20
AcDbDiametricDimension 直径标注 21
AcDbOrdinateDimension 坐标标注 22
AcDbRadialDimension 半径标注 23
AcDbRadialDimensionLarge 半径折线标注 24
AcDbRotatedDimension 转角标注 25
AcDbAttributeDefinition 属性注记 26
AcDbAttribute 块属性 27
AcDbTable 表格 28
AcDbMLeader 引线标注 29
AcDbRegion 面域 30

# 查询返回字段

字段名称 说明
objectid
layerindex
name
geojson
envelop
isEnvelop
color
objectid
objectid
colorIndex
linetype
linetypeScale
lineWidth
alpha
xdata
points
thickness
area
isclosed
polyType
center
radius
startAngle
endAngle
rotate
positon
normal
elevation
location
contents
height
width
textHeight
text
actualHeight
actualWidth
bulge
origin
u
v
size
isFit
fitTol
degree
horzMode
majorAxis

# 内置样式函数

// gRed(inColor) 取颜色红色分量
	function_t(
				"gRed",
				"var color := inColor % 256					;				"
				"color															",
				"inColor");

	// gGreen(inColor) 取颜色绿色分量
	function_t(
				"gGreen",
				"var color := inColor% (256 * 256) / 256;				       "
				"color															",
				"inColor");

	// gBlue(inColor) 取颜色蓝色分量
	function_t(
				"gBlue",
				"var color := inColor % (256 * 256 * 256) / 256 / 256	;	   "
				"color															",
				"inColor");

	// gFilterGrey(r, g, b) 灰度滤镜(取三种颜色的平均值)
	function_t(
				"gFilterGrey",
				"var grey := round(( clrRed +  clrGreen + clrBlue) / 3);"
				"var color := grey + grey * 256 + grey * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterGreyMin(r, g, b) 灰度滤镜(取三种颜色的最小)
	function_t(
				"gFilterGreyMin",
				"var grey := round(min(clrRed,clrGreen,clrBlue);"
				"var color := grey + grey * 256 + grey * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterGreyMax(r, g, b) 灰度滤镜(取三种颜色的最大)
	function_t(
				"gFilterGreyMax",
				"var grey := round(max(clrRed,clrGreen,clrBlue);"
				"var color := grey + grey * 256 + grey * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterWeight(r, g, b) 灰度滤镜(加权平均值)
	function_t(
				"gFilterWeight",
				"var grey := round(0.3 * clrRed + 0.59 * clrGreen + 0.11 * clrBlue);"
				"var color := grey + grey * 256 + grey * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterBlackWhite(r, g, b)  黑白滤镜
	function_t(
				"gFilterBlackWhite",
				"var grey := round(( clrRed +  clrGreen + clrBlue) / 3);        "
				"var color := if(grey >= 100, 16777215, 0);				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterOpposite(r, g, b)  反向滤镜
	function_t(
				"gFilterOpposite",
				"var red := round(255 - clrRed);"
				"var green := round(255 - clrGreen);"
				"var blue := round(255 - clrBlue);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterMaxAvg(r, g, b)  去色滤镜 rgb三种颜色取三种颜色的最值的平均值。
	function_t(
				"gFilterMaxAvg",
				"var grey := round((max(clrRed,clrGreen,clrBlue) + min(clrRed,clrGreen,clrBlue))/2);"
				"var color := grey + grey * 256 + grey * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterRed(r, g, b)  单色滤镜 只保留红色
	function_t(
				"gFilterRed",
				"var red := clrRed;"
				"var green := 0;"
				"var blue := 0;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterGreen(r, g, b)  单色滤镜 只保绿色
	function_t(
				"gFilterGreen",
				"var red := 0;"
				"var green := clrGreen;"
				"var blue := 0;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterBlue(r, g, b)  单色滤镜 只保留蓝色
	function_t(
				"gFilterBlue",
				"var red := 0;"
				"var green := 0;"
				"var blue := clrBlue;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterRemoveRed(r, g, b)  滤镜去掉红色
	function_t(
				"gFilterRemoveRed",
				"var red := 0;"
				"var green := clrGreen;"
				"var blue := clrBlue;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterRemoveGreen(r, g, b)  滤镜去掉绿色
	function_t(
				"gFilterRemoveGreen",
				"var red := clrRed;"
				"var green := 0;"
				"var blue := clrBlue;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterRemoveBlue(r, g, b)  滤镜去掉蓝色
	function_t(
				"gFilterRemoveBlue",
				"var red := clrRed;"
				"var green := clrGreen;"
				"var blue := 0;"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterOld(r, g, b)  怀旧滤镜
	function_t(
				"gFilterOld",
				"var red := round(0.393 * clrRed + 0.769 * clrGreen + 0.189 * clrBlue);"
				"var green := round(0.349 * clrRed + 0.686 * clrGreen + 0.168 * clrBlue);"
				"var blue := round(0.272 * clrRed + 0.534 * clrGreen + 0.131 * clrBlue);"
				"red := min(red, 255);"
				"green := min(green, 255);"
				"blue := min(blue, 255);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterFusion(r, g, b)  熔铸滤镜
	function_t(
				"gFilterFusion",
				"var red := round(clrRed * 128 / (clrGreen + clrBlue + 1);"
				"var green := round(clrGreen * 128 / (clrRed + clrBlue + 1);"
				"var blue := round(clrBlue * 128 / (clrGreen + clrRed + 1);"
				"red := min(red, 255);"
				"green := min(green, 255);"
				"blue := min(blue, 255);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterFrozen(r, g, b)  冰冻滤镜
	function_t(
				"gFilterFrozen",
				"var red := round((clrRed - clrGreen -clrBlue) * 3 /2);"
				"var green := round((clrGreen - clrRed -clrBlue) * 3 /2);"
				"var blue := round( (clrBlue - clrGreen - clrRed) * 3 /2);"
				"red := min(red, 255);"
				"green := min(green, 255);"
				"blue := min(blue, 255);"
				"red := max(red, 0);"
				"green := max(green, 0);"
				"blue := max(blue, 0);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterComic(r, g, b) 连环画滤镜
	function_t(
				"gFilterComic",
				"var red := round(abs(clrGreen - clrBlue + clrGreen + clrRed) * clrRed / 256);"
				"var green := round(abs(clrBlue -clrGreen + clrBlue + clrRed) * clrRed / 256);"
				"var blue := round(abs(clrBlue -clrGreen + clrBlue + clrRed) * clrGreen / 256);"
				"red := min(red, 255);"
				"green := min(green, 255);"
				"blue := min(blue, 255);"
				"red := max(red, 0);"
				"green := max(green, 0);"
				"blue := max(blue, 0);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterBrown(r, g, b) 褐色滤镜
	function_t(
				"gFilterBrown",
				"var red := round(clrRed * 0.393 + clrGreen * 0.769 + clrBlue * 0.189);"
				"var green := round(clrRed * 0.349 + clrGreen * 0.686 + clrBlue * 0.168);"
				"var blue := round(clrRed * 0.272 + clrGreen * 0.534 + clrBlue * 0.131);"
				"red := min(red, 255);"
				"green := min(green, 255);"
				"blue := min(blue, 255);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterBlueTheme(r, g, b) 蓝色主题滤镜
	function_t(
				"gFilterBlueTheme",
				"var red := round(clrRed * 0.7);"
				"var green := round(clrGreen * 0.7);"
				"var blue := clrBlue;"
				"blue := max(100, blue);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterRedTheme(r, g, b) 红色主题滤镜
	function_t(
				"gFilterRedTheme",
				"var red := clrRed;"
				"var green := round(clrGreen * 0.7);"
				"var blue := round(clrBlue * 0.7);"
				"red := max(100, red);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterGreenTheme(r, g, b) 绿色主题滤镜
	function_t(
				"gFilterGreenTheme",
				"var red := round(clrRed * 0.7);"
				"var green := clrGreen;"
				"var blue := round(clrBlue * 0.7);"
				"green := max(100, green);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue");

	// gFilterCustomTheme(r, g, b, maxr, maxg, maxb) 自定义主题滤镜
	function_t(
				"gFilterCustomTheme",
				"var red := if(maxr > 1, max(maxr, clrRed), round(clrRed * maxr);"
				"var green := if(maxg > 1, max(maxg, clrGreen), round(clrGreen * maxg);"
				"var blue := if(maxb > 1, max(maxb, clrBlue), round(clrBlue * maxb);"
				"var color := blue + green * 256 + red * 256 * 256;				"
				"color															",
				"clrRed", "clrGreen", "clrBlue", "maxr", "maxg", "maxb");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252