Auto Split API
Bir 3D modeli, ayrı ayrı basılabilir parçalara ayırın — otomatik olarak, isimlendirdiğiniz parçalara göre veya renk bölgesine göre — isteğe bağlı bağlayıcılarla; bir kesim sonucu oluşan ince bölgeler, her parçanın sağlam basılması için her zaman güçlendirilir.
Auto Split şu anda yalnızca dokusuz (untextured) modelleri desteklemektedir. Görselden 3D'ye ve Çoklu görselden 3D'ye için, girdiyi should_texture değeri false olarak ayarlanmış şekilde oluşturun. Doku içeren bir girdi 400 ile reddedilir.
Auto Split Görevi Oluştur
Bu uç nokta yeni bir Auto Split görevi oluşturur. Görev, önceki bir görevin modelini ayrı ayrı basılabilir parçalara böler ve segmentlere ayrılmış modeli döndürür; her parça dosyada kendi nesnesi olarak yer alır.
Parametreler
- Name
- input_task_id
- Type
- string
- Zorunlu
- Description
Modeli bölünecek başarılı bir görevin ID'si. Desteklenen görev türleri: Görselden 3D'ye, Çoklu görselden 3D'ye, Metinden 3D'ye (önizleme), Yeniden ağ, Dönüştür ve Yeniden boyutlandır. Görevin durumu
SUCCEEDEDolmalı ve modeli Meshy 6 veya Meshy 7 (ai_modelmeshy-6,meshy-7veyalatest) ile üretilmiş olmalıdır. low-poly ve Smart Topology (meshy-t2) modelleri desteklenmez.
- Name
- mode
- Type
- string
- varsayılan auto
- Description
Modelin parçalara nasıl ayrılacağı.
Kullanılabilir değerler:
auto: Kesimleri Meshy seçer.promptdikkate alınmaz.by_parts:promptiçinde belirttiğiniz yapısal parçalar boyunca kesim yapılır; örneğin kafa, kollar ve gövde.by_color:promptiçinde belirttiğiniz renk bölgeleri boyunca kesim yapılır. Yüklenen bir görselden üretilmiş bir girdi gerektirir (Görselden 3D'ye veya Çoklu görselden 3D'ye); diğer girdiler400ile reddedilir.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Zorunlu
- Description
Bölünecek parçaları, herhangi bir dilde tanımlar. Meshy bundan 1 ila 10 parça adı okur, bu nedenle modeli tarif etmek yerine parçaları adlandırın — örneğin
figürü ve tabanı bölya dakafa, gövde, sol kol, sağ kol, bacaklar. En fazla 600 karakter. İki başarısızlık modu vardır: bir bölme gibi okunan ancak ikiden az parça adlandıran bir açıklama (örneğinayrı parçalara böl)400ile reddedilir ve herhangi bir ücret alınmaz; Meshy'nin hiç okuyamadığı bir açıklama iseauto'ya geri döner, görev yine de çalışır ve ücretlendirilir, yanıtındaprompt_ignored: truebulunur.
- Name
- target_formats
- Type
- array
- varsayılan ["glb"]
- Description
Bölünmüş modelin dışa aktarılacağı formatlar. Her formatta her parça ayrı bir nesnedir.
glbher zaman üretilir vemodel_urlsiçinde döndürülür; ek olarak istediğiniz diğer formatları listeleyin.Kullanılabilir değerler:
glb,obj,fbx,usdz,blend,3mf.
- Name
- layout
- Type
- string
- varsayılan assembled
- Description
Parçaların her çıktı formatında ve küçük resimde nasıl düzenleneceği.
Kullanılabilir değerler:
assembled: Parçalar kaynak modeldeki konumlarında kalır.on_plate: Parçalar düz bir şekilde yerleştirilir ve dilimlemeye hazır olacak şekilde baskı tablasına yayılır — web uygulamasının On Plate görünümüyle aynı düzenlemedir.
Her iki düzende de dışa aktarılan dosyalar, parça başına bir nesne içerir ve başka hiçbir şey içermez: bir kesimden arta kalan çökmüş bir ince parça veya nokta benzeri parça, dışa aktarmadan önce kaldırılır, böylece dosyada bulduğunuz her nesne basılabilir olur.
- Name
- connectors
- Type
- boolean
- varsayılan false
- Description
Basılan parçaların birbirine oturması için her kesim noktasına geçme (mortise-and-tenon) bağlantı elemanları ekler.
connectors = true- Name
- connector_type
- Type
- string
- varsayılan cube
- Description
Her kesim yüzeyindeki bağlantı elemanının şekli.
Kullanılabilir değerler:
cube,cylinder.
- Name
- connector_size
- Type
- number
- varsayılan 0.5
- Description
Kesim yüzeyine göre bağlantı elemanı boyutu.
Geçerli aralık:
0.1ile0.8arası.
- Name
- connector_height
- Type
- number
- varsayılan 0.1
- Description
Bağlantı elemanının kesim yüzeyine göre ne kadar dışarı uzandığı.
Geçerli aralık:
0.1ile0.8arası.
Dönüş Değerleri
Yanıtın result özelliği, yeni oluşturulan Auto Split görevinin id değerini içerir.
Hata Modları
- Name
400 - Bad Request- Description
İstek kabul edilemedi. Yaygın nedenler:
- Eksik prompt:
modedeğeriby_partsveyaby_colorolduğundapromptzorunludur. - Prompt ikiden az parça adlandırıyor:
by_parts/by_coloren az iki adlandırılmış parça gerektirir (örneğinkafa, gövde, taban);ayrı parçalara bölgibi genel bir talimat reddedilir. Herhangi bir ücret alınmaz. - Desteklenmeyen girdi görevi:
input_task_id, Meshy 6 veya Meshy 7 ile üretilmiş, desteklenen bir türde başarılı bir göreve işaret etmelidir. - Doku içeren girdi: Girdi modelinin dokuları var. Şu an için yalnızca dokusuz modeller desteklenmektedir.
- Referans görsel yok:
by_color, yüklenen bir görselden üretilmiş bir girdi gerektirir. - Desteklenmeyen format:
target_formatsiçindestlbulunuyor. - Bağlantı elemanı aralık dışı:
connector_sizeveyaconnector_heightdeğeri0.1ile0.8aralığının dışında.
- Eksik prompt:
- Name
401 - Unauthorized- Description
Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.
- Name
402 - Payment Required- Description
Bu görevi gerçekleştirmek için yeterli kredi yok.
- Name
404 - Not Found- Description
input_task_idmevcut değil veya hesabınıza ait değil.
- Name
429 - Too Many Requests- Description
Hız sınırınızı aştınız.
by_partsveby_coloristekleri ayrıca hesap başına dakikada 12 istekle sınırlı bir prompt ayrıştırma sınırını paylaşır.
- Name
503 - Service Unavailable- Description
Prompt tabanlı bölme (
by_partsveby_color) geçici olarak kullanılamıyor. Daha sonra tekrar deneyin veya bundan etkilenmeyenmode: "auto"seçeneğini kullanın. Herhangi bir ücret alınmaz.
Request
# Simple request: let Meshy choose the cuts
curl https://api.meshy.cn/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.cn/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"mode": "by_parts",
"prompt": "split into the figure and the base",
"target_formats": ["glb", "obj"],
"layout": "on_plate",
"connectors": true,
"connector_type": "cylinder",
"connector_size": 0.4
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Bir Auto Split Görevini Alma
Bu uç nokta, kimliğine göre bir Auto Split görevini alır.
Parametreler
- Name
- id
- Type
- path
- Description
Alınacak Auto Split görevinin kimliği.
Dönüş Değerleri
Auto Split Görevi nesnesi.
Request
curl https://api.meshy.cn/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Bir Auto Split Görevini Sil
Bu uç nokta, ilişkili tüm modeller ve veriler dahil olmak üzere bir Auto Split görevini kalıcı olarak siler. Bu işlem geri alınamaz.
Yol Parametreleri
- Name
- id
- Type
- path
- Description
Silinecek Auto Split görevinin kimliği.
Dönüş Değerleri
Başarılı olduğunda 200 OK döner.
Request
curl --request DELETE \
--url https://api.meshy.cn/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
List Auto Split Tasks
Bu uç nokta, Auto Split görevlerinin bir listesini almanızı sağlar.
Parametreler
İsteğe bağlı özellikler
- Name
- page_num
- Type
- integer
- Description
Sayfalama için sayfa numarası.
1değerinden başlar ve varsayılan olarak1değerini alır.
- Name
- page_size
- Type
- integer
- Description
Sayfa boyutu sınırı. Varsayılan olarak
10öğedir. İzin verilen maksimum değer100öğedir; daha büyük değerler100ile sınırlandırılır.
- Name
- sort_by
- Type
- string
- Description
Sıralama yapılacak alan. Kullanılabilir değerler:
+created_at: Oluşturulma zamanına göre artan sırada sıralar.-created_at: Oluşturulma zamanına göre azalan sırada sıralar.
Dönüş Değerleri
Auto Split Görev Nesneleri'nin sayfalanmış bir listesini döndürür.
Request
curl https://api.meshy.cn/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
]
Bir Auto Split Görevini Akış Olarak Aktar
Bu uç nokta, Server-Sent Events (SSE) kullanarak bir Auto Split görevi için gerçek zamanlı güncellemeleri akış olarak sunar.
Parametreler
- Name
- id
- Type
- path
- Description
Akışı alınacak Auto Split görevinin benzersiz tanımlayıcısı.
Dönüş Değerleri
Server-Sent Events olarak Auto Split Görev Nesneleri akışı döndürür.
Her message olayı, Bir Auto Split Görevini Al tarafından döndürülen tam görev nesnesini taşır; buna consumed_credits, zaman damgaları ve prompt_ignored da dahildir. Görev PENDING veya IN_PROGRESS durumundayken kareler arasında değişen alanlar progress, status, started_at ve preceding_tasks'tır; model_urls, thumbnail_url, part_count ve parts ise görev SUCCEEDED durumuna ulaştığında görünür. Bir error olayı yalnızca status_code ve message taşır, bu yüzden status alanını okumadan önce olay adına göre dallanma yapın.
Request
curl -N https://api.meshy.cn/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Auto Split Görev Nesnesi
Bir Auto Split görevi yalnızca aşağıdaki özellikleri taşır. Diğer görev nesnelerinin içerdiği üretim prompt alanları (name, object_prompt, texture_prompt vb.), tekil model_url ve texture_urls bir bölme (split) işlemi için asla doldurulmaz ve döndürülmez. Görev çalışırken doldurulan özellikler (thumbnail_url, model_urls, zaman damgaları) her zaman mevcuttur, değer alana kadar boştur; bu nedenle anahtar kümesi PENDING ile SUCCEEDED arasında değişmez.
- Name
- id
- Type
- string
- Description
Görev için benzersiz tanımlayıcı. Uygulama detayı olarak görev kimlikleri için k-sıralanabilir bir UUID kullansak da, kimliğin biçimi hakkında hiçbir varsayımda bulunmamalısınız.
- Name
- type
- Type
- string
- Description
Görevin türü. Değer
print-split'tir.
- Name
- model_urls
- Type
- object
- Description
Bölünmüş modele indirilebilir URL'ler, istenen her biçim için bir tane. Dosyadaki her parça ayrı bir nesnedir. Bir biçim istenmediyse o biçime ait özellik atlanır.
- Name
glb- Type
- string
- Description
Bölünmüş modelin GLB biçimindeki indirilebilir URL'si.
- Name
obj- Type
- string
- Description
Bölünmüş modelin OBJ biçimindeki indirilebilir URL'si.
- Name
fbx- Type
- string
- Description
Bölünmüş modelin FBX biçimindeki indirilebilir URL'si.
- Name
usdz- Type
- string
- Description
Bölünmüş modelin USDZ biçimindeki indirilebilir URL'si.
- Name
blend- Type
- string
- Description
Bölünmüş modelin Blender biçimindeki indirilebilir URL'si.
- Name
3mf- Type
- string
- Description
Bölünmüş modelin 3MF biçimindeki indirilebilir URL'si.
- Name
- thumbnail_url
- Type
- string
- Description
Bölünmüş modelin, her parçanın farklı bir renkte gösterildiği ve istenen
layoutdüzeninde sunulan render edilmiş önizlemesine indirilebilir URL.
- Name
- prompt_ignored
- Type
- boolean
- Description
Bir
by_partsveyaby_coloristeğininpromptalanı hiçbir parça adı belirtmediğindetrueolur; bu durumda Meshy modeli otomatik olarak bölmüştür — sonuçtaki parça adları sizin değil, Meshy'nin verdiği adlardır.PENDINGdurumundan itibaren mevcuttur.autogörevlerinde ve prompt'un takip edildiği durumlarda atlanır.
- Name
- part_count
- Type
- integer
- Description
Bölünmüş modeldeki basılabilir parça sayısı — dışa aktarılan dosyalardaki her nesne için bir tane. Segmentasyonun basılabilir bir parçaya dönüştüremediği çökmüş ince parçalar dışa aktarmadan önce dosyalardan kaldırılır ve sayıma dahil edilmez.
- Name
- progress
- Type
- integer
- Description
Görevin ilerleme durumu. Görev henüz başlamadıysa bu özellik
0olur. Görev başarılı olduğunda bu değer100olur.
- Name
- status
- Type
- string
- Description
Görevin durumu. Olası değerler
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED'dan biridir.
- Name
- preceding_tasks
- Type
- integer
- Description
Önceki görevlerin sayısı.
Bu alanın değeri yalnızca görev durumu
PENDINGolduğunda anlamlıdır.
- Name
- created_at
- Type
- timestamp
- Description
Görevin oluşturulduğu zamanın milisaniye cinsinden zaman damgası.
- Name
- started_at
- Type
- timestamp
- Description
Görevin başladığı zamanın milisaniye cinsinden zaman damgası. Görev henüz başlamadıysa bu özellik
0olur.
- Name
- finished_at
- Type
- timestamp
- Description
Görevin tamamlandığı zamanın milisaniye cinsinden zaman damgası. Görev henüz tamamlanmadıysa bu özellik
0olur.
- Name
- task_error
- Type
- object
- Description
Başarısız görevler için hata ayrıntıları.
task_errornesnesinin tam referansı için Hatalar bölümüne bakın.
- Name
- consumed_credits
- Type
- integer
- Description
Bu görev tarafından tüketilen kredi sayısı. Her zaman mevcuttur: görev kabul edildikten sonra
10,FAILEDgörevler için ise0, çünkü başarısızlık durumunda ücret iade edilir. Bir görevi hâlâPENDINGdurumundayken silmek de ücretin iadesini sağlar.
The Auto Split Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}