酷大师后端Restful API
酷大师后端Restful API是酷大师官方提供,可供插件后端调用的API,用于获取酷大师方案中的3d模型数据。
可以两种格式获取酷大师方案3d模型数据,一种是mesh格式,一种是brep格式
获取酷大师方案mesh数据API
API签名:
Get /geom/api/modeling/design/display/instance/all
- Query String Parameters *
Body Parameter Name | Value Type | Necessity | Details |
---|---|---|---|
projectId | String | Required | 方案Id |
Request Header
x-qh-id 用户Id
Response
返回数据结构UML图:
其中:
- DisplayComponent 为云图中用于显示的display 数据格式
- DisplayInstanceInfo 中的defaultMaterialId为一个 override 材质,覆盖的是 pop objName & DisplayMaterial 中名为 “GroupDefaultMtl”的部分。
使用override 材质方法:获取相应的defaultMaterialId,该materialId是酷家乐软装材质,可以通过素材中台提供的接口(/mg/api/displaymaterial/{materialId})获取数据后,替换上图中的 parameters即可正确显示
- DisplayInstanceInfo 中的transform为一个 4x4 矩阵,代表该模型的摆放位置
返回数据示例:
mesh数据格式
mesh data example
{
"f": null,
"c": "0",
"m": "",
"d": {
"displayInstancesList": [
{
"display": {
"mesh": "//qhgeomoss.kujiale.com/gm/pop/dev/5113341/322/1.pop",
"doubleSided": true,
"mtl": [
{
"brandGoodId": 123843562,
"objName": "GroupDefaultMtl",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.84313726,0.84313726,0.84313726"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.0"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.007843138,0.007843138,0.007843138"
},
{
"name": "reflectGlossiness",
"value": "0.7"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"https://qhyxpicoss.kujiale.com/texture/2016/10/31/LALL4WAKUHSLY74IAAAAADA8.jpg\"}"
}
]
}
],
"transform": "1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0",
"id": "322"
},
"instances": [
{
"transform": "1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0",
"defaultMaterialId": "61541c2ffac25f0001e2ac6c"
}
]
},
{
"display": {
"mesh": "//qhgeomoss.kujiale.com/gm/pop/sit/5113341/279/1.pop",
"doubleSided": true,
"mtl": [
{
"brandGoodId": 123843692,
"objName": "5816f0dc5680fc63ab49dc95",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "1.0,1.0,1.0"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.67058825,0.67058825,0.67058825"
},
{
"name": "reflectGlossiness",
"value": "0.9"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"https://qhyxpicoss.kujiale.com/texture/2016/10/31/LALPBIQKUHSLY74IAAAAABI8.jpg\"}"
}
]
},
{
"brandGoodId": 125208741,
"objName": "5dcbdb19fd9f7b00013168da",
"parameters": [
{
"name": "bump",
"value": "1"
},
{
"name": "bumpScale",
"value": "1.0"
},
{
"name": "bumpTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/9c3/d8c/9dd7e91fe8e3cec79a30e94cb7c0ca31ac4078.jpg\"}"
},
{
"name": "bumpTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.5019608,0.5019608,0.5019608"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "1"
},
{
"name": "fresnelIor",
"value": "1.6"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "1"
},
{
"name": "reflectColor",
"value": "0.019607844,0.019607844,0.019607844"
},
{
"name": "reflectGlossiness",
"value": "0.7"
},
{
"name": "reflectTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/5a9/4df/9bb69698d682ff2abe25eb01f707a3a21f13461.jpg\"}"
},
{
"name": "reflectTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"https://qhcmsoss.kujiale.com/ttex/LXF367FMDRFDEAABAAAAADI8-hdtiled.jpg\"}"
}
]
}
],
"transform": "1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0",
"id": "279"
},
"instances": [
{
"transform": "1.0, 0.0, 0.0, 770.0, 0.0, 1.0, 0.0, 100.0, 0.0, 0.0, 1.0, 1.6243007E-11, 0.0, 0.0, 0.0, 1.0",
"defaultMaterialId": "5816bec83415f86f6b935313"
}
]
},
{
"display": {
"mesh": "//qhsmodel.kujiale.com/pop/SGD32UOO7DSS2OWEKE888888/m.pop",
"doubleSided": false,
"mtl": [
{
"objName": "58e4530ce7dc1cd0b56783a9",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.5,0.5,0.5"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/cdb/637/54a481f457d60058285ab78092b7719367611cd.jpg\"}"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.0,0.0,0.0"
},
{
"name": "reflectGlossiness",
"value": "1.0"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
}
]
},
{
"objName": "58e4530de7dc1cd0b56783aa",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.5,0.5,0.5"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/d20/f21/233551477452fbb85e01b10308a60ef4c8215d3.jpg\"}"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.03529412,0.03529412,0.03529412"
},
{
"name": "reflectGlossiness",
"value": "1.0"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
}
]
},
{
"objName": "58e4530de7dc1cd0b56783ab",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.5,0.5,0.5"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/49c/0a7/723cfe91cef1a4099eec1dfa7d5ecf32c34af6a.jpg\"}"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.05490196,0.05490196,0.05490196"
},
{
"name": "reflectGlossiness",
"value": "0.6"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
}
]
},
{
"objName": "58e4530de7dc1cd0b56783ac",
"parameters": [
{
"name": "bump",
"value": "0"
},
{
"name": "diffuse",
"value": "1"
},
{
"name": "diffuseColor",
"value": "0.98039216,0.98039216,0.98039216"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "diffuseTexture",
"value": "{\"defaultUrl\":\"//qhmtl-cos.kujiale.com/materialtexture/7a7/4c4/e8e6d09b5e77a5bddc6fdb13e49f7ea13b4252d.jpg\"}"
},
{
"name": "diffuseTextureScale",
"value": "1.0,1.0,0.0"
},
{
"name": "fresnel",
"value": "0"
},
{
"name": "ior",
"value": "1.6"
},
{
"name": "reflect",
"value": "0"
},
{
"name": "reflectColor",
"value": "0.0,0.0,0.0"
},
{
"name": "reflectGlossiness",
"value": "0.9"
},
{
"name": "refract",
"value": "0"
},
{
"name": "refractAffectShadow",
"value": "0"
},
{
"name": "refractColor",
"value": "0.0,0.0,0.0"
}
]
}
],
"transform": "1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0",
"id": "301"
},
"instances": [
{
"transform": "1.0, 0.0, 0.0, 2615.6917, 0.0, 1.0, 0.0, 280.3225, 0.0, 0.0, 1.0, 792.845, 0.0, 0.0, 0.0, 1.0",
"defaultMaterialId": "5816bec83415f86f6b935313"
}
]
}
],
"box": {
"min": {
"x": -84.90695874291032,
"y": -2336.847978944559,
"z": 0.0
},
"max": {
"x": 2930.767037383475,
"y": 560.645,
"z": 2119.9999999999977
}
}
}
}
获取酷大师方案brep数据API
API签名:
Get /geom/api/modeling/project/modelinfo
Query String Parameters
Body Parameter Name | Value Type | Necessity | Details |
---|---|---|---|
projectId | String | Required | 方案Id |
Request Header
x-qh-id 用户Id
Response
返回数据结构UML图:
返回数据示例:
response
response data example
{
"resData": {
"models": [
{
"id": "ModelSpace",
"topoObjects": [
{
"tp": "M",
"data": null,
"version": "1.11.0",
"toolVersion": "1.11.0"
},
{
"tp": "S",
"data": {},
"id": "23557d5f-dc7e-4c1b-a88d-ead7636e182d",
"refId": 56,
"faceIds": [
20,
26,
32,
38,
44,
50
]
},
{
"tp": "F",
"data": {},
"id": "0",
"refId": 20,
"outerLoopId": 21,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": 0.0,
"y": 0.0,
"z": 2208.9991548242747
},
"dx": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"dy": {
"x": 0.0,
"y": 1.0,
"z": 0.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 21,
"halfEdgeIds": [
22,
23,
24,
25
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 22,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 8,
"flags": 0,
"halfEdgeIds": [
22,
36
],
"curve": null,
"vertexAId": 0,
"vertexBId": 1
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 0,
"position": {
"x": -382.8052254140148,
"y": -1856.9965483318356,
"z": 2208.9991548242747
}
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 1,
"position": {
"x": 1612.4785650585618,
"y": -1856.9965483318356,
"z": 2208.9991548242747
}
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 23,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 9,
"flags": 0,
"halfEdgeIds": [
23,
42
],
"curve": null,
"vertexAId": 1,
"vertexBId": 2
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 2,
"position": {
"x": 1612.4785650585618,
"y": 715.2432768132612,
"z": 2208.9991548242747
}
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 24,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 10,
"flags": 0,
"halfEdgeIds": [
24,
48
],
"curve": null,
"vertexAId": 2,
"vertexBId": 3
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 3,
"position": {
"x": -382.8052254140148,
"y": 715.2432768132612,
"z": 2208.9991548242747
}
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 25,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 11,
"flags": 0,
"halfEdgeIds": [
25,
54
],
"curve": null,
"vertexAId": 3,
"vertexBId": 0
},
{
"tp": "F",
"data": {},
"id": "1",
"refId": 26,
"outerLoopId": 27,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"dx": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"dy": {
"x": 0.0,
"y": -1.0,
"z": 0.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 27,
"halfEdgeIds": [
28,
29,
30,
31
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 28,
"reversed": true
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 12,
"flags": 0,
"halfEdgeIds": [
28,
52
],
"curve": null,
"vertexAId": 5,
"vertexBId": 4
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 5,
"position": {
"x": -382.8052254140148,
"y": 715.2432768132612,
"z": 0.0
}
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 4,
"position": {
"x": -382.8052254140148,
"y": -1856.9965483318356,
"z": 0.0
}
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 29,
"reversed": true
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 13,
"flags": 0,
"halfEdgeIds": [
29,
46
],
"curve": null,
"vertexAId": 6,
"vertexBId": 5
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 6,
"position": {
"x": 1612.4785650585618,
"y": 715.2432768132612,
"z": 0.0
}
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 30,
"reversed": true
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 14,
"flags": 0,
"halfEdgeIds": [
30,
40
],
"curve": null,
"vertexAId": 7,
"vertexBId": 6
},
{
"tp": "V",
"data": {},
"id": null,
"refId": 7,
"position": {
"x": 1612.4785650585618,
"y": -1856.9965483318356,
"z": 0.0
}
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 31,
"reversed": true
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 15,
"flags": 0,
"halfEdgeIds": [
31,
34
],
"curve": null,
"vertexAId": 4,
"vertexBId": 7
},
{
"tp": "F",
"data": {},
"id": "2",
"refId": 32,
"outerLoopId": 33,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": 0.0,
"y": -1856.9965483318356,
"z": 0.0
},
"dx": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"dy": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 33,
"halfEdgeIds": [
34,
35,
36,
37
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 34,
"reversed": false
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 35,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 16,
"flags": 0,
"halfEdgeIds": [
35,
43
],
"curve": null,
"vertexAId": 7,
"vertexBId": 1
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 36,
"reversed": true
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 37,
"reversed": true
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 17,
"flags": 0,
"halfEdgeIds": [
37,
53
],
"curve": null,
"vertexAId": 4,
"vertexBId": 0
},
{
"tp": "F",
"data": {},
"id": "3",
"refId": 38,
"outerLoopId": 39,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": 1612.4785650585618,
"y": 0.0,
"z": 0.0
},
"dx": {
"x": 0.0,
"y": 0.0,
"z": -1.0
},
"dy": {
"x": 0.0,
"y": 1.0,
"z": 0.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 39,
"halfEdgeIds": [
40,
41,
42,
43
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 40,
"reversed": false
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 41,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 18,
"flags": 0,
"halfEdgeIds": [
41,
49
],
"curve": null,
"vertexAId": 6,
"vertexBId": 2
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 42,
"reversed": true
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 43,
"reversed": true
},
{
"tp": "F",
"data": {},
"id": "4",
"refId": 44,
"outerLoopId": 45,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": 0.0,
"y": 715.2432768132612,
"z": 0.0
},
"dx": {
"x": -1.0,
"y": 0.0,
"z": 0.0
},
"dy": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 45,
"halfEdgeIds": [
46,
47,
48,
49
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 46,
"reversed": false
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 47,
"reversed": false
},
{
"tp": "E2",
"data": {},
"id": null,
"refId": 19,
"flags": 0,
"halfEdgeIds": [
47,
55
],
"curve": null,
"vertexAId": 5,
"vertexBId": 3
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 48,
"reversed": true
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 49,
"reversed": true
},
{
"tp": "F",
"data": {},
"id": "5",
"refId": 50,
"outerLoopId": 51,
"innerLoopIds": [],
"surface": {
"tp": "P",
"ccs": {
"o": {
"x": -382.8052254140148,
"y": 0.0,
"z": 0.0
},
"dx": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"dy": {
"x": 0.0,
"y": 1.0,
"z": 0.0
}
}
},
"sameDir": true
},
{
"tp": "L",
"data": {},
"id": null,
"refId": 51,
"halfEdgeIds": [
52,
53,
54,
55
]
},
{
"tp": "H",
"data": {},
"id": "0",
"refId": 52,
"reversed": false
},
{
"tp": "H",
"data": {},
"id": "1",
"refId": 53,
"reversed": false
},
{
"tp": "H",
"data": {},
"id": "2",
"refId": 54,
"reversed": true
},
{
"tp": "H",
"data": {},
"id": "3",
"refId": 55,
"reversed": true
}
],
"materialList": []
}
],
"instances": [
{
"modelId": "ModelSpace",
"transform": [
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
"materialInfo": {
"productId": "3FO4H2D5RHRW",
"materialId": "5816bec83415f86f6b935313",
"pavingParams": null
}
}
],
"bounding": null,
"projectId": "862c72fe-787d-41a3-937e-7f4cf6e36b4e"
},
"success": true,
"code": 200
}
获取酷大师方案KSG数据API
目前此 API 只对从模袋云跳转进入酷大师生成的方案有效API签名:
Get /geom/api/modeling/project/v1/ksg
Query String Parameters
Body Parameter Name | Value Type | Necessity | Details |
---|---|---|---|
projectId | String | Required | 方案Id |
Request Header
x-qh-id 用户Id
Response
返回数据示例:KSG数据示例